Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_Array), | intent(inout) | :: | array | |||
real(kind=ESMF_KIND_R8), | intent(out), | optional, | target | :: | farray(:,:) | |
type(ESMF_Reduce_Flag), | intent(in) | :: | reduceflag | |||
integer, | intent(in) | :: | rootPET | |||
integer, | intent(in) | :: | dimList(:) | |||
integer, | intent(in), | optional | :: | tile | ||
type(ESMF_VM), | intent(in), | optional | :: | vm | ||
integer, | intent(out), | optional | :: | rc |
subroutine ESMF_ArrayReduceFarray(array, farray, reduceflag, rootPET, & dimList, tile, vm, rc) ! ! !ARGUMENTS: type(ESMF_Array), intent(inout) :: array real(ESMF_KIND_R8), target, intent(out), optional :: farray(:,:) type(ESMF_Reduce_Flag), intent(in) :: reduceflag integer, intent(in) :: rootPET integer, intent(in) :: dimList(:) integer, intent(in), optional :: tile type(ESMF_VM), intent(in), optional :: vm integer, intent(out), optional :: rc ! ! !DESCRIPTION: ! Reduce the dimensions specified in {\tt dimList} of the Array object ! into {\tt farray} on {\tt rootPET} according to the operation specified ! in {\tt reduceflag}. Only root must provide a valid {\tt farray} argument. ! ! This partial reduction operation is tile specific, i.e. only a single ! DistGrid tile of the Array will be reduced. The tile can be selected ! by the optional {\tt tile} argument. The shape of the provided ! {\tt farray} argument must match that of the Array tile reduced by the ! dimensions specified in {\tt dimList}. ! ! ! This version of the interface ! implements the PET-based blocking paradigm: Each PET of the VM must issue ! this call exactly once for {\em all} of its DEs. The ! call will block until all PET-local data objects are accessible. ! ! The arguments are: ! \begin{description} ! \item[array] ! The {\tt ESMF\_Array} object across which data will be scattered. ! \item[{[farray]}] ! Fortran array into which to reduce the Array. Only root ! must provide a valid {\tt farray} argument. ! \item[reduceflag] ! Reduction operation. See section \ref{const:reduce} for a list of ! valid reduce operations. There will be options that determine the ! sequence of operations to ensure bit-wise reproducibility. ! \item[rootPET] ! root. ! \item[dimList] ! List of Array dimensions to be reduced. ! \item[{[tile]}] ! The DistGrid tile in {\tt array} to reduce into {\tt farray}. ! By default tile 1 of {\tt farray} will be reduced. ! \item[{[vm]}] ! Optional {\tt ESMF\_VM} object of the current context. Providing the ! VM of the current context will lower the method's overhead. ! \item[{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} ! !EOPI !------------------------------------------------------------------------------ integer :: localrc ! local return code ! initialize return code; assume routine not implemented localrc = ESMF_RC_NOT_IMPL if (present(rc)) rc = ESMF_RC_NOT_IMPL end subroutine ESMF_ArrayReduceFarray