Line data Source code
1 : MODULE m_int21
2 : !-----------------------------------------------------------
3 : !
4 : ! Integrates f(:,:,l,s) and g(:,:,l,s) (s=1,2) for given l
5 : ! and itype with different spins (s).
6 : ! Output is ..n21(l,itype), where .. is a (u,d) combination
7 : ! dependet on the (f,g) combination used.
8 : !
9 : !-----------------------------------------------------------
10 : CONTAINS
11 :
12 836 : SUBROUTINE int_21(f,g,atoms,ityp,l,uu21n,ud21n,du21n,dd21n)
13 :
14 : USE m_intgr, ONLY : intgr3
15 : USE m_types_setup
16 :
17 : IMPLICIT NONE
18 :
19 : TYPE(t_atoms), INTENT(IN) :: atoms
20 :
21 : INTEGER, INTENT (IN) :: l,ityp
22 :
23 : REAL, INTENT (IN) :: f(:,:,0:,:)!(atoms%jmtd,2,0:atoms%lmaxd,input%jspins)
24 : REAL, INTENT (IN) :: g(:,:,0:,:)!(atoms%jmtd,2,0:atoms%lmaxd,input%jspins)
25 : REAL, INTENT (INOUT) :: uu21n(0:atoms%lmaxd,atoms%ntype),ud21n(0:atoms%lmaxd,atoms%ntype)
26 : REAL, INTENT (INOUT) :: du21n(0:atoms%lmaxd,atoms%ntype),dd21n(0:atoms%lmaxd,atoms%ntype)
27 :
28 836 : REAL uu_tmp(atoms%jri(ityp))
29 :
30 : uu_tmp(:atoms%jri(ityp)) = f(:atoms%jri(ityp),1,l,2)*f(:atoms%jri(ityp),1,l,1)&
31 635004 : + f(:atoms%jri(ityp),2,l,2)*f(:atoms%jri(ityp),2,l,1)
32 836 : CALL intgr3(uu_tmp,atoms%rmsh(:,ityp),atoms%dx(ityp),atoms%jri(ityp),uu21n(l,ityp))
33 :
34 : uu_tmp(:atoms%jri(ityp)) = f(:atoms%jri(ityp),1,l,2)*g(:atoms%jri(ityp),1,l,1)&
35 635004 : + f(:atoms%jri(ityp),2,l,2)*g(:atoms%jri(ityp),2,l,1)
36 836 : CALL intgr3(uu_tmp,atoms%rmsh(:,ityp),atoms%dx(ityp),atoms%jri(ityp),ud21n(l,ityp))
37 :
38 : uu_tmp(:atoms%jri(ityp)) = g(:atoms%jri(ityp),1,l,2)*f(:atoms%jri(ityp),1,l,1)&
39 635004 : + g(:atoms%jri(ityp),2,l,2)*f(:atoms%jri(ityp),2,l,1)
40 836 : CALL intgr3(uu_tmp,atoms%rmsh(:,ityp),atoms%dx(ityp),atoms%jri(ityp),du21n(l,ityp))
41 :
42 : uu_tmp(:atoms%jri(ityp)) = g(:atoms%jri(ityp),1,l,2)*g(:atoms%jri(ityp),1,l,1)&
43 635004 : + g(:atoms%jri(ityp),2,l,2)*g(:atoms%jri(ityp),2,l,1)
44 836 : CALL intgr3(uu_tmp,atoms%rmsh(:,ityp),atoms%dx(ityp),atoms%jri(ityp),dd21n(l,ityp))
45 :
46 836 : END SUBROUTINE int_21
47 :
48 : END MODULE m_int21
|