UpdateRayPQ Subroutine

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)

Called by

proc~~updateraypq~~CalledByGraph proc~updateraypq UpdateRayPQ proc~step3d Step3D proc~step3d->proc~updateraypq proc~traceray3d TraceRay3D proc~traceray3d->proc~step3d proc~bellhopcore BellhopCore proc~bellhopcore->proc~traceray3d program~bellhop3d BELLHOP3D program~bellhop3d->proc~bellhopcore

Source Code

  SUBROUTINE UpdateRayPQ ( ray1, ray0, h, d_phi, d_p_tilde, d_p_hat, d_q_tilde, d_q_hat )
    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 ), d_p_hat( 2 ), d_q_tilde( 2 ), d_q_hat( 2 )

    ray1%phi = ray0%phi + h * d_phi
    ray1%p_tilde = ray0%p_tilde + h * d_p_tilde
    ray1%q_tilde = ray0%q_tilde + h * d_q_tilde
    ray1%p_hat   = ray0%p_hat   + h * d_p_hat
    ray1%q_hat   = ray0%q_hat   + h * d_q_hat

    ! LP: no longer missing the hw0 / hw1 blend
    ! ray1%f    = ray0%f    + h * d_f
    ! ray1%g    = ray0%g    + h * d_g
    ! ray1%h    = ray0%h    + h * d_h
    ! ray1%DetP = ray0%DetP + h * d_DetP
    ! ray1%DetQ = ray0%DetQ + h * d_DetQ

  END SUBROUTINE UpdateRayPQ