mom_io_file module reference

This module contains the MOM file handler types.

More…

Data Types

mom_axis

Handle for axis in MOM file.

axis_list_infra

Linked list of framework axes.

axis_node_infra

Framework axis linked list node.

axis_list_nc

Linked list of framework axes.

axis_node_nc

Framework axis linked list node.

mom_field

Handle for field in MOM file.

field_list_infra

Linked list of framework fields.

field_node_infra

Framework field linked list node.

field_list_nc

Linked list of framework fields.

field_node_nc

Framework field linked list node.

mom_file

Generic MOM file abstraction for common operations.

mom_infra_file

MOM file from the supporting framework (“infra”) layer.

mom_netcdf_file

MOM file using netCDF backend.

Functions/Subroutines

initialize_axis_list_infra()

Initialize the linked list of framework axes.

append_axis_list_infra()

Append a new axis to the list.

get_axis_list_infra()

Get axis based on label.

finalize_axis_list_infra()

Deallocate axes of list.

initialize_axis_list_nc()

Initialize the linked list of framework axes.

append_axis_list_nc()

Append a new axis to the list.

get_axis_list_nc()

Get axis based on label.

finalize_axis_list_nc()

Deallocate axes of list.

initialize_field_list_infra()

Initialize the linked list of framework axes.

append_field_list_infra()

Append a new field to the list.

get_field_list_infra()

Get axis based on label.

finalize_field_list_infra()

Deallocate fields of list.

initialize_field_list_nc()

Initialize the linked list of framework axes.

append_field_list_nc()

Append a new field to the list.

get_field_list_nc()

Get axis based on label.

finalize_field_list_nc()

Deallocate fields of list.

open_file_infra()

Open a MOM framework file.

close_file_infra()

Close a MOM framework file.

flush_file_infra()

Flush the buffer of a MOM framework file.

register_axis_infra()

Register an axis to the MOM framework file.

register_field_infra()

Register a field to the MOM framework file.

write_field_4d_infra()

Write a 4D field to the MOM framework file.

write_field_3d_infra()

Write a 3D field to the MOM framework file.

write_field_2d_infra()

Write a 2D field to the MOM framework file.

write_field_1d_infra()

Write a 1D field to the MOM framework file.

write_field_0d_infra()

Write a 0D field to the MOM framework file.

write_field_axis_infra()

Write an axis field to the MOM framework file.

write_attribute_infra()

Write global metadata to the MOM framework file.

file_is_open_infra()

True if the framework file has been opened.

get_file_info_infra()

Return number of dimensions, variables, or time levels in a MOM infra file.

get_file_fields_infra()

Return the field metadata associated with a MOM framework file.

get_file_times_infra()

Get time levels of a MOM framework file.

get_field_atts_infra()

Get attributes from a field.

read_field_chksum_infra()

Interface to read_field_chksum.

get_file_fieldtypes()

Get the native (fieldtype) fields of a MOM framework file.

open_file_nc()

Open a MOM netCDF file.

close_file_nc()

Close a MOM netCDF file.

flush_file_nc()

Flush the buffer of a MOM netCDF file.

register_axis_nc()

Register an axis to the MOM netcdf file.

register_field_nc()

Register a field to the MOM netcdf file.

write_attribute_nc()

Write global metadata to the MOM netcdf file.

write_field_4d_nc()

Write a 4D field to the MOM netcdf file.

write_field_3d_nc()

Write a 3D field to the MOM netcdf file.

write_field_2d_nc()

Write a 2D field to the MOM netcdf file.

write_field_1d_nc()

Write a 1D field to the MOM netcdf file.

write_field_0d_nc()

Write a 0D field to the MOM netcdf file.

write_field_axis_nc()

Write an axis field to the MOM netcdf file.

file_is_open_nc()

True if the framework file has been opened.

get_file_info_nc()

Return number of dimensions, variables, or time levels in a MOM netcdf file.

update_file_contents_nc()

Update the axes and fields descriptors of a MOM netCDF file.

get_file_fields_nc()

Return the field descriptors of a MOM netCDF file.

