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 material_heat_capacity_der(me,T,B,TC,TCS,TC0)class(material_t),intent(inout)::mereal(dp),intent(in)::Treal(dp),intent(inout),optional::B,TC,TCS,TC0real(dp)::material_heat_capacity_der,B_loc,TC_loc,TCS_loc,TC0_locreal(dp)::epsif(present(B).and.present(TC).and.present(TCS).and.present(TC0))thenB_loc=B;TC_loc=TC;TCS_loc=TCS;TC0_loc=TC0elseB_loc=0.0_dp;TC_loc=0.0_dp;TCS_loc=0.0_dp;TC0_loc=0.0_dpendif eps=2.0e-2_dpmaterial_heat_capacity_der=(me%heat_cap(me%heat_cap_cfg,T+0.5_dp*eps,B_loc,TC_loc,TCS_loc,TC0_loc)-&me%heat_cap(me%heat_cap_cfg,T-0.5_dp*eps,B_loc,TC_loc,TCS_loc,TC0_loc))/epsend function material_heat_capacity_der