MOM6
|
The subroutines here provide convenient wrappers to the fms diag_manager interfaces with additional diagnostic capabilies.
Data Types | |
type | axes_grp |
A group of 1D axes that comprise a 1D/2D/3D mesh. More... | |
type | diag_ctrl |
The following data type a list of diagnostic fields an their variants, as well as variables that control the handling of model output. More... | |
type | diag_dsamp |
Contained for down sampled masks. More... | |
type | diag_grid_storage |
Stores all the remapping grids and the model's native space thicknesses. More... | |
type | diag_grids_type |
Contains an array to store a diagnostic target grid. More... | |
type | diag_type |
This type is used to represent a diagnostic at the diag_mediator level. More... | |
type | diagcs_dsamp |
Container for down sampling information. More... | |
interface | downsample_diag_field |
Down sample a diagnostic field. More... | |
interface | downsample_field |
Down sample a field. More... | |
interface | downsample_mask |
Down sample the mask of a field. More... | |
interface | post_data |
Make a diagnostic available for averaging or output. More... | |
Variables | |
integer | psp =121 |
x:point,y:sum,z:point | |
integer | pss =122 |
x:point,y:sum,z:point | |
integer | psm =123 |
x:point,y:sum,z:mean | |
integer | pmp =131 |
x:point,y:mean,z:point | |
integer | pmm =133 |
x:point,y:mean,z:mean | |
integer | spp =211 |
x:sum,y:point,z:point | |
integer | sps =212 |
x:sum,y:point,z:sum | |
integer | ssp =221 |
x:sum;y:sum,z:point | |
integer | mpp =311 |
x:mean,y:point,z:point | |
integer | mpm =313 |
x:mean,y:point,z:mean | |
integer | mmp =331 |
x:mean,y:mean,z:point | |
integer | mms =332 |
x:mean,y:mean,z:sum | |
integer | sss =222 |
x:sum,y:sum,z:sum | |
integer | mmm =333 |
x:mean,y:mean,z:mean | |
integer | msk =-1 |
Use the downsample method of a mask. | |
integer | id_clock_diag_mediator |
Sets up diagnostics axes. More... | |
integer | id_clock_diag_remap |
Sets up diagnostics axes. More... | |
integer | id_clock_diag_grid_updates |
Sets up diagnostics axes. More... | |
subroutine, public | set_axes_info (G, GV, US, param_file, diag_cs, set_vertical) |
Sets up diagnostics axes. More... | |
subroutine | set_axes_info_dsamp (G, GV, param_file, diag_cs, id_zl_native, id_zi_native) |
subroutine, public | set_masks_for_axes (G, diag_cs) |
set_masks_for_axes sets up the 2d and 3d masks for diagnostics using the current grid recorded after calling diag_update_remap_grids() More... | |
subroutine | set_masks_for_axes_dsamp (G, diag_cs) |
subroutine, public | diag_register_area_ids (diag_cs, id_area_t, id_area_q) |
Attaches the id of cell areas to axes groups for use with cell_measures. More... | |
subroutine, public | register_cell_measure (G, diag, Time) |
Sets a handle inside diagnostics mediator to associate 3d cell measures. More... | |
subroutine, public | diag_associate_volume_cell_measure (diag_cs, id_h_volume) |
Attaches the id of cell volumes to axes groups for use with cell_measures. More... | |
integer function, public | diag_get_volume_cell_measure_dm_id (diag_cs) |
Returns diag_manager id for cell measure of h-cells. More... | |
subroutine, public | define_axes_group (diag_cs, handles, axes, nz, vertical_coordinate_number, x_cell_method, y_cell_method, v_cell_method, is_h_point, is_q_point, is_u_point, is_v_point, is_layer, is_interface, is_native, needs_remapping, needs_interpolating, xyave_axes) |
Defines a group of "axes" from list of handles. More... | |
subroutine | define_axes_group_dsamp (diag_cs, handles, axes, dl, nz, vertical_coordinate_number, x_cell_method, y_cell_method, v_cell_method, is_h_point, is_q_point, is_u_point, is_v_point, is_layer, is_interface, is_native, needs_remapping, needs_interpolating, xyave_axes) |
Defines a group of downsampled "axes" from list of handles. More... | |
subroutine, public | set_diag_mediator_grid (G, diag_cs) |
Set up the array extents for doing diagnostics. More... | |
subroutine | post_data_0d (diag_field_id, field, diag_cs, is_static) |
Make a real scalar diagnostic available for averaging or output. More... | |
subroutine, public | post_data_1d_k (diag_field_id, field, diag_cs, is_static) |
Make a real 1-d array diagnostic available for averaging or output. More... | |
subroutine | post_data_2d (diag_field_id, field, diag_cs, is_static, mask) |
Make a real 2-d array diagnostic available for averaging or output. More... | |
subroutine | post_data_2d_low (diag, field, diag_cs, is_static, mask) |
Make a real 2-d array diagnostic available for averaging or output using a diag_type instead of an integer id. More... | |
subroutine | post_data_3d (diag_field_id, field, diag_cs, is_static, mask, alt_h) |
Make a real 3-d array diagnostic available for averaging or output. More... | |
subroutine | post_data_3d_low (diag, field, diag_cs, is_static, mask) |
Make a real 3-d array diagnostic available for averaging or output using a diag_type instead of an integer id. More... | |
subroutine | post_xy_average (diag_cs, diag, field) |
Post the horizontally area-averaged diagnostic. More... | |
subroutine, public | enable_averaging (time_int_in, time_end_in, diag_cs) |
This subroutine enables the accumulation of time averages over the specified time interval. More... | |
subroutine, public | disable_averaging (diag_cs) |
Call this subroutine to avoid averaging any offered fields. More... | |
logical function, public | query_averaging_enabled (diag_cs, time_int, time_end) |
Call this subroutine to determine whether the averaging is currently enabled. .true. is returned if it is. More... | |
type(time_type) function, public | get_diag_time_end (diag_cs) |
This function returns the valid end time for use with diagnostics that are handled outside of the MOM6 diagnostics infrastructure. More... | |
integer function, public | register_diag_field (module_name, field_name, axes_in, init_time, long_name, units, missing_value, range, mask_variant, standard_name, verbose, do_not_log, err_msg, interp_method, tile_count, cmor_field_name, cmor_long_name, cmor_units, cmor_standard_name, cell_methods, x_cell_method, y_cell_method, v_cell_method, conversion, v_extensive) |
Returns the "diag_mediator" handle for a group (native, CMOR, z-coord, ...) of diagnostics derived from one field. More... | |
logical function | register_diag_field_expand_cmor (dm_id, module_name, field_name, axes, init_time, long_name, units, missing_value, range, mask_variant, standard_name, verbose, do_not_log, err_msg, interp_method, tile_count, cmor_field_name, cmor_long_name, cmor_units, cmor_standard_name, cell_methods, x_cell_method, y_cell_method, v_cell_method, conversion, v_extensive) |
Returns True if either the native or CMOr version of the diagnostic were registered. Updates 'dm_id' after calling register_diag_field_expand_axes() for both native and CMOR variants of the field. More... | |
integer function | register_diag_field_expand_axes (module_name, field_name, axes, init_time, long_name, units, missing_value, range, mask_variant, standard_name, verbose, do_not_log, err_msg, interp_method, tile_count) |
Returns an FMS id from register_diag_field_fms (the diag_manager routine) after expanding axes (axes-group) into handles and conditionally adding an FMS area_id for cell_measures. More... | |
subroutine | add_diag_to_list (diag_cs, dm_id, fms_id, this_diag, axes, module_name, field_name, msg) |
Create a diagnostic type and attached to list. More... | |
subroutine | add_xyz_method (diag, axes, x_cell_method, y_cell_method, v_cell_method, v_extensive) |
Adds the encoded "cell_methods" for a diagnostics as a diag% property This allows access to the cell_method for a given diagnostics at the time of sending. More... | |
subroutine | attach_cell_methods (id, axes, ostring, cell_methods, x_cell_method, y_cell_method, v_cell_method, v_extensive) |
Attaches "cell_methods" attribute to a variable based on defaults for axes_grp or optional arguments. More... | |
integer function, public | register_scalar_field (module_name, field_name, init_time, diag_cs, long_name, units, missing_value, range, standard_name, do_not_log, err_msg, interp_method, cmor_field_name, cmor_long_name, cmor_units, cmor_standard_name) |
integer function, public | register_static_field (module_name, field_name, axes, long_name, units, missing_value, range, mask_variant, standard_name, do_not_log, interp_method, tile_count, cmor_field_name, cmor_long_name, cmor_units, cmor_standard_name, area, x_cell_method, y_cell_method, area_cell_method, conversion) |
Registers a static diagnostic, returning an integer handle. More... | |
subroutine | describe_option (opt_name, value, diag_CS) |
Describe an option setting in the diagnostic files. More... | |
integer function, public | ocean_register_diag (var_desc, G, diag_CS, day) |
Registers a diagnostic using the information encapsulated in the vardesc type argument and returns an integer handle to this diagostic. That integer handle is negative if the diagnostic is unused. More... | |
subroutine, public | diag_mediator_infrastructure_init (err_msg) |
subroutine, public | diag_mediator_init (G, GV, US, nz, param_file, diag_cs, doc_file_dir) |
diag_mediator_init initializes the MOM diag_mediator and opens the available diagnostics file, if appropriate. More... | |
subroutine, public | diag_set_state_ptrs (h, T, S, eqn_of_state, diag_cs) |
Set pointers to the default state fields used to remap diagnostics. More... | |
subroutine, public | diag_update_remap_grids (diag_cs, alt_h, alt_T, alt_S) |
Build/update vertical grids for diagnostic remapping. More... | |
subroutine, public | diag_masks_set (G, nz, diag_cs) |
Sets up the 2d and 3d masks for native diagnostics. More... | |
subroutine, public | diag_mediator_close_registration (diag_CS) |
subroutine, public | diag_mediator_end (time, diag_CS, end_diag_manager) |
character(len=15) function | i2s (a, n_in) |
Convert the first n elements (up to 3) of an integer array to an underscore delimited string. More... | |
integer function | get_new_diag_id (diag_cs) |
Returns a new diagnostic id, it may be necessary to expand the diagnostics array. More... | |
subroutine | initialize_diag_type (diag) |
Initializes a diag_type (used after allocating new memory) More... | |
subroutine | alloc_diag_with_id (diag_id, diag_cs, diag) |
Make a new diagnostic. Either use memory which is in the array of 'primary' diagnostics, or if that is in use, insert it to the list of secondary diags. More... | |
subroutine | log_available_diag (used, module_name, field_name, cell_methods_string, comment, diag_CS, long_name, units, standard_name) |
Log a diagnostic to the available diagnostics file. More... | |
subroutine | log_chksum_diag (docunit, description, chksum) |
Log the diagnostic chksum to the chksum diag file. More... | |
subroutine, public | diag_grid_storage_init (grid_storage, G, diag) |
Allocates fields necessary to store diagnostic remapping fields. More... | |
subroutine, public | diag_copy_diag_to_storage (grid_storage, h_state, diag) |
Copy from the main diagnostic arrays to the grid storage as well as the native thicknesses. More... | |
subroutine, public | diag_copy_storage_to_diag (diag, grid_storage) |
Copy from the stored diagnostic arrays to the main diagnostic grids. More... | |
subroutine, public | diag_save_grids (diag) |
Save the current diagnostic grids in the temporary structure within diag. More... | |
subroutine, public | diag_restore_grids (diag) |
Restore the diagnostic grids from the temporary structure within diag. More... | |
subroutine, public | diag_grid_storage_end (grid_storage) |
Deallocates the fields in the remapping fields container. More... | |
subroutine | downsample_diag_masks_set (G, nz, diag_cs) |
subroutine | downsample_diag_indices_get (fo1, fo2, dl, diag_cs, isv, iev, jsv, jev) |
Get the diagnostics-compute indices (to be passed to send_data) based on the shape of the diag field (the same way they are deduced for non-downsampled fields) More... | |
subroutine | downsample_diag_field_3d (locfield, locfield_dsamp, dl, diag_cs, diag, isv, iev, jsv, jev, mask) |
This subroutine allocates and computes a downsampled array from an input array It also determines the diagnostics-compurte indices for the downsampled array 3d interface. More... | |
subroutine | downsample_diag_field_2d (locfield, locfield_dsamp, dl, diag_cs, diag, isv, iev, jsv, jev, mask) |
This subroutine allocates and computes a downsampled array from an input array It also determines the diagnostics-compurte indices for the downsampled array 2d interface. More... | |
subroutine | downsample_field_3d (field_in, field_out, dl, method, mask, diag_cs, diag, isv_o, jsv_o, isv_d, iev_d, jsv_d, jev_d) |
This subroutine allocates and computes a down sampled 3d array given an input array The down sample method is based on the "cell_methods" for the diagnostics as explained in the above table. More... | |
subroutine | downsample_field_2d (field_in, field_out, dl, method, mask, diag_cs, diag, isv_o, jsv_o, isv_d, iev_d, jsv_d, jev_d) |
This subroutine allocates and computes a down sampled 2d array given an input array The down sample method is based on the "cell_methods" for the diagnostics as explained in the above table. More... | |
subroutine | downsample_mask_2d (field_in, field_out, dl, isc_o, jsc_o, isc_d, iec_d, jsc_d, jec_d, isd_d, ied_d, jsd_d, jed_d) |
Allocate and compute the 2d down sampled mask The masks are down sampled based on a minority rule, i.e., a coarse cell is open (1) if at least one of the sub-cells are open, otherwise it's closed (0) More... | |
subroutine | downsample_mask_3d (field_in, field_out, dl, isc_o, jsc_o, isc_d, iec_d, jsc_d, jec_d, isd_d, ied_d, jsd_d, jed_d) |
Allocate and compute the 3d down sampled mask The masks are down sampled based on a minority rule, i.e., a coarse cell is open (1) if at least one of the sub-cells are open, otherwise it's closed (0) More... | |
|
private |
Create a diagnostic type and attached to list.
diag_cs | Diagnostics mediator control structure | |
[in,out] | dm_id | The diag_mediator ID for this diagnostic group |
[in] | fms_id | The FMS diag_manager ID for this diagnostic |
this_diag | This diagnostic | |
[in] | axes | Container w/ up to 3 integer handles that indicates axes for this field |
[in] | module_name | Name of this module, usually "ocean_model" or "ice_shelf_model" |
[in] | field_name | Name of diagnostic |
[in] | msg | Message for errors |
Definition at line 2368 of file MOM_diag_mediator.F90.
|
private |
Adds the encoded "cell_methods" for a diagnostics as a diag% property This allows access to the cell_method for a given diagnostics at the time of sending.
diag | This diagnostic | |
[in] | axes | Container w/ up to 3 integer handles that indicates axes for this field |
[in] | x_cell_method | Specifies the cell method for the x-direction. Use '' have no method. |
[in] | y_cell_method | Specifies the cell method for the y-direction. Use '' have no method. |
[in] | v_cell_method | Specifies the cell method for the vertical direction. Use '' have no method. |
[in] | v_extensive | True for vertically extensive fields (vertically integrated). Default/absent for intensive. |
Definition at line 2394 of file MOM_diag_mediator.F90.
|
private |
Make a new diagnostic. Either use memory which is in the array of 'primary' diagnostics, or if that is in use, insert it to the list of secondary diags.
[in] | diag_id | id for the diagnostic |
[in,out] | diag_cs | structure used to regulate diagnostic output |
diag | structure representing a diagnostic (inout) |
Definition at line 3399 of file MOM_diag_mediator.F90.
|
private |
Attaches "cell_methods" attribute to a variable based on defaults for axes_grp or optional arguments.
[in] | id | Handle to diagnostic |
[in] | axes | Container w/ up to 3 integer handles that indicates axes for this field |
[out] | ostring | The cell_methods strings that would appear in the file |
[in] | cell_methods | String to append as cell_methods attribute. Use '' to have no attribute. If present, this overrides the default constructed from the default for each individual axis direction. |
[in] | x_cell_method | Specifies the cell method for the x-direction. Use '' have no method. |
[in] | y_cell_method | Specifies the cell method for the y-direction. Use '' have no method. |
[in] | v_cell_method | Specifies the cell method for the vertical direction. Use '' have no method. |
[in] | v_extensive | True for vertically extensive fields (vertically integrated). Default/absent for intensive. |
Definition at line 2457 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::define_axes_group | ( | type(diag_ctrl), intent(in), target | diag_cs, |
integer, dimension(:), intent(in) | handles, | ||
type(axes_grp), intent(out) | axes, | ||
integer, intent(in), optional | nz, | ||
integer, intent(in), optional | vertical_coordinate_number, | ||
character(len=*), intent(in), optional | x_cell_method, | ||
character(len=*), intent(in), optional | y_cell_method, | ||
character(len=*), intent(in), optional | v_cell_method, | ||
logical, intent(in), optional | is_h_point, | ||
logical, intent(in), optional | is_q_point, | ||
logical, intent(in), optional | is_u_point, | ||
logical, intent(in), optional | is_v_point, | ||
logical, intent(in), optional | is_layer, | ||
logical, intent(in), optional | is_interface, | ||
logical, intent(in), optional | is_native, | ||
logical, intent(in), optional | needs_remapping, | ||
logical, intent(in), optional | needs_interpolating, | ||
type(axes_grp), optional, target | xyave_axes | ||
) |
Defines a group of "axes" from list of handles.
[in] | diag_cs | Diagnostics control structure |
[in] | handles | A list of 1D axis handles |
[out] | axes | The group of 1D axes |
[in] | nz | Number of layers in this diagnostic grid |
[in] | vertical_coordinate_number | Index number for vertical coordinate |
[in] | x_cell_method | A x-direction cell method used to construct the "cell_methods" attribute in CF convention |
[in] | y_cell_method | A y-direction cell method used to construct the "cell_methods" attribute in CF convention |
[in] | v_cell_method | A vertical direction cell method used to construct the "cell_methods" attribute in CF convention |
[in] | is_h_point | If true, indicates this axes group for h-point located fields |
[in] | is_q_point | If true, indicates this axes group for q-point located fields |
[in] | is_u_point | If true, indicates this axes group for u-point located fields |
[in] | is_v_point | If true, indicates this axes group for v-point located fields |
[in] | is_layer | If true, indicates that this axes group is for a layer vertically-located field. |
[in] | is_interface | If true, indicates that this axes group is for an interface vertically-located field. |
[in] | is_native | If true, indicates that this axes group is for a native model grid. False for any other grid. |
[in] | needs_remapping | If true, indicates that this axes group is for a intensive layer-located field that must be remapped to these axes. Used for rank>2. |
[in] | needs_interpolating | If true, indicates that this axes group is for a sampled interface-located field that must be interpolated to these axes. Used for rank>2. |
xyave_axes | The corresponding axes group for horizontally area-average diagnostics |
Definition at line 943 of file MOM_diag_mediator.F90.
|
private |
Defines a group of downsampled "axes" from list of handles.
[in] | diag_cs | Diagnostics control structure |
[in] | handles | A list of 1D axis handles |
[out] | axes | The group of 1D axes |
[in] | dl | Downsample level |
[in] | nz | Number of layers in this diagnostic grid |
[in] | vertical_coordinate_number | Index number for vertical coordinate |
[in] | x_cell_method | A x-direction cell method used to construct the "cell_methods" attribute in CF convention |
[in] | y_cell_method | A y-direction cell method used to construct the "cell_methods" attribute in CF convention |
[in] | v_cell_method | A vertical direction cell method used to construct the "cell_methods" attribute in CF convention |
[in] | is_h_point | If true, indicates this axes group for h-point located fields |
[in] | is_q_point | If true, indicates this axes group for q-point located fields |
[in] | is_u_point | If true, indicates this axes group for u-point located fields |
[in] | is_v_point | If true, indicates this axes group for v-point located fields |
[in] | is_layer | If true, indicates that this axes group is for a layer vertically-located field. |
[in] | is_interface | If true, indicates that this axes group is for an interface vertically-located field. |
[in] | is_native | If true, indicates that this axes group is for a native model grid. False for any other grid. |
[in] | needs_remapping | If true, indicates that this axes group is for a intensive layer-located field that must be remapped to these axes. Used for rank>2. |
[in] | needs_interpolating | If true, indicates that this axes group is for a sampled interface-located field that must be interpolated to these axes. Used for rank>2. |
xyave_axes | The corresponding axes group for horizontally area-average diagnostics |
Definition at line 1054 of file MOM_diag_mediator.F90.
|
private |
Describe an option setting in the diagnostic files.
[in] | opt_name | The name of the option |
[in] | value | A character string with the setting of the option. |
[in] | diag_cs | Structure used to regulate diagnostic output |
Definition at line 2823 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_associate_volume_cell_measure | ( | type(diag_ctrl), intent(inout) | diag_cs, |
integer, intent(in) | id_h_volume | ||
) |
Attaches the id of cell volumes to axes groups for use with cell_measures.
[in,out] | diag_cs | Diagnostics control structure |
[in] | id_h_volume | Diag_manager id for volume of h-cells |
Definition at line 908 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_copy_diag_to_storage | ( | type(diag_grid_storage), intent(inout) | grid_storage, |
real, dimension(:,:,:), intent(in) | h_state, | ||
type(diag_ctrl), intent(in) | diag | ||
) |
Copy from the main diagnostic arrays to the grid storage as well as the native thicknesses.
[in,out] | grid_storage | Structure containing a snapshot of the target grids |
[in] | h_state | Current model thicknesses |
[in] | diag | Diagnostic control structure used as the contructor |
Definition at line 3489 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_copy_storage_to_diag | ( | type(diag_ctrl), intent(inout) | diag, |
type(diag_grid_storage), intent(in) | grid_storage | ||
) |
Copy from the stored diagnostic arrays to the main diagnostic grids.
[in,out] | diag | Diagnostic control structure used as the contructor |
[in] | grid_storage | Structure containing a snapshot of the target grids |
Definition at line 3508 of file MOM_diag_mediator.F90.
integer function, public mom_diag_mediator::diag_get_volume_cell_measure_dm_id | ( | type(diag_ctrl), intent(in) | diag_cs | ) |
Returns diag_manager id for cell measure of h-cells.
[in] | diag_cs | Diagnostics control structure |
Definition at line 930 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_grid_storage_end | ( | type(diag_grid_storage), intent(inout) | grid_storage | ) |
Deallocates the fields in the remapping fields container.
[in,out] | grid_storage | Structure containing a snapshot of the target grids |
Definition at line 3559 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_grid_storage_init | ( | type(diag_grid_storage), intent(inout) | grid_storage, |
type(ocean_grid_type), intent(in) | G, | ||
type(diag_ctrl), intent(in) | diag | ||
) |
Allocates fields necessary to store diagnostic remapping fields.
[in,out] | grid_storage | Structure containing a snapshot of the target grids |
[in] | g | Horizontal grid |
[in] | diag | Diagnostic control structure used as the contructor template for this routine |
Definition at line 3464 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_masks_set | ( | type(ocean_grid_type), intent(in), target | G, |
integer, intent(in) | nz, | ||
type(diag_ctrl), pointer | diag_cs | ||
) |
Sets up the 2d and 3d masks for native diagnostics.
[in] | g | The ocean grid type. |
[in] | nz | The number of layers in the model's native grid. |
diag_cs | A pointer to a type with many variables used for diagnostics |
Definition at line 3220 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_mediator_close_registration | ( | type(diag_ctrl), intent(inout) | diag_CS | ) |
[in,out] | diag_cs | Structure used to regulate diagnostic output |
Definition at line 3262 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_mediator_end | ( | type(time_type), intent(in) | time, |
type(diag_ctrl), intent(inout) | diag_CS, | ||
logical, intent(in), optional | end_diag_manager | ||
) |
[in] | time | The current model time |
[in,out] | diag_cs | Structure used to regulate diagnostic output |
[in] | end_diag_manager | If true, call diag_manager_end() |
Definition at line 3277 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_mediator_infrastructure_init | ( | character(len=*), intent(out), optional | err_msg | ) |
[out] | err_msg | An error message |
Definition at line 2943 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_mediator_init | ( | type(ocean_grid_type), intent(inout), target | G, |
type(verticalgrid_type), intent(in), target | GV, | ||
type(unit_scale_type), intent(in), target | US, | ||
integer, intent(in) | nz, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(inout) | diag_cs, | ||
character(len=*), intent(in), optional | doc_file_dir | ||
) |
diag_mediator_init initializes the MOM diag_mediator and opens the available diagnostics file, if appropriate.
[in,out] | g | The ocean grid type. |
[in] | gv | The ocean vertical grid structure |
[in] | us | A dimensional unit scaling type |
[in] | nz | The number of layers in the model's native grid. |
[in] | param_file | Parameter file structure |
[in,out] | diag_cs | A pointer to a type with many variables used for diagnostics |
[in] | doc_file_dir | A directory in which to create the file |
Definition at line 2952 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_register_area_ids | ( | type(diag_ctrl), intent(inout) | diag_cs, |
integer, intent(in), optional | id_area_t, | ||
integer, intent(in), optional | id_area_q | ||
) |
Attaches the id of cell areas to axes groups for use with cell_measures.
[in,out] | diag_cs | Diagnostics control structure |
[in] | id_area_t | Diag_mediator id for area of h-cells |
[in] | id_area_q | Diag_mediator id for area of q-cells |
Definition at line 864 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_restore_grids | ( | type(diag_ctrl), intent(inout) | diag | ) |
Restore the diagnostic grids from the temporary structure within diag.
[in,out] | diag | Diagnostic control structure used as the contructor |
Definition at line 3542 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_save_grids | ( | type(diag_ctrl), intent(inout) | diag | ) |
Save the current diagnostic grids in the temporary structure within diag.
[in,out] | diag | Diagnostic control structure used as the contructor |
Definition at line 3526 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_set_state_ptrs | ( | real, dimension(:,:,:), intent(in), target | h, |
real, dimension(:,:,:), intent(in), target | T, | ||
real, dimension(:,:,:), intent(in), target | S, | ||
type(eos_type), intent(in), target | eqn_of_state, | ||
type(diag_ctrl), intent(inout) | diag_cs | ||
) |
Set pointers to the default state fields used to remap diagnostics.
[in] | h | the model thickness array |
[in] | t | the model temperature array |
[in] | s | the model salinity array |
[in] | eqn_of_state | Equation of state structure |
[in,out] | diag_cs | diag mediator control structure |
Definition at line 3147 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::diag_update_remap_grids | ( | type(diag_ctrl), intent(inout) | diag_cs, |
real, dimension(:,:,:), intent(in), optional, target | alt_h, | ||
real, dimension(:,:,:), intent(in), optional, target | alt_T, | ||
real, dimension(:,:,:), intent(in), optional, target | alt_S | ||
) |
Build/update vertical grids for diagnostic remapping.
[in,out] | diag_cs | Diagnostics control structure |
[in] | alt_h | Used if remapped grids should be something other than the current thicknesses |
[in] | alt_t | Used if remapped grids should be something other than the current temperatures |
[in] | alt_s | Used if remapped grids should be something other than the current salinity |
Definition at line 3165 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::disable_averaging | ( | type(diag_ctrl), intent(inout) | diag_cs | ) |
Call this subroutine to avoid averaging any offered fields.
[in,out] | diag_cs | Structure used to regulate diagnostic output |
Definition at line 1820 of file MOM_diag_mediator.F90.
|
private |
This subroutine allocates and computes a downsampled array from an input array It also determines the diagnostics-compurte indices for the downsampled array 2d interface.
locfield | Input array pointer | |
[in,out] | locfield_dsamp | Output (downsampled) array |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | diag | A structure describing the diagnostic to post |
[in] | dl | Level of down sampling |
[in,out] | isv | i-start index for diagnostics |
[in,out] | iev | i-end index for diagnostics |
[in,out] | jsv | j-start index for diagnostics |
[in,out] | jev | j-end index for diagnostics |
[in] | mask | If present, use this real array as the data mask. |
Definition at line 3752 of file MOM_diag_mediator.F90.
|
private |
This subroutine allocates and computes a downsampled array from an input array It also determines the diagnostics-compurte indices for the downsampled array 3d interface.
locfield | Input array pointer | |
[in,out] | locfield_dsamp | Output (downsampled) array |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | diag | A structure describing the diagnostic to post |
[in] | dl | Level of down sampling |
[in,out] | isv | i-start index for diagnostics |
[in,out] | iev | i-end index for diagnostics |
[in,out] | jsv | j-start index for diagnostics |
[in,out] | jev | j-end index for diagnostics |
[in] | mask | If present, use this real array as the data mask. |
Definition at line 3711 of file MOM_diag_mediator.F90.
|
private |
Get the diagnostics-compute indices (to be passed to send_data) based on the shape of the diag field (the same way they are deduced for non-downsampled fields)
[in] | fo1 | The size of the diag field in x |
[in] | fo2 | The size of the diag field in y |
[in] | dl | Integer downsample level |
[in] | diag_cs | Structure used to regulate diagnostic output |
[out] | isv | i-start index for diagnostics |
[out] | iev | i-end index for diagnostics |
[out] | jsv | j-start index for diagnostics |
[out] | jev | j-end index for diagnostics |
Definition at line 3638 of file MOM_diag_mediator.F90.
|
private |
[in] | g | The ocean grid type. |
[in] | nz | The number of layers in the model's native grid. |
diag_cs | A pointer to a type with many variables used for diagnostics |
Definition at line 3579 of file MOM_diag_mediator.F90.
|
private |
This subroutine allocates and computes a down sampled 2d array given an input array The down sample method is based on the "cell_methods" for the diagnostics as explained in the above table.
field_in | Original field to be down sampled | |
field_out | Down sampled field | |
[in] | dl | Level of down sampling |
[in] | method | Sampling method |
mask | Mask for field | |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | diag | A structure describing the diagnostic to post |
[in] | isv_o | Original i-start index |
[in] | jsv_o | Original j-start index |
[in] | isv_d | i-start index of down sampled data |
[in] | iev_d | i-end index of down sampled data |
[in] | jsv_d | j-start index of down sampled data |
[in] | jev_d | j-end index of down sampled data |
Definition at line 3998 of file MOM_diag_mediator.F90.
|
private |
This subroutine allocates and computes a down sampled 3d array given an input array The down sample method is based on the "cell_methods" for the diagnostics as explained in the above table.
The down sample method could be deduced (before send_data call) from the diagx_cell_method, diagy_cell_method and diagv_cell_method
This is the summary of the down sample algoritm for a diagnostic field f:
\[ f(Id,Jd) = \sum_{i,j} f(Id+i,Jd+j) * weight(Id+i,Jd+j) / [ \sum_{i,j} weight(Id+i,Jd+j)] \]
Here, i and j run from 0 to dl-1 (dl being the down sample level). Id,Jd are the down sampled (coarse grid) indices run over the coarsened compute grid, if and jf are the original (fine grid) indices.
Example x_cell y_cell v_cell algorithm_id implemented weight(if,jf) --------------------------------------------------------------------------------------- theta mean mean mean MMM =222 G%areaT(if,jf)*h(if,jf) u point mean mean PMM =022 dyCu(if,jf)*h(if,jf)*delta(if,Id) v mean point mean MPM =202 dxCv(if,jf)*h(if,jf)*delta(jf,Jd) ? point sum mean PSM =012 h(if,jf)*delta(if,Id) volcello sum sum sum SSS =111 1 T_dfxy_co sum sum point SSP =110 1 umo point sum sum PSS =011 1*delta(if,Id) vmo sum point sum SPS =101 1*delta(jf,Jd) umo_2d point sum point PSP =010 1*delta(if,Id) vmo_2d sum point point SPP =100 1*delta(jf,Jd) ? point mean point PMP =020 dyCu(if,jf)*delta(if,Id) ? mean point point MPP =200 dxCv(if,jf)*delta(jf,Jd) w mean mean point MMP =220 G%areaT(if,jf) h*theta mean mean sum MMS =221 G%areaT(if,jf) delta is the Kronecker delta
field_in | Original field to be down sampled | |
field_out | down sampled field | |
[in] | dl | Level of down sampling |
[in] | method | Sampling method |
mask | Mask for field | |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | diag | A structure describing the diagnostic to post |
[in] | isv_o | Original i-start index |
[in] | jsv_o | Original j-start index |
[in] | isv_d | i-start index of down sampled data |
[in] | iev_d | i-end index of down sampled data |
[in] | jsv_d | j-start index of down sampled data |
[in] | jev_d | j-end index of down sampled data |
Definition at line 3827 of file MOM_diag_mediator.F90.
|
private |
Allocate and compute the 2d down sampled mask The masks are down sampled based on a minority rule, i.e., a coarse cell is open (1) if at least one of the sub-cells are open, otherwise it's closed (0)
[in] | field_in | Original field to be down sampled |
field_out | Down sampled field | |
[in] | dl | Level of down sampling |
[in] | isc_o | Original i-start index |
[in] | jsc_o | Original j-start index |
[in] | isc_d | Computational i-start index of down sampled data |
[in] | iec_d | Computational i-end index of down sampled data |
[in] | jsc_d | Computational j-start index of down sampled data |
[in] | jec_d | Computational j-end index of down sampled data |
[in] | isd_d | Computational i-start index of down sampled data |
[in] | ied_d | Computational i-end index of down sampled data |
[in] | jsd_d | Computational j-start index of down sampled data |
[in] | jed_d | Computational j-end index of down sampled data |
Definition at line 4139 of file MOM_diag_mediator.F90.
|
private |
Allocate and compute the 3d down sampled mask The masks are down sampled based on a minority rule, i.e., a coarse cell is open (1) if at least one of the sub-cells are open, otherwise it's closed (0)
[in] | field_in | Original field to be down sampled |
field_out | down sampled field | |
[in] | dl | Level of down sampling |
[in] | isc_o | Original i-start index |
[in] | jsc_o | Original j-start index |
[in] | isc_d | Computational i-start index of down sampled data |
[in] | iec_d | Computational i-end index of down sampled data |
[in] | jsc_d | Computational j-start index of down sampled data |
[in] | jec_d | Computational j-end index of down sampled data |
[in] | isd_d | Computational i-start index of down sampled data |
[in] | ied_d | Computational i-end index of down sampled data |
[in] | jsd_d | Computational j-start index of down sampled data |
[in] | jed_d | Computational j-end index of down sampled data |
Definition at line 4174 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::enable_averaging | ( | real, intent(in) | time_int_in, |
type(time_type), intent(in) | time_end_in, | ||
type(diag_ctrl), intent(inout) | diag_cs | ||
) |
This subroutine enables the accumulation of time averages over the specified time interval.
[in] | time_int_in | The time interval [s] over which any values that are offered are valid. |
[in] | time_end_in | The end time of the valid interval |
[in,out] | diag_cs | Structure used to regulate diagnostic output |
Definition at line 1804 of file MOM_diag_mediator.F90.
type(time_type) function, public mom_diag_mediator::get_diag_time_end | ( | type(diag_ctrl), intent(in) | diag_cs | ) |
This function returns the valid end time for use with diagnostics that are handled outside of the MOM6 diagnostics infrastructure.
[in] | diag_cs | Structure used to regulate diagnostic output |
Definition at line 1843 of file MOM_diag_mediator.F90.
|
private |
Returns a new diagnostic id, it may be necessary to expand the diagnostics array.
[in,out] | diag_cs | Diagnostics control structure |
Definition at line 3355 of file MOM_diag_mediator.F90.
|
private |
Convert the first n elements (up to 3) of an integer array to an underscore delimited string.
[in] | a | The array of integers to translate |
[in] | n_in | The number of elements to translate, by default all |
Definition at line 3333 of file MOM_diag_mediator.F90.
|
private |
Initializes a diag_type (used after allocating new memory)
[in,out] | diag | diag_type to be initialized |
Definition at line 3386 of file MOM_diag_mediator.F90.
|
private |
Log a diagnostic to the available diagnostics file.
[in] | used | Whether this diagnostic was in the diag_table or not |
[in] | module_name | Name of the diagnostic module |
[in] | field_name | Name of this diagnostic field |
[in] | cell_methods_string | The spatial component of the CF cell_methods attribute |
[in] | comment | A comment to append after [Used|Unused] |
[in] | diag_cs | The diagnotics control structure |
[in] | long_name | CF long name of diagnostic |
[in] | units | Units for diagnostic |
[in] | standard_name | CF standardized name of diagnostic |
Definition at line 3420 of file MOM_diag_mediator.F90.
|
private |
Log the diagnostic chksum to the chksum diag file.
[in] | docunit | Handle of the log file |
[in] | description | Name of the diagnostic module |
[in] | chksum | chksum of the diagnostic |
Definition at line 3453 of file MOM_diag_mediator.F90.
integer function, public mom_diag_mediator::ocean_register_diag | ( | type(vardesc), intent(in) | var_desc, |
type(ocean_grid_type), intent(in) | G, | ||
type(diag_ctrl), intent(in), target | diag_CS, | ||
type(time_type), intent(in) | day | ||
) |
Registers a diagnostic using the information encapsulated in the vardesc type argument and returns an integer handle to this diagostic. That integer handle is negative if the diagnostic is unused.
[in] | var_desc | The vardesc type describing the diagnostic |
[in] | g | The ocean's grid type |
[in] | diag_cs | The diagnotic control structure |
[in] | day | The current model time |
Definition at line 2840 of file MOM_diag_mediator.F90.
|
private |
Make a real scalar diagnostic available for averaging or output.
[in] | diag_field_id | The id for an output variable returned by a previous call to register_diag_field. |
[in] | field | real value being offered for output or averaging |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | is_static | If true, this is a static field that is always offered. |
Definition at line 1199 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::post_data_1d_k | ( | integer, intent(in) | diag_field_id, |
real, dimension(:), intent(in), target | field, | ||
type(diag_ctrl), intent(in), target | diag_cs, | ||
logical, intent(in), optional | is_static | ||
) |
Make a real 1-d array diagnostic available for averaging or output.
[in] | diag_field_id | The id for an output variable returned by a previous call to register_diag_field. |
[in] | field | 1-d array being offered for output or averaging |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | is_static | If true, this is a static field that is always offered. |
Definition at line 1233 of file MOM_diag_mediator.F90.
|
private |
Make a real 2-d array diagnostic available for averaging or output.
[in] | diag_field_id | The id for an output variable returned by a previous call to register_diag_field. |
[in] | field | 2-d array being offered for output or averaging |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | is_static | If true, this is a static field that is always offered. |
[in] | mask | If present, use this real array as the data mask. |
Definition at line 1287 of file MOM_diag_mediator.F90.
|
private |
Make a real 2-d array diagnostic available for averaging or output using a diag_type instead of an integer id.
[in] | diag | A structure describing the diagnostic to post |
[in] | field | 2-d array being offered for output or averaging |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | is_static | If true, this is a static field that is always offered. |
[in] | mask | If present, use this real array as the data mask. |
Definition at line 1314 of file MOM_diag_mediator.F90.
|
private |
Make a real 3-d array diagnostic available for averaging or output.
[in] | diag_field_id | The id for an output variable returned by a previous call to register_diag_field. |
[in] | field | 3-d array being offered for output or averaging |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | is_static | If true, this is a static field that is always offered. |
[in] | mask | If present, use this real array as the data mask. |
[in] | alt_h | An alternate thickness to use for vertically |
Definition at line 1458 of file MOM_diag_mediator.F90.
|
private |
Make a real 3-d array diagnostic available for averaging or output using a diag_type instead of an integer id.
[in] | diag | A structure describing the diagnostic to post |
[in] | field | 3-d array being offered for output or averaging |
[in] | diag_cs | Structure used to regulate diagnostic output |
[in] | is_static | If true, this is a static field that is always offered. |
[in] | mask | If present, use this real array as the data mask. |
Definition at line 1579 of file MOM_diag_mediator.F90.
|
private |
Post the horizontally area-averaged diagnostic.
[in] | diag | This diagnostic |
[in] | field | Diagnostic field |
[in] | diag_cs | Diagnostics mediator control structure |
Definition at line 1751 of file MOM_diag_mediator.F90.
logical function, public mom_diag_mediator::query_averaging_enabled | ( | type(diag_ctrl), intent(in) | diag_cs, |
real, intent(out), optional | time_int, | ||
type(time_type), intent(out), optional | time_end | ||
) |
Call this subroutine to determine whether the averaging is currently enabled. .true. is returned if it is.
[in] | diag_cs | Structure used to regulate diagnostic output |
[out] | time_int | Current setting of diagtime_int [s] |
[out] | time_end | Current setting of diagtime_end |
Definition at line 1830 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::register_cell_measure | ( | type(ocean_grid_type), intent(in) | G, |
type(diag_ctrl), intent(inout), target | diag, | ||
type(time_type), intent(in) | Time | ||
) |
Sets a handle inside diagnostics mediator to associate 3d cell measures.
[in] | g | Ocean grid structure |
[in,out] | diag | Regulates diagnostic output |
[in] | time | Model time |
Definition at line 893 of file MOM_diag_mediator.F90.
integer function, public mom_diag_mediator::register_diag_field | ( | character(len=*), intent(in) | module_name, |
character(len=*), intent(in) | field_name, | ||
type(axes_grp), intent(in), target | axes_in, | ||
type(time_type), intent(in) | init_time, | ||
character(len=*), intent(in), optional | long_name, | ||
character(len=*), intent(in), optional | units, | ||
real, intent(in), optional | missing_value, | ||
real, dimension(2), intent(in), optional | range, | ||
logical, intent(in), optional | mask_variant, | ||
character(len=*), intent(in), optional | standard_name, | ||
logical, intent(in), optional | verbose, | ||
logical, intent(in), optional | do_not_log, | ||
character(len=*), intent(out), optional | err_msg, | ||
character(len=*), intent(in), optional | interp_method, | ||
integer, intent(in), optional | tile_count, | ||
character(len=*), intent(in), optional | cmor_field_name, | ||
character(len=*), intent(in), optional | cmor_long_name, | ||
character(len=*), intent(in), optional | cmor_units, | ||
character(len=*), intent(in), optional | cmor_standard_name, | ||
character(len=*), intent(in), optional | cell_methods, | ||
character(len=*), intent(in), optional | x_cell_method, | ||
character(len=*), intent(in), optional | y_cell_method, | ||
character(len=*), intent(in), optional | v_cell_method, | ||
real, intent(in), optional | conversion, | ||
logical, intent(in), optional | v_extensive | ||
) |
Returns the "diag_mediator" handle for a group (native, CMOR, z-coord, ...) of diagnostics derived from one field.
[in] | module_name | Name of this module, usually "ocean_model" or "ice_shelf_model" |
[in] | field_name | Name of the diagnostic field |
[in] | axes_in | Container w/ up to 3 integer handles that indicates axes for this field |
[in] | init_time | Time at which a field is first available? |
[in] | long_name | Long name of a field. |
[in] | units | Units of a field. |
[in] | standard_name | Standardized name associated with a field |
[in] | missing_value | A value that indicates missing values. |
[in] | range | Valid range of a variable (not used in MOM?) |
[in] | mask_variant | If true a logical mask must be provided with post_data calls (not used in MOM?) |
[in] | verbose | If true, FMS is verbose (not used in MOM?) |
[in] | do_not_log | If true, do not log something (not used in MOM?) |
[out] | err_msg | String into which an error message might be placed (not used in MOM?) |
[in] | interp_method | If 'none' indicates the field should not be interpolated as a scalar |
[in] | tile_count | no clue (not used in MOM?) |
[in] | cmor_field_name | CMOR name of a field |
[in] | cmor_long_name | CMOR long name of a field |
[in] | cmor_units | CMOR units of a field |
[in] | cmor_standard_name | CMOR standardized name associated with a field |
[in] | cell_methods | String to append as cell_methods attribute. Use '' to have no attribute. If present, this overrides the default constructed from the default for each individual axis direction. |
[in] | x_cell_method | Specifies the cell method for the x-direction. Use '' have no method. |
[in] | y_cell_method | Specifies the cell method for the y-direction. Use '' have no method. |
[in] | v_cell_method | Specifies the cell method for the vertical direction. Use '' have no method. |
[in] | conversion | A value to multiply data by before writing to file |
[in] | v_extensive | True for vertically extensive fields (vertically integrated). Default/absent for intensive. |
Definition at line 1858 of file MOM_diag_mediator.F90.
|
private |
Returns an FMS id from register_diag_field_fms (the diag_manager routine) after expanding axes (axes-group) into handles and conditionally adding an FMS area_id for cell_measures.
[in] | module_name | Name of this module, usually "ocean_model" or "ice_shelf_model" |
[in] | field_name | Name of the diagnostic field |
[in] | axes | Container w/ up to 3 integer handles that indicates axes for this field |
[in] | init_time | Time at which a field is first available? |
[in] | long_name | Long name of a field. |
[in] | units | Units of a field. |
[in] | standard_name | Standardized name associated with a field |
[in] | missing_value | A value that indicates missing values. |
[in] | range | Valid range of a variable (not used in MOM?) |
[in] | mask_variant | If true a logical mask must be provided with post_data calls (not used in MOM?) |
[in] | verbose | If true, FMS is verbose (not used in MOM?) |
[in] | do_not_log | If true, do not log something (not used in MOM?) |
[out] | err_msg | String into which an error message might be placed (not used in MOM?) |
[in] | interp_method | If 'none' indicates the field should not be interpolated as a scalar |
[in] | tile_count | no clue (not used in MOM?) |
Definition at line 2266 of file MOM_diag_mediator.F90.
|
private |
Returns True if either the native or CMOr version of the diagnostic were registered. Updates 'dm_id' after calling register_diag_field_expand_axes() for both native and CMOR variants of the field.
[in,out] | dm_id | The diag_mediator ID for this diagnostic group |
[in] | module_name | Name of this module, usually "ocean_model" or "ice_shelf_model" |
[in] | field_name | Name of the diagnostic field |
[in] | axes | Container w/ up to 3 integer handles that indicates axes for this field |
[in] | init_time | Time at which a field is first available? |
[in] | long_name | Long name of a field. |
[in] | units | Units of a field. |
[in] | standard_name | Standardized name associated with a field |
[in] | missing_value | A value that indicates missing values. |
[in] | range | Valid range of a variable (not used in MOM?) |
[in] | mask_variant | If true a logical mask must be provided with post_data calls (not used in MOM?) |
[in] | verbose | If true, FMS is verbose (not used in MOM?) |
[in] | do_not_log | If true, do not log something (not used in MOM?) |
[out] | err_msg | String into which an error message might be placed (not used in MOM?) |
[in] | interp_method | If 'none' indicates the field should not be interpolated as a scalar |
[in] | tile_count | no clue (not used in MOM?) |
[in] | cmor_field_name | CMOR name of a field |
[in] | cmor_long_name | CMOR long name of a field |
[in] | cmor_units | CMOR units of a field |
[in] | cmor_standard_name | CMOR standardized name associated with a field |
[in] | cell_methods | String to append as cell_methods attribute. Use '' to have no attribute. If present, this overrides the default constructed from the default for each individual axis direction. |
[in] | x_cell_method | Specifies the cell method for the x-direction. Use '' have no method. |
[in] | y_cell_method | Specifies the cell method for the y-direction. Use '' have no method. |
[in] | v_cell_method | Specifies the cell method for the vertical direction. Use '' have no method. |
[in] | conversion | A value to multiply data by before writing to file |
[in] | v_extensive | True for vertically extensive fields (vertically integrated). Default/absent for intensive. |
Definition at line 2101 of file MOM_diag_mediator.F90.
integer function, public mom_diag_mediator::register_scalar_field | ( | character(len=*), intent(in) | module_name, |
character(len=*), intent(in) | field_name, | ||
type(time_type), intent(in) | init_time, | ||
type(diag_ctrl), intent(inout) | diag_cs, | ||
character(len=*), intent(in), optional | long_name, | ||
character(len=*), intent(in), optional | units, | ||
real, intent(in), optional | missing_value, | ||
real, dimension(2), intent(in), optional | range, | ||
character(len=*), intent(in), optional | standard_name, | ||
logical, intent(in), optional | do_not_log, | ||
character(len=*), intent(out), optional | err_msg, | ||
character(len=*), intent(in), optional | interp_method, | ||
character(len=*), intent(in), optional | cmor_field_name, | ||
character(len=*), intent(in), optional | cmor_long_name, | ||
character(len=*), intent(in), optional | cmor_units, | ||
character(len=*), intent(in), optional | cmor_standard_name | ||
) |
[in] | module_name | Name of this module, usually "ocean_model" or "ice_shelf_model" |
[in] | field_name | Name of the diagnostic field |
[in] | init_time | Time at which a field is first available? |
[in,out] | diag_cs | Structure used to regulate diagnostic output |
[in] | long_name | Long name of a field. |
[in] | units | Units of a field. |
[in] | standard_name | Standardized name associated with a field |
[in] | missing_value | A value that indicates missing values. |
[in] | range | Valid range of a variable (not used in MOM?) |
[in] | do_not_log | If true, do not log something (not used in MOM?) |
[out] | err_msg | String into which an error message might be placed (not used in MOM?) |
[in] | interp_method | If 'none' indicates the field should not be interpolated as a scalar |
[in] | cmor_field_name | CMOR name of a field |
[in] | cmor_long_name | CMOR long name of a field |
[in] | cmor_units | CMOR units of a field |
[in] | cmor_standard_name | CMOR standardized name associated with a field |
Definition at line 2576 of file MOM_diag_mediator.F90.
integer function, public mom_diag_mediator::register_static_field | ( | character(len=*), intent(in) | module_name, |
character(len=*), intent(in) | field_name, | ||
type(axes_grp), intent(in), target | axes, | ||
character(len=*), intent(in), optional | long_name, | ||
character(len=*), intent(in), optional | units, | ||
real, intent(in), optional | missing_value, | ||
real, dimension(2), intent(in), optional | range, | ||
logical, intent(in), optional | mask_variant, | ||
character(len=*), intent(in), optional | standard_name, | ||
logical, intent(in), optional | do_not_log, | ||
character(len=*), intent(in), optional | interp_method, | ||
integer, intent(in), optional | tile_count, | ||
character(len=*), intent(in), optional | cmor_field_name, | ||
character(len=*), intent(in), optional | cmor_long_name, | ||
character(len=*), intent(in), optional | cmor_units, | ||
character(len=*), intent(in), optional | cmor_standard_name, | ||
integer, intent(in), optional | area, | ||
character(len=*), intent(in), optional | x_cell_method, | ||
character(len=*), intent(in), optional | y_cell_method, | ||
character(len=*), intent(in), optional | area_cell_method, | ||
real, intent(in), optional | conversion | ||
) |
Registers a static diagnostic, returning an integer handle.
[in] | module_name | Name of this module, usually "ocean_model" or "ice_shelf_model" |
[in] | field_name | Name of the diagnostic field |
[in] | axes | Container w/ up to 3 integer handles that indicates axes for this field |
[in] | long_name | Long name of a field. |
[in] | units | Units of a field. |
[in] | standard_name | Standardized name associated with a field |
[in] | missing_value | A value that indicates missing values. |
[in] | range | Valid range of a variable (not used in MOM?) |
[in] | mask_variant | If true a logical mask must be provided with post_data calls (not used in MOM?) |
[in] | do_not_log | If true, do not log something (not used in MOM?) |
[in] | interp_method | If 'none' indicates the field should not be interpolated as a scalar |
[in] | tile_count | no clue (not used in MOM?) |
[in] | cmor_field_name | CMOR name of a field |
[in] | cmor_long_name | CMOR long name of a field |
[in] | cmor_units | CMOR units of a field |
[in] | cmor_standard_name | CMOR standardized name associated with a field |
[in] | area | fms_id for area_t |
[in] | x_cell_method | Specifies the cell method for the x-direction. |
[in] | y_cell_method | Specifies the cell method for the y-direction. |
[in] | area_cell_method | Specifies the cell method for area |
[in] | conversion | A value to multiply data by before writing to file |
Definition at line 2680 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::set_axes_info | ( | type(ocean_grid_type), intent(inout) | G, |
type(verticalgrid_type), intent(in) | GV, | ||
type(unit_scale_type), intent(in) | US, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(inout) | diag_cs, | ||
logical, intent(in), optional | set_vertical | ||
) |
Sets up diagnostics axes.
[in,out] | g | Ocean grid structure |
[in] | gv | ocean vertical grid structure |
[in] | us | A dimensional unit scaling type |
[in] | param_file | Parameter file structure |
[in,out] | diag_cs | Diagnostics control structure |
[in] | set_vertical | If true or missing, set up vertical axes |
Definition at line 344 of file MOM_diag_mediator.F90.
|
private |
[in] | g | Ocean grid structure |
[in] | gv | ocean vertical grid structure |
[in] | param_file | Parameter file structure |
[in,out] | diag_cs | Diagnostics control structure |
[in] | id_zl_native | ID of native layers |
[in] | id_zi_native | ID of native interfaces |
Definition at line 533 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::set_diag_mediator_grid | ( | type(ocean_grid_type), intent(inout) | G, |
type(diag_ctrl), intent(inout) | diag_cs | ||
) |
Set up the array extents for doing diagnostics.
[in,out] | g | The ocean's grid structure |
[in,out] | diag_cs | Structure used to regulate diagnostic output |
Definition at line 1187 of file MOM_diag_mediator.F90.
subroutine, public mom_diag_mediator::set_masks_for_axes | ( | type(ocean_grid_type), intent(in), target | G, |
type(diag_ctrl), pointer | diag_cs | ||
) |
set_masks_for_axes sets up the 2d and 3d masks for diagnostics using the current grid recorded after calling diag_update_remap_grids()
[in] | g | The ocean grid type. |
diag_cs | A pointer to a type with many variables used for diagnostics |
Definition at line 706 of file MOM_diag_mediator.F90.
|
private |
[in] | g | The ocean grid type. |
diag_cs | A pointer to a type with many variables used for diagnostics |
Definition at line 804 of file MOM_diag_mediator.F90.
|
private |
Sets up diagnostics axes.
[in,out] | g | Ocean grid structure |
[in] | gv | ocean vertical grid structure |
[in] | us | A dimensional unit scaling type |
[in] | param_file | Parameter file structure |
[in,out] | diag_cs | Diagnostics control structure |
[in] | set_vertical | If true or missing, set up vertical axes |
Definition at line 338 of file MOM_diag_mediator.F90.
integer mom_diag_mediator::id_clock_diag_mediator |
Sets up diagnostics axes.
[in,out] | g | Ocean grid structure |
[in] | gv | ocean vertical grid structure |
[in] | us | A dimensional unit scaling type |
[in] | param_file | Parameter file structure |
[in,out] | diag_cs | Diagnostics control structure |
[in] | set_vertical | If true or missing, set up vertical axes |
Definition at line 338 of file MOM_diag_mediator.F90.
|
private |
Sets up diagnostics axes.
[in,out] | g | Ocean grid structure |
[in] | gv | ocean vertical grid structure |
[in] | us | A dimensional unit scaling type |
[in] | param_file | Parameter file structure |
[in,out] | diag_cs | Diagnostics control structure |
[in] | set_vertical | If true or missing, set up vertical axes |
Definition at line 338 of file MOM_diag_mediator.F90.