LCOV - code coverage report
Current view: top level - core - inconz.f (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 89 89 100.0 %
Date: 2024-04-25 04:21:55 Functions: 1 1 100.0 %

          Line data    Source code
       1         332 :       SUBROUTINE inconz(e,l,xmj,kap1,kap2,vv,bb,rr,xx1,xx2)
       2             : 
       3             : c..........................................................inconz
       4             : c initial point for outcome regular solution of dirac eq.
       5             : c order kap1=-L-1, kap2=L
       6             : c
       7             :       USE m_constants, ONLY : c_light
       8             :       IMPLICIT NONE
       9             : C     .. Scalar Arguments ..
      10             :       REAL bb,e,rr,vv,xmj
      11             :       INTEGER kap1,kap2,l
      12             : C     ..
      13             : C     .. Array Arguments ..
      14             :       REAL xx1(4),xx2(4)
      15             : C     ..
      16             : C     .. Local Scalars ..
      17             :       REAL aa11,aa12,aa21,aa22,bb1,bb2,bc0,bqq,cc,cg1,cg2,cg4,cg5,cg8,
      18             :      +     cgo,csq,det,emvpp,emvqq,rpwgpm,tz,vc0
      19             :       INTEGER i,j,m,mps,nsol
      20             : C     ..
      21             : C     .. Local Arrays ..
      22             :       REAL cgd(2),cgmd(2),gam(2),kap(2),pc(2,2,0:1),qc(2,2,0:1),wp(2,2),
      23             :      +     wq(2,2)
      24             : C     ..
      25             : C     .. Intrinsic Functions ..
      26             :       INTRINSIC abs,real,int,sqrt
      27             : C     ..
      28         332 :       cc = c_light(2.0)
      29         332 :       csq = cc*cc
      30             : c
      31             : C     EXPANSION COEFFICIENTS FOR THE POTENTIAL AND B-FIELD
      32             : C VV=VV(1)
      33         332 :       tz = real(int(-vv*rr))
      34         332 :       vc0 = vv - (-tz)/rr
      35             : C BB=BB(1)
      36         332 :       bc0 = bb
      37             : C
      38             : C    CALCULATE G-COEFFICIENTS OF B-FIELD
      39             : C
      40             : c      KAP1 = - L - 1
      41             : c      KAP2 = + L
      42         332 :       cg1 = -xmj/ (kap1+0.5)
      43         332 :       cg5 = -xmj/ (-kap1+0.5)
      44         332 :       cgd(1) = cg1
      45         332 :       cgmd(1) = cg5
      46         332 :       kap(1) = real(kap1)
      47         332 :       gam(1) = sqrt(kap(1)**2- (tz/cc)**2)
      48         332 :       IF (abs(xmj).GE.l) THEN
      49         162 :          cg2 = 0.00
      50         162 :          cg4 = 0.00
      51         162 :          cg8 = 0.00
      52         162 :          nsol = 1
      53         162 :          cgd(2) = 0.00
      54         162 :          cgo = 0.00
      55         162 :          cgmd(2) = 0.00
      56         162 :          gam(2) = 0.00
      57         162 :          kap(2) = 0.00
      58             :       ELSE
      59         170 :          cg2 = -sqrt(1.0- (xmj/ (kap1+0.50))**2)
      60         170 :          cg4 = -xmj/ (kap2+0.50)
      61         170 :          cg8 = -xmj/ (-kap2+0.50)
      62         170 :          nsol = 2
      63         170 :          cgd(2) = cg4
      64         170 :          cgo = cg2
      65         170 :          cgmd(2) = cg8
      66         170 :          kap(2) = real(kap2)
      67         170 :          gam(2) = sqrt(kap(2)**2- (tz/cc)**2)
      68             :       END IF
      69             : C
      70         834 :       DO 10 j = 1,nsol
      71         502 :          i = 3 - j
      72         502 :          pc(j,j,0) = sqrt(abs(kap(j)-gam(j)))
      73         502 :          qc(j,j,0) = (kap(j)+gam(j))* (csq/tz)*pc(j,j,0)
      74         502 :          pc(i,j,0) = 0.0
      75         502 :          qc(i,j,0) = 0.0
      76         332 :    10 CONTINUE
      77             : C  DETERMINE HIGHER EXPANSION COEFFICIENTS FOR THE WAVE FUNCTIONS
      78         332 :       mps = 1
      79         332 :       aa12 = -tz/csq
      80         332 :       aa21 = tz
      81         332 :       emvqq = (e-vc0+csq)/csq
      82         332 :       emvpp = -e + vc0
      83         332 :       bqq = bc0/csq
      84         834 :       DO 40 j = 1,nsol
      85        1004 :          DO 30 m = 1,mps
      86        1344 :             DO 20 i = 1,nsol
      87         842 :                bb1 = (emvqq+bqq*cgmd(i))*qc(i,j,m-1)
      88             :                bb2 = (emvpp+bc0*cgd(i))*pc(i,j,m-1) +
      89         842 :      +               bc0*cgo*pc(3-i,j,m-1)
      90         842 :                aa11 = gam(j) + m + kap(i)
      91         842 :                aa22 = gam(j) + m - kap(i)
      92         842 :                det = aa11*aa22 - aa12*aa21
      93         842 :                pc(i,j,m) = (bb1*aa22-aa12*bb2)/det
      94         842 :                qc(i,j,m) = (aa11*bb2-bb1*aa21)/det
      95         502 :    20       CONTINUE
      96         502 :    30    CONTINUE
      97         332 :    40 CONTINUE
      98             : C
      99             : C  PERFORM SUMMATION OVER WAVE FUNCTION - EXPANSION COEFFICIENTS
     100             : C  FOR THE FIRST - MESH - POINT
     101             : c      RR= RC(1)
     102         834 :       DO 80 j = 1,nsol
     103         502 :          rpwgpm = rr** (gam(j))
     104        1344 :          DO 50 i = 1,nsol
     105         842 :             wp(i,j) = pc(i,j,0)*rpwgpm
     106         842 :             wq(i,j) = qc(i,j,0)*rpwgpm
     107         502 :    50    CONTINUE
     108        1004 :          DO 70 m = 1,mps
     109         502 :             rpwgpm = rpwgpm*rr
     110        1344 :             DO 60 i = 1,nsol
     111         842 :                wp(i,j) = wp(i,j) + pc(i,j,m)*rpwgpm
     112         842 :                wq(i,j) = wq(i,j) + qc(i,j,m)*rpwgpm
     113         502 :    60       CONTINUE
     114         502 :    70    CONTINUE
     115         332 :    80 CONTINUE
     116             : C---> First point solutions construction
     117         332 :       IF (nsol.EQ.2) THEN
     118         170 :          xx1(1) = wp(1,1)
     119         170 :          xx1(2) = wq(1,1)
     120         170 :          xx1(3) = wp(2,1)
     121         170 :          xx1(4) = wq(2,1)
     122             : c
     123         170 :          xx2(1) = wp(1,2)
     124         170 :          xx2(2) = wq(1,2)
     125         170 :          xx2(3) = wp(2,2)
     126         170 :          xx2(4) = wq(2,2)
     127             :       ELSE
     128         162 :          xx1(1) = wp(1,1)
     129         162 :          xx1(2) = wq(1,1)
     130             : c not needed
     131         162 :          xx1(3) = 0.0
     132         162 :          xx1(4) = 0.0
     133         162 :          xx2(1) = 0.0
     134         162 :          xx2(2) = 0.0
     135         162 :          xx2(3) = 0.0
     136         162 :          xx2(4) = 0.0
     137             :       END IF
     138         332 :       RETURN
     139             :       END

Generated by: LCOV version 1.14