1
2      SUBROUTINE GENPOL
3!***********************************************************************
4!                 GENPOL Module of the AMS/EPA Regulatory Model - AERMOD
5!
6!        PURPOSE: Generates Polar Receptor Network With
7!                 Uniform Spacing
8!
9!        PROGRAMMER: Jeff Wang, Roger Brode
10!
11!        DATE:    March 2, 1992
12!
13!        INPUTS:  Input Runstream Image Parameters
14!
15!        OUTPUTS: Polar Receptor Network With Uniform Direction Spacing
16!
17!        CALLED FROM:   REPOLR
18!***********************************************************************
19
20!     Variable Declarations
21      USE MAIN1
22      IMPLICIT NONE
23      CHARACTER MODNAM*12
24
25      SAVE
26      INTEGER :: I , J , K
27      REAL :: DIRINI , DIRINC , TEMPP(3)
28      LOGICAL ERROR
29
30!     Variable Initializations
31      MODNAM = 'GENPOL'                                                 !      3
32      ERROR = .FALSE.
33
34!     Check for the Location of the Secondary Keyword, GDIR
35      DO I = 1 , IFC
36         IF ( FIELD(I).EQ.'GDIR' ) ISC = I + 1                          !     18
37      ENDDO
38
39!     Determine Whether There Are Enough Parameter Fields
40      IF ( IFC.EQ.ISC-1 ) THEN                                          !      3
41!        Error Message: Missing Parameter
42         CALL ERRHDL(PATH,MODNAM,'E','200',KEYWRD)                      !      0
43         RECERR = .TRUE.
44         GOTO 999
45      ELSEIF ( IFC.LT.ISC+2 ) THEN
46!        Error Message: Not Enough Parameters
47         CALL ERRHDL(PATH,MODNAM,'E','201',KTYPE)                       !      0
48         RECERR = .TRUE.
49         GOTO 999
50      ELSEIF ( IFC.GT.ISC+2 ) THEN
51!        Error Message: Too Many Parameters
52         CALL ERRHDL(PATH,MODNAM,'E','202',KTYPE)                       !      0
53         RECERR = .TRUE.
54         GOTO 999
55      ENDIF
56
57!     Input Numerical Values
58      DO K = 1 , 3                                                      !      3
59         CALL STONUM(FIELD(ISC+K-1),ILEN_FLD,TEMPP(K),IMIT)             !      9
60!        Check The Numerical Field
61         IF ( IMIT.EQ.-1 ) THEN
62            CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD)                   !      0
63            RECERR = .TRUE.
64            ERROR = .TRUE.
65         ENDIF
66      ENDDO
67
68      IF ( ERROR ) THEN                                                 !      3
69         ERROR = .FALSE.                                                !      0
70         GOTO 999
71      ENDIF
72
73      JCOUNT = NINT(TEMPP(1))                                           !      3
74      DIRINI = TEMPP(2)
75      DIRINC = TEMPP(3)
76
77!     Assign Them to the Coordinate Arrays
78      IF ( JCOUNT.LE.IYM ) THEN
79         DO J = 1 , JCOUNT                                              !      3
80            YCOORD(J,INNET) = (DIRINI+DIRINC*FLOAT(J-1))                !    108
81            IF ( YCOORD(J,INNET).GT.360. ) THEN
82               YCOORD(J,INNET) = YCOORD(J,INNET) - 360.                 !      0
83            ELSEIF ( YCOORD(J,INNET).LE.0. ) THEN
84               YCOORD(J,INNET) = YCOORD(J,INNET) + 360.                 !      0
85            ENDIF
86         ENDDO
87      ELSE
88!        WRITE Error Message:  Too Many Y-Coordinates for This Network
89         WRITE (DUMMY,'(I8)') IYM                                       !      0
90         CALL ERRHDL(PATH,MODNAM,'E','226',DUMMY)
91         RECERR = .TRUE.
92      ENDIF
93
94 999  CONTINUE                                                          !      3
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