SinglePar Subroutine

public subroutine SinglePar()

Arguments

None

Calls

proc~~singlepar~~CallsGraph proc~singlepar SinglePar interface~esmf_configgetattribute ESMF_ConfigGetAttribute proc~singlepar->interface~esmf_configgetattribute proc~esmf_configgetchar ESMF_ConfigGetChar proc~singlepar->proc~esmf_configgetchar proc~esmf_test ESMF_Test proc~singlepar->proc~esmf_test proc~esmf_configgetfloatr4 ESMF_ConfigGetFloatR4 interface~esmf_configgetattribute->proc~esmf_configgetfloatr4 proc~esmf_configgetfloatr8 ESMF_ConfigGetFloatR8 interface~esmf_configgetattribute->proc~esmf_configgetfloatr8 proc~esmf_configgetfloatsr4 ESMF_ConfigGetFloatsR4 interface~esmf_configgetattribute->proc~esmf_configgetfloatsr4 proc~esmf_configgetfloatsr8 ESMF_ConfigGetFloatsR8 interface~esmf_configgetattribute->proc~esmf_configgetfloatsr8 proc~esmf_configgetinti4 ESMF_ConfigGetIntI4 interface~esmf_configgetattribute->proc~esmf_configgetinti4 proc~esmf_configgetinti8 ESMF_ConfigGetIntI8 interface~esmf_configgetattribute->proc~esmf_configgetinti8 proc~esmf_configgetintsi4 ESMF_ConfigGetIntsI4 interface~esmf_configgetattribute->proc~esmf_configgetintsi4 proc~esmf_configgetintsi8 ESMF_ConfigGetIntsI8 interface~esmf_configgetattribute->proc~esmf_configgetintsi8 proc~esmf_configgetlogical ESMF_ConfigGetLogical interface~esmf_configgetattribute->proc~esmf_configgetlogical proc~esmf_configgetlogicals ESMF_ConfigGetLogicals interface~esmf_configgetattribute->proc~esmf_configgetlogicals proc~esmf_configgetstring ESMF_ConfigGetString interface~esmf_configgetattribute->proc~esmf_configgetstring proc~esmf_configgetstrings ESMF_ConfigGetStrings interface~esmf_configgetattribute->proc~esmf_configgetstrings proc~esmf_configgetinit ESMF_ConfigGetInit proc~esmf_configgetchar->proc~esmf_configgetinit proc~esmf_configgetchar->proc~esmf_configgetstring proc~esmf_configsetcurrentattrused ESMF_ConfigSetCurrentAttrUsed proc~esmf_configgetchar->proc~esmf_configsetcurrentattrused proc~esmf_imerr ESMF_IMErr proc~esmf_configgetchar->proc~esmf_imerr proc~esmf_logwrite ESMF_LogWrite proc~esmf_test->proc~esmf_logwrite proc~esmf_configgetfloatr4->proc~esmf_configgetinit proc~esmf_configgetfloatr4->proc~esmf_configgetstring proc~esmf_configgetfloatr4->proc~esmf_configsetcurrentattrused proc~esmf_configgetfloatr4->proc~esmf_imerr proc~esmf_configgetfloatr8->proc~esmf_configgetinit proc~esmf_configgetfloatr8->proc~esmf_configgetstring proc~esmf_configgetfloatr8->proc~esmf_configsetcurrentattrused proc~esmf_configgetfloatr8->proc~esmf_imerr proc~esmf_configgetfloatsr4->proc~esmf_configgetfloatr4 proc~esmf_configgetfloatsr4->proc~esmf_configgetinit proc~esmf_configgetfloatsr4->proc~esmf_imerr proc~esmf_configfindlabel ESMF_ConfigFindLabel proc~esmf_configgetfloatsr4->proc~esmf_configfindlabel proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_configgetfloatsr4->proc~esmf_logfounderror proc~esmf_configgetfloatsr8->proc~esmf_configgetfloatr8 proc~esmf_configgetfloatsr8->proc~esmf_configgetinit proc~esmf_configgetfloatsr8->proc~esmf_imerr proc~esmf_configgetfloatsr8->proc~esmf_configfindlabel proc~esmf_configgetfloatsr8->proc~esmf_logfounderror proc~esmf_configgetinti4->proc~esmf_configgetinit proc~esmf_configgetinti4->proc~esmf_configgetstring proc~esmf_configgetinti4->proc~esmf_configsetcurrentattrused proc~esmf_configgetinti4->proc~esmf_imerr proc~esmf_configgetinti8->proc~esmf_configgetinit proc~esmf_configgetinti8->proc~esmf_configgetstring proc~esmf_configgetinti8->proc~esmf_configsetcurrentattrused proc~esmf_configgetinti8->proc~esmf_imerr proc~esmf_configgetintsi4->proc~esmf_configgetinit proc~esmf_configgetintsi4->proc~esmf_configgetinti4 proc~esmf_configgetintsi4->proc~esmf_imerr proc~esmf_configgetintsi4->proc~esmf_configfindlabel proc~esmf_configgetintsi4->proc~esmf_logfounderror proc~esmf_configgetintsi8->proc~esmf_configgetinit proc~esmf_configgetintsi8->proc~esmf_configgetinti8 proc~esmf_configgetintsi8->proc~esmf_imerr proc~esmf_configgetintsi8->proc~esmf_configfindlabel proc~esmf_configgetintsi8->proc~esmf_logfounderror proc~esmf_configgetlogical->proc~esmf_configgetinit proc~esmf_configgetlogical->proc~esmf_configgetstring proc~esmf_configgetlogical->proc~esmf_configsetcurrentattrused proc~esmf_configgetlogical->proc~esmf_imerr proc~esmf_configgetlogical->proc~esmf_logfounderror proc~esmf_utilstringlowercase ESMF_UtilStringLowerCase proc~esmf_configgetlogical->proc~esmf_utilstringlowercase proc~esmf_configgetlogicals->proc~esmf_configgetinit proc~esmf_configgetlogicals->proc~esmf_configgetlogical proc~esmf_configgetlogicals->proc~esmf_imerr proc~esmf_configgetlogicals->proc~esmf_configfindlabel proc~esmf_configgetlogicals->proc~esmf_logfounderror proc~esmf_configgetstring->proc~esmf_configgetinit proc~esmf_configgetstring->proc~esmf_imerr proc~esmf_configgetstring->proc~esmf_configfindlabel proc~esmf_configgetstring->proc~esmf_logfounderror proc~index_ index_ proc~esmf_configgetstring->proc~index_ proc~esmf_configgetstrings->proc~esmf_configgetinit proc~esmf_configgetstrings->proc~esmf_configgetstring proc~esmf_configgetstrings->proc~esmf_imerr proc~esmf_configgetstrings->proc~esmf_configfindlabel proc~esmf_configgetstrings->proc~esmf_logfounderror proc~esmf_configsetcurrentattrused->proc~esmf_configgetinit proc~esmf_configsetcurrentattrused->proc~esmf_imerr proc~esmf_utilarray2string ESMF_UtilArray2String proc~esmf_configsetcurrentattrused->proc~esmf_utilarray2string proc~esmf_initcheckdeep ESMF_InitCheckDeep proc~esmf_imerr->proc~esmf_initcheckdeep proc~esmf_imerr->proc~esmf_logfounderror 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

