Skip to content

Commit

Permalink
feature/coupled-crow updating to use latest ups-weather (#210)
Browse files Browse the repository at this point in the history
* updated checkout build and link to use new unified model
- changed a few names from fv3 to ufs

* updates for linking to new fix

* point to a particular hash of ufs model

* remove theia modules

* update ww3 build for fv3->ufs naming change

* adding WW3 to build

* updates for having cice fix file have resolution folders and
removing cice5 references

* remove CODEwave as it is an unused variable

* more fv3->ufs dir name changes

* update location of fd_nems.yaml file for CMEPS-interface change

* modules used for successful forecast and atm post, but ocn post failed

* remove nowave parm file

* rename w/wave file

* change of parameters for mom6 to match rt tests

* add all the parm files for ocean

* updates for MOM6 to use same MOM_input templates as used in rt tests/parm dir

* add one-step option to no wave case

* updates to make nems.configure template files more closely
match ufs-weather-model tests/parm templates for easier
updates and also added updates for frac grid/not frac grid option

* use latest ufs-weather-model

* update to latest code

* changing n_aero  from 1 to 0 following ufs-community/ufs-weather-model#270

* updating MOM_input_templates based on ufs-community/ufs-weather-model#290

* updating iovsr  after NCAR/ccpp-physics#514 namelist options iovrsw and iovrlw will be replaced by a single iovr option

* updates for most recent commit to ufs-weather-model
includes updates to make CICE input file ice_in match the latest
in the rt test options, updates to include fractional grid options (set to false for now),
update to have namelist options iovrsw and iovrlw will be replaced by a single iovr
which was needed after NCAR/ccpp-physics#514

* deleting redundant/renamed files.  These files are now nems.configure.cpld(_wave).IN
  • Loading branch information
JessicaMeixner-NOAA committed Dec 11, 2020
1 parent a798d9b commit c9c2405
Show file tree
Hide file tree
Showing 17 changed files with 1,017 additions and 1,036 deletions.
916 changes: 437 additions & 479 deletions parm/mom6/MOM_input_template_025

Large diffs are not rendered by default.

934 changes: 453 additions & 481 deletions parm/mom6/MOM_input_template_050

Large diffs are not rendered by default.

71 changes: 50 additions & 21 deletions parm/mom6/MOM_input_template_100
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,17 @@ WRITE_GEOM = 2 ! default = 1
! If =0, never write the geometry and vertical grid files. If =1, write the
! geometry and vertical grid files only for a new simulation. If =2, always
! write the geometry and vertical grid files. Other values are invalid.
SAVE_INITIAL_CONDS = True ! [Boolean] default = False
! If true, write the initial conditions to a file given by IC_OUTPUT_FILE.

! === module MOM_domains ===
TRIPOLAR_N = True ! [Boolean] default = False
! Use tripolar connectivity at the northern edge of the domain. With
! TRIPOLAR_N, NIGLOBAL must be even.
NIGLOBAL = NX_GLB !
NIGLOBAL = NX_GLB !
! The total number of thickness grid points in the x-direction in the physical
! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time.
NJGLOBAL = NY_GLB !
NJGLOBAL = NY_GLB !
! The total number of thickness grid points in the y-direction in the physical
! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time.

Expand All @@ -106,7 +108,7 @@ GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = True
! If true, use an older algorithm to calculate the sine and
! cosines needed rotate between grid-oriented directions and
! true north and east. Differences arise at the tripolar fold
USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = False
USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = True
! If true, use older code that incorrectly sets the longitude in some points
! along the tripolar fold to be off by 360 degrees.
TOPO_CONFIG = "file" !
Expand Down Expand Up @@ -165,6 +167,13 @@ CHANNEL_CONFIG = "list" ! default = "none"
! NetCDF file on the model grid.
CHANNEL_LIST_FILE = "MOM_channels_SPEAR" ! default = "MOM_channel_list"
! The file from which the list of narrowed channels is read.
GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = False
! If true, use an older algorithm to calculate the sine and cosines needed
! rotate between grid-oriented directions and true north and east. Differences
! arise at the tripolar fold.
USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = False
! If true, use older code that incorrectly sets the longitude in some points
! along the tripolar fold to be off by 360 degrees.

! === module MOM_verticalGrid ===
! Parameters providing information about the vertical grid.
Expand Down Expand Up @@ -291,19 +300,22 @@ INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False
! Z-space file on a latitude-longitude grid.

! === module MOM_initialize_layers_from_Z ===
TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc"
TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc" ! default = "temp_salt_z.nc"
! The name of the z-space input file used to initialize
! temperatures (T) and salinities (S). If T and S are not
! in the same file, TEMP_Z_INIT_FILE and SALT_Z_INIT_FILE
! must be set.
Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp"
Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp"
! The name of the potential temperature variable in
! TEMP_Z_INIT_FILE.
Z_INIT_FILE_SALT_VAR = "salt" ! default = "salt"
! The name of the salinity variable in
! SALT_Z_INIT_FILE.
Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False
! If True, then remap straight to model coordinate from file.
Z_INIT_REMAP_OLD_ALG = True ! [Boolean] default = False
! If false, uses the preferred remapping algorithm for initialization. If true,
! use an older, less robust algorithm for remapping.

! === module MOM_diag_mediator ===
!Jiande NUM_DIAG_COORDS = 2 ! default = 1
Expand All @@ -317,9 +329,25 @@ DIAG_COORDS = "z Z ZSTAR"
! is of the form "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME".
DIAG_COORD_DEF_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw"
DIAG_MISVAL = -1e34
!Jiande DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! default = "WOA09"
! Determines how to specify the coordinate
! resolution. Valid options are:
!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
! be included in a diag_table.
!DIAG_COORD_DEF_Z = "FILE:vgrid_75_2m.nc,dz" ! default = "WOA09"
! Determines how to specify the coordinate resolution. Valid options are:
! PARAM - use the vector-parameter DIAG_COORD_RES_Z
! UNIFORM[:N] - uniformly distributed
! FILE:string - read from a file. The string specifies
! the filename and variable name, separated
! by a comma or space, e.g. FILE:lev.nc,dz
! or FILE:lev.nc,interfaces=zw
! WOA09[:N] - the WOA09 vertical grid (approximately)
! FNC1:string - FNC1:dz_min,H_total,power,precision
! HYBRID:string - read from a file. The string specifies
! the filename and two variable names, separated
! by a comma or space, for sigma-2 and dz. e.g.
! HYBRID:vgrid.nc,sigma2,dz
!DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! default = "WOA09"
! Determines how to specify the coordinate resolution. Valid options are:
! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2
! UNIFORM[:N] - uniformly distributed
! FILE:string - read from a file. The string specifies
Expand Down Expand Up @@ -377,7 +405,7 @@ KH_RES_FN_POWER = 100 ! [nondim] default = 2
! The power of dx/Ld in the Kh resolution function. Any positive integer may be
! used, although even integers are more efficient to calculate. Setting this
! greater than 100 results in a step-function being used.
!JW VISC_RES_FN_POWER = 2 ! [nondim] default = 100
VISC_RES_FN_POWER = 2 ! [nondim] default = 100
! The power of dx/Ld in the Kh resolution function. Any positive integer may be
! used, although even integers are more efficient to calculate. Setting this
! greater than 100 results in a step-function being used. This function affects
Expand Down Expand Up @@ -616,7 +644,7 @@ USE_JACKSON_PARAM = True ! [Boolean] default = False
MAX_RINO_IT = 25 ! [nondim] default = 50
! The maximum number of iterations that may be used to estimate the Richardson
! number driven mixing.
VERTEX_SHEAR = True ! [Boolean] default = False
VERTEX_SHEAR = False ! [Boolean] default = False
! If true, do the calculations of the shear-driven mixing
! at the cell vertices (i.e., the vorticity points).
KD_TRUNC_KAPPA_SHEAR = 2.0E-07 ! [m2 s-1] default = 2.0E-07
Expand All @@ -639,14 +667,14 @@ KAPPA_SHEAR_ALL_LAYER_TKE_BUG = True ! [Boolean] default = False

! === module MOM_diabatic_aux ===
! The following parameters are used for auxiliary diabatic processes.
PRESSURE_DEPENDENT_FRAZIL = false ! [Boolean] default = False
PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False
! If true, use a pressure dependent freezing temperature when making frazil. The
! default is false, which will be faster but is inappropriate with ice-shelf
! cavities.
VAR_PEN_SW = True ! [Boolean] default = False
! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine
! the e-folding depth of incoming short wave radiation.
CHL_FILE = CHLCLIM
CHL_FILE = CHLCLIM !
! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It
! is used when VAR_PEN_SW and CHL_FROM_FILE are true.

Expand Down Expand Up @@ -692,14 +720,6 @@ MIX_LEN_EXPONENT = 1.0 ! [nondim] default = 2.0
USE_LA_LI2016 = MOM6_REPRO_LA ! [nondim] default = False
! A logical to use the Li et al. 2016 (submitted) formula to determine the
! Langmuir number.
EPBL_LANGMUIR_SCHEME = "ADDITIVE" ! default = "NONE"
! EPBL_LANGMUIR_SCHEME selects the method for including Langmuir turbulence.
! Valid values are:
! NONE - Do not do any extra mixing due to Langmuir turbulence
! RESCALE - Use a multiplicative rescaling of mstar to account for Langmuir
! turbulence
! ADDITIVE - Add a Langmuir turblence contribution to mstar to other
! contributions
USE_WAVES = MOM6_USE_WAVES ! [Boolean] default = False
! If true, enables surface wave modules.
WAVE_METHOD = "SURFACE_BANDS" ! default = "EMPTY"
Expand All @@ -723,6 +743,14 @@ STK_BAND_COUPLER = 3 ! default = 1
! will fail.
SURFBAND_WAVENUMBERS = 0.04, 0.11, 0.3305 ! [rad/m] default = 0.12566
! Central wavenumbers for surface Stokes drift bands.
EPBL_LANGMUIR_SCHEME = "ADDITIVE" ! default = "NONE"
! EPBL_LANGMUIR_SCHEME selects the method for including Langmuir turbulence.
! Valid values are:
! NONE - Do not do any extra mixing due to Langmuir turbulence
! RESCALE - Use a multiplicative rescaling of mstar to account for Langmuir
! turbulence
! ADDITIVE - Add a Langmuir turblence contribution to mstar to other
! contributions
LT_ENHANCE_COEF = 0.044 ! [nondim] default = 0.447
! Coefficient for Langmuir enhancement of mstar
LT_ENHANCE_EXP = -1.5 ! [nondim] default = -1.33
Expand Down Expand Up @@ -778,13 +806,14 @@ ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0
! other globally summed diagnostics.

! === module ocean_model_init ===

! === module MOM_surface_forcing ===
OCEAN_SURFACE_STAGGER = "A" ! default = "C"
! A case-insensitive character string to indicate the
! staggering of the surface velocity field that is
! returned to the coupler. Valid values include
! 'A', 'B', or 'C'.

! === module MOM_surface_forcing ===
MAX_P_SURF = 0.0 ! [Pa] default = -1.0
! The maximum surface pressure that can be exerted by the atmosphere and
! floating sea-ice or ice shelves. This is needed because the FMS coupling
Expand Down
4 changes: 2 additions & 2 deletions sorc/checkout.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ if [[ ! -d ufs_coupled.fd ]] ; then
git clone https://github.com/ufs-community/ufs-weather-model ufs_coupled.fd >> ${topdir}/checkout-ufs_coupled.log 2>&1
cd ufs_coupled.fd
#git checkout develop
#checkout develop branch hash from 11/9/2020:
git checkout 4e8ef6a879ceefb719cc9cebd8ac9c2208a58b16
#checkout develop branch hash from 12/7/2020:
git checkout 0cf031edc217707f3b5c912e0844e2c2b885ff82
git submodule update --init --recursive
cd ${topdir}
else
Expand Down
6 changes: 4 additions & 2 deletions ush/cplvalidate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,24 @@ case $confignamevarfornems in
'atm') combination=.false..false..false..false..false.;;
'datm') combination=.true..true..false..false..false.;;
'med_atm_ocn_ice') combination=.true..true..true..false..false.;;
'cpld') combination=.true..true..true..false..false.;;
'blocked_atm_wav') combination=.true..false..false..true..false.;;
'leapfrog_atm_wav')combination=.true..false..false..true..false.;;
'med_atm_ocn_ice_wav') combination=.true..true..true..true..false.;;
'cpld_wave') combination=.true..true..true..true..false.;;
'medcold_atm_ocn_ice_wav') combination=.true..true..true..true..false.;;
'med_atm_ocn_ice_wav1way') combination=.true..true..true..true..false.;;
'med_atm_ocn_ice_wav1waywcurr') combination=.true..true..true..true..false.;;
'medcold_atm_ocn_ice_wav') combination=.true..true..true..true..false.;;
'medcold_atm_ocn_ice') combination=.true..true..true..false..false.;;
*) echo "SUB cplvalidate: Combination not supported"
exit ;;
exit 1 ;;
esac
control=$cpl$cplflx$cplice$cplwav$cplchem
#echo $control
if [ $control != $combination ]; then
echo "SUB cplvalidate: inconsistent cpl setting!"
exit 1
exit 2
else
echo "SUB cplvalidate: cpl settings validated!"
fi
Expand Down
4 changes: 2 additions & 2 deletions ush/forecast_postdet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,7 @@ MOM6_postdet()

