1
2      SUBROUTINE METDAT
3!***********************************************************************
4!                 METDAT Module of the AMS/EPA Regulatory Model - AERMOD
5!
6!        PURPOSE: Print Out The Summary Of The Meteorology Data
7!
8!        PROGRAMMER: JEFF WANG
9!        MODIFIED BY D. Strimaitis, SRC (for Wet & Dry DEPOSITION)
10!
11!        DATE:    November 8, 1993
12!
13!        MODIFIED:   To remove support for unformatted meteorological
14!                    data files.
15!                    R.W. Brode, PES, Inc., 4/10/2000
16!
17!        MODIFIED BY R.W. Brode, PES, to avoid print string > 132 chars.
18!        (DATE:    December 29, 1997)
19!
20!        MODIFIED BY D. Strimaitis, SRC (for Dry DEPOSITION)
21!        (DATE:    February 15, 1993)
22!
23!        INPUTS:  Meteorology Input Data
24!
25!        OUTPUTS: Printed Model Outputs
26!
27!        CALLED FROM:   METEXT, MEREAD
28!***********************************************************************
29
30!     Variable Declarations
31      USE MAIN1
32      IMPLICIT NONE
33      CHARACTER MODNAM*12
34
35      SAVE
36      INTEGER :: I , IHR , ILMAX , IJDAY
37!     Declare Arrays for storing date variables
38      INTEGER IMNTH(24) , INDY(24) , INHR(24)
39
40!     Variable Initializations
41      MODNAM = 'METDAT'                                                 !      2
42
43!---- WRITE Out Header Information
44      CALL HEADER
45      WRITE (IOUNIT,9011)
46!
47!---- FORMAT statements
48!
49 9011 FORMAT (/12X,'*** UP TO THE FIRST 24 HOURS OF ',                  &
50     &        'METEOROLOGICAL DATA ***'/)
51      WRITE (IOUNIT,9016) METINP , PROINP , METFRM , PROFRM
52 9016 FORMAT (3X,'Surface file:   ',A60,/,3X,'Profile file:   ',A60,/,  &
53     &        3X,'Surface format: ',A105,/,3X,'Profile format: ',A105)
54      WRITE (IOUNIT,9020) IDSURF , IDUAIR , SFNAME , UANAME , ISYEAR ,  &
55     &                    IUYEAR
56 9020 FORMAT (3X,'Surface station no.: ',I8,18X,                        &
57     &        'Upper air station no.: ',I8/18X,'Name: ',A40,3X,'Name: ',&
58     &        A40/18X,'Year: ',I6,37X,'Year: ',I6)
59      WRITE (IOUNIT,9024)
60 9024 FORMAT (/' First 24 hours of scalar data')
61      IF ( LDPART .OR. LDGAS .OR. LWPART .OR. LWGAS ) THEN
62         WRITE (IOUNIT,99025)                                           !      0
6399025    FORMAT (' YR',' MO',' DY',' HR','     H0','     U*','     W*', &
64     &           '  DT/DZ',' ZICNV',' ZIMCH','  M-O LEN','  Z0 ',       &
65     &           'BOWEN','  ALB','  REF WS','   WD','   HT','  REF TA', &
66     &           '  HT',' IPCOD',' PRATE','  RH',' SFCP',               &
67     &           ' CCVR'/66('- '))
68      ELSE
69         WRITE (IOUNIT,9025)                                            !      2
70 9025    FORMAT (' YR',' MO',' DY',' JDY',' HR','     H0','     U*',    &
71     &           '     W*','  DT/DZ',' ZICNV',' ZIMCH','  M-O LEN',     &
72     &           '    Z0','  BOWEN',' ALBEDO','  REF WS','   WD',       &
73     &           '     HT','  REF TA','     HT',/60('- '))
74      ENDIF
75
76!---- Since the first record has been read, write out the data to
77!     IOUNIT, then read the next record from the scalar file
78
79      DO I = 1 , 24                                                     !      2
80!
81
82!        We use the IF..ELSE structure because the Julian day that
83!        is passed in COMMON is JDAY, not IJDAY.
84         IF ( I.EQ.1 ) THEN                                             !     48
85
86            IF ( LDPART .OR. LWPART .OR. LDGAS .OR. LWGAS ) THEN        !      2
87               WRITE (IOUNIT,99026) IYEAR , IMONTH , IDAY , IHOUR ,     &
88     &                              SFCHF , USTAR , WSTAR , VPTGZI ,    &
89     &                              ZICONV , ZIMECH , OBULEN , SFCZ0 ,  &
90     &                              BOWEN , ALBEDO , UREF , WDREF ,     &
91     &                              UREFHT , TA , TREFHT , IPCODE ,     &
92     &                              PRATE , RH , SFCP , NCLOUD
93            ELSE
94               WRITE (IOUNIT,9026) IYEAR , IMONTH , IDAY , JDAY ,       &
95     &                             IHOUR , SFCHF , USTAR , WSTAR ,      &
96     &                             VPTGZI , ZICONV , ZIMECH , OBULEN ,  &
97     &                             SFCZ0 , BOWEN , ALBEDO , UREF ,      &
98     &                             WDREF , UREFHT , TA , TREFHT
99            ENDIF
100
101         ELSE
102            IF ( IYEAR.GE.100 ) IYEAR = IYEAR - 100*(IYEAR/100)         !     46
103            IF ( LDPART .OR. LWPART .OR. LDGAS .OR. LWGAS ) THEN
104               WRITE (IOUNIT,99026) IYEAR , IMONTH , IDAY , IHOUR ,     &
105     &                              SFCHF , USTAR , WSTAR , VPTGZI ,    &
106     &                              ZICONV , ZIMECH , OBULEN , SFCZ0 ,  &
107     &                              BOWEN , ALBEDO , UREF , WDREF ,     &
108     &                              UREFHT , TA , TREFHT , IPCODE ,     &
109     &                              PRATE , RH , SFCP , NCLOUD
110            ELSE
111               WRITE (IOUNIT,9026) IYEAR , IMONTH , IDAY , IJDAY ,      &
112     &                             IHOUR , SFCHF , USTAR , WSTAR ,      &
113     &                             VPTGZI , ZICONV , ZIMECH , OBULEN ,  &
114     &                             SFCZ0 , BOWEN , ALBEDO , UREF ,      &
115     &                             WDREF , UREFHT , TA , TREFHT
116            ENDIF
117
118         ENDIF
119
120         IF ( LDPART .OR. LWPART .OR. LDGAS .OR. LWGAS ) THEN           !     48
121!           Read record from ASCII scalar parameter file using FREE format
122!           with deposition variables
123            READ (MFUNIT,*,END=999,ERR=99,IOSTAT=IOERRNIYEAR ,        &
124     &            IMONTH , IDAY , IJDAY , IHOUR , SFCHF , USTAR ,       &
125     &            WSTAR , VPTGZI , ZICONV , ZIMECH , OBULEN , SFCZ0 ,   &
126     &            BOWEN , ALBEDO , UREF , WDREF , UREFHT , TA , TREFHT ,&
127     &            IPCODE , PRATE , RH , SFCP , NCLOUD
128!
129         ELSE
130!           Read hourly records from ASCII file using FREE format
131!           without deposition variables
132            READ (MFUNIT,*,END=999,ERR=99,IOSTAT=IOERRNIYEAR ,        &
133     &            IMONTH , IDAY , IJDAY , IHOUR , SFCHF , USTAR ,       &
134     &            WSTAR , VPTGZI , ZICONV , ZIMECH , OBULEN , SFCZ0 ,   &
135     &            BOWEN , ALBEDO , UREF , WDREF , UREFHT , TA , TREFHT
136!
137         ENDIF
138!
139      ENDDO
140!
141!---- REWIND met file, skip first record (with the latitude &
142!     longitude), and reset variables to the first hour in the file.
143!
144 999  CONTINUE                                                          !      2
145      REWIND MFUNIT
146      READ (MFUNIT,'(I2)') IDUM
147!
148      IF ( LDPART .OR. LWPART .OR. LDGAS .OR. LWGAS ) THEN
149!        Read record from ASCII scalar parameter file using FREE format
150!        with deposition variables
151         READ (MFUNIT,*,END=999,ERR=99,IOSTAT=IOERRNIYEAR , IMONTH ,  &
152     &         IDAY , IJDAY , IHOUR , SFCHF , USTAR , WSTAR , VPTGZI ,  &
153     &         ZICONV , ZIMECH , OBULEN , SFCZ0 , BOWEN , ALBEDO ,      &
154     &         UREF , WDREF , UREFHT , TA , TREFHT , IPCODE , PRATE ,   &
155     &         RH , SFCP , NCLOUD
156
157!
158      ELSE
159!        Read hourly records from ASCII file using FREE format
160!        without deposition variables
161         READ (MFUNIT,*,END=999,ERR=99,IOSTAT=IOERRNIYEAR , IMONTH ,  &
162     &         IDAY , IJDAY , IHOUR , SFCHF , USTAR , WSTAR , VPTGZI ,  &
163     &         ZICONV , ZIMECH , OBULEN , SFCZ0 , BOWEN , ALBEDO ,      &
164     &         UREF , WDREF , UREFHT , TA , TREFHT
165
166!
167      ENDIF
168
169!---- Write the first hour of profile data to IOUNIT; only 1 hour
170!        is written because there can be up to 20 levels of data, which
171!        could create a large amount of output.
172
173      IF ( NPLVLS.GT.10 ) CALL HEADER                                   !      2
174
175      WRITE (IOUNIT,9034)
176 9034 FORMAT (//,' First hour of profile data')
177      WRITE (IOUNIT,9035)
178 9035 FORMAT (' YR',' MO',' DY',' HR',' HEIGHT',' F','  WDIR',          &
179     &        '    WSPD',' AMB_TMP',' sigmaA','  sigmaW','  sigmaV')
180      DO I = 1 , NPLVLS
181         WRITE (IOUNIT,9036) KYEAR , KMONTH , KDAY , KHOUR , PFLHT(I) , &
182     &                       IFLAG(I) , PFLWD(I) , PFLWS(I) , PFLTA(I) ,&
183     &                       PFLSA(I) , PFLSW(I) , PFLSV(I)
184 9036    FORMAT (1X,4(I2.2,1X),F6.1,1X,I1,1X,F5.0,1X,F7.2,1X,F7.1,1X,   &
185     &           F6.1,1X,F7.2,1X,F7.2)
186      ENDDO
187      WRITE (IOUNIT,9037)                                               !      2
188 9037 FORMAT (/' F indicates top of profile (=1) or below (=0)')
189
190      GOTO 9999
191
192!---- WRITE Error Message:  Error Reading Met Data Input File
193!
194 99   CALL ERRHDL(PATH,MODNAM,'E','510','SURFFILE')                     !      0
195      RUNERR = .TRUE.
196
197 9999 CONTINUE                                                          !      2
198 9026 FORMAT (1X,3(I2.2,1X),I3,1X,I2.2,1X,F6.1,1X,3(F6.3,1X),2(F5.0,1X),&
199     &        F8.1,1X,F5.2,1X,2(F6.2,1X),F7.2,1X,F5.0,3(1X,F6.1))
20099026 FORMAT (1X,3(I2.2,1X),I2.2,1X,F6.1,1X,3(F6.3,1X),2(F5.0,1X),F8.1, &
201     &        1X,F4.2,1X,2(F4.2,1X),F7.2,1X,F5.0,1X,F4.0,1X,F6.1,1X,    &
202     &        F4.0,I3,F7.2,F6.0,F6.0,I3)
203      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