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 dens_3dcubic(x,ts)result(dos)real(8),intent(in)::xreal(8),optional::tsreal(8)::ts_real(8)::wband,dosreal(8)::a,b,e0,sreal(8),parameter::pi=acos(-1d0)real(8)::ImGts_=1d0;if(present(ts))ts_=tse0=2d0*ts_wband=3d0*e0dos=0d0s=abs(x)if(abs(x)>wband)return!a=0d0if(s/e0<=1d0)thenb=pielseb=acos(s/e0-2d0)endif call quad(func,a,b,result=ImG)dos=ImG/pi**3/e0contains!> F(p) = K(k1')!> k1' = sqrt(1-k1**2)!> k1 = (s-cos(p))/2 = 1/k!> k = 2/(s-cos(p))function func(p)real(8)::preal(8)::funcreal(8)::k1,k1pk1=(s-e0*cos(p))/2d0/e0k1p=sqrt(1d0-k1**2)func=EllipticK(k1p)end function funcend function dens_3dcubic