f_esmf_gridcreatecubedsphere Subroutine

subroutine f_esmf_gridcreatecubedsphere(gridp, tilesize, regDecompPTile, len11, len12, rdpresent, decompFlagPTile, len21, len22, dfpresent, deLabelList, len3, llpresent, staggerLocList, len4, name, rc)

Uses

  • proc~~f_esmf_gridcreatecubedsphere~~UsesGraph proc~f_esmf_gridcreatecubedsphere f_esmf_gridcreatecubedsphere module~esmf_distgridmod ESMF_DistGridMod proc~f_esmf_gridcreatecubedsphere->module~esmf_distgridmod module~esmf_gridmod ESMF_GridMod proc~f_esmf_gridcreatecubedsphere->module~esmf_gridmod module~esmf_logerrmod ESMF_LogErrMod proc~f_esmf_gridcreatecubedsphere->module~esmf_logerrmod module~esmf_staggerlocmod ESMF_StaggerLocMod proc~f_esmf_gridcreatecubedsphere->module~esmf_staggerlocmod module~esmf_utiltypesmod ESMF_UtilTypesMod proc~f_esmf_gridcreatecubedsphere->module~esmf_utiltypesmod module~esmf_distgridmod->module~esmf_logerrmod module~esmf_distgridmod->module~esmf_utiltypesmod module~esmf_basemod ESMF_BaseMod module~esmf_distgridmod->module~esmf_basemod module~esmf_delayoutmod ESMF_DELayoutMod module~esmf_distgridmod->module~esmf_delayoutmod module~esmf_distgridconnectionmod ESMF_DistGridConnectionMod module~esmf_distgridmod->module~esmf_distgridconnectionmod module~esmf_distgridregdecompmod ESMF_DistGridRegDecompMod module~esmf_distgridmod->module~esmf_distgridregdecompmod module~esmf_f90interfacemod ESMF_F90InterfaceMod module~esmf_distgridmod->module~esmf_f90interfacemod module~esmf_initmacrosmod ESMF_InitMacrosMod module~esmf_distgridmod->module~esmf_initmacrosmod module~esmf_ioutilmod ESMF_IOUtilMod module~esmf_distgridmod->module~esmf_ioutilmod module~esmf_vmmod ESMF_VMMod module~esmf_distgridmod->module~esmf_vmmod module~esmf_gridmod->module~esmf_distgridmod module~esmf_gridmod->module~esmf_logerrmod module~esmf_gridmod->module~esmf_staggerlocmod module~esmf_gridmod->module~esmf_utiltypesmod module~esmf_arraybundlemod ESMF_ArrayBundleMod module~esmf_gridmod->module~esmf_arraybundlemod module~esmf_arraymod ESMF_ArrayMod module~esmf_gridmod->module~esmf_arraymod module~esmf_arrayspecmod ESMF_ArraySpecMod module~esmf_gridmod->module~esmf_arrayspecmod module~esmf_gridmod->module~esmf_basemod module~esmf_gridmod->module~esmf_delayoutmod module~esmf_gridmod->module~esmf_f90interfacemod module~esmf_infomod ESMF_InfoMod module~esmf_gridmod->module~esmf_infomod module~esmf_gridmod->module~esmf_initmacrosmod module~esmf_iofiletypecheckmod ESMF_IOFileTypeCheckMod module~esmf_gridmod->module~esmf_iofiletypecheckmod module~esmf_iogridmosaicmod ESMF_IOGridmosaicMod module~esmf_gridmod->module~esmf_iogridmosaicmod module~esmf_iogridspecmod ESMF_IOGridspecMod module~esmf_gridmod->module~esmf_iogridspecmod module~esmf_ioscripmod ESMF_IOScripMod module~esmf_gridmod->module~esmf_ioscripmod module~esmf_gridmod->module~esmf_ioutilmod module~esmf_localarraymod ESMF_LocalArrayMod module~esmf_gridmod->module~esmf_localarraymod module~esmf_rhandlemod ESMF_RHandleMod module~esmf_gridmod->module~esmf_rhandlemod module~esmf_utilcubedspheremod ESMF_UtilCubedSphereMod module~esmf_gridmod->module~esmf_utilcubedspheremod module~esmf_gridmod->module~esmf_vmmod module~esmf_logerrmod->module~esmf_utiltypesmod module~esmf_logerrmod->module~esmf_ioutilmod module~esmf_utilstringmod ESMF_UtilStringMod module~esmf_logerrmod->module~esmf_utilstringmod module~esmf_staggerlocmod->module~esmf_logerrmod module~esmf_staggerlocmod->module~esmf_utiltypesmod module~esmf_staggerlocmod->module~esmf_ioutilmod module~esmf_staggerloctypemod ESMF_StaggerLocTypeMod module~esmf_staggerlocmod->module~esmf_staggerloctypemod iso_c_binding iso_c_binding module~esmf_utiltypesmod->iso_c_binding

