Step3DMod Module

3D ray propagation with adaptive step control and complex boundary interactions


Uses

  • module~~step3dmod~~UsesGraph module~step3dmod Step3DMod module~bdry3dmod bdry3Dmod module~step3dmod->module~bdry3dmod module~bellhopmod bellhopMod module~step3dmod->module~bellhopmod module~cross_products cross_products module~step3dmod->module~cross_products module~raynormals RayNormals module~step3dmod->module~raynormals module~sspmod sspmod module~step3dmod->module~sspmod module~fatalerror FatalError module~bdry3dmod->module~fatalerror module~monotonicmod monotonicMod module~bdry3dmod->module~monotonicmod module~subtabulate SubTabulate module~bdry3dmod->module~subtabulate module~mathconstants MathConstants module~bellhopmod->module~mathconstants module~sspmod->module~fatalerror module~sspmod->module~monotonicmod module~splinec splinec module~sspmod->module~splinec

Used by

  • module~~step3dmod~~UsedByGraph module~step3dmod Step3DMod proc~step2d~2 Step2D proc~step2d~2->module~step3dmod proc~traceray3d TraceRay3D proc~traceray3d->module~step3dmod

Subroutines

public subroutine Step3D(ray0, ray2, topRefl, botRefl)

! what if we cross isegx, isegy, or isegz at the same time?

Arguments

Type IntentOptional Attributes Name
type(ray3DPt), intent(inout) :: ray0
type(ray3DPt), intent(inout) :: ray2
logical, intent(out) :: topRefl
logical, intent(out) :: botRefl

public subroutine ComputeDeltaPQ(ray, c, gradc, cnn, cmn, cmm, d_phi, d_p_tilde, d_p_hat, d_q_tilde, d_q_hat)

Arguments

Type IntentOptional Attributes Name
type(ray3DPt), intent(in) :: ray
real(kind=8), intent(in) :: c
real(kind=8), intent(in) :: gradc(3)
real(kind=8), intent(in) :: cnn
real(kind=8), intent(in) :: cmn
real(kind=8), intent(in) :: cmm
complex(kind=8), intent(out) :: d_phi
real(kind=8), intent(out) :: d_p_tilde(2)
real(kind=8), intent(out) :: d_p_hat(2)
real(kind=8), intent(out) :: d_q_tilde(2)
real(kind=8), intent(out) :: d_q_hat(2)

public subroutine UpdateRayPQ(ray1, ray0, h, d_phi, d_p_tilde, d_p_hat, d_q_tilde, d_q_hat)

Arguments

Type IntentOptional Attributes Name
type(ray3DPt), intent(inout) :: ray1
type(ray3DPt), intent(in) :: ray0
real(kind=8), intent(in) :: h
complex(kind=8), intent(in) :: d_phi
real(kind=8), intent(in) :: d_p_tilde(2)
real(kind=8), intent(in) :: d_p_hat(2)
real(kind=8), intent(in) :: d_q_tilde(2)
real(kind=8), intent(in) :: d_q_hat(2)

public subroutine ReduceStep3D(x0, urayt, iSegx0, iSegy0, iSegz0, h)

Arguments

Type IntentOptional Attributes Name
real(kind=8), intent(in) :: x0(3)
real(kind=8), intent(in) :: urayt(3)
integer, intent(in) :: iSegx0
integer, intent(in) :: iSegy0
integer, intent(in) :: iSegz0
real(kind=8), intent(inout) :: h

public subroutine StepToBdry3D(x0, x2, urayt, iSegx0, iSegy0, iSegz0, h, topRefl, botRefl, snapDim)

Arguments

Type IntentOptional Attributes Name
real(kind=8), intent(in) :: x0(3)
real(kind=8), intent(inout) :: x2(3)
real(kind=8), intent(in) :: urayt(3)
integer, intent(in) :: iSegx0
integer, intent(in) :: iSegy0
integer, intent(in) :: iSegz0
real(kind=8), intent(inout) :: h
logical, intent(out) :: topRefl
logical, intent(out) :: botRefl
integer, intent(out) :: snapDim