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.
subroutine time_day_length(daylen,ida,mb,pit,ylc,yls)integer,intent(in)::idainteger,intent(in)::mbreal(dp),intent(in)::pitreal(dp),dimension(:),intent(in)::ylcreal(dp),dimension(:),intent(in)::ylsreal(dp),dimension(:),intent(out)::dayleninteger kreal(dp)ch,h,sd,xi!**** CALC day length (from clgen)do k=1,mbxi=idasd=.4102*sin((xi-80.25)/pit)ch=-yls(k)*tan(sd)/ylc(k)if(ch.lt.1.)then if(ch.le.-1.)thenh=3.1416elseh=acos(ch)end if elseh=0.end ifdaylen(k)=7.72*hend do end subroutine time_day_length