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.
Source Code
function laplacernd(mean,scale)result(ans)real(8)::ans,mean,scale,uif(scale<=0d0)then write(*,*)"LAPLACERND: Scale parameter must be positive"end ifu=mersenne()if(u<0.5d0)thenans=mean+scale*log(2d0*u)elseans=mean-scale*log(2*(1-u))end ifend function laplacernd