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.
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 number and size of the levels dimensions they are required to have. For NetCDF files, the dimension names are those specified in the JULES_INPUT_GRID namelist. For variables with no type specified, no levels dimensions should be used.
The required levels dimensions for each initial condition ‘type’ are given in the following table:
Type | Number of levels dimensions | Levels dimension name(s) | Levels dimension size(s) |
---|---|---|---|
soil | 1 | soil_dim_name | sm_levels |
pft | 1 | pft_dim_name | npft |
cpft | 1 | cpft_dim_name | ncpft |
type | 1 | type_dim_name | ntype (npft + nnvg) |
tile | 1 | tile_dim_name | ntiles (1 if l_aggregate = TRUE, ntype otherwise) |
sc_pool | 1 | scpool_dim_name | Number of soil carbon pools (1 if l_triffid = FALSE, 4 otherwise) |
bedrock | 1 | bedrock_dim_name |
Only applicable if l_bedrock = TRUE |
snow | 2 | tile_dim_name, snow_dim_name | ntiles (see above), nsmax Only applicable if nsmax > 0 |
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 when 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_irrig_dmd = TRUE | ||
sthu_irr | Unfrozen soil wetness of each layer as a fraction of saturation in irrigated fraction. | soil |
Required if ncpft > 0 | ||
cropdvi | Development index for each crop pft. | cpft |
croprootc | Root carbon pool for each crop pft (kgC m-2). | cpft |
cropharvc | Carbon in ‘harvest parts’ pool for each crop pft (kgC m-2). | cpft |
cropreservec | Carbon in stem reserves pool for each crop pft (kgC m-2). | cpft |
croplai | Leaf area index of each crop pft. | cpft |
cropcanht | Height (m) of each crop pft. | cpft |
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_bedrock = TRUE | ||
tsoil_deep | Temperature of each bedrock layer (K) | bedrock |
Required if l_snow_albedo = TRUE | ||
rgrain | Snow surface grain size (μm) on each tile. | None |
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:
|
tile |
snow_depth | Depth of snow (kg m). If total_snow = TRUE, this is calculated from mass and density of snow. |
tile |
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. |
tile |
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. |
tile |
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. |
snow |
snow_ice | Mass of frozen water in each snow layer (kg m-2). If total_snow = TRUE all snow is assumed to be ice. |
snow |
snow_liq | Mass of liquid water in each snow layer (kg m-2). If total_snow = TRUE this is set to zero. |
snow |
tsnow | Temperature of each snow layer (K). If total_snow = TRUE this is set to the temperature of the top soil layer. |
snow |
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. |
snow |
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.