MOM6
mom_checksums::uvchksum Interface Reference

Detailed Description

Checksums a pair velocity arrays (2d or 3d) staggered at C-grid locations.

Definition at line 28 of file MOM_checksums.F90.

Private functions

subroutine chksum_uv_2d (mesg, arrayU, arrayV, HI, haloshift, symmetric, omit_corners, scale, logunit)
 Checksums a pair of 2d velocity arrays staggered at C-grid locations. More...
 
subroutine chksum_uv_3d (mesg, arrayU, arrayV, HI, haloshift, symmetric, omit_corners, scale, logunit)
 Checksums a pair of 3d velocity arrays staggered at C-grid locations. More...
 

Functions and subroutines

◆ chksum_uv_2d()

subroutine mom_checksums::uvchksum::chksum_uv_2d ( character(len=*), intent(in)  mesg,
real, dimension(hi%isdb:,hi%jsd:), intent(in)  arrayU,
real, dimension(hi%isd:,hi%jsdb:), intent(in)  arrayV,
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 a pair of 2d velocity arrays staggered at C-grid locations.

Parameters
[in]mesgIdentifying messages
[in]hiA horizontal index type
[in]arrayuThe u-component array to be checksummed
[in]arrayvThe v-component 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 these arrays.
[in]logunitIO unit for checksum logging

Definition at line 589 of file MOM_checksums.F90.

589  character(len=*), intent(in) :: mesg !< Identifying messages
590  type(hor_index_type), intent(in) :: HI !< A horizontal index type
591  real, dimension(HI%IsdB:,HI%jsd:), intent(in) :: arrayU !< The u-component array to be checksummed
592  real, dimension(HI%isd:,HI%JsdB:), intent(in) :: arrayV !< The v-component array to be checksummed
593  integer, optional, intent(in) :: haloshift !< The width of halos to check (default 0)
594  logical, optional, intent(in) :: symmetric !< If true, do the checksums on the full
595  !! symmetric computational domain.
596  logical, optional, intent(in) :: omit_corners !< If true, avoid checking diagonal shifts
597  real, optional, intent(in) :: scale !< A scaling factor for these arrays.
598  integer, optional, intent(in) :: logunit !< IO unit for checksum logging
599 
600  if (present(haloshift)) then
601  call chksum_u_2d(arrayu, 'u '//mesg, hi, haloshift, symmetric, &
602  omit_corners, scale, logunit=logunit)
603  call chksum_v_2d(arrayv, 'v '//mesg, hi, haloshift, symmetric, &
604  omit_corners, scale, logunit=logunit)
605  else
606  call chksum_u_2d(arrayu, 'u '//mesg, hi, symmetric=symmetric, &
607  logunit=logunit)
608  call chksum_v_2d(arrayv, 'v '//mesg, hi, symmetric=symmetric, &
609  logunit=logunit)
610  endif
611 

◆ chksum_uv_3d()

subroutine mom_checksums::uvchksum::chksum_uv_3d ( character(len=*), intent(in)  mesg,
real, dimension(hi%isdb:,hi%jsd:,:), intent(in)  arrayU,
real, dimension(hi%isd:,hi%jsdb:,:), intent(in)  arrayV,
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 a pair of 3d velocity arrays staggered at C-grid locations.

Parameters
[in]mesgIdentifying messages
[in]hiA horizontal index type
[in]arrayuThe u-component array to be checksummed
[in]arrayvThe v-component 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 these arrays.
[in]logunitIO unit for checksum logging

Definition at line 617 of file MOM_checksums.F90.

617  character(len=*), intent(in) :: mesg !< Identifying messages
618  type(hor_index_type), intent(in) :: HI !< A horizontal index type
619  real, dimension(HI%IsdB:,HI%jsd:,:), intent(in) :: arrayU !< The u-component array to be checksummed
620  real, dimension(HI%isd:,HI%JsdB:,:), intent(in) :: arrayV !< The v-component array to be checksummed
621  integer, optional, intent(in) :: haloshift !< The width of halos to check (default 0)
622  logical, optional, intent(in) :: symmetric !< If true, do the checksums on the full
623  !! symmetric computational domain.
624  logical, optional, intent(in) :: omit_corners !< If true, avoid checking diagonal shifts
625  real, optional, intent(in) :: scale !< A scaling factor for these arrays.
626  integer, optional, intent(in) :: logunit !< IO unit for checksum logging
627 
628  if (present(haloshift)) then
629  call chksum_u_3d(arrayu, 'u '//mesg, hi, haloshift, symmetric, &
630  omit_corners, scale, logunit=logunit)
631  call chksum_v_3d(arrayv, 'v '//mesg, hi, haloshift, symmetric, &
632  omit_corners, scale, logunit=logunit)
633  else
634  call chksum_u_3d(arrayu, 'u '//mesg, hi, symmetric=symmetric, &
635  logunit=logunit)
636  call chksum_v_3d(arrayv, 'v '//mesg, hi, symmetric=symmetric, &
637  logunit=logunit)
638  endif
639 

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