-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbriggs_driver.F90
65 lines (55 loc) · 2.73 KB
/
briggs_driver.F90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
program briggs_driver
! the driver to run the Briggs plume rise algorithm
!
! Ref: Briggs, G. A., 1969: Plume Rise. USAEC Critical
! Review Series, TID-25075, NTIS, 81 pp.
!
! History:
! Prototype: Patrick Campbell, 02/26/2021
!
!-------------------------------------------------------------
use plumerise_briggs_mod
implicit none
! ! ... this block gives example emiss layers, 2D parameters, and stack inputs to
! ! Briggs that would be passed by rrfs_cmaq/ccpp
! ! Ex values taken from NAQFC 5X (i=329;j=161) on Aug 01,2019
integer, parameter :: emlays=35 !Number of total emission layers
real, parameter :: hfx=25.0 !Sensible Heat Flux (W/m2)
real, parameter :: hmix=500.0 !Mixing Height (m)
real, parameter :: ustar=0.2 !Friction velocity (m/s)
real, parameter :: tsfc=291.0 !Surface temperature (K)
real, parameter :: psfc=980.0 !Surface pressure (hPa)
real, parameter :: stkdm=7.0 !Stack diameter (m)
real, parameter :: stkht=181.0 !Stack height (m)
real, parameter :: stktk=348.0 !Stack exit temperature (K)
real, parameter :: stkve=27.0 !Stack exit velocity (m/s)
integer i,i0
real :: plmHGT !final plume centerline height (m)
real :: plmFRAC ( emlays ) ! final plume fractions
! met 3D input profile data that should be passed by rrfs_cmaq/ccpp
TYPE :: profile_type
integer :: lay !Layer number
real :: zf !Layer surface heights (m)
real :: zh !Layer center heights (m)
real :: pres !Pressures at full layer hts (hPa)
real :: ta !Temperatures (K)
real :: qv !Mixing Ratios (kg/kg)
real :: uw !X-direction winds (m/s)
real :: vw !Y-direction winds (m/s)
end TYPE profile_type
type(profile_type) :: profile( emlays )
! ... read met profile data that should be passed by rrfs_cmaq/ccpp
open(9, file='input_profile.txt', status='old')
i0 = 0
read(9,*,iostat=i0) ! skip headline
do i=1, 35
read(9, *) profile(i)
end do
call plmris(profile%zf,profile%zh,profile%ta,profile%qv, &
profile%uw,profile%vw,profile%pres, &
hfx,hmix,ustar,tsfc,psfc,emlays, &
stkdm,stkht,stktk,stkve,plmHGT,plmFRAC)
write(*,*) 'Stack Height (m):' , stkht
write(*,*) 'Plume Center Height (m):' , plmHGT
write(*,*) 'Plume Fractions:' , plmFRAC
end program briggs_driver