ESMF_ConfigNextLine Subroutine

public subroutine ESMF_ConfigNextLine(config, keywordEnforcer, tableEnd, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Config), intent(inout) :: config
type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
logical, intent(out), optional :: tableEnd
integer, intent(out), optional :: rc

Calls

proc~~esmf_confignextline~~CallsGraph proc~esmf_confignextline ESMF_ConfigNextLine proc~esmf_configgetinit ESMF_ConfigGetInit proc~esmf_confignextline->proc~esmf_configgetinit proc~esmf_imerr ESMF_IMErr proc~esmf_confignextline->proc~esmf_imerr proc~index_ index_ proc~esmf_confignextline->proc~index_ proc~esmf_initcheckdeep ESMF_InitCheckDeep proc~esmf_imerr->proc~esmf_initcheckdeep proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_imerr->proc~esmf_logfounderror 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

Called by

proc~~esmf_confignextline~~CalledByGraph proc~esmf_confignextline ESMF_ConfigNextLine proc~esmf_configgetdim ESMF_ConfigGetDim proc~esmf_configgetdim->proc~esmf_confignextline proc~f_esmf_confignextline f_esmf_confignextline proc~f_esmf_confignextline->proc~esmf_confignextline proc~multpar_multlines MultPar_MultLines proc~multpar_multlines->proc~esmf_confignextline proc~nuopc_freeformatcreateread NUOPC_FreeFormatCreateRead proc~nuopc_freeformatcreateread->proc~esmf_confignextline proc~nuopc_freeformatcreateread->proc~esmf_configgetdim proc~read_descriptor_files read_descriptor_files proc~read_descriptor_files->proc~esmf_confignextline proc~read_descriptor_files->proc~esmf_configgetdim proc~read_dist_specification read_dist_specification proc~read_dist_specification->proc~esmf_confignextline proc~read_dist_specification->proc~esmf_configgetdim proc~read_table_integer read_table_integer proc~read_dist_specification->proc~read_table_integer proc~read_table_real read_table_real proc~read_dist_specification->proc~read_table_real proc~read_table_string read_table_string proc~read_dist_specification->proc~read_table_string proc~read_redistribution_grid read_redistribution_grid proc~read_redistribution_grid->proc~esmf_confignextline proc~read_redistribution_grid->proc~esmf_configgetdim proc~read_redistribution_grid->proc~read_table_integer proc~read_redistribution_grid->proc~read_table_real proc~read_redistribution_grid->proc~read_table_string proc~read_regridding_grid read_regridding_grid proc~read_regridding_grid->proc~esmf_confignextline proc~read_regridding_grid->proc~esmf_configgetdim proc~read_regridding_grid->proc~read_table_integer proc~read_regridding_grid->proc~read_table_real proc~read_regridding_grid->proc~read_table_string proc~read_table_integer->proc~esmf_confignextline proc~read_table_real->proc~esmf_confignextline proc~read_table_string->proc~esmf_confignextline proc~read_testharness_config Read_TestHarness_Config proc~read_testharness_config->proc~esmf_confignextline proc~read_testharness_config->proc~esmf_configgetdim proc~sections Sections proc~sections->proc~esmf_confignextline proc~sections->proc~esmf_configgetdim proc~table Table proc~table->proc~esmf_confignextline proc~table->proc~esmf_configgetdim program~esmf_configoverviewex ESMF_ConfigOverviewEx program~esmf_configoverviewex->proc~esmf_confignextline program~esmf_hconfigutest ESMF_HConfigUTest program~esmf_hconfigutest->proc~esmf_confignextline interface~nuopc_freeformatcreate NUOPC_FreeFormatCreate interface~nuopc_freeformatcreate->proc~nuopc_freeformatcreateread proc~f_esmf_configgetdim f_esmf_configgetdim proc~f_esmf_configgetdim->proc~esmf_configgetdim proc~f_esmf_configgetdimnolabel f_esmf_configgetdimnolabel proc~f_esmf_configgetdimnolabel->proc~esmf_configgetdim proc~read_grid_specification read_grid_specification proc~read_grid_specification->proc~read_redistribution_grid proc~read_grid_specification->proc~read_regridding_grid proc~read_testharness_specifier Read_TestHarness_Specifier proc~read_testharness_specifier->proc~read_descriptor_files proc~read_testharness_specifier->proc~read_dist_specification program~esmf_test_harness esmf_test_harness program~esmf_test_harness->proc~read_testharness_config

Source Code

    subroutine ESMF_ConfigNextLine(config, keywordEnforcer, tableEnd, rc)

! !ARGUMENTS:
      type(ESMF_Config), intent(inout)          :: config 
type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
      logical,           intent(out),  optional :: tableEnd
      integer,           intent(out),  optional :: rc 
!
!
! !STATUS:
! \begin{itemize}
! \item\apiStatusCompatibleVersion{5.2.0r}
! \end{itemize}
!
! !DESCRIPTION: 
!   Selects the next line (for tables).
!
!   The arguments are:
!   \begin{description}
!   \item [config]
!     Already created {\tt ESMF\_Config} object.
!   \item [{[tableEnd]}]
!     Returns {\tt .true.} if end of table mark (::) is encountered.
!   \item [{[rc]}]
!     Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
!   \end{description}

!EOP -------------------------------------------------------------------
!
      integer :: localrc
      integer :: i, j
      logical :: local_tend

      ! Initialize return code; assume routine not implemented 
      if (present(rc)) rc = ESMF_RC_NOT_IMPL

      localrc = ESMF_RC_NOT_IMPL
      local_tend = .false.
      !check variables
      ESMF_INIT_CHECK_DEEP(ESMF_ConfigGetInit,config,rc)

      if ( config%cptr%next_line >= config%cptr%nbuf ) then
         localrc = ESMF_RC_MEM
           if ( present (rc )) then
             rc = localrc
           endif
         return
      end if

      i = config%cptr%next_line
      j = i + index_(config%cptr%buffer(i:config%cptr%nbuf),EOL)

      if ( config%cptr%buffer(i:i+1) .eq. '::' ) then
         localrc = ESMF_SUCCESS      ! end of table. We set rc = ESMF_SUCCESS
         local_tend = .true.         ! and end = .true. Used to be iret = 1  
         config%cptr%next_line = config%cptr%nbuf + 1
         config%cptr%value_begin = config%cptr%nbuf + 1
         config%cptr%next_item = config%cptr%nbuf + 1
         config%cptr%eolflag = .true.
         if ( present (tableEnd )) then
           tableEnd = local_tend
         endif
         if ( present (rc )) then
           rc = localrc
         endif
         return
      end if

      config%cptr%value_begin = i
      config%cptr%next_item = i
      config%cptr%next_line = j
      config%cptr%eolflag = .false.
      localrc = ESMF_SUCCESS
      if ( present (tableEnd )) then
        tableEnd = local_tend
      endif
      if ( present (rc )) then
        rc = localrc
      endif

    end subroutine ESMF_ConfigNextLine