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 phim_func(z,L,phim,phim_i)implicit nonereal,intent(in)::z,Lreal,intent(out)::phim,phim_ireal a,b,p,piparameter(a=16.,b=5.,p=-0.25,pi=3.141592653589793)real epseps=z/Lif(eps.ge.0)thenphim=1.+b*epsphim_i=-b*epselsephim=exp(p*log((1.-a*eps)))phim_i=2.*log((1.+1./phim)/2.)+log((1.+1./(phim*phim))/2.)-2.*atan(1./phim)+pi/2.endif end subroutine phim_func