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_subbasin_to_catchment(subbasin_values)result(catchment_values)! Average subbasin values to catchmentreal,intent(in)::subbasin_values(output_nsubbasins)real::catchment_values(output_ncatchments)integer s,scixreal sharecatchment_values=0do s=1,output_nsubbasinsscix=output_subbasin_catchment_ix(s)share=subbasin_values(s)*output_subbasin_catchment_share(s)catchment_values(scix)=catchment_values(scix)+sharecatchment_values(1)=&catchment_values(1)+share*output_catchment_basin_share(scix)end do end function output_subbasin_to_catchment