ESMF_AttPackStreamJSON Subroutine

public subroutine ESMF_AttPackStreamJSON(attpack, output, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_AttPack), intent(in) :: attpack
character(len=*), intent(out), optional :: output
integer, intent(out), optional :: rc

Calls

proc~~esmf_attpackstreamjson~~CallsGraph proc~esmf_attpackstreamjson ESMF_AttPackStreamJSON proc~attpack_formatkey ESMF_AttPack%attpack_formatKey proc~esmf_attpackstreamjson->proc~attpack_formatkey proc~attpack_getpayload ESMF_AttPack%attpack_getPayload proc~esmf_attpackstreamjson->proc~attpack_getpayload proc~esmf_infodump ESMF_InfoDump proc~esmf_attpackstreamjson->proc~esmf_infodump proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_attpackstreamjson->proc~esmf_logfounderror proc~attpack_getpayload->proc~esmf_logfounderror proc~esmf_infodump->proc~esmf_logfounderror interface~c_info_dump c_info_dump proc~esmf_infodump->interface~c_info_dump interface~c_info_dump_len c_info_dump_len proc~esmf_infodump->interface~c_info_dump_len 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 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_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~~esmf_attpackstreamjson~~CalledByGraph proc~esmf_attpackstreamjson ESMF_AttPackStreamJSON proc~checkcomponentmetadata checkComponentMetadata proc~checkcomponentmetadata->proc~esmf_attpackstreamjson proc~checkfieldmetadata checkFieldMetadata proc~checkfieldmetadata->proc~esmf_attpackstreamjson proc~checkstate checkState proc~checkstate->proc~esmf_attpackstreamjson proc~checkstate->proc~checkfieldmetadata proc~checkstate->proc~checkstate proc~nuopc_checkcplcomponentmetadata NUOPC_CheckCplComponentMetadata proc~nuopc_checkcplcomponentmetadata->proc~esmf_attpackstreamjson proc~nuopc_checkfield NUOPC_CheckField proc~nuopc_checkfield->proc~esmf_attpackstreamjson proc~nuopc_checkgridcomponentmetadata NUOPC_CheckGridComponentMetadata proc~nuopc_checkgridcomponentmetadata->proc~esmf_attpackstreamjson proc~nuopc_checkstate NUOPC_CheckState proc~nuopc_checkstate->proc~esmf_attpackstreamjson proc~nuopc_checkstate->proc~nuopc_checkfield proc~nuopc_checkstate->proc~nuopc_checkstate interface~nuopc_checkcomponentmetadata NUOPC_CheckComponentMetadata interface~nuopc_checkcomponentmetadata->proc~nuopc_checkcplcomponentmetadata interface~nuopc_checkcomponentmetadata->proc~nuopc_checkgridcomponentmetadata proc~ic_final~2 ic_final proc~ic_final~2->proc~checkstate proc~ic_final~3 ic_final proc~ic_final~3->proc~nuopc_checkstate proc~ic_final~4 ic_final proc~ic_final~4->proc~nuopc_checkstate proc~ic_init ic_init proc~ic_init->proc~nuopc_checkstate proc~ic_init->interface~nuopc_checkcomponentmetadata proc~ic_init~2 ic_init proc~ic_init~2->proc~checkcomponentmetadata proc~ic_init~2->proc~checkstate proc~ic_init~3 ic_init proc~ic_init~3->proc~nuopc_checkstate proc~ic_init~3->interface~nuopc_checkcomponentmetadata proc~ic_init~4 ic_init proc~ic_init~4->proc~nuopc_checkstate proc~ic_init~4->interface~nuopc_checkcomponentmetadata proc~ic_run~2 ic_run proc~ic_run~2->proc~checkstate proc~ic_run~3 ic_run proc~ic_run~3->proc~nuopc_checkstate proc~ic_run~4 ic_run proc~ic_run~4->proc~nuopc_checkstate

Source Code

subroutine ESMF_AttPackStreamJSON(attpack, output, rc)
  type(ESMF_AttPack), intent(in) :: attpack
  character(len=*), intent(out), optional :: output
  integer, intent(out), optional :: rc

  integer :: localrc
  character(:), allocatable :: c_output, key

  localrc = ESMF_FAILURE
  if (present(rc)) rc = ESMF_RC_NOT_IMPL

  key = attpack%formatKey(rc=localrc)
  if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return

  c_output = ESMF_InfoDump(attpack%getPayload(), key=key, rc=localrc)
  if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return

  if (LEN(output) < LEN(c_output)) then
    if (ESMF_LogFoundError(ESMF_RC_ARG_BAD, msg="output buffer length too small", ESMF_CONTEXT, rcToReturn=rc)) return
  endif
  output = c_output

  if (present(rc)) rc = ESMF_SUCCESS
end subroutine ESMF_AttPackStreamJSON