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

WIP: First attempt to add a generic tracer to OBC scheme #4

Open
wants to merge 147 commits into
base: dev/gfdl
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
79e5797
First attempt to add a generic tracer to OBC scheme
nikizadehgfdl Jun 4, 2020
91a1b7c
Merge remote-tracking branch 'gfdl/dev/gfdl' into dev/esmg
kshedstrom Jun 17, 2020
7c6041a
Replaced copies of GSW files with links
adcroft Jun 19, 2020
b31da6a
Moved pkg/MOM6_DA_hook to config_src/external
adcroft Jun 19, 2020
6818402
Corrected documentation errors
adcroft Jun 19, 2020
9f62a8f
Use FMS tag 2019.01.02 in .testing
adcroft Jun 19, 2020
d8b8688
Merge remote-tracking branch 'gfdl/dev/gfdl' into dev/esmg
kshedstrom Jun 20, 2020
146e5c4
Doxygen for DA hooks
MJHarrison-GFDL Jun 22, 2020
804bf1f
added diagnostics for partial derivative of density wrt temperature a…
Jun 23, 2020
c85cea9
Merge branch 'dev/gfdl' into nikizadehgfdl/ESMG_BGC_OBC
nikizadehgfdl Jun 23, 2020
3f0f038
Remove "-B" flag from pipeline "make test"
adcroft Jun 24, 2020
ac231db
Merge branch 'more-robust-pipeline' into dev/gfdl
adcroft Jun 24, 2020
f35e51d
Merge branch 'dev/gfdl' into fix-pkg
adcroft Jun 24, 2020
f573874
Merge branch 'doxy-pkg' of https://github.com/MJHarrison-GFDL/MOM6 in…
adcroft Jun 24, 2020
e0071f1
Adjusted comments in ODA hooks to fit line length
adcroft Jun 24, 2020
a7ab529
This is the minimum required update to use 2020.01 FMS & FMScoupler
nikizadehgfdl Mar 23, 2020
841dfa0
Merge pull request #1139 from adcroft/fix-pkg
marshallward Jun 25, 2020
7c0ad61
Merge branch 'dev/gfdl' into use-fms-2019-01-02-in-testing
marshallward Jun 25, 2020
2719400
fixes import of dens deriv function
Jun 25, 2020
190d9f5
Merge pull request #1140 from adcroft/use-fms-2019-01-02-in-testing
marshallward Jun 25, 2020
57934c9
Merge branch 'dev/gfdl' into diag_axis_init_FMS2019.01.02
adcroft Jun 25, 2020
424d30d
Testing: Removed environment flag checks
marshallward Jun 25, 2020
ee619d1
Merge pull request #1143 from nikizadehgfdl/diag_axis_init_FMS2019.01.02
adcroft Jun 25, 2020
80e9a23
Merge branch 'dev/gfdl' into test_mpi_flag_remove
Hallberg-NOAA Jun 25, 2020
7e47575
Merge pull request #1144 from marshallward/test_mpi_flag_remove
adcroft Jun 26, 2020
487a33e
Merge branch 'dev/gfdl' into add_dens_deriv_diag
adcroft Jun 26, 2020
c95421f
(*)Corrected halo size in EOS call if VERTEX_SHEAR=T
Hallberg-NOAA Jun 26, 2020
7bf4a30
Fixing openmp issues with FMS2020 cpu affinity
nikizadehgfdl Jun 28, 2020
d44e79b
Merge pull request #1147 from Hallberg-NOAA/fix_vertex_shear_halo
adcroft Jun 29, 2020
bd57b78
Merge branch 'dev/gfdl' into fix_openmp_affinity_issues_with_FMS2020
adcroft Jun 29, 2020
ccd4cbf
Testing: Explicit OpenMP CPU affinity
marshallward Jul 1, 2020
d64be20
Removed #ifdef debugging blocks
Hallberg-NOAA Jul 1, 2020
af55cce
OBC code for slope_x, slope_y.
kshedstrom Jul 1, 2020
8f21d4c
Merge remote-tracking branch 'gfdl/dev/gfdl' into dev/esmg
kshedstrom Jul 1, 2020
650683c
+Aligned newlines with module documentation
Hallberg-NOAA Jul 2, 2020
515f329
Added halo updates for OBC radiation speeds.
kshedstrom Jul 2, 2020
2c18649
Fixing the OMP issue?
kshedstrom Jul 3, 2020
209389a
Was hoping this would fix flux_y, but no.
kshedstrom Jul 3, 2020
d1cd696
+Add like_default optional argument to log_param
Hallberg-NOAA Jul 3, 2020
e9c1f6c
altered OpenMP directive for diagnostic
Jul 3, 2020
3951b70
Merge branch 'add_dens_deriv_diag' of github.com:gmacgilchrist/MOM6 i…
Jul 3, 2020
dd8d3ab
Merge branch 'dev/gfdl' into add_dens_deriv_diag
marshallward Jul 3, 2020
33792c6
Merge pull request #1142 from gmacgilchrist/add_dens_deriv_diag
marshallward Jul 3, 2020
af25108
Merge branch 'dev/gfdl' into remove_ifdefs
marshallward Jul 5, 2020
ff1bef0
Merge pull request #1152 from Hallberg-NOAA/remove_ifdefs
marshallward Jul 5, 2020
b656ce3
Merge branch 'dev/gfdl' into module_doc_newlines
Hallberg-NOAA Jul 6, 2020
029af68
+Set all_default for 4 log_version calls
Hallberg-NOAA Jul 6, 2020
14d4cda
Merge branch 'dev/gfdl' into omp_affinity_test
Hallberg-NOAA Jul 6, 2020
56ec441
Merge pull request #1150 from marshallward/omp_affinity_test
Hallberg-NOAA Jul 6, 2020
b97e31b
Merge branch 'dev/gfdl' into module_doc_newlines
Hallberg-NOAA Jul 6, 2020
a6d5d28
Merge branch 'dev/gfdl' into dev/esmg
adcroft Jul 6, 2020
153417f
Correted OMP directives for two OBC variables
adcroft Jul 6, 2020
9aed664
Merge branch 'ESMG-dev/esmg' into dev/gfdl
adcroft Jul 6, 2020
4647870
Merge branch 'dev/gfdl' into fix_openmp_affinity_issues_with_FMS2020
adcroft Jul 6, 2020
a0e019b
Merge branch 'module_doc_newlines' of https://github.com/Hallberg-NOA…
adcroft Jul 7, 2020
13e61a0
Merge branch 'Hallberg-NOAA-module_doc_newlines' into dev/gfdl
adcroft Jul 7, 2020
5736bcf
Fixed trailing whtiespace for #1148
adcroft Jul 7, 2020
371d4e7
Merge branch 'nikizadehgfdl-fix_openmp_affinity_issues_with_FMS2020' …
adcroft Jul 7, 2020
10afb0b
Merge branch 'fix_openmp_affinity_issues_with_FMS2020' of https://git…
adcroft Jul 7, 2020
5aae165
Merge branch 'nikizadehgfdl-fix_openmp_affinity_issues_with_FMS2020' …
adcroft Jul 7, 2020
5019710
Adds the Stanley version of EOS
adcroft Apr 30, 2020
3006b9c
Renamed pressure_gradient_plm() to TS_PLM_edge_values()
adcroft Apr 30, 2020
7e8ac75
Break out density integrals into a new module
adcroft May 1, 2020
2e1d823
Renamed ppoly_E to edge_values for a bit of clarity
adcroft May 6, 2020
05dbf86
Cleaned up unused use statements
adcroft May 6, 2020
7171c1a
Tidied up logic for EOS_QUADRATURE
adcroft May 6, 2020
6a0b23d
Removed find_depth_of_pressure_in_cell() from MOM_EOS
adcroft May 6, 2020
5b59cdc
Reordered function in MOM_density_integrals
adcroft May 6, 2020
d3e1790
Use SZ macros in declarations
adcroft May 13, 2020
3e1f6b6
Implemented elemental PLM functions
adcroft May 15, 2020
5930855
Add time for unit_tests
adcroft May 15, 2020
a9d0caa
Fixed index capitalization in int_density_dz_generic_plm()
adcroft May 20, 2020
7fbcb01
Re-used pre-computed weights in int_density_dz_generic_plm()
adcroft May 20, 2020
d25a36b
Adds the PPM form of PGF by quadrature
adcroft May 20, 2020
d945d70
Fixed line length issue in documentation
adcroft Jun 15, 2020
aaa0487
Fixed openmp in MOM_ALE.F90
adcroft Jun 15, 2020
80da001
Updated to int_density_dz_generic_ppm() to use k and tv arguments
adcroft Jun 17, 2020
783983e
Renamed MOM_PressureGradient_AFV
adcroft Jun 17, 2020
e833677
After renaming module, change _AFV_ to _FV_
adcroft Jun 17, 2020
660150f
Removed conditional scaling from int_density_dz_generic_ppm()
adcroft Jun 17, 2020
7ae38fe
Adds SGS variance to tv and adds Brankart effect to PGF
adcroft Jun 17, 2020
b7afafb
Adds the deterministic part of the Stanley param.
gustavo-marques Aug 2, 2019
f462c4d
Re-wrote Stanley parameterization using vertical weights
adcroft Jan 23, 2020
75a20d8
Added STANLEY_PRM_DET_COEFF run time parameter
adcroft Jun 18, 2020
c94e0cb
Adds the T variance Stanley component to PGF
adcroft Jun 18, 2020
073b422
Nullified new pointers in tv
adcroft Jun 20, 2020
b7341c2
Correct scaling for second derivs in Stanley param
adcroft Jul 6, 2020
6356092
Corrected indentation in MOM_EOS
adcroft Jul 7, 2020
7544c79
Fixed pressure scaling for calculate_stanley_density_array()
adcroft Jul 7, 2020
31b7e0a
Re-factored int_density_dz_generic_plm()
adcroft Jul 7, 2020
5d4f1eb
Implement Brankart terms in PLM form of PGF
adcroft Jul 7, 2020
ee1232a
Cleaned up tc2 MOM_input
adcroft Jul 8, 2020
f0bab12
Added comments to highlight a dimensionally problematic constant
adcroft Jul 10, 2020
e8adc48
Corrected scaling in _1d and _scalar EOS functions
adcroft Jul 10, 2020
ec0946c
Removed unused member in PressureForce_CS
adcroft Jul 10, 2020
4307fa5
Added FATAL if trying to use parameterization in non-Boussinesq mode
adcroft Jul 10, 2020
b3a584d
(*)Set maximum value of au_visc
Hallberg-NOAA Jul 10, 2020
553166a
Added comments for local variables
adcroft Jul 10, 2020
50a7b3c
Merge branch 'adcroft-brankart' into dev/gfdl
Hallberg-NOAA Jul 11, 2020
8df3e7f
+Eliminate uhbt_IC and ubt_IC from restart files
Hallberg-NOAA Jul 14, 2020
14d6348
+Add the new parameter INTEGRAL_BT_CONTINUITY
Hallberg-NOAA Jul 14, 2020
6374aaf
+Add find_duhbt_dubt_int
Hallberg-NOAA Jul 14, 2020
4743f8c
+Implemented integral_BT_cont options for OBCs
Hallberg-NOAA Jul 14, 2020
2a73d7d
+Adding a halo update for tracer reservoirs.
kshedstrom Jul 14, 2020
37a7ee0
+Reuse find_uhbt with INTEGRAL_BT_CONT
Hallberg-NOAA Jul 16, 2020
7a6a10a
Merge branch 'dev/gfdl' into integral_bt_solver
Hallberg-NOAA Jul 16, 2020
e218354
(*?)Revised ice_shelf_driver.F90 so it compiles
Hallberg-NOAA Jul 16, 2020
f5df25d
Move FMS tag to 2019.01.03
adcroft Jul 20, 2020
6b0f83d
Merge pull request #1164 from adcroft/fms-2019.01.03
marshallward Jul 22, 2020
535b43c
Avoid using uninitialized arrays
Hallberg-NOAA Jul 22, 2020
e55ef75
Merge pull request #1159 from ESMG/dev/esmg
Hallberg-NOAA Jul 22, 2020
2a9248a
Added missing openMP directives
Hallberg-NOAA Jul 22, 2020
3c92d4c
Merge branch 'dev/gfdl' into integral_bt_solver
Hallberg-NOAA Jul 22, 2020
edc674c
Merge pull request #1161 from Hallberg-NOAA/integral_bt_solver
adcroft Jul 23, 2020
3e44491
Merge pull request #1162 from Hallberg-NOAA/ice_shelf_driver
adcroft Jul 23, 2020
5680fe5
Fixing loop bound error in MOM_PressureForce_Montgomery.F90
breichl Jul 27, 2020
6529752
Testing: tc4 installs python-netCDF4 via venv (#1166)
marshallward Jul 27, 2020
df33724
Merge pull request #1169 from breichl/BugFix_MontgomeryPressureForce
marshallward Jul 27, 2020
4c030e6
Momentum budget terms multiplied by fractional layer-thicknesses (#1163)
hmkhatri Jul 29, 2020
16a0a06
OBC: H-dimensionality fixes
marshallward Jul 30, 2020
0c6a7d0
Merge branch 'dev/gfdl' into tc4a_dimh_bug
marshallward Jul 30, 2020
46714ec
OBC: Removal of segment zero
marshallward Jul 30, 2020
dca4d1b
Merge branch 'dev/gfdl' into remove_obc_seg0
marshallward Jul 30, 2020
390188e
Merge pull request #1170 from marshallward/tc4a_dimh_bug
Hallberg-NOAA Jul 30, 2020
9b75b6a
Merge branch 'dev/gfdl' into remove_obc_seg0
Hallberg-NOAA Jul 30, 2020
a243225
OBC: Remove segment 0 refs in mask_outside_OBCs
marshallward Jul 30, 2020
c027b9d
Merge branch 'remove_obc_seg0' of https://github.com/marshallward/mom…
marshallward Jul 30, 2020
3d557d9
Merge pull request #1171 from marshallward/remove_obc_seg0
Hallberg-NOAA Jul 31, 2020
1daad44
(*)Improve make_frazil
Hallberg-NOAA Jul 31, 2020
948e292
(*)Improve advective CFL calculation with tiny h
Hallberg-NOAA Jul 31, 2020
cbbf848
Infrastructure calls via framework directory
Hallberg-NOAA Jul 31, 2020
bba60af
Move call to initialize_segment_data to MOM_state_initialization
MJHarrison-GFDL Aug 4, 2020
7be0883
(*)Set dSV_dT and dSV_dS with unassociated fluxes
Hallberg-NOAA Aug 7, 2020
feed9ba
(*)Fix an indexing bug in int_density_dz_linear
Hallberg-NOAA Aug 7, 2020
f16c250
Merge pull request #1173 from Hallberg-NOAA/infra_via_framework
marshallward Aug 7, 2020
ef85adb
Merge branch 'dev/gfdl' into better_advective_CFL
marshallward Aug 7, 2020
f8d1379
Merge pull request #1172 from Hallberg-NOAA/better_advective_CFL
marshallward Aug 8, 2020
6461d75
Merge branch 'dev/gfdl' into ISOMIP_fixes
marshallward Aug 10, 2020
3c10ae1
Remove outdated comments
MJHarrison-GFDL Aug 10, 2020
73746cb
Merge pull request #1175 from Hallberg-NOAA/ISOMIP_fixes
marshallward Aug 10, 2020
6838177
Merge branch 'dev/gfdl' into move_init_OBC_seg_data
marshallward Aug 10, 2020
068c3cb
Merge pull request #1174 from MJHarrison-GFDL/move_init_OBC_seg_data
marshallward Aug 10, 2020
ff61dd1
Merge branch 'dev/gfdl' into nikizadehgfdl/ESMG_BGC_OBC
nikizadehgfdl Aug 13, 2020
1638c0b
Initialize OBC segments for OBGC tracers
nikizadehgfdl Aug 14, 2020
d0c431b
Add OBC reservoirs for ocean_BGC tracers
nikizadehgfdl Sep 1, 2020
d06e144
Fix to fill OBC segments only for prognostic tracers
nikizadehgfdl Oct 9, 2020
8acd7d0
Fixes and set OBC_update period
nikizadehgfdl Jul 27, 2021
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
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ run:
- time tar zxf $CACHE_DIR/build-intel-repro-$CI_PIPELINE_ID.tgz
- time tar zxf $CACHE_DIR/build-pgi-repro-$CI_PIPELINE_ID.tgz
# time tar zxf $CACHE_DIR/build-gnu-debug-$CI_PIPELINE_ID.tgz
- (echo '#!/bin/tcsh';echo 'make -f MRS/Makefile.tests all -B') > job.sh
- (echo '#!/bin/tcsh';echo 'make -f MRS/Makefile.tests all') > job.sh
- sbatch --clusters=c3,c4 --nodes=29 --time=0:34:00 --account=gfdl_o --qos=debug --job-name=mom6_regressions --output=log.$CI_PIPELINE_ID --wait job.sh
- cat log.$CI_PIPELINE_ID
- test -f restart_results_gnu.tar.gz
Expand Down
6 changes: 0 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,3 @@
[submodule "pkg/GSW-Fortran"]
path = pkg/GSW-Fortran
url = https://github.com/TEOS-10/GSW-Fortran.git
[submodule "pkg/MOM6_DA_hooks"]
path = pkg/MOM6_DA_hooks
url = https://github.com/MJHarrison-GFDL/MOM6_DA_hooks.git
[submodule "pkg/geoKdTree"]
path = pkg/geoKdTree
url = https://github.com/travissluka/geoKdTree.git
88 changes: 61 additions & 27 deletions .testing/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ MKMF := $(abspath $(DEPS)/mkmf/bin/mkmf)

# FMS framework
FMS_URL ?= https://github.com/NOAA-GFDL/FMS.git
FMS_COMMIT ?= 2019.01.01
FMS_COMMIT ?= 2019.01.03
FMS := $(DEPS)/fms

#---
Expand Down Expand Up @@ -92,11 +92,34 @@ TARGET_SOURCE = $(call SOURCE,build/target_codebase/src) \
$(wildcard build/target_codebase/config_src/ext*/*.F90)
FMS_SOURCE = $(call SOURCE,$(DEPS)/fms/src)

#---
# Python preprocessing environment configuration

HAS_NUMPY = $(shell python -c "import numpy" 2> /dev/null && echo "yes")
HAS_NETCDF4 = $(shell python -c "import netCDF4" 2> /dev/null && echo "yes")

USE_VENV =
ifneq ($(HAS_NUMPY), yes)
USE_VENV = yes
endif
ifneq ($(HAS_NETCDF4), yes)
USE_VENV = yes
endif

# When disabled, activation is a null operation (`true`)
VENV_PATH =
VENV_ACTIVATE = true
ifeq ($(USE_VENV), yes)
VENV_PATH = work/local-env
VENV_ACTIVATE = . $(VENV_PATH)/bin/activate
endif


#---
# Rules

.PHONY: all build.regressions
all: $(foreach b,$(BUILDS),build/$(b)/MOM6)
all: $(foreach b,$(BUILDS),build/$(b)/MOM6) $(VENV_PATH)
build.regressions: $(foreach b,symmetric target,build/$(b)/MOM6)

# Executable
Expand Down Expand Up @@ -184,6 +207,18 @@ $(LIST_PATHS) $(MKMF):
cd $(DEPS)/mkmf; git checkout $(MKMF_COMMIT)


#---
# Python preprocessing
# NOTE: Some less mature environments (e.g. Arm64 Ubuntu) require explicit
# installation of numpy before netCDF4, as well as wheel and cython support.
work/local-env:
python3 -m venv $@
. $@/bin/activate \
&& pip3 install wheel \
&& pip3 install cython \
&& pip3 install numpy \
&& pip3 install netCDF4

#----
# Testing

Expand Down Expand Up @@ -264,22 +299,9 @@ $(eval $(call CMP_RULE,regression,symmetric target))

# TODO: chksum_diag parsing of restart files


#---
# Test run output files

# Generalized MPI environment variable support
# XXX: Using `-env` in the MPICH test can erroneously producing an `nv` file.
# $(1): Environment variables
ifeq ($(shell $(MPIRUN) -x tmp=1 true 2> /dev/null ; echo $$?), 0)
MPIRUN_CMD=$(MPIRUN) $(if $(1),-x $(1),)
else ifeq ($(shell $(MPIRUN) -env tmp=1 true 2> /dev/null ; echo $$? ; rm -f nv), 0)
MPIRUN_CMD=$(MPIRUN) $(if $(1),-env $(1),)
else
MPIRUN_CMD=$(1) $(MPIRUN)
endif


# Rule to build work/<tc>/{ocean.stats,chksum_diag}.<tag>
# $(1): Test configuration name <tag>
# $(2): Executable type
Expand All @@ -293,24 +315,30 @@ work/%/$(1)/ocean.stats work/%/$(1)/chksum_diag: build/$(2)/MOM6
if [ $(3) ]; then find build/$(2) -name *.gcda -exec rm -f '{}' \; ; fi
mkdir -p $$(@D)
cp -rL $$*/* $$(@D)
cd $$(@D) && if [ -f Makefile ]; then $(MAKE); fi
if [ -f $$(@D)/Makefile ]; then \
$$(VENV_ACTIVATE) \
&& cd $$(@D) \
&& $(MAKE); \
else \
cd $$(@D); \
fi
mkdir -p $$(@D)/RESTART
echo -e "$(4)" > $$(@D)/MOM_override
cd $$(@D) \
&& $$(call MPIRUN_CMD,$(5)) -n $(6) ../../../$$< 2> std.err > std.out \
&& $(5) $(MPIRUN) -n $(6) ../../../$$< 2> std.err > std.out \
|| !( \
mkdir -p ../../../results/$$*/ ; \
cat std.out | tee ../../../results/$$*/std.$(1).out | tail -20 ; \
cat std.err | tee ../../../results/$$*/std.$(1).err | tail -20 ; \
rm ocean.stats chksum_diag ; \
echo -e "${FAIL}: $$*.$(1) failed at runtime." \
cat std.err | tee ../../../results/$$*/std.$(1).err | tail -20 ; \
rm ocean.stats chksum_diag ; \
echo -e "${FAIL}: $$*.$(1) failed at runtime." \
)
@echo -e "${DONE}: $$*.$(1); no runtime errors."
if [ $(3) ]; then \
mkdir -p results/$$* ; \
bash <(curl -s https://codecov.io/bash) -n $$@ \
> work/$$*/codecov.$(1).out \
2> work/$$*/codecov.$(1).err ; \
2> work/$$*/codecov.$(1).err ; \
fi
endef

Expand All @@ -322,7 +350,7 @@ $(eval $(call STAT_RULE,symmetric,symmetric,$(REPORT_COVERAGE),,,1))
$(eval $(call STAT_RULE,asymmetric,asymmetric,,,,1))
$(eval $(call STAT_RULE,target,target,,,,1))
$(eval $(call STAT_RULE,repro,repro,,,,1))
$(eval $(call STAT_RULE,openmp,openmp,,,,1))
$(eval $(call STAT_RULE,openmp,openmp,,,GOMP_CPU_AFFINITY=0,1))
$(eval $(call STAT_RULE,layout,symmetric,,LAYOUT=2$(,)1,,2))
$(eval $(call STAT_RULE,rotate,symmetric,,ROTATE_INDEX=True\nINDEX_TURNS=1,,1))
$(eval $(call STAT_RULE,nan,symmetric,,,MALLOC_PERTURB_=256,1))
Expand All @@ -339,7 +367,13 @@ work/%/restart/ocean.stats: build/symmetric/MOM6
rm -rf $(@D)
mkdir -p $(@D)
cp -rL $*/* $(@D)
cd work/$*/restart && if [ -f Makefile ]; then $(MAKE); fi
if [ -f $(@D)/Makefile ]; then \
$(VENV_ACTIVATE) \
&& cd work/$*/restart \
&& $(MAKE); \
else \
cd work/$*/restart; \
fi
mkdir -p $(@D)/RESTART
# Generate the half-period input namelist
# TODO: Assumes that runtime set by DAYMAX, will fail if set by input.nml
Expand All @@ -354,8 +388,8 @@ work/%/restart/ocean.stats: build/symmetric/MOM6
cd $(@D) && $(MPIRUN) -n 1 ../../../$< 2> std1.err > std1.out \
|| !( \
cat std1.out | tee ../../../results/$*/std.restart1.out | tail ; \
cat std1.err | tee ../../../results/$*/std.restart1.err | tail ; \
echo -e "${FAIL}: $*.restart failed at runtime." \
cat std1.err | tee ../../../results/$*/std.restart1.err | tail ; \
echo -e "${FAIL}: $*.restart failed at runtime." \
)
# Setup the next inputs
cd $(@D) && rm -rf INPUT && mv RESTART INPUT
Expand All @@ -365,8 +399,8 @@ work/%/restart/ocean.stats: build/symmetric/MOM6
cd $(@D) && $(MPIRUN) -n 1 ../../../$< 2> std2.err > std2.out \
|| !( \
cat std2.out | tee ../../../results/$*/std.restart2.out | tail ; \
cat std2.err | tee ../../../results/$*/std.restart2.err | tail ; \
echo -e "${FAIL}: $*.restart failed at runtime." \
cat std2.err | tee ../../../results/$*/std.restart2.err | tail ; \
echo -e "${FAIL}: $*.restart failed at runtime." \
)

# TODO: Restart checksum diagnostics
Expand Down
8 changes: 8 additions & 0 deletions .testing/tc2/MOM_input
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,10 @@ BOUND_CORIOLIS = True ! [Boolean] default = False
! v-points, and similarly at v-points. This option would
! have no effect on the SADOURNY Coriolis scheme if it
! were possible to use centered difference thickness fluxes.
PGF_STANLEY_T2_DET_COEFF = 0.5 ! [nondim] default = -1.0
! The coefficient correlating SGS temperature variance with the mean temperature
! gradient in the deterministic part of the Stanley form of the Brankart
! correction. Negative values disable the scheme.

! === module MOM_hor_visc ===
LAPLACIAN = True
Expand Down Expand Up @@ -426,6 +430,10 @@ KHTH = 1.0 ! [m2 s-1] default = 0.0
! The background horizontal thickness diffusivity.
KHTH_MAX = 900.0 ! [m2 s-1] default = 0.0
! The maximum horizontal thickness diffusivity.
STANLEY_PRM_DET_COEFF = 0.5 ! [nondim] default = -1.0
! The coefficient correlating SGS temperature variance with the mean temperature
! gradient in the deterministic part of the Stanley parameterization. Negative
! values disable the scheme.

! === module MOM_mixed_layer_restrat ===
FOX_KEMPER_ML_RESTRAT_COEF = 5.0 ! [nondim] default = 0.0
Expand Down
4 changes: 4 additions & 0 deletions .testing/tc4/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ocean_hgrid.nc
sponge.nc
temp_salt_ic.nc
topog.nc
7 changes: 6 additions & 1 deletion .testing/tc4/Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
ocean_hgrid.nc topog.nc temp_salt_ic.nc sponge.nc:
OUT=ocean_hgrid.nc sponge.nc temp_salt_ic.nc topog.nc

$(OUT):
python build_grid.py
python build_data.py

clean:
rm -rf $(OUT)
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ addons:
- mpich libmpich-dev
- doxygen graphviz flex bison cmake
- python-numpy python-netcdf4
- python3 python3-dev python3-venv python3-pip
- bc

jobs:
Expand Down
4 changes: 1 addition & 3 deletions config_src/coupled_driver/MOM_surface_forcing_gfdl.F90
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,8 @@ module MOM_surface_forcing_gfdl
use MOM_constants, only : hlv, hlf
use MOM_cpu_clock, only : cpu_clock_id, cpu_clock_begin, cpu_clock_end
use MOM_cpu_clock, only : CLOCK_SUBCOMPONENT
use MOM_diag_mediator, only : diag_ctrl
use MOM_diag_mediator, only : safe_alloc_ptr, time_type
use MOM_diag_mediator, only : diag_ctrl, safe_alloc_ptr, time_type
use MOM_domains, only : pass_vector, pass_var, fill_symmetric_edges
use MOM_domains, only : global_field_sum, BITWISE_EXACT_SUM
use MOM_domains, only : AGRID, BGRID_NE, CGRID_NE, To_All
use MOM_domains, only : To_North, To_East, Omit_Corners
use MOM_error_handler, only : MOM_error, WARNING, FATAL, is_root_pe, MOM_mesg
Expand Down
2 changes: 1 addition & 1 deletion config_src/external/GFDL_ocean_BGC/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ GFDL_ocean_BGC

These APIs reflect those for the GFDL ocean_BGC available at https://github.com/NOAA-GFDL/ocean_BGC.

The modules in this directory do not do any computations. They simple reflect the APIs of the above package.
The modules in this directory do not do any computations. They simply reflect the APIs of the above package.
9 changes: 9 additions & 0 deletions config_src/external/ODA_hooks/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
ODA_hooks
=========

These APIs reflect those for the ocean data assimilation hooks similar to https://github.com/MJHarrison-GFDL/MOM6_DA_hooks

The modules in this directory do not do any computations. They simply reflect the APIs of the above package.

- kdtree.f90 - would come from https://github.com/travissluka/geoKdTree
- ocean_da_core.F90, ocean_da_types.F90, write_ocean_obs.F90 were copied from https://github.com/MJHarrison-GFDL/MOM6_DA_hooks
12 changes: 12 additions & 0 deletions config_src/external/ODA_hooks/kdtree.f90
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
!> A null version of K-d tree from geoKdTree
module kdtree
implicit none
private

public :: kd_root

!> A K-d tree tpe
type kd_root
integer :: dummy !< To stop a compiler from doing nothing
end type kd_root
end module kdtree
47 changes: 47 additions & 0 deletions config_src/external/ODA_hooks/ocean_da_core.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
!> A set of dummy interfaces for compiling the MOM6 DA driver code.
module ocean_da_core_mod
! MOM modules
use MOM_domains, only : MOM_domain_type, domain2D
use MOM_time_manager, only : time_type, set_time, get_date
! ODA_tools modules
use ocean_da_types_mod, only : ocean_profile_type, grid_type
use kdtree, only : kd_root

implicit none
private
public :: ocean_da_core_init
public :: get_profiles

contains

!> Initializes the MOM6 DA driver code.
subroutine ocean_da_core_init(Domain, global_grid, Profiles, model_time)
type(domain2D), pointer, intent(in) :: Domain !< A MOM domain type
type(grid_type), pointer, intent(in) :: global_grid !< The global ODA horizontal grid type
type(ocean_profile_type), pointer :: Profiles !< This is an unstructured recursive list of profiles
!! which are either within the localized domain corresponding
!! to the Domain argument, or the global profile list (type).
type(time_type), intent(in) :: model_time !< The current model time type.



Profiles=>NULL()
return
end subroutine ocean_da_core_init


!> Get profiles obs within the current analysis interval
subroutine get_profiles(model_time, Profiles, Current_profiles)
type(time_type), intent(in) :: model_time !< The current analysis time.
type(ocean_profile_type), pointer :: Profiles !< The full recursive list of profiles.
type(ocean_profile_type), pointer :: Current_profiles !< A returned list of profiles for the
!! current analysis step.

Profiles=>NULL()
Current_Profiles=>NULL()

return
end subroutine get_profiles


end module ocean_da_core_mod
Loading