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 copy_or_update_double_alloc_r3(array,no_update)implicit nonedouble precision,allocatable,intent(inout)::array(:,:,:)logical,optional,intent(in)::no_updatelogical::no_update_if(present(no_update))thenno_update_=no_updateelseno_update_=.false.end if if(.not.allocated(array))then print*,'copy_or_update: unallocated allocatable (rank 3)'return end if end subroutine copy_or_update_double_alloc_r3