shlrpagrd Subroutine

public subroutine shlrpagrd(dsh, d, basis)

Uses

  • proc~~shlrpagrd~~UsesGraph proc~shlrpagrd shlrpagrd module~basis_tools basis_tools proc~shlrpagrd->module~basis_tools module~precision precision proc~shlrpagrd->module~precision module~types types proc~shlrpagrd->module~types module~basis_tools->module~precision iso_fortran_env iso_fortran_env module~basis_tools->iso_fortran_env module~atomic_structure_m atomic_structure_m module~basis_tools->module~atomic_structure_m module~constants constants module~basis_tools->module~constants module~io_constants io_constants module~basis_tools->module~io_constants module~parallel parallel module~basis_tools->module~parallel module~precision->iso_fortran_env module~types->module~basis_tools module~types->module~precision iso_c_binding iso_c_binding module~types->iso_c_binding module~types->module~atomic_structure_m module~functionals functionals module~types->module~functionals module~types->module~parallel tagarray tagarray module~types->tagarray module~atomic_structure_m->iso_c_binding module~constants->module~precision module~functionals->module~precision module~functionals->iso_c_binding xc_f03_lib_m xc_f03_lib_m module~functionals->xc_f03_lib_m module~parallel->module~precision module~parallel->iso_c_binding module~parallel->iso_fortran_env mpi mpi module~parallel->mpi

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out) :: dsh(:,:)
real(kind=dp), intent(in), dimension(:,:,:,:) :: d
type(basis_set), intent(in) :: basis

Called by

proc~~shlrpagrd~~CalledByGraph proc~shlrpagrd shlrpagrd proc~int2_rpagrd_data_t_init_screen int2_rpagrd_data_t%int2_rpagrd_data_t_init_screen proc~int2_rpagrd_data_t_init_screen->proc~shlrpagrd proc~int2_rpagrd_data_t_parallel_start int2_rpagrd_data_t%int2_rpagrd_data_t_parallel_start proc~int2_rpagrd_data_t_parallel_start->proc~int2_rpagrd_data_t_init_screen

Source Code

  subroutine shlrpagrd(dsh,d,basis)
    use precision, only: dp
    use types, only: information
    use basis_tools, only: basis_set

    implicit none

    type(basis_set), intent(in) :: basis
    real(kind=dp), intent(out) :: dsh(:,:)
    real(kind=dp), intent(in), dimension(:,:,:,:) :: d

    integer :: ish, jsh, maxi, maxj, mini, minj
    real(kind=dp) :: mxv

!   RHF
    do ish = 1, basis%nshell
      mini = basis%ao_offset(ish)
      maxi = mini + basis%naos(ish)-1
      do jsh = 1, ish
        minj = basis%ao_offset(jsh)
        maxj = minj + basis%naos(jsh) - 1
        mxv = maxval(abs(d(minj:maxj,mini:maxi,:,:)))
        dsh(ish,jsh) = max(dsh(ish,jsh), mxv)
        dsh(jsh,ish) = dsh(ish,jsh)
      end do
    end do
  end subroutine shlrpagrd