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