get_field_atts_nc()

Get attributes from a netCDF field.

read_field_chksum_nc()

Interface to read_field_chksum.

get_field_nc()

Read the values of a netCDF field into an array that might have halos.

Detailed Description

This module contains the MOM file handler types.

Type Documentation

type mom_io_file/mom_axis

Handle for axis in MOM file.

Type fields:
  • % label [character (len=:),allocatable, private] :: Identifier for the axis in handle’s list.

type mom_io_file/axis_list_infra

Linked list of framework axes.

Type fields:
  • % head [type( axis_node_infra ),pointer, private] :: Head of axis linked list.

  • % tail [type( axis_node_infra ),pointer, private] :: Tail of axis linked list.

  • % init [procedure,private] :: Initialize the framework axis list.

  • % append [procedure,private] :: Append a new axis to the framework axis list.

  • % get [procedure,private] :: Get an axis from the framework axis list.

  • % finalize [procedure,private] :: Deallocate the framework axis list.

type mom_io_file/axis_node_infra

Framework axis linked list node.

Type fields:
  • % label [character (len=:),allocatable, private] :: Axis identifier.

  • % next [type( axis_node_infra ),pointer, private] :: Pointer to next axis node.

  • % axis [type(axistype),private] :: Axis node contents.

type mom_io_file/axis_list_nc

Linked list of framework axes.

Type fields:
  • % head [type( axis_node_nc ),pointer, private] :: Head of axis linked list.

  • % tail [type( axis_node_nc ),pointer, private] :: Tail of axis linked list.

  • % init [procedure,private] :: Initialize the netCDF axis list.

  • % append [procedure,private] :: Append a new axis to the netCDF axis list.

  • % get [procedure,private] :: Get an axis from the netCDF axis list.

  • % finalize [procedure,private] :: Deallocate the netCDF axis list.

type mom_io_file/axis_node_nc

Framework axis linked list node.

Type fields:
  • % label [character (len=:),allocatable, private] :: Axis identifier.

  • % next [type( axis_node_nc ),pointer, private] :: Pointer to next axis node.

  • % axis [type( netcdf_axis ),private] :: Axis node contents.

type mom_io_file/mom_field

Handle for field in MOM file.

Type fields:
  • % label [character (len=:),allocatable, private] :: Identifier for the field in the handle’s list.

type mom_io_file/field_list_infra

Linked list of framework fields.

Type fields:
  • % head [type( field_node_infra ),pointer, private] :: Head of field linked list.

  • % tail [type( field_node_infra ),pointer, private] :: Tail of field linked list.

  • % init [procedure,private] :: Initialize the framework field list.

  • % append [procedure,private] :: Append a new axis to the framework field list.

  • % get [procedure,private] :: Get an axis from the framework field list.

  • % finalize [procedure,private] :: Deallocate the framework field list.

type mom_io_file/field_node_infra

Framework field linked list node.

Type fields:
  • % label [character (len=:),allocatable, private] :: Field identifier.

  • % field [type(fieldtype),private] :: Field node contents.

  • % next [type( field_node_infra ),pointer, private] :: Pointer to next field node.

type mom_io_file/field_list_nc

Linked list of framework fields.

Type fields:
  • % head [type( field_node_nc ),pointer, private] :: Head of field linked list.

  • % tail [type( field_node_nc ),pointer, private] :: Tail of field linked list.

  • % init [procedure,private] :: Initialize the netCDF field list.

  • % append [procedure,private] :: Append a new axis to the netCDF field list.

  • % get [procedure,private] :: Get an axis from the netCDF field list.

  • % finalize [procedure,private] :: Deallocate the netCDF field list.

type mom_io_file/field_node_nc

Framework field linked list node.

Type fields:
  • % label [character (len=:),allocatable, private] :: Field identifier.

  • % field [type( netcdf_field ),private] :: Field node contents.

  • % next [type( field_node_nc ),pointer, private] :: Pointer to next field node.

type mom_io_file/mom_file

Generic MOM file abstraction for common operations.

