1 2 SUBROUTINE ACPARM(ISDX,TEMP) 3 !*********************************************************************** 4 ! ACPARM Module of the AMS/EPA Regulatory Model - AERMOD 5 ! 6 ! PURPOSE: Processes Source Parameters for AREACIRC Sources 7 ! 8 ! PROGRAMMER: Roger Brode 9 ! 10 ! DATE: September 15, 1995 11 ! 12 ! INPUTS: Input Runstream Image Parameters 13 ! 14 ! OUTPUTS: Source Parameter Card 15 ! 16 ! CALLED FROM: SOPARM 17 !*********************************************************************** 18 19 ! Variable Declarations 20 USE MAIN1 21 IMPLICIT NONE 22 CHARACTER MODNAM*12 23 24 SAVE 25 INTEGER :: ISDX 26 REAL TEMP(IFMAX) 27 28 ! Variable Initializations 29 MODNAM = 'ACPARM' ! 0 30 31 AQS(ISDX) = TEMP(1) 32 AHS(ISDX) = TEMP(2) 33 RADIUS(ISDX) = TEMP(3) 34 IF ( IFC.GE.7 ) THEN 35 NVERTS(ISDX) = NINT(TEMP(4)) ! 0 36 ELSE 37 NVERTS(ISDX) = NVMAX - 4 ! 0 38 ENDIF 39 IF ( IFC.EQ.8 ) THEN ! 0 40 ASZINI(ISDX) = TEMP(5) ! 0 41 ELSE 42 ASZINI(ISDX) = 0. ! 0 43 ENDIF 44 45 ! Perform QA Error Checking on Source Parameters 46 47 ! WRITE Warning Message: Emission Rate Equals 0.0 48 IF ( AQS(ISDX).EQ.0.0 ) CALL ERRHDL(PATH,MODNAM,'W','320',' QS ') ! 0 49 50 IF ( AHS(ISDX).LT.0.0 ) THEN 51 ! WRITE Error Message: Negative Release Height 52 CALL ERRHDL(PATH,MODNAM,'E','209',' HS ') ! 0 53 ELSEIF ( AHS(ISDX).GT.100.0 ) THEN 54 ! WRITE Warning Message: Large Release Height (> 100M) 55 CALL ERRHDL(PATH,MODNAM,'W','320',' HS ') ! 0 56 ENDIF 57 58 IF ( RADIUS(ISDX).LE.0.0 ) THEN ! 0 59 ! WRITE Error Message: Negative Release Height 60 CALL ERRHDL(PATH,MODNAM,'E','209',' RADIUS ') ! 0 61 ELSEIF ( RADIUS(ISDX).GT.10000.0 ) THEN 62 ! WRITE Warning Message: Large Radius (> 10000M) 63 CALL ERRHDL(PATH,MODNAM,'W','320',' RADIUS ') ! 0 64 ENDIF 65 66 IF ( ASZINI(ISDX).LT.0.0 ) THEN ! 0 67 !* WRITE Warning Message: Negative Initial Vertical Parameter 68 CALL ERRHDL(PATH,MODNAM,'E','209',' SZINIT ') ! 0 69 ELSEIF ( ASZINI(ISDX).LT.1.0E-5 ) THEN 70 !* Set to Small Value to Avoid Zero-divide and Underflow 71 ASZINI(ISDX) = 1.0E-5 ! 0 72 ELSEIF ( ASZINI(ISDX).GT.200.0 ) THEN 73 !* WRITE Warning Message: Large Initial Vertical Parameter (> 200m) 74 CALL ERRHDL(PATH,MODNAM,'W','320',' SZINIT ') ! 0 75 ENDIF 76 77 IF ( NVERTS(ISDX).LT.3 ) THEN ! 0 78 ! WRITE Error Message: Not Enough Vertices 79 CALL ERRHDL(PATH,MODNAM,'E','320',' NVERT ') ! 0 80 GOTO 999 81 ELSEIF ( NVERTS(ISDX).GT.NVMAX-4 ) THEN 82 ! WRITE Error Message: Too Many Vertices 83 CALL ERRHDL(PATH,MODNAM,'E','320',' NVERT ') ! 0 84 GOTO 999 85 ENDIF 86 87 ! Setup Vertices for Circular Area 88 CALL GENCIR(ISDX) ! 0 89 90 ! Set coordinates for center of circular source 91 AXCNTR(ISDX) = AXS(ISDX) 92 AYCNTR(ISDX) = AYS(ISDX) 93 94 999 CONTINUE ! 0 95 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