ESMF_DistGridSetDefault Subroutine

private subroutine ESMF_DistGridSetDefault(distgrid, collocationPDim, name, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_DistGrid), intent(inout) :: distgrid
integer, intent(in), optional :: collocationPDim(:)
character(len=*), intent(in), optional :: name
integer, intent(out), optional :: rc

Calls

proc~~esmf_distgridsetdefault~~CallsGraph proc~esmf_distgridsetdefault ESMF_DistGridSetDefault c_esmc_distgridset c_esmc_distgridset proc~esmf_distgridsetdefault->c_esmc_distgridset c_esmc_setname c_esmc_setname proc~esmf_distgridsetdefault->c_esmc_setname interface~esmf_interarraycreate ESMF_InterArrayCreate proc~esmf_distgridsetdefault->interface~esmf_interarraycreate proc~esmf_distgridgetinit ESMF_DistGridGetInit proc~esmf_distgridsetdefault->proc~esmf_distgridgetinit proc~esmf_imerr ESMF_IMErr proc~esmf_distgridsetdefault->proc~esmf_imerr proc~esmf_interarraydestroy ESMF_InterArrayDestroy proc~esmf_distgridsetdefault->proc~esmf_interarraydestroy proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_distgridsetdefault->proc~esmf_logfounderror proc~esmf_interarraycreateptr ESMF_InterArrayCreatePtr interface~esmf_interarraycreate->proc~esmf_interarraycreateptr proc~esmf_interarraycreatetrg ESMF_InterArrayCreateTrg interface~esmf_interarraycreate->proc~esmf_interarraycreatetrg proc~esmf_imerr->proc~esmf_logfounderror proc~esmf_initcheckdeep ESMF_InitCheckDeep proc~esmf_imerr->proc~esmf_initcheckdeep proc~esmf_logfounddeallocerror ESMF_LogFoundDeallocError proc~esmf_interarraydestroy->proc~esmf_logfounddeallocerror esmf_breakpoint esmf_breakpoint proc~esmf_logfounderror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logfounderror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logfounderror->proc~esmf_logwrite

Called by

proc~~esmf_distgridsetdefault~~CalledByGraph proc~esmf_distgridsetdefault ESMF_DistGridSetDefault interface~esmf_distgridset ESMF_DistGridSet interface~esmf_distgridset->proc~esmf_distgridsetdefault proc~esmf_distgridcreatedbai ESMF_DistGridCreateDBAI proc~esmf_distgridcreatedbai->interface~esmf_distgridset proc~esmf_gridcreate1peridima ESMF_GridCreate1PeriDimA proc~esmf_gridcreate1peridima->interface~esmf_distgridset proc~esmf_gridcreate1peridimi ESMF_GridCreate1PeriDimI proc~esmf_gridcreate1peridimi->interface~esmf_distgridset proc~esmf_gridcreate1peridimr ESMF_GridCreate1PeriDimR proc~esmf_gridcreate1peridimr->interface~esmf_distgridset proc~esmf_gridcreate1peridimufrmb ESMF_GridCreate1PeriDimUfrmB proc~esmf_gridcreate1peridimufrmb->interface~esmf_distgridset proc~esmf_gridcreate2peridima ESMF_GridCreate2PeriDimA proc~esmf_gridcreate2peridima->interface~esmf_distgridset proc~esmf_gridcreate2peridimi ESMF_GridCreate2PeriDimI proc~esmf_gridcreate2peridimi->interface~esmf_distgridset proc~esmf_gridcreate2peridimr ESMF_GridCreate2PeriDimR proc~esmf_gridcreate2peridimr->interface~esmf_distgridset proc~esmf_gridcreatecopyfromreg ESMF_GridCreateCopyFromReg proc~esmf_gridcreatecopyfromreg->interface~esmf_distgridset proc~esmf_gridcreatecubedspherereg ESMF_GridCreateCubedSphereReg proc~esmf_gridcreatecubedspherereg->interface~esmf_distgridset proc~esmf_gridcreatefrmgrid ESMF_GridCreateFrmGrid proc~esmf_gridcreatefrmgrid->interface~esmf_distgridset proc~esmf_gridcreatenoperidima ESMF_GridCreateNoPeriDimA proc~esmf_gridcreatenoperidima->interface~esmf_distgridset proc~esmf_gridcreatenoperidimi ESMF_GridCreateNoPeriDimI proc~esmf_gridcreatenoperidimi->interface~esmf_distgridset proc~esmf_gridcreatenoperidimr ESMF_GridCreateNoPeriDimR proc~esmf_gridcreatenoperidimr->interface~esmf_distgridset proc~esmf_gridcreateshapetilearb ESMF_GridCreateShapeTileArb proc~esmf_gridcreateshapetilearb->interface~esmf_distgridset proc~esmf_gridcreateshapetileirreg ESMF_GridCreateShapeTileIrreg proc~esmf_gridcreateshapetileirreg->interface~esmf_distgridset proc~esmf_gridcreateshapetilereg ESMF_GridCreateShapeTileReg proc~esmf_gridcreateshapetilereg->interface~esmf_distgridset interface~esmf_distgridcreate ESMF_DistGridCreate interface~esmf_distgridcreate->proc~esmf_distgridcreatedbai interface~esmf_gridcreate ESMF_GridCreate interface~esmf_gridcreate->proc~esmf_gridcreatecopyfromreg interface~esmf_gridcreate1peridim ESMF_GridCreate1PeriDim interface~esmf_gridcreate1peridim->proc~esmf_gridcreate1peridima interface~esmf_gridcreate1peridim->proc~esmf_gridcreate1peridimi interface~esmf_gridcreate1peridim->proc~esmf_gridcreate1peridimr interface~esmf_gridcreate1peridimufrm ESMF_GridCreate1PeriDimUfrm interface~esmf_gridcreate1peridimufrm->proc~esmf_gridcreate1peridimufrmb interface~esmf_gridcreate2peridim ESMF_GridCreate2PeriDim interface~esmf_gridcreate2peridim->proc~esmf_gridcreate2peridima interface~esmf_gridcreate2peridim->proc~esmf_gridcreate2peridimi interface~esmf_gridcreate2peridim->proc~esmf_gridcreate2peridimr interface~esmf_gridcreatecubedsphere ESMF_GridCreateCubedSphere interface~esmf_gridcreatecubedsphere->proc~esmf_gridcreatecubedspherereg interface~esmf_gridcreatenoperidim ESMF_GridCreateNoPeriDim interface~esmf_gridcreatenoperidim->proc~esmf_gridcreatenoperidima interface~esmf_gridcreatenoperidim->proc~esmf_gridcreatenoperidimi interface~esmf_gridcreatenoperidim->proc~esmf_gridcreatenoperidimr interface~esmf_gridcreateshapetile ESMF_GridCreateShapeTile interface~esmf_gridcreateshapetile->proc~esmf_gridcreateshapetilearb interface~esmf_gridcreateshapetile->proc~esmf_gridcreateshapetileirreg interface~esmf_gridcreateshapetile->proc~esmf_gridcreateshapetilereg proc~esmf_gridcreatefrmgridcoord ESMF_GridCreateFrmGridCoord proc~esmf_gridcreatefrmgridcoord->proc~esmf_gridcreatefrmgrid

