1
2      SUBROUTINE SIGZPR(XARG,ZARG,SZOUT)
3!***********************************************************************
4!                 SIGZPR Module of ISC2 Model
5!
6!        PURPOSE: Calculates Ambient Sigma-z Values From Dispersion Curves
7!                 for use with the PRIME calculation
8!
9!        PROGRAMMER: Roger Brode
10!
11!        DATE:    July 5, 2001
12!
13!        INPUTS:  Downwind Distance
14!                 Stability Class
15!                 Rural or Urban Dispersion Option
16!
17!        OUTPUTS: Vertical Dispersion CoEFFicient, SZOUT
18!
19!        CALLED FROM:   NUMRISE, WAKE_DFSN, WAKE_XSIG
20!***********************************************************************
21
22!     Variable Declarations
23      USE MAIN1
24      IMPLICIT NONE
25      CHARACTER*12 MODNAM
26      INTEGER :: NDXHE
27      INTEGER :: NDXZHE
28      REAL :: XARG , TTRAVL , PTP , BVFRQ , ZTMP , SIGF , ALPHAB ,      &
29     &        ZARG , SZAD , SZOUT
30
31!     Variable Initializations
32      MODNAM = 'SIGZPR'                                                 ! 230226
33
34!     TTRAVL  = Travel time
35
36      IF ( STABLE ) THEN
37!        The atmosphere is stable or the release was above the CBL mixing ht.
38!        See Eq. 1 of the document by Venkatram referenced above.
39
40         TTRAVL = XARG/UEFF                                             ! 164418
41
42!----    Apply Sigma-Z formulation from CTDMPLUS
43!----    Locate index below HE, and retrieve potential temperature at HE
44
45         CALL LOCATE(GRIDHT,1,MXGLVL,ZARG,NDXZHE)
46
47         IF ( NDXZHE.GE.1 ) THEN
48            CALL GINTRP(GRIDHT(NDXZHE),GRIDPT(NDXZHE),GRIDHT(NDXZHE+1), &
49     &                  GRIDPT(NDXZHE+1),ZARG,PTP)
50         ELSE
51            PTP = GRIDPT(1)                                             !      0
52         ENDIF
53
54         BVFRQ = SQRT(G*TGEFF/PTP)                                      ! 164418
55         IF ( BVFRQ.LT.1.0E-10 ) BVFRQ = 1.0E-10
56
57!        Set height for calculating sigma-z, ZTMP
58         ZTMP = AMAX1(ZARG,1.0E-4)
59
60         IF ( URBSTAB ) THEN
61!           Set BVF term to zero for urban stable boundary layer
62            SZAMB = SWEFF*TTRAVL/SQRT(1.0+SWEFF*TTRAVL*(1.0/(0.72*ZTMP))&
63     &              )
64
65         ELSE
66            SZAMB = SWEFF*TTRAVL/SQRT                                   &
67     &              (1.0+SWEFF*TTRAVL*(1.0/(0.72*ZTMP)+BVFRQ/           &
68     &              (0.54*SWEFF)))
69         ENDIF
70
71         IF ( ZARG.LT.ZI ) THEN                                         ! 164418
72            CALL SZSFCLPR(XARG,ZARG)                                    ! 138660
73
74            SIGF = AMIN1(ZARG/ZI,1.0)
75            SZAS = (1.0-SIGF)*SZSURF + SIGF*SZAMB
76         ELSE
77            SZAS = SZAMB                                                !  25758
78         ENDIF
79
80         SZOUT = SZAS                                                   ! 164418
81
82
83      ELSEIF ( UNSTAB ) THEN
84
85         IF ( ZARG.GE.0.1*ZI ) THEN                                     !  65808
86            ALPHAB = 1.0                                                !   2674
87         ELSE
88            ALPHAB = 0.6 + 0.4*(ZARG/(0.1*ZI))                          !  63134
89         ENDIF
90
91         SZAD = ALPHAB*SWEFF*XARG/UEFF                                  !  65808
92
93         CALL SZSFCLPR(XARG,ZARG)
94
95         SZOUT = SQRT(SZAD*SZAD+SZSURF*SZSURF)
96
97      ENDIF
98
99      CONTINUE                                                          ! 230226
100      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