Source Code

     subroutine SinglePar()
!--------------------------------------------------------------------
      integer, parameter   :: nDE_0 = 32      
      real(ESMF_KIND_R4), parameter      :: tau_0 = 14.0
      character(*), parameter :: restart_file_0 = 'RestartFile123'
      character(ESMF_MAXSTR), parameter   :: answer_0 = 'y'
      character(ESMF_MAXSTR) :: token_string
      logical, parameter     :: optimize_0 = .false.
      character(ESMF_MAXSTR) :: failMsg
      character(ESMF_MAXSTR) :: name
      character(8) :: restart_file_tooshort
      integer :: result = 0

      rc = 0

!''''''''''''''''''''''''''''

     !------------------------------------------------------------------------
     !EX_UTest
     ! Non initialized Config Get Attribute Int Test
     write(failMsg, *) "Did not return ESMF_RC_OBJ_NOT_CREATED"
     write(name, *) "Non initialized Config Get Attribute Int Test"
     call ESMF_ConfigGetAttribute( cf1, nDE, label ='Number_of_DEs:', & 
           default=7, rc = rc )
     call ESMF_Test((rc.eq.ESMF_RC_OBJ_NOT_CREATED), name, failMsg, result, ESMF_SRCLINE)

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute Int Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute Int Test"
     call ESMF_ConfigGetAttribute( cf, nDE, label ='Number_of_DEs:', & 
           default=7, rc = rc )
     call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

!''''''''''''''''''''''''''''
      
      counter_total =counter_total + 1
      if ( rc /= ESMF_SUCCESS ) then      
         print *,'ESMF_ConfigGetAttribute(int) got nDE =', nDE,' rc =', rc
      else
         if (nDE == nDE_0) then
            counter_success =counter_success + 1
         else
            print *,'ESMF_ConfigGetAttribute(int) ERROR: got nDE =', nDE, &
              ' should be ', nDE_0
         endif
      endif

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute Verification Test
     write(failMsg, *) "Attribute integer value is incorrect"
     write(name, *) "Verify Attribute Value Test"
     call ESMF_Test((nDE.eq.NDE_0), name, failMsg, result, ESMF_SRCLINE)


