!------------------------------------------------------------------------------------ !> Summary: Module handling common array dimensions !> Author: !> Array dimensions are defined according to lmax; used in main program !------------------------------------------------------------------------------------ module arrayparams use nrtype use global_variables, only: lmaxd, lmpotd, lpotd, lmmaxd, mmaxd, lm2d, irmind, irmd, iemxd ! initial global variables ! INTEGER :: NRMAXD ! maximum number of rad. points for allocationg ! INTEGER :: NPAND ,NRSHAPED, NLMSHAPED ! INTEGER :: NCORESTATED ! maximum number of core states (for allocating) ! INTEGER :: LMAXD ! maximum lmax from atominfo ! INTEGER :: LPOTD ! PARAMETER ( NSPIND = KREL + (1-KREL)*(KSP+1) ) ! ( LPOTD = 2*LMAXD ) ! PARAMETER ( NCLEB = (LMAXD*2+1)**2 * (LMAXD+1)**2 ) !derived global variables ! INTEGER :: LMMAXD ! PARAMETER (LMMAXD= (KREL+1) * (LMAXD+1)**2) ! INTEGER :: LMPOTD ! PARAMETER (LMPOTD= (LPOTD+1)**2) ! INTEGER :: IRMIND ! PARAMETER (IRMIND=IRMD-IRNSD) ! INTEGER :: MMAXD ! PARAMETER ( MMAXD = 2*LMAXD+1 ) ! INTEGER :: LM2D ! PARAMETER (LMMAXD= (2*LMAXD+1)**2) ! REAL(KIND=DP) :: CVLIGHT ! PARAMETER (CVLIGHT=274.0720442D0) ! INTEGER LM2D ! PARAMETER (LM2D= (2*LMAXD+1)**2) !integer :: IRMIND !integer :: IRMD integer :: IRMAXD !integer :: IEMXD integer :: INS integer :: IRMTD integer :: NCORED contains !------------------------------------------------------------------------------- !> Summary: Define common array dimensions based on lmax !> Author: !> Category: initialization, KKRimp !> Deprecated: False !> Array dimensions are defined according to lmax !------------------------------------------------------------------------------- subroutine arrayparams_set(LMAXD1) ! use global_variables, only: lmxspd integer,save :: first = 1 integer :: lmaxd1 IF (first/=1) stop '[array_params] Trying to change the array parameters more then one time not permitted' first=0 LMAXD=LMAXD1 LPOTD=2*LMAXD LMMAXD = (LMAXD+1)**2 LMPOTD = (LPOTD+1)**2 MMAXD = 2*LMAXD+1 LM2D= (2*LMAXD+1)**2 lmxspd = (4*lmaxd+1)**2 end subroutine arrayparams_set end module arrayparams