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