Returns a parallel I/O decomposition mapping from a memory layout with
a 'patch' dimension to a netCDF variable layout with 'x', 'y', and 'patch'
dimensions, using the provided land_x and land_y arrays to determine the
mapping from land indexes to x and y indexes, and using cstart and nap
to determine the mapping from patch indexes to (land, patch) coordinates.
Note that the 'patch' dimension in the memory layout represents the index in
the 1-dimensional vector of patches, and in the netCDF variable layout, the
'patch' dimension represents the index of the patch on a particular land
point. The mapping from patch index to land point is determined by cstart
and nap, and the mapping from land point to x and y coordinates is
determined by land_x and land_y.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | land_x(:) |
An array mapping land indexes to x (longitude) indexes. |
||
| integer, | intent(in) | :: | land_y(:) |
An array mapping land indexes to y (latitude) indexes. |
||
| integer, | intent(in) | :: | cstart(:) |
The starting patch index for each land point. |
||
| integer, | intent(in) | :: | nap(:) |
The number of active patches for each land point. |
||
| type(dim_spec_t), | intent(in) | :: | mem_shape_spec(:) |
An array of dim_spec_t describing the shape and dimension names of the
in-memory array. |
||
| type(dim_spec_t), | intent(in) | :: | var_shape_spec(:) |
An array of dim_spec_t describing the shape and dimension names of the
netCDF variable. |
||
| integer, | intent(in) | :: | type |
The data type of the variable for which the decomposition is being
created using |