This file contains a single namelist called JULES_INITIAL that is used to set up the initial state of prognostic variables.
The values of all prognostic variables must be set at the start of a run. This initial state, or initial condition, can be read from a “dump” from an earlier run of the model, or may be read from a different file. Another option is to prescribe a simple or idealised initial state by giving constant values for the prognostic variables directly in the namelist. It is also possible to set some fields using values from a file (e.g. a dump) but to set others to constants given in the namelist.
Type: | logical |
---|---|
Default: | F |
Indicates whether the given file is a dump from a previous run of JULES.
Type: | logical |
---|---|
Default: | T |
Switch controlling simplified initialisation of snow variables.
Only the total mass of snow on each tile (see snow_tile in List of initial condition variables) is required to be input, and all related variables will be calculated from this or simple assumptions made. All the snow is assumed to be on the ground (not in the canopy).
Note
If dump_file = FALSE, then total_snow must be TRUE to ensure that the initialisation of snow variables is consistent.
All input to the model must be on the same grid (see Input files for JULES), and initial conditions are no different. Even when the variable is only required for land points, values must be provided for the full input grid. Variables read as initial conditions must have no time dimension.
The variables it is possible to specify as initial conditions can be grouped into ‘types’ depending on the requirements for their levels (z) dimension. For NetCDF files, the dimension names are those specified in the JULES_INPUT_GRID namelist. For variables with no type specified, no levels (z) dimension should be used.
The levels (z) dimension requirements for each initial condition ‘type’ are given in the following table.
Type | Levels (z) dimension name | Levels (z) dimension |
---|---|---|
soil | soil_dim_name | Number of soil layers (see sm_levels). |
pft | pft_dim_name | Number of plant functional types (see npft). |
type | type_dim_name | Number of surface types (npft + nnvg). |
tile | tile_dim_name | Number of tiles at each gridbox (1 if l_aggregate = TRUE, ntype otherwise). |
sc_pool | scpool_dim_name | Number of soil carbon pools (1 if l_triffid = FALSE, 4 otherwise). |
The required variables for a particular configuration, along with their ‘type’ as specified above, are given in the following table.
Name | Description | ‘Type’ |
---|---|---|
Always required | ||
canopy | Amount of intercepted water that is held on each tile (kg m-2). | tile |
cs | Soil carbon (kg m-2). If TRIFFID is not being used (l_triffid = FALSE), this is the total soil carbon. If TRIFFID is being used, this is the carbon in each of the 4 pools of the RothC model. |
sc_pool |
gs | Stomatal conductance for water vapour (m s-1). This is used to start the iterative calculation of gs for the first timestep only. |
None |
snow_tile | If can_model >= 4, this is the total snow on the tile (since there is a single store which doesn’t distinguish between snow on canopy and under canopy). If can_model = 4 (and then only at tiles where cansnowpft = TRUE), snow_tile is interpreted as the snow on the canopy, except as overridden by total_snow = TRUE. If total_snow = TRUE, snow_tile is used to hold the total snow on the tile (and is subsequently put onto the ground at tiles that distinguish between ground and canopy stores). Further details of snow initialisation are given below. |
tile |
sthuf | Soil wetness for each soil layer. This is the mass of soil water (liquid and frozen), expressed as a fraction of the water content at saturation. | soil |
t_soil | Temperature of each soil layer (K). | soil |
tstar_tile | Temperature of each tile (K). This is the surface or skin temperature. | tile |
Required if l_phenol = TRUE | ||
lai | Leaf area index of each PFT. | pft |
Required if l_triffid = TRUE | ||
canht | Height (m) of each PFT. | pft |
Required if l_veg_compete = TRUE | ||
frac | The fraction of land area of each gridbox that is covered by each surface type. | type |
Required if l_top = TRUE | ||
sthzw | Soil wetness in the deep (“water table”) layer beneath the standard soil column. This is the mass of soil water (liquid and frozen), expressed as a fraction of the water content at saturation. |
None |
zw | Depth from the surface to the water table (m). | None |
Required if l_snow_albedo = TRUE | ||
rgrain | Snow surface grain size (μm) on each tile. | None |
All variables from here onwards are only required if total_snow = FALSE. | ||
rho_snow | Bulk density of lying snow (kg m-3). If total_snow = TRUE then this is set as follows:
|
N/A - variable is either derived from snow_tile, set from dump or set to a constant value |
snow_depth | Depth of snow (kg m). If total_snow = TRUE, this is calculated from mass and density of snow. |
N/A - variable is either derived from snow_tile, set from dump or set to a constant value |
Required if total_snow = FALSE and can_model = 4 | ||
snow_grnd | Amount of snow on the ground, beneath the canopy (kg m-2), on each tile. If total_snow = TRUE this is set to snow_tile at tiles where can_model = 4 is active, and to zero at all other tiles. |
N/A - variable is either derived from snow_tile, set from dump or set to a constant value |
Required if total_snow = FALSE and nsmax > 0 | ||
nsnow | The number of snow layers on each tile. If total_snow = TRUE this is calculated from the snow depth. |
N/A - variable is either derived from snow_tile, set from dump or set to a constant value |
snow_ds | Depth of snow in each layer (kg m). If total_snow = TRUE this is calculated from the snow depth and the number of snow layers. |
N/A - variable is either derived from snow_tile, set from dump or set to a constant value |
snow_ice | Mass of frozen water in each snow layer (kg m-2). If total_snow = TRUE all snow is assumed to be ice. |
N/A - variable is either derived from snow_tile, set from dump or set to a constant value |
snow_liq | Mass of liquid water in each snow layer (kg m-2). If total_snow = TRUE this is set to zero. |
N/A - variable is either derived from snow_tile, set from dump or set to a constant value |
tsnow | Temperature of each snow layer (K). If total_snow = TRUE this is set to the temperature of the top soil layer. |
N/A - variable is either derived from snow_tile, set from dump or set to a constant value |
Required if total_snow = FALSE, nsmax > 0 and l_snow_albedo = TRUE | ||
rgrainl | Snow grain size (μm) on each tile in each snow layer. If total_snow = TRUE this is set to rgrain. |
N/A - variable is either derived from snow_tile, from dump or set to a constant value |
This assumes that l_phenol = FALSE, l_triffid = FALSE and nsmax = 0.
&JULES_INITIAL
file = "initial_conditions.dat",
nvars = 8,
var = 'canopy' 'tstar_tile' 'cs' 'gs' 'rgrain' 'snow_tile' 'sthuf' 't_soil',
use_file = F F F F F F T T ,
const_val = 0.0 276.78 12.1 0.0 50.0 0.0
/
Or using the alternative list syntax (see Introduction to Fortran namelists):
&JULES_INITIAL
file = "initial_conditions.dat",
nvars = 8,
var(1) = 'canopy', use_file(1) = F, const_val(1) = 0.0 ,
var(2) = 'tstar_tile', use_file(2) = F, const_val(2) = 276.78,
var(3) = 'cs', use_file(3) = F, const_val(3) = 12.1,
var(4) = 'gs', use_file(4) = F, const_val(4) = 0.0,
var(5) = 'rgrain', use_file(5) = F, const_val(5) = 50.0,
var(6) = 'snow_tile', use_file(6) = F, const_val(6) = 0.0,
var(7) = 'sthuf', use_file(7) = T,
var(8) = 't_soil', use_file(8) = T,
/
This shows how a mixture of constant values and initial state from a file can be used. In this case, the first 6 variables will be set to constant values everywhere (use_file = FALSE) with the last 2 read from the specified file (use_file = TRUE).
file specifies an ASCII file to read the variables for which use_file = TRUE from.
Since the variables are arranged such that all those with use_file = FALSE are first, we need only supply constant values for those variables that require them.
The contents of initial_conditions.dat should look similar to:
# sthuf(1:4) t_soil(1:4)
0.749 0.743 0.754 0.759 276.78 277.46 278.99 282.48
The data for each soil layer is given in consecutive columns. A comment line is used to indicate which columns comprise which variable (see Input files for JULES for more details).
Specifying initial state for gridded data using NetCDF files is similar, except that:
In this example, we use an existing dump file (from a previous run) to set the initial values of all required variables.
&JULES_INITIAL
total_snow = F,
dump_file = T,
file = "jules_dump.nc"
/
total_snow = FALSE indicates that we want to initialise all the snow variables directly from the dump.
dump_file = TRUE indicates that the given file should be interpreted as a JULES dump file.
file specifies the dump file to read (in this case a NetCDF dump file).
Since it is not specified, nvars takes its default value of 0, which indicates that JULES should attempt to read all required variables from the given dump file.