MOM6
mom_checksums::bchksum_pair Interface Reference

Detailed Description

Checksums a pair of arrays (2d or 3d) staggered at corner points.

Definition at line 43 of file MOM_checksums.F90.

Private functions

subroutine chksum_pair_b_2d (mesg, arrayA, arrayB, HI, haloshift, symmetric, omit_corners, scale, logunit)
 Checksums on a pair of 2d arrays staggered at q-points. More...
 
subroutine chksum_pair_b_3d (mesg, arrayA, arrayB, HI, haloshift, symmetric, omit_corners, scale, logunit)
 Checksums on a pair of 3d arrays staggered at q-points. More...
 

Functions and subroutines

◆ chksum_pair_b_2d()

subroutine mom_checksums::bchksum_pair::chksum_pair_b_2d ( character(len=*), intent(in)  mesg,
real, dimension(hi%isd:,hi%jsd:), intent(in)  arrayA,
real, dimension(hi%isd:,hi%jsd:), intent(in)  arrayB,
type(hor_index_type), intent(in)  HI,
integer, intent(in), optional  haloshift,
logical, intent(in), optional  symmetric,
logical, intent(in), optional  omit_corners,
real, intent(in), optional  scale,
integer, intent(in), optional  logunit 
)
private

Checksums on a pair of 2d arrays staggered at q-points.

Parameters
[in]mesgIdentifying messages
[in]hiA horizontal index type
[in]arrayaThe first array to be checksummed
[in]arraybThe second array to be checksummed
[in]symmetricIf true, do the checksums on the full symmetric computational domain.
[in]haloshiftThe width of halos to check (default 0)
[in]omit_cornersIf true, avoid checking diagonal shifts
[in]scaleA scaling factor for this array.
[in]logunitIO unit for checksum logging

Definition at line 377 of file MOM_checksums.F90.

377  character(len=*), intent(in) :: mesg !< Identifying messages
378  type(hor_index_type), intent(in) :: HI !< A horizontal index type
379  real, dimension(HI%isd:,HI%jsd:), intent(in) :: arrayA !< The first array to be checksummed
380  real, dimension(HI%isd:,HI%jsd:), intent(in) :: arrayB !< The second array to be checksummed
381  logical, optional, intent(in) :: symmetric !< If true, do the checksums on the full
382  !! symmetric computational domain.
383  integer, optional, intent(in) :: haloshift !< The width of halos to check (default 0)
384  logical, optional, intent(in) :: omit_corners !< If true, avoid checking diagonal shifts
385  real, optional, intent(in) :: scale !< A scaling factor for this array.
386  integer, optional, intent(in) :: logunit !< IO unit for checksum logging
387 
388  logical :: sym
389 
390  sym = .false. ; if (present(symmetric)) sym = symmetric
391 
392  if (present(haloshift)) then
393  call chksum_b_2d(arraya, 'x '//mesg, hi, haloshift, symmetric=sym, &
394  omit_corners=omit_corners, scale=scale, logunit=logunit)
395  call chksum_b_2d(arrayb, 'y '//mesg, hi, haloshift, symmetric=sym, &
396  omit_corners=omit_corners, scale=scale, logunit=logunit)
397  else
398  call chksum_b_2d(arraya, 'x '//mesg, hi, symmetric=sym, scale=scale, &
399  logunit=logunit)
400  call chksum_b_2d(arrayb, 'y '//mesg, hi, symmetric=sym, scale=scale, &
401  logunit=logunit)
402  endif
403 

◆ chksum_pair_b_3d()

subroutine mom_checksums::bchksum_pair::chksum_pair_b_3d ( character(len=*), intent(in)  mesg,
real, dimension(hi%isdb:,hi%jsdb:, :), intent(in)  arrayA,
real, dimension(hi%isdb:,hi%jsdb:, :), intent(in)  arrayB,
type(hor_index_type), intent(in)  HI,
integer, intent(in), optional  haloshift,
logical, intent(in), optional  symmetric,
logical, intent(in), optional  omit_corners,
real, intent(in), optional  scale,
integer, intent(in), optional  logunit 
)
private

Checksums on a pair of 3d arrays staggered at q-points.

Parameters
[in]mesgIdentifying messages
[in]hiA horizontal index type
[in]arrayaThe first array to be checksummed
[in]arraybThe second array to be checksummed
[in]haloshiftThe width of halos to check (default 0)
[in]symmetricIf true, do the checksums on the full symmetric computational domain.
[in]omit_cornersIf true, avoid checking diagonal shifts
[in]scaleA scaling factor for this array.
[in]logunitIO unit for checksum logging

Definition at line 409 of file MOM_checksums.F90.

409  character(len=*), intent(in) :: mesg !< Identifying messages
410  type(hor_index_type), intent(in) :: HI !< A horizontal index type
411  real, dimension(HI%IsdB:,HI%JsdB:, :), intent(in) :: arrayA !< The first array to be checksummed
412  real, dimension(HI%IsdB:,HI%JsdB:, :), intent(in) :: arrayB !< The second array to be checksummed
413  integer, optional, intent(in) :: haloshift !< The width of halos to check (default 0)
414  logical, optional, intent(in) :: symmetric !< If true, do the checksums on the full
415  !! symmetric computational domain.
416  logical, optional, intent(in) :: omit_corners !< If true, avoid checking diagonal shifts
417  real, optional, intent(in) :: scale !< A scaling factor for this array.
418  integer, optional, intent(in) :: logunit !< IO unit for checksum logging
419 
420  logical :: sym
421 
422  if (present(haloshift)) then
423  call chksum_b_3d(arraya, 'x '//mesg, hi, haloshift, symmetric, &
424  omit_corners, scale=scale, logunit=logunit)
425  call chksum_b_3d(arrayb, 'y '//mesg, hi, haloshift, symmetric, &
426  omit_corners, scale=scale, logunit=logunit)
427  else
428  call chksum_b_3d(arraya, 'x '//mesg, hi, symmetric=symmetric, scale=scale, &
429  logunit=logunit)
430  call chksum_b_3d(arrayb, 'y '//mesg, hi, symmetric=symmetric, scale=scale, &
431  logunit=logunit)
432  endif
433 

The documentation for this interface was generated from the following file: