Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge main to dev/gfdl (2013-10-25) #1612

Closed
wants to merge 124 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
620d933
Autoconf: Find Python, even if PYTHON is empty
marshallward Jul 5, 2023
77b5881
+Refactor nominal depth in ALE code
Hallberg-NOAA Jun 18, 2023
7970347
Add restart subroutine to MOM.F90
adcroft Jun 1, 2023
37ee5cc
+Add tv%valid_SpV_halo to debug non-Boussinesq mode
Hallberg-NOAA Jun 26, 2023
b1210a0
(*)+Use RHO_KV_CONVERT to set nonBous GV%H_to_m
Hallberg-NOAA Jun 27, 2023
2342a58
+Add new (not yet used) arguments to 7 routines
Hallberg-NOAA Jul 12, 2023
df0eaf0
Fms2 io read3d slice (#399)
MJHarrison-GFDL Jul 20, 2023
25feaf2
Fix logic for setting KV_ML_INVZ2 from KVML
adcroft Jul 18, 2023
a5129ca
+Use RHO_PGF_REF for the pressure gradient forces
Hallberg-NOAA Jun 30, 2023
bb71c34
Converted warning about depth_list to a note
adcroft Jul 20, 2023
b9c7c86
Correct diagnostic coordinate interpolation scheme
adcroft Jul 19, 2023
ccd3ded
+(*)Fix wave_speed_init mono_N2_depth bug
Hallberg-NOAA Jul 20, 2023
6102be2
*+Revise non-Boussinesq gprime expressions
Hallberg-NOAA Jun 30, 2023
2f6e86e
*Non-Boussinesq revision of MOM_thickness_diffuse
Hallberg-NOAA Jul 21, 2023
147ddf1
Brine plume (#401)
kshedstrom Jul 25, 2023
d5ba107
+add h to drifters interface (#408)
cspencerjones Jul 25, 2023
249a078
+*Revise units of arguments to vert_fill_TS
Hallberg-NOAA Jul 11, 2023
e465b1f
Add comment justifying rescaling in vert_fill_TS
Hallberg-NOAA Jul 26, 2023
636d610
+*Add and use find_ustar
Hallberg-NOAA Jul 18, 2023
878fd1e
+wave_speed arg mono_N2_depth in thickness units
Hallberg-NOAA Jul 24, 2023
be5602e
*+Add BT_RHO_LINEARIZED to MOM_barotropic.F90
Hallberg-NOAA Jul 19, 2023
fffb6f3
+*Use thickness_to_dz in tracer modules
Hallberg-NOAA May 31, 2023
55fc59a
Fix a bug in the OMP directive for plume_flux
Hallberg-NOAA Jul 28, 2023
5af37b6
Generalized MOM restart function
marshallward Jun 27, 2023
3d9190c
Create restart directory if absent
marshallward Jul 6, 2023
5efad9b
Use POSIX stat to check if restart dir exists
marshallward Jul 21, 2023
84056b1
*Cancel out Z_to_H factors in MOM_hor_visc.F90
Hallberg-NOAA Mar 30, 2023
3fd2191
+*Revise the units of 12 vertvisc_type elements
Hallberg-NOAA Jul 14, 2023
2d42dca
+Thickness-based diffusivity arguments
Hallberg-NOAA Jul 16, 2023
359bdcb
+*Use [H Z2 T-3 ~> m3 s-3 or W m-2] for TKE units
Hallberg-NOAA Jul 19, 2023
fc773d9
+*Non-Boussinesq Rossby_front initialization
Hallberg-NOAA Jul 5, 2023
8f5465b
*Fix logic of an inconsistent initialization test
Hallberg-NOAA Jul 30, 2023
d22b667
+Add find_rho_bottom
Hallberg-NOAA Jul 20, 2023
e4f76c0
+*Non-Boussinesq internal tide drag uses density
Hallberg-NOAA Jul 20, 2023
fd31e01
+(*)Minimum non-Boussinesq answer date of 20230701
Hallberg-NOAA Jul 4, 2023
45cd5c6
Move file parser inquire calls to root PE
marshallward Jul 21, 2023
f01d256
+Non-Boussinesq revisions to wave_interface
Hallberg-NOAA Aug 3, 2023
8f7cc0e
Ice shelf melt parameterization fixes (#395)
claireyung Aug 7, 2023
46c5262
*Use tv%SpV_avg in non-Boussinesq regridding
Hallberg-NOAA Jun 20, 2023
ba70663
*Non-Boussinesq revision of diabatic_driver
Hallberg-NOAA Aug 2, 2023
648012e
Adding a knob for strength of brine plume mixing.
kshedstrom Aug 4, 2023
07713af
+*Ignore SURFACE_ANSWER_DATE when non-Boussinesq
Hallberg-NOAA Jun 30, 2023
597bbf1
+*Non-Boussinesq revision of full_convection
Hallberg-NOAA Aug 5, 2023
3ce1368
+*Non-Boussinesq revision of MOM_vertvisc.F90
Hallberg-NOAA Aug 2, 2023
c4ff021
*+Add forcing%tau_mag_gustless & tau_mag opt args
Hallberg-NOAA Jun 30, 2023
23df713
+*Non-Boussinesq revision of tidal_mixing
Hallberg-NOAA Aug 5, 2023
9e756af
*Fix allocate_forcing_by_ref tau_mag_gustless bug
Hallberg-NOAA Aug 12, 2023
2642c1c
Fix rescaling in regularize_surface debugging
Hallberg-NOAA Jun 14, 2023
f847b3c
*Non-Boussinesq revision of 3 MOM_CVMix modules
Hallberg-NOAA Aug 6, 2023
22a370c
*Non-Boussinesq revision of MOM_CVMix_KPP
Hallberg-NOAA Aug 7, 2023
c803904
Bugfix for MOM_tracer_advect for ad_x/y and ad2d_x/y diagnostic fields
breichl Aug 14, 2023
a808881
*Non-Boussinesq interface_filter
Hallberg-NOAA Jun 16, 2023
d223f25
*Revise calc_isoneutral_slopes when non-Boussinesq
Hallberg-NOAA Jun 8, 2023
d16f343
Refactor rescaling of CFC_cap flux diagnostics
Hallberg-NOAA May 31, 2023
546728a
*+Non-Boussinesq revision of set_viscosity
Hallberg-NOAA Aug 4, 2023
9b86edb
*Non-Boussinesq revision of set_diffusivity
Hallberg-NOAA Aug 12, 2023
828a178
*Non-Boussinesq refactoring of entrain_diffusive
Hallberg-NOAA Aug 6, 2023
be0e800
Merge branch 'main' into dev/gfdl
marshallward Aug 18, 2023
212f2a1
+Add RESTORE_FLUX_RHO and TKE_TIDAL_RHO
Hallberg-NOAA Jun 30, 2023
cf6ac00
Add tau_mag to allocate_forcing_type calls
Hallberg-NOAA Jun 30, 2023
994ce9e
+Set tau_mag in idealized_hurricane_wind_forcing
Hallberg-NOAA Jun 30, 2023
d107737
+Use RESTORE_FLUX_RHO in dumbbell & SCM_CVMix_tests
Hallberg-NOAA Jul 5, 2023
5afb122
Resolve warning about S_REF units
adcroft Jul 25, 2023
4c224e7
Bugfix in MLE for reproducible restarts with USE_BODNER23 = True
breichl Aug 21, 2023
7e51f1d
+*Non-Boussinesq form of mixedlayer_restrat
Hallberg-NOAA Jul 26, 2023
d60c2e0
*Non-Boussinesq revision of kappa_shear
Hallberg-NOAA Aug 5, 2023
bd5fe0c
+(*)Use tv%SpV in MOM_sponge code
Hallberg-NOAA May 14, 2023
b3c7331
*Non-Boussinesq expressions for DOME inflow rates
Hallberg-NOAA Jul 7, 2023
32b5e8a
Separate SAL from tidal_forcing
herrwang0 Mar 9, 2023
4fec906
Decompose output from calc_tidal_forcing
herrwang0 Apr 26, 2023
b69d6fb
Fix SSH for calculating SAL with flooding points
herrwang0 Jun 6, 2023
b94a32c
Renaming input parameter names for the SAL module
herrwang0 Jun 6, 2023
00a63e8
Recover old answers with tides in Boussinesq mode
herrwang0 Jun 16, 2023
3061166
Refactor SAL and tides calls in Boussinesq mode
herrwang0 Jun 20, 2023
3515b80
Change SAL related parameter names
herrwang0 Aug 17, 2023
c6b6143
Modify reading SAL related parameters
herrwang0 Aug 17, 2023
095a3b5
*+Use TIDES_ANSWER_DATE with semi-Boussinesq tides
Hallberg-NOAA Aug 22, 2023
24160d5
*Non-Boussinesq revision of MOM.F90 for restarts
Hallberg-NOAA Aug 15, 2023
1872d3b
*Revise BFB_set_coord and BFB_buoyancy_forcing
Hallberg-NOAA Jul 7, 2023
279ee1c
Use GV%dZ_subroundoff
Hallberg-NOAA Aug 14, 2023
7d199ca
+*Revise non-Boussinesq offline tracer diffusivity
Hallberg-NOAA Jul 31, 2023
72fbee0
+Obsolete 18 2018_ANSWERS runtime parameters
Hallberg-NOAA Aug 12, 2023
9f7f86d
Autoconf: Update deps m4 macros
marshallward Aug 29, 2023
1577ae1
Ice-shelf bugfixes for restarts and halo updates
alex-huth Aug 23, 2023
1d35fa1
implement restart for internal tides (#463)
raphaeldussin Sep 8, 2023
1bb8852
*+Non-Boussinesq MEKE and add MEKE_TOTAL_DEPTH_RHO
Hallberg-NOAA Aug 9, 2023
d342b29
CI: Run test (and test.summary) locally
marshallward Aug 17, 2023
9de6ce7
New TIDAL_SAL_FLATHER option
MJHarrison-GFDL Jul 13, 2023
25b57f4
makedep: Support externals alongside program units
marshallward Sep 6, 2023
a7444b3
*Test for convergence in dz_to_thickness_EOS
Hallberg-NOAA Jul 11, 2023
dd5c47d
*Non-Boussinesq revision of energetic_PBL
Hallberg-NOAA Aug 14, 2023
2337404
+SpV_avg optional argument to extract_optics_slice
Hallberg-NOAA Aug 2, 2023
2f1bdc0
+*Non-Boussinesq bulk mixed layer calculations
Hallberg-NOAA Aug 2, 2023
8d628bd
+*Non-Boussinesq revision of diabatic_aux
Hallberg-NOAA Aug 6, 2023
3ef5b93
Do not allocate ustar and tau_mag together
Hallberg-NOAA Aug 20, 2023
e2d244f
We need an extra pass_var for Kv_shear
kshedstrom Oct 5, 2023
08704f8
+*Non-Boussinesq wave_speed calculations
Hallberg-NOAA Aug 2, 2023
2047676
+*Add halo_size argument to wave_speeds
Hallberg-NOAA Sep 28, 2023
6756b48
makedep: Module dependency in nested includes
marshallward Oct 3, 2023
6d68459
+(*)Non-Boussinesq default for Z_INIT_REMAP_GENERAL
Hallberg-NOAA Sep 30, 2023
13f2603
+*Non-Boussinesq revision of lateral_mixing_coeffs
Hallberg-NOAA Aug 7, 2023
a41d0a0
.testing: Codecov upload uses Github Actions token
marshallward Oct 3, 2023
7cef1e4
+Rename OBC sea surface height variables
Hallberg-NOAA Jul 27, 2023
de38562
Read OBC SSH data in Z units
Hallberg-NOAA Jul 28, 2023
55c948a
+Add find_col_avg_SpV
Hallberg-NOAA Jul 28, 2023
54b46f6
+Non-Boussinesq Flather open boundary conditions
Hallberg-NOAA Jul 28, 2023
06bc001
+Add segment%dZtot
Hallberg-NOAA Jul 29, 2023
e2deaec
*Patches for nonBous_OBCs to prevent blocking
MJHarrison-GFDL Oct 5, 2023
3650339
New treatment of ice shelf boundaries (#467)
alex-huth Oct 7, 2023
c399372
.testing: Codecov token for unit test upload
marshallward Oct 6, 2023
23345f0
*Fix non-Boussinesq Flather BT_OBC%dZ_v bug
Hallberg-NOAA Oct 6, 2023
41609c2
Modify quadrature used for ice shelf viscosity (#468)
alex-huth Oct 10, 2023
2ac48a6
SSA convergence based on change of norm (#469)
alex-huth Oct 11, 2023
bd4c87c
*Use thickness_to_dz in dumbbell_initialize_sponges
Hallberg-NOAA Jul 7, 2023
95d6e93
(+*) Fix bugs in tracer index in tracer reservoirs (#480)
WenhaoChen89 Oct 12, 2023
38aeccd
+Add particle code option to advect with uhtr (#492)
cspencerjones Oct 13, 2023
89506fa
Ice shelf Coulomb friction law (#470)
alex-huth Oct 13, 2023
0c491ce
+REMAP_AUX needs at least one more halo update. (#496)
kshedstrom Oct 13, 2023
ead68d4
+Refactored diapyc_energy_req_test
Hallberg-NOAA Jun 12, 2023
43a4fa9
Refactor diapyc_energy_req_calc and find_PE_chg
Hallberg-NOAA Oct 7, 2023
475590d
Acceleration of Zanna-Bolton-2020 parameterization and new features r…
Pperezhogin Oct 19, 2023
ac66061
Ice-shelf solo driver and MISMIP+ updates (#471)
alex-huth Oct 23, 2023
c9fc30d
ice shelf dHdt and optimization
alex-huth Aug 23, 2023
e5b64f9
Merge branch 'main' into dev/gfdl
marshallward Oct 25, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,14 @@ jobs:
- name: Report unit test coverage to CI (PR)
if: github.event_name == 'pull_request'
run: make report.cov.unit REQUIRE_COVERAGE_UPLOAD=true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

- name: Report unit test coverage to CI (Push)
if: github.event_name != 'pull_request'
run: make report.cov.unit
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

- name: Compile ocean-only MOM6 with code coverage
run: make -j build/cov/MOM6
Expand All @@ -42,7 +46,11 @@ jobs:
- name: Report coverage to CI (PR)
if: github.event_name == 'pull_request'
run: make report.cov REQUIRE_COVERAGE_UPLOAD=true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

- name: Report coverage to CI (Push)
if: github.event_name != 'pull_request'
run: make report.cov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
13 changes: 6 additions & 7 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ stages:
# We use the "fetch" strategy to speed up the startup of stages
variables:
JOB_DIR: "/lustre/f2/scratch/oar.gfdl.ogrp-account/runner/builds/$CI_PIPELINE_ID"
WORKSPACE: "/lustre/f2/scratch/oar.gfdl.ogrp-account/runner/$CI_RUNNER_ID"
GIT_STRATEGY: fetch

# Always eport value of $JOB_DIR
Expand Down Expand Up @@ -185,9 +184,9 @@ actions:gnu:
- make -s -j
- MPIRUN= make preproc -s -j
- echo -e "\e[0Ksection_end:`date +%s`:compile\r\e[0K"
- (echo '#!/bin/bash';echo 'make MPIRUN="srun -mblock --exclusive" WORKSPACE=$WORKSPACE test -s -j') > job.sh
- sbatch --clusters=c5 --nodes=2 --time=0:10:00 --account=gfdl_o --qos=debug --job-name=MOM6.gnu.testing --output=log.$CI_JOB_ID --wait job.sh || ( cat log.$CI_JOB_ID ; exit 911 ) && make WORKSPACE=$WORKSPACE test -s
- make WORKSPACE=$WORKSPACE test.summary
- (echo '#!/bin/bash';echo 'make MPIRUN="srun -mblock --exclusive" test -s -j') > job.sh
- sbatch --clusters=c5 --nodes=2 --time=0:10:00 --account=gfdl_o --qos=debug --job-name=MOM6.gnu.testing --output=log.$CI_JOB_ID --wait job.sh || ( cat log.$CI_JOB_ID ; exit 911 ) && make test -s
- make test.summary

actions:intel:
stage: tests
Expand All @@ -205,9 +204,9 @@ actions:intel:
- make -s -j
- MPIRUN= make preproc -s -j
- echo -e "\e[0Ksection_end:`date +%s`:compile\r\e[0K"
- (echo '#!/bin/bash';echo 'make MPIRUN="srun -mblock --exclusive" WORKSPACE=$WORKSPACE test -s -j') > job.sh
- sbatch --clusters=c5 --nodes=2 --time=0:10:00 --account=gfdl_o --qos=debug --job-name=MOM6.intel.testing --output=log.$CI_JOB_ID --wait job.sh || ( cat log.$CI_JOB_ID ; exit 911 ) && make WORKSPACE=$WORKSPACE test -s
- make WORKSPACE=$WORKSPACE test.summary
- (echo '#!/bin/bash';echo 'make MPIRUN="srun -mblock --exclusive" test -s -j') > job.sh
- sbatch --clusters=c5 --nodes=2 --time=0:10:00 --account=gfdl_o --qos=debug --job-name=MOM6.intel.testing --output=log.$CI_JOB_ID --wait job.sh || ( cat log.$CI_JOB_ID ; exit 911 ) && make test -s
- make test.summary

# Tests
#
Expand Down
45 changes: 17 additions & 28 deletions .testing/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -547,8 +547,8 @@ $(WORKSPACE)/work/%/$(1)/ocean.stats $(WORKSPACE)/work/%/$(1)/chksum_diag: build
&& $(TIME) $(5) $(MPIRUN) -n $(6) $(abspath $$<) 2> std.err > std.out \
|| !( \
mkdir -p ../../../results/$$*/ ; \
cat std.out | tee ../../../results/$$*/std.$(1).out | tail -n 20 ; \
cat std.err | tee ../../../results/$$*/std.$(1).err | tail -n 20 ; \
cat std.out | tee ../../../results/$$*/std.$(1).out | tail -n 40 ; \
cat std.err | tee ../../../results/$$*/std.$(1).err | tail -n 40 ; \
rm ocean.stats chksum_diag ; \
echo -e "$(FAIL): $$*.$(1) failed at runtime." \
)
Expand All @@ -564,13 +564,21 @@ endef

# Upload coverage reports
CODECOV_UPLOADER_URL ?= https://uploader.codecov.io/latest/linux/codecov
CODECOV_TOKEN ?=

ifdef CODECOV_TOKEN
CODECOV_TOKEN_ARG = -t $(CODECOV_TOKEN)
else
CODECOV_TOKEN_ARG =
endif

codecov:
curl -s $(CODECOV_UPLOADER_URL) -o $@
chmod +x codecov

.PHONY: report.cov
report.cov: run.cov codecov
./codecov -R build/cov -Z -f "*.gcov" \
./codecov $(CODECOV_TOKEN_ARG) -R build/cov -Z -f "*.gcov" \
> build/cov/codecov.out \
2> build/cov/codecov.err \
&& echo -e "${MAGENTA}Report uploaded to codecov.${RESET}" \
Expand Down Expand Up @@ -623,8 +631,8 @@ $(WORKSPACE)/work/%/restart/ocean.stats: build/symmetric/MOM6 | preproc
# Run the first half-period
cd $(@D) && $(TIME) $(MPIRUN) -n 1 $(abspath $<) 2> std1.err > std1.out \
|| !( \
cat std1.out | tee ../../../results/$*/std.restart1.out | tail -n 20 ; \
cat std1.err | tee ../../../results/$*/std.restart1.err | tail -n 20 ; \
cat std1.out | tee ../../../results/$*/std.restart1.out | tail -n 40 ; \
cat std1.err | tee ../../../results/$*/std.restart1.err | tail -n 40 ; \
echo -e "$(FAIL): $*.restart failed at runtime." \
)
# Setup the next inputs
Expand All @@ -634,8 +642,8 @@ $(WORKSPACE)/work/%/restart/ocean.stats: build/symmetric/MOM6 | preproc
# Run the second half-period
cd $(@D) && $(TIME) $(MPIRUN) -n 1 $(abspath $<) 2> std2.err > std2.out \
|| !( \
cat std2.out | tee ../../../results/$*/std.restart2.out | tail -n 20 ; \
cat std2.err | tee ../../../results/$*/std.restart2.err | tail -n 20 ; \
cat std2.out | tee ../../../results/$*/std.restart2.out | tail -n 40 ; \
cat std2.err | tee ../../../results/$*/std.restart2.err | tail -n 40 ; \
echo -e "$(FAIL): $*.restart failed at runtime." \
)

Expand All @@ -645,26 +653,7 @@ $(WORKSPACE)/work/%/restart/ocean.stats: build/symmetric/MOM6 | preproc
# Not a true rule; only call this after `make test` to summarize test results.
.PHONY: test.summary
test.summary:
@if ls $(WORKSPACE)/results/*/* &> /dev/null; then \
if ls $(WORKSPACE)/results/*/std.*.err &> /dev/null; then \
echo "The following tests failed to complete:" ; \
ls $(WORKSPACE)/results/*/std.*.out \
| awk '{split($$0,a,"/"); split(a[3],t,"."); v=t[2]; if(length(t)>3) v=v"."t[3]; print a[2],":",v}'; \
fi; \
if ls $(WORKSPACE)/results/*/ocean.stats.*.diff &> /dev/null; then \
echo "The following tests report solution regressions:" ; \
ls $(WORKSPACE)/results/*/ocean.stats.*.diff \
| awk '{split($$0,a,"/"); split(a[3],t,"."); v=t[3]; if(length(t)>4) v=v"."t[4]; print a[2],":",v}'; \
fi; \
if ls $(WORKSPACE)/results/*/chksum_diag.*.diff &> /dev/null; then \
echo "The following tests report diagnostic regressions:" ; \
ls $(WORKSPACE)/results/*/chksum_diag.*.diff \
| awk '{split($$0,a,"/"); split(a[3],t,"."); v=t[2]; if(length(t)>3) v=v"."t[3]; print a[2],":",v}'; \
fi; \
false ; \
else \
echo -e "$(PASS): All tests passed!"; \
fi
@./tools/report_test_results.sh $(WORKSPACE)/results


#---
Expand Down Expand Up @@ -702,7 +691,7 @@ build/unit/MOM_file_parser_tests.F90.gcov: $(WORKSPACE)/work/unit/std.out

.PHONY: report.cov.unit
report.cov.unit: build/unit/MOM_file_parser_tests.F90.gcov codecov
./codecov -R build/unit -f "*.gcov" -Z -n "Unit tests" \
./codecov $(CODECOV_TOKEN_ARG) -R build/unit -f "*.gcov" -Z -n "Unit tests" \
> build/unit/codecov.out \
2> build/unit/codecov.err \
&& echo -e "${MAGENTA}Report uploaded to codecov.${RESET}" \
Expand Down
8 changes: 4 additions & 4 deletions .testing/tc3/MOM_input
Original file line number Diff line number Diff line change
Expand Up @@ -283,10 +283,10 @@ HMIX_FIXED = 20.0 ! [m]
KV = 1.0E-04 ! [m2 s-1]
! The background kinematic viscosity in the interior.
! The molecular value, ~1e-6 m2 s-1, may be used.
KVML = 0.01 ! [m2 s-1] default = 1.0E-04
! The kinematic viscosity in the mixed layer. A typical
! value is ~1e-2 m2 s-1. KVML is not used if
! BULKMIXEDLAYER is true. The default is set by KV.
KV_ML_INVZ2 = 0.01 ! [m2 s-1] default = 0.0
! An extra kinematic viscosity in a mixed layer of thickness HMIX_FIXED, with
! the actual viscosity scaling as 1/(z*HMIX_FIXED)^2, where z is the distance
! from the surface, to allow for finite wind stresses to be transmitted through.
HBBL = 10.0 ! [m]
! The thickness of a bottom boundary layer with a
! viscosity of KVBBL if BOTTOMDRAGLAW is not defined, or
Expand Down
42 changes: 42 additions & 0 deletions .testing/tools/report_test_results.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/sh
RESULTS=${1:-${PWD}/results}

GREEN="\033[0;32m"
RESET="\033[0m"
PASS="${GREEN}PASS${RESET}"

if [ -d ${RESULTS} ]; then
if ls ${RESULTS}/*/std.*.err &> /dev/null; then
echo "The following tests failed to complete:"
ls ${RESULTS}/*/std.*.out \
| awk '{ \
split($$0,a,"/"); \
split(a[length(a)],t,"."); \
v=t[2]; \
if(length(t)>4) v=v"."t[4]; print a[length(a)-1],":",v}'
fi

if ls ${RESULTS}/*/ocean.stats.*.diff &> /dev/null; then
echo "The following tests report solution regressions:"
ls ${RESULTS}/*/ocean.stats.*.diff \
| awk '{ \
split($$0,a,"/"); \
split(a[length(a)],t,"."); \
v=t[3]; \
if(length(t)>4) v=v"."t[4]; print a[length(a)-1],":",v}'
fi

if ls ${RESULTS}/*/chksum_diag.*.diff &> /dev/null; then
echo "The following tests report diagnostic regressions:"
ls ${RESULTS}/*/chksum_diag.*.diff \
| awk '{ \
split($$0,a,"/"); \
split(a[length(a)],t,"."); \
v=t[2]; \
if(length(t)>4) v=v"."t[4]; print a[length(a)-1],":",v}'
fi

exit 1
else
printf "${PASS}: All tests passed!\n"
fi
1 change: 1 addition & 0 deletions ac/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,4 @@ ac-clean: distclean
rm -f @srcdir@/ac/aclocal.m4
rm -rf @srcdir@/ac/autom4te.cache
rm -f @srcdir@/ac/configure
rm -f @srcdir@/ac/configure~
5 changes: 5 additions & 0 deletions ac/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -238,8 +238,13 @@ AC_COMPILE_IFELSE(

# Python interpreter test

# Declare the Python interpreter variable
AC_ARG_VAR([PYTHON], [Python interpreter command])

# If PYTHON is set to an empty string, then unset it
AS_VAR_IF([PYTHON], [], [AS_UNSET([PYTHON])], [])

# Now attempt to find a Python interpreter if PYTHON is unset
AS_VAR_SET_IF([PYTHON], [
AC_PATH_PROGS([PYTHON], ["$PYTHON"], [none])
], [
Expand Down
45 changes: 45 additions & 0 deletions ac/deps/m4/ax_fc_check_c_lib.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
dnl AX_FC_CHECK_C_LIB(LIBRARY, FUNCTION,
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
dnl [OTHER-LDFLAGS], [OTHER-LIBS])
dnl
dnl This macro checks if a C library can be referenced by a Fortran compiler.
dnl
dnl Results are cached in `ax_fc_cv_c_lib_LIBRARY_FUNCTION`.
dnl
dnl NOTE: Might be possible to rewrite this to use `AX_FC_CHECK_BIND_C`.
dnl
AC_DEFUN([AX_FC_CHECK_C_LIB], [
AS_VAR_PUSHDEF([ax_fc_C_Lib], [ax_fc_cv_c_lib_$1_$2])
m4_ifval([$5],
[ax_fc_c_lib_msg_LDFLAGS=" with $5"],
[ax_fc_c_lib_msg_LDFLAGS=""]
)
AC_CACHE_CHECK(
[for $2 in -l$1$ax_fc_c_lib_msg_LDFLAGS], [ax_fc_cv_c_lib_$1_$2], [
ax_fc_check_c_lib_save_LDFLAGS=$LDFLAGS
LDFLAGS="$6 $LDFLAGS"
ax_fc_check_c_lib_save_LIBS=$LIBS
LIBS="-l$1 $7 $LIBS"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([],[dnl
dnl begin code block
interface
subroutine test() bind(c, name="$2")
end subroutine test
end interface
call test])
dnl end code block
],
[AS_VAR_SET([ax_fc_C_Lib], [yes])],
[AS_VAR_SET([ax_fc_C_Lib], [no])]
)
LDFLAGS=$ax_fc_check_c_lib_save_LDFLAGS
LIBS=$ax_fc_check_c_lib_save_LIBS
]
)
AS_VAR_IF([ax_fc_C_Lib], [yes],
[m4_default([$3], [LIBS="-l$1 $LIBS"])],
[$4]
)
AS_VAR_POPDEF([ax_fc_C_Lib])
])
13 changes: 7 additions & 6 deletions ac/deps/m4/ax_fc_check_lib.m4
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ dnl library with different -L flags, or perhaps other ld configurations.
dnl
dnl Results are cached in the ax_fc_cv_lib_LIBRARY_FUNCTION variable.
dnl
AC_DEFUN([AX_FC_CHECK_LIB],[dnl
AC_DEFUN([AX_FC_CHECK_LIB],[
AS_VAR_PUSHDEF([ax_fc_Lib], [ax_fc_cv_lib_$1_$2])
m4_ifval([$6],
[ax_fc_lib_msg_LDFLAGS=" with $6"],
Expand All @@ -29,14 +29,15 @@ AC_DEFUN([AX_FC_CHECK_LIB],[dnl
LDFLAGS="$6 $LDFLAGS"
ax_fc_check_lib_save_LIBS=$LIBS
LIBS="-l$1 $7 $LIBS"
AS_IF([test -n $3],
AS_IF([test -n "$3"],
[ax_fc_use_mod="use $3"],
[ax_fc_use_mod=""])
AC_LINK_IFELSE([
AC_LANG_PROGRAM([], [dnl
AC_LINK_IFELSE([dnl
dnl Begin 7-column code block
AC_LANG_PROGRAM([], [dnl
$ax_fc_use_mod
call $2]dnl
)
call $2])dnl
dnl End code block
],
[AS_VAR_SET([ax_fc_Lib], [yes])],
[AS_VAR_SET([ax_fc_Lib], [no])]
Expand Down
Loading
Loading