|
|
[Documentation_BCIM.odt](uploads/ce736f9f858d77e78dd630671c5c1306/Documentation_BCIM.odt)
|
|
[Documentation_BCIM.odt](uploads/ce736f9f858d77e78dd630671c5c1306/Documentation_BCIM.odt)
|
|
|
|
|
|
|
|
Documentation:
|
|
**Below-cloud Interaction Model (BCIM)**
|
|
|
|
|
|
|
|
Below-cloud Interaction Model (BCIM)
|
|
|
|
|
|
|
|
|
|
A model to simulate the isotopic evolution of a single hydrometeor falling from the cloud through a vertical air column to the ground
|
|
A model to simulate the isotopic evolution of a single hydrometeor falling from the cloud through a vertical air column to the ground
|
|
|
|
|
|
|
|
Developed and tested by Pascal Graf, 2016 - 2018
|
|
*Developed and tested by Pascal Graf, 2016 - 2018, pascal.graf@env.ethz.ch*
|
|
|
|
|
|
|
|
pascal.graf@env.ethz.ch
|
|
|
|
|
|
|
|
|
|
Associated MATLAB functions
|
|
**Associated MATLAB functions**
|
|
|
|
|
|
|
|
1. Main functions:
|
|
1. Main functions:
|
|
|
|
|
|
| ... | @@ -54,103 +50,50 @@ Associated MATLAB functions |
... | @@ -54,103 +50,50 @@ Associated MATLAB functions |
|
|
| prof_dexc | Same as prof_deltaH, but for deuterium-excess in [permil] | |
|
|
| prof_dexc | Same as prof_deltaH, but for deuterium-excess in [permil] | |
|
|
|
| prof_rh | Same as prof_deltaH, but for relative humidity in [] (e.g., 50% = 0.5) | |
|
|
| prof_rh | Same as prof_deltaH, but for relative humidity in [] (e.g., 50% = 0.5) | |
|
|
|
| prof_T | Same as prof_deltaH, but for air temperature in [°C.] | |
|
|
| prof_T | Same as prof_deltaH, but for air temperature in [°C.] | |
|
|
|
| z | (1xn) array, containing the vertical height levels in [m], on which the above arrays are defined and on which the output (profiles) will be defined. |
|
|
| z | (1xn) array, containing the vertical height levels in [m], on which the above arrays are defined and on which the output (profiles) will be defined. | z=linspace(500,3500,3001) → Linear array of height levels from 500 m to 3500 m with steps of 1 m: [500, 501, 502,... ,3500] |
|
|
|
z=linspace(500,3500,3001) → Linear array of height levels from 500 m to 3500 m with steps of 1 m: [500, 501, 502,... ,3500] |
|
|
|
|
|
| namelist | Structure of different model input parameters in the format "namelist.fieldname". See below for possible fieldnames. | |
|
|
| namelist | Structure of different model input parameters in the format "namelist.fieldname". See below for possible fieldnames. | |
|
|
|
|
|
|
|
|
The following list shows possible field names for namelist. If they are not defined, the default (highlighted in grey) values are used. The namelist must contain at least one field in order to run below_cloud_model.m.
|
|
The following list shows possible field names for namelist. If they are not defined, the default (highlighted in grey) values are used. The namelist must contain at least one field in order to run below_cloud_model.m.
|
|
|
|
|
|
|
|
Namelist field
|
|
| Namelist field | Value | Description |
|
|
|
Value
|
|
| ------ | ------ | ------ |
|
|
|
Description
|
|
| drop_T | 1 | Allow drop temperature to be different from air temperature. |
|
|
|
drop_T
|
|
| | 0 | Drop temperature equals air temperature
|
|
|
1
|
|
| p0 | 100'000 | Pressure at the ground (z(1)) in [Pa]
Here: 100'000 [Pa] = 1000 [hPa] |
|
|
|
Allow drop temperature to be different from air temperature.
|
|
| massincrease | 1 | Allow drop mass increase. |
|
|
|
0
|
|
| | 0 | Only allow drop mass decrease. |
|
|
|
Drop temperature equals air temperature
|
|
| dt | 0.1 | Time integration time step [s]. |
|
|
|
p0
|
|
| | 0 | Time integration disabled. Integrate after dz. dz is defined in its own namelist field. |
|
|
|
100'000
|
|
| profilecalc | 1 | Calculate profiles of T, rh, delta2H and dexc with a Rayleight ascent. Only the first (lowest) value of prof_T, prof_rh, prof_delta2H and prof_dexc is taken to initiate the ascent of the air parcel from the ground. The rest of the profiles are calculated with the MATLAB function "`rayleigh_ascent.m`", by (moist-) adiabatically lifting the air parcel. All condensed moisture is rained out immediately. prof_delta2H needs to be an array with size (1x2) if `namelist.profilecalc=1`. |
|
|
|
Pressure at the ground (z(1)) in [Pa]
Here: 100'000 [Pa] = 1000 [hPa]
|
|
| | 0 | Use input profiles of T, rh, delta2H and dexc. If input profiles are of size (1x2), they are linearly interpolated between z(1) and z(end). |
|
|
|
massincrease
|
|
| solidterminalvelocity | 0 | Use terminal velocity of a liquid drop for both liquid and solid hydrometeors. |
|
|
|
1
|
|
| | 1 | Use a separate terminal velocity for solid hydrometeors. |
|
|
|
Allow drop mass increase.
|
|
| fract_T | 'drop' | Drop temperature is used for the fractionation equation. |
|
|
|
0
|
|
| | 'env' | Environmental temperature is used for the fractionation equation. |
|
|
|
Only allow drop mass decrease.
|
|
| | 'mix' | Average between drop and environmental temperature is used for the fractionation equation. |
|
|
|
dt
|
|
| z_form | 0 | Formation and starting height of the hydrometeor is at the highest model level (z(end)). |
|
|
|
0.1
|
|
| | 3000 | starting height is at 3000 m above sea level (values between z(1) and z(end) are possible). |
|
|
|
Time integration time step [s].
|
|
| | -1 | starting height is at the lowermost level where the air is supersaturated with respect to ice (exm > 0). |
|
|
|
0
|
|
| formmech | 'wbf' | Hydrometeor is formed by the Wegener-Bergeron-Findeisen process. |
|
|
|
Time integration disabled. Integrate after dz. dz is defined in its own namelist field.
|
|
| | 'depo' | Hydrometeor is formed by vapour deposition on ice.
|
|
|
profilecalc
|
|
| | 'riming'| Hydrometeor is formed by riming of liquid droplets on ice. Corresponds to condensation of vapour on liquid. The degree of riming can be defined with `namelist.rimingfrac` (see below). |
|
|
|
1
|
|
| rimingfrac | 0.5 | Defines the degree (or fraction) of riming if `namelist.formmech='riming'`. Here: 50% of the hydrometeor mass is formed by riming, the remaining 50% are formed by the WBF process. Values between 0 and 1 are possible. |
|
|
|
Calculate profiles of T, rh, delta2H and dexc with a Rayleight ascent. Only the first (lowest) value of prof_T, prof_rh, prof_delta2H and prof_dexc is taken to initiate the ascent of the air parcel from the ground. The rest of the profiles are calculated with the MATLAB function "rayleigh_ascent.m", by (moist-) adiabatically lifting the air parcel. All condensed moisture is rained out immediately. prof_delta2H needs to be an array with size (1x2) if namelist.profilecalc=1.
|
|
| dz | 1 | Defines step size of the vertical integration and of the output in [m] if `namelist.dt=0`. Here: Vertical resolution of integration and output is 1 m. |
|
|
|
0
|
|
| isocalc | 'explicit' | Isotopic composition of the hydrometeor is calculated using separate mass equations for all isotopic species. |
|
|
|
Use input profiles of T, rh, delta2H and dexc. If input profiles are of size (1x2), they are linearly interpolated between z(1) and z(end).
|
|
| | 'stewart' | Isotopic composition of the hydrometeor is calculated according to Stewart (1975) (Eq. 2). |
|
|
|
solidterminalvelocity
|
|
| temptendswitch | 'both' | Drop temperature changes due to evaporative cooling of adaptation to the environmental air temperature are both switched on. |
|
|
|
0
|
|
| | 'evap' | Only evaporative cooling is enabled. |
|
|
|
Use terminal velocity of a liquid drop for both liquid and solid hydrometeors.
|
|
| | 'adap' | Only adaptation to environmental air temperature is enabled. |
|
|
|
1
|
|
| constisotopeprofile | 0 | Take the isotope profile of vapour from the input (`namelist.profilecalc=0`) or calculate it with a Rayleigh ascent (`namelist.profilecalc=1`). |
|
|
|
Use a separate terminal velocity for solid hydrometeors.
|
|
| | 1 | Define the isotope profile of vapour by a Rayleigh ascent with starting values T=12 and rh=0.75. This can be useful to test the sensitivity to temperature or humidity profiles, but keeping the isotope profile of vapour constant. |
|
|
|
fract_T
|
|
| fulloutput | 0 | Subfunction "`calc_isotopes`" returns profiles of deltaHp, deltaOp, deltaHp_eq, deltaOp_eq, f and ftot. |
|
|
|
'drop'
|
|
| | 1 | Subfunction "`calc_isotopes.m`" additionally returns "mvaptot" (total evaporated vapour mass at each level), "RHvap" and "ROvap" (isotope ratios of the evaporated vapour). |
|
|
|
Drop temperature is used for the fractionation equation.
|
|
| soundingprofile | 0 | Input profiles of T and rh are not from an atmospheric sounding or are not be treated like one. Rayleigh ascent (if `namelist.profilecalc=1`) uses the values of the lowest index (e.g. T(1)) as starting values. |
|
|
|
'env'
|
|
| | 1 | Take the average of the lowermost 100 m of the profiles of T and rh as starting values for the Rayleigh ascent. This should be switched on when taking profiles of T and rh from atmospheric soundings, where surface effects can cause starting values which are very different from the air layer above and thus potentially cause unrealistic profiles. |
|
|
|
Environmental temperature is used for the fractionation equation.
|
|
|
|
|
'mix'
|
|
**Outputs**
|
|
|
Average between drop and environmental temperature is used for the fractionation equation.
|
|
|
|
|
z_form
|
|
`below_cloud_model.m` returns a struct "profiles" with the arrays listed below. The array sizes depends on the model inputs.
|
|
|
0
|
|
|
|
|
Formation and starting height of the hydrometeor is at the highest model level (z(end)).
|
|
|
|
|
3000
|
|
|
|
|
starting height is at 3000 m above sea level (values between z(1) and z(end) are possible).
|
|
|
|
|
-1
|
|
|
|
|
starting height is at the lowermost level where the air is supersaturated with respect to ice (exm > 0).
|
|
|
|
|
formmech
|
|
|
|
|
'wbf'
|
|
|
|
|
Hydrometeor is formed by the Wegener-Bergeron-Findeisen process.
|
|
|
|
|
'depo'
|
|
|
|
|
Hydrometeor is formed by vapour deposition on ice.
|
|
|
|
|
'riming'
|
|
|
|
|
Hydrometeor is formed by riming of liquid droplets on ice. Corresponds to condensation of vapour on liquid. The degree of riming can be defined with namelist.rimingfrac (see below).
|
|
|
|
|
rimingfrac
|
|
|
|
|
0.5
|
|
|
|
|
Defines the degree (or fraction) of riming if namelist.formmech='riming'. Here: 50% of the hydrometeor mass is formed by riming, the remaining 50% are formed by the WBF process. Values between 0 and 1 are possible.
|
|
|
|
|
dz
|
|
|
|
|
1
|
|
|
|
|
Defines step size of the vertical integration and of the output in [m] if namelist.dt=0.
|
|
|
|
|
Here: Vertical resolution of integration and output is 1 m.
|
|
|
|
|
isocalc
|
|
|
|
|
'explicit'
|
|
|
|
|
Isotopic composition of the hydrometeor is calculated using separate mass equations for all isotopic species.
|
|
|
|
|
'stewart'
|
|
|
|
|
Isotopic composition of the hydrometeor is calculated according to Stewart (1975) (Eq. 2).
|
|
|
|
|
temptendswitch
|
|
|
|
|
'both'
|
|
|
|
|
Drop temperature changes due to evaporative cooling of adaptation to the environmental air temperature are both switched on.
|
|
|
|
|
'evap'
|
|
|
|
|
Only evaporative cooling is enabled.
|
|
|
|
|
'adap'
|
|
|
|
|
Only adaptation to environmental air temperature is enabled.
|
|
|
|
|
constisotopeprofile
|
|
|
|
|
0
|
|
|
|
|
Take the isotope profile of vapour from the input (namelist.profilecalc=0) or calculate it with a Rayleigh ascent (namelist.profilecalc=1).
|
|
|
|
|
1
|
|
|
|
|
Define the isotope profile of vapour by a Rayleigh ascent with starting values T=12 and rh=0.75.
|
|
|
|
|
This can be useful to test the sensitivity to temperature or humidity profiles, but keeping the isotope profile of vapour constant.
|
|
|
|
|
fulloutput
|
|
|
|
|
0
|
|
|
|
|
Subfunction "calc_isotopes" returns profiles of deltaHp, deltaOp, deltaHp_eq, deltaOp_eq, f and ftot.
|
|
|
|
|
1
|
|
|
|
|
Subfunction "calc_isotopes.m" additionally returns "mvaptot" (total evaporated vapour mass at each level), "RHvap" and "ROvap" (isotope ratios of the evaporated vapour).
|
|
|
|
|
soundingprofile
|
|
|
|
|
0
|
|
|
|
|
Input profiles of T and rh are not from an atmospheric sounding or are not be treated like one. Rayleigh ascent (if namelist.profilecalc=1) uses the values of the lowest index (e.g. T(1)) as starting values.
|
|
|
|
|
1
|
|
|
|
|
Take the average of the lowermost 100 m of the profiles of T and rh as starting values for the Rayleigh ascent. This should be switched on when taking profiles of T and rh from atmospheric soundings, where surface effects can cause starting values which are very different from the air layer above and thus potentially cause unrealistic profiles.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Outputs:
|
|
|
|
|
below_cloud_model.m returns a struct "profiles" with the arrays listed below. The array sizes depends on the model inputs.
|
|
|
|
|
|
|
|
|
|
Variables that describe the profile of ambient air are of size (1xn), where n is the length of the input array "z". "z" defines the grid on which these profiles are defined (background grid).
|
|
Variables that describe the profile of ambient air are of size (1xn), where n is the length of the input array "z". "z" defines the grid on which these profiles are defined (background grid).
|
|
|
For example:
|
|
For example:
|
| ... | |
... | |
| ... | | ... | |