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 :: [in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
mesg :: [in] An identifying message
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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:
-
subroutine
mom_checksums/zchksum(array, mesg, scale, logunit, unscale)¶ Checksum a 1d array (typically a column).
- Parameters:
array :: [in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
mesg :: [in] An identifying message
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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
-
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 :: [in] Identifying messages
hi :: [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 :: [in] The width of halos to check (default 0)
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert these arrays back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
scalar_pair :: [in] If true, then the arrays describe a scalar, rather than vector
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 :: [in] Identifying messages
hi :: [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 :: [in] The width of halos to check (default 0)
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
scalar_pair :: [in] If true, then the arrays describe a scalar, rather than vector
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 :: [in] Field array on the model grid in arbitrary, possibly rescaled units [A ~> a]
mesg :: [in] An identifying message
haloshift :: [in] The width of halos to check (default 0)
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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 :: [in] Identifying messages
hi :: [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 :: [in] If true, do the checksums on the full symmetric computational domain.
haloshift :: [in] The width of halos to check (default 0)
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
scalar_pair :: [in] If true, then the arrays describe a scalar, rather than vector
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 :: [in] Identifying messages
hi :: [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 :: [in] The width of halos to check (default 0)
symmetric :: [in] If true, do the checksums on the full symmetric computational domain.
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
scalar_pair :: [in] If true, then the arrays describe a scalar, rather than vector
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 :: [in] The array to be checksummed in
mesg :: [in] An identifying message
haloshift :: [in] The width of halos to check (default 0)
symmetric :: [in] If true, do the checksums on the full symmetric computational domain.
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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 :: [in] Identifying messages
hi :: [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 :: [in] The width of halos to check (default 0)
symmetric :: [in] If true, do the checksums on the full symmetric computational domain.
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert these arrays back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
scalar_pair :: [in] If true, then the arrays describe a a scalar, rather than vector
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 :: [in] Identifying messages
hi :: [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 :: [in] The width of halos to check (default 0)
symmetric :: [in] If true, do the checksums on the full symmetric computational domain.
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert these arrays back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
scalar_pair :: [in] If true, then the arrays describe a a scalar, rather than vector
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 :: [in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
mesg :: [in] An identifying message
haloshift :: [in] The width of halos to check (default 0)
symmetric :: [in] If true, do the checksums on the full symmetric computational domain.
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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 :: [in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
mesg :: [in] An identifying message
haloshift :: [in] The width of halos to check (default 0)
symmetric :: [in] If true, do the checksums on the full symmetric computational domain.
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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 :: [in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
mesg :: [in] An identifying message
haloshift :: [in] The width of halos to check (default 0)
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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 :: [in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
mesg :: [in] An identifying message
haloshift :: [in] The width of halos to check (default 0)
symmetric :: [in] If true, do the checksums on the full symmetric computational domain.
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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 :: [in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
mesg :: [in] An identifying message
haloshift :: [in] The width of halos to check (default 0)
symmetric :: [in] If true, do the checksums on the full symmetric computational domain.
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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 :: [in] The array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
mesg :: [in] An identifying message
haloshift :: [in] The width of halos to check (default 0)
symmetric :: [in] If true, do the checksums on the full symmetric computational domain.
omit_corners :: [in] If true, avoid checking diagonal shifts
scale :: [in] A factor to convert this array back to unscaled units for checksums and output [a A-1 ~> 1]
logunit :: [in] IO unit for checksum logging
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 :: [in] The array to be summed (index starts at 1) [abitrary].
mesg :: [in] An identifying message.
start_i :: [in] The starting index for the sum (default 1)
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 :: [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 :: [in] The array to be checksummed [arbitrary]
mesg :: [in] An identifying message
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 :: [in] The array to be checksummed [arbitrary]
mesg :: [in] An identifying message
logunit :: [in] IO unit for checksum logging
-
function
mom_checksums/is_nan_0d(x) [logical]¶ This function returns .true. if x is a NaN, and .false. otherwise.
- Parameters:
x :: [in] The value to be checked for NaNs [arbitrary]
- 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) [logical]¶ Returns .true. if any element of x is a NaN, and .false. otherwise.
- Parameters:
x :: [in] The array to be checked for NaNs [arbitrary]
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) [logical]¶ Returns .true. if any element of x is a NaN, and .false. otherwise.
- Parameters:
x :: [in] The array to be checked for NaNs [arbitrary]
- Called from:
-
function
mom_checksums/is_nan_3d(x) [logical]¶ Returns .true. if any element of x is a NaN, and .false. otherwise.
- Parameters:
x :: [in] The array to be checked for NaNs [arbitrary]
- Called from:
-
function
mom_checksums/field_checksum_real_0d(field, pelist, mask_val, turns, unscale) [integer(kind=int64)]¶ 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 :: [in] Input scalar to be checksummed in arbitrary, possibly rescaled units [A ~> a]
pelist :: [in] PE list of ranks to checksum
mask_val :: [in] FMS mask value [nondim]
turns :: [in] Number of quarter turns
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) [integer(kind=int64)]¶ 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 :: [in] Input array to be checksummed in arbitrary, possibly rescaled units [A ~> a]
pelist :: [in] PE list of ranks to checksum
mask_val :: [in] FMS mask value [nondim]
turns :: [in] Number of quarter turns
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) [integer(kind=int64)]¶ 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 :: [in] Unrotated input field to be checksummed in arbitrary, possibly rescaled units [A ~> a]
pelist :: [in] PE list of ranks to checksum
mask_val :: [in] FMS mask value [nondim]
turns :: [in] Number of quarter turns
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) [integer(kind=int64)]¶ 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 :: [in] Unrotated input field to be checksummed in arbitrary, possibly rescaled units [A ~> a]
pelist :: [in] PE list of ranks to checksum
mask_val :: [in] FMS mask value [nondim]
turns :: [in] Number of quarter turns
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) [integer(kind=int64)]¶ 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 :: [in] Unrotated input field to be checksummed in arbitrary, possibly rescaled units [A ~> a]
pelist :: [in] PE list of ranks to checksum
mask_val :: [in] FMS mask value [nondim]
turns :: [in] Number of quarter turns
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 :: [in] A checksum code-location specific preamble
mesg :: [in] An identifying message supplied by top-level caller
bc0 :: [in] The bitcount of the non-shifted array
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 :: [in] A checksum code-location specific preamble
mesg :: [in] An identifying message supplied by top-level caller
bc0 :: [in] The bitcount of the non-shifted array
bcsw :: [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 :: [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 :: [in] A checksum code-location specific preamble
mesg :: [in] An identifying message supplied by top-level caller
bc0 :: [in] The bitcount of the non-shifted array
bcn :: [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 :: [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 :: [in] A checksum code-location specific preamble
mesg :: [in] An identifying message supplied by top-level caller
bc0 :: [in] The bitcount of the non-shifted array
bcs :: [in] The bitcount of the south-shifted array
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 :: [in] A checksum code-location specific preamble
mesg :: [in] An identifying message supplied by top-level caller
bc0 :: [in] The bitcount of the non-shifted array
bcw :: [in] The bitcount of the west-shifted array
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 :: [in] A checksum code-location specific preamble
mesg :: [in] An identifying message supplied by top-level caller
bc0 :: [in] The bitcount of the non-shifted array
bcsw :: [in] The bitcount of the southwest-shifted array
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 :: [in] A checksum code-location specific preamble
mesg :: [in] An identifying message supplied by top-level caller
amean :: [in] The mean value of the array [arbitrary]
amin :: [in] The minimum value of the array [arbitrary]
amax :: [in] The maximum value of the array [arbitrary]
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 :: [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 :: [in] An error severity level, such as FATAL or WARNING
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) [integer]¶ Does a bitcount of a number by first casting to an integer and then using BTEST to check bit by bit.
- Parameters:
x :: [in] Number to be bitcount [arbitrary]
- Called from:
chksum0mom_checksums::chksum::chksum1dmom_checksums::chksum::chksum2dmom_checksums::chksum::chksum3dsubchk