Setup2PeriodicConn Subroutine

private subroutine Setup2PeriodicConn(dimCount, minIndex, maxIndex, connList, rc)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: dimCount
integer, intent(in) :: minIndex(:)
integer, intent(in) :: maxIndex(:)
type(ESMF_DistGridConnection), pointer :: connList(:)
integer, intent(out), optional :: rc

Calls

proc~~setup2periodicconn~~CallsGraph proc~setup2periodicconn Setup2PeriodicConn proc~esmf_distgridconnectionset ESMF_DistGridConnectionSet proc~setup2periodicconn->proc~esmf_distgridconnectionset proc~esmf_logfoundallocerror ESMF_LogFoundAllocError proc~setup2periodicconn->proc~esmf_logfoundallocerror proc~esmf_logfounderror ESMF_LogFoundError proc~setup2periodicconn->proc~esmf_logfounderror proc~esmf_distgridconnectionset->proc~esmf_logfounderror proc~esmf_distgridconnectionint ESMF_DistGridConnectionInt proc~esmf_distgridconnectionset->proc~esmf_distgridconnectionint esmf_breakpoint esmf_breakpoint proc~esmf_logfoundallocerror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logfoundallocerror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logfoundallocerror->proc~esmf_logwrite proc~esmf_logfounderror->esmf_breakpoint proc~esmf_logfounderror->proc~esmf_logrc2msg proc~esmf_logfounderror->proc~esmf_logwrite proc~esmf_distgridconnectionint->proc~esmf_logfounderror c_esmc_distgridconnection c_esmc_distgridconnection proc~esmf_distgridconnectionint->c_esmc_distgridconnection interface~esmf_interarraycreate ESMF_InterArrayCreate proc~esmf_distgridconnectionint->interface~esmf_interarraycreate proc~esmf_interarraydestroy ESMF_InterArrayDestroy proc~esmf_distgridconnectionint->proc~esmf_interarraydestroy c_esmc_loggeterrormsg c_esmc_loggeterrormsg proc~esmf_logrc2msg->c_esmc_loggeterrormsg c_esmc_vmwtime c_esmc_vmwtime proc~esmf_logwrite->c_esmc_vmwtime proc~esmf_logclose ESMF_LogClose proc~esmf_logwrite->proc~esmf_logclose proc~esmf_logflush ESMF_LogFlush proc~esmf_logwrite->proc~esmf_logflush proc~esmf_logopenfile ESMF_LogOpenFile proc~esmf_logwrite->proc~esmf_logopenfile proc~esmf_utiliounitflush ESMF_UtilIOUnitFlush proc~esmf_logwrite->proc~esmf_utiliounitflush proc~esmf_utilstring2array ESMF_UtilString2Array proc~esmf_logwrite->proc~esmf_utilstring2array proc~esmf_interarraycreateptr ESMF_InterArrayCreatePtr interface~esmf_interarraycreate->proc~esmf_interarraycreateptr proc~esmf_interarraycreatetrg ESMF_InterArrayCreateTrg interface~esmf_interarraycreate->proc~esmf_interarraycreatetrg proc~esmf_logfounddeallocerror ESMF_LogFoundDeallocError proc~esmf_interarraydestroy->proc~esmf_logfounddeallocerror proc~esmf_logclose->proc~esmf_logflush proc~esmf_logflush->proc~esmf_utiliounitflush proc~esmf_utilarray2string ESMF_UtilArray2String proc~esmf_logflush->proc~esmf_utilarray2string proc~esmf_logopenfile->proc~esmf_utiliounitflush proc~esmf_utiliounitget ESMF_UtilIOUnitGet proc~esmf_logopenfile->proc~esmf_utiliounitget

Called by

proc~~setup2periodicconn~~CalledByGraph proc~setup2periodicconn Setup2PeriodicConn proc~esmf_gridcreate2peridima ESMF_GridCreate2PeriDimA proc~esmf_gridcreate2peridima->proc~setup2periodicconn proc~esmf_gridcreate2peridimi ESMF_GridCreate2PeriDimI proc~esmf_gridcreate2peridimi->proc~setup2periodicconn proc~esmf_gridcreate2peridimr ESMF_GridCreate2PeriDimR proc~esmf_gridcreate2peridimr->proc~setup2periodicconn interface~esmf_gridcreate2peridim ESMF_GridCreate2PeriDim interface~esmf_gridcreate2peridim->proc~esmf_gridcreate2peridima interface~esmf_gridcreate2peridim->proc~esmf_gridcreate2peridimi interface~esmf_gridcreate2peridim->proc~esmf_gridcreate2peridimr program~esmf_gridcreateutest ESMF_GridCreateUTest program~esmf_gridcreateutest->interface~esmf_gridcreate2peridim

Source Code

    subroutine Setup2PeriodicConn(dimCount, minIndex, maxIndex, &
                  connList, rc)
       integer,               intent(in)            :: dimCount
       integer,               intent(in)            :: minIndex(:)
       integer,               intent(in)            :: maxIndex(:)
       type(ESMF_DistgridConnection), pointer       :: connList(:)
       integer,               intent(out), optional :: rc
       integer :: connListCount
       integer :: posVec(ESMF_MAXDIM)
       integer :: localrc



      ! Allocate connection list
      allocate(connList(2), stat=localrc)
      if (ESMF_LogFoundAllocError(localrc, msg="Allocating connList", &
                                     ESMF_CONTEXT, rcToReturn=rc)) return


      ! Add dimension 1 periodic connection
      posVec=0
      posVec(1)=maxIndex(1)-minIndex(1)+1
      call ESMF_DistgridConnectionSet(connection=connList(1), &
           tileIndexA=1,tileIndexB=1, &
           positionVector=posVec(1:dimCount), rc=localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
           ESMF_CONTEXT, rcToReturn=rc)) return

      ! Add dimension 2 periodic connection
      posVec=0
      posVec(2)=maxIndex(2)-minIndex(2)+1
      call ESMF_DistgridConnectionSet(connection=connList(2), &
           tileIndexA=1,tileIndexB=1, &
           positionVector=posVec(1:dimCount), rc=localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
           ESMF_CONTEXT, rcToReturn=rc)) return


    end subroutine Setup2PeriodicConn