eikonal Subroutine

private pure subroutine eikonal(theta, invR, trip, qval, bi, seik, dsdthet, dpsidrp)

Uses

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(-ntgrid:) :: theta
real, intent(in), dimension(-ntgrid:) :: invR
real, intent(in), dimension(-ntgrid:) :: trip
real, intent(inout) :: qval
real, intent(in) :: bi
real, intent(out), dimension(-ntgrid:) :: seik
real, intent(out), dimension(-ntgrid:) :: dsdthet
real, intent(out) :: dpsidrp

Contents

Source Code


Source Code

  pure subroutine eikonal(theta, invR, trip, qval, bi, seik, dsdthet, dpsidrp)
    use constants, only: twopi
    implicit none
    real, dimension(-ntgrid:), intent(in) :: theta, invR, trip
    real, dimension(-ntgrid:), intent(out) :: seik, dsdthet
    real, intent(in out) :: qval
    real, intent(in) :: bi
    real, intent(out) :: dpsidrp

    dsdthet = -bi * invR**2 / trip
    call integrate(dsdthet, theta, seik, ntgrid)

    if (local_eq) then
       dpsidrp = -(seik(nth) - seik(-nth)) / (twopi * qval)
       seik = seik / dpsidrp
       dsdthet = dsdthet / dpsidrp
    else
       dpsidrp = 1.
       qval = -(seik(nth) - seik(-nth)) / (twopi)
    end if
  end subroutine eikonal