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
pure subroutine cubehelix_colormap(map,nlev,varargs)integer,dimension(:,:),allocatable,intent(out)::mapinteger,intent(in)::nlevreal(wp),dimension(:),intent(in),optional::varargsinteger::ireal(wp)::start,rots,hue,gammareal(wp)::fract,angle,ampif(present(varargs))then if(size(varargs)/=4)error stop"ERROR: cubehelix varargs(:) must have 4 values"start=varargs(1)rots=varargs(2)hue=varargs(3)gamma=varargs(4)else! Default values:start=0.5_wprots=-1.5_wphue=1.0_wpgamma=1.0_wpend if allocate(map(0:nlev-1,1:3))doconcurrent(i=0:nlev-1)fract=real(i,kind=wp)/(nlev-1)angle=2*pi*(start/3+1+rots*fract)fract=fract**gammaamp=hue*fract*(1-fract)/2map(i,1)=nint(255*(fract+amp*(-0.14861_wp*cos(angle)+1.78277_wp*sin(angle))))map(i,2)=nint(255*(fract+amp*(-0.29227_wp*cos(angle)-0.90649_wp*sin(angle))))map(i,3)=nint(255*(fract+amp*(+1.97294_wp*cos(angle))))end do end subroutine cubehelix_colormap