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
subroutine comms_sync_error(comm,error,ierr)implicit none type(w90_comm_type),intent(in)::commtype(w90_error_type),allocatable,intent(inout)::errorinteger::ierr,mpiierr,abserr#if defined(W90_MPI) && !defined(DISABLE_ERROR_SYNC)abserr=abs(ierr)! possibility of -ve values, use abs for safetycall mpi_allreduce(MPI_IN_PLACE,abserr,1,MPI_INTEGER,MPI_SUM,comm%comm,mpiierr)! you could check mpiierr here, but truly all bets are off in that caseif(abserr>0.and.ierr==0)call recv_error(error)#endifend subroutine comms_sync_error