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