mom_checksums module reference
Routines to calculate checksums of various array and vector types.
Functions/Subroutines
Checksum a scalar field (consistent with array checksums) |
|
Checksum a 1d array (typically a column). |
|
Checksums on a pair of 2d arrays staggered at tracer points. |
|
Checksums on a pair of 3d arrays staggered at tracer points. |
|
Checksums a 2d array staggered at tracer points. |
|
Checksums on a pair of 2d arrays staggered at q-points. |
|
Checksums on a pair of 3d arrays staggered at q-points. |
|
Checksums a 2d array staggered at corner points. |
|
Checksums a pair of 2d velocity arrays staggered at C-grid locations. |
|
Checksums a pair of 3d velocity arrays staggered at C-grid locations. |
|
Checksums a 2d array staggered at C-grid u points. |
|
Checksums a 2d array staggered at C-grid v points. |
|
Checksums a 3d array staggered at tracer points. |
|
Checksums a 3d array staggered at corner points. |
|
Checksums a 3d array staggered at C-grid u points. |
|
Checksums a 3d array staggered at C-grid v points. |
|
chksum1d does a checksum of a 1-dimensional array. |
|
chksum2d does a checksum of all data in a 2-d array. |
|
chksum3d does a checksum of all data in a 2-d array. |
|
This function returns .true. |
|
Returns .true. |
|
Returns .true. |
|
Returns .true. |
|
Compute the field checksum of a scalar that may need to be unscaled. |
|
Compute the field checksum of an entire 1d array that may need to be unscaled. |
|
Compute the field checksum of an entire 2d array that may need to be rotated or unscaled. |
|
Compute the field checksum of an entire 3d array that may need to be rotated or unscaled. |
|
Compute the field checksum of an entire 4d array that may need to be rotated or unscaled. |
|
Write a message including the checksum of the non-shifted array. |
|
Write a message including checksums of non-shifted and diagonally shifted arrays. |
|
Write a message including checksums of non-shifted and laterally shifted arrays. |
|
Write a message including checksums of non-shifted and southward shifted arrays. |
|
Write a message including checksums of non-shifted and westward shifted arrays. |
|
Write a message including checksums of non-shifted and southwestward shifted arrays. |
|
Write a message including the global mean, maximum and minimum of an array. |
|
MOM_checksums_init initializes the MOM_checksums module. |
|
A wrapper for MOM_error used in the checksum code. |
|
Does a bitcount of a number by first casting to an integer and then using BTEST to check bit by bit. |
Detailed Description
Routines to calculate checksums of various array and vector types.
Function/Subroutine Documentation
- subroutine mom_checksums/chksum0(scalar, mesg, scale, logunit, unscale)
Checksum a scalar field (consistent with array checksums)
- Parameters:
scalar ::
scalar[in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]mesg ::
mesg[in] An identifying messagescale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Call to:
bc_modulusbitcountcalculatestatisticscheckfornanschksum_errorwritechksumswritehash- Called from:
mom_diag_mediator::post_data::post_data_0dmom_is_diag_mediator::post_is_data::post_is_data_0dmom_barotropic::set_dtbt
- subroutine mom_checksums/zchksum(array, mesg, scale, logunit, unscale)
Checksum a 1d array (typically a column).
- Parameters:
array ::
array[in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]mesg ::
mesg[in] An identifying messagescale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Call to:
calculatestatisticscheckfornanschksum_errorsubchksubstatswritechksumswritehash- Called from:
mom_diag_mediator::post_data::post_data_1d_kmom_diag_mediator::post_xy_average
- subroutine mom_checksums/chksum_pair_h_2d(mesg, arrayA, arrayB, HI, haloshift, omit_corners, scale, logunit, scalar_pair, unscale)
Checksums on a pair of 2d arrays staggered at tracer points.
- Parameters:
mesg ::
mesg[in] Identifying messageshi :: [in] A horizontal index type
arraya :: [in] The first array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
arrayb :: [in] The second array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
haloshift ::
haloshift[in] The width of halos to check (default 0)omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert these arrays back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingscalar_pair ::
scalar_pair[in] If true, then the arrays describe a scalar, rather than vectorunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- subroutine mom_checksums/chksum_pair_h_3d(mesg, arrayA, arrayB, HI, haloshift, omit_corners, scale, logunit, scalar_pair, unscale)
Checksums on a pair of 3d arrays staggered at tracer points.
- Parameters:
mesg ::
mesg[in] Identifying messageshi :: [in] A horizontal index type
arraya :: [in] The first array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
arrayb :: [in] The second array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
haloshift ::
haloshift[in] The width of halos to check (default 0)omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingscalar_pair ::
scalar_pair[in] If true, then the arrays describe a scalar, rather than vectorunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- subroutine mom_checksums/chksum_h_2d(array_m, mesg, HI_m, haloshift, omit_corners, scale, logunit, unscale)
Checksums a 2d array staggered at tracer points.
- Parameters:
hi_m :: [in] Horizontal index bounds of the model grid
array_m ::
array_m[in] Field array on the model grid in arbitrary, possibly rescaled units [A ~> a]mesg ::
mesg[in] An identifying messagehaloshift ::
haloshift[in] The width of halos to check (default 0)omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Called from:
- subroutine mom_checksums/chksum_pair_b_2d(mesg, arrayA, arrayB, HI, haloshift, symmetric, omit_corners, scale, logunit, scalar_pair, unscale)
Checksums on a pair of 2d arrays staggered at q-points.
- Parameters:
mesg ::
mesg[in] Identifying messageshi :: [in] A horizontal index type
arraya :: [in] The first array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
arrayb :: [in] The second array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.haloshift ::
haloshift[in] The width of halos to check (default 0)omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingscalar_pair ::
scalar_pair[in] If true, then the arrays describe a scalar, rather than vectorunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- subroutine mom_checksums/chksum_pair_b_3d(mesg, arrayA, arrayB, HI, haloshift, symmetric, omit_corners, scale, logunit, scalar_pair, unscale)
Checksums on a pair of 3d arrays staggered at q-points.
- Parameters:
mesg ::
mesg[in] Identifying messageshi :: [in] A horizontal index type
arraya :: [in] The first array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
arrayb :: [in] The second array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
haloshift ::
haloshift[in] The width of halos to check (default 0)symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingscalar_pair ::
scalar_pair[in] If true, then the arrays describe a scalar, rather than vectorunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- subroutine mom_checksums/chksum_b_2d(array_m, mesg, HI_m, haloshift, symmetric, omit_corners, scale, logunit, unscale)
Checksums a 2d array staggered at corner points.
- Parameters:
hi_m :: [in] A horizontal index type
array_m ::
array_m[in] The array to be checksummed inmesg ::
mesg[in] An identifying messagehaloshift ::
haloshift[in] The width of halos to check (default 0)symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Called from:
- subroutine mom_checksums/chksum_uv_2d(mesg, arrayU, arrayV, HI, haloshift, symmetric, omit_corners, scale, logunit, scalar_pair, unscale)
Checksums a pair of 2d velocity arrays staggered at C-grid locations.
- Parameters:
mesg ::
mesg[in] Identifying messageshi :: [in] A horizontal index type
arrayu :: [in] The u-component array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
arrayv :: [in] The v-component array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
haloshift ::
haloshift[in] The width of halos to check (default 0)symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert these arrays back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingscalar_pair ::
scalar_pair[in] If true, then the arrays describe a a scalar, rather than vectorunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- subroutine mom_checksums/chksum_uv_3d(mesg, arrayU, arrayV, HI, haloshift, symmetric, omit_corners, scale, logunit, scalar_pair, unscale)
Checksums a pair of 3d velocity arrays staggered at C-grid locations.
- Parameters:
mesg ::
mesg[in] Identifying messageshi :: [in] A horizontal index type
arrayu :: [in] The u-component array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
arrayv :: [in] The v-component array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
haloshift ::
haloshift[in] The width of halos to check (default 0)symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert these arrays back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingscalar_pair ::
scalar_pair[in] If true, then the arrays describe a a scalar, rather than vectorunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- subroutine mom_checksums/chksum_u_2d(array_m, mesg, HI_m, haloshift, symmetric, omit_corners, scale, logunit, unscale)
Checksums a 2d array staggered at C-grid u points.
- Parameters:
hi_m :: [in] A horizontal index type
array_m ::
array_m[in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]mesg ::
mesg[in] An identifying messagehaloshift ::
haloshift[in] The width of halos to check (default 0)symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Called from:
- subroutine mom_checksums/chksum_v_2d(array_m, mesg, HI_m, haloshift, symmetric, omit_corners, scale, logunit, unscale)
Checksums a 2d array staggered at C-grid v points.
- Parameters:
hi_m :: [in] A horizontal index type
array_m ::
array_m[in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]mesg ::
mesg[in] An identifying messagehaloshift ::
haloshift[in] The width of halos to check (default 0)symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Called from:
- subroutine mom_checksums/chksum_h_3d(array_m, mesg, HI_m, haloshift, omit_corners, scale, logunit, unscale)
Checksums a 3d array staggered at tracer points.
- Parameters:
hi_m :: [in] A horizontal index type
array_m ::
array_m[in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]mesg ::
mesg[in] An identifying messagehaloshift ::
haloshift[in] The width of halos to check (default 0)omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Called from:
- subroutine mom_checksums/chksum_b_3d(array_m, mesg, HI_m, haloshift, symmetric, omit_corners, scale, logunit, unscale)
Checksums a 3d array staggered at corner points.
- Parameters:
hi_m :: [in] A horizontal index type
array_m ::
array_m[in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]mesg ::
mesg[in] An identifying messagehaloshift ::
haloshift[in] The width of halos to check (default 0)symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Called from:
- subroutine mom_checksums/chksum_u_3d(array_m, mesg, HI_m, haloshift, symmetric, omit_corners, scale, logunit, unscale)
Checksums a 3d array staggered at C-grid u points.
- Parameters:
hi_m :: [in] A horizontal index type
array_m ::
array_m[in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]mesg ::
mesg[in] An identifying messagehaloshift ::
haloshift[in] The width of halos to check (default 0)symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Called from:
- subroutine mom_checksums/chksum_v_3d(array_m, mesg, HI_m, haloshift, symmetric, omit_corners, scale, logunit, unscale)
Checksums a 3d array staggered at C-grid v points.
- Parameters:
hi_m :: [in] A horizontal index type
array_m ::
array_m[in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]mesg ::
mesg[in] An identifying messagehaloshift ::
haloshift[in] The width of halos to check (default 0)symmetric ::
symmetric[in] If true, do the checksums on the full symmetric computational domain.omit_corners ::
omit_corners[in] If true, avoid checking diagonal shiftsscale ::
scale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]logunit ::
logunit[in] IO unit for checksum loggingunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]. Here scale and unscale are synonymous, but unscale takes precedence if both are present.
- Called from:
- subroutine mom_checksums/chksum1d(array, mesg, start_i, end_i, compare_PEs, logunit)
chksum1d does a checksum of a 1-dimensional array.
- Parameters:
array ::
array[in] The array to be summed (index starts at 1) in arbitrary units [A].mesg ::
mesg[in] An identifying message.start_i ::
start_i[in] The starting index for the sum (default 1)end_i ::
end_i[in] The ending index for the sum (default all)compare_pes :: [in] If true, compare across PEs instead of summing and list the root_PE value (default true)
logunit ::
logunit[in] IO unit for checksum logging
- subroutine mom_checksums/chksum2d(array, mesg, logunit)
chksum2d does a checksum of all data in a 2-d array.
- Parameters:
array ::
array[in] The array to be checksummed in arbitrary units [A]mesg ::
mesg[in] An identifying messagelogunit ::
logunit[in] IO unit for checksum logging
- subroutine mom_checksums/chksum3d(array, mesg, logunit)
chksum3d does a checksum of all data in a 2-d array.
- Parameters:
array ::
array[in] The array to be checksummed in arbitrary units [A]mesg ::
mesg[in] An identifying messagelogunit ::
logunit[in] IO unit for checksum logging
- function mom_checksums/is_nan_0d(x)
This function returns .true. if x is a NaN, and .false. otherwise.
- Parameters:
x ::
x[in] The value to be checked for NaNs in arbitrary units [A]- Called from:
mom_checksums::is_nan::is_nan_0dmom_checksums::is_nan::is_nan_1dmom_checksums::is_nan::is_nan_2dmom_checksums::is_nan::is_nan_3d
- function mom_checksums/is_nan_1d(x, skip_mpp)
Returns .true. if any element of x is a NaN, and .false. otherwise.
- Parameters:
x ::
x[in] The array to be checked for NaNs in arbitrary units [A]skip_mpp ::
skip_mpp[in] If true, only check this array only on the local PE (default false).
- Called from:
- function mom_checksums/is_nan_2d(x)
Returns .true. if any element of x is a NaN, and .false. otherwise.
- Parameters:
x ::
x[in] The array to be checked for NaNs in arbitrary units [A]- Called from:
- function mom_checksums/is_nan_3d(x)
Returns .true. if any element of x is a NaN, and .false. otherwise.
- Parameters:
x ::
x[in] The array to be checked for NaNs in arbitrary units [A]- Called from:
- function mom_checksums/field_checksum_real_0d(field, pelist, mask_val, turns, unscale)
Compute the field checksum of a scalar that may need to be unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.
- Parameters:
field ::
field[in] Input scalar to be checksummed in arbitrary, possibly rescaled units [A ~> a]pelist ::
pelist[in] PE list of ranks to checksummask_val ::
mask_val[in] FMS mask value [nondim]turns ::
turns[in] Number of quarter turnsunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums [a A-1 ~> 1]
- Return:
undefined :: checksum of scalar
- function mom_checksums/field_checksum_real_1d(field, pelist, mask_val, turns, unscale)
Compute the field checksum of an entire 1d array that may need to be unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.
- Parameters:
field ::
field[in] Input array to be checksummed in arbitrary, possibly rescaled units [A ~> a]pelist ::
pelist[in] PE list of ranks to checksummask_val ::
mask_val[in] FMS mask value [nondim]turns ::
turns[in] Number of quarter turnsunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums [a A-1 ~> 1]
- Return:
undefined :: checksum of array
- function mom_checksums/field_checksum_real_2d(field, pelist, mask_val, turns, unscale)
Compute the field checksum of an entire 2d array that may need to be rotated or unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.
- Parameters:
field ::
field[in] Unrotated input field to be checksummed in arbitrary, possibly rescaled units [A ~> a]pelist ::
pelist[in] PE list of ranks to checksummask_val ::
mask_val[in] FMS mask value [nondim]turns ::
turns[in] Number of quarter turnsunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums [a A-1 ~> 1]
- Return:
undefined :: checksum of array
- function mom_checksums/field_checksum_real_3d(field, pelist, mask_val, turns, unscale)
Compute the field checksum of an entire 3d array that may need to be rotated or unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.
- Parameters:
field ::
field[in] Unrotated input field to be checksummed in arbitrary, possibly rescaled units [A ~> a]pelist ::
pelist[in] PE list of ranks to checksummask_val ::
mask_val[in] FMS mask value [nondim]turns ::
turns[in] Number of quarter turnsunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums [a A-1 ~> 1]
- Return:
undefined :: checksum of array
- function mom_checksums/field_checksum_real_4d(field, pelist, mask_val, turns, unscale)
Compute the field checksum of an entire 4d array that may need to be rotated or unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.
- Parameters:
field ::
field[in] Unrotated input field to be checksummed in arbitrary, possibly rescaled units [A ~> a]pelist ::
pelist[in] PE list of ranks to checksummask_val ::
mask_val[in] FMS mask value [nondim]turns ::
turns[in] Number of quarter turnsunscale ::
unscale[in] A factor to convert this array back to unscaled units for checksums [a A-1 ~> 1]
- Return:
undefined :: checksum of array
- subroutine mom_checksums/chk_sum_msg1(fmsg, bc0, mesg, iounit)
Write a message including the checksum of the non-shifted array.
- Parameters:
fmsg ::
fmsg[in] A checksum code-location specific preamblemesg ::
mesg[in] An identifying message supplied by top-level callerbc0 ::
bc0[in] The bitcount of the non-shifted arrayiounit ::
iounit[in] Checksum logger IO unit
- subroutine mom_checksums/chk_sum_msg5(fmsg, bc0, bcSW, bcSE, bcNW, bcNE, mesg, iounit)
Write a message including checksums of non-shifted and diagonally shifted arrays.
- Parameters:
fmsg ::
fmsg[in] A checksum code-location specific preamblemesg ::
mesg[in] An identifying message supplied by top-level callerbc0 ::
bc0[in] The bitcount of the non-shifted arraybcsw :: [in] The bitcount for SW shifted array
bcse :: [in] The bitcount for SE shifted array
bcnw :: [in] The bitcount for NW shifted array
bcne :: [in] The bitcount for NE shifted array
iounit ::
iounit[in] Checksum logger IO unit
- subroutine mom_checksums/chk_sum_msg_nsew(fmsg, bc0, bcN, bcS, bcE, bcW, mesg, iounit)
Write a message including checksums of non-shifted and laterally shifted arrays.
- Parameters:
fmsg ::
fmsg[in] A checksum code-location specific preamblemesg ::
mesg[in] An identifying message supplied by top-level callerbc0 ::
bc0[in] The bitcount of the non-shifted arraybcn :: [in] The bitcount for N shifted array
bcs :: [in] The bitcount for S shifted array
bce :: [in] The bitcount for E shifted array
bcw :: [in] The bitcount for W shifted array
iounit ::
iounit[in] Checksum logger IO unit
- Called from:
mom_checksums::bchksum::chksum_b_2dmom_checksums::bchksum::chksum_b_3dmom_checksums::hchksum::chksum_h_2dmom_checksums::hchksum::chksum_h_3dmom_checksums::uchksum::chksum_u_2dmom_checksums::uchksum::chksum_u_3dmom_checksums::vchksum::chksum_v_2dmom_checksums::vchksum::chksum_v_3d
- subroutine mom_checksums/chk_sum_msg_s(fmsg, bc0, bcS, mesg, iounit)
Write a message including checksums of non-shifted and southward shifted arrays.
- Parameters:
fmsg ::
fmsg[in] A checksum code-location specific preamblemesg ::
mesg[in] An identifying message supplied by top-level callerbc0 ::
bc0[in] The bitcount of the non-shifted arraybcs :: [in] The bitcount of the south-shifted array
iounit ::
iounit[in] Checksum logger IO unit
- Called from:
mom_checksums::vchksum::chksum_v_2dmom_checksums::vchksum::chksum_v_3d
- subroutine mom_checksums/chk_sum_msg_w(fmsg, bc0, bcW, mesg, iounit)
Write a message including checksums of non-shifted and westward shifted arrays.
- Parameters:
fmsg ::
fmsg[in] A checksum code-location specific preamblemesg ::
mesg[in] An identifying message supplied by top-level callerbc0 ::
bc0[in] The bitcount of the non-shifted arraybcw :: [in] The bitcount of the west-shifted array
iounit ::
iounit[in] Checksum logger IO unit
- Called from:
mom_checksums::uchksum::chksum_u_2dmom_checksums::uchksum::chksum_u_3d
- subroutine mom_checksums/chk_sum_msg2(fmsg, bc0, bcSW, mesg, iounit)
Write a message including checksums of non-shifted and southwestward shifted arrays.
- Parameters:
fmsg ::
fmsg[in] A checksum code-location specific preamblemesg ::
mesg[in] An identifying message supplied by top-level callerbc0 ::
bc0[in] The bitcount of the non-shifted arraybcsw :: [in] The bitcount of the southwest-shifted array
iounit ::
iounit[in] Checksum logger IO unit
- subroutine mom_checksums/chk_sum_msg3(fmsg, aMean, aMin, aMax, mesg, iounit)
Write a message including the global mean, maximum and minimum of an array.
- Parameters:
fmsg ::
fmsg[in] A checksum code-location specific preamblemesg ::
mesg[in] An identifying message supplied by top-level calleramean :: [in] The mean value of the array in arbitrary units [A]
amin :: [in] The minimum value of the array [A]
amax :: [in] The maximum value of the array [A]
iounit ::
iounit[in] Checksum logger IO unit
- subroutine mom_checksums/mom_checksums_init(param_file)
MOM_checksums_init initializes the MOM_checksums module. As it happens, the only thing that it does is to log the version of this module.
- Parameters:
param_file ::
param_file[in] A structure to parse for run-time parameters- Called from:
- subroutine mom_checksums/chksum_error(signal, message)
A wrapper for MOM_error used in the checksum code.
- Parameters:
signal ::
signal[in] An error severity level, such as FATAL or WARNINGmessage ::
message[in] An error message
- Call to:
- Called from:
chksum0mom_checksums::bchksum::chksum_b_2dmom_checksums::bchksum::chksum_b_3dmom_checksums::hchksum::chksum_h_2dmom_checksums::hchksum::chksum_h_3dmom_checksums::uchksum::chksum_u_2dmom_checksums::uchksum::chksum_u_3dmom_checksums::vchksum::chksum_v_2dmom_checksums::vchksum::chksum_v_3dzchksum
- function mom_checksums/bitcount(x)
Does a bitcount of a number by first casting to an integer and then using BTEST to check bit by bit.
- Parameters:
x ::
x[in] Number to be bitcount in arbitrary units [A]- Called from:
chksum0mom_checksums::chksum::chksum1dmom_checksums::chksum::chksum2dmom_checksums::chksum::chksum3dsubchk