1 !====================================================================
3 module module_bl_mynn_common
5 !------------------------------------------
6 !Define Model-specific constants/parameters.
7 !This module will be used at the initialization stage
8 !where all model-specific constants are read and saved into
9 !memory. This module is then used again in the MYNN-EDMF. All
10 !MYNN-specific constants are declared globally in the main
11 !module (module_bl_mynn) further below:
12 !------------------------------------------
14 ! The following 5-6 lines are the only lines in this file that are not
15 ! universal for all dycores... Any ideas how to universalize it?
17 ! use mpas_kind_types,only: kind_phys => RKIND
19 ! use machine, only : kind_phys
21 use module_gfs_machine, only : kind_phys
24 use module_model_constants, only: &
25 & karman, g, p1000mb, &
26 & cp, r_d, r_v, rcp, xlv, xlf, xls, &
27 & svp1, svp2, svp3, p608, ep_2, rvovrd, &
28 & cpv, cliq, cice, svpt0
32 ! save :: cp, cpv, cice, cliq, p608, karman, rcp, & !taken directly from module_model_constants
33 ! r_d, r_v, xls, xlv, xlf, rvovrd, ep_2, & !taken directly from module_model_constants
34 ! p1000mb, svp1, svp2, svp3, & !taken directly from module_model_constants
35 ! grav, t0c, & !renamed from module_model_constants
36 ! zero, half, one, two, onethird, & !set here
37 ! twothirds, tref, tkmin, tice, & !set here
38 ! ep_3, gtr, rk, tv0, tv1, xlscp, xlvcp, & !derived here
41 ! To be specified from dycore
42 ! real:: cp != 7.*r_d/2. (J/kg/K)
43 ! real:: cpv != 4.*r_v (J/kg/K) Spec heat H2O gas
44 ! real:: cice != 2106. (J/kg/K) Spec heat H2O ice
45 ! real:: cliq != 4190. (J/kg/K) Spec heat H2O liq
46 ! real:: p608 != R_v/R_d-1.
47 ! real:: ep_2 != R_d/R_v
48 !! real:: grav != accel due to gravity
49 ! real:: karman != von Karman constant
50 !! real:: t0c != temperature of water at freezing, 273.15 K
51 ! real:: rcp != r_d/cp
52 ! real:: r_d != 287. (J/kg/K) gas const dry air
53 ! real:: r_v != 461.6 (J/kg/K) gas const water
54 ! real:: xlf != 0.35E6 (J/kg) fusion at 0 C
55 ! real:: xlv != 2.50E6 (J/kg) vaporization at 0 C
56 ! real:: xls != 2.85E6 (J/kg) sublimation
57 ! real:: rvovrd != r_v/r_d != 1.608
60 real,parameter:: zero = 0.0
61 real,parameter:: half = 0.5
62 real,parameter:: one = 1.0
63 real,parameter:: two = 2.0
64 real,parameter:: onethird = 1./3.
65 real,parameter:: twothirds = 2./3.
66 real,parameter:: tref = 300.0 ! reference temperature (K)
67 real,parameter:: TKmin = 253.0 ! for total water conversion, Tripoli and Cotton (1981)
68 ! real,parameter:: p1000mb=100000.0
69 ! real,parameter:: svp1 = 0.6112 !(kPa)
70 ! real,parameter:: svp2 = 17.67 !(dimensionless)
71 ! real,parameter:: svp3 = 29.65 !(K)
72 real,parameter:: tice = 240.0 !-33 (C), temp at saturation w.r.t. ice
73 real,parameter:: grav = g
74 real,parameter:: t0c = svpt0 != 273.15
76 ! To be derived in the init routine
77 real,parameter:: ep_3 = 1.-ep_2 != 0.378
78 real,parameter:: gtr = grav/tref
79 real,parameter:: rk = cp/r_d
80 real,parameter:: tv0 = p608*tref
81 real,parameter:: tv1 = (1.+p608)*tref
82 real,parameter:: xlscp = (xlv+xlf)/cp
83 real,parameter:: xlvcp = xlv/cp
84 real,parameter:: g_inv = 1./grav
87 ! t0c = svpt0 != 273.15
88 ! ep_3 = 1.-ep_2 != 0.378
92 ! tv1 = (1.+p608)*tref
93 ! xlscp = (xlv+xlf)/cp
98 end module module_bl_mynn_common