cable_output_get_dimension Function

public function cable_output_get_dimension(name) result(dim)

Returns an output variable dimension. This function contains the definitions of all dimensions used to describe the in-memory data shapes of CABLE variables.

Note

"Note on adding new dimensions and shapes for output variables" Adding new dimensions and shapes for output variables is possible, however it is currently more involved than adding new output variables and requires making changes to the output module implementation. The steps to add a new dimension to the output module are as follows:

  1. Add the new dimension name and size definition to cable_output_get_dimension.
  2. If grid cell reductions are required for variables involving the new dimension, add a new grid reduction buffer allocation in cable_output_reductions consistent with the data shape and any necessary code to associate the buffer with an output variable.
  3. If distributed writes are required for variables involving the new dimension, add a new decomposition definition in cable_output_decomp_smod consistent with the data shape and any necessary code to associate the decomposition with an output variable.

In future versions this can be improved by generating the necessary grid reduction buffers and parallel I/O decompositions based on the active output variables across all output streams, rather than requiring hard coded definitions for each dimension and shape in the output module implementation.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: name

Name of the dimension. Please see the implementation of this function for the list of allowed dimension names and their meanings.

Return Value type(cable_output_dim_t)

The output dimension object corresponding to the requested dimension name.