10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-11-06 22:23:55 +01:00
QuantumPackage/plugins/local/jastrow/env_param.irp.f

101 lines
2.2 KiB
Fortran
Raw Normal View History

2024-01-15 12:02:38 +01:00
! ---
BEGIN_PROVIDER [ double precision, env_expo , (nucl_num) ]
&BEGIN_PROVIDER [ double precision, env_coef, (nucl_num) ]
BEGIN_DOC
! parameters of the 1-body Jastrow
END_DOC
implicit none
logical :: exists
integer :: i
integer :: ierr
PROVIDE ezfio_filename
! ---
if (mpi_master) then
2024-01-15 19:02:05 +01:00
call ezfio_has_jastrow_env_expo(exists)
2024-01-15 12:02:38 +01:00
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'
call MPI_BCAST(env_expo, (nucl_num), MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr)
if (ierr /= MPI_SUCCESS) then
stop 'Unable to read env_expo with MPI'
endif
IRP_ENDIF
if (exists) then
if (mpi_master) then
write(6,'(A)') '.. >>>>> [ IO READ: env_expo ] <<<<< ..'
2024-01-15 19:02:05 +01:00
call ezfio_get_jastrow_env_expo(env_expo)
2024-01-15 12:02:38 +01:00
IRP_IF MPI
call MPI_BCAST(env_expo, (nucl_num), MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr)
if (ierr /= MPI_SUCCESS) then
stop 'Unable to read env_expo with MPI'
endif
IRP_ENDIF
endif
else
do i = 1, nucl_num
env_expo(i) = 1d5
enddo
endif
! ---
if (mpi_master) then
2024-01-15 19:02:05 +01:00
call ezfio_has_jastrow_env_coef(exists)
2024-01-15 12:02:38 +01:00
endif
IRP_IF MPI_DEBUG
print *, irp_here, mpi_rank
call MPI_BARRIER(MPI_COMM_WORLD, ierr)
IRP_ENDIF
IRP_IF MPI
call MPI_BCAST(env_coef, (nucl_num), MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr)
if (ierr /= MPI_SUCCESS) then
stop 'Unable to read env_coef with MPI'
endif
IRP_ENDIF
if (exists) then
if (mpi_master) then
write(6,'(A)') '.. >>>>> [ IO READ: env_coef ] <<<<< ..'
2024-01-15 19:02:05 +01:00
call ezfio_get_jastrow_env_coef(env_coef)
2024-01-15 12:02:38 +01:00
IRP_IF MPI
call MPI_BCAST(env_coef, (nucl_num), MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr)
if (ierr /= MPI_SUCCESS) then
stop 'Unable to read env_coef with MPI'
endif
IRP_ENDIF
endif
else
do i = 1, nucl_num
env_coef(i) = 1d0
enddo
endif
! ---
print *, ' parameters for nuclei jastrow'
print *, ' i, Z, env_expo, env_coef'
do i = 1, nucl_num
write(*,'(I4, 2x, 3(E15.7, 2X))') i, nucl_charge(i), env_expo(i), env_coef(i)
enddo
END_PROVIDER
! ---