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 RayNormal_unit(t,phi,e1,e2)! Computes the ray normals! Same as routine RayNormal except this version assumes t is already normalizedREAL(KIND=8),INTENT(IN)::t(3)! tangent vector (normalized)REAL(KIND=8),INTENT(IN)::phi! torsionREAL(KIND=8),INTENT(OUT)::e1(3),e2(3)! ray normalsRL=NORM2(t(1:2))! e1e1(1)=(t(1)*t(3)*COS(phi)+t(2)*SIN(phi))/RLe1(2)=(t(2)*t(3)*COS(phi)-t(1)*SIN(phi))/RLe1(3)=-RL*COS(phi)! e2e2(1)=(t(1)*t(3)*SIN(phi)-t(2)*COS(phi))/RLe2(2)=(t(2)*t(3)*SIN(phi)+t(1)*COS(phi))/RLe2(3)=-RL*SIN(phi)RETURN END SUBROUTINE RayNormal_unit