checkProxy Subroutine

subroutine checkProxy(xgrid, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_XGrid), intent(in) :: xgrid
integer, intent(out), optional :: rc

Calls

proc~~checkproxy~~CallsGraph proc~checkproxy checkProxy proc~esmf_logfounderror ESMF_LogFoundError proc~checkproxy->proc~esmf_logfounderror proc~esmf_xgriddeserialize ESMF_XGridDeserialize proc~checkproxy->proc~esmf_xgriddeserialize proc~esmf_xgridserialize ESMF_XGridSerialize proc~checkproxy->proc~esmf_xgridserialize proc~esmf_xgridvalidate ESMF_XGridValidate proc~checkproxy->proc~esmf_xgridvalidate 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_xgriddeserialize->proc~esmf_logfounderror c_esmc_arraydeserialize c_esmc_arraydeserialize proc~esmf_xgriddeserialize->c_esmc_arraydeserialize c_esmc_distgriddeserialize c_esmc_distgriddeserialize proc~esmf_xgriddeserialize->c_esmc_distgriddeserialize c_esmc_vmaddfobject c_esmc_vmaddfobject proc~esmf_xgriddeserialize->c_esmc_vmaddfobject c_esmc_xgriddeserialize c_esmc_xgriddeserialize proc~esmf_xgriddeserialize->c_esmc_xgriddeserialize proc~esmf_basedeserialize ESMF_BaseDeserialize proc~esmf_xgriddeserialize->proc~esmf_basedeserialize proc~esmf_basesetinitcreated ESMF_BaseSetInitCreated proc~esmf_xgriddeserialize->proc~esmf_basesetinitcreated proc~esmf_logfoundallocerror ESMF_LogFoundAllocError proc~esmf_xgriddeserialize->proc~esmf_logfoundallocerror proc~esmf_meshdeserialize ESMF_MeshDeserialize proc~esmf_xgriddeserialize->proc~esmf_meshdeserialize proc~esmf_xgridgeombasedeserialize ESMF_XGridGeomBaseDeserialize proc~esmf_xgriddeserialize->proc~esmf_xgridgeombasedeserialize proc~esmf_xgridinitialize ESMF_XGridInitialize proc~esmf_xgriddeserialize->proc~esmf_xgridinitialize proc~esmf_xgridserialize->proc~esmf_logfounderror c_esmc_arrayserialize c_esmc_arrayserialize proc~esmf_xgridserialize->c_esmc_arrayserialize c_esmc_distgridserialize c_esmc_distgridserialize proc~esmf_xgridserialize->c_esmc_distgridserialize c_esmc_xgridserialize c_esmc_xgridserialize proc~esmf_xgridserialize->c_esmc_xgridserialize proc~esmf_baseserialize ESMF_BaseSerialize proc~esmf_xgridserialize->proc~esmf_baseserialize proc~esmf_imerr ESMF_IMErr proc~esmf_xgridserialize->proc~esmf_imerr proc~esmf_meshserialize ESMF_MeshSerialize proc~esmf_xgridserialize->proc~esmf_meshserialize proc~esmf_xgridgeombaseserialize ESMF_XGridGeomBaseSerialize proc~esmf_xgridserialize->proc~esmf_xgridgeombaseserialize proc~esmf_xgridgetinit ESMF_XGridGetInit proc~esmf_xgridserialize->proc~esmf_xgridgetinit proc~esmf_xgridvalidate->proc~esmf_logfounderror proc~esmf_basegetstatus ESMF_BaseGetStatus proc~esmf_xgridvalidate->proc~esmf_basegetstatus proc~esmf_xgridvalidate->proc~esmf_imerr proc~esmf_logseterror ESMF_LogSetError proc~esmf_xgridvalidate->proc~esmf_logseterror proc~esmf_xgridvalidate->proc~esmf_xgridgetinit

Called by

proc~~checkproxy~~CalledByGraph proc~checkproxy checkProxy proc~test_regrid2xg_online test_regrid2xg_online proc~test_regrid2xg_online->proc~checkproxy proc~test_regrid2xgsph~2 test_regrid2xgSph proc~test_regrid2xgsph~2->proc~checkproxy

Source Code

  subroutine checkProxy(xgrid, rc)
    type(ESMF_XGrid), intent(in)    :: xgrid
    integer, intent(out), optional  :: rc
    
    type(ESMF_XGrid)                :: xgrid1
    character, pointer              :: buffer(:)
    integer                         :: buff_length, offset, localrc

    if(present(rc)) rc = ESMF_SUCCESS
  
    ! Allocate serialization buffer

    buff_length = 1
    allocate (buffer(0:buff_length-1))
    offset = 0
    call ESMF_XGridSerialize(xgrid, buffer, buff_length, offset, &
        inquireflag=ESMF_INQUIREONLY, rc=localrc)
    if (ESMF_LogFoundError(localrc, &
        ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return
    deallocate (buffer)

    buff_length = offset
    allocate (buffer(0:buff_length-1))

    ! call serialize and deserialize and verify again

    offset = 0
    call ESMF_XGridSerialize(xgrid, buffer, buff_length, offset, rc=localrc)
    if (ESMF_LogFoundError(localrc, &
        ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return

    offset = 0

    xgrid1 = ESMF_XGridDeserialize(buffer, offset, rc=localrc)
    if (ESMF_LogFoundError(localrc, &
        ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return

    deallocate (buffer)

    call ESMF_XGridValidate(xgrid1, rc=localrc)
    if (ESMF_LogFoundError(localrc, &
        ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return

  end subroutine checkProxy