Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_DistGridConnection), | intent(out) | :: | connection | |||
integer, | intent(in) | :: | tileIndexA | |||
integer, | intent(in) | :: | tileIndexB | |||
integer, | intent(in) | :: | positionVector(:) | |||
type(ESMF_KeywordEnforcer), | optional | :: | keywordEnforcer | |||
integer, | intent(in), | optional | :: | orientationVector(:) | ||
integer, | intent(out), | optional | :: | rc |
subroutine ESMF_DistGridConnectionSet(connection, tileIndexA, tileIndexB, & positionVector, keywordEnforcer, orientationVector, rc) ! ! !ARGUMENTS: type(ESMF_DistGridConnection),intent(out) :: connection integer, intent(in) :: tileIndexA integer, intent(in) :: tileIndexB integer, intent(in) :: positionVector(:) type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below integer, intent(in), optional :: orientationVector(:) integer, intent(out), optional:: rc ! ! !STATUS: ! \begin{itemize} ! \item\apiStatusCompatibleVersion{5.2.0r} ! \end{itemize} ! ! !DESCRIPTION: ! \label{api:DistGridConnectionSet} ! Set an {\tt ESMF\_DistGridConnection} object to represent a connection ! according to the provided index space information. ! ! The arguments are: ! \begin{description} ! \item[connection] ! DistGridConnection object. ! \item[tileIndexA] ! Index of one of the two tiles that are to be connected. ! \item[tileIndexB] ! Index of one of the two tiles that are to be connected. ! \item[positionVector] ! Position of tile B's minIndex with respect to tile A's minIndex. ! \item[{[orientationVector]}] ! Associates each dimension of tile A with a dimension in tile B's ! index space. Negative index values may be used to indicate a ! reversal in index orientation. It is erroneous to associate multiple ! dimensions of tile A with the same index in tile B. By default ! {\tt orientationVector = (/1,2,3,.../)}, i.e. same orientation as tile A. ! \item[{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} ! !EOP !------------------------------------------------------------------------------ integer :: localrc ! local return code integer :: dimCount ! initialize return code; assume routine not implemented localrc = ESMF_RC_NOT_IMPL if (present(rc)) rc = ESMF_RC_NOT_IMPL ! mark output as uninitialized ESMF_INIT_SET_DELETED(connection) ! set the actual elementCount in connection member dimCount = size(positionVector) connection%elementCount = 2*dimCount+2 call ESMF_DistGridConnectionInt(connection%connection(1:2*dimCount+2), & tileIndexA=tileIndexA, tileIndexB=tileIndexB, & positionVector=positionVector, orientationVector=orientationVector, & rc=localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return ! mark output as successfully initialized ESMF_INIT_SET_DEFINED(connection) ! return successfully if (present(rc)) rc = ESMF_SUCCESS end subroutine ESMF_DistGridConnectionSet