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.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Source Code
subroutine cart_to_latlon(np,q,xs,ys)! vector version of cart_to_latlon1integer,intent(in)::npreal(ESMF_KIND_R8),intent(inout)::q(3,np)real(ESMF_KIND_R8),intent(inout)::xs(np),ys(np)! localreal(ESMF_KIND_R8),parameter::esl=1.e-10real(ESMF_KIND_R8)::p(3)real(ESMF_KIND_R8)::dist,lat,loninteger i,kdo i=1,npdo k=1,3p(k)=q(k,i)enddodist=sqrt(p(1)**2+p(2)**2+p(3)**2)do k=1,3p(k)=p(k)/distenddo if((abs(p(1))+abs(p(2)))<esl)thenlon=0.elselon=atan2(p(2),p(1))! range [-pi,pi]endif if(lon<0.)lon=2.*pi+lonlat=asin(p(3))xs(i)=lonys(i)=lat! q Normalized:do k=1,3q(k,i)=p(k)enddo enddo end subroutine cart_to_latlon