io_decomp_patch_to_patch Function

public function io_decomp_patch_to_patch(patch_decomp_start, mem_shape_spec, var_shape_spec, type) result(decomp)

Returns a parallel I/O decomposition mapping from a memory layout with a local 'patch' dimension to a netCDF variable layout with a global 'patch' dimension.

Note that the 'patch' dimension in the memory layout represents the local index in the 1-dimensional vector of patches, and in the netCDF variable layout, the 'patch' dimension represents the global index in the 1-dimensional vector of patches.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: patch_decomp_start

The starting index of the first local 'patch' index along global 'patch' dimension.

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. mem_shape_spec must include a dimension with name 'patch' which is used to map to the global patch dimensions.

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. var_shape_spec must include a dimension with name patch which is used to map from the local 'patch' dimension described by mem_shape_spec.

integer, intent(in) :: type

The data type of the variable for which the decomposition is being created using CABLE_NETCDF_TYPE_* constants from cable_netcdf_mod.

Return Value class(cable_netcdf_decomp_t), allocatable