createSingleTileField Subroutine

subroutine createSingleTileField(rc)

Arguments

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

Calls

proc~~createsingletilefield~~CallsGraph proc~createsingletilefield createSingleTileField esmf_fieldbundleadd esmf_fieldbundleadd proc~createsingletilefield->esmf_fieldbundleadd esmf_fieldbundlecreate esmf_fieldbundlecreate proc~createsingletilefield->esmf_fieldbundlecreate esmf_fieldcreate esmf_fieldcreate proc~createsingletilefield->esmf_fieldcreate esmf_fieldfill esmf_fieldfill proc~createsingletilefield->esmf_fieldfill interface~esmf_gridcreatenoperidimufrm ESMF_GridCreateNoPeriDimUfrm proc~createsingletilefield->interface~esmf_gridcreatenoperidimufrm proc~esmf_arrayspecset ESMF_ArraySpecSet proc~createsingletilefield->proc~esmf_arrayspecset proc~esmf_gridcreatenoperidimufrmr ESMF_GridCreateNoPeriDimUfrmR interface~esmf_gridcreatenoperidimufrm->proc~esmf_gridcreatenoperidimufrmr proc~esmf_logseterror ESMF_LogSetError proc~esmf_arrayspecset->proc~esmf_logseterror proc~esmf_gridcreatenoperidimufrmr->proc~esmf_logseterror interface~esmf_gridcreatenoperidim ESMF_GridCreateNoPeriDim proc~esmf_gridcreatenoperidimufrmr->interface~esmf_gridcreatenoperidim interface~esmf_gridget ESMF_GridGet proc~esmf_gridcreatenoperidimufrmr->interface~esmf_gridget proc~esmf_gridfillstaggercoordsufrm ESMF_GridFillStaggerCoordsUfrm proc~esmf_gridcreatenoperidimufrmr->proc~esmf_gridfillstaggercoordsufrm proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_gridcreatenoperidimufrmr->proc~esmf_logfounderror esmf_breakpoint esmf_breakpoint proc~esmf_logseterror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logseterror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logseterror->proc~esmf_logwrite

Source Code

  subroutine createSingleTileField(rc)
    ! Creates a single-tile field and associated field bundle for failure testing
    integer, intent(out) :: rc

    type(ESMF_ArraySpec) :: arraySpec

    !------------------------------------------------------------------------
    ! Set up a single-tile grid
    !------------------------------------------------------------------------

    gridSingleTile = ESMF_GridCreateNoPeriDimUfrm( &
         maxIndex = [4,4], &
         minCornerCoord = [0._ESMF_KIND_R8, 0._ESMF_KIND_R8], &
         maxCornerCoord = [4._ESMF_KIND_R8, 4._ESMF_KIND_R8], &
         staggerLocList = [ESMF_STAGGERLOC_CENTER], &
         rc = rc)
    if (rc /= ESMF_SUCCESS) return

    !------------------------------------------------------------------------
    ! Create a field on the single-tile grid and associated field bundle
    !------------------------------------------------------------------------

    call ESMF_ArraySpecSet(arraySpec, typekind=ESMF_TYPEKIND_R8, rank=2, rc=rc)
    if (rc /= ESMF_SUCCESS) return

    fieldSingleTile = ESMF_FieldCreate(gridSingleTile, arraySpec, name="fieldSingleTile", rc=rc)
    if (rc /= ESMF_SUCCESS) return
    call ESMF_FieldFill(fieldSingleTile, dataFillScheme='sincos', rc=rc)
    if (rc /= ESMF_SUCCESS) return

    fieldBundleMixedTileCounts = ESMF_FieldBundleCreate(name="fbmixed", rc=rc)
    if (rc /= ESMF_SUCCESS) return
    call ESMF_FieldBundleAdd(fieldBundleMixedTileCounts, [field1, fieldSingleTile], rc=rc)
    if (rc /= ESMF_SUCCESS) return

  end subroutine createSingleTileField