Module defining necessary types for the MPI communication, as well as memory management and initialization of the needed arrays.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(type_inc), | public, | save | :: | t_inc | |||
| type(type_tgmatices), | public, | save | :: | t_tgmat | |||
| type(type_mpi_cartesian_grid_info), | public, | save | :: | t_mpi_c_grid | |||
| type(type_lloyd), | public, | save | :: | t_lloyd | |||
| type(type_dtmatjijdij), | public, | allocatable, save | :: | t_dtmatjij(:) | |||
| type(type_cpa), | public, | save | :: | t_cpa | |||
| type(type_imp), | public, | save | :: | t_imp | |||
| type(type_madel), | public, | save | :: | t_madel |
Type holding single site t-matrix, reference GF and structural GF (gmat) for distribution between 1a, 1b and 1c parts of the code
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | tmat_to_file | = | .false. | ||
| logical, | public | :: | gmat_to_file | = | .false. | ||
| logical, | public | :: | gref_to_file | = | .false. | ||
| integer, | public | :: | nelements | = | 4 | ||
| complex(kind=dp), | public, | dimension(:,:,:), allocatable | :: | tmat |
Single-site t-matrix ! dimensions=LMMAXD, LMMAXD, IREC; IREC= IE+IELAST(ISPIN-1)+IELASTNSPIN*(I1-1) ;IE=1,...,IELAST, ISPIN=1,...,NSPIN, I1=1,...,NATYP) |
||
| complex(kind=dp), | public, | dimension(:,:,:), allocatable | :: | gmat |
Structural Greens function ! dimensions=LMMAXD, LMMAXD, IREC; IREC= IQDOS+NQDOS(IE-1)+NQDOSIELAST(ISPIN-1)+IELASTNSPIN*(I1-1) ;IE=1,...,IELAST, ISPIN=1,...,NSPIN, I1=1,...,NATYP) |
||
| complex(kind=dp), | public, | dimension(:,:,:,:), allocatable | :: | gref |
Reference Greens function ! GINP(NACLSD*LMGF0D,LMGF0D,NCLSD) IREC=IE=1,...,IELAST |
Type holding CPA information
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | dmatproj_to_file | = | .false. | ||
| integer, | public | :: | nelements | = | 3 | ||
| complex(kind=dp), | public, | dimension(:,:,:,:), allocatable | :: | dmatts | |||
| complex(kind=dp), | public, | dimension(:,:,:,:), allocatable | :: | dtilts |
Data type for the derivatives of the t-matrix with respect to changing the non-collinear angles in directions {x,y,z}
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | nelements | = | 3 | ||
| logical, | public | :: | calculate | = | .false. | ||
| complex(kind=dp), | public, | dimension(:,:,:,:), allocatable | :: | dtmat_xyz |
Derivatives of the t-matrix with respect to non-collinear angles ! dimensions= LMMAXD, LMMAXD, 3, IELAST; 3={x,y,z} |
Type holding some array dimensions needed independently of t_params
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | nparams | = | 17 | ||
| integer, | public | :: | ielast | = | -1 | ||
| integer, | public | :: | nqdos | = | -1 | ||
| integer, | public | :: | naclsmax | = | -1 | ||
| integer, | public | :: | i_iteration | = | -1 | ||
| integer, | public | :: | n_iteration | = | -1 | ||
| integer, | public | :: | mit_bry | = | 1 | ||
| integer, | public | :: | nshell0 | = | -1 | ||
| integer, | public | :: | nkmesh | = | -1 | ||
| logical, | public | :: | newsosol | = | .false. |
use new solver for SOC |
|
| logical, | public | :: | nosoc | = | .false. |
use new solver without SOC (test option 'NOSOC ') |
|
| logical, | public | :: | deci_out | = | .false. |
use deci_out case |
|
| integer, | public | :: | i_write | = | 0 |
switch to control if things are written out or not (verbosity levels 0,1,2) |
|
| integer, | public | :: | i_time | = | 1 |
switch to control if timing files are written (verbosity levels 0,1,2) |
|
| integer, | public | :: | nsra | = | -1 | ||
| integer, | public | :: | irmdnew | = | -1 | ||
| integer, | public | :: | kvrel | = | -1 | ||
| integer, | public, | dimension(:), allocatable | :: | kmesh | |||
| integer, | public, | dimension(:), allocatable | :: | kmesh_ie |
Type holding information on the MPI parallelization scheme
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | nparams | = | 12 | ||
| integer, | public | :: | mympi_comm_ie | = | -1 | ||
| integer, | public | :: | mympi_comm_at | = | -1 | ||
| integer, | public | :: | myrank_ie | = | -1 | ||
| integer, | public | :: | myrank_at | = | -1 | ||
| integer, | public | :: | myrank_atcomm | = | -1 | ||
| integer, | public | :: | nranks_ie | = | -1 | ||
| integer, | public | :: | nranks_at | = | -1 | ||
| integer, | public | :: | nranks_atcomm | = | -1 | ||
| integer, | public | :: | ntot1 | = | -1 | ||
| integer, | public | :: | ntot2 | = | -1 | ||
| integer, | public, | dimension(2) | :: | dims | = | [-1, -1] | |
| integer, | public, | dimension(:), allocatable | :: | ntot_pt1 | |||
| integer, | public, | dimension(:), allocatable | :: | ioff_pt1 | |||
| integer, | public, | dimension(:), allocatable | :: | ntot_pt2 | |||
| integer, | public, | dimension(:), allocatable | :: | ioff_pt2 |
Type holding information needed for lloyd such as derivatives of single site t-matrix, reference GF or the trace of alpha matrix and
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | dtmat_to_file | = | .false. | ||
| logical, | public | :: | tralpha_to_file | = | .false. | ||
| logical, | public | :: | cdos_diff_lly_to_file | = | .false. | ||
| logical, | public | :: | dgref_to_file | = | .false. | ||
| logical, | public | :: | g0tr_to_file | = | .false. | ||
| integer, | public | :: | n1 | = | 6 | ||
| complex(kind=dp), | public, | dimension(:), allocatable | :: | g0tr | |||
| complex(kind=dp), | public, | dimension(:), allocatable | :: | tralpha | |||
| complex(kind=dp), | public, | dimension(:,:), allocatable | :: | cdos | |||
| complex(kind=dp), | public, | dimension(:,:,:), allocatable | :: | dtmat | |||
| complex(kind=dp), | public, | dimension(:,:,:,:), allocatable | :: | dgref |
Type holding information for impurity potential, needed in GREENIMP mode
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | n1 | = | 12 | ||
| integer, | public | :: | n2 | = | 17 | ||
| integer, | public | :: | natomimp | = | -1 | ||
| integer, | public | :: | ihost | = | -1 | ||
| integer, | public | :: | irmd |
Maximum number of radial points |
|||
| integer, | public | :: | irid |
Shape functions parameters in non-spherical part |
|||
| integer, | public | :: | ipand |
Number of panels in non-spherical part |
|||
| integer, | public | :: | nfund |
Shape functions parameters in non-spherical part |
|||
| integer, | public | :: | nspin |
Counter for spin directions |
|||
| integer, | public | :: | natypd |
Number of kinds of atoms in unit cell |
|||
| integer, | public | :: | irmind |
irmd - irnsd |
|||
| integer, | public | :: | lmpotd |
(lpot+1)**2 |
|||
| integer, | public, | dimension(:), allocatable | :: | ipanimp |
Radial mesh, Panel mesh for impurities ! IPANIMP(NATOMIMP) |
||
| integer, | public, | dimension(:), allocatable | :: | irwsimp |
Radial mesh, IRWS for imps ! IRWSIMP(NATOMIMP) |
||
| integer, | public, | dimension(:), allocatable | :: | hostimp |
Layer index of host atoms ! HOSTIMP(NATYPD) |
||
| integer, | public, | dimension(:), allocatable | :: | atomimp |
Layer index of imp atoms ! ATOMIMP(NATOMIMP) |
||
| integer, | public, | dimension(:), allocatable | :: | irminimp |
Radial mesh, IRMIN for imps ! IRMINIMP(NATOMIMP)) |
||
| integer, | public, | dimension(:,:), allocatable | :: | ircutimp |
Radial mesh, RCUT for imps ! IRCUTIMP(0:IPAND,NATOMIMP) |
||
| real(kind=dp), | public, | dimension(:), allocatable | :: | zimp |
atom charge of imps, ! ZIMP(NATOMIMP) |
||
| real(kind=dp), | public, | dimension(:), allocatable | :: | phiimp |
phi of nonco_angle of impurity ! PHIIMP(NATOMIMP) |
||
| real(kind=dp), | public, | dimension(:), allocatable | :: | thetaimp |
theta of nonco_angle of impurity ! THETAIMP(NATOMIMP) |
||
| real(kind=dp), | public, | dimension(:,:), allocatable | :: | rimp |
Rmesh of imps, ! RIMP(IRMD,NATOMIMP) |
||
| real(kind=dp), | public, | dimension(:,:), allocatable | :: | rclsimp |
impurity positions(scoef file) ! RCLSIMP(3,NATOMIMPD) |
||
| real(kind=dp), | public, | dimension(:,:), allocatable | :: | vispimp |
impurity potential ! VISPIMP(IRMD,NATOMIMP*NSPIN) |
||
| real(kind=dp), | public, | dimension(:,:,:), allocatable | :: | vinsimp |
impurity potential ! VINSIMP(IRMIND:IRMD,LMPOTD,NATOMIMP*NSPIN) |
||
| real(kind=dp), | public, | dimension(:,:,:), allocatable | :: | thetasimp |
shape functions of imps ! THETASIMP(IRID,NFUND,NATOMIMP) |
||
| real(kind=dp), | public, | dimension(:), allocatable | :: | socscale |
scale values of SOC |
||
| complex(kind=dp), | public, | dimension(:,:,:,:), allocatable | :: | rllimp |
impurity wavefunctions ! RLL(NVEC*lmmaxd,lmmaxd,IRMDNEW(I1)) |
Type holding information for the madelung potentials
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | n1 | = | 12 | ||
| integer, | public | :: | irmd |
Maximum number of radial points |
|||
| real(kind=dp), | public, | dimension(:,:,:), allocatable | :: | avmad |
Structure-dependent matrix, dimension: irec, lmpot x lmpot |
||
| real(kind=dp), | public, | dimension(:,:), allocatable | :: | bvmad |
Structure-dependent vector, dimension: irec, lmpot |

