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 calc_unit_basis_vecs(lon_rad,lat_rad,e_vec,n_vec)real(ESMF_KIND_R8)::lon_rad,lat_radreal(ESMF_KIND_R8)::e_vec(3)real(ESMF_KIND_R8)::n_vec(3)real(ESMF_KIND_R8)::e_len,n_len! East vector! [-sin(lng), cos(lng), 0]e_vec(1)=-sin(lon_rad)e_vec(2)=cos(lon_rad)e_vec(3)=0! Make unit vece_len=sqrt(e_vec(1)*e_vec(1)+&e_vec(2)*e_vec(2)+&e_vec(3)*e_vec(3))if(e_len.ne.0.0)thene_vec(1)=e_vec(1)/e_lene_vec(2)=e_vec(2)/e_lene_vec(3)=e_vec(3)/e_lenendif! North vector! [-sin(lat) * cos(lng), -sin(lat) * sin(lng), cos(lat)]n_vec(1)=-sin(lat_rad)*cos(lon_rad)n_vec(2)=-sin(lat_rad)*sin(lon_rad)n_vec(3)=cos(lat_rad)! Make unit vecn_len=sqrt(n_vec(1)*n_vec(1)+&n_vec(2)*n_vec(2)+&n_vec(3)*n_vec(3))if(n_len.ne.0.0)thenn_vec(1)=n_vec(1)/n_lenn_vec(2)=n_vec(2)/n_lenn_vec(3)=n_vec(3)/n_lenendif end subroutine calc_unit_basis_vecs