Arguments

Type IntentOptional Attributes Name
type(ESMF_Pointer) :: gridp
integer :: tilesize
integer :: regDecompPTile(len11,len12)
integer, intent(in) :: len11
integer, intent(in) :: len12
integer :: rdpresent
integer :: decompFlagPTile(len21,len22)
integer, intent(in) :: len21
integer, intent(in) :: len22
integer :: dfpresent
integer :: deLabelList(len3)
integer, intent(in) :: len3
integer :: llpresent
integer :: staggerLocList(len4)
integer, intent(in) :: len4
character(len=*) :: name
integer, intent(out) :: rc

Calls

proc~~f_esmf_gridcreatecubedsphere~~CallsGraph proc~f_esmf_gridcreatecubedsphere f_esmf_gridcreatecubedsphere interface~esmf_gridcreatecubedsphere ESMF_GridCreateCubedSphere proc~f_esmf_gridcreatecubedsphere->interface~esmf_gridcreatecubedsphere proc~esmf_logfounderror ESMF_LogFoundError proc~f_esmf_gridcreatecubedsphere->proc~esmf_logfounderror proc~esmf_gridcreatecubedsphereireg ESMF_GridCreateCubedSphereIReg interface~esmf_gridcreatecubedsphere->proc~esmf_gridcreatecubedsphereireg proc~esmf_gridcreatecubedspherereg ESMF_GridCreateCubedSphereReg interface~esmf_gridcreatecubedsphere->proc~esmf_gridcreatecubedspherereg 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 proc~esmf_gridcreatecubedsphereireg->proc~esmf_logfounderror interface~esmf_delayoutcreate ESMF_DELayoutCreate proc~esmf_gridcreatecubedsphereireg->interface~esmf_delayoutcreate interface~esmf_distgridcreate ESMF_DistGridCreate proc~esmf_gridcreatecubedsphereireg->interface~esmf_distgridcreate interface~esmf_gridaddcoord ESMF_GridAddCoord proc~esmf_gridcreatecubedsphereireg->interface~esmf_gridaddcoord interface~esmf_gridcreate ESMF_GridCreate proc~esmf_gridcreatecubedsphereireg->interface~esmf_gridcreate interface~esmf_gridgetcoord ESMF_GridGetCoord proc~esmf_gridcreatecubedsphereireg->interface~esmf_gridgetcoord interface~esmf_vmget ESMF_VMGet proc~esmf_gridcreatecubedsphereireg->interface~esmf_vmget proc~calculateconnection CalculateConnection proc~esmf_gridcreatecubedsphereireg->proc~calculateconnection proc~esmf_delayoutget ESMF_DELayoutGet proc~esmf_gridcreatecubedsphereireg->proc~esmf_delayoutget proc~esmf_logseterror ESMF_LogSetError proc~esmf_gridcreatecubedsphereireg->proc~esmf_logseterror proc~esmf_utilcreatecscoordspar ESMF_UtilCreateCSCoordsPar proc~esmf_gridcreatecubedsphereireg->proc~esmf_utilcreatecscoordspar proc~esmf_vmgetcurrent ESMF_VMGetCurrent proc~esmf_gridcreatecubedsphereireg->proc~esmf_vmgetcurrent proc~esmf_gridcreatecubedspherereg->proc~esmf_logfounderror float float proc~esmf_gridcreatecubedspherereg->float proc~esmf_gridcreatecubedspherereg->interface~esmf_delayoutcreate proc~esmf_gridcreatecubedspherereg->interface~esmf_distgridcreate interface~esmf_distgridset ESMF_DistGridSet proc~esmf_gridcreatecubedspherereg->interface~esmf_distgridset proc~esmf_gridcreatecubedspherereg->interface~esmf_gridaddcoord proc~esmf_gridcreatecubedspherereg->interface~esmf_gridcreate proc~esmf_gridcreatecubedspherereg->interface~esmf_gridgetcoord proc~esmf_gridcreatecubedspherereg->interface~esmf_vmget proc~esmf_gridcreatecubedspherereg->proc~calculateconnection proc~esmf_gridcreatecubedspherereg->proc~esmf_delayoutget proc~esmf_distgriddestroy ESMF_DistGridDestroy proc~esmf_gridcreatecubedspherereg->proc~esmf_distgriddestroy proc~esmf_griddestroy ESMF_GridDestroy proc~esmf_gridcreatecubedspherereg->proc~esmf_griddestroy proc~esmf_gridcreatecubedspherereg->proc~esmf_logseterror proc~esmf_gridcreatecubedspherereg->proc~esmf_utilcreatecscoordspar proc~esmf_gridcreatecubedspherereg->proc~esmf_vmgetcurrent 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

