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.
function output_hydrotope_to_catchment(hydrotope_values)result(catchment_values)! Average hydrotope values to catchmentreal,intent(in)::hydrotope_values(output_nhydrotopes)real::catchment_values(output_ncatchments)integer h,hsix,scixreal sharecatchment_values=0do h=1,output_nhydrotopeshsix=output_hydrotope_subbasin_ix(h)scix=output_subbasin_catchment_ix(hsix)! Share of hydrotope in catchmentshare=hydrotope_values(h)*output_hydrotope_subbasin_share(h)&*output_subbasin_catchment_share(hsix)catchment_values(scix)=catchment_values(scix)+share! Entire basincatchment_values(1)=&catchment_values(1)+share*output_catchment_basin_share(scix)end do end function output_hydrotope_to_catchment