Subroutine to allocate and initialize arrays of t_tgmat
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(type_inc), | intent(in) | :: | t_inc | |||
| type(type_tgmatices), | intent(inout) | :: | t_tgmat | |||
| type(type_mpi_cartesian_grid_info), | intent(in) | :: | t_mpi_c_grid |
Subroutine to allocate and initialize arrays of t_dtmatJij
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(type_inc), | intent(in) | :: | t_inc | |||
| type(type_dtmatjijdij), | intent(inout), | allocatable | :: | t_dtmatjij(:) |
Subroutine to allocate and initialize arrays of t_dtmatJij_at
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(type_inc), | intent(in) | :: | t_inc | |||
| type(type_mpi_cartesian_grid_info), | intent(in) | :: | t_mpi_c_grid | |||
| type(type_dtmatjijdij), | intent(inout) | :: | t_dtmatjij_at |
Store parameters needed in t_imp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(type_imp), | intent(inout) | :: | t_imp | |||
| integer, | intent(in) | :: | ipand |
Number of panels in non-spherical part |
||
| integer, | intent(in) | :: | natypd |
Number of kinds of atoms in unit cell |
||
| integer, | intent(in) | :: | irmd |
Maximum number of radial points |
||
| integer, | intent(in) | :: | irid |
Shape functions parameters in non-spherical part |
||
| integer, | intent(in) | :: | nfund |
Shape functions parameters in non-spherical part |
||
| integer, | intent(in) | :: | nspin |
Counter for spin directions |
||
| integer, | intent(in) | :: | irmind |
irmd - irnsd |
||
| integer, | intent(in) | :: | lmpotd |
(lpot+1)**2 |
Subroutine to allocate and initialize t_lloyd
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(type_inc), | intent(in) | :: | t_inc | |||
| type(type_lloyd), | intent(inout) | :: | t_lloyd | |||
| type(type_mpi_cartesian_grid_info), | intent(in) | :: | t_mpi_c_grid |