subroutine MultPar_MultLines() !-------------------------------------------------------------------- character(len=10), parameter :: u_dataType_1 = 'u_UprAir.u' character(len=10), parameter :: v_dataType_1 = 'v_UprAir.u' integer, parameter :: nu_1 = 6 integer, parameter :: nv_1 = 6 real(ESMF_KIND_R4), dimension(nu_1), parameter :: sigU_1 = & (/ 2.0, 2.0, 2.2, 2.3, 2.7, 3.2 /) real(ESMF_KIND_R4), dimension(nv_1), parameter :: sigV_1 = & (/ 2.0, 2.0, 2.2, 2.3, 2.7, 3.2 /) character(ESMF_MAXSTR) :: failMsg character(ESMF_MAXSTR) :: name integer :: result = 0 rc = 0 !'''''''''''''''''''''''''''' !------------------------------------------------------------------------ !EX_UTest ! Config Find Label Test write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Config Find Label Test" call ESMF_ConfigFindLabel( cf, 'ObsErr*QSCAT::', rc=rc) ! identify label call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !'''''''''''''''''''''''''''' counter_total =counter_total + 1 if (rc == ESMF_SUCCESS) then counter_success =counter_success + 1 else print *,'ESMF_ConfigFindLabel failed, label = ObsErr*QSCAT::, rc =', rc return endif !'''''''''''''''''''''''''''' !------------------------------------------------------------------------ !EX_UTest ! Config Get Next Line Test write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Config Get Next Line Test" call ESMF_ConfigNextLine( cf, rc=rc ) ! move down 1 line call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !'''''''''''''''''''''''''''' counter_total =counter_total + 1 if (rc == ESMF_SUCCESS) then counter_success =counter_success + 1 else print *,'ESMF_ConfigNextLine failed, rc =', rc return endif !'''''''''''''''''''''''''''' !------------------------------------------------------------------------ !EX_UTest ! Config Get String Test write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Config Get String Test" call ESMF_ConfigGetAttribute( cf, u_dataType, rc=rc ) ! first token 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) failed, rc =', rc return endif if(u_dataType == u_dataType_1) then counter_success =counter_success + 1 else print *,'ESMF_ConfigGetAttribute(string) ERROR: got =', & u_dataType, ' should be ', u_dataType_1 return endif !------------------------------------------------------------------------ !EX_UTest ! Config Get Attribute String Verification Test write(failMsg, *) "Attribute String values are incorrect" write(name, *) "Verify Attribute String Values Test" call ESMF_Test((u_dataType.eq.u_dataType_1), name, failMsg, result, ESMF_SRCLINE) !'''''''''''''''''''''''''''' !------------------------------------------------------------------------ !EX_UTest ! Config Get Int Test write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Config Get Int Test" call ESMF_ConfigGetAttribute( cf, nu, rc=rc ) ! second token 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) failed, rc =', rc return endif if( nu == nu_1 ) then counter_success =counter_success + 1 else print *,'ESMF_ConfigGetAttribute(int) ERROR: got =', nu, & ' should be ', nu_1 return endif !'''''''''''''''''''''''''''' !------------------------------------------------------------------------ !EX_UTest ! Config Get Floats Test write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Config Get Floats Test" call ESMF_ConfigGetAttribute( cf, sigU, count=6, rc=rc ) ! tokens 3 thru 8 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(floats) failed, rc =', rc return endif if( any(sigU /= sigU_1) ) then print *,'ESMF_ConfigGetAttribute(floats) ERROR: got sigU =', & sigU(1:nu), ' should be sigU =', sigU_1(1:nu_1) return else counter_success =counter_success + 1 endif !------------------------------------------------------------------------ !EX_UTest ! Config Get Attribute Floats Verification Test write(failMsg, *) "Attribute Floats values are incorrect" write(name, *) "Verify Attribute Floats Values Test" call ESMF_Test((all(sigU.eq.sigU_1)), name, failMsg, result, ESMF_SRCLINE) ! Similarly for v !'''''''''''''''''''''''''''' !------------------------------------------------------------------------ !EX_UTest ! Config Get Next LIne Test write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Config Get Next Line Test" call ESMF_ConfigNextLine( cf, rc=rc ) call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) !'''''''''''''''''''''''''''' counter_total =counter_total + 1 if (rc == ESMF_SUCCESS) then counter_success =counter_success + 1 else print *,'ESMF_ConfigNextLine failed, rc =', rc return endif !'''''''''''''''''''''''''''' !------------------------------------------------------------------------ !EX_UTest ! Config Get STring Test write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Config Get String Test" call ESMF_ConfigGetAttribute( cf, v_dataType, 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) failed, rc =', rc return endif if(v_dataType == v_dataType_1) then counter_success =counter_success + 1 else print *,'ESMF_ConfigGetAttribute(string) ERROR: got =', & v_dataType, ' should be ', v_dataType_1 return endif !------------------------------------------------------------------------ !EX_UTest ! Config Get Attribute String Verification Test write(failMsg, *) "Attribute String values are incorrect" write(name, *) "Verify Attribute String Values Test" call ESMF_Test((v_dataType.eq.v_dataType_1), name, failMsg, result, ESMF_SRCLINE) !'''''''''''''''''''''''''''' !------------------------------------------------------------------------ !EX_UTest ! Config Get Int Test write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Config Get Int Test" call ESMF_ConfigGetAttribute( cf, nv, 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) failed, rc =', rc return endif if( nv == nv_1 ) then counter_success =counter_success + 1 else print *,'ESMF_ConfigGetAttribute(int) ERROR: got =', nv, & ' should be ', nv_1 return endif !------------------------------------------------------------------------ !EX_UTest ! Config Get Attribute Int Verification Test write(failMsg, *) "Attribute Int values are incorrect" write(name, *) "Verify Attribute Int Values Test" call ESMF_Test((nv.eq.nv_1), name, failMsg, result, ESMF_SRCLINE) !'''''''''''''''''''''''''''' !------------------------------------------------------------------------ !EX_UTest ! Config Get Floats Test write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "Config Get Floats Test" call ESMF_ConfigGetAttribute( cf, sigV, count=6,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(floats) failed, rc =', rc return endif if( any(sigV /= sigV_1) ) then print *,'ESMF_ConfigGetAttribute(floats) ERROR: got sigV =', & sigV(1:nv), ' should be sigV =', sigV_1(1:nv_1) return else counter_success =counter_success + 1 endif !------------------------------------------------------------------------ !EX_UTest ! Config Get Attribute Floats Verification Test write(failMsg, *) "Attribute Floats values are incorrect" write(name, *) "Verify Attribute Floats Values Test" call ESMF_Test((all(sigV.eq.sigV_1)), name, failMsg, result, ESMF_SRCLINE) end subroutine MultPar_MultLines