# Copy mediator restart files to RUNDIR
if [ $inistep = 'restart' ]; then
$NCP $ROTDIR/$CDUMP.$PDY/$cyc/ufs.s2s*.nc $DATA/
$NCP $ROTDIR/$CDUMP.$PDY/$cyc/ufs.cpld*.nc $DATA/
$NCP $ROTDIR/$CDUMP.$PDY/$cyc/rpointer.cpl $DATA/
fi

Expand Down Expand Up @@ -623,7 +623,7 @@ MOM6_out()
[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT

if [ $inistep = 'cold' ]; then
cp $DATA/ufs.s2s.cold.cpl.r.*.nc $COMOUT/
cp $DATA/ufs.cpld.cold.cpl.r.*.nc $COMOUT/
cp $DATA/rpointer.cpl $COMOUT/
status=$?
exit $status
Expand Down
21 changes: 10 additions & 11 deletions ush/nems.configure.med_atm_ocn_ice.IN → ush/nems.configure.cpld.IN
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ OCN_attributes::
DumpFields = @[DumpFields]
ProfileMemory = false
OverwriteSlice = true
dbug_flag = 0
::

# ICE #
Expand All @@ -43,18 +42,18 @@ ICE_attributes::
ProfileMemory = false
OverwriteSlice = true
mesh_ice = @[MESHICE]
stop_n = @[FHMAX]
stop_n = @[RESTART_N]
stop_option = nhours
stop_ymd = -999
::

# CMEPS warm run sequence
runSeq::
@@[CPL_SLOW]
@@[coupling_interval_slow_sec]
MED med_phases_prep_ocn_accum_avg
MED -> OCN :remapMethod=redist
OCN
@@[CPL_FAST]
@@[coupling_interval_fast_sec]
MED med_phases_prep_atm
MED med_phases_prep_ice
MED -> ATM :remapMethod=redist
Expand All @@ -77,7 +76,7 @@ runSeq::
# CMEPS variables

DRIVER_attributes::
mediator_read_restart = @[read_mediator]
mediator_read_restart = @[use_coldstart]
::
MED_attributes::
ATM_model = @[atm_model]
Expand All @@ -86,18 +85,18 @@ MED_attributes::
history_n = 0
history_option = nhours
history_ymd = -999
coupling_mode = nems_orig
coupling_mode = @[CPLMODE]
::
ALLCOMP_attributes::
ScalarFieldCount = 2
ScalarFieldIdxGridNX = 1
ScalarFieldIdxGridNY = 2
ScalarFieldName = cpl_scalars
start_type = startup
case_name = ufs.s2s
restart_n = @[restart_interval_hours]
start_type = @[RUNTYPE]
case_name = ./RESTART/ufs.cpld
restart_n = @[RESTART_N]
restart_option = nhours
restart_ymd = -999
dbug_flag = 0
use_coldstart = @[read_mediator]
dbug_flag = @[cap_dbug_flag]
use_coldstart = @[use_coldstart]
::
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ ICE_attributes::
ProfileMemory = false
OverwriteSlice = true
mesh_ice = @[MESHICE]
stop_n = @[FHMAX]
stop_n = @[RESTART_N]
stop_option = nhours
stop_ymd = -999
stop_ymd = -999
::

# WAV #
Expand All @@ -57,13 +57,13 @@ WAV_attributes::

# CMEPS warm run sequence
runSeq::
@@[CPL_SLOW]
@@[coupling_interval_slow_sec]
MED med_phases_prep_ocn_accum_avg
MED -> OCN :remapMethod=redist
OCN -> WAV
WAV -> OCN :srcMaskValues=1
OCN
@@[CPL_FAST]
@@[coupling_interval_fast_sec]
MED med_phases_prep_atm
MED med_phases_prep_ice
MED -> ATM :remapMethod=redist
Expand All @@ -90,7 +90,7 @@ runSeq::
# CMEPS variables

DRIVER_attributes::
mediator_read_restart = @[read_mediator]
mediator_read_restart = @[use_coldstart]
::
MED_attributes::
ATM_model = @[atm_model]
Expand All @@ -99,18 +99,18 @@ MED_attributes::
history_n = 0
history_option = nhours
history_ymd = -999
coupling_mode = nems_orig
coupling_mode = @[CPLMODE]
::
ALLCOMP_attributes::
ScalarFieldCount = 2
ScalarFieldIdxGridNX = 1
ScalarFieldIdxGridNY = 2
ScalarFieldName = cpl_scalars
start_type = startup
case_name = ufs.s2s
restart_n = @[restart_interval_hours]
start_type = @[RUNTYPE]
case_name = ./RESTART/ufs.cpld
restart_n = @[RESTART_N]
restart_option = nhours
restart_ymd = -999
dbug_flag = 0
use_coldstart = @[read_mediator]
dbug_flag = @[cap_dbug_flag]
use_coldstart = @[use_coldstart]
::
6 changes: 3 additions & 3 deletions ush/nems.configure.medcold_atm_ocn_ice.IN
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ ICE_attributes::
# CMEPS cold run sequence

runSeq::
@@[CPL_SLOW]
@@[CPL_FAST]
@@[coupling_interval_slow_sec]
@@[coupling_interval_fast_sec]
MED med_phases_prep_atm
MED -> ATM :remapMethod=redist
ATM
Expand Down Expand Up @@ -94,7 +94,7 @@ ALLCOMP_attributes::
ScalarFieldIdxGridNY = 2
ScalarFieldName = cpl_scalars
start_type = startup
case_name = ufs.s2s.cold
case_name = ufs.cpld.cold
restart_n = 1
restart_option = nhours
restart_ymd = -999
Expand Down
Loading

0 comments on commit c9c2405

Please sign in to comment.