LCOV - code coverage report
Current view: top level - wannier/uhu - dujdr.F (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 13 0.0 %
Date: 2019-09-08 04:53:50 Functions: 0 1 0.0 %

          Line data    Source code
       1             :       MODULE m_dujdr
       2             :       CONTAINS
       3             : 
       4           0 :       SUBROUTINE dujdr(jmtd,jri,rmsh,dx,ub,j2,b,l,lmaxd,dub)
       5             : 
       6             :       USE m_constants
       7             :       USE m_difcub
       8             : 
       9             :       IMPLICIT NONE
      10             :       
      11             :       INTEGER, INTENT(IN) :: jri,jmtd,lmaxd
      12             :       REAL, INTENT(IN) :: rmsh(jmtd),dx
      13             :       REAL, INTENT(IN) :: ub(jmtd,2)       ! u(b2)
      14             :       REAL, INTENT(IN) :: j2(0:lmaxd,jmtd) ! j_l(b2*r)
      15             :       REAL, INTENT(IN) :: b                ! b2
      16             :       INTEGER, INTENT(IN) :: l           ! l of sph. Bessel j2
      17             : 
      18             :       REAL, INTENT(OUT) :: dub(jmtd,2)
      19           0 :       REAL :: xi,t(jri,2)
      20             :       INTEGER :: i,j
      21             : 
      22             :       ! derivatives d/dr for large and small component of q
      23           0 :       DO i=1,jri
      24           0 :        t(i,:) = ub(i,:) / rmsh(i) * j2(l,i)
      25             :       ENDDO
      26             : 
      27           0 :       DO j = 1, 2
      28             :          ! derivative at 1st point
      29           0 :          dub(1,j) = difcub( rmsh(1),t(1,j),rmsh(1) )
      30             : 
      31             :          ! derivative at 2nd...(jri-2)th point
      32           0 :          DO i = 2, jri-2
      33           0 :             dub(i,j) = difcub( rmsh(i-1),t(i-1,j),rmsh(i) )
      34             :          ENDDO
      35             : 
      36             :          ! derivative at last two points
      37           0 :          dub(jri-1,j) = difcub( rmsh(jri-3),t(jri-3,j),rmsh(jri-1) )
      38           0 :          dub(jri,j) = difcub( rmsh(jri-3),t(jri-3,j),rmsh(jri) )
      39             :       ENDDO
      40             : 
      41           0 :       DO i=1,jri
      42           0 :        dub(i,:) = dub(i,:)*rmsh(i)
      43             :       ENDDO
      44             : 
      45             :       ! complete d/dr (ub*j2) = ub'j2 + ub j2' with sph. Bessel func. j
      46             :       ! rule:  j'_{l}(ar) = a*j_{l-1}(ar) - (l+1)/r*j_{l}(ar)
      47             : c      IF(l.ne.0) THEN
      48             : c       DO i=1,jri
      49             : c        xi = rmsh(i)
      50             : c        dub(i,:) = dub(i,:) * j2(l,i) * xi
      51             : c     >           + ub(i,:) *( j2(l-1,i)*b - (l+1)/xi*j2(l,i) ) 
      52             : c       ENDDO
      53             : c      ELSE
      54             : c       DO i=1,jri
      55             : c        xi = rmsh(i)
      56             : c        dub(i,:) = dub(i,:) * j2(l,i) * xi
      57             : c     >           - ub(i,:) * j2(1,i) * b
      58             : c       ENDDO
      59             : c      ENDIF
      60             :       
      61           0 :       END SUBROUTINE dujdr
      62             :       END MODULE m_dujdr

Generated by: LCOV version 1.13