IffGit has a new shared runner for building Docker images in GitLab CI. Visit https://iffgit.fz-juelich.de/examples/ci-docker-in-docker for more details.

corespec.f90 3.41 KB
Newer Older
Daniel Wortmann's avatar
Daniel Wortmann committed
1
2
3
4
5
6
7
8
!--------------------------------------------------------------------------------
! Copyright (c) 2017 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------

module m_corespec

9
  USE m_types_setup, ONLY: t_coreSpecInput
10

Daniel Wortmann's avatar
Daniel Wortmann committed
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
  implicit none

! PARAMETERS

  complex, parameter :: cone = cmplx(1.d0,0.d0)
  complex, parameter :: cimu = cmplx(0.d0,1.d0)
  real, parameter :: alpha = 7.29735257d-3
  real, parameter :: mec2 = 0.51099891d6
  real, parameter :: ecoredeep = 0.5d0

  integer, parameter :: edgel(11) = (/0,1,1,2,2,3,3,4,4,5,5/)
  integer, parameter :: edgej(11) = (/1,1,3,3,5,5,7,7,9,9,11/)
  integer, parameter :: sign(4) = (/1,-1,0,0/)

  character(len=2), parameter :: ssep="> "
  character(len=3), parameter :: fsos1="t55"
  character(len=3), parameter :: fsos2="t90"
  character(len=15), parameter :: fsb="(a,('"//ssep//"'),a,"//fsos1
  character(len=9), parameter :: fse=fsos2//",2x,a)"
  character(len=11), parameter :: csmsgerr=" ... STOP !"
  character(len=14), parameter :: csmsgwar=" ... WARNING !"
  character(len=32), parameter :: csmsgs = fsb//")"
  character(len=64), parameter :: csmsgsss = fsb//",a,a5,"//fse
  character(len=64), parameter :: csmsgsis = fsb//",a,i5,"//fse
  character(len=64), parameter :: csmsgsisis = fsb//",a,i5,a,i5,"//fse
  character(len=64), parameter :: csmsgsfs = fsb//",a,f8.3,"//fse
  character(len=64), parameter :: csmsgses = fsb//",a,es12.3,"//fse

! VARIABLES

  logical :: l_cs

  integer :: l1,l2,la1,la2,li
  integer :: m1,m2,mu1,mu2,mi
  integer :: lx,ln,lax,lan,lix,lin

  character(len=32) :: smeno

49
  type (t_coreSpecInput) :: csi
Daniel Wortmann's avatar
Daniel Wortmann committed
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

  type csvtype
     sequence
     integer :: nc  ! main quantum no. of the core level of atomic type
     integer :: nljc  ! number of l-j edge lines
     integer, allocatable :: lc(:)  ! edge angular quantum nos.; nljc elements
     real, allocatable :: eedge(:)  ! lc-dep. edge energy; nljc elements
     real, allocatable :: occ(:)  ! lc-dep. occupation; nljc elements
     integer :: nex  ! no. of energy sampling points
     real, allocatable :: egrid(:)  ! energy grid; 0:nex elements
     real, allocatable :: eos(:)  ! energy grid / sigma
     real, allocatable :: eloss(:,:)  ! efermi-eedge+egrid
     integer :: nen  ! minimum index for which egrid >=0
     integer :: nqv  ! no. of q vectors
     real :: qv0  ! |q| of incoming electrons
     real, allocatable :: qv1(:,:,:)  ! |q| of outgoing electrons
     real, allocatable :: qv(:,:,:,:)  ! delta q vectors
     real :: gamma  ! gamma = 1+ek0/mc2
     real :: beta  ! beta = v/c = 1/sqrt(1-1/gamma^2)
     real, allocatable :: gaunt(:,:,:,:,:,:)  ! gaunt coefficients
     real, allocatable :: fc(:,:,:,:)  ! core radial function
     real, allocatable :: fv(:,:,:,:)  ! valence radial function
     real, allocatable :: fb(:,:,:,:,:)  ! bessel function
     real, allocatable :: rmeA(:,:,:,:,:,:,:)  ! matrix elements
     real, allocatable :: rmeB(:,:,:,:,:,:,:)  ! matrix elements
     real, allocatable :: rmeC(:,:,:,:,:,:,:)  ! matrix elements
     real, allocatable :: dose(:,:,:,:,:)  ! dos (bands)
     real, allocatable :: dosb(:,:,:,:,:)  ! dos (bands)
     complex, allocatable :: ddscs(:,:,:,:,:)  ! dos (bands)
     
  end type csvtype

  type (csvtype) :: csv

end module m_corespec