1 2 SUBROUTINE O3EXT 3 !*********************************************************************** 4 !* O3EXT Module of AERMOD 5 !* 6 !* PURPOSE: To extract hourly ozone data for PVMRM and OLM options 7 !* 8 !* PROGRAMMER: Roger W. Brode, PES, Inc. 9 !* 10 !* DATE: May 6, 2002 11 !* 12 !* INPUTS: 13 !* 14 !* OUTPUTS: 15 !* 16 !* CALLED FROM: HRLOOP 17 !************************************************************************ 18 !* 19 !* Variable Declarations 20 USE MAIN1 21 IMPLICIT NONE 22 CHARACTER MODNAM*12 23 24 SAVE 25 INTEGER :: IO3YR , IO3MN , IO3DY , IO3HR , KURO3HR 26 27 !* Variable Initializations 28 MODNAM = 'O3EXT' ! 0 29 !* 30 IF ( O3FORM.EQ.'FREE' ) THEN 31 READ (IO3UNT,*,ERR=99,END=999) IO3YR , IO3MN , IO3DY , IO3HR , & 32 & O3CONC 33 ELSE 34 READ (IO3UNT,O3FORM,ERR=99,END=999) IO3YR , IO3MN , IO3DY , & 35 & IO3HR , O3CONC 36 ENDIF 37 38 !* Check for Date and Time Consistency ; If Failed, Issue Fatal Error 39 KURO3HR = IO3YR*1000000 + IO3MN*10000 + IO3DY*100 + IO3HR ! 0 40 IF ( KURDAT.NE.KURO3HR ) THEN 41 !* WRITE Error Message - Date mismatch 42 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 43 CALL ERRHDL(PATH,MODNAM,'E','457',DUMMY) 44 RUNERR = .TRUE. 45 ENDIF 46 47 IF ( O3CONC.GE.900.0 .OR. O3CONC.LT.0.0 ) THEN ! 0 48 ! Hourly ozone value is missing, check for background value 49 ! from OZONEVAL card 50 IF ( O3BACK.GE.0.0 ) THEN ! 0 51 ! Write informational message about substitution 52 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 53 CALL ERRHDL(PATH,MODNAM,'I','458',DUMMY) 54 O3CONC = O3BACK 55 O3MISS = .FALSE. 56 ! Skip to end since O3BACK units have already been converted to ug/m3 57 GOTO 999 58 ELSE 59 ! Write informational message about missing data and use of full conversion 60 WRITE (DUMMY,'(I8.8)') KURDAT ! 0 61 CALL ERRHDL(PATH,MODNAM,'I','459',DUMMY) 62 O3MISS = .TRUE. 63 GOTO 999 64 ENDIF 65 ELSE 66 ! Hourly ozone data not missing 67 O3MISS = .FALSE. ! 0 68 ENDIF 69 70 IF ( O3FILUNITS.EQ.'PPB' ) THEN ! 0 71 O3CONC = (O3CONC/1000.)*1960. ! 0 72 ELSEIF ( O3FILUNITS.EQ.'PPM' ) THEN 73 O3CONC = O3CONC*1960. ! 0 74 ENDIF 75 76 GOTO 999 ! 0 77 78 !* Write Error Message for Error Reading Hourly Emissions File 79 99 CALL ERRHDL(PATH,MODNAM,'E','510','OZONEFIL') ! 0 80 RUNERR = .TRUE. 81 82 999 CONTINUE ! 0 83 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