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.
subroutine analytical_solution(nr)integer,intent(in)::nrinteger(i4k)i,nreal(r8k)t,r_0,R,T0,T_infreal(r8k),parameter::pi=4.0_r8k*atan(1.0_r8k)real(r8k),parameter,dimension(*)::mu=[((2*i-1)*pi/2.0,i=1,20)]T0=1073.15T_inf=293.15t=1000.0r_0=0.2i=1R=this%v(i,1)/r_0this%T_analytical=&sum([(2.0*(sin(mu(n))-mu(n)*cos(mu(n)))/(mu(n)-sin(mu(n))*cos(mu(n)))*exp(-1.0e-5*(mu(n)/r_0)**2*t),n=1,size(mu))])this%T_analytical(i)=(T0-T_inf)*this%T_analytical(i)+T_infdo concurrent(i=2:nr)R=this%v(i,1)/r_0this%T_analytical(i)=&sum([(2.0*(sin(mu(n))-mu(n)*cos(mu(n)))/(mu(n)-sin(mu(n))*cos(mu(n)))*&sin(mu(n)*R)/(mu(n)*R)*exp(-1.0e-5*(mu(n)/r_0)**2*t),n=1,6)])this%T_analytical(i)=(T0-T_inf)*this%T_analytical(i)+T_infend do end subroutine analytical_solution