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.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Source Code
subroutine compute_flux1D(vm,flux_density,area,fraction,allsum,rc)type(ESMF_VM),intent(in)::vmreal(ESMF_KIND_R8),pointer::flux_density(:)real(ESMF_KIND_R8),pointer::area(:)real(ESMF_KIND_R8),pointer::fraction(:)real(ESMF_KIND_R8),intent(out)::allsum(3)integer,intent(out),optional::rcreal(ESMF_KIND_R8)::sum(3)integer::i,j,localrcif(present(rc))rc=ESMF_SUCCESSsum=0.do i=lbound(flux_density,1),ubound(flux_density,1)sum(1)=sum(1)+flux_density(i)*area(i)*fraction(i)sum(2)=sum(2)+area(i)*fraction(i)sum(3)=sum(3)+area(i)enddo call ESMF_VMAllReduce(vm,sum,allsum,3,ESMF_REDUCE_SUM,rc=localrc)if(ESMF_LogFoundError(localrc,&ESMF_ERR_PASSTHRU,&ESMF_CONTEXT,rcToReturn=rc))return end subroutine compute_flux1D