Line data Source code
1 : MODULE m_denMultipoleExp
2 :
3 : IMPLICIT NONE
4 :
5 : CONTAINS
6 :
7 0 : SUBROUTINE denMultipoleExp(input, fmpi, atoms, sphhar, stars, sym, juphon, cell, den)
8 :
9 : USE m_types
10 : USE m_constants
11 : USE m_mpmom
12 :
13 : TYPE(t_input), INTENT(IN) :: input
14 : TYPE(t_mpi), INTENT(IN) :: fmpi
15 : TYPE(t_atoms), INTENT(IN) :: atoms
16 : TYPE(t_sphhar), INTENT(IN) :: sphhar
17 : TYPE(t_stars), INTENT(IN) :: stars
18 : TYPE(t_sym), INTENT(IN) :: sym
19 : TYPE(t_juphon), INTENT(IN) :: juphon
20 : TYPE(t_cell), INTENT(IN) :: cell
21 :
22 : TYPE(t_potden), INTENT(IN) :: den
23 :
24 0 : type(t_potden) :: workDen
25 0 : COMPLEX :: qlm(-atoms%lmaxd:atoms%lmaxd,0:atoms%lmaxd,atoms%ntype)
26 :
27 0 : IF(input%jspins == 2) THEN
28 0 : IF(fmpi%irank.EQ.0) THEN
29 0 : WRITE(oUnit,*) 'Multipole expansion for spin-up density:'
30 0 : WRITE(oUnit,*) '======================================='
31 : END IF
32 0 : qlm = CMPLX(0.0,0.0)
33 0 : workDen = den
34 0 : CALL mpmom(input,fmpi,atoms,sphhar,stars,sym,juphon,cell ,workDen%pw(1:,1),workDen%mt(:,0:,1:,1),POTDEN_TYPE_DEN,qlm,l_coreCharge=.FALSE.)
35 0 : IF(fmpi%irank.EQ.0) THEN
36 0 : WRITE(oUnit,*) '======================================='
37 : END IF
38 :
39 0 : IF(fmpi%irank.EQ.0) THEN
40 0 : WRITE(oUnit,*) 'Multipole expansion for spin-down density:'
41 0 : WRITE(oUnit,*) '======================================='
42 : END IF
43 0 : qlm = CMPLX(0.0,0.0)
44 0 : CALL mpmom(input,fmpi,atoms,sphhar,stars,sym,juphon,cell ,workDen%pw(1:,2),workDen%mt(:,0:,1:,2),POTDEN_TYPE_DEN,qlm,l_coreCharge=.FALSE.)
45 0 : IF(fmpi%irank.EQ.0) THEN
46 0 : WRITE(oUnit,*) '======================================='
47 : END IF
48 : END IF
49 :
50 0 : IF(fmpi%irank.EQ.0) THEN
51 0 : WRITE(oUnit,*) 'Multipole expansion for charge density:'
52 0 : WRITE(oUnit,*) '======================================='
53 : END IF
54 0 : qlm = CMPLX(0.0,0.0)
55 0 : workDen = den
56 0 : IF(input%jspins == 2) CALL workDen%SpinsToChargeAndMagnetisation()
57 0 : CALL mpmom(input,fmpi,atoms,sphhar,stars,sym,juphon,cell ,workDen%pw(1:,1),workDen%mt(:,0:,1:,1),POTDEN_TYPE_DEN,qlm,l_coreCharge=.FALSE.)
58 0 : IF(fmpi%irank.EQ.0) THEN
59 0 : WRITE(oUnit,*) '======================================='
60 : END IF
61 :
62 0 : IF(input%jspins == 2) THEN
63 0 : IF(fmpi%irank.EQ.0) THEN
64 0 : WRITE(oUnit,*) 'Multipole expansion for magnetization density:'
65 0 : WRITE(oUnit,*) '======================================='
66 : END IF
67 0 : qlm = CMPLX(0.0,0.0)
68 0 : CALL mpmom(input,fmpi,atoms,sphhar,stars,sym,juphon,cell ,workDen%pw(1:,2),workDen%mt(:,0:,1:,2),POTDEN_TYPE_DEN,qlm,l_coreCharge=.FALSE.)
69 0 : IF(fmpi%irank.EQ.0) THEN
70 0 : WRITE(oUnit,*) '======================================='
71 : END IF
72 : END IF
73 :
74 0 : END SUBROUTINE denMultipoleExp
75 :
76 : END MODULE m_denMultipoleExp
|