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