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 hsv_to_rgb(h,s,v,r,g,b)real(rk),intent(in)::h,s,vinteger(ik),intent(out)::r,g,breal(rk)::c,h_prime,x,mreal(rk)::h_dash,r1,g1,b1c=v/100.0_rk*s/100.0_rkh_prime=h/60.0_rkh_dash=mod(h_prime,6.0_rk)x=c*(1.0_rk-abs(h_dash-2.0_rk*floor(h_dash/2.0_rk)-1.0_rk))select case(int(h_dash))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=xcase defaultr1=0.0_rkg1=0.0_rkb1=0.0_rkend selectm=v/100.0_rk-cr=nint(255.0_rk*(r1+m),kind=ik)g=nint(255.0_rk*(g1+m),kind=ik)b=nint(255.0_rk*(b1+m),kind=ik)r=max(0,min(255,r))g=max(0,min(255,g))b=max(0,min(255,b))end subroutine hsv_to_rgb