LCOV - code coverage report
Current view: top level - types - types_setup.F90 (source / functions) Hit Total Coverage
Test: combined.info Lines: 3 4 75.0 %
Date: 2019-09-08 04:53:50 Functions: 1 3 33.3 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------
       2             : ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
       3             : ! This file is part of FLEUR and available as free software under the conditions
       4             : ! of the MIT license as expressed in the LICENSE file in more detail.
       5             : !--------------------------------------------------------------------------------
       6             : 
       7             : MODULE m_types_setup
       8             :    !*************************************************************
       9             :    !     This module contains definitions for all kind of types
      10             :    !*************************************************************
      11             : 
      12             :    ! types for 1D calculations
      13             :    TYPE od_dim
      14             :       LOGICAL :: d1
      15             :       INTEGER :: mb, M, k3, m_cyl
      16             :       INTEGER :: chi, rot
      17             :       LOGICAL :: invs, zrfs
      18             :       INTEGER :: n2d, nq2, nn2d
      19             :       INTEGER :: kimax2
      20             :       INTEGER :: nop, nat
      21             :    END TYPE od_dim
      22             : 
      23             :    TYPE od_inp
      24             :       LOGICAL :: d1
      25             :       INTEGER :: mb, M, k3, m_cyl
      26             :       INTEGER :: chi, rot
      27             :       LOGICAL :: invs, zrfs
      28             :       INTEGER :: n2d, nq2, nn2d
      29             :       INTEGER :: kimax2
      30             :       INTEGER, POINTER :: ig(:, :)  !(-k3:k3,-M:M)
      31             :       INTEGER, POINTER :: kv(:, :)        !(2,n2d)
      32             :       INTEGER, POINTER :: nst2(:)        !(n2d)
      33             :    END TYPE od_inp
      34             : 
      35             :    TYPE od_sym
      36             :       INTEGER :: nop, nat
      37             :       INTEGER, POINTER :: ngopr(:)     !(nat)
      38             :       REAL, POINTER :: mrot(:, :, :)  !(3,3,nop)
      39             :       REAL, POINTER :: tau(:, :)     !(3,nop)
      40             :       INTEGER, POINTER :: invtab(:)    !(nop)
      41             :       INTEGER, POINTER :: multab(:, :)  !(nop,nop)
      42             :    END TYPE od_sym
      43             : 
      44             :    TYPE od_lda
      45             :       INTEGER :: nn2d
      46             :       INTEGER, POINTER :: igf(:, :)  !(0:nn2d-1,2)
      47             :       REAL, POINTER :: pgf(:)    !(0:nn2d-1)
      48             :    END TYPE od_lda
      49             : 
      50             :    TYPE od_gga
      51             :       INTEGER          :: nn2d
      52             :       REAL, POINTER    :: pgfx(:)  ! (0:nn2d-1)
      53             :       REAL, POINTER    :: pgfy(:)
      54             :       REAL, POINTER    :: pgfxx(:)
      55             :       REAL, POINTER    :: pgfyy(:)
      56             :       REAL, POINTER    :: pgfxy(:)
      57             :    END TYPE od_gga
      58             : 
      59             :    !
      60             :    ! Type for LDA+U:
      61             :    !
      62             :    TYPE t_utype
      63             :       SEQUENCE
      64             :       REAL :: u, j         ! the actual U and J parameters
      65             :       REAL :: theta,phi   !the rotation angles by which the density metrics is rotated
      66             :       INTEGER :: l        ! the l quantum number to which this U parameter belongs
      67             :       INTEGER :: atomType ! The atom type to which this U parameter belongs
      68             :       LOGICAL :: l_amf ! logical switch to choose the "around mean field" LDA+U limit
      69             :    END TYPE t_utype
      70             : 
      71             :    !
      72             :    ! Type for the electric field
      73             :    !
      74             : 
      75             :    TYPE t_atoms
      76             :       !<no of types
      77             :       INTEGER :: ntype
      78             :       !<total-no of atoms
      79             :       INTEGER :: nat
      80             :       !<dimensions of LO's
      81             :       INTEGER ::nlod
      82             :       INTEGER ::llod
      83             :       INTEGER ::nlotot
      84             :       !lmaxd=maxval(lmax)
      85             :       INTEGER:: lmaxd
      86             :       ! no of lda+us
      87             :       INTEGER ::n_u
      88             :       ! dimensions
      89             :       INTEGER :: jmtd
      90             :       !No of element
      91             :       INTEGER, ALLOCATABLE ::nz(:)
      92             :       !atoms per type
      93             :       INTEGER, ALLOCATABLE::neq(:)
      94             :       !radial grid points
      95             :       INTEGER, ALLOCATABLE::jri(:)
      96             :       !core states
      97             :       INTEGER, ALLOCATABLE::ncst(:)
      98             :       !How many states are explicitely provided?
      99             :       INTEGER, ALLOCATABLE::numStatesProvided(:)
     100             :       !core state occupations
     101             :       REAL, ALLOCATABLE::coreStateOccs(:, :, :)
     102             :       !core state nprnc
     103             :       INTEGER, ALLOCATABLE::coreStateNprnc(:, :)
     104             :       !core state kappa
     105             :       INTEGER, ALLOCATABLE::coreStateKappa(:, :)
     106             :       !lmax
     107             :       INTEGER, ALLOCATABLE::lmax(:)
     108             :       !lmax non-spherical
     109             :       INTEGER, ALLOCATABLE::lnonsph(:)
     110             :       !expansion of pseudo-charge
     111             :       INTEGER, ALLOCATABLE::ncv(:)
     112             :       !no of LO
     113             :       INTEGER, ALLOCATABLE::nlo(:)
     114             :       !l of LO (nlo,ntype)
     115             :       INTEGER, ALLOCATABLE::llo(:, :)
     116             :       !lmax for lapw (ntype)
     117             :       INTEGER, ALLOCATABLE::lapw_l(:)
     118             :       !first LO with a given l (max(nlo
     119             :       INTEGER, ALLOCATABLE::lo1l(:, :)
     120             :       !??
     121             :       INTEGER, ALLOCATABLE::ulo_der(:, :)
     122             :       !no of LOs per l (max(nlo1),ntype
     123             :       INTEGER, ALLOCATABLE::nlol(:, :)
     124             :       !true if LO is formed by \dot u (
     125             :       LOGICAL, ALLOCATABLE::l_dulo(:, :)
     126             :       !no of op that maps atom into
     127             :       INTEGER, ALLOCATABLE::ngopr(:)
     128             :       !symetry of atom (nat)
     129             :       INTEGER, ALLOCATABLE::ntypsy(:)
     130             :       !no of sphhar for atom type(ntype
     131             :       INTEGER, ALLOCATABLE ::nlhtyp(:)
     132             :       !atom mapped to by inversion (nat
     133             :       INTEGER, ALLOCATABLE ::invsat(:)
     134             :       !Calaculate forces for this atom?
     135             :       LOGICAL, ALLOCATABLE :: l_geo(:)
     136             :       !MT-Radius (ntype)
     137             :       REAL, ALLOCATABLE CPP_MANAGED::rmt(:)
     138             :       !log increment(ntype)
     139             :       REAL, ALLOCATABLE::dx(:)
     140             :       !vol of MT(ntype)
     141             :       REAL, ALLOCATABLE::volmts(:)
     142             :       !radial grid points(max(jri),ntyp
     143             :       REAL, ALLOCATABLE::rmsh(:, :)
     144             :       !charge of nucleus(ntype)
     145             :       REAL, ALLOCATABLE::zatom(:)
     146             :       !initial mag moment(ntype)
     147             :       REAL, ALLOCATABLE::bmu(:)
     148             :       !pos of atom (absol) (3,nat)
     149             :       REAL, ALLOCATABLE::pos(:, :)
     150             :       !pos of atom (relat)(3,nat)
     151             :       REAL, ALLOCATABLE CPP_MANAGED::taual(:, :)
     152             :       !labels
     153             :       CHARACTER(LEN=20), ALLOCATABLE :: label(:)
     154             :       CHARACTER(len=20), ALLOCATABLE :: speciesName(:)
     155             :       !name and other data of explicitely provided xc functional
     156             :       CHARACTER(len=4), ALLOCATABLE :: namex(:)
     157             :       INTEGER, ALLOCATABLE :: icorr(:)
     158             :       INTEGER, ALLOCATABLE :: igrd(:)
     159             :       INTEGER, ALLOCATABLE :: krla(:)
     160             :       LOGICAL, ALLOCATABLE :: relcor(:)
     161             :       !lda_u information(ntype)
     162             :       TYPE(t_utype), ALLOCATABLE::lda_u(:)
     163             :       INTEGER, ALLOCATABLE :: relax(:, :) !<(3,ntype)
     164             :       INTEGER, ALLOCATABLE :: nflip(:) !<flip magnetisation of this atom
     165             :    CONTAINS
     166             :       procedure :: nsp => calc_nsp_atom
     167             :    END TYPE t_atoms
     168             : 
     169             :    TYPE t_cell
     170             :       !name of 2D-lattice type
     171             :       CHARACTER*3::latnam
     172             :       !vol of dtilde box
     173             :       REAL::omtil
     174             :       !2D area
     175             :       REAL::area
     176             :       !bravais matrix
     177             :       REAL::amat(3, 3)
     178             :       !rez. bravais matrx
     179             :       REAL::bmat(3, 3)
     180             :       !square of bbmat
     181             :       REAL::bbmat(3, 3)
     182             :       !d-value
     183             :       REAL::z1
     184             :       !volume of cell
     185             :       REAL::vol
     186             :       !volume of interstitial
     187             :       REAL::volint
     188             :       REAL:: c
     189             :    END TYPE t_cell
     190             : !The stars
     191             :    TYPE t_stars
     192             :       !max-length of star
     193             :       REAL :: gmax
     194             :       REAL :: gmaxInit
     195             :       !no of 3d-stars
     196             :       INTEGER :: ng3
     197             :       !no of 2d-stars
     198             :       INTEGER :: ng2
     199             :       !dim of box
     200             :       INTEGER ::mx1
     201             :       INTEGER ::mx2
     202             :       INTEGER ::mx3
     203             :       !No of elements in FFT
     204             :       INTEGER ::kimax
     205             :       !No of elements in 2D-FFT
     206             :       INTEGER ::kimax2
     207             : 
     208             :       !Box for FFT in pwden
     209             :       INTEGER :: kq1_fft
     210             :       INTEGER :: kq2_fft
     211             :       INTEGER :: kq3_fft
     212             :       INTEGER :: kmxq_fft !no of g-vectors in sphere
     213             :       INTEGER, ALLOCATABLE :: igq_fft(:)
     214             :       INTEGER, ALLOCATABLE :: igq2_fft(:)
     215             : 
     216             :       !fft box for xc-pot
     217             :       INTEGER :: kxc1_fft
     218             :       INTEGER :: kxc2_fft
     219             :       INTEGER :: kxc3_fft
     220             : 
     221             :       INTEGER :: ng3_fft
     222             :       INTEGER :: kmxxc_fft !<number of g-vectors forming the nxc3_fft stars in the charge density or xc-density sphere
     223             : 
     224             :       INTEGER :: nxc3_fft !< number of stars in the  charge density  fft-box
     225             : 
     226             :       !rep. g-vector of star
     227             :       INTEGER, ALLOCATABLE ::kv3(:, :)
     228             :       !length of star
     229             :       REAL, ALLOCATABLE    ::sk3(:)
     230             :       !mapping of g-vectors to stars
     231             :       INTEGER, ALLOCATABLE ::ig(:, :, :)
     232             :       !No of g-vectors in star
     233             :       INTEGER, ALLOCATABLE ::nstr(:)
     234             :       !rep. g-vector of 2D-star
     235             :       INTEGER, ALLOCATABLE ::kv2(:, :)
     236             :       !length of 2D-star
     237             :       REAL, ALLOCATABLE    ::sk2(:)
     238             :       !No of g-vecs in 2D-star
     239             :       INTEGER, ALLOCATABLE ::nstr2(:)
     240             :       !mapping of
     241             :       INTEGER, ALLOCATABLE ::ig2(:)
     242             :       !
     243             :       REAL, ALLOCATABLE:: phi2(:) !<(n2d)
     244             :       !phase phactor of g-vector
     245             :       COMPLEX, ALLOCATABLE    ::rgphs(:, :, :)
     246             :       !mapping of stars to FFT-box
     247             :       INTEGER, ALLOCATABLE :: igfft(:, :)
     248             :       !same for 2D
     249             :       INTEGER, ALLOCATABLE :: igfft2(:, :)
     250             :       !phasefactors for mapping
     251             :       COMPLEX, ALLOCATABLE  :: pgfft(:)
     252             :       !same of 2D
     253             :       COMPLEX, ALLOCATABLE  :: pgfft2(:)
     254             :       !
     255             :       REAL, ALLOCATABLE     :: ft2_gfx(:), ft2_gfy(:)
     256             :       COMPLEX, ALLOCATABLE :: ustep(:)
     257             :       REAL, ALLOCATABLE    :: ufft(:)
     258             :    END TYPE t_stars
     259             : 
     260             :    TYPE t_oneD
     261             :       TYPE(od_dim) :: odd
     262             :       TYPE(od_inp) :: odi
     263             :       TYPE(od_sym) :: ods
     264             :       TYPE(od_lda) :: odl
     265             :       TYPE(od_gga) :: odg
     266             :       INTEGER, POINTER :: ig1(:, :)
     267             :       INTEGER, POINTER :: kv1(:, :)
     268             :       INTEGER, POINTER :: nstr1(:)
     269             :       INTEGER, POINTER :: ngopr1(:)
     270             :       REAL, POINTER :: mrot1(:, :, :)
     271             :       REAL, POINTER :: tau1(:, :)
     272             :       INTEGER, POINTER :: invtab1(:)
     273             :       INTEGER, POINTER :: multab1(:, :)
     274             :       INTEGER, POINTER :: igfft1(:, :)
     275             :       REAL, POINTER :: pgfft1(:)
     276             :       REAL, POINTER :: pgft1x(:)
     277             :       REAL, POINTER :: pgft1y(:)
     278             :       REAL, POINTER :: pgft1xx(:)
     279             :       REAL, POINTER :: pgft1yy(:)
     280             :       REAL, POINTER :: pgft1xy(:)
     281             :    END TYPE t_oneD
     282             : 
     283             :    TYPE t_hybrid
     284             :       LOGICAL               ::  l_hybrid = .false.
     285             :       LOGICAL               ::  l_subvxc = .false.
     286             :       LOGICAL               ::  l_calhf = .false.
     287             :       LOGICAL               ::  l_addhf = .false.
     288             :       INTEGER               ::  ewaldlambda
     289             :       INTEGER               ::  lexp = 0
     290             :       INTEGER               ::  bands1 !Only read in
     291             :       INTEGER               ::  nbasp
     292             :       INTEGER               ::  maxlcutm1
     293             :       INTEGER               ::  maxindxm1
     294             :       INTEGER               ::  maxbasm1
     295             :       INTEGER               ::  maxindxp1
     296             :       INTEGER               ::  maxgptm
     297             :       INTEGER               ::  maxgptm1
     298             :       INTEGER               ::  maxindx
     299             :       INTEGER               ::  maxlmindx
     300             :       INTEGER               ::  gptmd
     301             :       INTEGER, ALLOCATABLE   ::  nindx(:, :)
     302             :       INTEGER, ALLOCATABLE   ::  select1(:, :)
     303             :       INTEGER, ALLOCATABLE   ::  lcutm1(:)
     304             :       INTEGER, ALLOCATABLE   ::  nindxm1(:, :)
     305             :       INTEGER, ALLOCATABLE   ::  gptm(:, :)
     306             :       INTEGER, ALLOCATABLE   ::  ngptm1(:)
     307             :       INTEGER, ALLOCATABLE   ::  pgptm1(:, :)
     308             :       INTEGER, ALLOCATABLE   ::  ngptm(:)
     309             :       INTEGER, ALLOCATABLE   ::  pgptm(:, :)
     310             :       INTEGER, ALLOCATABLE   ::  lcutwf(:)
     311             :       INTEGER, ALLOCATABLE   ::  map(:, :)
     312             :       INTEGER, ALLOCATABLE   ::  tvec(:, :, :)
     313             :       INTEGER, ALLOCATABLE ::  nbasm(:)
     314             :       REAL                  ::  gcutm1
     315             :       REAL                  ::  tolerance1  !only read in
     316             :       REAL, ALLOCATABLE   ::  basm1(:, :, :, :)
     317             :       COMPLEX, ALLOCATABLE   ::  d_wgn2(:, :, :, :)
     318             :       INTEGER, ALLOCATABLE   ::  ne_eig(:), nbands(:), nobd(:)                   !alloc in eigen_HF_init
     319             :       REAL, ALLOCATABLE   ::  div_vv(:, :, :)
     320             :    END TYPE t_hybrid
     321             : 
     322             :    TYPE t_dimension
     323             :       INTEGER :: nspd
     324             :       INTEGER :: nvd
     325             :       INTEGER :: nv2d
     326             :       INTEGER :: neigd
     327             :       INTEGER :: neigd2
     328             :       INTEGER :: ncvd
     329             :       INTEGER :: nstd
     330             :       INTEGER :: msh
     331             :       INTEGER :: lmd
     332             :       INTEGER :: lmplmd
     333             :       INTEGER :: nbasfcn
     334             :    END TYPE t_dimension
     335             : 
     336             :    TYPE t_noco
     337             :       LOGICAL:: l_noco
     338             :       LOGICAL:: l_ss
     339             :       LOGICAL:: l_mperp
     340             :       LOGICAL:: l_constr
     341             :       LOGICAL:: l_mtNocoPot
     342             :       REAL:: qss(3)
     343             :       REAL:: mix_b
     344             :       LOGICAL, ALLOCATABLE :: l_relax(:)
     345             :       REAL, ALLOCATABLE :: alphInit(:)
     346             :       REAL, ALLOCATABLE :: alph(:)
     347             :       REAL, ALLOCATABLE :: beta(:)
     348             :       REAL, ALLOCATABLE :: b_con(:, :)
     349             :       LOGICAL           :: l_soc
     350             :       LOGICAL           :: l_spav
     351             :       REAL              :: theta
     352             :       REAL              :: phi
     353             :       REAL, ALLOCATABLE  :: socscale(:)
     354             :    END TYPE t_noco
     355             : 
     356             :    TYPE t_input
     357             :       INTEGER :: eig66(2)
     358             :       LOGICAL :: strho
     359             :       LOGICAL :: cdinf
     360             :       LOGICAL :: vchk
     361             :       LOGICAL :: l_f
     362             :       LOGICAL :: eonly
     363             :       LOGICAL :: film
     364             :       LOGICAL :: ctail
     365             :       INTEGER :: coretail_lmax
     366             :       INTEGER :: itmax
     367             :       REAL    :: minDistance
     368             :       INTEGER :: maxiter
     369             :       INTEGER :: imix
     370             :       INTEGER :: gw
     371             :       INTEGER :: gw_neigd
     372             :       INTEGER :: qfix
     373             :       INTEGER :: numBandsKPoints
     374             :       REAL    :: forcealpha !< mixing parameter for geometry optimzer
     375             :       REAL    :: epsdisp !< minimal displacement. If all displacements are < epsdisp stop
     376             :       REAL    :: epsforce !< minimal force. If all forces <epsforce stop
     377             :       REAL    :: force_converged=0.00001
     378             :       INTEGER :: forcemix=3
     379             :       REAL    :: delgau
     380             :       REAL    :: alpha
     381             :       REAL    :: preconditioning_param
     382             :       REAL    :: spinf
     383             :       REAL    :: tkb
     384             :       LOGICAL :: gauss
     385             :       LOGICAL :: l_bmt
     386             :       !INTEGER:: scale
     387             :       INTEGER:: jspins
     388             :       INTEGER:: kcrel
     389             :       LOGICAL:: frcor
     390             :       LOGICAL:: lflip
     391             :       LOGICAL:: score
     392             :       LOGICAL:: swsp
     393             :       LOGICAL:: tria
     394             :       LOGICAL:: integ
     395             :       LOGICAL:: pallst
     396             :       LOGICAL:: l_coreSpec
     397             :       LOGICAL:: l_wann
     398             :       LOGICAL:: secvar
     399             :       LOGICAL:: evonly
     400             :       LOGICAL:: total
     401             :       LOGICAL:: l_inpXML
     402             :       REAL :: scaleCell
     403             :       REAL :: scaleA1
     404             :       REAL :: scaleA2
     405             :       REAL :: scaleC
     406             :       REAL :: ellow
     407             :       REAL :: elup
     408             :       REAL :: rkmax
     409             :       REAL :: zelec
     410             :       REAL :: fixed_moment = 0.0
     411             :       CHARACTER(LEN=8) :: comment(10)
     412             :       REAL, POINTER :: sigma !this is the difference in charge due to the electric field it points to the value stored in t_efield
     413             :       LOGICAL :: l_core_confpot
     414             :       LOGICAL :: l_useapw
     415             :       LOGICAL :: ldauLinMix
     416             :       REAL    :: ldauMixParam
     417             :       REAL    :: ldauSpinf
     418             :       LOGICAL :: l_rdmft
     419             :       REAL    :: rdmftOccEps
     420             :       INTEGER :: rdmftStatesBelow
     421             :       INTEGER :: rdmftStatesAbove
     422             :       INTEGER :: rdmftFunctional
     423             :    END TYPE t_input
     424             : 
     425             :    TYPE t_sliceplot
     426             :       LOGICAL :: iplot
     427             :       LOGICAL :: slice
     428             :       LOGICAL :: plpot
     429             :       INTEGER :: kk
     430             :       INTEGER :: nnne
     431             :       REAL    :: e1s
     432             :       REAL    :: e2s
     433             :    END TYPE t_sliceplot
     434             : 
     435             :    TYPE t_banddos
     436             :       LOGICAL :: dos
     437             :       LOGICAL :: band
     438             :       LOGICAL :: l_mcd
     439             :       LOGICAL :: l_orb
     440             :       LOGICAL :: vacdos
     441             :       INTEGER :: ndir
     442             :       INTEGER :: orbCompAtom
     443             :       REAL    :: e1_dos
     444             :       REAL    :: e2_dos
     445             :       REAL    :: sig_dos
     446             :       REAL    :: e_mcd_lo
     447             :       REAL    :: e_mcd_up
     448             :       LOGICAL :: unfoldband
     449             :       INTEGER :: s_cell_x
     450             :       INTEGER :: s_cell_y
     451             :       INTEGER :: s_cell_z
     452             :       REAL    :: alpha,beta,gamma !For orbital decomp. (was orbcomprot)
     453             :    END TYPE t_banddos
     454             : 
     455             :    TYPE t_obsolete
     456             :       INTEGER:: lepr !floating energy parameters...
     457             :       INTEGER:: ndvgrd !remove
     458             :       REAL   :: chng   !remove
     459             :       LOGICAL :: lwb   !remove
     460             :    END TYPE t_obsolete
     461             : 
     462             :    TYPE t_vacuum
     463             :       !Stuff for the vacuum
     464             :       INTEGER ::nmz
     465             :       INTEGER ::nmzd
     466             :       INTEGER ::nmzxy
     467             :       INTEGER ::nmzxyd
     468             :       INTEGER :: layerd
     469             :       INTEGER :: layers
     470             :       INTEGER :: nvac
     471             :       INTEGER :: nvacd
     472             :       REAL :: delz
     473             :       REAL :: dvac
     474             :       INTEGER::nstars
     475             :       INTEGER:: nstm
     476             :       REAL :: tworkf
     477             :       REAL :: locx(2)
     478             :       REAL :: locy(2)
     479             :       LOGICAL ::starcoeff
     480             :       INTEGER, ALLOCATABLE :: izlay(:, :)
     481             :    END TYPE t_vacuum
     482             : 
     483             :    !Data for the spherical harmonics
     484             :    TYPE t_sphhar
     485             :       !No of symmetry types (must
     486             :       !equal maxval(atoms%ntypsy)
     487             :       INTEGER ::ntypsd
     488             :       !Max no of members of sphhar
     489             :       INTEGER ::memd
     490             :       !max of nlh
     491             :       INTEGER ::nlhd
     492             :       !No of sphhar (ntypsd)
     493             :       INTEGER, ALLOCATABLE ::nlh(:)
     494             :       !l's of sphhar (0:nlhd,ntypsd)
     495             :       INTEGER, ALLOCATABLE ::llh(:, :)
     496             :       !No of members in sphhar (0:nlh
     497             :       INTEGER, ALLOCATABLE ::nmem(:, :)
     498             :       !lm's of of members (max(nmem),
     499             :       INTEGER, ALLOCATABLE ::mlh(:, :, :)
     500             :       !phasefactors (max(nmem),0:nlhd
     501             :       COMPLEX, ALLOCATABLE ::clnu(:, :, :)
     502             :    END TYPE t_sphhar
     503             : 
     504             :    !symmetry information
     505             :    TYPE t_sym
     506             :       INTEGER :: symSpecType
     507             :       !Symophic group
     508             :       LOGICAL ::symor
     509             :       INTEGER ::nsymt
     510             :       INTEGER :: nsym
     511             :       COMPLEX, ALLOCATABLE:: d_wgn(:, :, :, :)
     512             :       !2D-inv-sym
     513             :       LOGICAL ::invs2
     514             :       !Inversion-sym
     515             :       LOGICAL ::invs
     516             :       !Z-refls. sym
     517             :       LOGICAL ::zrfs
     518             :       !No of sym ops
     519             :       INTEGER ::nop
     520             :       !No of 2D-sym ops
     521             :       INTEGER ::nop2
     522             :       !Rot-matrices (3,3,nop)
     523             :       INTEGER, ALLOCATABLE::mrot(:, :, :)
     524             :       !inverse operation (nop)
     525             :       INTEGER, ALLOCATABLE::invtab(:)
     526             :       !translation vectors (3,nop)
     527             :       REAL, ALLOCATABLE::tau(:, :)
     528             :       !Name of lattice type
     529             :       CHARACTER*3   :: latnam
     530             :       !Name of sym
     531             :       CHARACTER*4   :: namgrp
     532             :       INTEGER, ALLOCATABLE :: multab(:, :)
     533             :       INTEGER, ALLOCATABLE :: invsatnr(:)
     534             :       INTEGER, ALLOCATABLE :: invarop(:, :)
     535             :       INTEGER, ALLOCATABLE :: invarind(:)
     536             : 
     537             :    END TYPE t_sym
     538             : 
     539             :    ! type for the input to the calculation of the core spectrum (EELS)
     540             :    TYPE t_coreSpecInput
     541             :       integer :: verb  ! output verbosity
     542             :       integer :: atomType  ! atomic type used for calculation of core spectra
     543             :       character(LEN=1) :: edge  ! edge character (K,L,M,N,O,P)
     544             :       integer :: edgeidx(11)  ! l-j edges
     545             :       integer :: lx  ! maximum lmax considered in spectra calculation
     546             :       real :: ek0  ! kinetic energy of incoming electrons
     547             :       real :: emn  ! energy spectrum lower bound
     548             :       real :: emx  ! energy spectrum upper bound
     549             :       real :: ein  ! energy spectrum increment
     550             :       integer :: nqphi ! no. of angle-sectors for integral over q vectors
     551             :       integer :: nqr   ! no. of radial-sectors for integral over q vectors
     552             :       real :: alpha_ex  ! maximal angle of incoming electrons
     553             :       real :: beta_ex   ! maximal (measured) angle of outcoming electrons
     554             :       real :: I0        ! incoming intensity
     555             :    END TYPE t_coreSpecInput
     556             : 
     557             :    !
     558             :    ! type for wannier-functions
     559             :    !
     560             :    TYPE t_wann
     561             :       INTEGER :: wan90version
     562             :       INTEGER :: oc_num_orbs
     563             :       INTEGER, ALLOCATABLE :: oc_orbs(:)
     564             :       LOGICAL :: l_mmn0_unf_to_spn_unf
     565             :       LOGICAL :: l_mmn0_to_spn_unf
     566             :       LOGICAL :: l_mmn0_to_spn
     567             :       LOGICAL :: l_mmn0_to_spn2
     568             :       LOGICAL :: l_mmn0_unf_to_spn
     569             :       LOGICAL :: l_perpmag_unf_to_tor_unf 
     570             :       LOGICAL :: l_perpmag_to_tor_unf
     571             :       LOGICAL :: l_perpmag_to_tor
     572             :       LOGICAL :: l_perpmag_unf_to_tor
     573             :       LOGICAL :: l_hsomtxvec_unf_to_lmpzsoc_unf
     574             :       LOGICAL :: l_hsomtxvec_to_lmpzsoc_unf
     575             :       LOGICAL :: l_hsomtxvec_to_lmpzsoc
     576             :       LOGICAL :: l_hsomtxvec_unf_to_lmpzsoc
     577             :       LOGICAL :: l_unformatted
     578             :       LOGICAL :: l_oc_f
     579             :       LOGICAL :: l_ndegen
     580             :       LOGICAL :: l_orbitalmom
     581             :       LOGICAL :: l_orbcomp
     582             :       LOGICAL :: l_orbcomprs
     583             :       LOGICAL :: l_denmat
     584             :       LOGICAL :: l_perturbrs
     585             :       LOGICAL :: l_perturb
     586             :       LOGICAL :: l_nedrho
     587             :       LOGICAL :: l_anglmomrs
     588             :       LOGICAL :: l_anglmom
     589             :       LOGICAL :: l_spindisp
     590             :       LOGICAL :: l_spindisprs
     591             :       LOGICAL :: l_socspicom
     592             :       LOGICAL :: l_socspicomrs
     593             :       LOGICAL :: l_offdiposoprs
     594             :       LOGICAL :: l_offdiposop
     595             :       LOGICAL :: l_torque
     596             :       LOGICAL :: l_torquers
     597             :       LOGICAL :: l_atomlist
     598             :       INTEGER :: atomlist_num
     599             :       INTEGER, ALLOCATABLE :: atomlist(:)
     600             :       LOGICAL :: l_berry
     601             :       LOGICAL :: l_perpmagrs
     602             :       LOGICAL :: l_perpmag
     603             :       LOGICAL :: l_perpmagat
     604             :       LOGICAL :: l_perpmagatrs
     605             :       LOGICAL :: l_socmatrs
     606             :       LOGICAL :: l_socmat
     607             :       LOGICAL :: l_soctomom
     608             :       LOGICAL :: l_kptsreduc2
     609             :       LOGICAL :: l_nablapaulirs
     610             :       LOGICAL :: l_nablars
     611             :       LOGICAL :: l_surfcurr
     612             :       LOGICAL :: l_updown
     613             :       LOGICAL :: l_ahe
     614             :       LOGICAL :: l_she
     615             :       LOGICAL :: l_rmat
     616             :       LOGICAL :: l_nabla
     617             :       LOGICAL :: l_socodi
     618             :       LOGICAL :: l_pauli
     619             :       LOGICAL :: l_pauliat
     620             :       LOGICAL :: l_potmat
     621             :       LOGICAL :: l_projgen
     622             :       LOGICAL :: l_plot_symm
     623             :       LOGICAL :: l_socmmn0
     624             :       LOGICAL :: l_bzsym
     625             :       LOGICAL :: l_hopping
     626             :       LOGICAL :: l_kptsreduc
     627             :       LOGICAL :: l_prepwan90
     628             :       LOGICAL :: l_plot_umdat
     629             :       LOGICAL :: l_wann_plot
     630             :       LOGICAL :: l_bynumber
     631             :       LOGICAL :: l_stopopt
     632             :       LOGICAL :: l_matrixmmn
     633             :       LOGICAL :: l_matrixamn
     634             :       LOGICAL :: l_projmethod
     635             :       LOGICAL :: l_wannierize
     636             :       LOGICAL :: l_plotw90
     637             :       LOGICAL :: l_byindex
     638             :       LOGICAL :: l_byenergy
     639             :       LOGICAL :: l_proj_plot
     640             :       LOGICAL :: l_bestproj
     641             :       LOGICAL :: l_ikptstart
     642             :       LOGICAL :: l_lapw
     643             :       LOGICAL :: l_plot_lapw
     644             :       LOGICAL :: l_fermi
     645             :       LOGICAL :: l_dipole
     646             :       LOGICAL :: l_dipole2
     647             :       LOGICAL :: l_dipole3
     648             :       LOGICAL :: l_mmn0
     649             :       LOGICAL :: l_mmn0at
     650             :       LOGICAL :: l_manyfiles
     651             :       LOGICAL :: l_collectmanyfiles
     652             :       LOGICAL :: l_ldauwan
     653             :       LOGICAL :: l_lapw_kpts
     654             :       LOGICAL :: l_lapw_gfleur
     655             :       LOGICAL :: l_kpointgen
     656             :       LOGICAL :: l_w90kpointgen
     657             :       LOGICAL :: l_finishnocoplot
     658             :       LOGICAL :: l_finishgwf
     659             :       LOGICAL :: l_skipkov
     660             :       LOGICAL :: l_matrixuHu
     661             :       LOGICAL :: l_matrixuHu_dmi
     662             :       INTEGER :: ikptstart
     663             :       INTEGER :: band_min(1:2)
     664             :       INTEGER :: band_max(1:2)
     665             :       INTEGER :: gfthick
     666             :       INTEGER :: gfcut
     667             :       INTEGER :: unigrid(6)
     668             :       INTEGER :: mhp(3)
     669             :       !---> gwf
     670             :       LOGICAL :: l_ms
     671             :       LOGICAL :: l_sgwf
     672             :       LOGICAL :: l_socgwf
     673             :       LOGICAL :: l_gwf
     674             :       LOGICAL :: l_bs_comf
     675             :       LOGICAL :: l_exist
     676             :       LOGICAL :: l_opened
     677             :       LOGICAL :: l_cleverskip
     678             :       LOGICAL :: l_dim(3)
     679             :       REAL    :: scale_param
     680             :       REAL    :: aux_latt_const
     681             :       REAL    :: hdwf_t1
     682             :       REAL    :: hdwf_t2
     683             :       INTEGER :: nparampts
     684             :       CHARACTER(len=20) :: fn_eig
     685             :       CHARACTER(len=20) :: param_file
     686             :       REAL, ALLOCATABLE :: param_vec(:, :)
     687             :       REAL, ALLOCATABLE :: param_alpha(:, :)
     688             :       CHARACTER(LEN=20), ALLOCATABLE :: jobList(:)
     689             :       !---> gwf
     690             : 
     691             :    END TYPE t_wann
     692             : CONTAINS
     693        4463 :    pure function calc_nsp_atom(self) result(nsp) 
     694             :       implicit none
     695             :       CLASS(t_atoms),INTENT(IN)      :: self
     696             :       INTEGER                        :: nsp
     697             : 
     698        4463 :       nsp = (self%lmaxd+1+MOD(self%lmaxd+1,2))*(2*self%lmaxd+1)
     699        4463 :    end function
     700           0 : END MODULE m_types_setup

Generated by: LCOV version 1.13