LCOV - code coverage report
Current view: top level - core - findlim.f (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 13 17 76.5 %
Date: 2024-04-19 04:21:58 Functions: 1 1 100.0 %

          Line data    Source code
       1             :       MODULE m_findlim
       2             : c......................................................findlim
       3             : c finds turning point and practical "infinity"
       4             : c
       5             :       CONTAINS
       6          10 :       SUBROUTINE findlim(
       7          10 :      >                   mrad,lll,ec,vv,rc,
       8             :      <                   nmatch,nzero)
       9             : 
      10             :       USE m_constants
      11             : 
      12             :       IMPLICIT NONE
      13             : C     ..
      14             : C     .. Scalar Arguments ..
      15             :       REAL,    INTENT (IN) :: ec
      16             :       INTEGER, INTENT (IN) :: mrad,lll
      17             :       INTEGER, INTENT (OUT):: nmatch,nzero
      18             : C     ..
      19             : C     .. Array Arguments ..
      20             :       REAL   , INTENT (IN) :: rc(mrad),vv(mrad)
      21             : C     ..
      22             : C     .. Local Scalars ..
      23             :       REAL unend
      24             :       INTEGER n,nn
      25             : C     ..
      26             : C     .. Intrinsic Functions ..
      27             :       INTRINSIC mod
      28             : C     ..
      29             : C     .. Data statements ..
      30             :       DATA unend/150.0/
      31             : C     ..
      32             : C                   --------------------
      33             : C--->                  FIND    NZERO
      34             : C                   --------------------
      35        5616 :       DO 10 n = 1, (mrad-1)
      36        5616 :          IF ((vv(n)-ec)*rc(n)**2.GT.unend) THEN
      37          10 :             IF (mod(n,2).EQ.0) THEN
      38           2 :                nzero = n + 1
      39             :             ELSE
      40           8 :                nzero = n
      41             :             END IF
      42             :             GO TO 20
      43             :          END IF
      44           0 :    10 CONTINUE
      45           0 :       nzero = mrad - 1
      46             :       WRITE (oUnit,FMT=
      47             :      +'('' NRC='',I4,'' L='',I2,
      48           0 :      +  ''  NZERO SET TO  (NRC-1) ='',I4)') mrad,lll,(mrad-1)
      49             :    20 CONTINUE
      50             : C                     --------------------
      51             : C--->                   FIND    NMATCH
      52             : C                     --------------------
      53          10 :       n = nzero + 1
      54         802 :       DO nn = 1,nzero
      55         802 :          n = n - 1
      56             : !        IF ( (vv(n) + lll/rc(n)**2 - ec) < 0.0 ) THEN
      57         802 :          IF ((vv(n)-ec).LT.0.0) THEN
      58          10 :             nmatch = n
      59          10 :             RETURN
      60             :          END IF
      61             :       ENDDO
      62             :       WRITE (oUnit,FMT=
      63             :      +'(//,''  STOP IN <<CORE>>'',/,
      64             :      +     '' NRC='',I2,'' L='',I2,/,
      65           0 :      +     ''  NO MATCHING-RADIUS FOUND FOR  EC='',F10.3)') mrad,lll,ec
      66             : 
      67             :       
      68             : 
      69             :       END SUBROUTINE findlim
      70             :       END MODULE m_findlim

Generated by: LCOV version 1.14