From 4d8a86f60550c933ff4c0db2843422b7cc8147f8 Mon Sep 17 00:00:00 2001 From: jswhit2 Date: Thu, 26 Oct 2023 20:03:22 +0000 Subject: [PATCH 1/4] initial C96/1 deg coupled model support --- parm/config/gfs/config.base.emc.dyn | 2 +- parm/config/gfs/config.ocn | 1 - parm/config/gfs/config.resources | 9 +++++++ parm/config/gfs/config.ufs | 15 ++++++++++-- parm/ufs/mom6/MOM_input_template_100 | 35 +++++----------------------- ush/parsing_namelists_MOM6.sh | 3 +++ 6 files changed, 32 insertions(+), 33 deletions(-) diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index b77787794c..f00d4f4587 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -166,7 +166,7 @@ case "${CASE}" in export waveGRD='glo_500' ;; "C96") - export OCNRES=500 + export OCNRES=100 export waveGRD='glo_200' ;; "C192") diff --git a/parm/config/gfs/config.ocn b/parm/config/gfs/config.ocn index 7d14e3dd52..37f6a966aa 100644 --- a/parm/config/gfs/config.ocn +++ b/parm/config/gfs/config.ocn @@ -11,7 +11,6 @@ export DO_OCN_PERT_EPBL="NO" # In MOM_input, this variable determines PERT_EPBL # Templated variables in MOM_input_template export MOM6_USE_LI2016="True" # set to False for restart reproducibility export MOM6_THERMO_SPAN="False" -export MOM6_ALLOW_LANDMASK_CHANGES="False" if [[ "${DO_JEDIOCNVAR}" == "YES" ]]; then export ODA_INCUPD="True" diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources index fc6624df98..bdd8c5834c 100644 --- a/parm/config/gfs/config.resources +++ b/parm/config/gfs/config.resources @@ -370,6 +370,9 @@ elif [[ "${step}" = "ocnanalbmat" ]]; then C384) npes=480 ;; + C96) + npes=16 + ;; C48) npes=16 ;; @@ -392,6 +395,9 @@ elif [[ "${step}" = "ocnanalrun" ]]; then npes=480 export memory_ocnanalchkpt="2.8TB" ;; + C96) + npes=16 + ;; C48) npes=16 ;; @@ -418,6 +424,9 @@ elif [[ "${step}" = "ocnanalchkpt" ]]; then C384) export memory_ocnanalchkpt="128GB" ;; + C96) + export memory_ocnanalchkpt="32GB" + ;; C48) export memory_ocnanalchkpt="32GB" ;; diff --git a/parm/config/gfs/config.ufs b/parm/config/gfs/config.ufs index 3ab0c5f28d..8c7b7211b0 100644 --- a/parm/config/gfs/config.ufs +++ b/parm/config/gfs/config.ufs @@ -256,6 +256,9 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RESTART_SETTING='r' MOM6_RIVER_RUNOFF='False' eps_imesh="4.0e-1" + MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_25L.nc" + MOM6_DIAG_MISVAL="0.0" + MOM6_ALLOW_LANDMASK_CHANGES='False' ;; "100") ntasks_mom6=20 @@ -264,11 +267,15 @@ if [[ "${skip_mom6}" == "false" ]]; then NY_GLB=320 DT_DYNAM_MOM6='1800' DT_THERM_MOM6='3600' - FRUNOFF="" + FRUNOFF="runoff.daitren.clim.1deg.nc" CHLCLIM="seawifs_1998-2006_smoothed_2X.nc" - MOM6_RESTART_SETTING='n' + MOM6_RESTART_SETTING='r' MOM6_RIVER_RUNOFF='False' eps_imesh="2.5e-1" + TOPOEDITS="ufs.topo_edits_011818.nc" + MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc" + MOM6_DIAG_MISVAL="0.0" + MOM6_ALLOW_LANDMASK_CHANGES='True' ;; "50") ntasks_mom6=60 @@ -308,9 +315,13 @@ if [[ "${skip_mom6}" == "false" ]]; then export DT_DYNAM_MOM6 DT_THERM_MOM6 export FRUNOFF export CHLCLIM + export TOPOEDITS export MOM6_RIVER_RUNOFF export MOM6_RESTART_SETTING export eps_imesh + export MOM6_DIAG_COORD_DEF_Z_FILE + export MOM6_DIAG_MISVAL + export MOM6_ALLOW_LANDMASK_CHANGES fi # CICE6 specific settings diff --git a/parm/ufs/mom6/MOM_input_template_100 b/parm/ufs/mom6/MOM_input_template_100 index 8b616ad27f..5c671fe9d3 100644 --- a/parm/ufs/mom6/MOM_input_template_100 +++ b/parm/ufs/mom6/MOM_input_template_100 @@ -74,31 +74,6 @@ WRITE_GEOM = 2 ! default = 1 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 = @[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 = "pt_inc" ! default = "ptemp_inc" - ! The name of the potential temperature inc. variable in - ! ODA_INCUPD_FILE. -ODA_SALTINC_VAR = "s_inc" ! default = "sal_inc" - ! The name of the salinity inc. variable in - ! ODA_INCUPD_FILE. -ODA_THK_VAR = "h_fg" ! default = "h" - ! The name of the int. depth inc. variable in - ! ODA_INCUPD_FILE. - -ODA_UINC_VAR = "u_inc" ! default = "u_inc" - ! The name of the zonal vel. inc. variable in - ! ODA_INCUPD_UV_FILE. -ODA_VINC_VAR = "v_inc" ! 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 - ! Number of hours for full update (0=direct insertion). - ! === module MOM_domains === TRIPOLAR_N = True ! [Boolean] default = False ! Use tripolar connectivity at the northern edge of the domain. With @@ -346,7 +321,7 @@ DIAG_COORDS = "z Z ZSTAR" ! A list of string tuples associating diag_table modules to ! a coordinate definition used for diagnostics. Each string ! is of the form "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". -DIAG_COORD_DEF_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw" +DIAG_COORD_DEF_Z="FILE:@[MOM6_DIAG_COORD_DEF_Z_FILE],interfaces=zw" DIAG_MISVAL = -1e34 !AVAILABLE_DIAGS_FILE = "available_diags.002160" ! default = "available_diags.000000" ! A file into which to write a list of all available ocean diagnostics that can @@ -831,6 +806,8 @@ ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 ! other globally summed diagnostics. ! === module ocean_model_init === + +! === module MOM_oda_incupd === ODA_INCUPD = @[ODA_INCUPD] ! [Boolean] default = False ! If true, oda incremental updates will be applied ! everywhere in the domain. @@ -845,11 +822,11 @@ ODA_SALTINC_VAR = "Salt" ! default = "sal_inc" 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" +ODA_INCUPD_UV = true ! +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" +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 diff --git a/ush/parsing_namelists_MOM6.sh b/ush/parsing_namelists_MOM6.sh index 4dceb845a2..8059096363 100755 --- a/ush/parsing_namelists_MOM6.sh +++ b/ush/parsing_namelists_MOM6.sh @@ -75,6 +75,9 @@ sed -e "s/@\[DT_THERM_MOM6\]/${DT_THERM_MOM6}/g" \ -e "s/@\[CHLCLIM\]/${CHLCLIM}/g" \ -e "s/@\[DO_OCN_SPPT\]/${OCN_SPPT}/g" \ -e "s/@\[PERT_EPBL\]/${PERT_EPBL}/g" \ + -e "s/@\[MOM6_DIAG_COORD_DEF_Z_FILE\]/${MOM6_DIAG_COORD_DEF_Z_FILE}/g" \ + -e "s/@\[TOPOEDITS\]/${TOPOEDITS}/g" \ + -e "s/@\[MOM6_DIAG_MISVAL\]/${MOM6_DIAG_MISVAL}/g" \ -e "s/@\[ODA_INCUPD_NHOURS\]/${ODA_INCUPD_NHOURS}/g" \ -e "s/@\[ODA_INCUPD\]/${ODA_INCUPD}/g" "${DATA}/INPUT/MOM_input_template_${OCNRES}" > "${DATA}/INPUT/MOM_input" rm "${DATA}/INPUT/MOM_input_template_${OCNRES}" From 0aa20b41834ecd685c10dccfdbb67f26744198d7 Mon Sep 17 00:00:00 2001 From: jswhit2 Date: Fri, 27 Oct 2023 15:56:58 +0000 Subject: [PATCH 2/4] reset C96 ocean default to 500, add missing env vars to all ocean resolutions --- parm/config/gfs/config.base.emc.dyn | 2 +- parm/config/gfs/config.ufs | 30 ++++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index f00d4f4587..b77787794c 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -166,7 +166,7 @@ case "${CASE}" in export waveGRD='glo_500' ;; "C96") - export OCNRES=100 + export OCNRES=500 export waveGRD='glo_200' ;; "C192") diff --git a/parm/config/gfs/config.ufs b/parm/config/gfs/config.ufs index 8c7b7211b0..3d2e36771a 100644 --- a/parm/config/gfs/config.ufs +++ b/parm/config/gfs/config.ufs @@ -259,6 +259,7 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_25L.nc" MOM6_DIAG_MISVAL="0.0" MOM6_ALLOW_LANDMASK_CHANGES='False' + TOPOEDITS="" ;; "100") ntasks_mom6=20 @@ -273,11 +274,16 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RIVER_RUNOFF='False' eps_imesh="2.5e-1" TOPOEDITS="ufs.topo_edits_011818.nc" - MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc" - MOM6_DIAG_MISVAL="0.0" + if [[ "${DO_JEDIOCNVAR:-NO}" = "YES" ]]; then + MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc" + MOM6_DIAG_MISVAL="0.0" + else + MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc" + MOM6_DIAG_MISVAL="-1e34" + fi MOM6_ALLOW_LANDMASK_CHANGES='True' ;; - "50") + "050") ntasks_mom6=60 OCNTIM=3600 NX_GLB=720 @@ -289,6 +295,15 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RESTART_SETTING='n' MOM6_RIVER_RUNOFF='True' eps_imesh="1.0e-1" + if [[ "${DO_JEDIOCNVAR:-NO}" = "YES" ]]; then + MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc" + MOM6_DIAG_MISVAL="0.0" + else + MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc" + MOM6_DIAG_MISVAL="-1e34" + fi + MOM6_ALLOW_LANDMASK_CHANGES='False' + TOPOEDITS="" ;; "025") ntasks_mom6=220 @@ -302,6 +317,15 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RIVER_RUNOFF='True' MOM6_RESTART_SETTING="r" eps_imesh="1.0e-1" + if [[ "${DO_JEDIOCNVAR:-NO}" = "YES" ]]; then + MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc" + MOM6_DIAG_MISVAL="0.0" + else + MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc" + MOM6_DIAG_MISVAL="-1e34" + fi + MOM6_ALLOW_LANDMASK_CHANGES='False' + TOPOEDITS="" ;; *) echo "FATAL ERROR: Unsupported MOM6 resolution = ${mom6_res}, ABORT!" From 92f28c83acf4f6a835405f3b1c7bf8b38f5e570d Mon Sep 17 00:00:00 2001 From: jswhit2 Date: Fri, 27 Oct 2023 21:26:09 +0000 Subject: [PATCH 3/4] fix failing test --- parm/config/gefs/config.ufs | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index bfbb0a12cb..c0e9543aa4 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -256,6 +256,10 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RESTART_SETTING='r' MOM6_RIVER_RUNOFF='False' eps_imesh="4.0e-1" + MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_25L.nc" + MOM6_DIAG_MISVAL="0.0" + MOM6_ALLOW_LANDMASK_CHANGES='False' + TOPOEDITS="" ;; "100") ntasks_mom6=20 @@ -269,8 +273,15 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RESTART_SETTING='n' MOM6_RIVER_RUNOFF='False' eps_imesh="2.5e-1" + if [[ "${DO_JEDIOCNVAR:-NO}" = "YES" ]]; then + MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc" + MOM6_DIAG_MISVAL="0.0" + else + MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc" + MOM6_DIAG_MISVAL="-1e34" + fi ;; - "50") + "050") ntasks_mom6=60 OCNTIM=3600 NX_GLB=720 @@ -282,6 +293,15 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RESTART_SETTING='n' MOM6_RIVER_RUNOFF='True' eps_imesh="1.0e-1" + TOPOEDITS="ufs.topo_edits_011818.nc" + if [[ "${DO_JEDIOCNVAR:-NO}" = "YES" ]]; then + MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc" + MOM6_DIAG_MISVAL="0.0" + else + MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc" + MOM6_DIAG_MISVAL="-1e34" + fi + MOM6_ALLOW_LANDMASK_CHANGES='True' ;; "025") ntasks_mom6=220 @@ -295,6 +315,15 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RIVER_RUNOFF='True' MOM6_RESTART_SETTING="r" eps_imesh="1.0e-1" + TOPOEDITS="" + if [[ "${DO_JEDIOCNVAR:-NO}" = "YES" ]]; then + MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc" + MOM6_DIAG_MISVAL="0.0" + else + MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc" + MOM6_DIAG_MISVAL="-1e34" + fi + MOM6_ALLOW_LANDMASK_CHANGES='True' ;; *) echo "FATAL ERROR: Unsupported MOM6 resolution = ${mom6_res}, ABORT!" From 57a54e73b0a996d2b5f3789e1b4c777920b902b5 Mon Sep 17 00:00:00 2001 From: jswhit2 Date: Mon, 30 Oct 2023 19:52:10 +0000 Subject: [PATCH 4/4] add exports --- parm/config/gefs/config.ufs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index c0e9543aa4..563ee8f021 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -340,6 +340,10 @@ if [[ "${skip_mom6}" == "false" ]]; then export MOM6_RIVER_RUNOFF export MOM6_RESTART_SETTING export eps_imesh + export TOPOEDITS + export MOM6_DIAG_COORD_DEF_Z_FILE + export MOM6_DIAG_MISVAL + export MOM6_ALLOW_LANDMASK_CHANGES fi # CICE6 specific settings