mirror of https://gitlab.com/scemama/eplf
73 lines
1.1 KiB
Fortran
73 lines
1.1 KiB
Fortran
BEGIN_PROVIDER [ real, mo_value_p, (mo_num) ]
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
! Values of the molecular orbitals
|
|
END_DOC
|
|
|
|
integer :: i, j, k
|
|
|
|
do j=1,mo_num
|
|
mo_value_p(j) = 0.
|
|
do k=1,ao_num
|
|
mo_value_p(j) = mo_value_p(j)+mo_coef(k,j)*ao_value_p(k)
|
|
enddo
|
|
enddo
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, mo_value_prod_p, (mo_num,mo_num) ]
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
! Products of 2 molecular orbitals
|
|
END_DOC
|
|
|
|
integer :: i, j, k
|
|
|
|
do j=1,mo_num
|
|
do k=1,mo_num
|
|
mo_value_prod_p(k,j) = mo_value_p(k)*mo_value_p(j)
|
|
enddo
|
|
enddo
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, mo_grad_p, (mo_num,3) ]
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
! Gradients of the molecular orbitals
|
|
END_DOC
|
|
|
|
integer :: j, k, l
|
|
|
|
do l=1,3
|
|
do j=1,mo_num
|
|
mo_grad_p(j,l) = 0.
|
|
do k=1,ao_num
|
|
mo_grad_p(j,l) = mo_grad_p(j,l) + mo_coef(k,j)*ao_grad_p(k,l)
|
|
enddo
|
|
enddo
|
|
enddo
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, mo_lapl_p, (mo_num) ]
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
! Laplacians of the molecular orbitals
|
|
END_DOC
|
|
|
|
integer :: j, k
|
|
|
|
do j=1,mo_num
|
|
mo_lapl_p(j) = 0.
|
|
do k=1,ao_num
|
|
mo_lapl_p(j) = mo_lapl_p(j)+mo_coef(k,j)*ao_lapl_p(k)
|
|
enddo
|
|
enddo
|
|
|
|
END_PROVIDER
|
|
|