qp2/src/mo_basis/mos_aux.irp.f

54 lines
1.2 KiB
Fortran

! ---
BEGIN_PROVIDER [double precision, mo_coef_aux, (ao_num,mo_num)]
implicit none
integer :: i, j
logical :: exists
double precision, allocatable :: buffer(:,:)
PROVIDE ezfio_filename
if (mpi_master) then
! Coefs
call ezfio_has_mo_basis_mo_coef_aux(exists)
endif
IRP_IF MPI_DEBUG
print *, irp_here, mpi_rank
call MPI_BARRIER(MPI_COMM_WORLD, ierr)
IRP_ENDIF
IRP_IF MPI
include 'mpif.h'
integer :: ierr
call MPI_BCAST(exists, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr)
if (ierr /= MPI_SUCCESS) then
stop 'Unable to read mo_coef_aux with MPI'
endif
IRP_ENDIF
if (exists) then
if (mpi_master) then
call ezfio_get_mo_basis_mo_coef_aux(mo_coef_aux)
write(*,*) 'Read mo_coef_aux'
endif
IRP_IF MPI
call MPI_BCAST(mo_coef_aux, mo_num*ao_num, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr)
if (ierr /= MPI_SUCCESS) then
stop 'Unable to read mo_coef_aux with MPI'
endif
IRP_ENDIF
else
! Orthonormalized AO basis
do i = 1, mo_num
do j = 1, ao_num
mo_coef_aux(j,i) = ao_ortho_canonical_coef(j,i)
enddo
enddo
endif
END_PROVIDER