Type fields:
  • % open [procedure( i_open_file ),deferred, private] :: Open a file and connect to the MOM_file object.

  • % close [procedure( i_close_file ),deferred, private] :: Close the MOM file.

  • % flush [procedure( i_flush_file ),deferred, private] :: Flush buffered output to the MOM file.

  • % register_axis [procedure( i_register_axis ),deferred, private] :: Register an axis to the MOM file.

  • % register_field [procedure( i_register_field ),deferred, private] :: Register a field to the MOM file.

  • % write_attribute [procedure( i_write_attribute ),deferred, private] :: Write metadata to the MOM file.

  • % write_field [generic,private] :: Write field to a MOM file.

  • % write_field_4d [procedure( i_write_field_4d ),deferred, private] :: Write a 4D field to the MOM file.

  • % write_field_3d [procedure( i_write_field_3d ),deferred, private] :: Write a 3D field to the MOM file.

  • % write_field_2d [procedure( i_write_field_2d ),deferred, private] :: Write a 2D field to the MOM file.

  • % write_field_1d [procedure( i_write_field_1d ),deferred, private] :: Write a 1D field to the MOM file.

  • % write_field_0d [procedure( i_write_field_0d ),deferred, private] :: Write a 0D field to the MOM file.

  • % write_field_axis [procedure( i_write_field_axis ),deferred, private] :: Write an axis field to the MOM file.

  • % file_is_open [procedure( i_file_is_open ),deferred, private] :: Return true if MOM file has been opened.

  • % get_file_info [procedure( i_get_file_info ),deferred, private] :: Return number of dimensions, variables, or time levels in a MOM file.

  • % get_file_fields [procedure( i_get_file_fields ),deferred, private] :: Get field objects from a MOM file.

  • % get_field_atts [procedure( i_get_field_atts ),deferred, private] :: Get attributes from a field.

  • % read_field_chksum [procedure( i_read_field_chksum ),deferred, private] :: Get checksum from a field.

type mom_io_file/mom_infra_file

MOM file from the supporting framework (“infra”) layer.

Type fields:
  • % domain [type(mom_domain_type),pointer, public] :: Internal domain used for single-file IO.

  • % handle_infra [type(file_type),public] :: Framework-specific file handler content.

  • % axes [type( axis_list_infra ),private] :: List of axes in file.

  • % fields [type( field_list_infra ),private] :: List of fields in file.

  • % open [procedure,private] :: Open a framework file and connect to the MOM_file object.

  • % close [procedure,private] :: Close the MOM framework file.

  • % flush [procedure,private] :: Flush buffered output to the MOM framework file.

  • % register_axis [procedure,private] :: Register an axis to the MOM framework file.

  • % register_field [procedure,private] :: Register a field to the MOM framework file.

  • % write_attribute [procedure,private] :: Write global metadata to the MOM framework file.

  • % write_field_4d [procedure,private] :: Write a 4D field to the MOM framework file.

  • % write_field_3d [procedure,private] :: Write a 3D field to the MOM framework file.

  • % write_field_2d [procedure,private] :: Write a 2D field to the MOM framework file.

  • % write_field_1d [procedure,private] :: Write a 1D field to the MOM framework file.

  • % write_field_0d [procedure,private] :: Write a 0D field to the MOM framework file.

  • % write_field_axis [procedure,private] :: Write an axis field to the MOM framework file.

  • % file_is_open [procedure,private] :: Return true if MOM infra file has been opened.

  • % get_file_info [procedure,private] :: Return number of dimensions, variables, or time levels in a MOM infra file.

  • % get_file_fields [procedure,private] :: Get field metadata from a MOM infra file.

  • % get_field_atts [procedure,private] :: Get attributes from a field.

  • % read_field_chksum [procedure,private] :: Get checksum from a field.

  • % get_file_times [procedure,private] :: Get time levels of a MOM framework file.

  • % get_file_fieldtypes [procedure,private] :: Get the fields as fieldtypes from a file.

type mom_io_file/mom_netcdf_file

MOM file using netCDF backend.