Source Code

  subroutine f_esmf_gridcreatecubedsphere(gridp, tilesize, &
                                          regDecompPTile, len11, len12, rdpresent, &
                                          decompFlagPTile, len21, len22, dfpresent, &
                                          deLabelList, len3, llpresent, &
                                          !delayout, &
                                          staggerLocList, len4, &
                                          name, &
                                          rc)

    use ESMF_UtilTypesMod
    use ESMF_LogErrMod
    use ESMF_GridMod
    use ESMF_DistGridMod
    use ESMF_StaggerLocMod

    implicit none

    ! arguments
    type(ESMF_Pointer)             :: gridp
    integer, intent(in)            :: len11, len12, len21, len22, len3, len4
    integer                        :: tilesize
    integer                        :: regDecompPTile(len11, len12)
    integer                        :: rdpresent, dfpresent, llpresent
    integer                        :: decompFlagPTile(len21, len22)
    integer                        :: deLabelList(len3)
    !type(ESMF_DELayout)            :: delayout
    integer                        :: staggerLocList(len4)
    character(len=*)               :: name
    integer, intent(out)           :: rc              
  
    type(ESMF_Grid) :: grid
    type(ESMF_Decomp_Flag) :: decompFlagPTile_local(len21, len22)
    type(ESMF_StaggerLoc) :: staggerLocList_local(len4)
    integer :: i, j

    ! initialize return code; assume routine not implemented
    rc = ESMF_RC_NOT_IMPL

    ! glue together decompFlagPTile
    if (dfpresent == 1) then
      do i = 1, len21
        do j = 1, len22
          if (decompFlagPTile(i, j) == 1) then
            decompFlagPTile_local(i, j) = ESMF_DECOMP_BALANCED
          else if (decompFlagPTile(i, j) == 2) then
            decompFlagPTile_local(i, j) = ESMF_DECOMP_RESTFIRST
          else if (decompFlagPTile(i, j) == 3) then
            decompFlagPTile_local(i, j) = ESMF_DECOMP_RESTLAST
          else if (decompFlagPTile(i, j) == 4) then
            decompFlagPTile_local(i, j) = ESMF_DECOMP_CYCLIC
          endif
        enddo
      enddo
    endif

    do i = 1, len4
        if (staggerLocList(i) == 0) then
            staggerLocList_local(i) = ESMF_STAGGERLOC_CENTER
        else if (staggerLocList(i) == 3) then
            staggerLocList_local(i) = ESMF_STAGGERLOC_CORNER
        endif
    enddo


    grid = ESMF_GridCreateCubedSphere(tilesize, &
                                      regDecompPTile=regDecompPTile, &
                                      !decompFlagPTile=decompFlagPTile_local, &
                                      !deLabelList=deLabelList, &
                                      !delayout=delayout, &
                                      staggerLocList=staggerLocList_local, &
                                      name=name, &
                                      rc=rc)

    if (ESMF_LogFoundError(rc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return

    gridp = grid%this

    rc = ESMF_SUCCESS
  
  end subroutine f_esmf_gridcreatecubedsphere