6.21. model_grid.nml
¶
This file sets up the grid configuration for the run. It contains seven namelists - JULES_INPUT_GRID
, JULES_LATLON
, JULES_LAND_FRAC
, JULES_MODEL_GRID
, JULES_NLSIZES
, JULES_SURF_HGT
and JULES_Z_LAND
Each run of JULES involves two grids: the input grid and the model grid. The input grid is the grid on which all input data are held. The model grid is the set of points on which the model is run. The model grid is the grid of points that will be processed by JULES, and is a subset of the input grid.
As discussed in General principles, the input grid consists of three pieces of information:
Whether the grid is 1D or 2D.
The size of each dimension.
The name of each dimension in the input file(s).
The latitude, longitude and land fraction of each point are then read in on the full input grid as specified by the namelists. A subset of the input grid to use as the model grid can then be specified in various ways described below (e.g. land points only, all points within certain latitude/longitude bounds).
In most cases, the model grid will be represented internally as a vector of points, even when the input grid is 2D. Numerically, this makes no difference. The only time that the model grid will be 2D is when the input grid is 2D, force_1d_grid
= F and the model grid is a contiguous rectangular subsection of the input grid.
6.21.1. JULES_INPUT_GRID
namelist members¶
Warning
The dimension names specified in this namelist will be used for all input files.
- JULES_INPUT_GRID::grid_is_1d¶
- Type
logical
- Default
F
Indicates if the input grid is 1D or 2D.
- TRUE
Variables have one grid dimension in the input file(s) - a points dimensions (e.g. a vector of land points with grid dimension “land”).
- FALSE
Variables have two grid dimensions in the input file(s) - an x and a y dimension.
Only used when grid_is_1d
= TRUE
- JULES_INPUT_GRID::grid_dim_name¶
- Type
character
- Default
“land”
The name of the single grid dimension.
Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::npoints¶
- Type
integer
- Permitted
>= 1
- Default
0
The size of the single grid dimension.
Only used when grid_is_1d
= FALSE
- JULES_INPUT_GRID::x_dim_name¶
- Type
character
- Default
“x”
The name of the x dimension (it may, but does not have to, coincide with
x_dim_name
).Note
For ASCII files, this can be anything. For NetCDF files, it should be the name of the dimension in the input file(s).
- JULES_INPUT_GRID::y_dim_name¶
- Type
character
- Default
“y”
The name of the y dimension (it may, but does not have to, coincide with
y_dim_name
).Note
For ASCII files, this can be anything. For NetCDF files, it should be the name of the dimension in the input file(s).
- JULES_INPUT_GRID::nx¶
- Type
integer
- Permitted
>= 1
- Default
0
The size of the x dimension.
- JULES_INPUT_GRID::ny¶
- Type
integer
- Permitted
>= 1
- Default
0
The size of the y dimension.
- JULES_INPUT_GRID::time_dim_name¶
- Type
character
- Default
“time”
The name of the time dimension in any input files containing time varying data.
Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::pft_dim_name¶
- Type
character
- Default
“pft”
The dimension name used when variables have an additional dimension of size
npft
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::cpft_dim_name¶
- Type
character
- Default
“cpft”
The dimension name used when variables have an additional dimension of size
ncpft
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::nvg_dim_name¶
- Type
character
- Default
“nvg”
The dimension name used when variables have an additional dimension of size
nnvg
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::type_dim_name¶
- Type
character
- Default
“type”
The dimension name used when variables have an additional dimension of size
ntype
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::tile_dim_name¶
- Type
character
- Default
“tile”
The dimension name used when variables have an additional dimension of size
nsurft
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::soil_dim_name¶
- Type
character
- Default
“soil”
The dimension name used when variables have an additional dimension of size
sm_levels
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::snow_dim_name¶
- Type
character
- Default
“snow”
The dimension name used when variables have an additional dimension of size
nsmax
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::sclayer_dim_name¶
- Type
character
- Default
“sclayer”
The dimension name used for the soil biogeochemistry when layered soil is used i.e.
l_layeredc
= TRUE. Whenl_layeredc
= TRUE the soil biogeochemistry has the same number of layers as the soil hydrology (sm_levels
). Whenl_layeredc
= FALSE the soil biogeochemistry represents a single bulk layer. Despite the similar name, this parameter is unrelated todim_cslayer
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::scpool_dim_name¶
- Type
character
- Default
“scpool”
The dimension name used when variables have an additional dimension of size
dim_cs1
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::bedrock_dim_name¶
- Type
character
- Default
“bedrock”
The dimension name used when variables have an additional dimension of size
ns_deep
.Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::tracer_dim_name¶
- Type
character
- Default
“tracer”
The dimension name used when variables have an additional dimension of size
ndry_dep_species
(e.g. chemical tracers in the atmosphere).Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
- JULES_INPUT_GRID::bl_level_dim_name¶
- Type
character
- Default
“bllevel”
The dimension name used when variables have an additional dimension of size
bl_levels
(e.g. variables on atmospheric boundary layer levels).Note
For ASCII files, this can be anything. For NetCDF files, it should the name of the dimension in input file(s).
6.21.2. JULES_LATLON
namelist members¶
Members used to determine how gridpoint location variables are set
- JULES_LATLON::read_from_dump¶
- Type
logical
- Default
F
- TRUE
Populate variables associated with this namelist from the dump file. All other namelist members are ignored.
- FALSE
Use the other namelist members to determine how to populate variables.
- JULES_LATLON::l_coord_latlon¶
- Type
logical
- Default
F
- TRUE
The coordinate system used for the model grid is latitude and longitude.
- FALSE
The model grid is defined by projection coordinates other than latitude and longitude (e.g. northings and eastings, or a rotated grid).
- JULES_LATLON::nvars¶
- Type
integer
- Permitted
>= 2
- Default
0
The number of location variables that will be provided (see List of grid location properties).
- JULES_LATLON::var¶
- Type
character(nvars)
- Default
None
List of location variable names as recognised by JULES (see List of grid location properties). Names are case sensitive.
Note
For ASCII files, variable names must be in the order they appear in the file.
- JULES_LATLON::use_file¶
- Type
logical(nvars)
- Default
T
For each JULES variable specified in
var
, this indicates if it should be read from the specified file or whether a constant value is to be used.- TRUE
The variable will be read from the file.
- FALSE
The variable will be set to a constant value everywhere using
const_val
below.
- JULES_LATLON::var_name¶
- Type
character(nvars)
- Default
‘’ (empty string)
For each JULES variable specified in
var
whereuse_file
= TRUE, this is the name of the variable in the file containing the data.If the empty string (the default) is given for any variable, then the corresponding value from
var
is used instead.This is not used for variables where
use_file
= FALSE, but a placeholder must still be given in that case.Note
For ASCII files, this is not used - only the order in the file matters, as described above.
- JULES_LATLON::tpl_name¶
- Type
character(nvars)
- Default
None
For each JULES variable specified in
var
, this is the string to substitute into the file name in place of the variable name substitution string.If the file name does not use variable name templating, this is not used.
- JULES_LATLON::const_val¶
- Type
real(nvars)
- Default
None
For each JULES variable specified in
var
whereuse_file
= FALSE, this is a constant value that the variable will be set to at every point.This is not used for variables where
use_file
= TRUE, but a placeholder must still be given in that case.
- JULES_LATLON::file¶
- Type
character
- Default
None
The file to read ancillary properties from.
If
use_file
is FALSE for every variable, this will not be used.This file name can use variable name templating.
6.21.2.1. List of grid location properties¶
The following table summarises ancillary fields that give the location and related characteristics of each point on the grid, specified from an ancillary file if use_file
= TRUE.
Name |
Description |
---|---|
|
Latitude of each point. Always required. |
|
Longitude of each point. Always required. Values in the range -180 to 360 are allowed. |
|
Values of the projection coordinate in the x direction.
This is only required if |
|
Values of the projection coordinate in the y direction.
This is only required if |
|
The area of each gridbox (m:sup`2`).
This is requred if irrigation is being modelled with
|
Examples of how to specify the model domain using through this namelist are provided at the end of this section.
6.21.3. JULES_LAND_FRAC
namelist members¶
Land fraction is the fraction of each gridbox that is land. Currently, JULES considers any gridbox with land fraction > 0 to be 100% land, and all others to be 100% sea (or sea-ice). Land fraction data can be used to select only land points from the full input grid (see below).
Warning
When the input grid consists of a single location (1D and npoints
= 1 or 2D and nx
= ny
= 1), that single location is assumed to be 100% land.
IMOGEN also currently assumes 100% land for each land grid cell.
For any input grid with more than a single location, the following are used:
- JULES_LAND_FRAC::file¶
- Type
character
- Default
None
The name of the file to read land fraction data from.
- JULES_LAND_FRAC::land_frac_name¶
- Type
character
- Default
‘land_fraction’
The name of the variable containing the land fraction data.
In the file, the variable must have no levels dimensions and no time dimension.
6.21.4. JULES_MODEL_GRID
namelist members¶
Members of this namelist are used to select the points to be modelled from the input grid. This can be done in various ways (see the Examples of grid setups).
- JULES_MODEL_GRID::land_only¶
- Type
logical
- Default
T
- TRUE
Model land points only (from the points that are selected with other options).
- FALSE
Model all selected points.
If
use_subgrid
= FALSE (see below), the land points will be extracted from the full input grid.If
use_subgrid
= TRUE, then the subgrid extraction takes place first, and the land points will be extracted from the specified subgrid.
- JULES_MODEL_GRID::force_1d_grid¶
- Type
logical
- Default
F
- TRUE
Force the model grid to be 1D, even if it would otherwise have been 2D.
- FALSE
The model grid takes its default shape.
- JULES_MODEL_GRID::use_subgrid¶
- Type
logical
- Default
F
- TRUE
The model grid is a subset of the full input grid, specified using some valid combination of the options below.
- FALSE
The model grid is the full input grid.
Only used if use_subgrid
= TRUE
- JULES_MODEL_GRID::l_bounds¶
- Type
logical
- Default
None
- TRUE
Subset of points to model will be selected using bounds for the coordinates variables.
- FALSE
Subset of points to model will be selected using a list of coordinate pairs for each point.
If
l_coord_latlon
= TRUE, the coordinates used here are latitude and longitude.If
l_coord_latlon
= FALSE, the coordinates used here are the values stored in the variables projection_x_coord and projection_y_coord.
Only used if l_bounds
= TRUE
- JULES_MODEL_GRID::y_bounds¶
- Type
real(2)
- Default
None
The lower and upper bounds (in that order) for the y coordinate used to select points. Assuming that the coordinate is latitude (see
l_coord_latlon
) the model grid will comprise the points wherey_bounds(1) <= latitude <= y_bounds(2)
.
- JULES_MODEL_GRID::x_bounds¶
- Type
real(2)
- Default
None
The lower and upper bounds (in that order) for the x coordinate used to select points. Assuming that the coordinate is longitude (see
l_coord_latlon
) the model grid will comprise the points wherex_bounds(1) <= longitude <= x_bounds(2)
.If the x coordinate is longitude, the values of x_bounds should lie in the range [-180, 360]. A special case is that in which the desired subgrid straddles the edge of a global input grid. For example, if the input grid has longitudes in [0, 360] and a domain of 20 degrees of longitude centred on 0degE is required, this should be indicated using
xbounds=-10,10
(not xbounds=360,370 because values > 360 are not recognised). In this case the JULES code recognises the cyclic nature of longitude and correctly picks up points in both hemispheres, even though -10degE is outwith the longitude values in the input grid.
Only used if l_bounds
= FALSE
- JULES_MODEL_GRID::npoints¶
- Type
integer
- Permitted
>= 1
- Default
0
The number of points to model.
- JULES_MODEL_GRID::points_file¶
- Type
character
- Default
None
The name of the file containing the coordinates for each point.
If
l_coord_latlon
= TRUE, the coordinates used here are latitude and longitude. Each line in the file should contain the latitude and longitude (in that order) for a point.If
l_coord_latlon
= FALSE, the coordinates used here are the values stored in the variables projection_x_coord and projection_y_coord. Each line in the file should contain the value for projection_y_coord and projection_x_coord (in that order; note this is y then x) for a point.An error is raised and the run terminates if any coordinate pair does not match to a location in the input grid.
6.21.5. JULES_NLSIZES
namelist members¶
This namelist is used to set the number of levels in the boundary layer.
- JULES_NLSIZES::bl_levels¶
- Type
integer
- Default
1
Number of boundary layer levels. This is only used if atmospheric deposition is selected (
l_deposition
= TRUE) in which case it is used to set the size of input fields.
6.21.6. JULES_SURF_HGT
namelist members¶
This namelist sets the elevation of each surface tile. Elevations can either be relative to the gridbox mean or have constant elevation bands above sea-level.
If tile elevations are set relative to the gridbox mean, then the gridbox mean elevation is not required. The gridbox mean elevation is implicit in the near-surface meteorological data that are provided (higher locations will tend to be colder, have lower pressure, etc.). The elevation of each tile is used to alter the values of the air temperature and humidity (and possibly downwelling longwave, see l_elev_lw_down
) over that tile relative to the surface.
If any tile uses absolute heights (i.e. l_elev_absolute_height
has at least one element that is .true.), then the gridbox mean elevation must also be supplied. This is read in from the optional JULES_Z_LAND
namelist which is described below. The model calculates elevations relative to the gridbox mean by taking the difference between the absolute elevation and the gridbox mean.
If any tile uses absolute heights, then tile heights are set constant across a domain, regardless of whether each tile’s height is specified as a relative offset or absolute. This makes it simple to set zero-offset heights for tiles that should not be considered in the elevation bands. It is no longer possible to have spatially varying tile heights if this option is used.
- JULES_SURF_HGT::zero_height¶
- Type
logical
- Default
T
Switch used to simplify the initialisation of tile elevation.
Note
If
l_aggregate
= TRUE, this switch is also set to TRUE.- TRUE
Set all surface tile elevations to zero. This is a very common configuration.
- FALSE
Set surface tile heights using specified data.
Only used if zero_height
= FALSE
- JULES_SURF_HGT::l_elev_absolute_height¶
- Type
logical(nsurft)
- Default
F
- TRUE
Heights of surface tiles are absolute values above sea-level. If this option is used, then the elevation of the forcing data must also be provided (see
JULES_Z_LAND
namelist below).- FALSE
Surface tile heights are relative to the gridbox mean.
- JULES_SURF_HGT::use_file¶
- Type
logical
- Default
T
This indicates if surface tile heights relative to the gridbox mean should be read from a specified file or namelist.
- TRUE
The variable will be read from a file if the input grid consists of more than location.
- FALSE
The variable will be read from a namelist if the input grid is for a single location.
Only used if use_file
= TRUE
- JULES_SURF_HGT::file¶
- Type
character
- Default
None
The name of the file containing surface tile heights relative to the gridbox mean.
- JULES_SURF_HGT::surf_hgt_name¶
- Type
character
- Default
‘surf_hgt’
The name of the variable containing surface tile heights relative to the gridbox mean. In the file, the variable must have a single levels dimension of size
nsurft
calledtile_dim_name
.
6.21.7. JULES_Z_LAND
namelist members¶
This is an optional namelist and only used if any surface tile has l_elev_absolute_height
= TRUE. The namelist sets values for the elevation bands and reads the elevation of the forcing data.
- JULES_Z_LAND::surf_hgt_band¶
- Type
real(nsurft)
- Default
None
Spatially invariant elevation bands for each surface tile. These may be relative to the gridbox mean or absolute elevations above sea-level depending on
l_elev_absolute_height
.
- JULES_Z_LAND::use_file¶
- Type
logical
- Default
T
This indicates if the elevation of the forcing data should be read from a file or from a namelist.
- TRUE
The variable will be read from a file if the input grid consists of more than location.
- FALSE
The variable will be read from a namelist if the input grid is for a single location.
Used if use_file
= TRUE
- JULES_Z_LAND::file¶
- Type
character
- Default
None
The name of the file containing the elevation of the forcing data.
- JULES_Z_LAND::z_land_name¶
- Type
character
- Default
‘z_land’
The name of the variable containing the elevation of the forcing data. In the file, the variable must have no level dimensions and no time dimensions.
Used if use_file
= FALSE
- JULES_Z_LAND::z_land_io¶
- Type
real
- Default
None
Elevation of the forcing data for a single location.
6.21.7.1. Example¶
The following gives an example of how you would set up the namelists to use elevation bands above sea-level.
&JULES_SURF_HGT
zero_height = .false.,
# No elevation correction to surface tiles 1 to 6, use elevation bands for surface tiles 7 to 9
l_elev_absolute_height = 6*.false., 3*.true.,
/
&JULES_Z_LAND
# Set values for the elevation bands.
surf_hgt_band = 6*0.0, 1000.0, 2000.0, 3000.0,
# Read the WFDEI forcing data elevation from a file
use_file = .true.,
file = 'WFDEI-elevation.nc',
z_land_name = 'elevation'
/
6.21.8. Examples of grid setups¶
6.21.8.1. A single location¶
&JULES_INPUT_GRID
nx = 1,
ny = 1
/
&JULES_LATLON
l_coord_latlon = T
nvars = 2,
var = 'latitude','longitude',
use_file = .false., .false.,
const_val = 52.168, 5.744
/
&JULES_LAND_FRAC /
&JULES_MODEL_GRID /
&JULES_SURF_HGT
zero_height = T
/
JULES_INPUT_GRID
The default value of
grid_is_1d
, FALSE, is used. This means the user has to specify the extents,nx
andny
, of the input grid. Since all the input data is ASCII, no dimension names are required.JULES_LATLON
The latitude and longitude of the single location are specified directly in the namelist.
nvars
= 2 indicates that the two mandatory variables will be provided, andvar
= ‘latitude’,’longitude’ confirms that these are the latitude and longitude.use_file
= .false. indicates that the values will be read from the namelist (not from another file) and the values are provided afterconst_val
.JULES_LAND_FRAC
The land fraction at the single location is assumed to be 100%, so nothing is required.
JULES_MODEL_GRID
Use default options to select the model grid (i.e. land points only from the full input grid). In this case, this leaves the single location as the model grid.
6.21.8.2. Examples of gridded runs¶
All the examples in this section assume gridded NetCDF data.
6.21.8.2.1. Specifying a 1D input grid¶
In this example, input files contain data on a vector of land points. The land points dimension is called “land”. The time dimension for time-varying variables is called “time”. The default dimension names are used for all additional dimensions (e.g. pft, tile).
&JULES_INPUT_GRID
grid_is_1D = T,
npoints = 15238,
grid_dim_name = "land",
time_dim_name = "time"
/
6.21.8.2.2. Specifying a 2D input grid¶
In this example, input files contain data on a 2D latitude/longitude grid. The x dimension is called “lon” and the y dimension is called “lat”. The time dimension for time-varying variables is called “time”. Variables with an extra tiles dimension use the dimension name “pseudo” for that dimension. All other additional dimensions use their default names.
&JULES_INPUT_GRID
grid_is_1D = F,
nx = 96,
ny = 56,
x_dim_name = "lon",
y_dim_name = "lat",
tile_dim_name = "pseudo",
time_dim_name = "time"
/
6.21.8.2.3. Specifying a subgrid using a given range of latitude and longitude¶
This can be used with either a 1D or 2D input grid.
&JULES_LATLON
l_coord_latlon = T,
nvars = 2,
var = 'latitude','longitude',
use_file = .true., .true.,
file = 'lat_lon.nc',
/
&JULES_LAND_FRAC
file = 'land_mask.nc',
land_frac_name = 'land_frac'
/
&JULES_MODEL_GRID
land_only = F,
use_subgrid = T,
l_bounds = T,
y_bounds = 55.0 57.0,
x_bounds = -5.0 -3.0
/
This setup reads latitude, longitude and land fraction for each gridbox in the full input grid (1D or 2D) from the named variables in the specified files.
In JULES_MODEL_GRID
, use_subgrid
indicates that a subset of the input grid will be selected as the model grid. l_bounds
then indicates that latitude and longitude bounds will be used to select the subgrid. land_only
= FALSE means that sea and sea-ice points will remain in the model grid if any are selected. The model grid will then be a vector containing the selected points (those that fall within the latitude/longitude bounds), even if those points could be used to form a rectangular region.
6.21.8.2.4. Specifying a subgrid using a given range of projection coordinates (not latitude and longitude)¶
This can be used with either a 1D or 2D input grid.
&JULES_LATLON
l_coord_latlon = F,
nvars = 4,
var = 'latitude','longitude','projection_x_coord','projection_y_coord'
use_file = .true., .true., .true., .true.,
file = 'lat_lon.nc',
/
&JULES_LAND_FRAC
file = 'land_mask.nc',
land_frac_name = 'land_frac'
/
&JULES_MODEL_GRID
land_only = F,
use_subgrid = T,
l_bounds = T,
y_bounds = 500.0 40500.0,
x_bounds = 25500.0 55500.0
/
In this setup l_coord_latlon
= FALSE indicates that data will be read from a grid that is not defined by latitude and longitude - rather it uses other projection coordinates such as the northings and eastings of the Ordnance Survey (British) National Grid (BNG) OSGB36. The projection coordinates are read via the variables projection_x_coord and projection_y_coord. Note that the latitude and longitude of each point is also read in; JULES includes these in output files for reference, and they can also be required by the science code (e.g. for solar zenith angle).
In JULES_MODEL_GRID
, use_subgrid
indicates that a subset of the input grid will be selected as the model grid. l_bounds
then indicates that bounding values of the projection coordinates will be used to select the subgrid. land_only
= FALSE means that sea and sea-ice points will remain in the model grid if any are selected. The model grid will then be a vector containing the selected points (those that fall within the latitude/longitude bounds), even if those points could be used to form a rectangular region.
6.21.8.2.5. Specifying a subgrid using a list of points¶
This can be used with either a 1D or 2D input grid.
&JULES_LATLON
l_coord_latlon = T,
nvars = 2,
var = 'latitude','longitude',
use_file = .true., .true.,
file = 'lat_lon.nc',
/
&JULES_LAND_FRAC
file = 'land_mask.nc',
land_frac_name = 'land_frac'
/
&JULES_MODEL_GRID
use_subgrid = T,
l_bounds = F,
npoints = 4,
points_file = 'points.txt'
/
This setup reads latitude, longitude and land fraction for each gridbox in the full input grid (1D or 2D) from the named variables in the specified files.
In JULES_MODEL_GRID
, use_subgrid
indicates that a subset of the input grid will be selected as the model grid. l_bounds
then indicates that a list of latitudes and longitudes will be used to select the subgrid. land_only
is not given, meaning it takes its default value, TRUE. This means that any sea or sea-ice points specified in the list of points will be discarded. The model grid will then be a vector
containing the selected points (those with the given latitude/longitude).
Assuming that the input grid is a 1 degree grid and the latitude and longitude are given at the centre of the gridbox, points.txt
should look like the following:
55.5 -4.5
55.5 -3.5
56.5 -4.5
56.5 -3.5
6.21.8.2.6. The only configuration that yields a 2D model grid¶
&JULES_INPUT_GRID
grid_is_1d = F,
nx = 96,
ny = 56,
# ...
/
&JULES_LATLON
# <specified from file>
/
&JULES_LAND_FRAC
# <specified from file>
/
&JULES_MODEL_GRID
land_only = F
/
In general, the only configuration that yields a 2D model grid is:
2D input grid
The model grid is the full input grid, including any non-land points
If the input grid is a 2D region where every point is land (i.e. not the whole globe), then land_only
= TRUE would also yield a 2D model grid. If any options are set that mean some points from the input grid are not modeled, the model grid will be a vector of points. Computationally, this makes no difference.