-
Notifications
You must be signed in to change notification settings - Fork 179
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
Allow increments to be added for ocean and ice cycling. #1308
Changes from 9 commits
311657d
364df4e
015e0bd
19c4748
46b1e7e
b04954b
55df592
acbeb76
6be7442
b8963ee
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -419,7 +419,7 @@ GILL_EQUATORIAL_LD = True ! [Boolean] default = False | |
! radius, otherwise, if false, use Pedlosky's definition. These definitions | ||
! differ by a factor of 2 in front of the beta term in the denominator. Gill's | ||
! is the more appropriate definition. | ||
INTERNAL_WAVE_SPEED_BETTER_EST = False ! [Boolean] default = True | ||
INTERNAL_WAVE_SPEED_BETTER_EST = False ! [Boolean] default = True | ||
! If true, use a more robust estimate of the first mode wave speed as the | ||
! starting point for iterations. | ||
|
||
|
@@ -757,7 +757,7 @@ MSTAR2_COEF1 = 0.29 ! [nondim] default = 0.3 | |
MSTAR2_COEF2 = 0.152 ! [nondim] default = 0.085 | ||
! Coefficient in computing mstar when only rotation limits the total mixing | ||
! (used if EPBL_MSTAR_SCHEME = OM4) | ||
EPBL_MLD_BISECTION = True ! [Boolean] default = False | ||
EPBL_MLD_BISECTION = True ! [Boolean] default = False | ||
! If true, use bisection with the iterative determination of the self-consistent | ||
! mixed layer depth. Otherwise use the false position after a maximum and | ||
! minimum bound have been evaluated and the returned value or bisection before | ||
|
@@ -858,8 +858,32 @@ USE_NEUTRAL_DIFFUSION = True ! [Boolean] default = False | |
! If true, enables the neutral diffusion module. | ||
|
||
! === module ocean_model_init === | ||
|
||
RESTART_CHECKSUMS_REQUIRED = False | ||
|
||
! === module MOM_oda_incupd === | ||
ODA_INCUPD = @[ODA_INCUPD] ! [Boolean] default = False | ||
! If true, oda incremental updates will be applied | ||
! everywhere in the domain. | ||
ODA_INCUPD_FILE = "mom6_increment.nc" ! The name of the file with the T,S,h increments. | ||
|
||
ODA_TEMPINC_VAR = "Temp" ! default = "ptemp_inc" | ||
! The name of the potential temperature inc. variable in | ||
! ODA_INCUPD_FILE. | ||
ODA_SALTINC_VAR = "Salt" ! default = "sal_inc" | ||
! The name of the salinity inc. variable in | ||
! ODA_INCUPD_FILE. | ||
ODA_THK_VAR = "h" ! default = "h" | ||
! The name of the int. depth inc. variable in | ||
! ODA_INCUPD_FILE. | ||
ODA_INCUPD_UV = false ! | ||
!ODA_UINC_VAR = "u" ! default = "u_inc" | ||
! The name of the zonal vel. inc. variable in | ||
! ODA_INCUPD_UV_FILE. | ||
!ODA_VINC_VAR = "v" ! default = "v_inc" | ||
! The name of the meridional vel. inc. variable in | ||
! ODA_INCUPD_UV_FILE. | ||
ODA_INCUPD_NHOURS = @[ODA_INCUPD_NHOURS] ! default=3.0 | ||
|
||
! === module MOM_lateral_boundary_diffusion === | ||
! This module implements lateral diffusion of tracers near boundaries | ||
|
||
|
@@ -913,8 +937,8 @@ LIQUID_RUNOFF_FROM_DATA = @[MOM6_RIVER_RUNOFF] ! [Boolean] default = False | |
! the data_table using the component name 'OCN'. | ||
! === module ocean_stochastics === | ||
DO_SPPT = @[DO_OCN_SPPT] ! [Boolean] default = False | ||
! If true perturb the diabatic tendencies in MOM_diabadic_driver | ||
PERT_EPBL = @[PERT_EPBL] ! [Boolean] default = False | ||
! If true perturb the diabatic tendencies in MOM_diabadic_driver | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. again There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe somebody had a cold when writing that namelist @CoryMartin-NOAA |
||
PERT_EPBL = @[PERT_EPBL] ! [Boolean] default = False | ||
! If true perturb the KE dissipation and destruction in MOM_energetic_PBL | ||
! === module MOM_restart === | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -76,7 +76,7 @@ SAVE_INITIAL_CONDS = False ! [Boolean] default = False | |
! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. | ||
|
||
! === module MOM_oda_incupd === | ||
ODA_INCUPD = @[MOM_IAU] ! [Boolean] default = False | ||
ODA_INCUPD = @[ODA_INCUPD] ! [Boolean] default = False | ||
! If true, oda incremental updates will be applied | ||
! everywhere in the domain. | ||
ODA_INCUPD_FILE = "mom6_increment.nc" ! The name of the file with the T,S,h increments. | ||
|
@@ -97,7 +97,7 @@ ODA_UINC_VAR = "u_inc" ! default = "u_inc" | |
ODA_VINC_VAR = "v_inc" ! default = "v_inc" | ||
! The name of the meridional vel. inc. variable in | ||
! ODA_INCUPD_UV_FILE. | ||
ODA_INCUPD_NHOURS = @[MOM_IAU_HRS] ! default=3.0 | ||
ODA_INCUPD_NHOURS = @[ODA_INCUPD_NHOURS] ! default=3.0 | ||
! Number of hours for full update (0=direct insertion). | ||
|
||
! === module MOM_domains === | ||
|
@@ -430,7 +430,7 @@ VISC_RES_FN_POWER = 2 ! [nondim] default = 100 | |
! used, although even integers are more efficient to calculate. Setting this | ||
! greater than 100 results in a step-function being used. This function affects | ||
! lateral viscosity, Kh, and not KhTh. | ||
INTERNAL_WAVE_SPEED_BETTER_EST = False ! [Boolean] default = True | ||
INTERNAL_WAVE_SPEED_BETTER_EST = False ! [Boolean] default = True | ||
! If true, use a more robust estimate of the first mode wave speed as the | ||
! starting point for iterations. | ||
|
||
|
@@ -829,6 +829,28 @@ ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 | |
! other globally summed diagnostics. | ||
|
||
! === module ocean_model_init === | ||
ODA_INCUPD = @[ODA_INCUPD] ! [Boolean] default = False | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So usually the MOM_input_template_* is a copy of what is in ufs-weather-model. Do these updates need a corresponding test in ufs-weather-model? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for jumping in @JessicaMeixner-NOAA , I should have thought about adding you when I started modifying the mom namelist! Sorry. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think there is one here: https://github.com/ufs-community/ufs-weather-model/blob/develop/tests/tests/datm_cdeps_iau_gefs but it looks like the settings are different There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It seems close enough to me @JessicaMeixner-NOAA but up to you if you think it needs an update to the RT. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That sounds like a great idea to me too. I think it's important that we are testing in ufs-weather-model what we're actually going to be running and having consistency makes updating the model in the future easier. I believe there was talk at one point to actually point to the MOM_template files in ufs-eather-model instead of having a second copy of these, but I'm not sure if that's still going to be a future development for g-w or not. Either way, I just wanted to flag this as something to be aware of, but I don't think it should hold up this PR. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks @JessicaMeixner-NOAA There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We'd need the following:
I can do all of the above, but it will be a while before I personally have time to do this. Again, there's no reason this PR should not proceed. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes. 3. is on our radar. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That sounds great. Just know this isn't anywhere near the top of my priority list at the moment. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @JessicaMeixner-NOAA |
||
! If true, oda incremental updates will be applied | ||
! everywhere in the domain. | ||
ODA_INCUPD_FILE = "mom6_increment.nc" ! The name of the file with the T,S,h increments. | ||
|
||
ODA_TEMPINC_VAR = "Temp" ! default = "ptemp_inc" | ||
! The name of the potential temperature inc. variable in | ||
! ODA_INCUPD_FILE. | ||
ODA_SALTINC_VAR = "Salt" ! default = "sal_inc" | ||
! The name of the salinity inc. variable in | ||
! ODA_INCUPD_FILE. | ||
ODA_THK_VAR = "h" ! default = "h" | ||
! The name of the int. depth inc. variable in | ||
! ODA_INCUPD_FILE. | ||
ODA_INCUPD_UV = false ! | ||
!ODA_UINC_VAR = "u" ! default = "u_inc" | ||
! The name of the zonal vel. inc. variable in | ||
! ODA_INCUPD_UV_FILE. | ||
!ODA_VINC_VAR = "v" ! default = "v_inc" | ||
! The name of the meridional vel. inc. variable in | ||
! ODA_INCUPD_UV_FILE. | ||
ODA_INCUPD_NHOURS = @[ODA_INCUPD_NHOURS] ! default=3.0 | ||
|
||
! === module MOM_surface_forcing === | ||
OCEAN_SURFACE_STAGGER = "A" ! default = "C" | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,8 @@ | ||
#! /usr/bin/env bash | ||
|
||
############################################################### | ||
if [[ "${DEBUG_WORKFLOW:-NO}" == "NO" ]]; then | ||
export DEBUG_WORKFLOW="${DEBUG_WORKFLOW:-NO}" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. is this a lint thing? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @CoryMartin-NOAA , nope, that was an issue before you added a default to the other places where |
||
if [[ "${DEBUG_WORKFLOW}" == "NO" ]]; then | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this was a mistake to merge this change in... did anyone test? @jiaruidong2017 seems to be having an issue here |
||
echo "Loading modules quietly..." | ||
set +x | ||
fi | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -120,6 +120,14 @@ def link_files_from_src_to_dst(src_dir, dst_dir): | |
makedirs_if_missing(dst_dir) | ||
link_files_from_src_to_dst(src_dir, dst_dir) | ||
|
||
# First 1/2 cycle needs a MOM6 increment | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why? is it not a There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No, it's a |
||
incdir = f'{inputs.cdump}.{idatestr[:8]}/{idatestr[8:]}' | ||
incfile = f'{inputs.cdump}.t{idatestr[8:]}z.ocninc.nc' | ||
src_file = os.path.join(inputs.icsdir, incdir, 'ocean', incfile) | ||
dst_file = os.path.join(comrot, incdir, 'ocean', incfile) | ||
makedirs_if_missing(os.path.join(comrot, incdir, 'ocean')) | ||
os.symlink(src_file, dst_file) | ||
|
||
# Link ice files | ||
if do_ice: | ||
detdir = f'{inputs.cdump}.{rdatestr[:8]}/{rdatestr[8:]}' | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MOM_diabatic_driver
or is it diabadic?