LCOV - code coverage report
Current view: top level - propcalc/eels - corespec.f90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 0 1 0.0 %
Date: 2024-05-14 04:27:50 Functions: 0 2 0.0 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------
       2             : ! Copyright (c) 2017 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_corespec
       8             : 
       9             :   USE m_types_setup, ONLY: t_coreSpecInput
      10             : 
      11             :   implicit none
      12             : 
      13             : ! PARAMETERS
      14             : 
      15             :   complex, parameter :: cone = cmplx(1.0,0.0)
      16             :   complex, parameter :: cimu = cmplx(0.0,1.0)
      17             :   real, parameter :: alpha = 7.29735257e-3
      18             :   real, parameter :: mec2 = 0.51099891e6
      19             :   real, parameter :: ecoredeep = 0.5
      20             : 
      21             :   integer, parameter :: edgel(11) = (/0,1,1,2,2,3,3,4,4,5,5/)
      22             :   integer, parameter :: edgej(11) = (/1,1,3,3,5,5,7,7,9,9,11/)
      23             :   integer, parameter :: sign(4) = (/1,-1,0,0/)
      24             : 
      25             :   character(len=2), parameter :: ssep="> "
      26             :   character(len=3), parameter :: fsos1="t55"
      27             :   character(len=3), parameter :: fsos2="t90"
      28             :   character(len=15), parameter :: fsb="(a,('"//ssep//"'),a,"//fsos1
      29             :   character(len=9), parameter :: fse=fsos2//",2x,a)"
      30             :   character(len=11), parameter :: csmsgerr=" ... STOP !"
      31             :   character(len=14), parameter :: csmsgwar=" ... WARNING !"
      32             :   character(len=32), parameter :: csmsgs = fsb//")"
      33             :   character(len=64), parameter :: csmsgsss = fsb//",a,a5,"//fse
      34             :   character(len=64), parameter :: csmsgsis = fsb//",a,i5,"//fse
      35             :   character(len=64), parameter :: csmsgsisis = fsb//",a,i5,a,i5,"//fse
      36             :   character(len=64), parameter :: csmsgsfs = fsb//",a,f8.3,"//fse
      37             :   character(len=64), parameter :: csmsgses = fsb//",a,es12.3,"//fse
      38             : 
      39             : ! VARIABLES
      40             : 
      41             :   logical :: l_cs
      42             : 
      43             :   integer :: l1,l2,la1,la2,li
      44             :   integer :: m1,m2,mu1,mu2,mi
      45             :   integer :: lx,ln,lax,lan,lix,lin
      46             : 
      47             :   character(len=32) :: smeno
      48             : 
      49             :   type (t_coreSpecInput) :: csi
      50             : 
      51             :   type csvtype
      52             :      sequence
      53             :      integer :: nc  ! main quantum no. of the core level of atomic type
      54             :      integer :: nljc  ! number of l-j edge lines
      55             :      integer, allocatable :: lc(:)  ! edge angular quantum nos.; nljc elements
      56             :      real, allocatable :: eedge(:)  ! lc-dep. edge energy; nljc elements
      57             :      real, allocatable :: occ(:)  ! lc-dep. occupation; nljc elements
      58             :      integer :: nex  ! no. of energy sampling points
      59             :      real, allocatable :: egrid(:)  ! energy grid; 0:nex elements
      60             :      real, allocatable :: eos(:)  ! energy grid / sigma
      61             :      real, allocatable :: eloss(:,:)  ! efermi-eedge+egrid
      62             :      integer :: nen  ! minimum index for which egrid >=0
      63             :      integer :: nqv  ! no. of q vectors
      64             :      integer :: nqphi ! no. of angle-sectors for integral over q vectors
      65             :      integer :: nqr   ! no. of radial-sectors for integral over q vectors
      66             :      real :: alpha_ex  ! maximal angle of incoming electrons
      67             :      real :: beta_ex   ! maximal (measured) angle of outcoming electrons
      68             :      real :: I0        ! incoming intensity
      69             :      real :: qv0  ! |q| of incoming electrons
      70             :      real, allocatable :: qv1(:,:,:)  ! |q| of outgoing electrons
      71             :      real, allocatable :: qv(:,:,:,:)  ! delta q vectors
      72             :      real :: gamma  ! gamma = 1+ek0/mc2
      73             :      real :: beta  ! beta = v/c = 1/sqrt(1-1/gamma^2)
      74             :      real, allocatable :: gaunt(:,:,:,:,:,:)  ! gaunt coefficients
      75             :      real, allocatable :: fc(:,:,:,:)  ! core radial function
      76             :      real, allocatable :: fv(:,:,:,:)  ! valence radial function
      77             :      real, allocatable :: fb(:,:,:,:,:)  ! bessel function
      78             :      real, allocatable :: rmeA(:,:,:,:,:,:,:)  ! matrix elements
      79             :      real, allocatable :: rmeB(:,:,:,:,:,:,:)  ! matrix elements
      80             :      real, allocatable :: rmeC(:,:,:,:,:,:,:)  ! matrix elements
      81             :      real, allocatable :: dose(:,:,:,:,:)  ! dos (bands)
      82             :      real, allocatable :: dosb(:,:,:,:,:)  ! dos (bands)
      83             :      complex, allocatable :: ddscs(:,:,:,:,:)  ! dos (bands)
      84             :      
      85             :   end type csvtype
      86             : 
      87             :   type (csvtype) :: csv
      88             : 
      89           0 : end module m_corespec

Generated by: LCOV version 1.14