mirror of
https://gitlab.com/scemama/qp_plugins_scemama.git
synced 2024-11-07 14:43:41 +01:00
Fix pseudos
This commit is contained in:
parent
5761cc4e30
commit
a11bbf629d
@ -71,99 +71,101 @@ subroutine run
|
|||||||
! Pseudo-potentials
|
! Pseudo-potentials
|
||||||
! -----------------
|
! -----------------
|
||||||
|
|
||||||
print *, 'ECP'
|
if (do_pseudo) then
|
||||||
|
|
||||||
integer :: num
|
print *, 'ECP'
|
||||||
|
integer :: num
|
||||||
|
|
||||||
num = 0
|
num = 0
|
||||||
do k=1,pseudo_klocmax
|
do k=1,pseudo_klocmax
|
||||||
do i=1,nucl_num
|
|
||||||
if (pseudo_dz_k(i,k) /= 0.d0) then
|
|
||||||
num = num+1
|
|
||||||
end if
|
|
||||||
end do
|
|
||||||
end do
|
|
||||||
|
|
||||||
do l=0,pseudo_lmax
|
|
||||||
do k=1,pseudo_kmax
|
|
||||||
do i=1,nucl_num
|
do i=1,nucl_num
|
||||||
if (pseudo_dz_kl(i,k,l) /= 0.d0) then
|
if (pseudo_dz_k(i,k) /= 0.d0) then
|
||||||
num = num+1
|
num = num+1
|
||||||
end if
|
end if
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
end do
|
|
||||||
|
|
||||||
integer, allocatable :: ang_mom(:), nucleus_index(:), power(:), lmax(:)
|
|
||||||
double precision, allocatable :: exponent(:), coefficient(:)
|
|
||||||
|
|
||||||
allocate(ang_mom(num), nucleus_index(num), exponent(num), coefficient(num), power(num), &
|
|
||||||
lmax(nucl_num) )
|
|
||||||
|
|
||||||
do i=1,nucl_num
|
|
||||||
lmax(i) = -1
|
|
||||||
do l=0,pseudo_lmax
|
do l=0,pseudo_lmax
|
||||||
do k=1,pseudo_kmax
|
do k=1,pseudo_kmax
|
||||||
if (pseudo_dz_kl_transp(k,l,i) /= 0.d0) then
|
do i=1,nucl_num
|
||||||
lmax(i) = max(lmax(i), l)
|
if (pseudo_dz_kl(i,k,l) /= 0.d0) then
|
||||||
end if
|
num = num+1
|
||||||
|
end if
|
||||||
|
end do
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
end do
|
|
||||||
|
|
||||||
j = 0
|
integer, allocatable :: ang_mom(:), nucleus_index(:), power(:), lmax(:)
|
||||||
do i=1,nucl_num
|
double precision, allocatable :: exponent(:), coefficient(:)
|
||||||
do k=1,pseudo_klocmax
|
|
||||||
if (pseudo_dz_k_transp(k,i) /= 0.d0) then
|
allocate(ang_mom(num), nucleus_index(num), exponent(num), coefficient(num), power(num), &
|
||||||
j = j+1
|
lmax(nucl_num) )
|
||||||
ang_mom(j) = lmax(i)+1
|
|
||||||
nucleus_index(j) = i
|
do i=1,nucl_num
|
||||||
exponent(j) = pseudo_dz_k_transp(k,i)
|
lmax(i) = -1
|
||||||
coefficient(j) = pseudo_v_k_transp(k,i)
|
do l=0,pseudo_lmax
|
||||||
power(j) = pseudo_n_k_transp(k,i)
|
do k=1,pseudo_kmax
|
||||||
end if
|
if (pseudo_dz_kl_transp(k,l,i) /= 0.d0) then
|
||||||
|
lmax(i) = max(lmax(i), l)
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
end do
|
||||||
end do
|
end do
|
||||||
|
|
||||||
do l=0,lmax(i)
|
j = 0
|
||||||
do k=1,pseudo_kmax
|
do i=1,nucl_num
|
||||||
if (pseudo_dz_kl_transp(k,l,i) /= 0.d0) then
|
do k=1,pseudo_klocmax
|
||||||
|
if (pseudo_dz_k_transp(k,i) /= 0.d0) then
|
||||||
j = j+1
|
j = j+1
|
||||||
ang_mom(j) = l
|
ang_mom(j) = lmax(i)+1
|
||||||
nucleus_index(j) = i
|
nucleus_index(j) = i
|
||||||
exponent(j) = pseudo_dz_kl_transp(k,l,i)
|
exponent(j) = pseudo_dz_k_transp(k,i)
|
||||||
coefficient(j) = pseudo_v_kl_transp(k,l,i)
|
coefficient(j) = pseudo_v_k_transp(k,i)
|
||||||
power(j) = pseudo_n_kl_transp(k,l,i)
|
power(j) = pseudo_n_k_transp(k,i)
|
||||||
end if
|
end if
|
||||||
end do
|
end do
|
||||||
|
|
||||||
|
do l=0,lmax(i)
|
||||||
|
do k=1,pseudo_kmax
|
||||||
|
if (pseudo_dz_kl_transp(k,l,i) /= 0.d0) then
|
||||||
|
j = j+1
|
||||||
|
ang_mom(j) = l
|
||||||
|
nucleus_index(j) = i
|
||||||
|
exponent(j) = pseudo_dz_kl_transp(k,l,i)
|
||||||
|
coefficient(j) = pseudo_v_kl_transp(k,l,i)
|
||||||
|
power(j) = pseudo_n_kl_transp(k,l,i)
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
end do
|
||||||
end do
|
end do
|
||||||
end do
|
|
||||||
|
|
||||||
|
|
||||||
lmax(:) = lmax(:)+1
|
lmax(:) = lmax(:)+1
|
||||||
rc = trexio_write_ecp_max_ang_mom_plus_1(f, lmax)
|
rc = trexio_write_ecp_max_ang_mom_plus_1(f, lmax)
|
||||||
call check_success(rc)
|
call check_success(rc)
|
||||||
|
|
||||||
rc = trexio_write_ecp_z_core(f, int(nucl_charge_remove))
|
rc = trexio_write_ecp_z_core(f, int(nucl_charge_remove))
|
||||||
call check_success(rc)
|
call check_success(rc)
|
||||||
|
|
||||||
rc = trexio_write_ecp_num(f, num)
|
rc = trexio_write_ecp_num(f, num)
|
||||||
call check_success(rc)
|
call check_success(rc)
|
||||||
|
|
||||||
rc = trexio_write_ecp_ang_mom(f, ang_mom)
|
rc = trexio_write_ecp_ang_mom(f, ang_mom)
|
||||||
call check_success(rc)
|
call check_success(rc)
|
||||||
|
|
||||||
rc = trexio_write_ecp_nucleus_index(f, nucleus_index)
|
rc = trexio_write_ecp_nucleus_index(f, nucleus_index)
|
||||||
call check_success(rc)
|
call check_success(rc)
|
||||||
|
|
||||||
rc = trexio_write_ecp_exponent(f, exponent)
|
rc = trexio_write_ecp_exponent(f, exponent)
|
||||||
call check_success(rc)
|
call check_success(rc)
|
||||||
|
|
||||||
rc = trexio_write_ecp_coefficient(f, coefficient)
|
rc = trexio_write_ecp_coefficient(f, coefficient)
|
||||||
call check_success(rc)
|
call check_success(rc)
|
||||||
|
|
||||||
rc = trexio_write_ecp_power(f, power)
|
rc = trexio_write_ecp_power(f, power)
|
||||||
call check_success(rc)
|
call check_success(rc)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
! Basis
|
! Basis
|
||||||
|
Loading…
Reference in New Issue
Block a user