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 hsl_to_rgb(h,s,l,r,g,b)real(rk),intent(in)::h,s,linteger(ik),intent(out)::r,g,breal(rk)::hn,sn,lnreal(rk)::c,h_prime,x,mreal(rk)::r1,g1,b1hn=hsn=s/100.0_rkln=l/100.0_rkc=(1.0_rk-abs(2.0_rk*ln-1.0_rk))*snh_prime=mod(hn,360.0_rk)/60.0_rkx=c*(1.0_rk-abs(mod(h_prime,2.0_rk)-1.0_rk))select case(int(h_prime))case(0)r1=cg1=xb1=0.0_rkcase(1)r1=xg1=cb1=0.0_rkcase(2)r1=0.0_rkg1=cb1=xcase(3)r1=0.0_rkg1=xb1=ccase(4)r1=xg1=0.0_rkb1=ccase(5)r1=cg1=0.0_rkb1=xend selectm=ln-c/2.0_rkr=nint(r1*255.0_rk+m*255.0_rk,kind=ik)g=nint(g1*255.0_rk+m*255.0_rk,kind=ik)b=nint(b1*255.0_rk+m*255.0_rk,kind=ik)end subroutine hsl_to_rgb