Type fields:
  • % handle_nc [type( netcdf_file_type ),private] :: Framework-specific file handler content.

  • % axes [type( axis_list_nc ),private] :: List of netCDF axes.

  • % fields [type( field_list_nc ),private] :: List of netCDF fields.

  • % is_open [logical,private] :: True if the file has been opened.

  • % domain_decomposed [logical,private] :: True if I/O content is domain-decomposed.

  • % hi [type( hor_index_type ),private] :: True if I/O content is domain-decomposed.

  • % open [procedure,private] :: Open a framework file and connect to the MOM_netcdf_file object.

  • % close [procedure,private] :: Close the MOM netcdf file.

  • % flush [procedure,private] :: Flush buffered output to the MOM netcdf file.

  • % register_axis [procedure,private] :: Register an axis to the MOM netcdf file.

  • % register_field [procedure,private] :: Register a field to the MOM netcdf file.

  • % write_attribute [procedure,private] :: Write global metadata to the MOM netcdf file.

  • % write_field_4d [procedure,private] :: Write a 4D field to the MOM netcdf file.

  • % write_field_3d [procedure,private] :: Write a 3D field to the MOM netcdf file.

  • % write_field_2d [procedure,private] :: Write a 2D field to the MOM netcdf file.

  • % write_field_1d [procedure,private] :: Write a 1D field to the MOM netcdf file.

  • % write_field_0d [procedure,private] :: Write a 0D field to the MOM netcdf file.

  • % write_field_axis [procedure,private] :: Write an axis field to the MOM netcdf file.

  • % file_is_open [procedure,private] :: Return true if MOM netcdf file has been opened.

  • % get_file_info [procedure,private] :: Return number of dimensions, variables, or time levels in a MOM netcdf file.

  • % get_file_fields [procedure,private] :: Get field metadata from a MOM netcdf file.

  • % get_field_atts [procedure,private] :: Get attributes from a netCDF field.

  • % read_field_chksum [procedure,private] :: Get checksum from a netCDF field.

  • % read [procedure,private] :: Read the values of a netCDF field.

  • % update [procedure,private] :: Update the axes and fields descriptors of a MOM netCDF file.

Function/Subroutine Documentation

subroutine mom_io_file/initialize_axis_list_infra(list)

Initialize the linked list of framework axes.

subroutine mom_io_file/append_axis_list_infra(list, axis, label)

Append a new axis to the list.

function mom_io_file/get_axis_list_infra(list, label) [type(axistype)]

Get axis based on label.

subroutine mom_io_file/finalize_axis_list_infra(list)

Deallocate axes of list.

subroutine mom_io_file/initialize_axis_list_nc(list)

Initialize the linked list of framework axes.

subroutine mom_io_file/append_axis_list_nc(list, axis, label)

Append a new axis to the list.

function mom_io_file/get_axis_list_nc(list, label) [type(netcdf_axis)]

Get axis based on label.

subroutine mom_io_file/finalize_axis_list_nc(list)

Deallocate axes of list.

subroutine mom_io_file/initialize_field_list_infra(list)

Initialize the linked list of framework axes.

subroutine mom_io_file/append_field_list_infra(list, field, label)

Append a new field to the list.

function mom_io_file/get_field_list_infra(list, label) [type(fieldtype)]

Get axis based on label.

subroutine mom_io_file/finalize_field_list_infra(list)

Deallocate fields of list.

subroutine mom_io_file/initialize_field_list_nc(list)

Initialize the linked list of framework axes.

subroutine mom_io_file/append_field_list_nc(list, field, label)

Append a new field to the list.

function mom_io_file/get_field_list_nc(list, label) [type(netcdf_field)]

Get axis based on label.

subroutine mom_io_file/finalize_field_list_nc(list)

Deallocate fields of list.

subroutine mom_io_file/open_file_infra(handle, filename, action, MOM_domain, threading, fileset)

Open a MOM framework file.

subroutine mom_io_file/close_file_infra(handle)

Close a MOM framework file.

subroutine mom_io_file/flush_file_infra(handle)

Flush the buffer of a MOM framework file.

