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