This file contains a single namelist called JULES_DRIVE that indicates how meteorological driving data is input.
Type: | logical |
---|---|
Default: | F |
Switch for IMOGEN.
Note
If IMOGEN is enabled, only z1_tq_vary, z1_tq_in, z1_uv_in, z1_tq_file and z1_tq_var_name are used from this namelist.
Type: | real |
---|---|
Default: | 274.0 |
If total precipitation is given as a forcing variable, then t_for_snow is the near-surface air temperature (K) at or below which the precipitation is assumed to be snowfall. At higher temperatures, all the precipitation is assumed to be liquid.
Type: | real |
---|---|
Default: | 373.15 |
If total preciption or total rainfall are given, then t_for_con_rain is the near-surface air temperature (K) at or above which rainfall is assumed to be convective in origin. At lower temperatures, all the rainfall is assumed to be large-scale in origin.
Also see confrac.
t_for_con_rain is not used if l_point_data = TRUE, since then there is no convective precipitation.
All snow is assumed to be large-scale in origin.
Type: | real |
---|---|
Default: | 0.0 |
A constant value used to calculate diffuse radiation from the total downward shortwave radiation.
Only used if diffuse radiation is not given as a forcing variable (see List of JULES forcing variables).
Members used to control the daily disaggregator
HCTN96 refer to Hadley Centre technical note 96, available from the Met Office Library.
Type: | logical |
---|---|
Default: | F |
Switch controlling whether the disaggregator is used to convert daily data driving data to driving data at the model timestep. See HCTN96 for a description of the disaggregation methods used.
Disaggregator is used.
Warning
The disaggregator requires:
Type: | logical |
---|---|
Default: | F |
Switch controlling sub-daily disaggregation of humidity.
Only used if l_daily_disagg = TRUE.
Type: | real |
---|---|
Default: | 21600.0 |
Duration of a convective rainfall event in seconds for use in the disaggregator. See HCTN96 section 2.4.
Only used if l_daily_disagg = TRUE.
Type: | real |
---|---|
Default: | 3600.0 |
Duration of a large-scale rainfall event in seconds for use in the disaggregator. See HCTN96 section 2.4.
Only used if l_daily_disagg = TRUE.
Type: | real |
---|---|
Default: | 3600.0 |
Duration of a convective snowfall event in seconds for use in the disaggregator. See HCTN96 section 2.4.
Only used if l_daily_disagg = TRUE.
Type: | real |
---|---|
Default: | 3600.0 |
Duration of a large-scale snowfall event in seconds for use in the disaggregator. See HCTN96 section 2.4.
Only used if l_daily_disagg = TRUE.
Type: | integer |
---|---|
Permitted: | 1, 2, 3 or 4 |
Default: | 2 |
Switch controlling the disaggregation method for precipitation. See HCTN96 section 2.4.
Only used if l_daily_disagg = TRUE.
Members used to specify perturbations to the driving data
Type: | logical |
---|---|
Default: | F |
Apply perturbation to driving data.
Type: | real |
---|---|
Default: | 0.0 |
Absolute perturbation amount to add to temperature. Can be positive or negative. Only used if l_perturb_driving = TRUE.
Type: | real |
---|---|
Permitted: | >= 0.0 |
Default: | 1.0 |
Relative perturbation for precipitation variables (a multiplicative factor). Only used if l_perturb_driving = TRUE.
Members used to specify z1_tq and z1_uv
Type: | real |
---|---|
Permitted: | > 0.0 |
Default: | 10.0 |
Constant value for the height (m) at which the wind data are valid for every point. This height is relative to the zero-plane, not the ground.
Type: | logical |
---|---|
Default: | F |
Switch to indicate whether z1_tq (the height (m) at which the temperature and humidity data are valid) should be constant for all points or spatially varying. The height is relative to the zero-plane, not the ground.
Type: | real |
---|---|
Permitted: | > 0.0 |
Default: | 10.0 |
Constant value for z1_tq to be used for every point.
Only required if z1_tq_vary = F.
Type: | character |
---|---|
Default: | None |
File to read spatially varying z1_tq from.
Only required if z1_tq_vary = T.
Type: | character |
---|---|
Default: | ‘z1_tq_in’ |
The name of the variable in z1_tq_file containing the data for z1_tq.
The variable should have no levels dimensions and no time dimension.
Note
This is not used for ASCII files.
However, since ASCII files can only be used for single-point runs, it is recommended to set z1_tq_vary = F and use z1_tq_in anyway.
Members used to specify the start, end and period of the data
Type: | character |
---|---|
Default: | None |
The times of the start of the first timestep of data and the end of the last timestep of data.
Each run of JULES (configured in timesteps.nml) can use part or all of the specified data. However, there must be data for all times between run start and run end (determined by main_run_start, main_run_end, spinup_start and spinup_end).
The times must be given in the format:
"yyyy-mm-dd hh:mm:ss"
Type: | integer |
---|---|
Permitted: | -2, -1 or > 0 |
Default: | None |
The period, in seconds, of the data.
Special cases:
Members used to specify the files containing the data
Type: | logical |
---|---|
Default: | F |
Switch controlling how data file names are determined for a given time.
Type: | integer |
---|---|
Permitted: | >= 0 |
Default: | 0 |
Only used if read_list = TRUE.
The number of data files to read name and time of first data for.
Type: | character |
---|---|
Default: | None |
If read_list = TRUE, this is the file to read the list of data file names and times from. Each line should be of the form:
'/data/file', 'yyyy-mm-dd hh:mm:ss'
In this case data file names may contain variable name templating only, with the proviso that either no file names use variable name templating or all file names do. The files must appear in chronological order.
If read_list = FALSE, this is either the single data file (if no templating is used) or a template for data file names. Both time and variable name templating may be used.
Members used to specify the provided variables
Type: | integer |
---|---|
Permitted: | >= 0 |
Default: | 0 |
The number of forcing variables that will be provided.
See List of JULES forcing variables for the available forcing variables and their possible configurations.
Type: | character(nvars) |
---|---|
Default: | None |
List of forcing variable names as recognised by JULES (see List of JULES forcing variables). Names are case sensitive.
Note
For ASCII files, variable names must be in the order they appear in the file.
Type: | character(nvars) |
---|---|
Default: | ‘’ (empty string) |
For each JULES variable specified in var, this is the name of the variable in the file(s) containing the data.
If the empty string (the default) is given for any variable, then the corresponding value from var is used instead.
Note
For ASCII files, this is not used - only the order in the file matters, as described above.
Type: | character(nvars) |
---|---|
Default: | None |
For each JULES variable specified in var, this is the string to substitute into the file name(s) in place of the variable name substitution string.
If the file name(s) do not use variable name templating, this is not used.
Type: | character(nvars) |
---|---|
Default: | None |
For each JULES variable specified in var, this indicates how the variable is to be interpolated in time (see Temporal interpolation).
All of the available forcing variables listed in the sections below, are expected to have no levels dimensions, but must have a time dimension called time_dim_name.
Name | Description |
---|---|
pstar | Air pressure (Pa). |
q | Specific humidity (kg kg-1). |
t | Air temperature (K). |
The radiation forcing variables can be given in one of four ways:
If any of the four combinations of radiation variables listed above are provided, then these are used to drive JULES. There is no default option. JULES will give a fatal error and stop if there are too many, too few or invalid forcing variables provided in the variable list.
Warning
If l_daily_disagg = TRUE, then the first method must be used.
diff_rad can be used with any of the four methods. If it is given, diffuse radiation is input from file. If it is not given, diff_frac_const is used instead to partition the downward shortwave radiation into diffuse and direct.
Name | Description |
---|---|
rad_net | Net (all wavelength) downward radiation (W m-2). |
lw_net | Net downward longwave radiation (W m-2). |
sw_net | Net downward shortwave radiation (W m-2). |
lw_down | Downward longwave radiation (W m-2). |
sw_down | Downward shortwave radiation (W m-2). |
diff_rad | Diffuse radiation (W m-2). |
The precipitation variables can be specified in one of four ways:
If precip is given, the first method is used. If precip is not given but tot_rain is, the second method is used. If neither precip nor tot_rain are given but tot_snow is, the third method is used. The fourth method is used in all other cases.
The concept of convective and large-scale (or dynamical) components of precipitation comes from atmospheric models, in which the precipitation from small-scale (convective) and large-scale motions is often calculated separately. If JULES is to be driven by the output from such a model, the driving data might include these components.
Warning
If l_daily_disagg = TRUE, then interp for each precipitation variable should be f or nf.
Name | Description |
---|---|
precip | Precipitation rate (kg m-2 s-1). |
tot_rain | Rainfall rate (kg m-2 s-1). |
tot_snow | Snowfall rate (kg m-2 s-1). |
ls_rain | Large-scale rainfall rate (kg m-2 s-1). |
con_rain | Convective rainfall rate (kg m-2 s-1). |
ls_snow | Large-scale snowfall rate (kg m-2 s-1). |
con_snow | Convective snowfall rate (kg m-2 s-1). |
The wind variables can be given in one of two ways:
If wind is given, then the first method is used. The second method is used in all other cases.
Name | Description |
---|---|
wind | Total wind speed (m s-1). |
u | Zonal component of the wind (m s-1). |
v | Meridional component of the wind (m s-1). |
If l_daily_disagg = TRUE, then the diurnal temperature range is also required:
Name | Description |
---|---|
dt_range | Diurnal temperature range (K). |
&JULES_DRIVE
diff_frac_const = 0.1,
data_start = '1997-01-01 00:00:00',
data_end = '1998-01-01 00:00:00',
data_period = 1800,
file = "met_data.dat",
nvars = 8,
var = 'sw_down' 'lw_down' 'tot_rain' 'tot_snow' 't' 'wind' 'pstar' 'q',
interp = 'nf' 'nf' 'nf' 'nf' 'nf' 'nf' 'nf' 'nf'
/
data_start, data_end and data_period specify that the driving dataset provides one year (1997) of half-hourly data.
read_list is not given, so takes its default value of FALSE. This means that file is used as either the single data file or a file name template. In this case there is no templating, so JULES treats the given file as the single data file for all data times.
sw_down and lw_down are given, so the first radiation scheme (above) is used.
precip is not given but tot_rain is, so the second precipitation scheme (above) is used.
wind is given, so total wind speed is used (first scheme above).
diff_rad is not given, so the diffuse radiation is calculated as 0.1 (the value of diff_frac_const) times the total shortwave radiation.
The driving data file (met_data.dat) should look similar to:
# solar long rain snow temp wind press humid
3.3 187.8 0.0 0.0 259.10 3.610 102400.5 1.351E-03
89.5 185.8 0.0 0.0 259.45 3.140 102401.9 1.357E-03
142.3 186.4 0.0 0.0 259.85 2.890 102401.0 1.369E-03
# ----- data for later times ----
&JULES_DRIVE
data_start = '1982-07-01 03:00:00',
data_end = '1996-01-01 00:00:00',
data_period = 10800,
read_list = T,
nfiles = 162,
file = "./file_list.txt",
nvars = 8,
var = 'sw_down' 'lw_down' 'tot_rain' 'tot_snow' 't' 'wind' 'pstar' 'q',
var_name = 'SWdown' 'LWdown' 'Rainf' 'Snowf' 'Tair' 'Wind' 'PSurf' 'Qair',
tpl_name = 'SWdown' 'LWdown' 'Rainf' 'Snowf' 'Tair' 'Wind' 'PSurf' 'Qair',
interp = 'nb' 'nb' 'nb' 'nb' 'i' 'i' 'i' 'i'
/
In this example, the driving dataset provides 13.5 years of driving data on a 3 hourly timestep.
read_list = TRUE indicates that the names and start times of the data files should be read from file_list.txt. The first few lines of this file are:
'met_data/%vv_data/%vv198207.nc', '1982-07-01 03:00:00'
'met_data/%vv_data/%vv198208.nc', '1982-08-01 03:00:00'
'met_data/%vv_data/%vv198209.nc', '1982-09-01 03:00:00'
# ------ rest of file not shown -----
The presence of the variable name templating string in each file name shows that we are using variable name templating. The dates show that we do in fact have monthly files, but we cannot use time templating for these files because the start time of 03H does not conform to the requirements.
Furthermore, files for each variable are stored in separate directories. The values from tpl_name will be substituted into the file name templates in place of the substitution string (%vv). For example, pressure is held in files with names like met_data/PSurf_data/PSurf198207.nc, and temperature in files like met_data/Tair_data/Tair198207.nc.
The driving variable setup is as the previous example, except that diff_frac_const takes its default value of 0.0.