Skip to content

Commit

Permalink
Add GEFS regression test suite from EP5r2 configuration/case + Update…
Browse files Browse the repository at this point in the history
… UPP with new variables (#2442)

* UFSWM - Add GEFS regression test suite from EP5r2 configuration/case
  * FV3 - Update UPP hash
    * upp - Update UPP with new variables capabilities, including snow-liquid-ratio, stream function, and velocity potential

---------

Co-authored-by: Jesse Meng <[email protected]>
  • Loading branch information
NickSzapiro-NOAA and JesseMeng-NOAA authored Feb 27, 2025
1 parent ad1c0d2 commit 6cb9e1d
Show file tree
Hide file tree
Showing 42 changed files with 5,514 additions and 2,591 deletions.
2 changes: 1 addition & 1 deletion FV3
Submodule FV3 updated 1 files
+1 −1 upp
2 changes: 1 addition & 1 deletion tests/bl_date.conf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export BL_DATE=20250219
export BL_DATE=20250224
2 changes: 1 addition & 1 deletion tests/compile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ export CMAKE_FLAGS

bash -x "${PATHTR}/build.sh"

mv "${BUILD_DIR}/ufs_model" "${PATHTR}/tests/${BUILD_NAME}.exe"
rsync --remove-source-files "${BUILD_DIR}/ufs_model" "${PATHTR}/tests/${BUILD_NAME}.exe"
if [[ ${MACHINE_ID} == linux ]]; then
cp "${PATHTR}/modulefiles/ufs_${MACHINE_ID}.${RT_COMPILER}" "${PATHTR}/tests/modules.${BUILD_NAME}"
else
Expand Down
7 changes: 4 additions & 3 deletions tests/default_vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export OCN_tasks_cpl_bmrk=120
export OCN_thrds_cpl_bmrk=1
export ICE_tasks_cpl_bmrk=48
export ICE_thrds_cpl_bmrk=1
export WAV_tasks_cpl_bmrk=80
export WAV_tasks_cpl_bmrk=120
export WAV_thrds_cpl_bmrk=2

export THRD_cpl_c192=2
Expand Down Expand Up @@ -119,6 +119,7 @@ export wav_omp_num_threads=1
export fbh_omp_num_threads=1

export histaux_enabled=.false.
export BMIC=.false.

if [[ ${MACHINE_ID} = wcoss2 || ${MACHINE_ID} = acorn ]]; then

Expand Down Expand Up @@ -585,6 +586,7 @@ export MODEL_INITIALIZATION=false
export WARM_START=.false.
export READ_INCREMENT=.false.
export RES_LATLON_DYNAMICS="''"
export ATM_IGNORE_RST_CKSUM=.false.
export INCREMENT_FILE_ON_NATIVE_GRID=.false.
export NGGPS_IC=.true.
export EXTERNAL_IC=.true.
Expand Down Expand Up @@ -1262,6 +1264,7 @@ export_mom6() {
export DT_THERM_MOM6=3600
export MOM6_INPUT=MOM_input_100.IN
export MOM6_OUTPUT_DIR=./MOM6_OUTPUT
export MOM6_OUTPUT_FH=6
export MOM6_RESTART_DIR=./RESTART/
export MOM6_RESTART_SETTING=n
export MOM6_RIVER_RUNOFF=False
Expand Down Expand Up @@ -1398,8 +1401,6 @@ export DOCN_CDEPS=false
export DICE_CDEPS=false
export CICE_PRESCRIBED=false
export CDEPS_INLINE=false
export FV3BMIC='p8c'
export BMIC=.false.
export DAYS=1

#model configure
Expand Down
115 changes: 82 additions & 33 deletions tests/fv3_conf/cpld_control_run.IN
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,9 @@ ICERES=${OCNRES:0:1}.${OCNRES:1}

V2_SFC_FILE=${V2_SFC_FILE:-false}

if [[ $BMIC == .true. ]]; then
FV3_IC=@[INPUTDATA_ROOT_BMIC]/${SYEAR}${SMONTH}${SDAY}${SHOUR}/@[FV3BMIC]/@[ATMRES]_L@[NPZ]/INPUT
MOM_IC=@[INPUTDATA_ROOT_BMIC]/${SYEAR}${SMONTH}${SDAY}${SHOUR}/mom6_da
ICE_IC=@[INPUTDATA_ROOT_BMIC]/${SYEAR}${SMONTH}${SDAY}${SHOUR}/cpc
if [[ ${BMIC} == .true. ]]; then
FV3_IC=@[INPUTDATA_ROOT]/GEFS/${SYEAR}${SMONTH}${SDAY}${SHOUR}/
MOM_IC=${FV3_IC}; ICE_IC=${FV3_IC}; WAV_IC=${FV3_IC};
else
if [[ $ATMRES == C48 ]]; then
FV3_IC=@[INPUTDATA_ROOT]/${FV3_DIR}/INPUT_L127_mx${OCNRES}/${SYEAR}${SMONTH}${SDAY}${SHOUR}
Expand Down Expand Up @@ -65,7 +64,7 @@ cp @[INPUTDATA_ROOT]/CICE_FIX/@[OCNRES]/mesh.mx@[OCNRES].nc .
if [[ $CPLWAV == .true. ]]; then
cp @[INPUTDATA_ROOT_WW3]/@[WW3_MODDEF] mod_def.ww3
if [[ ${WW3_DOMAIN:0:2} != mx ]]; then
cp @[INPUTDATA_ROOT_WW3]/@[MESH_WAV] .
cp @[INPUTDATA_ROOT_WW3]/@[MESH_WAV] .
fi
fi

Expand All @@ -82,21 +81,16 @@ if [ $WARM_START = .false. ]; then
cp ${FV3_IC}/sfc_data*.nc ./INPUT
cp ${FV3_IC}/gfs_data*.nc ./INPUT
cp ${FV3_IC}/gfs_ctrl.nc ./INPUT
if [[ $BMIC == .true. ]]; then
cp ${MOM_IC}/MOM*.nc ./INPUT
cp ${ICE_IC}/cice5_model_@[ICERES].res_${SYEAR}${SMONTH}${SDAY}00.nc ./cice_model.res.nc
if [[ $ATMRES == C48 ]]; then
cp ${MOM_IC}/MOM.res.nc ./INPUT
cp ${ICE_IC}/cice_model_@[ICERES].cpc.res_* ./cice_model.res.nc
else
if [[ $ATMRES == C48 ]]; then
cp ${MOM_IC}/MOM.res.nc ./INPUT
cp ${ICE_IC}/cice_model_@[ICERES].cpc.res_* ./cice_model.res.nc
if [[ $OCNICE_WARMSTART == .true. ]]; then
cp ${MOM_IC}/mom6.mx@[OCNRES].${SYEAR}${SMONTH}${SDAY}${SHOUR}.warmstart.nc ./INPUT/mom6.warmstart.nc
cp ${ICE_IC}/cice.mx@[OCNRES].${SYEAR}${SMONTH}${SDAY}${SHOUR}.warmstart.nc ./cice.warmstart.nc
else
if [[ $OCNICE_WARMSTART == .true. ]]; then
cp ${MOM_IC}/mom6.mx@[OCNRES].${SYEAR}${SMONTH}${SDAY}${SHOUR}.warmstart.nc ./INPUT/mom6.warmstart.nc
cp ${ICE_IC}/cice.mx@[OCNRES].${SYEAR}${SMONTH}${SDAY}${SHOUR}.warmstart.nc ./cice.warmstart.nc
else
cp ${MOM_IC}/MOM6_IC_TS_${SYEAR}${SMONTH}${SDAY}${SHOUR}.nc ./INPUT/MOM6_IC_TS.nc
cp ${ICE_IC}/${OCNRES}/cice_model_@[ICERES].cpc.res_${SYEAR}${SMONTH}${SDAY}.nc ./cice_model.res.nc
fi
cp ${MOM_IC}/MOM6_IC_TS_${SYEAR}${SMONTH}${SDAY}${SHOUR}.nc ./INPUT/MOM6_IC_TS.nc
cp ${ICE_IC}/${OCNRES}/cice_model_@[ICERES].cpc.res_${SYEAR}${SMONTH}${SDAY}.nc ./cice_model.res.nc
fi
fi
else
Expand Down Expand Up @@ -127,7 +121,11 @@ else
else
cp ../${DEP_RUN}${SUFFIX}/${MOM6_RESTART_DIR}/${RESTART_FILE_PREFIX}.MOM.res.nc ./INPUT/MOM.res.nc
if [[ $ODA_INCUPD == 'True' ]] && [[ $FHROT -le 6 ]]; then
cp @[INPUTDATA_ROOT]/MOM6_IC/mom6_increment.nc ./INPUT/mom6_increment.nc
if [[ ${BMIC} ]]; then
cp ${MOM_IC}/mom6_increment.nc ./INPUT
else
cp @[INPUTDATA_ROOT]/MOM6_IC/mom6_increment.nc ./INPUT/mom6_increment.nc
fi
fi
fi

Expand Down Expand Up @@ -159,20 +157,53 @@ else
fi

else
# C48mx500 warm start from ICs
cp ${FV3_IC}/*.nc ./INPUT
cp ${MOM_IC}/MOM.res.nc ./INPUT
cp ${ICE_IC}/* .
cp @[INPUTDATA_ROOT]/CMEPS_IC/${ATMRES}mx${OCNRES}/${SYEAR}${SMONTH}${SDAY}${SHOUR}/* .
if [[ ${BMIC} == .true. ]]; then
cp ${FV3_IC}/fv*.nc ./INPUT
cp ${FV3_IC}/sfc_data*.nc ./INPUT
cp ${FV3_IC}/phy_data*.nc ./INPUT
cp ${MOM_IC}/MOM*.nc ./INPUT
cp ${MOM_IC}/mom6_increment.nc ./INPUT
cp ${MOM_IC}/interpolate_zgrid_26L.nc ./INPUT
cp ${ICE_IC}/cice*nc ./INPUT
ls -1 ./INPUT/cice*nc>ice.restart_file
cp ${FV3_IC}/*stoch*nc ./INPUT
cp ${FV3_IC}/ca_data*nc ./INPUT
cp ${FV3_IC}/ufs.cpld.cpl*nc .
ls -1 ufs.cpld.cpl*nc>rpointer.cpl
cp ${WAV_IC}/ufs.cpld.ww3.r.${RESTART_FILE_SUFFIX_SECS} .
else
# C48mx500 warm start from ICs
cp ${FV3_IC}/*.nc ./INPUT
cp ${MOM_IC}/MOM.res.nc ./INPUT
cp ${ICE_IC}/* .
cp @[INPUTDATA_ROOT]/CMEPS_IC/${ATMRES}mx${OCNRES}/${SYEAR}${SMONTH}${SDAY}${SHOUR}/* .
fi
fi
fi

#inline post
if [ $WRITE_DOPOST = .true. ]; then
cp ${PATHRT}/parm/post_itag_gfs itag
cp ${PATHRT}/parm/postxconfig-NT-gfs.txt postxconfig-NT.txt
cp ${PATHRT}/parm/postxconfig-NT-gfs_FH00.txt postxconfig-NT_FH00.txt
cp ${PATHRT}/parm/params_grib2_tbl_new params_grib2_tbl_new
if [[ ${BMIC} == .true. ]]; then
cp ${PATHRT}/../FV3/upp/parm/gefs/post_itag_gefs128 itag
cp ${PATHRT}/../FV3/upp/parm/gefs/postxconfig-NT-gefs.txt postxconfig-NT.txt
cp ${PATHRT}/../FV3/upp/parm/gefs/postxconfig-NT-gefs-f00.txt postxconfig-NT_FH00.txt
cp ${PATHRT}/../FV3/upp/parm/params_grib2_tbl_new params_grib2_tbl_new
cp ${PATHRT}/../FV3/upp/fix/chem/optics_luts*nasa.dat .
else
cp ${PATHRT}/parm/post_itag_gfs itag
cp ${PATHRT}/parm/postxconfig-NT-gfs.txt postxconfig-NT.txt
cp ${PATHRT}/parm/postxconfig-NT-gfs_FH00.txt postxconfig-NT_FH00.txt
cp ${PATHRT}/parm/params_grib2_tbl_new params_grib2_tbl_new
fi
fi

#prognostic aerosols
if [ $CPLCHM = .true. ]; then
if [[ ${BMIC} == .true. ]]; then
ln -sf ${FV3_IC}/../ExtData .
else
ln -sf @[INPUTDATA_ROOT]/GOCART/p8c_5d/ExtData .
fi
fi

#merra2
Expand All @@ -185,6 +216,29 @@ if [ $IAER = 1011 ]; then
cp @[INPUTDATA_ROOT]/FV3_input_data_INCCN_aeroclim/aer_data/LUTS/optics_DU.v15_3.dat optics_DU.dat
cp @[INPUTDATA_ROOT]/FV3_input_data_INCCN_aeroclim/aer_data/LUTS/optics_SS.v3_3.dat optics_SS.dat
cp @[INPUTDATA_ROOT]/FV3_input_data_INCCN_aeroclim/aer_data/LUTS/optics_SU.v1_3.dat optics_SU.dat
fi

#rad_c_gocart
if [ $IAER = 2011 ]; then
for n in 01 02 03 04 05 06 07 08 09 10 11 12; do
cp @[INPUTDATA_ROOT]/FV3_input_data_INCCN_aeroclim/MERRA2_y14_24/merra2_1423_${n}.nc aeroclim.m${n}.nc
done
cp @[INPUTDATA_ROOT]/FV3_input_data_INCCN_aeroclim/aer_data/LUTS/optics_BC.v1_3.dat optics_BC.dat
cp @[INPUTDATA_ROOT]/FV3_input_data_INCCN_aeroclim/aer_data/LUTS/optics_OC.v1_3.dat optics_OC.dat
cp @[INPUTDATA_ROOT]/FV3_input_data_INCCN_aeroclim/aer_data/LUTS/optics_DU.v15_3.dat optics_DU.dat
cp @[INPUTDATA_ROOT]/FV3_input_data_INCCN_aeroclim/aer_data/LUTS/optics_SS.v3_3.dat optics_SS.dat
cp @[INPUTDATA_ROOT]/FV3_input_data_INCCN_aeroclim/aer_data/LUTS/optics_SU.v1_3.dat optics_SU.dat

if [[ ${BMIC} == .true. ]]; then
DIR_OPT=./ExtData/monochromatic
cp ${DIR_OPT}/optics_BC.v1_3.nc optics_BC.nc
cp ${DIR_OPT}/optics_OC.v1_3.nc optics_OC.nc
cp ${DIR_OPT}/optics_DU.v15_3.nc optics_DU.nc
cp ${DIR_OPT}/optics_SS.v3_3.nc optics_SS.nc
cp ${DIR_OPT}/optics_SU.v1_3.nc optics_SU.nc
cp ${DIR_OPT}/optics_BRC.v1_5.nc optics_BRC.nc
cp ${DIR_OPT}/optics_NI.v2_5.nc optics_NI.nc
fi
fi

cp @[INPUTDATA_ROOT]/FV3_input_data/ugwp_c384_tau.nc ./ugwp_limb_tau.nc
Expand All @@ -197,8 +251,3 @@ if [ $IMP_PHYSICS = 8 ]; then
cp @[INPUTDATA_ROOT]/FV3_fix/qr_acr_qgV2.dat qr_acr_qgV2.dat
cp @[INPUTDATA_ROOT]/FV3_fix/qr_acr_qsV2.dat qr_acr_qsV2.dat
fi

#prognostic aerosols
if [ $CPLCHM = .true. ]; then
ln -sf @[INPUTDATA_ROOT]/GOCART/p8c_5d/ExtData .
fi
Loading

0 comments on commit 6cb9e1d

Please sign in to comment.