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
FUNCTION hmap_knot_eval_dxdq(sf,q_in,q_vec)RESULT(dxdq_qvec)! MODULESIMPLICIT NONE!-----------------------------------------------------------------------------------------------------------------------------------! INPUT VARIABLESCLASS(t_hmap_knot),INTENT(IN)::sfREAL(wp),INTENT(IN)::q_in(3)REAL(wp),INTENT(IN)::q_vec(3)!-----------------------------------------------------------------------------------------------------------------------------------! OUTPUT VARIABLESREAL(wp)::dxdq_qvec(3)!-----------------------------------------------------------------------------------------------------------------------------------! LOCAL VARIABLESREAL(wp)::coskzeta,sinkzeta!===================================================================================================================================ASSOCIATE(zeta=>q_in(3))coskzeta=COS(sf%k*zeta)sinkzeta=SIN(sf%k*zeta)dxdq_qvec(1:3)=(/coskzeta*q_vec(1),-sinkzeta*q_vec(1),q_vec(2)/)&+(/-sf%k*sf%Rl(q_in)*sinkzeta-sf%l*sf%delta*SIN(sf%l*zeta)*coskzeta,&-sf%k*sf%Rl(q_in)*coskzeta+sf%l*sf%delta*SIN(sf%l*zeta)*sinkzeta,&sf%l*sf%delta*COS(sf%l*zeta)/)*q_vec(3)END ASSOCIATEEND FUNCTION hmap_knot_eval_dxdq