Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
SUBROUTINE FinalPhase(isGaussian)LOGICAL,INTENT(IN)::isGaussianINTEGER::phaseStepNum!! phase shifts at caustics! this should be precomputed [LP: While IncPhaseIfCaustic can be! precomputed, FinalPhase cannot, as it is dependent on the interpolated `q`! value which is not known until the main run.]! LP: All 2D functions discard the ray point phase if the condition is met,! probably BUG! LP: 2D Gaussian Cartesian reads the phase from the current point, all! others (including 3D) read the phase from the previous point, probably BUGIF(isGaussian)THENphaseStepNum=iS ELSEphaseStepNum=iS-1END IFphaseInt=ray2D(phaseStepNum)%Phase+phaseIF(IsAtCaustic(.TRUE.))&phaseInt=phase+pi/2.END SUBROUTINE FinalPhase