! Floating point

      rc = 0
!''''''''''''''''''''''''''''
   
     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute Float Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute Float Test"
      call ESMF_ConfigGetAttribute(cf, tau, &
           label = 'Relaxation_time_scale_in_days:', rc = rc)
     call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)
!''''''''''''''''''''''''''''
   
      counter_total =counter_total + 1
      if ( rc /= ESMF_SUCCESS ) then      
         print *,'ESMF_ConfigGetAttribute(float) got tau =', tau,' rc =', rc
      else
         if (tau == tau_0) then
            counter_success =counter_success + 1
         else
            print *,'ESMF_ConfigGetAttribute(float) ERROR: got tau =', tau, &
              ' should be ', tau_0
         endif
      endif

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute FLoat Verification Test
     write(failMsg, *) "Attribute float value is incorrect"
     write(name, *) "Verify Attribute Float Value Test"
     call ESMF_Test((tau.eq.tau_0), name, failMsg, result, ESMF_SRCLINE)


! Character

      rc = 0
!''''''''''''''''''''''''''''
     !------------------------------------------------------------------------
     !EX_UTest
     ! Non-created Config Get Attribute Char Test
     write(failMsg, *) "Did not return ESMF_RC_OBJ_NOT_CREATED"
     write(name, *) "Config Get Attribute Char Test"
     call ESMF_ConfigGetChar( cf1, answer, label='Do_you_want_quality_control:', &
                                    rc = rc )
     call ESMF_Test((rc.eq.ESMF_RC_OBJ_NOT_CREATED), name, failMsg, result, ESMF_SRCLINE)

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute Char Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute Char Test"
     call ESMF_ConfigGetChar( cf, answer, label='Do_you_want_quality_control:', &
                                    rc = rc )
     call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)
!''''''''''''''''''''''''''''

      counter_total =counter_total + 1
      if ( rc /= ESMF_SUCCESS ) then      
         print *,'ESMF_ConfigGetAttribute(char) got answer =', &
                 answer,' rc =', rc
      else
         if (answer == answer_0) then
            counter_success =counter_success + 1
         else
            print *,'ESMF_ConfigGetAttribute(char) ERROR: got answer =', &
                     answer, ' should be ', answer_0
         endif
      endif
     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute Char Verification Test
     write(failMsg, *) "Attribute char value is incorrect"
     write(name, *) "Verify Attribute Char Value Test"
     call ESMF_Test((answer.eq.answer_0), name, failMsg, result, ESMF_SRCLINE)


