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 imposed_mass_flow_rate(me,dPres,mdot0,dp0)type(circulator_t),intent(inout)::mereal(dp),intent(in)::dPres,mdot0real(dp),intent(in),optional::dp0real(dp)::imposed_mass_flow_rate,epsif(me%SubType=="pump")thenimposed_mass_flow_rate=mdot0else if(me%SubType=="compressor")theneps=1.0e-3_dpif(dPres<=0.0_dp)thenimposed_mass_flow_rate=mdot0else if(dPres>=dp0)thenimposed_mass_flow_rate=eps*mdot0!0.0_dpelseimposed_mass_flow_rate=mdot0*(1.0_dp-(dPres/dp0)**2)endif endifend function imposed_mass_flow_rate