Source Code

  subroutine ESMF_DistGridSetDefault(distgrid, collocationPDim, name, rc)
!
! !ARGUMENTS:
    type(ESMF_DistGrid),  intent(inout)           :: distgrid
    integer,              intent(in),   optional  :: collocationPDim(:)
    character(len = *),   intent(in),   optional  :: name
    integer,              intent(out),  optional  :: rc  
!
! !DESCRIPTION:
!      Set the sequence index collocation labels in {\tt distgrid}.
!      The method returns an error code if problems are found.  
!
!     The arguments are:
!     \begin{description}
!     \item[distgrid] 
!          Specified {\tt ESMF\_DistGrid} object.
!     \item[{[collocationPDim]}] 
!          List of size {\tt dimCount} specifying which dimensions are
!          covered by which sequence index. Each entry is associated with the
!          corresponding dimension. Dimensions with identical entries in the
!          {\tt collocationPDim} argument are collocated within the same
!          sequence index space. Dimensions with different entries are located
!          in orthogonal sequence index spaces.
!     \item [{[name]}]
!          The DistGrid name.
!     \item[{[rc]}] 
!          Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
!     \end{description}
!
!EOPI
!------------------------------------------------------------------------------
    integer               :: localrc      ! local return code
    type(ESMF_InterArray) :: collocationPDimAux  ! helper variable

    ! initialize return code; assume routine not implemented
    localrc = ESMF_RC_NOT_IMPL
    if (present(rc)) rc = ESMF_RC_NOT_IMPL

    ! Check init status of arguments
    ESMF_INIT_CHECK_DEEP(ESMF_DistGridGetInit, distgrid, rc)

    ! Set the name in Base object
    if (present(name)) then
      call c_ESMC_SetName(distgrid, "DistGrid", name, localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return
    endif

    ! Set collocationPDim
    if (present(collocationPDim)) then
      collocationPDimAux = ESMF_InterArrayCreate(collocationPDim, rc=localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return

      ! Call into the C++ interface, which will sort out optional arguments.
      call c_ESMC_DistGridSet(distgrid, collocationPDimAux, localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return

      ! garbage collection
      call ESMF_InterArrayDestroy(collocationPDimAux, rc=localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return
    endif

    ! return successfully
    if (present(rc)) rc = ESMF_SUCCESS
    
  end subroutine ESMF_DistGridSetDefault