Simple Betts-Miller
get_temp_ref(temp_start, p_start, sphum_start, p_full, p_ref=100000.0)
This replicates the way the reference temperature profile is computed in Isca with the Simple Betts-Miller convection scheme.
Below the LCL, it is set to a dry adiabat, and above it the ref_temp_above_lcl
function is used, which is very
similar to the moist adiabat.
As well as the reference temperature profile, the LCL temperature and pressure are also returned.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
temp_start
|
float
|
Starting temperature of parcel, \(T_{start}\). Units: Kelvin. |
required |
p_start
|
float
|
Pressure, \(p_{start}\), in Pa corresponding to starting point of dry ascent i.e. near surface pressure. |
required |
sphum_start
|
float
|
Starting specific humidity of parcel, \(q_{start}\). Units: kg/kg. |
required |
p_full
|
ndarray
|
|
required |
p_ref
|
float
|
Reference pressure, \(p_{ref}\) in Pa. It is a parameter in the |
100000.0
|
Returns:
Type | Description |
---|---|
ndarray
|
|
float
|
|
float
|
|
Source code in isca_tools/convection/simple_betts_miller.py
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
|
lcl_temp(temp_start, p_start, sphum_start, p_ref=100000.0)
Function to replicate the way LCL temperature is computed in Isca with the Simple Betts-Miller convection scheme.
It is based on two properties of dry ascent:
Potential temperature is conserved so surface potential temperature = potential temperature at the \(LCL\):
Mixing ratio, \(w\), is conserved in unsaturated adiabatic ascent because there is no precipitation, and at the \(LCL\), \(w_{LCL} = w_{sat}\) because by definition at the \(LCL\), the air is saturated:
\(q\) is specific humidity, \(\epsilon = R_{dry}/R_v\) is the ratio of gas constant for dry air to vapour and \(\kappa = R_{dry}/c_p\). \(p_{ref}\) is taken to be \(100,000 Pa\) to be consistent with the value used in Isca.
So we have two equations for two unknowns, \(T_{LCL}\) and \(p_{LCL}\). By eliminating \(p_{LCL}\), we can get an equation where RHS is just a function of \(T_{LCL}\) and the LHS consists only of known quantities:
This can then be solved using Newton iteration to get the value of \(T_{LCL}\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
temp_start
|
float
|
Starting temperature of parcel, \(T_{start}\). Units: Kelvin. |
required |
p_start
|
float
|
Pressure, \(p_{start}\), in Pa corresponding to starting point of dry ascent i.e. near surface pressure. |
required |
sphum_start
|
float
|
Starting specific humidity of parcel, \(q_{start}\). Units: kg/kg. |
required |
p_ref
|
float
|
Reference pressure, \(p_{ref}\) in Pa. It is a parameter in the |
100000.0
|
Returns:
Type | Description |
---|---|
float
|
Temperature of LCL in K. |
Source code in isca_tools/convection/simple_betts_miller.py
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 |
|
ref_temp_above_lcl(temp_lcl, p_lcl, p_full)
Function to replicate the way the reference temperature profile above the LCL is computed in Isca with the Simple Betts-Miller convection scheme.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
temp_lcl
|
float
|
Temperature at the Lifting Condensation Level (LCL) in K. |
required |
p_lcl
|
float
|
Pressure of the LCL in Pa. This will not be one of the pressure levels in the model, and will
be larger than any value in |
required |
p_full
|
ndarray
|
|
required |
Returns:
Type | Description |
---|---|
ndarray
|
|
Source code in isca_tools/convection/simple_betts_miller.py
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
|