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 UpdateDepthSegmentT(x,t)REAL(KIND=8),INTENT(IN)::x(2),t(2)! LP: Handles edge cases based on which direction the ray is going. If the! ray takes a small step in the direction of t, it will remain in the same! segment as it is now.IF(t(2)>=0.0)THEN! SSP%z( iSegz ) <= x( 2 ) < SSP%z( iSegz + 1 )DO WHILE(x(2)<SSP%z(iSegz).AND.iSegz>1)iSegz=iSegz-1END DO DO WHILE(x(2)>=SSP%z(iSegz+1).AND.iSegz<SSP%Npts-1)iSegz=iSegz+1END DO ELSE! SSP%z( iSegz ) < x( 2 ) <= SSP%z( iSegz + 1 )DO WHILE(x(2)>SSP%z(iSegz+1).AND.iSegz<SSP%Npts-1)iSegz=iSegz+1END DO DO WHILE(x(2)<=SSP%z(iSegz).AND.iSegz>1)iSegz=iSegz-1END DO ENDIF END SUBROUTINE UpdateDepthSegmentT