A GLM simulation is configured via the main “namelist” (nml) text file called glm3.nml
. The key elements of this file are depicted as "blocks" in the above image and each block of configuration options & parameters is summarised in detail in the below table. For a summary of the notation and nomenclature refer to the 2019 GMD paper.
The first block IS compulsory, with the following variables that may be set :
Variable Name | Symbol | Description | Type | Units | Options | Default |
---|---|---|---|---|---|---|
sim_name |
Title of simulation | [string] | 'lake' | |||
max_layers |
$$N_{MAX}$$ | Maximum number of layers | [integer] | - | 500 | |
min_layer_vol |
$$\Delta V_{min}$$ | Minimum layer volume | [real] | $$m^3$$ | ||
min_layer_thick |
$$\Delta z_{min}$$ | Minimum thickness of a layer (m) | [real] | $$m$$ | ||
max_layer_thick |
$$\Delta z_{max}$$ | Maximum thickness of a layer (m) | [real] | $$m$$ | ||
density_model |
$$\Theta_{\rho}$$ | Switch to set the density equation | [integer] | - | $$\rho[T,S] \longleftarrow \left\{ \begin{array}{ll} \textrm{TEOS-10: }&\Theta_{\rho}=1 \\ \textrm{UNESCO(1981): }&\Theta_{\rho}=2\\ \textrm{custom: }&\Theta_{\rho}=3+ \end{array} \right.$$ | 1 |
non_avg |
$$\Theta_{bc}$$ | Switch to configure flow boundary condition temporal interpolation | [boolean] | - | $$Q_{inf}^{t} = \left\{ \begin{array}{ll} Q_{inf}^{t} & \Theta_{bc}=T \\ (Q_{inf}^{t}+Q_{inf}^{t-1})/2 & \Theta_{bc}=F \end{array} \right.$$ | .true. |
EXAMPLE:
&glm_setup
sim_name = 'Example Simulation #1'
max_layers = 500
min_layer_thick = 0.15
max_layer_thick = 1.50
min_layer_vol = 0.025
density_model = 1
non_avg = .true.
/
This configuration block is NOT compulsory
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
surface_mixing |
$$\Theta_{mix}$$ | Switch to select the options of the surface mixing model | [integer] | $$ \left\{ \begin{array}{ll} \textrm{No surface mixing }&\Theta_{mix}=0 \\ \textrm{xxxxx }&\Theta_{mix}=1\\ \textrm{xxxxx }&\Theta_{mix}=2 \end{array} \right.$$ | 1 |
coef_mix_conv |
$$C_{K}$$ | Mixing efficiency - convective overturn | [real] | ||
coef_wind_stir |
$$C_{W}$$ | Mixing efficiency - wind stirring | [real] | ||
coef_mix_shear |
$$C_{S}$$ | Mixing efficiency - shear production | [real] | ||
coef_mix_turb |
$$C_{T}$$ | Mixing efficiency - unsteady turbulence effects | [real] | ||
coef_mix_KH |
$$C_{KH}$$ | Mixing efficiency - Kelvin-Helmholtz billowing | [real] | ||
deep_mixing |
$$\Theta_{deep}$$ | Switch to select the options of the deep (hypolimnetic) mixing model | [integer] | $$ \left\{ \begin{array}{ll} \textrm{No deep mixing: }D_z=0&\Theta_{deep}=0 \\ \textrm{Constant diffusivity: }D_z=C_{HYP}&\Theta_{deep}=1\\ \textrm{Weinstock model: }D_z=f(N^2,C_{HYP},...)&\Theta_{deep}=2 \end{array} \right.$$ | ? |
coef_mix_hyp |
$$C_{HYP}$$ | Mixing efficiency - hypolimnetic turbulence | [real] | ||
diff |
$$D_{\epsilon}$$ | Background (molecular) diffusivity in the hypolimnion | [real] |
EXAMPLE:
&mixing
surface_mixing = 1
coef_mix_conv = 0.125
coef_wind_stir = 0.23
coef_mix_shear = 0.2
coef_mix_turb = 0.51
coef_mix_KH = 0.3
deep_mixing = 2
coef_mix_hyp = 0.5
diff = 0.
/
This configuration block is NOT compulsory
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
wq_lib |
$$\Theta_{wq}$$ | Water quality model selection | [string] | $$ \left\{ \begin{array}{ll} \textrm{FABM} & \Theta_{wq}=\textrm{'FABM'} \\ \textrm{AED2} & \Theta_{wq}=\textrm{'AED2'} \\ \end{array} \right.$$ | AED2 |
wq_nml_file |
Filename of WQ configuration file | [string] | add filename in quotes, can include directorys | './aed2.nml' | |
bioshade_feedback |
$$\Theta_{kw}$$ | Switch to enable \(K_{w}\) to be updated by the WQ model | [boolean] | $$K_{w}[t,z] = \left\{ \begin{array}{ll} K_{w} & \Theta_{kw}=F \\ K_{w}+K_{ss}+K_{dom}+K_{pom}+K_{phy} & \Theta_{kw}=T \\ \end{array} \right.$$ | ? |
mobility_off |
Switch to enable settling within the WQ model | [boolean] | .true. & .false. | .false. | |
ode_method |
$$\Theta_{ode}$$ | Method to use for ODE solution of water quality module | [integer] | tbc | 1 |
split_factor |
Factor weighting implicit vs explicit numerical solution of the WQ model | [real] | 0-1 | 1 | |
repair_state |
$$\Theta_{repair}$$ | Switch to correct negative or out of range WQ variables | [boolean] | .true. or .false. | .true. |
EXAMPLE:
&wq_setup
wq_lib = 'aed2'
wq_nml_file = 'aed2/aed2.nml'
ode_method = 1
split_factor = 1
bioshade_feedback = .true.
repair_state = .true.
mobility_off = .false.
/
This configuration block IS compulsory
Variable Name | Symbol | Description | Type | Units | Options/Comment | Default |
---|---|---|---|---|---|---|
lake_name |
Site name | [string] | - | - | - | |
latitude |
$$Lat$$ | Latitude, positive North | [real] | $$^{\circ} N$$ | 0 | |
longitude |
$$Long$$ | Longitude, positive East | [real] | $$^{\circ} E$$ | 0 | |
base_elev |
$$H_{0}$$ | Elevation of the bottom-most point of the lake | [real] | \(m\) above datum | ||
crest_elev |
$$H_{crest}$$ | Elevation of a weir crest, where overflow begins | [real] | \(m\) above datum | ||
bsn_len |
$$L_{crest}$$ | Length of the lake basin, at crest height | [real] | $$m$$ | ||
bsn_wid |
$$W_{crest}$$ | Width of the lake basin, at crest height | [real] | $$m$$ | ||
bsn_vals |
$$N_{BSN}$$ | Number of points being provided to described the hyposgraphic details | [real] | - | ||
H |
$$H[b]$$ | Comma-separated list of lake elevations | [array] | \(m\) above datum | ||
A |
$$A[b]$$ | Comma-separated list of lake areas | [array] | $$m^2$$ |
EXAMPLE:
&morphometry
lake_name = 'Example Lake'
latitude = 32
longitude = 35
base_elev = -252.9
crest_elev = -203.9
bsn_len = 21000
bsn_wid = 13000
bsn_vals = 45
! H(m) & A(m2), both have length bsn_vals
H = -252.9, -251.9, -250.9, -249.9, -248.9, -247.9, -246.9, -245.9,
-244.9, -243.9, -242.9, -241.9, -240.9, -239.9, -238.9,
-237.9, -236.9, -235.9, -234.9, -233.9, -232.9, -231.9,
-230.9, -229.9, -228.9, -227.9, -226.9, -225.9, -224.9,
-223.9, -222.9, -221.9, -220.9, -219.9, -218.9, -217.9,
-216.9, -215.9, -214.9, -213.9, -212.9, -211.9, -208.9,
-207.9, -203.9
A = 0, 9250000, 15200000, 17875000, 21975000, 26625000, 31700000, 33950000,
38250000, 41100000, 46800000, 51675000, 55725000, 60200000, 64675000,
69600000, 74475000, 79850000, 85400000, 90975000, 96400000, 102000000,
107000000, 113000000, 118000000, 123000000, 128000000, 132000000, 136000000,
139000000, 143000000, 146000000, 148000000, 150000000, 151000000, 153000000,
155000000, 157000000, 158000000, 160000000, 161000000, 162000000, 167000000,
170000000, 173000000
/
This configuration block IS compulsory
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
timefmt |
$$\Theta_{time}$$ | Time configuration switch | [Integer] | $$ \left\{ \begin{array}{ll} t = t_{0} ... t_{N_{\Delta t}};\ N_d = t_{N_{\Delta t}} - t_{0} & \Theta_{time}=2 \\ t = t_{0} ... (t_{0}+N_d);\ t_{N_{\Delta t}} = t_{0}+N_d & \Theta_{time}=3 \\ \end{array} \right.$$ | ? |
start |
$$t_{0}$$ | Start time/date of simulation | [string, format = "yyyy-mm-dd hh:mm:ss"] | Required | - |
stop |
$$t_{N_{\Delta t}}$$ | End time/date of simulation | [string, format = "yyyy-mm-dd hh:mm:ss"] | Used when (\(\Theta_{time}=2\)) | - |
dt |
$$\Delta t$$ | Time step (\(sec\)) | [real] | Required | 3600 |
num_days |
$$N_d$$ | Number of days to simulate | [integer] | Used when (\(\Theta_{time}=3\)) | - |
timezone |
$$TZ$$ | UTC time zone | [real] | +0 |
EXAMPLE:
&time
timefmt = 3 ! Choose 2 (start/stop) or 3 (num_days)
start = '1997-01-01 00:00:00'
stop = '1999-01-01 00:00:00'
dt = 3600.0
num_days = 730
!timezone = 7.0
/
This configuration block is NOT compulsory
Variable Name | Description | Type | Options | Default |
---|---|---|---|---|
out_dir |
Directory to write the output files | [string] | ./ | |
out_fn |
Filename of the main NetCDF output file | [string] | output | |
nsave |
Frequency to write to the NetCDF and CSV point files | [integer] | 1 | |
csv_lake_fname |
Filename for the daily summary file | [string] | lake | |
csv_point_nlevs |
Number of specific level/depth csv files to be created | [real] | 0 | |
csv_point_fname |
Name to be appended to specified depth CSV files | [string] | 'WQ_' | |
csv_point_frombot |
Comma separated list identify whether each output point listed in csv_point_at is relative to the bottom (ie heights) or the surface (ie depths) | [real] | .true. | |
csv_point_at |
Height or Depth of points to output at (comma separated list) | [real] | 0 | |
csv_point_nvars |
Number of variables to output into the csv files | [integer] | ||
csv_point_vars |
Comma separated list of variable names | [string] | temp; salt; ... | |
csv_outlet_allinone |
Switch to create an optional outlet file combining all outlets | [boolean] | .true. & .false. | .false. |
csv_outlet_fname |
Name to be appended to each of the outlet CSV files | [string] | ||
csv_outlet_nvars |
Number of variables to be written into the outlet file(s) | [integer] | 0 | |
csv_outlet_vars |
Comma separated list of variable names to be included in the output file(s) | [string] | ||
csv_ovrflw_fname |
Filename to be used for recording the overflow details | [string] |
EXAMPLE:
&output
out_dir = 'output'
out_fn = 'output'
nsave = 6
!-- General summary file
csv_lake_fname = 'lake'
!-- Depth specific outputs
csv_point_nlevs = 2
csv_point_fname = 'WQ_'
csv_point_at = 5,30 ! a file will be produced for 5m and 30m heights from bottom
csv_point_nvars = 7
csv_point_vars = 'temp',
'salt',
'OXY_oxy',
'SIL_rsi',
'NIT_amm',
'NIT_nit',
'PHS_frp'
!-- Combined outlet file & overflow
csv_outlet_allinone = .false.
csv_outlet_fname = 'outlet_'
csv_outlet_nvars = 4
csv_outlet_vars = 'flow',
'temp',
'salt',
'OXY_oxy',
csv_ovrflw_fname = "overflow"
/
This configuration block IS compulsory
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
lake_depth |
$$h_S[t=0]$$ | Initial lake height/depth (m) | [real] | ||
num_depths |
Number of depths provided for initial profiles | [integer] | |||
the_depths |
The depths of the initial profile points (m) as a comma-separated list | [real] | |||
the_temps |
$$T[t=0,z]$$ | The temperature (C) at each of the initial profile points (comma-separated list) | [real] | ||
the_sals |
$$S[t=0,z]$$ | The salinity (ppt) at each of the initial profile points (comma-separated list) | [real] | ||
num_wq_vars |
Number of non GLM (ie FABM or AED2) variables to be initialised | [integer] | Note these values override initialisations done by FABM or AED2 | 0 | |
wq_names |
Names of non GLM (ie FABM or AED2) variables to be initialised (comma-separated list) | [string] | - | ||
wq_init_vals |
$$C[t=0,z,\mathbb{C}]$$ | Array of WQ variable initial data (rows = vars; cols = depths) | [real] | 0 |
EXAMPLE:
&init_profiles
lake_depth = 43
num_depths = 3
the_depths = 1, 20, 40
!-- GLM
the_temps = 18.0, 18.0, 18.0
the_sals = 0.5, 0.5, 0.5
!-- WQ
num_wq_vars = 6
wq_names = 'OGM_don',
'OGM_pon',
'OGM_dop',
'OGM_pop',
'OGM_doc',
'OGM_poc'
wq_init_vals = 1.1, 1.2, 1.3, 1.2, 1.3,
2.1, 2.2, 2.3, 1.2, 1.3,
3.1, 3.2, 3.3, 1.2, 1.3,
4.1, 4.2, 4.3, 1.2, 1.3,
5.1, 5.2, 5.3, 1.2, 1.3,
6.1, 6.2, 6.3, 1.2, 1.3
/
This configuration block is NOT compulsory
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
light_mode |
$$\Theta_{light}$$ | Switch to configure the approach to light penetration | [integer] | 1 | |
Kw |
$$K_w$$ | Light extinction coefficient (\(m^{-1}\)) | [real] | Used when \(\Theta_{light}=0\) | |
Kw_file |
- | Name of file with Kw time-series included | [string] | - | |
n_bands |
$$N_{SW}$$ | Number of light bandwidths to simulate | [integer] | Used when \(\Theta_{light}=1\) | 4 |
light_extc |
$$K_w_l$$ | Comma-separated list of light extinction coefficients for each waveband | [real] | ||
energy_frac |
$$f_l$$ | Comma-separated list of energy fraction captured by each waveband | [real] | ||
Benthic_Imin |
$$f_{BEN}_{crit}$$ | Critical fraction of incident light reaching the benthos | [real] |
EXAMPLE:
&light
light_mode = 0
Kw = 0.57
n_bands = 4
light_extc = 1.0, 0.5, 2.0, 4.0
energy_frac = 0.51, 0.45, 0.035, 0.005
Benthic_Imin = 10
/
This configuration block is NOT compulsory
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
AP |
$$p$$ | Atmospheric pressure (hPa) | [real] | ||
Oz |
$$Oz$$ | Ozone concentration (atm-cm) | [real] | ||
WatVap |
$$W$$ | Total Precipitable water vapor (atm-cm) | [real] | ||
AOD500 |
$$AOD_{500}$$ | Dimensionless Aerosol Optical Depth at wavelength 500 nm | [real] | ||
AOD380 |
$$AOD_{380}$$ | Dimensionless Aerosol Optical Depth at wavelength 380 nm | [real] | ||
Albedo |
$$\alpha_{SW}$$ | Albedo of the surface used for Bird Model insolation calculation | [real] | 0.2 |
EXAMPLE:
&bird_model
AP = 973
Oz = 0.279
WatVap = 1.1
AOD500 = 0.033
AOD380 = 0.038
Albedo = 0.2
/
This configuration block is NOT compulsory
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
sed_heat_Ksoil |
$$K_{soil}$$ | heat conductivity of soil/sediment | [real] | - | |
sed_temp_depth |
$$\delta z_{soil}$$ | Depth of soil/sediment layer below the lake bottom, used for heat flux calculation | [real] | ||
sed_temp_mean |
$$T_{z_{mean}}$$ | Annual mean sediment temperature | [real] | comma-separated list if \(N_{SZ}>1\) | |
sed_temp_amplitude |
$$\delta T_z$$ | Amplitude of temperature variation experienced in the sediment over one year | [real] | comma-separated list if \(N_{SZ}>1\) | |
sed_temp_peak_doy |
$$d_{T_{z}}$$ | Day of the year where the sediment temperature peaks | [integer] | comma-separated list if \(N_{SZ}>1\) | |
benthic_mode |
$$\Theta_{benthic}$$ | Switch to configure which mode of benthic interaction to apply | [integer] | $$ \left\{ \begin{array}{ll} \textrm{Bottom layer only } & \Theta_{benthic}=0 \\ \textrm{Bottom layer & layer flanks } & \Theta_{benthic}=1 \\ \textrm{Sediment zones } & \Theta_{benthic}=2 \\ \textrm{tbc} & \Theta_{benthic}=3 \end{array} \right.$$ | |
n_zones |
$$N_{SZ}$$ | Number of sediment zones to simulate | [integer] | Required for benthic_mode (\(\Theta_{benthic}\)) \(= 2\) or \(3\) | 0 |
zone_heights |
$$h_z[1 ... N_{SZ}]$$ | Upper height of zone boundary | [real] | Required for benthic_mode (\(\Theta_{benthic}\)) \(= 2\) or \(3\) | |
sed_reflectivity |
$$\alpha_{sed}$$ | Sediment reflectivity | [real] | 0 | |
sed_roughness |
$$d_{SS_{z}}$$ | TBC | [real] |
EXAMPLE:
&sediment
sed_heat_Ksoil = 0.0
sed_temp_depth = 0.2
sed_temp_mean = 5,10,20
sed_temp_amplitude = 6,8,10
sed_temp_peak_doy = 80, 70, 60
benthic_mode = 1
n_zones = 3
zone_heights = 10., 20., 50.
sed_reflectivity = 0.1, 0.01, 0.01
sed_roughness = 0.1, 0.01, 0.01
/
This configuration block is NOT compulsory
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
snow_albedo_factor |
$$f_{\alpha}$$ | Scaling factor used to as a multiplier to scale the snow/ice albedo estimate | [real] | 1 | |
snow_rho_min |
$$\rho_{s,min}$$ | Minimum snow density allowable (\(kg\ m^{-3}\)) | [real] | 50 | |
snow_rho_max |
$$\rho_{s,max}$$ | Maximum snow density allowable (\(kg\ m^{-3}\)) | [real] | 300 |
EXAMPLE:
&snowice
snow_albedo_factor = 1.0
snow_rho_min = 50
snow_rho_max = 300
/
This configuration block is NOT compulsory
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
met_sw |
$$\Theta_{met}$$ | Switch to enable the surface heating module | [boolean] | .true. OR .false. | .true. |
Input meterological data | |||||
meteo_fl |
- | Filename of the meterological file | [string] | Include path and filename | - |
subdaily |
$$\Theta_{subdaily}$$ | Switch to indicate the meteorological data is provided with sub-daily resolution, at an interval equivalent to \(\Delta t\) | [boolean] | .true. OR .false. | |
time_fmt |
- | Time format of the 1st column in the inflow_fl | [string] | 'YYYY-MM-DD hh:mm:ss' | |
SW & LW radiation | |||||
rad_mode |
$$\Theta_{rad}$$ | Switch to configure which incoming radiation option to use | [integer] | $$ \left\{ \begin{array}{ll} \textrm{1 } & \Theta_{rad}=1 \\ \textrm{1 } & \Theta_{rad}=2 \\ \textrm{1 } & \Theta_{rad}=3 \\ \textrm{1 } & \Theta_{rad}=4 \\ \textrm{1 } & \Theta_{rad}=5 \end{array} \right.$$ | |
albedo_mode |
$$\Theta_{\alpha}$$ | Switch to configure which albedo calculation option is used | [integer] | $$ \left\{ \begin{array}{ll} \textrm{Hamilton & Schladow } & \Theta_{\alpha}=1 \\ \textrm{Briegleb et al } & \Theta_{\alpha}=2 \\ \textrm{Yajima & Yamamoto } & \Theta_{\alpha}=3 \end{array} \right.$$ | |
sw_factor |
$$f_{SW}$$ | Scaling factor to adjust the shortwave radiation data provided in the meteo_fl (\(\phi_{SW_x}\)) | [real] | 1 | |
lw_type |
$$\Theta_{lw}$$ | Switch to configure which input approach is being used for longwave/cloud data in the meteo_fl | [string] | $$ \left\{ \begin{array}{ll} \textrm{Incident longwave } & \Theta_{lw}=\textrm{'LW_IN'} \\ \textrm{Net longwave } & \Theta_{lw}=\textrm{'LW_NET'} \\ \textrm{Cloud cover} & \Theta_{lw}=\textrm{'LW_CC'} \end{array} \right.$$ | |
cloud_mode |
$$\Theta_{cloud}$$ | Switch to configure which atmospheric emmissivity calculation option is used | [integer] | $$ \left\{ \begin{array}{ll} \textrm{Idso and Jackson } & \Theta_{cloud}=1 \\ \textrm{Swinbank } & \Theta_{cloud}=2 \\ \textrm{Brutsaert } & \Theta_{cloud}=3 \\ \textrm{Yajima & Yamamoto} & \Theta_{cloud}=4 \end{array} \right.$$ | |
lw_factor |
$$f_{LW}$$ | Scaling factor to adjust the longwave (or cloud) data provided in the meteo_fl (\(C_x\)) | [real] | 1 | |
Sensible & latent heat | |||||
atm_stab |
$$\Theta_{atmstab}$$ | Switch to configure which approach to atmospheric stability is used | [integer] | $$ \left\{ \begin{array}{ll} \textrm{Neutral conditions } & \Theta_{atmstab}=0 \\ \textrm{1 } & \Theta_{atmstab}=1 \\ \textrm{1 } & \Theta_{atmstab}=2 \end{array} \right.$$ | |
rh_factor |
$$f_{RH}$$ | Scaling factor to adjust the relative humidity data provided in the meteo_fl (\(RH_x\)) | [real] | 1 | |
at_factor |
$$f_{AT}$$ | Scaling factor to adjust the air temperature data provided in the meteo_fl (\(AT_x\)) | [real] | 1 | |
ce |
$$C_E$$ | Bulk aerodynamic transfer coefficient for latent heat flux | [real] | 0.0013 | |
ch |
$$C_H$$ | Bulk aerodynamic transfer coefficient for sensible heat flux | [real] | 0.0013 | |
Rainfall & local runoff ("run-in") | |||||
rain_sw |
$$\Theta_{rain}$$ | Switch to configure rainfall input concentrations | [boolean] | .true. OR .false. | |
rain_factor |
$$f_R$$ | Scaling factor to adjust the rainfall data provided in the meteo_fl (\(R_x\)) | [real] | 1 | |
catchrain |
$$\Theta_{runin}$$ | Switch that configures runoff from exposed banks of lake area | [boolean] | .true. OR .false. | .false. |
rain_threshold |
$$R_L$$ | Daily rainfall amount (m) required before runoff from exposed banks occurs | [real] | ||
runoff_coef |
$$f_{ro}$$ | Conversion fraction of infiltration excess rainfall to runoff in exposed lake banks | [real] | ||
Wind & wind-sheltering | |||||
cd |
$$C_D$$ | Bulk aerodynamic transfer coefficient for momentum | [real] | 0.0013 | |
wind_factor |
$$f_U$$ | Scaling factor to adjust the windspeed data provided in the meteo_fl (\(U_x\)) | [real] | 1 | |
fetch_mode |
$$\Theta_{fetch}$$ | Switch to configure which wind-sheltering/fetch option to use | [integer] | $$ \left\{ \begin{array}{ll} \textrm{No sheltering } & \Theta_{fetch}=0 \\ \textrm{Area-based scaling } & \Theta_{fetch}=1 \\ \textrm{Markfort length-scale } & \Theta_{fetch}=2 \\ \textrm{User input scaling table } & \Theta_{fetch}=3 \end{array} \right.$$ | 0 | Aws |
$$A_{WS}$$ | ... | [real] | Required for fetch_mode (\(\Theta_{fetch}\)) \(= 1\) | ? |
Xws |
$$x_{WS}$$ | ... | [real] | Required for fetch_mode (\(\Theta_{fetch}\)) \(= 2\) | ? |
num_dir |
- | Number of wind direction reference points being read in | [integer] | Required for fetch_mode (\(\Theta_{fetch}\)) \(= 2\) or \(3\) | - |
wind_dir |
$$\Phi_{wind}[1...]$$ | Wind directions used for wind-sheltering effects | [real] | Required for fetch_mode (\(\Theta_{fetch}\)) \(= 2\) or \(3\) | - |
fetch_scale |
$$f_{WS}[\Phi_{wind}]$$ | Direction specific wind-sheltering scaling factors | [real] | Required for fetch_mode (\(\Theta_{fetch}\)) \(= 2\) or \(3\) | 1 |
EXAMPLE:
&meteorology
!-- Met forcing options
met_sw = .true.
lw_type = 'LW_IN'
rain_sw = .false.
atm_stab = 0
fetch_mode = 0
!rad_mode = 1
albedo_mode = 1
cloud_mode = 4
!-- BC file details
subdaily = .true.
meteo_fl = 'bcs/met_hourly.csv'
wind_factor = 0.9
!-- Parameters
ce = 0.0013
ch = 0.0013
cd = 0.0013
!catchrain = .true.
!rain_threshold = 0.001
!runoff_coef = 0.0
/
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
num_inflows |
$$N_{INF}$$ | Number of inflows to be simulated in this simulation | [integer] | 0 | |
names_of_strms |
- | Names of each inflow | [string] | comma-separated list if \(N_{INF}>1\) | - |
subm_flag |
$$\Theta_{subm_I}$$ | Switch indicating if the inflow I is entering as a submerged input | [boolean] | .true. OR .false. comma-separated list if \(N_{INTF}>1\) |
.false. |
strm_hf_angle |
$$\alpha{inf}$$ | Angle describing the width of an inflow river channel ("half angle") | [real] | comma-separated list if \(N_{INF}>1\) | |
strmbd_slope |
$$\Phi_{inf}$$ | Slope of the streambed / river thalweg for each river (degrees) | [real] | comma-separated list if \(N_{INF}>1\) | |
strmbd_drag |
$$C_{D_{inf}}$$ | Drag coefficient of the river inflow thalweg, to calculate entrainment during insertion | [real] | comma-separated list if \(N_{INF}>1\) | |
coef_inf_entrain |
$$C_{entrain}$$ | - | [real] | comma-separated list if \(N_{INF}>1\) | |
inflow_factor |
$$f_{inf_{I}}$$ | Scaling factor that can be applied to adjust the provided input data | [real] | comma-separated list if \(N_{INF}>1\) | 1 |
inflow_fl |
- | Filename(s) of the inflow CSV boundary condition files | [string] | comma-separated list if \(N_{INF}>1\) | - |
inflow_varnum |
- | Number of variables being listed in the columns of inflow_fl (comma-separated list) | [integer] | Can include GLM variables including flow, temp and salt, plus WQ variables. | 0 |
inflow_vars |
- | Names of the variables in the inflow_fl | [string] | Provide variables in the order as they are in the file. | |
time_fmt |
- | Time format of the 1st column in the inflow_fl | [string] | 'YYYY-MM-DD hh:mm:ss' |
EXAMPLE:
&inflow
num_inflows = 6
names_of_strms = 'Inflow1','Inflow2','Inflow3','Inflow4','Inflow5','Inflow6'
subm_flag = .false.,.false.,.false.,.true.,.false.,.false.
strm_hf_angle = 85.0, 85.0, 85.0, 85.0, 85.0, 85.0
strmbd_slope = 4., 4., 4., 4., 4., 4.
strmbd_drag = 0.0160, 0.0160, 0.0160, 0.0160, 0.0160, 0.0160,
inflow_factor = 1.0,1.0,1.0,1.0,1.0,1.0
inflow_fl = 'bcs/inflow_1.csv',
'bcs/inflow_2.csv',
'bcs/inflow_3.csv',
'bcs/inflow_4.csv',
'bcs/inflow_5.csv',
'bcs/inflow_6.csv'
inflow_varnum = 3
inflow_vars = 'FLOW','TEMP','SALT'
coef_inf_entrain = 0.
!time_fmt = 'YYYY-MM-DD hh:mm:ss'
/
Variable Name | Symbol | Description | Type | Options | Default |
---|---|---|---|---|---|
num_outlet |
$$N_{OUTF}$$ | Number of outflows (including withdrawals, outlets or offtakes) to be included in this simulation | [integer] | - | 0 |
outflow_fl |
- | Filename of the file containing the outflow time-series, \(Q_{outf_x}\) | [string] | - | - |
time_fmt |
- | Time format of the 1st column in the outflow_fl | [string] | 'YYYY-MM-DD hh:mm:ss' | |
outflow_factor |
$$f_{outf}$$ | Scaling factor used as a multiplier for outflows, such that: \(Q_{outf}=f_{outf}Q_{outf_x}\) | [real] | comma-separated list if \(N_{OUTF}>1\) | 1 |
outflow_thick_limit |
$$\delta_{outf_{max}}$$ | Maximum vertical limit of withdrawal entrainment | [real] | comma-separated list if \(N_{OUTF}>1\) | - |
single_layer_draw |
$$\Theta_{outf_{single}}$$ | Switch to only limit withdrawal entrainment and force outflows from layer at the outlet elevation height | [boolean] | .true. OR .false. comma-separated list if \(N_{OUTF}>1\) |
.false. |
flt_off_sw |
$$\Theta_{flt_O}$$ | Switch to indicate if the outflows are floating offtakes (taking water from near the surface) | [boolean] | .true. OR .false. comma-separated list if \(N_{OUTF}>1\) |
- |
outlet_type |
$$\Theta_{outf}$$ | Switch to configure approach of each withdrawal (comma-separated list if \(N_{OUTF}>1\)) | [integer] | $$ \left\{ \begin{array}{ll} \textrm{Fixed outlet height } & \Theta_{outf}=1 \\ \textrm{Floating offtake} & \Theta_{outf}=2 \\ \textrm{Adaptive offtake, low oxy avoidance } & \Theta_{outf}=3 \\ \textrm{Adaptive offtake, isotherm following } & \Theta_{outf}=4 \\ \textrm{Adaptive offtake, temp time-series } & \Theta_{outf}=5 \\ \end{array} \right.$$ | 1 |
Normal Withdrawals | |||||
outl_elvs |
$$h_{outf_O}$$ | Outlet elevations (\(m\)) | [real] | comma-separated list if \(N_{OUTF}>1\) | 0 |
bsn_len_outl |
$$L_{outf_O}$$ | Basin length at the outlet height(s) (\(m\)) | [real] | comma-separated list if \(N_{OUTF}>1\) | |
bsn_wid_outl |
$$W_{outf_O}$$ | Basin width at the outlet heights (\(m\)) | [real] | comma-separated list if \(N_{OUTF}>1\) | |
Adaptive withdrawals | |||||
crit_O2 |
- | TBC | [integer] | - | - |
crit_O2_dep |
- | [integer] | - | - | |
crit_O2_days |
- | [integer] | - | - | |
outlet_crit |
- | [integer] | - | - | |
O2name |
- | [string] | - | - | |
O2idx |
- | [string] | - | - | target_temp |
- | [real] | - | - | min_lake_temp |
- | [real] | - | - | fac_range_upper |
- | [real] | - | - | fac_range_lower |
- | [real] | - | - | mix_withdraw |
- | [boolean] | - | - | coupl_oxy_sw |
- | [boolean] | - | - |
withdrTemp_fl |
- | Filename of the file containing the temperature time-series the adaptive withdrawal is targeting | [string] | Required if outlet_type (\(\Theta_{outf}\)) \(=5\) | - |
Seepage | |||||
seepage |
$$\Theta_{seep}$$ | Switch to enable the seepage of water from the lake bottom | [boolean] | .true. OR .false. | .false. |
seepage_rate |
\(G\) or \(K_{seep}\) | Seepage rate of water, or, soil hydraulic conductivity (\(m\ day^{-1}\)) | [real] | -ve seepage_rate is taken as \(G\); +ve seepage_rate is taken as \(K_{seep}\) |
0 |
Weir overflow | |||||
crest_width |
$$W_{weir}$$ | Width of weir (at crest height) where lake overflows (\(m\)) | [real] | - | 0 |
crest_factor |
$$C_{D_{weir}}$$ | Drag coefficient associated with the weir crest, used to compute the overflow discharge rate, \(Q_{weir}\) | [real] | Applies only when the crest elevation is configured to be less than the maximum elevation of the domain (\(H_{crest} < H_{max}\)) |
0 |
EXAMPLE:
&outflow
num_outlet = 1
!flt_off_sw = .false.
outlet_type = 1
outl_elvs = -215.5
bsn_len_outl = 18000
bsn_wid_outl = 11000
outflow_fl = 'bcs/outflow.csv'
outflow_factor = 1.0
!seepage = .true.
!seepage_rate = 0.01
/
GLM control file -> (English version, please rename to glm.nml for use).
GLM control file -> (Español version, please rename to glm.nml for use).