test_geom_comp_tkr Subroutine

subroutine test_geom_comp_tkr(rc)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: rc

Calls

proc~~test_geom_comp_tkr~~CallsGraph proc~test_geom_comp_tkr test_geom_comp_tkr esmf_fielddestroy esmf_fielddestroy proc~test_geom_comp_tkr->esmf_fielddestroy esmf_fieldemptycomplete esmf_fieldemptycomplete proc~test_geom_comp_tkr->esmf_fieldemptycomplete esmf_fieldemptycreate esmf_fieldemptycreate proc~test_geom_comp_tkr->esmf_fieldemptycreate esmf_fieldemptyset esmf_fieldemptyset proc~test_geom_comp_tkr->esmf_fieldemptyset esmf_fieldget esmf_fieldget proc~test_geom_comp_tkr->esmf_fieldget interface~esmf_geomcreate ESMF_GeomCreate proc~test_geom_comp_tkr->interface~esmf_geomcreate interface~esmf_gridcreatenoperidim ESMF_GridCreateNoPeriDim proc~test_geom_comp_tkr->interface~esmf_gridcreatenoperidim interface~esmf_vmget ESMF_VMGet proc~test_geom_comp_tkr->interface~esmf_vmget proc~esmf_geomdestroy ESMF_GeomDestroy proc~test_geom_comp_tkr->proc~esmf_geomdestroy proc~esmf_griddestroy ESMF_GridDestroy proc~test_geom_comp_tkr->proc~esmf_griddestroy proc~esmf_logfounderror ESMF_LogFoundError proc~test_geom_comp_tkr->proc~esmf_logfounderror proc~esmf_vmgetglobal ESMF_VMGetGlobal proc~test_geom_comp_tkr->proc~esmf_vmgetglobal proc~esmf_geomcreategrid ESMF_GeomCreateGrid interface~esmf_geomcreate->proc~esmf_geomcreategrid proc~esmf_geomcreatelocstream ESMF_GeomCreateLocStream interface~esmf_geomcreate->proc~esmf_geomcreatelocstream proc~esmf_geomcreatemesh ESMF_GeomCreateMesh interface~esmf_geomcreate->proc~esmf_geomcreatemesh proc~esmf_geomcreatexgrid ESMF_GeomCreateXGrid interface~esmf_geomcreate->proc~esmf_geomcreatexgrid proc~esmf_gridcreatenoperidima ESMF_GridCreateNoPeriDimA interface~esmf_gridcreatenoperidim->proc~esmf_gridcreatenoperidima proc~esmf_gridcreatenoperidimi ESMF_GridCreateNoPeriDimI interface~esmf_gridcreatenoperidim->proc~esmf_gridcreatenoperidimi proc~esmf_gridcreatenoperidimr ESMF_GridCreateNoPeriDimR interface~esmf_gridcreatenoperidim->proc~esmf_gridcreatenoperidimr proc~esmf_vmgetdefault ESMF_VMGetDefault interface~esmf_vmget->proc~esmf_vmgetdefault proc~esmf_vmgetpetspecific ESMF_VMGetPetSpecific interface~esmf_vmget->proc~esmf_vmgetpetspecific proc~esmf_geomgetinit ESMF_GeomGetInit proc~esmf_geomdestroy->proc~esmf_geomgetinit proc~esmf_imerr ESMF_IMErr proc~esmf_geomdestroy->proc~esmf_imerr proc~esmf_logfounddeallocerror ESMF_LogFoundDeallocError proc~esmf_geomdestroy->proc~esmf_logfounddeallocerror proc~esmf_griddestroy->proc~esmf_logfounderror c_esmc_griddestroy c_esmc_griddestroy proc~esmf_griddestroy->c_esmc_griddestroy proc~esmf_gridgetinit ESMF_GridGetInit proc~esmf_griddestroy->proc~esmf_gridgetinit proc~esmf_griddestroy->proc~esmf_imerr 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~~test_geom_comp_tkr~~CalledByGraph proc~test_geom_comp_tkr test_geom_comp_tkr program~esmf_fieldcreategetutest ESMF_FieldCreateGetUTest program~esmf_fieldcreategetutest->proc~test_geom_comp_tkr

Source Code

        subroutine test_geom_comp_tkr(rc)
        integer, intent(out)  :: rc
        integer                 :: localrc
        type(ESMF_Field)        :: field
        type(ESMF_Grid)         :: grid
        type(ESMF_Geom)         :: geom
        real(ESMF_KIND_R8), dimension(:,:), pointer :: farray
        type(ESMF_VM)                               :: vm
        integer                                     :: lpe
        integer, dimension(2)             :: ec, cc
        integer, dimension(2)             :: gelb, geub, gclb, gcub
        type(ESMF_StaggerLoc)                       :: sloc
        integer                                     :: totalCount(1:2)

        rc = ESMF_SUCCESS
        localrc = ESMF_SUCCESS

        grid = ESMF_GridCreateNoPeriDim(minIndex=(/1,1/), maxIndex=(/16,20/), &
                                  regDecomp=(/4,1/), name="testgrid", rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

        call ESMF_VMGetGlobal(vm, rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

        call ESMF_VMGet(vm, localPet=lpe, rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return
!        print *, 'localPet = ', lpe

        ! Create a geom and use that instead of the Grid
        geom=ESMF_GeomCreate(grid, rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

        ! Create Empty Field
        field = ESMF_FieldEmptyCreate(rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

        ! Set Geom
        call ESMF_FieldEmptySet(field, geom=geom, rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

        ! Complete Field
        call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, &
            rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

        call ESMF_FieldGet(field, localDe=0, farrayPtr=farray, totalCount=totalCount, &
          rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

        call ESMF_FieldDestroy(field, rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

        
        call ESMF_GeomDestroy(geom, rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

        
        call ESMF_GridDestroy(grid, rc=localrc)
        if (ESMF_LogFoundError(localrc, &
            ESMF_ERR_PASSTHRU, &
            ESMF_CONTEXT, rcToReturn=rc)) return

    end subroutine test_geom_comp_tkr