|
|
[Documentation_BCIM.odt](uploads/ce736f9f858d77e78dd630671c5c1306/Documentation_BCIM.odt)Documentation:
|
|
[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
|
|
|
Main functions:
|
|
|
|
|
|
|
|
|
|
Function name
|
|
|
|
|
Purpose
|
|
|
|
|
below_cloud_model.m
|
|
|
|
|
Main model. Calculates the phyiscal and isotopic properties of a single falling hydrometeor from the given inputs (see “input”) and returns an output struct with fields listed under “output”.
|
|
|
|
|
calc_isotopes.m
|
|
|
|
|
Diagnoses the isotopic composition of a hydrometeor along its fall trajectory. The mass of the hydrometeor and the isotopic composition of the ambient air at every height step have to be known.
|
|
|
|
|
find_input_diameter.m
|
|
|
|
|
Iteratively determines the initial diameter of a hydrometer, which reaches a target terminal diameter when it arrives on the ground. This function is needed when the terminal instead of the default initial diameter is given as model input.
|
|
|
|
|
get_profile_value.m
|
|
|
|
|
Get the interpolated value of a profile variable at a specified height.
|
|
|
|
|
rayleigh_ascent.m
|
|
|
|
|
Calculates vertical profiles of T, h, δ2H and d-excess of a (moist-)adiabatically ascending air parcel, which undergoes Rayleigh fractionation.
|
|
|
|
|
|
|
|
|
|
Helper functions:
|
|
|
|
|
|
|
|
|
|
Function name
|
|
|
|
|
|
|
|
|
|
Purpose
|
|
|
|
|
air_density.m
|
|
|
|
|
|
|
|
|
|
Calculates the air density ρ.
|
|
|
|
|
alphaH.m; alphaO.m
|
|
|
|
|
|
|
|
|
|
Calculates the liquid-vapour equilibrium fractionation factor (for 2H or 18O)
|
|
|
|
|
alphaHk.m; alphaOk.m
|
|
|
|
|
|
|
|
|
|
Calculates the kinetic fractionation factor (for 2H or 18O).
|
|
|
|
|
alphaHs.m; alphaOs.m
|
|
|
|
|
|
|
|
|
|
Calculates the solid-vapour equilibrium fractionation factor (for 2H or 18O).
|
|
|
|
|
diffusion_coefficient.m
|
|
|
|
|
|
|
|
|
|
Calculates the diffusion coefficient.
|
|
|
|
|
drop_mass_tendency.m
|
|
|
|
|
|
|
|
|
|
Calculates the hydrometeor mass change due to evaporation and condensation.
|
|
|
|
|
drop_T_tendency.m
|
|
|
|
|
|
|
|
|
|
Calculates the hydrometeor temperature change due to evaporation, condensation and heat diffusion.
|
|
1. Main functions:
|
|
|
dynamic_viscosity.m
|
|
|
|
|
|
|
| Function name | Purpose |
|
|
|
Calculates the dynamic viscosity.
|
|
| ------ | ------ |
|
|
|
heat_vent_coeff.m
|
|
| below_cloud_model.m | Main model. Calculates the phyiscal and isotopic properties of a single falling hydrometeor from the given inputs (see “input”) and returns an output struct with fields listed under “output”. |
|
|
|
|
|
| calc_isotopes.m | Diagnoses the isotopic composition of a hydrometeor along its fall trajectory. The mass of the hydrometeor and the isotopic composition of the ambient air at every height step have to be known. |
|
|
|
Calculates the heat ventilation coefficient.
|
|
| find_input_diameter.m | Iteratively determines the initial diameter of a hydrometer, which reaches a target terminal diameter when it arrives on the ground. This function is needed when the terminal instead of the default initial diameter is given as model input. |
|
|
|
latheat_evap.m
|
|
| get_profile_value.m | Get the interpolated value of a profile variable at a specified height. |
|
|
|
|
|
| rayleigh_ascent.m | Calculates vertical profiles of T, h, δ2H and d-excess of a (moist-)adiabatically ascending air parcel, which undergoes Rayleigh fractionation. |
|
|
|
Calculates the latent heat of evaporation.
|
|
|
|
|
latheat_sublim.m
|
|
2. Helper functions:
|
|
|
|
|
|
|
|
Calculates the latent heat of sublimation.
|
|
| Function name | Purpose |
|
|
|
mass_mix_ratio.m
|
|
| ------ | ------ |
|
|
|
|
|
| air_density.m | Calculates the air density ρ. |
|
|
|
Calculates the mass mixing ration of vapour in dry air.
|
|
| alphaH.m; alphaO.m | Calculates the liquid-vapour equilibrium fractionation factor (for 2H or 18O) |
|
|
|
mass_vent_coeff.m
|
|
| alphaHk.m; alphaOk.m | Calculates the kinetic fractionation factor (for 2H or 18O). |
|
|
|
|
|
| alphaHs.m; alphaOs.m | Calculates the solid-vapour equilibrium fractionation factor (for 2H or 18O). |
|
|
|
Calculates the mass ventilation coefficient (possible for each isotope species)
|
|
| diffusion_coefficient.m | Calculates the diffusion coefficient. |
|
|
|
satvappress_ice.m
|
|
| drop_mass_tendency.m | Calculates the hydrometeor mass change due to evaporation and condensation. |
|
|
|
|
|
| drop_T_tendency.m | Calculates the hydrometeor temperature change due to evaporation, condensation and heat diffusion. |
|
|
|
Calculates the saturation vapour pressure over ice.
|
|
| dynamic_viscosity.m | Calculates the dynamic viscosity. |
|
|
|
satvappress.m
|
|
| heat_vent_coeff.m | Calculates the heat ventilation coefficient. |
|
|
|
|
|
| latheat_evap.m | Calculates the latent heat of evaporation. |
|
|
|
Calculates the saturation vapour pressure over liquid.
|
|
| latheat_sublim.m | Calculates the latent heat of sublimation. |
|
|
|
terminal_velocity_solid.m
|
|
| mass_mix_ratio.m | Calculates the mass mixing ration of vapour in dry air. |
|
|
|
|
|
| mass_vent_coeff.m | Calculates the mass ventilation coefficient (possible for each isotope species) |
|
|
|
Calculates the terminal velocity of a solid hydrometeor.
|
|
| satvappress_ice.m | Calculates the saturation vapour pressure over ice. |
|
|
|
terminal_velocity.m
|
|
| satvappress.m | Calculates the saturation vapour pressure over liquid. |
|
|
|
|
|
| terminal_velocity_solid.m | Calculates the terminal velocity of a solid hydrometeor. |
|
|
|
Calculates the terminal velocity of a liquid hydrometeor.
|
|
| terminal_velocity.m | Calculates the terminal velocity of a liquid hydrometeor. |
|
|
|
therm_cond.m
|
|
| therm_cond.m | Calculates the thermal conductivity of moist air. |
|
|
|
|
|
|
|
|
Calculates the thermal conductivity of moist air.
|
|
3. Inputs:
|
|
|
|
|
|
|
|
Inputs:
|
|
| Input variable | Description | Example |
|
|
|
Input variable
|
|
| ------ | ------ | ------ |
|
|
|
Description
|
|
| diam_input | Cell array (1x2), containing the equivalent diameter of the hydrometeor in [m] and an indication whether this is the diameter at the starting height 'start' or the diameter when arriving at the surface 'end'. The diameter at the starting height is iteratively determined in the latter case. | diam_input={0.001,'end'} → Hydrometeor arrives on the ground with a diameter of 1 mm. |
|
|
|
diam_input
|
|
| prof_deltaH | (1xn) array, containing the vertical delta2H profile of environmental water vapour. If n=2, the profile is linearly interpolated between the lowest and highest model level (defined with the input variable z). If n=length(z), the entire profile of vapour delta2H is defined. Values of prof_deltaH should be given in [permil]. Dimension has to be (1x2) if namelist.profilecalc=1. Then, only the first value will be used as starting value for the Rayleigh ascent. | prof_deltaH=[-50 -300] → Linear delta2H profile with -50 permil at the surface (z(1)) and -300 permil at the highest model level (z(end)). |
|
|
|
Cell array (1x2), containing the equivalent diameter of the hydrometeor in [m] and an indication whether this is the diameter at the starting height 'start' or the diameter when arriving at the surface 'end'. The diameter at the starting height is iteratively determined in the latter case.
|
|
| prof_dexc | Same as prof_deltaH, but for deuterium-excess in [permil] | |
|
|
|
Example: diam_input={0.001,'end'} → Hydrometeor arrives on the ground with a diameter of 1 mm.
|
|
| prof_rh | Same as prof_deltaH, but for relative humidity in [] (e.g., 50% = 0.5) | |
|
|
|
prof_deltaH
|
|
| prof_T | Same as prof_deltaH, but for air temperature in [°C.] | |
|
|
|
(1xn) array, containing the vertical delta2H profile of environmental water vapour. If n=2, the profile is linearly interpolated between the lowest and highest model level (defined with the input variable z). If n=length(z), the entire profile of vapour delta2H is defined. Values of prof_deltaH should be given in [permil]. Dimension has to be (1x2) if namelist.profilecalc=1. Then, only the first value will be used as starting value for the Rayleigh ascent.
|
|
| 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. |
|
|
|
Example: prof_deltaH=[-50 -300] → Linear delta2H profile with -50 permil at the surface (z(1)) and -300 permil at the highest model level (z(end)).
|
|
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] |
|
|
|
prof_dexc
|
|
| namelist | Structure of different model input parameters in the format "namelist.fieldname". See below for possible fieldnames. | |
|
|
|
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_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.
|
|
|
|
|
Example: 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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
| ... | |
... | |
| ... | | ... | |