Skip to content

Commit

Permalink
ocnice_prep - new utility to generate warm-start files for MOM6 and C…
Browse files Browse the repository at this point in the history
…ICE6 (#942)

New utility ocnice_prep and associated unit and regression tests.

cpld_gridgen was updated to output two new remapping weight files required by
ocnice_prep. Two other weight files were deprecated. Update the utility's regression
test accordingly.

Fixes #942.  
Fixes #929.
  • Loading branch information
DeniseWorthen authored Jun 14, 2024
1 parent 2794d41 commit 1651c5c
Show file tree
Hide file tree
Showing 47 changed files with 6,201 additions and 145 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ option(VCOORD_GEN "Enable building vcoord_gen.fd" ON)
option(FVCOMTOOLS "Enable building fvcom_tools.fd" ON)
option(GBLEVENTS "Enable building gblevents.fd" ON)
option(CPLD_GRIDGEN "Enable building cpld_gridgen.fd" ON)
option(OCNICE_PREP "Enable building ocnice_prep.fd" ON)
option(WEIGHT_GEN "Enable building weight_gen.fd" ON)
option(OCEAN_MERGE "Enable building ocean_merge.fd" ON)

Expand All @@ -48,6 +49,7 @@ if(GFS)
set(FVCOMTOOLS OFF CACHE BOOL "Disable building fvcom_tools.fd" FORCE)
set(GBLEVENTS OFF CACHE BOOL "Disable building gblevents.fd" FORCE)
set(CPLD_GRIDGEN OFF CACHE BOOL "Disable building cpld_gridgen.fd" FORCE)
set(OCNICE_PREP OFF CACHE BOOL "Disable building ocnice_prep.fd" FORCE)
set(WEIGHT_GEN OFF CACHE BOOL "Disable building weight_gen.fd" FORCE)
set(OCEAN_MERGE OFF CACHE BOOL "Disable building ocean_merge.fd" FORCE)
endif()
Expand Down
18 changes: 11 additions & 7 deletions docs/main.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,12 @@ https://github.com/ufs-community/UFS_UTILS.
- <a href="chgres_cube/index.html">chgres_cube</a> - Creates cold
start initial conditions for FV3 model runs.

- <a href="cpld_gridgen/index.html">cpld_gridgen</a> - Utility to
create the Fix and IC files for the S2SW and S2S applications
- <a href="cpld_gridgen/index.html">cpld_gridgen</a> - Utility to
create the Fix and IC files for the S2SW and S2S applications

- <a href="ocnice_prep/index.html">ocnice_prep</a> - Utility to
create the warmstart files for OCN and ICE from component restart
files at 1/4 deg tripole resolution

- <a href="emcsfc_ice_blend/index.html">emcsfc_ice_blend</a> - Blends
National Ice Center sea ice cover and EMC sea ice concentration data
Expand All @@ -50,7 +54,7 @@ https://github.com/ufs-community/UFS_UTILS.
- <a href="gblevents/index.html">gblevents</a> -
Prepares observational prepbufr reports for subsequent quality
control and analysis programs.

- <a href="global_cycle/index.html">global_cycle</a> -
Updates the GFS surface conditions using external snow and sea ice
analyses. Updates monthly climatological fields such as plant
Expand All @@ -62,12 +66,12 @@ https://github.com/ufs-community/UFS_UTILS.
gnomonic grids, and to compute the equivalent global resolution of a
regional grid.

- <a href="lsm_routines/index.html">lsm_routines</a> - Land surface
- <a href="lsm_routines/index.html">lsm_routines</a> - Land surface
model-specific routines that are utilised elsewhere within UFS_UTILS.
Currently, contains the routines required by global_cycle to
Currently, contains the routines required by global_cycle to
perform data assimilation updates to land model states

- <a href="ocean_merge/index.html">ocean_merge</a> - Utility to
- <a href="ocean_merge/index.html">ocean_merge</a> - Utility to
determine the water mask by merging a lake mask with a mapped
ocean mask from MOM6.

Expand All @@ -84,6 +88,6 @@ https://github.com/ufs-community/UFS_UTILS.
top and the number of vertical levels. Outputs the 'ak' and 'bk'
parameters used by the forecast model to define the hybrid levels.

- <a href="weight_gen/index.html">weight_gen</a> - Utility to
- <a href="weight_gen/index.html">weight_gen</a> - Utility to
create gaussian grid ESMF 'scrip' files for use in creating
ESMF interpolation weight files.
16 changes: 7 additions & 9 deletions reg_tests/cpld_gridgen/rt.conf
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
#################################################################
# Baseline configurations
# C384_025 needs to be the first test due to dependency of
# the weight-generation from 1/4deg ocean to lower resolution
#################################################################

# TEST_NAME | DEP_NAME
#
# TEST_NAME |

C384_025 |
C192_050 | C384_025
C096_100 | C384_025
C048_500 | C384_025
C192_050 |
C096_100 |
C048_500 |

#################################################################
# Non-baseline configurations.
Expand All @@ -29,5 +27,5 @@
#C768_025 |

#C192_025 |
#C048_500 | C384_025
#C096_500 | C384_025
#C048_500 |
#C096_500 |
12 changes: 1 addition & 11 deletions reg_tests/cpld_gridgen/rt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ elif [[ $target = orion ]]; then
ulimit -s unlimited
SBATCH_COMMAND="./cpld_gridgen.sh"
elif [[ $target = hercules ]]; then
STMP=${STMP:-/work/noaa/stmp/$USER}
STMP=${STMP:-/work2/noaa/stmp/$USER}
export MOM6_FIXDIR=/work/noaa/global/glopara/fix/mom6/20220805
BASELINE_ROOT=/work/noaa/nems/role-nems/ufs_utils.hercules/reg_tests/cpld_gridgen/baseline_data
ACCOUNT=${ACCOUNT:-nems}
Expand Down Expand Up @@ -235,30 +235,20 @@ while read -r line || [ "$line" ]; do
[[ $line =~ \# ]] && continue

TEST_NAME=$(echo $line | cut -d'|' -f1 | sed -e 's/^ *//' -e 's/ *$//')
DEP_NAME=$(echo $line | cut -d'|' -f2 | sed -e 's/^ *//' -e 's/ *$//')
MOSAICRES=${TEST_NAME%_*}
TEST_NAME=${TEST_NAME##*_}
DEP_NAME=${DEP_NAME##*_}

cd $PATHRT
RUNDIR=$RUNDIR_ROOT/$TEST_NAME
BASELINE=$BASELINE_ROOT/$TEST_NAME
NEW_BASELINE=$NEW_BASELINE_ROOT/$TEST_NAME
DEPDIR=$RUNDIR_ROOT/$DEP_NAME
mkdir -p $RUNDIR

# OUTDIR_PATH is passed down to $PATHTR/ush/cpld_gridgen.sh
# It MUST be set
export OUTDIR_PATH=$RUNDIR
export MOSAICRES=$MOSAICRES

if [[ -n $DEP_NAME ]]; then
cp $DEPDIR/Ct.mx025_SCRIP.nc $RUNDIR >/dev/null 2>&1 && d=$? || d=$?
if [[ $d -eq 1 ]]; then
error "DEPDIR $DEPDIR does not exist. Dependency not met"
fi
fi

cp $PATHTR/exec/cpld_gridgen $RUNDIR
cp $PATHTR/ush/cpld_gridgen.sh $RUNDIR
cp $PATHRT/parm/grid.nml.IN $RUNDIR
Expand Down
34 changes: 34 additions & 0 deletions reg_tests/ocnice_prep/RegressionTests_hera.intel.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Mon Jun 10 11:47:37 UTC 2024
Start Regression test

Working dir = /scratch1/NCEPDEV/stmp4/Denise.Worthen/OCNICE_PREP/rt_237427/050_ocean
Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/ocnice_prep/baseline_data/050_ocean

Checking test 050_ocean results ....
Comparing ocean.mx050.nc........OK


Working dir = /scratch1/NCEPDEV/stmp4/Denise.Worthen/OCNICE_PREP/rt_237427/050_ice
Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/ocnice_prep/baseline_data/050_ice

Checking test 050_ice results ....
Comparing ice.mx050.nc........OK


Working dir = /scratch1/NCEPDEV/stmp4/Denise.Worthen/OCNICE_PREP/rt_237427/100_ocean
Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/ocnice_prep/baseline_data/100_ocean

Checking test 100_ocean results ....
Comparing ocean.mx100.nc........OK


Working dir = /scratch1/NCEPDEV/stmp4/Denise.Worthen/OCNICE_PREP/rt_237427/100_ice
Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/ocnice_prep/baseline_data/100_ice

Checking test 100_ice results ....
Comparing ice.mx100.nc........OK


REGRESSION TEST WAS SUCCESSFUL
Mon Jun 10 11:56:38 UTC 2024
Elapsed time: 00h:11m:00s. Have a nice day!
34 changes: 34 additions & 0 deletions reg_tests/ocnice_prep/RegressionTests_hercules.intel.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Mon Jun 10 06:42:55 AM CDT 2024
Start Regression test

Working dir = /work2/noaa/stmp/dworthen/OCNICE_PREP/rt_841654/050_ocean
Baseline dir = /work/noaa/nems/role-nems/ufs_utils.hercules/reg_tests/ocnice_prep/baseline_data/050_ocean

Checking test 050_ocean results ....
Comparing ocean.mx050.nc........OK


Working dir = /work2/noaa/stmp/dworthen/OCNICE_PREP/rt_841654/050_ice
Baseline dir = /work/noaa/nems/role-nems/ufs_utils.hercules/reg_tests/ocnice_prep/baseline_data/050_ice

Checking test 050_ice results ....
Comparing ice.mx050.nc........OK


Working dir = /work2/noaa/stmp/dworthen/OCNICE_PREP/rt_841654/100_ocean
Baseline dir = /work/noaa/nems/role-nems/ufs_utils.hercules/reg_tests/ocnice_prep/baseline_data/100_ocean

Checking test 100_ocean results ....
Comparing ocean.mx100.nc........OK


Working dir = /work2/noaa/stmp/dworthen/OCNICE_PREP/rt_841654/100_ice
Baseline dir = /work/noaa/nems/role-nems/ufs_utils.hercules/reg_tests/ocnice_prep/baseline_data/100_ice

Checking test 100_ice results ....
Comparing ice.mx100.nc........OK


REGRESSION TEST WAS SUCCESSFUL
Mon Jun 10 06:50:14 AM CDT 2024
Elapsed time: 00h:08m:53s. Have a nice day!
34 changes: 34 additions & 0 deletions reg_tests/ocnice_prep/RegressionTests_jet.intel.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Wed Jun 12 20:45:36 UTC 2024
Start Regression test

Working dir = /lfs4/HFIP/h-nems/Denise.Worthen/OCNICE_PREP/rt_130374/050_ocean
Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/ocnice_prep/baseline_data/050_ocean

Checking test 050_ocean results ....
Comparing ocean.mx050.nc........OK


Working dir = /lfs4/HFIP/h-nems/Denise.Worthen/OCNICE_PREP/rt_130374/050_ice
Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/ocnice_prep/baseline_data/050_ice

Checking test 050_ice results ....
Comparing ice.mx050.nc........OK


Working dir = /lfs4/HFIP/h-nems/Denise.Worthen/OCNICE_PREP/rt_130374/100_ocean
Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/ocnice_prep/baseline_data/100_ocean

Checking test 100_ocean results ....
Comparing ocean.mx100.nc........OK


Working dir = /lfs4/HFIP/h-nems/Denise.Worthen/OCNICE_PREP/rt_130374/100_ice
Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/ocnice_prep/baseline_data/100_ice

Checking test 100_ice results ....
Comparing ice.mx100.nc........OK


REGRESSION TEST WAS SUCCESSFUL
Wed Jun 12 20:55:36 UTC 2024
Elapsed time: 00h:11m:40s. Have a nice day!
34 changes: 34 additions & 0 deletions reg_tests/ocnice_prep/RegressionTests_orion.intel.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Mon Jun 10 06:41:45 CDT 2024
Start Regression test

Working dir = /work/noaa/stmp/dworthen/OCNICE_PREP/rt_328489/050_ocean
Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/ocnice_prep/baseline_data/050_ocean

Checking test 050_ocean results ....
Comparing ocean.mx050.nc........OK


Working dir = /work/noaa/stmp/dworthen/OCNICE_PREP/rt_328489/050_ice
Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/ocnice_prep/baseline_data/050_ice

Checking test 050_ice results ....
Comparing ice.mx050.nc........OK


Working dir = /work/noaa/stmp/dworthen/OCNICE_PREP/rt_328489/100_ocean
Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/ocnice_prep/baseline_data/100_ocean

Checking test 100_ocean results ....
Comparing ocean.mx100.nc........OK


Working dir = /work/noaa/stmp/dworthen/OCNICE_PREP/rt_328489/100_ice
Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/ocnice_prep/baseline_data/100_ice

Checking test 100_ice results ....
Comparing ice.mx100.nc........OK


REGRESSION TEST WAS SUCCESSFUL
Mon Jun 10 06:51:44 CDT 2024
Elapsed time: 00h:11m:29s. Have a nice day!
34 changes: 34 additions & 0 deletions reg_tests/ocnice_prep/RegressionTests_wcoss2.intel.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Mon Jun 10 11:39:28 UTC 2024
Start Regression test

Working dir = /lfs/h2/emc/stmp/denise.worthen/OCNICE_PREP/rt_54595/050_ocean
Baseline dir = /lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/ocnice_prep/baseline_data/050_ocean

Checking test 050_ocean results ....
Comparing ocean.mx050.nc........OK


Working dir = /lfs/h2/emc/stmp/denise.worthen/OCNICE_PREP/rt_54595/050_ice
Baseline dir = /lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/ocnice_prep/baseline_data/050_ice

Checking test 050_ice results ....
Comparing ice.mx050.nc........OK


Working dir = /lfs/h2/emc/stmp/denise.worthen/OCNICE_PREP/rt_54595/100_ocean
Baseline dir = /lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/ocnice_prep/baseline_data/100_ocean

Checking test 100_ocean results ....
Comparing ocean.mx100.nc........OK


Working dir = /lfs/h2/emc/stmp/denise.worthen/OCNICE_PREP/rt_54595/100_ice
Baseline dir = /lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/ocnice_prep/baseline_data/100_ice

Checking test 100_ice results ....
Comparing ice.mx100.nc........OK


REGRESSION TEST WAS SUCCESSFUL
Mon Jun 10 11:49:24 UTC 2024
Elapsed time: 00h:10m:59s. Have a nice day!
52 changes: 52 additions & 0 deletions reg_tests/ocnice_prep/parm/ice.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
! variable name, dimension, grid location, remapping method, vector pair, grid location of vector pair
'uvel' , 2, 'Bu_x', 'bilinear', 'vvel', 'Bu_y'
'vvel' , 2, 'Bu_y', 'bilinear', 'uvel', 'Bu_x'
'coszen' , 2, 'Ct', 'bilinear', '', ''
'scale_factor' , 2, 'Ct', 'bilinear', '', ''
'swvdr' , 2, 'Ct', 'bilinear', '', ''
'swvdf' , 2, 'Ct', 'bilinear', '', ''
'swidr' , 2, 'Ct', 'bilinear', '', ''
'swidf' , 2, 'Ct', 'bilinear', '', ''
'strocnxT' , 2, 'Ct', 'bilinear', '', ''
'strocnyT' , 2, 'Ct', 'bilinear', '', ''
'stressp_1' , 2, 'Ct', 'bilinear', '', ''
'stressp_2' , 2, 'Ct', 'bilinear', '', ''
'stressp_3' , 2, 'Ct', 'bilinear', '', ''
'stressp_4' , 2, 'Ct', 'bilinear', '', ''
'stressm_1' , 2, 'Ct', 'bilinear', '', ''
'stressm_2' , 2, 'Ct', 'bilinear', '', ''
'stressm_3' , 2, 'Ct', 'bilinear', '', ''
'stressm_4' , 2, 'Ct', 'bilinear', '', ''
'stress12_1' , 2, 'Ct', 'bilinear', '', ''
'stress12_2' , 2, 'Ct', 'bilinear', '', ''
'stress12_3' , 2, 'Ct', 'bilinear', '', ''
'stress12_4' , 2, 'Ct', 'bilinear', '', ''
'iceumask' , 2, 'Ct', 'bilinear', '', ''
'fsnow' , 2, 'Ct', 'bilinear', '', ''
'aicen' , 3 , 'Ct', 'bilinear', '', ''
'vicen' , 3 , 'Ct', 'bilinear', '', ''
'vsnon' , 3 , 'Ct', 'bilinear', '', ''
'Tsfcn' , 3 , 'Ct', 'bilinear', '', ''
'iage' , 3 , 'Ct', 'bilinear', '', ''
'alvl' , 3 , 'Ct', 'bilinear', '', ''
'vlvl' , 3 , 'Ct', 'bilinear', '', ''
'apnd' , 3 , 'Ct', 'bilinear', '', ''
'hpnd' , 3 , 'Ct', 'bilinear', '', ''
'ipnd' , 3 , 'Ct', 'bilinear', '', ''
'dhs' , 3 , 'Ct', 'bilinear', '', ''
'ffrac' , 3 , 'Ct', 'bilinear', '', ''
'sice001' , 3 , 'Ct', 'bilinear', '', ''
'qice001' , 3 , 'Ct', 'bilinear', '', ''
'sice002' , 3 , 'Ct', 'bilinear', '', ''
'qice002' , 3 , 'Ct', 'bilinear', '', ''
'sice003' , 3 , 'Ct', 'bilinear', '', ''
'qice003' , 3 , 'Ct', 'bilinear', '', ''
'sice004' , 3 , 'Ct', 'bilinear', '', ''
'qice004' , 3 , 'Ct', 'bilinear', '', ''
'sice005' , 3 , 'Ct', 'bilinear', '', ''
'qice005' , 3 , 'Ct', 'bilinear', '', ''
'sice006' , 3 , 'Ct', 'bilinear', '', ''
'qice006' , 3 , 'Ct', 'bilinear', '', ''
'sice007' , 3 , 'Ct', 'bilinear', '', ''
'qice007' , 3 , 'Ct', 'bilinear', '', ''
'qsno001' , 3 , 'Ct', 'bilinear', '', ''
8 changes: 8 additions & 0 deletions reg_tests/ocnice_prep/parm/ocean.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
! variable name, dimension, grid location, remapping method, vector pair, grid location of vector pair
'sfc', 2 ,'Ct' , 'bilinear' , '', ''
'eta', 3 ,'Ct' , 'bilinear' , '', ''
'Temp', 3 ,'Ct' , 'bilinear' , '', ''
'Salt', 3 ,'Ct' , 'bilinear' , '', ''
'h', 3 ,'Ct' , 'bilinear' , '', ''
'u', 3 ,'Cu' , 'bilinear' , 'v' , 'Cv'
'v', 3 ,'Cv' , 'bilinear' , 'u' , 'Cu'
8 changes: 8 additions & 0 deletions reg_tests/ocnice_prep/parm/ocniceprep.nml.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
&ocniceprep_nml
ftype='FILETYPE'
wgtsdir='WTSDIR'
griddir='GRDDIR'
srcdims=SRCDIMS
dstdims=DSTDIMS
debug=DO_DEBUG
/
10 changes: 10 additions & 0 deletions reg_tests/ocnice_prep/rt.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#################################################################
# Baseline configurations
#################################################################

# TEST_NAME |

050_ocean
050_ice
100_ocean
100_ice
Loading

0 comments on commit 1651c5c

Please sign in to comment.