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
elemental pure subroutine rgb_to_hsl(r,g,b,h,s,l)integer(ik),intent(in)::r,g,breal(rk),intent(out)::h,s,lreal(rk)::rn,gn,bnreal(rk)::cmax,cminrn=real(r,kind=rk)/255.0_rkgn=real(g,kind=rk)/255.0_rkbn=real(b,kind=rk)/255.0_rkcmax=max(rn,max(gn,bn))cmin=min(rn,min(gn,bn))l=(cmax+cmin)/2.0_rkif(abs(cmax-cmin)<1e-6_rk)thens=0.0_rkelse if(l<=0.5_rk)thens=(cmax-cmin)/(cmax+cmin)elses=(cmax-cmin)/(2.0_rk-cmax-cmin)end if end if if(abs(cmax-cmin)<1e-6_rk)thenh=0.0_rkelseif(abs(cmax-rn)<1e-6_rk)thenh=60.0_rk*mod((gn-bn)/(cmax-cmin),6.0_rk)else if(abs(cmax-gn)<1e-6_rk)thenh=60.0_rk*((bn-rn)/(cmax-cmin)+2.0_rk)else if(abs(cmax-bn)<1e-6_rk)thenh=60.0_rk*((rn-gn)/(cmax-cmin)+4.0_rk)end if if(h<0.0_rk)thenh=h+360.0_rkend ifs=s*100.0_rkl=l*100.0_rkend subroutine rgb_to_hsl