function mom_io_file/register_axis_infra(handle, label, units, longname, cartesian, sense, domain, data, edge_axis, calendar) [type(mom_axis)]

Register an axis to the MOM framework file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • label :: [in] The name in the file of this axis

  • units :: [in] The units of this axis

  • longname :: [in] The long description of this axis

  • cartesian :: [in] A variable indicating which direction this axis corresponds with. Valid values include ‘X’, ‘Y’, ‘Z’, ‘T’, and ‘N’ for none.

  • sense :: [in] This is 1 for axes whose values increase upward, or -1 if they increase downward.

  • domain :: [in] The domain decomposion for this axis

  • data :: [in] The coordinate values of the points on this axis

  • edge_axis :: [in] If true, this axis marks an edge of the tracer cells

  • calendar :: [in] The name of the calendar used with a time axis

Return:

undefined :: The axis type where this information is stored

function mom_io_file/register_field_infra(handle, axes, label, units, longname, pack, standard_name, checksum) [type(mom_field)]

Register a field to the MOM framework file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • axes :: [in] Handles for the axis used for this variable

  • label :: [in] The name in the file of this variable

  • units :: [in] The units of this variable

  • longname :: [in] The long description of this variable

  • pack :: [in] A precision reduction factor with which the variable. The default, 1, has no reduction, but 2 is not uncommon.

  • standard_name :: [in] The standard (e.g., CMOR) name for this variable

  • checksum :: [in] Checksum values that can be used to verify reads.

Return:

undefined :: The field type where this information is stored

subroutine mom_io_file/write_field_4d_infra(handle, field_md, MOM_domain, field, tstamp, tile_count, fill_value)

Write a 4D field to the MOM framework file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • mom_domain :: [in] The MOM_Domain that describes the decomposition

  • field :: [inout] Field to write

  • tstamp :: [in] Model time of this field

  • tile_count :: [in] PEs per tile (default: 1)

  • fill_value :: [in] Missing data fill value

subroutine mom_io_file/write_field_3d_infra(handle, field_md, MOM_domain, field, tstamp, tile_count, fill_value)

Write a 3D field to the MOM framework file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • mom_domain :: [in] The MOM_Domain that describes the decomposition

  • field :: [inout] Field to write

  • tstamp :: [in] Model time of this field

  • tile_count :: [in] PEs per tile (default: 1)

  • fill_value :: [in] Missing data fill value

subroutine mom_io_file/write_field_2d_infra(handle, field_md, MOM_domain, field, tstamp, tile_count, fill_value)

Write a 2D field to the MOM framework file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • mom_domain :: [in] The MOM_Domain that describes the decomposition

  • field :: [inout] Field to write

  • tstamp :: [in] Model time of this field

  • tile_count :: [in] PEs per tile (default: 1)

  • fill_value :: [in] Missing data fill value

subroutine mom_io_file/write_field_1d_infra(handle, field_md, field, tstamp)

Write a 1D field to the MOM framework file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • field :: [in] Field to write

  • tstamp :: [in] Model time of this field

subroutine mom_io_file/write_field_0d_infra(handle, field_md, field, tstamp)

Write a 0D field to the MOM framework file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • field :: [in] Field to write

  • tstamp :: [in] Model time of this field

subroutine mom_io_file/write_field_axis_infra(handle, axis)

Write an axis field to the MOM framework file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • axis :: [in] An axis type variable with information to write

subroutine mom_io_file/write_attribute_infra(handle, name, attribute)

Write global metadata to the MOM framework file.

Parameters:
  • handle :: [in] Handle for a file that is open for writing

  • name :: [in] The name in the file of this global attribute

  • attribute :: [in] The value of this attribute

function mom_io_file/file_is_open_infra(handle) [logical]

True if the framework file has been opened.

Parameters:

handle :: [in] Handle to a file to inquire about

subroutine mom_io_file/get_file_info_infra(handle, ndim, nvar, ntime)

Return number of dimensions, variables, or time levels in a MOM infra file.

