1 2 SUBROUTINE SFDATA 3 !*********************************************************************** 4 ! SFDATA Module of the AMS/EPA Regulatory Model - AERMOD 5 ! 6 ! PURPOSE: Process Meteorology Surface Data Station Options 7 ! From Runstream Input Image 8 ! 9 ! PROGRAMMER: Roger Brode, Jeff Wang 10 ! 11 ! DATE: March 2, 1992 12 ! 13 ! MODIFIED: To incorporate modifications to date processing 14 ! for Y2K compliance, including use of date window 15 ! variables (ISTRT_WIND and ISTRT_CENT). 16 ! R.W. Brode, PES, Inc., 5/12/99 17 ! 18 ! INPUTS: Input Runstream Image Parameters 19 ! 20 ! OUTPUTS: Meteorological Surface Data Station Identification 21 ! 22 ! ERROR HANDLING: Checks for Too Few Parameters; 23 ! Checks for Invalid Numeric Fields; 24 ! Checks for Too Many Parameters 25 ! 26 ! CALLED FROM: MECARD 27 !*********************************************************************** 28 29 ! Variable Declarations 30 USE MAIN1 31 IMPLICIT NONE 32 CHARACTER MODNAM*12 33 34 SAVE 35 REAL :: SFX , SFY 36 37 ! Variable Initializations 38 MODNAM = 'SFDATA' ! 3 39 40 IF ( IFC.EQ.2 ) THEN 41 ! WRITE Error Message ! No Parameters 42 CALL ERRHDL(PATH,MODNAM,'E','200',KEYWRD) ! 0 43 GOTO 999 44 ELSEIF ( IFC.LT.4 ) THEN 45 ! WRITE Error Message ! Not Enough Parameters 46 CALL ERRHDL(PATH,MODNAM,'E','201',KEYWRD) ! 0 47 GOTO 999 48 ELSEIF ( IFC.GT.7 ) THEN 49 ! WRITE Error Message ! Too Many Parameters 50 CALL ERRHDL(PATH,MODNAM,'E','202',KEYWRD) ! 0 51 GOTO 999 52 ENDIF 53 54 CALL STONUM(FIELD(3),ILEN_FLD,FNUM,IMIT) ! 3 55 ! Check The Numerical Field 56 IF ( IMIT.NE.1 ) THEN 57 CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD) ! 0 58 GOTO 199 59 ENDIF 60 IDSURF = NINT(FNUM) ! 3 61 62 199 CALL STONUM(FIELD(4),ILEN_FLD,FNUM,IMIT) ! 3 63 ! Check The Numerical Field 64 IF ( IMIT.NE.1 ) THEN 65 CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD) ! 0 66 GOTO 299 67 ENDIF 68 ISYEAR = NINT(FNUM) ! 3 69 ! Check for 2-digit Input and Convert ISYEAR to Four Digits 70 IF ( ISYEAR.GE.ISTRT_WIND .AND. ISYEAR.LE.99 ) THEN 71 ISYEAR = ISTRT_CENT*100 + ISYEAR ! 0 72 ELSEIF ( ISYEAR.LT.ISTRT_WIND ) THEN 73 ISYEAR = (ISTRT_CENT+1)*100 + ISYEAR ! 0 74 ENDIF 75 76 299 IF ( IFC.GE.5 ) THEN ! 3 77 ! Retrieve Surface Data Station Name (Optional) 78 SFNAME = FIELD(5) ! 0 79 ELSE 80 SFNAME = 'UNKNOWN' ! 3 81 ENDIF 82 83 IF ( IFC.EQ.7 ) THEN ! 3 84 ! Retrieve Coordinates for Surface Data Location (Optional) 85 CALL STONUM(FIELD(6),ILEN_FLD,SFX,IMIT) ! 0 86 IF ( IMIT.NE.1 ) CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD) 87 CALL STONUM(FIELD(7),ILEN_FLD,SFY,IMIT) 88 IF ( IMIT.NE.1 ) CALL ERRHDL(PATH,MODNAM,'E','208',KEYWRD) 89 ENDIF 90 91 999 CONTINUE ! 3 92 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