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_subbasin(hydrotope_values)result(subbasin_values)! Average hydrotope values to subbasinsreal,intent(in)::hydrotope_values(output_nhydrotopes)real::subbasin_values(output_nsubbasins)integer h,hsixreal sharesubbasin_values=0do h=1,output_nhydrotopeshsix=output_hydrotope_subbasin_ix(h)share=hydrotope_values(h)*output_hydrotope_subbasin_share(h)subbasin_values(hsix)=subbasin_values(hsix)+shareend do end function output_hydrotope_to_subbasin