Parameters:
  • handle :: [in] Handle for a file that is open for I/O

  • ndim :: [out] The number of dimensions in the file

  • nvar :: [out] The number of variables in the file

  • ntime :: [out] The number of time levels in the file

subroutine mom_io_file/get_file_fields_infra(handle, fields)

Return the field metadata associated with a MOM framework file.

Parameters:
  • handle :: [inout] Handle for a file that is open for I/O

  • fields :: [inout] Field-type descriptions of all of the variables in a file.

subroutine mom_io_file/get_file_times_infra(handle, time_values, ntime)

Get time levels of a MOM framework file.

Parameters:
  • handle :: [in] Handle for a file that is open for I/O

  • time_values :: [inout] The real times for the records in file.

  • ntime :: [out] The number of time levels in the file

subroutine mom_io_file/get_field_atts_infra(handle, field, name, units, longname, checksum)

Get attributes from a field.

Parameters:
  • handle :: [in] File where field is stored

  • field :: [in] The field to extract information from

  • name :: [out] The variable name

  • units :: [out] The units of the variable

  • longname :: [out] The long name of the variable

  • checksum :: [out] The checksums of the variable in a file

subroutine mom_io_file/read_field_chksum_infra(handle, field, chksum, valid_chksum)

Interface to read_field_chksum.

Parameters:
  • handle :: [in] File where field is stored

  • field :: [in] The field whose checksum attribute is to be read

  • chksum :: [out] The checksum for the field.

  • valid_chksum :: [out] If true, chksum has been successfully read

subroutine mom_io_file/get_file_fieldtypes(handle, fields)

Get the native (fieldtype) fields of a MOM framework file.

subroutine mom_io_file/open_file_nc(handle, filename, action, MOM_domain, threading, fileset)

Open a MOM netCDF file.

Call to:

mom_hor_index::hor_index_init

subroutine mom_io_file/close_file_nc(handle)

Close a MOM netCDF file.

subroutine mom_io_file/flush_file_nc(handle)

Flush the buffer of a MOM netCDF file.

function mom_io_file/register_axis_nc(handle, label, units, longname, cartesian, sense, domain, data, edge_axis, calendar) [type(mom_axis)]

Register an axis to the MOM netcdf file.

Parameters:
  • handle :: [inout] Handle for a netCDF file that is open for writing

  • label :: [in] The name in the file of this axis

  • units :: [in] The units of this axis

  • longname :: [in] The long description of this axis

  • cartesian :: [in] A variable indicating which direction this axis corresponds with. Valid values include ‘X’, ‘Y’, ‘Z’, ‘T’, and ‘N’ for none.

  • sense :: [in] This is 1 for axes whose values increase upward, or -1 if they increase downward.

  • domain :: [in] The domain decomposion for this axis

  • data :: [in] The coordinate values of the points on this axis

  • edge_axis :: [in] If true, this axis marks an edge of the tracer cells

  • calendar :: [in] The name of the calendar used with a time axis

function mom_io_file/register_field_nc(handle, axes, label, units, longname, pack, standard_name, checksum) [type(mom_field)]

Register a field to the MOM netcdf file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • axes :: [in] Handles for the axis used for this variable

  • label :: [in] The name in the file of this variable

  • units :: [in] The units of this variable

  • longname :: [in] The long description of this variable

  • pack :: [in] A precision reduction factor with which the variable. The default, 1, has no reduction, but 2 is not uncommon.

  • standard_name :: [in] The standard (e.g., CMOR) name for this variable

  • checksum :: [in] Checksum values that can be used to verify reads.

subroutine mom_io_file/write_attribute_nc(handle, name, attribute)

Write global metadata to the MOM netcdf file.

Parameters:
  • handle :: [in] Handle for a file that is open for writing

  • name :: [in] The name in the file of this global attribute

  • attribute :: [in] The value of this attribute

subroutine mom_io_file/write_field_4d_nc(handle, field_md, MOM_domain, field, tstamp, tile_count, fill_value)