! String

     rc = 0
!''''''''''''''''''''''''''''

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute String too short Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute String too short Test"
     call ESMF_ConfigGetAttribute( cf, restart_file_tooshort ,label='restart_file_name:', &
           rc = rc )
     call ESMF_Test((rc /= ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute String too short w/default Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute String too short w/default Test"
     call ESMF_ConfigGetAttribute( cf, restart_file_tooshort ,label='restart_file_name:', &
           default='restart_file_001.dat', rc = rc )
     call ESMF_Test((rc /= ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute String Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute String Test"
     call ESMF_ConfigGetAttribute( cf, restart_file ,label='restart_file_name:', &
           rc = rc )
     call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)
!''''''''''''''''''''''''''''

      counter_total =counter_total + 1
      if ( rc /= ESMF_SUCCESS ) then      
         print *,'ESMF_ConfigGetAttribute(string) got =', &
                  restart_file,' rc =', rc
      else
         if (answer == answer_0) then
            counter_success =counter_success + 1
         else
            print *,'ESMF_ConfigGetAttribute(string) ERROR: got  =', &
                     restart_file, ' should be ', restart_file_0
         endif
      endif
     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute String Verification Test
     write(failMsg, *) "Attribute char value is incorrect"
     write(name, *) "Verify Attribute String Value Test"
     call ESMF_Test((answer.eq.answer_0), name, failMsg, result, ESMF_SRCLINE)

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute String multi-word token Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute String Multi-word apostrophe Token Test"
     call ESMF_ConfigGetAttribute( cf, token_string ,label='Token_Example_1:', &
           rc = rc )
     call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute String multi-word token value Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute String Multi-word apostrophe Token value Test"
     rc = merge (ESMF_SUCCESS, ESMF_FAILURE, token_string == 'This is a token example')
     call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute String multi-word token Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute String Multi-word quoted Token Test"
     token_string = 'xxxx'
     call ESMF_ConfigGetAttribute( cf, token_string ,label='Token_Example_2:', &
           rc = rc )
     call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute String multi-word token value Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute String Multi-word quoted Token value Test"
     rc = merge (ESMF_SUCCESS, ESMF_FAILURE, token_string == "This is a token example")
     call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

! Logical

      rc = 0
!''''''''''''''''''''''''''''
     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute Logical Test
     write(failMsg, *) "Did not return ESMF_SUCCESS"
     write(name, *) "Config Get Attribute Logical Test"
     call ESMF_ConfigGetAttribute( cf, optimize, label='Optimization:', rc = rc )
     call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)
!''''''''''''''''''''''''''''

      counter_total =counter_total + 1
      if ( rc /= ESMF_SUCCESS ) then      
         print *,'ESMF_ConfigGetAttribute(logical) got optimize = ', &
                 optimize,' rc =', rc
      else
         if (optimize .eqv. optimize_0) then
            counter_success =counter_success + 1
         else
            print *,'ESMF_ConfigGetAttribute(logical) ERROR: got optimize =', &
                     optimize, ' should be ', optimize_0
         endif
      endif
     !------------------------------------------------------------------------
     !EX_UTest
     ! Config Get Attribute Logical Verification Test
     write(failMsg, *) "Attribute logical value is incorrect"
     write(name, *) "Verify Attribute Logical Value Test"
     call ESMF_Test((optimize.eqv.optimize_0), name, failMsg, result, &
                     ESMF_SRCLINE)


    end subroutine SinglePar