MOM6
MOM_unit_tests.F90
1 !> Invokes unit tests in all modules that have them
3 
4 ! This file is part of MOM6. See LICENSE.md for the license.
5 
6 use mom_error_handler, only : mom_error, fatal, is_root_pe
7 
8 use mom_string_functions, only : string_functions_unit_tests
9 use mom_remapping, only : remapping_unit_tests
10 use mom_neutral_diffusion, only : neutral_diffusion_unit_tests
11 use mom_diag_vkernels, only : diag_vkernels_unit_tests
12 use mom_random, only : random_unit_tests
13 use mom_lateral_boundary_diffusion, only : near_boundary_unit_tests
14 
15 implicit none ; private
16 
17 public unit_tests
18 
19 contains
20 
21 !> Calls unit tests for other modules.
22 !! Note that if a unit test returns true, a FATAL error is triggered.
23 subroutine unit_tests(verbosity)
24  ! Arguments
25  integer, intent(in) :: verbosity !< The verbosity level
26  ! Local variables
27  logical :: verbose
28 
29  verbose = verbosity>=5
30 
31  if (is_root_pe()) then ! The following need only be tested on 1 PE
32  if (string_functions_unit_tests(verbose)) call mom_error(fatal, &
33  "MOM_unit_tests: string_functions_unit_tests FAILED")
34  if (remapping_unit_tests(verbose)) call mom_error(fatal, &
35  "MOM_unit_tests: remapping_unit_tests FAILED")
36  if (neutral_diffusion_unit_tests(verbose)) call mom_error(fatal, &
37  "MOM_unit_tests: neutralDiffusionUnitTests FAILED")
38  if (diag_vkernels_unit_tests(verbose)) call mom_error(fatal, &
39  "MOM_unit_tests: diag_vkernels_unit_tests FAILED")
40  if (random_unit_tests(verbose)) call mom_error(fatal, &
41  "MOM_unit_tests: random_unit_tests FAILED")
42  if (near_boundary_unit_tests(verbose)) call mom_error(fatal, &
43  "MOM_unit_tests: near_boundary_unit_tests FAILED")
44  endif
45 
46 end subroutine unit_tests
47 
48 end module mom_unit_tests
mom_diag_vkernels
Provides kernels for single-column interpolation, re-integration (re-mapping of integrated quantities...
Definition: MOM_diag_vkernels.F90:3
mom_random
Provides gridded random number capability.
Definition: MOM_random.F90:2
mom_string_functions
Handy functions for manipulating strings.
Definition: MOM_string_functions.F90:2
mom_remapping
Provides column-wise vertical remapping functions.
Definition: MOM_remapping.F90:2
mom_unit_tests
Invokes unit tests in all modules that have them.
Definition: MOM_unit_tests.F90:2
mom_lateral_boundary_diffusion
Calculates and applies diffusive fluxes as a parameterization of lateral mixing (non-neutral) by meso...
Definition: MOM_lateral_boundary_diffusion.F90:4
mom_error_handler
Routines for error handling and I/O management.
Definition: MOM_error_handler.F90:2
mom_neutral_diffusion
A column-wise toolbox for implementing neutral diffusion.
Definition: MOM_neutral_diffusion.F90:2