mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-14 10:03:47 +01:00
54 lines
1.2 KiB
Fortran
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
|
|
|