This is not right for cart types, but ok for those compatible with bishop=0.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | rp | |||
real, | intent(in), | dimension(-ntgrid:) | :: | theta | ||
real, | intent(in), | dimension(-ntgrid:) | :: | invR | ||
real, | intent(inout) | :: | qval | |||
real, | intent(in) | :: | bi | |||
integer, | intent(in) | :: | nperiod | |||
real, | intent(out), | dimension(-ntgrid:) | :: | seik |
subroutine seikon(rp, theta, invR, qval, bi, nperiod, seik)
real, intent(in) :: rp
real, dimension(-ntgrid:), intent(in) :: theta, invR
real, intent(in out) :: qval
real, intent(in) :: bi
integer, intent(in) :: nperiod
real, dimension(-ntgrid:), intent(out) :: seik
real :: dpsidrp
real, dimension(-ntgrid:ntgrid, 2) :: thgrad, rpgrad
real, dimension(-ntgrid:ntgrid) :: trip, dsdthet, rgrid
rgrid = rp !<This is not right for cart types, but ok for those compatible with bishop=0.
call geom%gradient(rgrid, theta, rpgrad, 'P', rp, nth, ntgrid, bishop /= 0)
call geom%gradient(rgrid, theta, thgrad, 'T', rp, nth, ntgrid, bishop /= 0)
call tripprod2dtgrid(rpgrad, thgrad, invR, trip) ; call periodic_copy(trip, 0., nperiod)
call eikonal(theta, invR, trip, qval, bi, seik, dsdthet, dpsidrp)
end subroutine seikon