Write a 4D field to the MOM netcdf file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • mom_domain :: [in] The MOM_Domain that describes the decomposition

  • field :: [inout] Field to write

  • tstamp :: [in] Model time of this field

  • tile_count :: [in] PEs per tile (default: 1)

  • fill_value :: [in] Missing data fill value

subroutine mom_io_file/write_field_3d_nc(handle, field_md, MOM_domain, field, tstamp, tile_count, fill_value)

Write a 3D field to the MOM netcdf file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • mom_domain :: [in] The MOM_Domain that describes the decomposition

  • field :: [inout] Field to write

  • tstamp :: [in] Model time of this field

  • tile_count :: [in] PEs per tile (default: 1)

  • fill_value :: [in] Missing data fill value

subroutine mom_io_file/write_field_2d_nc(handle, field_md, MOM_domain, field, tstamp, tile_count, fill_value)

Write a 2D field to the MOM netcdf file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • mom_domain :: [in] The MOM_Domain that describes the decomposition

  • field :: [inout] Field to write

  • tstamp :: [in] Model time of this field

  • tile_count :: [in] PEs per tile (default: 1)

  • fill_value :: [in] Missing data fill value

subroutine mom_io_file/write_field_1d_nc(handle, field_md, field, tstamp)

Write a 1D field to the MOM netcdf file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • field :: [in] Field to write

  • tstamp :: [in] Model time of this field

subroutine mom_io_file/write_field_0d_nc(handle, field_md, field, tstamp)

Write a 0D field to the MOM netcdf file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • field_md :: [in] Field type with metadata

  • field :: [in] Field to write

  • tstamp :: [in] Model time of this field

subroutine mom_io_file/write_field_axis_nc(handle, axis)

Write an axis field to the MOM netcdf file.

Parameters:
  • handle :: [inout] Handle for a file that is open for writing

  • axis :: [in] An axis type variable with information to write

function mom_io_file/file_is_open_nc(handle) [logical]

True if the framework file has been opened.

Parameters:

handle :: [in] Handle to a file to inquire about

subroutine mom_io_file/get_file_info_nc(handle, ndim, nvar, ntime)

Return number of dimensions, variables, or time levels in a MOM netcdf file.

Parameters:
  • handle :: [in] Handle for a file that is open for I/O

  • ndim :: [out] The number of dimensions in the file

  • nvar :: [out] The number of variables in the file

  • ntime :: [out] The number of time levels in the file

subroutine mom_io_file/update_file_contents_nc(handle)

Update the axes and fields descriptors of a MOM netCDF file.

Parameters:

handle :: [inout] Handle for a file that is open for I/O

subroutine mom_io_file/get_file_fields_nc(handle, fields)

Return the field descriptors of a MOM netCDF file.

Parameters:
  • handle :: [inout] Handle for a file that is open for I/O

  • fields :: [inout] Field-type descriptions of all of the variables in a file.

subroutine mom_io_file/get_field_atts_nc(handle, field, name, units, longname, checksum)

Get attributes from a netCDF field.

Parameters:
  • handle :: [in] File where field is stored

  • field :: [in] The field to extract information from

  • name :: [out] The variable name

  • units :: [out] The units of the variable

  • longname :: [out] The long name of the variable

  • checksum :: [out] The checksums of the variable in a file

subroutine mom_io_file/read_field_chksum_nc(handle, field, chksum, valid_chksum)

Interface to read_field_chksum.

Parameters:
  • handle :: [in] File where field is stored

  • field :: [in] The field whose checksum attribute is to be read

  • chksum :: [out] The checksum for the field.

  • valid_chksum :: [out] If true, chksum has been successfully read

subroutine mom_io_file/get_field_nc(handle, label, values, rescale)

Read the values of a netCDF field into an array that might have halos.

Parameters:
  • handle :: [in] Handle of netCDF file to be read

  • label :: [in] Field variable name

  • values :: [inout] Field values read from the file. It would be intent(out) but for the need to preserve any initialized values in the halo regions.

  • rescale :: [in] A multiplicative rescaling factor for the values that are read. Omitting this is the same as setting it to 1.

Call to:

mom_netcdf::read_netcdf_field