LCOV - code coverage report
Current view: top level - eigen_soc - sgml.f90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 15 25 60.0 %
Date: 2024-04-26 04:44:34 Functions: 1 1 100.0 %

          Line data    Source code
       1             : MODULE m_sgml
       2             :   CONTAINS
       3     2683392 :   REAL FUNCTION sgml(l1,m1,is1,l2,m2,is2)
       4             :     USE m_juDFT
       5             :     USE m_constants
       6             :     !
       7             :     ! FUNCTION SGML ******************************************************
       8             :     !
       9             :     !      THIS FUNCTION CALCULATES ANGULAR PART OF THE MATRIX ELEMENT
      10             :     !
      11             :     !      ( < L1 MP1 IS1 ! SGM*L ! L2 MP2 IS2 > ) OF SPIN-ORBIT COUPLING
      12             :     !
      13             :     !      FOR COMPLEX :: SPHERICAL HARMONICS FOR :
      14             :     !      L >= 0 ,-L <= M <= L , SGM = 1 OR -1 , IS = 1   OR -1
      15             :     !
      16             :     !                             SATOSHI TAKIZAWA, ISSP, MAR 1990
      17             :     !            MODIFIED BY      STEFAN BL"UGEL  , ISSP, MAR 1990
      18             :     ! *********************************************************************
      19             :     !
      20             :     IMPLICIT NONE
      21             :     !     ..
      22             :     !     .. Scalar Arguments ..
      23             :     INTEGER is1,is2,l1,l2,m1,m2
      24             :     !     ..
      25             :     !     .. Local Scalars ..
      26             :     REAL sgm1,sgm2
      27             :     !     ..
      28             :     !     ..
      29     2683392 :     IF (l1.NE.l2) THEN
      30     2683392 :        sgml = 0.0
      31             :        RETURN
      32             :     ELSE
      33      342880 :        sgm1 = is1
      34      342880 :        sgm2 = is2
      35      342880 :        IF (l1.LT.0) THEN
      36           0 :           WRITE (oUnit,FMT=*) ' PROGRAM STOPS IN FUNCTION SGML ( L < 0 ) .'
      37           0 :           WRITE (oUnit,FMT=*) ' L1 =',l1,'    L2 =',l2
      38           0 :           CALL juDFT_error("SGMLR",calledby="sgml")
      39      342880 :        ELSE IF ((ABS(m1).GT.l1) .OR. (ABS(m2).GT.l2)) THEN
      40           0 :           WRITE (oUnit,FMT=*) ' PROGRAM STOPS IN SGMLC ( jij%M < L OR L < jij%M )'
      41           0 :           WRITE (oUnit,FMT=*) ' L1 =',l1,'    L2 =',l2
      42           0 :           WRITE (oUnit,FMT=*) ' M1 =',m1,'    M2 =',m2
      43           0 :           CALL juDFT_error("SGML",calledby="sgml")
      44      342880 :        ELSE IF ((is1.NE.-1.AND.is1.NE.1) .OR. (is2.NE.-1.AND.is2.NE.1)) THEN
      45           0 :           WRITE (oUnit,FMT=*) ' PROGRAM STOPS IN FUNCTION SGMLC ( S >< +-1/2 ) .'
      46           0 :           WRITE (oUnit,FMT=*) ' S1 =',0.5*sgm1,'    S2 =',0.5*sgm2
      47           0 :           CALL juDFT_error("SGML",calledby="sgml")
      48             :        END IF
      49             :        !
      50             :        !
      51      342880 :        IF (m1.EQ.m2+1 .AND. is1.EQ.is2-2) THEN
      52        5560 :           sgml = SQRT(REAL((l2-m2)* (l2+m2+1)))
      53      337320 :        ELSE IF (m1.EQ.m2-1 .AND. is1.EQ.is2+2) THEN
      54        5560 :           sgml = SQRT(REAL((l2+m2)* (l2-m2+1)))
      55      331760 :        ELSE IF (m1.EQ.m2 .AND. is1.EQ.is2) THEN
      56       12192 :           sgml = m2*sgm2
      57             :        ELSE
      58             :           sgml = 0.0
      59             :        END IF
      60      342880 :        RETURN
      61             :     END IF
      62             :     !
      63             :     RETURN
      64             :   END FUNCTION sgml
      65             : END MODULE m_sgml

Generated by: LCOV version 1.14