1
2      SUBROUTINE URBOPT
3!***********************************************************************
4!                 URBOPT Module of AERMOD Model
5!
6!        PURPOSE: Process Urban Option Inputs
7!
8!        PROGRAMMER: Roger Brode
9!
10!        DATE:    June 11, 1996
11!
12!        MODIFIED:   To include optional parameter for urban roughness
13!                    length.  Defaults to 1.0 meter if no value input.
14!                    R.W. Brode, PES, Inc. - 09/10/02
15!
16!        INPUTS:  Input Runstream Image Parameters
17!
18!        OUTPUTS: URBPOP  [R]  Urban population
19!                 URBNAM  [C]  Name of urban area (optional)
20!                 URBZ0   [R]  Urban roughness lenght, m (optional)
21!                                defaults to 1.0 meter
22!
23!        ERROR HANDLING:   Checks for Invalid Parameters;
24!                          Checks for No Parameters;
25!                          Checks for Too Many Parameters
26!
27!        CALLED FROM:   COCARD
28!***********************************************************************
29
30!     Variable Declarations
31      USE MAIN1
32      IMPLICIT NONE
33      CHARACTER MODNAM*12
34
35      SAVE
36
37!     Variable Initializations
38      MODNAM = 'URBOPT'                                                 !      0
39      URBAN = .TRUE.
40
41!     Determine Whether There Are Too Few Or Too Many Parameter Fields
42      IF ( IFC.LT.3 ) THEN
43!        WRITE Error Message: Missing Parameters
44         CALL ERRHDL(PATH,MODNAM,'E','200',KEYWRD)                      !      0
45         GOTO 999
46      ELSEIF ( IFC.GT.5 ) THEN
47!        Error Message: Too Many Parameters
48         CALL ERRHDL(PATH,MODNAM,'E','202',KEYWRD)                      !      0
49         GOTO 999
50      ELSEIF ( IFC.GE.3 ) THEN
51         CALL STONUM(FIELD(3),ILEN_FLD,URBPOP,IMIT)                     !      0
52!           Write Error Message:Invalid Numerical Field
53         IF ( IMIT.EQ.-1 ) CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD)
54      ELSE
55!        WRITE Error Message: No Parameters
56         CALL ERRHDL(PATH,MODNAM,'W','200',KEYWRD)                      !      0
57      ENDIF
58
59!        Assign name of urban area (optional)
60      IF ( IFC.GE.4 ) URBNAM = FIELD(4)                                 !      0
61
62      IF ( IFC.EQ.5 ) THEN
63!        Assign value of urban roughness length (optional)
64         CALL STONUM(FIELD(5),ILEN_FLD,URBZ0,IMIT)                      !      0
65!           Write Error Message:Invalid Numerical Field
66         IF ( IMIT.EQ.-1 ) CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD)
67         IF ( URBZ0.LT.0.50 ) THEN
68!           Write Warning Message: Urban roughness out of range
69            CALL ERRHDL(PATH,MODNAM,'W','320','URBAN Z0')               !      0
70         ELSEIF ( URBZ0.GT.1.50 .AND. URBZ0.LT.5.0 ) THEN
71!           Write Warning Message: Urban roughness out of range
72            CALL ERRHDL(PATH,MODNAM,'W','320','URBAN Z0')               !      0
73         ELSEIF ( URBZ0.GE.5.0 ) THEN
74!           Write Error Message: Urban roughness out of range
75            CALL ERRHDL(PATH,MODNAM,'E','320','URBAN Z0')               !      0
76         ENDIF
77      ELSE
78         URBZ0 = 1.0                                                    !      0
79      ENDIF
80
81 999  CONTINUE                                                          !      0
82      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