1 2 SUBROUTINE METQA 3 !*********************************************************************** 4 ! METQA Module of the AMS/EPA Regulatory Model - AERMOD 5 ! 6 ! PURPOSE: Performs Quality Assurance Checks for 7 ! One Hour of Meteorological Data 8 ! 9 ! PROGRAMMER: JEFF WANG, ROGER BRODE 10 ! 11 ! DATE: March 2, 1992 12 ! 13 ! MODIFIED: To adjust warning limit for USTAR from 2.0 to 4.0, 14 ! adjust warning limit for WSTAR from 3.0 to 4.0, and 15 ! to minimize duplication of warning messages for 16 ! missing hours. 17 ! R. Brode, MACTEC/PES, 10/26/2004 18 ! 19 ! MODIFIED: To check for errors reading surface variables for 20 ! new deposition algorithms. R. Brode, PES, 12/6/94 21 ! 22 ! MODIFIED: To Change Temperature Range Check Lower Limit To 23 ! 230 K - 9/29/92 24 ! 25 ! INPUTS: Meteorological Variables for One Hour 26 ! 27 ! OUTPUTS: Meteorological Data Error and Status Switches 28 ! 29 ! CALLED FROM: METCHK 30 !*********************************************************************** 31 32 ! Variable Declarations 33 USE MAIN1 34 IMPLICIT NONE 35 CHARACTER MODNAM*12 36 INTEGER :: NL 37 38 SAVE 39 40 ! Variable Initializations 41 MODNAM = 'METQA' ! 4320 42 43 !---- Check Data for Out-of-Range Values: 44 45 !---- Wind direction: 46 IF ( (WDREF.LT.0.0 .AND. WDREF.GT.-9.0) .OR. & 47 & (WDREF.GT.360.0 .AND. WDREF.LT.900.0) ) THEN 48 ! WRITE Warning Message: Invalid Wind Dir'n 49 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 50 CALL ERRHDL(PATH,MODNAM,'W','410',DUMMY) 51 ENDIF 52 53 IF ( WDREF.EQ.0.0 ) WDREF = 360.0 ! 4320 54 55 DO NL = 1 , NPLVLS 56 IF ( PFLWD(NL).EQ.0.0 ) PFLWD(NL) = 360.0 ! 4320 57 ENDDO 58 59 !---- Wind speed range: 60 IF ( UREF.LT.0.0 .AND. UREF.GT.-9.0 ) THEN ! 4320 61 ! WRITE Warning Message: Invalid Wind Speed 62 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 63 CALL ERRHDL(PATH,MODNAM,'W','420',DUMMY) 64 ENDIF 65 ! 66 IF ( UREF.GT.30.0 .AND. UREF.LT.90.0 ) THEN ! 4320 67 ! WRITE Warning Message: Wind Speed Over 30m/s 68 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 69 CALL ERRHDL(PATH,MODNAM,'W','420',DUMMY) 70 ENDIF 71 72 !---- Wind data reference height: 73 IF ( UREFHT.GT.100.0 ) THEN ! 4320 74 ! 75 ! ----------------------------------------------- 76 ! Height of the wind data to be used in the 77 ! computation is greater than 100m - warn the user 78 ! ----------------------------------------------- 79 80 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 81 CALL ERRHDL(PATH,MODNAM,'W','475',DUMMY) 82 83 ENDIF 84 85 !---- Ambient temperature: 86 IF ( (TA.LT.220.0 .AND. TA.GT.0.0) .OR. & 87 & (TA.GT.330.0 .AND. TA.LT.900.0) ) THEN 88 ! WRITE Warning Message: Ambient Temperature May be Out-of-Range 89 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 90 CALL ERRHDL(PATH,MODNAM,'W','430',DUMMY) 91 ENDIF 92 93 !---- Friction velocity (meters/second): 94 IF ( USTAR.GT.4.0 ) THEN ! 4320 95 ! WRITE Warning Message: Friction velocity may be too large 96 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 97 CALL ERRHDL(PATH,MODNAM,'W','432',DUMMY) 98 ENDIF 99 100 !---- Convective velocity (meters/second): 101 IF ( WSTAR.GT.4.00 ) THEN ! 4320 102 ! WRITE Warning Message: Convective velocity may be too large 103 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 104 CALL ERRHDL(PATH,MODNAM,'W','438',DUMMY) 105 ELSEIF ( WSTAR.EQ.0.0 ) THEN 106 ! WRITE Warning Message: Convective velocity = 0.0, set to 0.001 107 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 108 CALL ERRHDL(PATH,MODNAM,'W','438',DUMMY) 109 WSTAR = 0.001 110 ENDIF 111 112 !---- Surface roughness length (m): 113 IF ( SFCZ0.LT.0.001 ) THEN ! 4320 114 IF ( .NOT.MSGHR .AND. .NOT.CLMHR ) THEN ! 0 115 ! WRITE Warning Message: Surface roughness length out-of-range 116 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 117 CALL ERRHDL(PATH,MODNAM,'W','435',DUMMY) 118 ENDIF 119 ! Set to 0.001 to avoid divide-by-zero error 120 SFCZ0 = 0.001 ! 0 121 ENDIF 122 123 !---- Check for precipitation rate out of range 124 ! Assume precipitation is missing, set to 0.0 125 IF ( PRATE.LT.0.0 .OR. PRATE.EQ.99 ) PRATE = 0.0 ! 4320 126 127 CONTINUE 128 END
HyperKWIC - Version 1.00DD executed at 20:00 on 1 Mar 2018 | Personal or Academic or Evaluation User | Free for Non-Commercial, Non-Government Use