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

"Adding new dimensions" 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.


Calls

proc~~cable_output_get_dimension~~CallsGraph proc~cable_output_get_dimension cable_output_get_dimension proc~cable_abort cable_abort proc~cable_output_get_dimension->proc~cable_abort

Called by

proc~~cable_output_get_dimension~~CalledByGraph proc~cable_output_get_dimension cable_output_get_dimension proc~cable_diagnostics cable_diagnostics proc~cable_diagnostics->proc~cable_output_get_dimension proc~cable_diagnostics_casa cable_diagnostics_casa proc~cable_diagnostics_casa->proc~cable_output_get_dimension proc~coordinate_variables_list coordinate_variables_list proc~coordinate_variables_list->proc~cable_output_get_dimension proc~cable_output_impl_init_streams cable_output_impl_init_streams proc~cable_output_impl_init_streams->proc~coordinate_variables_list proc~cable_output_impl_write_restart cable_output_impl_write_restart proc~cable_output_impl_write_restart->proc~coordinate_variables_list proc~mpidrv_master~2 mpidrv_master proc~mpidrv_master~2->proc~cable_diagnostics proc~mpidrv_master~2->proc~cable_diagnostics_casa proc~serialdrv serialdrv proc~serialdrv->proc~cable_diagnostics proc~serialdrv->proc~cable_diagnostics_casa program~cable_offline_driver cable_offline_driver program~cable_offline_driver->proc~serialdrv