-
Notifications
You must be signed in to change notification settings - Fork 235
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
Sponge restoring: target interface height file should be defined from eta_surface=0 #228
Comments
I have to confess I've never delved into the sponge code but having just scanned it I'm wondering if Bob sets e(1)=0 here because he's using the open boundary mass fluxes in the barotropic solver to set e(1)? I agree that if the forcing file has a non-zero surface height and the code doesn't allow it we should catch it with a warning or error. I'll need to confer with @Hallberg-NOAA (who is away on travel att) to find out what is intended here. |
As a new user, my mistake was that I considered that the ref_eta contained in the forcing file was similar to the output variable e, i.e. interface height relative to mean sea level (ranging from -Topography to free surface elevation e(1), which can be non-zero). As described above, that was wrong because in the sponge code, ref_eta is directly compared to a local variable e, which is defined with e(1)=0. I expected ref_eta to be readjusted (a simple shift) in the code to fit with the e(1)=0 reference, but I could not find anything. A simple check is helpful so that the code does not run with the incorrect fluxes. The user can be aware of the issue and correct the forcing file to have the right reference ref_eta(1)=0. |
Just want to note that I recently fell into the same trap as Alice and spent several days wondering why my ocean was losing mass. Very confusing! |
…mom-ocean#228) * changed some test runs to use 6 processors instead of 2 * turned of failing test * turned of failing test * turned of failing test * now make check && make clean && make check works * fixed Makefile.am wrt input_base.nml * fixed location of input_base.nml for vpath builds * fixing distcheck issue for data_table and diag_table * fixed input_base.nml which should have <test_num> * starting to fix set -e * adding set -e in more places * more set -e * more adding set -e * commenting out more failing tests * using skip instead of commenting out tests * adding option to run shell tests instead of bats tests * starting to switch to shell tests * shell tests now have TAP output * added test_common.sh.in for common shell test code * clean up and comments * added shell test script * better handling of test in diag_manager * now diag_manager tests working well for shell script * took TAP output out of axis_utils * added test script * more conversion away from bats * more progress on shell tests * more progress * more progress adding shell testing * more progress on shell tests * more progress on shell tests * more progress on shell testing * now have shell testing in all test subdirectories * fixed shell test script * fixed makefile * fixed makefile * fixed makefile * fixed makefile * removing bats from axis_utils * temporarily set ENABLE_SHELL_TESTS am conditional * removed bats from data_override and diag_manager * took bats out of drifters * removed bats from exchange * more removal of bats * more removal of bats * more removal of bats * more removal of bats * removed am conditional for enable_shell_tests * removed last .bats and .test files * remove LOG_DRIVER setting in travis * commenting out skipped axis_util test
In this PR an option is added to use ice viscosity computed from the observed surface velocity, computed by the model and use a constant value (for debugging purposes). A new (char) parameter "ICE_VISCOSITY_COMPUTE" is introduced; its values can be "MODEL" (the ice viscosity computed by the model); "OBS" the ice viscosity is computed at the preprocessing step and read from a file (its name is defined by the parameter "ICE_STIFFNESS_FILE") into a variable with a name defined by "A_GLEN_VARNAME" parameter; "CONSANT" is a constant value defined by a parameter "A_GLEN". These changes are in MOM_ice_shelf_dynamics.F90. Minor changes are done to MOM_ice_shelf_initialize.F90 to correct units, scales.
When sponge restoring is applied to interface heights, the apply_sponge subroutine compares e and Ref_eta. Because the current version of the code explicitly sets e(1)=0, it relies on Ref_eta(1)==0.
It would be helpful to add a check for Ref_eta(1) == 0, either in apply_sponge or in initialize_sponges_file (where the forcing file is read in). If the forcing file sponge_state_file has a reference surface height that is non-zero, the code runs but the mass fluxes through the interfaces are wrong and the restoring is not done properly (e.g. total mass/sea surface height decreases linearly with time).
The text was updated successfully, but these errors were encountered: