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