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