1
2      SUBROUTINE VARINI
3!***********************************************************************
4!                 VARINI Module of the AMS/EPA Regulatory Model - AERMOD
5! ----------------------------------------------------------------------
6! ---    ISC-PRIME     Version 1.0    Level 970812              Modified
7! ---        V. Tino
8! ---        Earth Tech, Inc.
9!            Prepared for EPRI under contract WO3527-01
10! ----------------------------------------------------------------------
11!
12!        PURPOSE: To Initialize Variables for Setup
13!
14!        PROGRAMMER: Roger Brode, Jeff Wang
15!        MODIFIED BY D. Strimaitis, SRC (for Wet & Dry DEPOSITION, INT.
16!                                        TERRAIN, and GRIDDED TERRAIN
17!                                        Processing)
18!
19!        DATE:    December 15, 1993
20!
21!        MODIFIED:  To initialize DDPLETE and WDPLETE to .TRUE. for
22!                   dry and wet depletion.
23!                   R.W. Brode, MACTEC, Inc. (f/k/a PES, Inc.) - 10/26/04
24!
25!        MODIFIED:  To use two decimal places for reading temperatures
26!                   from the profile file in the default format (PROFRM)
27!                   R.W. Brode, PES, Inc. - 8/28/01
28!
29!        MODIFIED BY D. Strimaitis, SRC (for DEPOSITION)
30!        (DATE:    February 15, 1993)
31!
32!        MODIFIED:  To Include TOXXFILE Option - 9/29/92
33!
34!        INPUTS:  None
35!
36!        OUTPUTS: Initialized Variables
37!
38!        CALLED FROM:   MAIN
39!***********************************************************************
40
41!     Variable Declarations
42      USE MAIN1
43      IMPLICIT NONE
44      CHARACTER MODNAM*12
45
46      SAVE
47      INTEGER :: I , J , K , IERRST , IWARN , NDAY
48      REAL :: SFX , SFY , UAX , UAY
49
50!     Variable Initializations
51      MODNAM = 'VARINI'                                                 !      3
52
53      IPNUM = 0
54      IPPNUM = 0
55      IERRST = 0
56      IWARN = 0
57      NDUMP = 0
58
59!     Initialize the Logical Control Variables
60      ISTART = .FALSE.
61      IFINIS = .TRUE.
62      ERRLST = .FALSE.
63      DFAULT = .FALSE.
64      CONC = .FALSE.
65      DEPOS = .FALSE.
66!     Add logicals to output just wet or just deposition fluxes
67      DDEP = .FALSE.
68      WDEP = .FALSE.
69      RURAL = .FALSE.
70      URBAN = .FALSE.
71      GRDRIS = .FALSE.
72      NOSTD = .FALSE.
73      NOBID = .FALSE.
74      NOWARN = .FALSE.
75      MSGPRO = .TRUE.
76      CLMPRO = .TRUE.
77      PERIOD = .FALSE.
78      ANNUAL = .FALSE.
79      MONTH = .FALSE.
80      FLAT = .FALSE.
81      ELEV = .TRUE.
82      FLGPOL = .FALSE.
83      RUN = .FALSE.
84      EVENTS = .FALSE.
85      RSTSAV = .FALSE.
86      RSTINP = .FALSE.
87      MULTYR = .FALSE.
88      DAYTAB = .FALSE.
89      MXFILE = .FALSE.
90      PPFILE = .FALSE.
91      PLFILE = .FALSE.
92!     Add TXFILE Variable for the TOXXFILE Option, 9/29/92
93      TXFILE = .FALSE.
94      RKFILE = .FALSE.
95      ANPOST = .FALSE.
96      ANPLOT = .FALSE.
97      RECERR = .FALSE.
98      PFLERR = .FALSE.
99      NEWDAY = .TRUE.
100      ENDMON = .FALSE.
101      CALCS = .FALSE.
102      SURFAC = .FALSE.
103      DEBUG = .FALSE.
104      METEOR = .FALSE.
105      WAKE = .FALSE.
106      WAKESS = .FALSE.
107      TALL = .FALSE.
108      SQUAT = .FALSE.
109      SSQUAT = .FALSE.
110      ECHO = .TRUE.
111      SCREEN = .FALSE.
112      HOURLY = .FALSE.
113!     Add logicals to identify use wet and dry removal information
114      LDPART = .FALSE.
115      LWPART = .FALSE.
116      LWGAS = .FALSE.
117      LDGAS = .FALSE.
118!     Add logicals to control use of Wet & Dry plume depletion
119      DDPLETE = .TRUE.
120      WDPLETE = .TRUE.
121      ARDPLETE = .FALSE.
122!     Add logical to control user-specified deposition velocity for gases
123      LUSERVD = .FALSE.
124!     Add logical to control use of Gridded Terrain Processing
125      LTGRID = .FALSE.
126      SCIM = .FALSE.
127      SCIMOUT = .FALSE.
128      WETSCIM = .FALSE.
129      SCIMHR = .FALSE.
130      WETHR = .FALSE.
131      SEASONHR = .FALSE.
132      TOXICS = .FALSE.
133
134!*----   ISCSTM Modification: allow for NOCHKD option - jah 11/2/94
135      NOCHKD = .FALSE.
136!*----
137!*#
138
139!     Initialize Decay Coefficient to 0.0 (Urban SO2 Default Set in POLLUT)
140      DECOEF = 0.0
141
142!     Initialize variables to hold two previous hours of precipitation
143      PREC1 = 0.0
144      PREC2 = 0.0
145
146!     Initialize variables used to calculate canopy stomatal resistance, Rs
147      WOLD = 180.
148      F2 = WOLD/200.
149
150!     Initialize defaults for Fo, FSEAS2, and FSEAS5 (may be input by user
151!     on the CO GASDEPDF card).
152      FO = 0.0
153      FSEAS2 = 0.5
154      FSEAS5 = 0.25
155
156!     Initialize the Source Arrays
157      ISRC = 0
158      DO I = 1 , NSRC
159         AXS(I) = 0.0                                                   !     27
160         AYS(I) = 0.0
161         AZS(I) = 0.0
162         AQS(I) = 0.0
163         AHS(I) = 0.0
164         ADS(I) = 0.0
165         AVS(I) = 0.0
166         ATS(I) = 0.0
167         ASYINI(I) = 0.0
168         ASZINI(I) = 0.0
169         AXINIT(I) = 0.0
170         AYINIT(I) = 0.0
171         AANGLE(I) = 0.0
172         RADIUS(I) = 0.0
173         AXCNTR(I) = 0.0
174         AYCNTR(I) = 0.0
175         AALPHA(I) = 0.0
176         APDEFF(I) = 0.0
177         AVOLUM(I) = 0.0
178         SOPCRD(I) = 'N'
179         SOGAS(I) = 'N'
180         URBSRC(I) = 'N'
181         SRCID(I) = ' '
182         SRCTYP(I) = ' '
183         QFLAG(I) = ' '
184         INPD(I) = 0
185         NVERTS(I) = 0
186         IELUNT(I) = 0
187         EVAL(I) = .FALSE.
188         EVLFIL(I) = ' '
189!        Add gas dry deposition parameters
190         PDIFF(I) = 0.0
191         ALPHAS(I) = 0.0
192         REACT(I) = 0.0
193         HENRY(I) = 0.0
194         L_METHOD2(I) = .FALSE.
195         DO J = 1 , NSEC
196            ADSBH(J,I) = 0.0                                            !    972
197            ADSBW(J,I) = 0.0
198
199! --- PRIME ----------------------
200            ADSBL(J,I) = 0.0
201            ADSXADJ(J,I) = 0.0
202            ADSYADJ(J,I) = 0.0
203! --------------------------------
204
205         ENDDO
206         DO J = 1 , NQF                                                 !     27
207            QFACT(J,I) = 0.0                                            !     27
208         ENDDO
209         DO J = 1 , NGRP                                                !     27
210            IGROUP(I,J) = 0                                             !     27
211         ENDDO
212         DO J = 1 , NPDMAX                                              !     27
213            APDIAM(J,I) = 0.0                                           !     27
214            APHI(J,I) = 0.0
215            APDENS(J,I) = 0.0
216         ENDDO
217         DO J = 1 , NVMAX                                               !     27
218            AXVERT(J,I) = 0.0                                           !    648
219            AYVERT(J,I) = 0.0
220         ENDDO
221         IF ( OLM ) THEN                                                !     27
222            DO J = 1 , NOLM                                             !      0
223               IGRP_OLM(I,J) = 0                                        !      0
224            ENDDO
225            L_OLMGRP(I) = .FALSE.                                       !      0
226         ENDIF
227         IF ( PVMRM .OR. OLM ) THEN                                     !     27
228            ANO2_RATIO(I) = 0.10                                        !      0
229            DO J = 1 , NTYP
230               DO K = 1 , NREC                                          !      0
231                  CHI(K,I,J) = 0.0                                      !      0
232               ENDDO
233            ENDDO
234         ENDIF
235      ENDDO
236
237      DO I = 1 , NPDMAX                                                 !      3
238         PDIAM(I) = 0.0                                                 !      3
239         PHI(I) = 0.0
240         PDENS(I) = 0.0
241         VGRAV(I) = 0.0
242         TSTOP(I) = 0.0
243         VDEP(I) = 0.0
244         PSCVRT(I) = 0.0
245         SCF(I) = 0.0
246         WASHOUT(I) = 0.0
247      ENDDO
248
249!     Initialize source depletion factors to unity.
250      DQCORG = 1.0                                                      !      3
251      WQCORG = 1.0
252      DO I = 1 , NPDMAX
253         WQCOR(I) = 1.0                                                 !      3
254         DQCOR(I) = 1.0
255      ENDDO
256
257!     Counters for the Receptor Groups
258      IREC = 0                                                          !      3
259      ISTA = .FALSE.
260      IEND = .FALSE.
261      IRXR = 0
262      IRYR = 0
263      IRZE = 0
264      IRZH = 0
265      IRZF = 0
266      NEWID = .TRUE.
267!     Initialize ITAB, NXTOX, NYTOX Variables for the TOXXFILE Option, 9/29/92
268      ITAB = -9
269      NXTOX = 0
270      NYTOX = 0
271
272!     Initialize Variables Associated with the Meteorology Data
273      ISJDAY = 0
274      IEJDAY = 366
275      ISDATE = 0
276!     Initialize End Date as largest valid date for a 4-byte integer.
277      IEDATE = 2147483647
278      ISYR = 0
279      ISMN = 0
280      ISDY = 0
281      ISHR = 0
282      IEYR = 9999
283      IEMN = 99
284      IEDY = 99
285      IEHR = 24
286      IPDATE = 0
287      IPHOUR = 0
288      IMONTH = 0
289      IDAY = 0
290      IHOUR = 0
291      IYEAR = 0
292      NDAY = 0
293      NUMYRS = 0
294      NREMAIN = 0
295      INCRST = 1
296      SFX = 0.0
297      SFY = 0.0
298      UAX = 0.0
299      UAY = 0.0
300      ROTANG = 0.0
301!     Set Threshold Wind Speed Value For Defining Calm Winds
302      UMIN = 0.0
303      O3MISS = .FALSE.
304      O3BACK = -999.0
305      O3CONC = -999.0
306      NO2EQUIL = 0.90
307      IOLM = 0
308
309!     Specify Default Met Data Filename and Format.
310!     Include u-star,L,z0,zd,ipcode, and prate in the format even
311!     though these variables are used (read) only if DEPOSITION is
312!     simulated.  The order of met variables is:
313!       yr,mo,day,hr,rfvec,ws,tempk,stab,rmix,umix,ustar,el,z0,
314!       zd,ipcode,prate
315
316!     Specify Default Met Data Filename and Format
317      METINP = ' '
318      METFRM =                                                          &
319     &'(3(I2,1X),I3,1X,I2,1X,F6.1,1X,3(F6.3,1X),2(F5.0,1X),F8.1,1X,F6.3,&
320     &1X,2(F6.2,1X),F7.2,1X,F5.0,3(1X,F6.1))'
321
322      PROINP = ' '
323      PROFRM =                                                          &
324     &   '(4(I2,1X),F6.1,1X,I1,1X,F5.0,1X,F7.2,1X,F7.2,1X,F6.1,1X,F7.2)'
325
326      IF ( EVONLY ) THEN
327         DO I = 1 , NEVE                                                !      0
328            AXR(I) = 0.0                                                !      0
329            AYR(I) = 0.0
330            AZELEV(I) = 0.0
331            AZHILL(I) = 0.0
332            AZFLAG(I) = 0.0
333            EVAPER(I) = 0
334            EVDATE(I) = 0
335            EVJDAY(I) = 0
336            IDXEV(I) = 0
337            EVNAME(I) = ' '
338            EVGRP(I) = ' '
339         ENDDO
340         DO J = 1 , NHR                                                 !      0
341            ASFCHF(J) = 0.0                                             !      0
342            AUREF(J) = 0.0
343            AUREFHT(J) = 0.0
344            ATA(J) = 0.0
345            ATREFHT(J) = 0.0
346            AWDREF(J) = 0.0
347            AUSTAR(J) = 0.0
348            AWSTAR(J) = 0.0
349            AZICONV(J) = 0.0
350            AZIMECH(J) = 0.0
351            AOBULEN(J) = 0.0
352            AVPTGZI(J) = 0.0
353            ASFCZ0(J) = 0.0
354            ABOWEN(J) = 0.0
355            AALBEDO(J) = 0.0
356            IAPCODE(J) = 0
357            APRATE(J) = 0.0
358            ARH(J) = 0.0
359            ASFCP(J) = 0.0
360            NACLOUD(J) = 0.0
361            AQSW(J) = 0.0
362            ANPLVLS(J) = 0
363            ANTGLVL(J) = 0
364            DO I = 1 , MXPLVL
365               AIFLAG(J,I) = 0                                          !      0
366               APFLHT(J,I) = 0.0
367               APFLWD(J,I) = 0.0
368               APFLWS(J,I) = 0.0
369               APFLTA(J,I) = 0.0
370               APFLSA(J,I) = 0.0
371               APFLSV(J,I) = 0.0
372               APFLSW(J,I) = 0.0
373            ENDDO
374            DO I = 1 , NSRC                                             !      0
375               EV_HRQS(I,J) = 0.0                                       !      0
376               EV_HRTS(I,J) = 0.0
377               EV_HRVS(I,J) = 0.0
378            ENDDO
379         ENDDO
380      ELSEIF ( .NOT.EVONLY ) THEN
381         DO I = 1 , NREC                                                !      3
382            AXR(I) = 0.0                                                !    432
383            AYR(I) = 0.0
384            AZELEV(I) = 0.0
385            AZHILL(I) = 0.0
386            AZFLAG(I) = 0.0
387            IREF(I) = 0
388            NETID(I) = ' '
389            RECTYP(I) = ' '
390            NDXARC(I) = 0
391         ENDDO
392         DO I = 1 , NNET                                                !      3
393            XORIG(I) = 0.0                                              !      3
394            YORIG(I) = 0.0
395            NUMXPT(I) = 0
396            NUMYPT(I) = 0
397            NETSTA(I) = 0
398            NETEND(I) = 0
399            NTID(I) = ' '
400            NTTYP(I) = ' '
401            DO J = 1 , IXM
402               XCOORD(J,I) = 0.0                                        !     12
403            ENDDO
404            DO J = 1 , IYM                                              !      3
405               YCOORD(J,I) = 0.0                                        !    108
406            ENDDO
407         ENDDO
408         XINT = 0.0                                                     !      3
409         YINT = 0.0
410      ENDIF
411
412      DO I = 1 , NAVE                                                   !      3
413         KAVE(I) = 0                                                    !      6
414      ENDDO
415
416!     Initialize the Outputs
417      WRITE (TITLE1,130)                                                !      3
418      WRITE (TITLE2,130)
419      IPAGE = 0
420      NHIVAL = 0
421      NMXVAL = 0
422      THRFRM = '(1X,I3,1X,A8,1X,I8.8,2(1X,F13.5),3(1X,F7.2),1X,F13.5)'
423      PSTFRM = '(3(1X,F13.5),3(1X,F8.2),2X,A6,2X,A8,2X,I8.8,2X,A8)'
424      PLTFRM = '(3(1X,F13.5),3(1X,F8.2),3X,A5,2X,A8,2X,A4,6X,A8,2X,I8)'
425      RNKFRM = '(1X,I3,1X,F13.5,1X,I8.8,2(1X,F13.5),3(1X,F7.2),2X,A8)'
426      DO J = 1 , NAVE
427         INHI(J) = 0                                                    !      6
428         IDYTAB(J) = 0
429         MAXAVE(J) = 0
430         IMXVAL(J) = 0
431         ITOXFL(J) = 0
432         ITXUNT(J) = 0
433         IRNKFL(J) = 0
434         IRKVAL(J) = 0
435         IRKUNT(J) = 0
436         TOXTHR(J) = 0.0
437         TOXFIL(J) = ' '
438         RNKFIL(J) = ' '
439         DO I = 1 , NPAIR
440            IDCONC(J,I) = 0                                             !    600
441            TXCONC(J,I) = 0.0
442         ENDDO
443         DO I = 1 , NVAL                                                !      6
444            NHIAVE(I,J) = 0                                             !     12
445         ENDDO
446         DO I = 1 , NGRP                                                !      6
447            MAXFLE(I,J) = 0                                             !      6
448            IPSTFL(I,J) = 0
449            IMXUNT(I,J) = 0
450            IPSUNT(I,J) = 0
451            IPSFRM(I,J) = 0
452            THRESH(I,J) = 0.0
453            THRFIL(I,J) = ' '
454            PSTFIL(I,J) = ' '
455            DO K = 1 , NVAL
456               IPLTFL(K,I,J) = 0                                        !     12
457               IPLUNT(K,I,J) = 0
458               PLTFIL(K,I,J) = ' '
459            ENDDO
460         ENDDO
461      ENDDO
462      DO I = 1 , NGRP                                                   !      3
463         GRPID(I) = ' '                                                 !      3
464         IANPST(I) = 0
465         IANFRM(I) = 0
466         IANPLT(I) = 0
467         IAPUNT(I) = 0
468         IPPUNT(I) = 0
469         ISHUNT(I) = 0
470         ISEAHR(I) = 0
471         ANNPST(I) = ' '
472         ANNPLT(I) = ' '
473      ENDDO
474      IF ( OLM ) THEN                                                   !      3
475         DO I = 1 , NOLM                                                !      0
476            OLMID(I) = ' '                                              !      0
477         ENDDO
478      ENDIF
479
480!     Initialize the Number of Error/Warning/Informational Messages, and
481!     The Number of Fatal Errors.
482      IERROR = 0                                                        !      3
483      NFATAL = 0
484      NWARN = 0
485
486      CONTINUE
487 130  FORMAT (68(' '))
488      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