Skip to content

Commit

Permalink
Add/update HWRF physics (NOAA-EMC#223)
Browse files Browse the repository at this point in the history
This PR adds missing HWRF physics parameterizations and updates the Ferrier-Aligo microphysics:
- WRFv4 Noah LSM
- GFDL surface layer
- Unified HEDMF PBL
- icloud=4 option in RRTMG

In addition, this PR:
- cleans up old/unused/unnecessary HWRF regression tests
- adds the missing `effr_in=.true.` for all Thompson MP based runs (there is now a guard in fv3atm's `GFS_typedefs.F90` to prevent running Thompson MP with `effr_in=.false.`
- shortens the runtime for the `fv3_ccpp_rrfs_v1beta` run from 48h to 24h
- in ccpp-physics: update `tsfc` correctly when there is ice on open water grid points (fixes NCAR/ccpp-physics#515)
- set `OMP_STACKSIZE` in orion and wcoss_dell_p3 job submission scripts to avoid errors with threaded tests

Co-authored-by: Bin Liu <[email protected]>
Co-authored-by: Jili Dong <[email protected]>
Co-authored-by: Zhan Zhang <[email protected]>
Co-authored-by: Grant Firl <[email protected]>
Co-authored-by: Man.Zhang <[email protected]>
Co-authored-by: Dom Heinzeller <[email protected]>
  • Loading branch information
7 people authored Nov 5, 2020
1 parent 08d06b6 commit 9429797
Show file tree
Hide file tree
Showing 33 changed files with 3,521 additions and 1,753 deletions.
266 changes: 207 additions & 59 deletions tests/RegressionTests_cheyenne.gnu.log

Large diffs are not rendered by default.

514 changes: 307 additions & 207 deletions tests/RegressionTests_cheyenne.intel.log

Large diffs are not rendered by default.

266 changes: 207 additions & 59 deletions tests/RegressionTests_hera.gnu.log

Large diffs are not rendered by default.

721 changes: 410 additions & 311 deletions tests/RegressionTests_hera.intel.log

Large diffs are not rendered by default.

578 changes: 363 additions & 215 deletions tests/RegressionTests_orion.intel.log

Large diffs are not rendered by default.

502 changes: 301 additions & 201 deletions tests/RegressionTests_wcoss_cray.log

Large diffs are not rendered by default.

626 changes: 363 additions & 263 deletions tests/RegressionTests_wcoss_dell_p3.log

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions tests/default_vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,13 @@ export NA_INIT=1

# Radiation
export DO_RRTMGP=.F.
export ICLOUD=0
export IOVR_LW=1
export IOVR_SW=1

# Microphysics
export IMP_PHYSICS=11
export NWAT=6
# GFDL MP
export DNATS=1
export DO_SAT_ADJ=.T.
Expand All @@ -248,6 +252,8 @@ export SHINHONG=.F.
export DO_YSU=.F.
export DO_MYNNEDMF=.F.
export DO_MYJPBL=.F.
export HURR_PBL=.F.
export MONINQ_FAC=1.0

# Shallow/deep convection
export IMFSHALCNV=2
Expand Down
85 changes: 85 additions & 0 deletions tests/fv3_conf/ccpp_c96_HAFS_v0_hwrf_run.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
rm -fr INPUT RESTART
mkdir INPUT RESTART

if [ $IMP_PHYSICS = 8 ]; then
if [ $WARM_START = .F. ]; then
cp -r @[RTPWD]/FV3_input_data_gsd/FV3_input_data_C96_with_aerosols/* INPUT/
else
cp -r @[RTPWD]/FV3_input_data_gsd/FV3_input_data_C96_with_aerosols/grid_spec*.nc INPUT/
cp -r @[RTPWD]/FV3_input_data_gsd/FV3_input_data_C96_with_aerosols/C96_grid*.nc INPUT/
cp -r @[RTPWD]/FV3_input_data_gsd/FV3_input_data_C96_with_aerosols/oro_data*.nc INPUT/
cp ../fv3_ccpp_gsd_coldstart${RT_SUFFIX}/RESTART/* INPUT/
fi
elif [ $IMP_PHYSICS = 15 ]; then
if [ $WARM_START = .F. ]; then
cp -r @[RTPWD]/FV3_input_data/INPUT/* INPUT/
else
cp -r @[RTPWD]/FV3_input_data/RESTART/* ./INPUT/
fi
else
echo "ERROR, no input data configured for IMP_PHYSICS=${IMP_PHYSICS}"
exit 1
fi

cp @[RTPWD]/FV3_input_data/INPUT/aerosol.dat .
cp @[RTPWD]/FV3_input_data/INPUT/co2historicaldata_201*.txt .
cp @[RTPWD]/FV3_input_data/INPUT/sfc_emissivity_idx.txt .
cp @[RTPWD]/FV3_input_data/INPUT/solarconstant_noaa_an.txt .
cp @[RTPWD]/FV3_input_data/ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77 ./global_o3prdlos.f77
cp @[RTPWD]/FV3_input_data/global_h2o_pltc.f77 ./global_h2oprdlos.f77
cp @[RTPWD]/FV3_input_data/*grb .
cp @[RTPWD]/FV3_input_data/*_table .
cp @[RTPWD]/FV3_input_data/*configure .

# Copy landuse/soil/vegetation parameter tables for HWRF Noah LSM
cp @[RTPWD]/FV3_input_data_hafs/GENPARM.TBL .
cp @[RTPWD]/FV3_input_data_hafs/SOILPARM.TBL .
cp @[RTPWD]/FV3_input_data_hafs/VEGPARM.TBL .

# Copy diag table, depending on microphysics choice
if [ $IMP_PHYSICS = 8 ]; then
cp @[RTPWD]/FV3_input_data_gsd/diag_table_gsd_noah diag_table
elif [ $IMP_PHYSICS = 15 ]; then
if [ $IOVR_LW = 4 ] && [ $IOVR_SW = 4 ]; then
cp @[RTPWD]/FV3_input_data_hafs/diag_table_FA_HWRF diag_table
else
cp @[RTPWD]/FV3_input_data_hafs/diag_table_FA diag_table
fi
else
echo "ERROR, no diag table configured for IMP_PHYSICS=${IMP_PHYSICS}"
exit 1
fi

# Copy field table, depending on microphysics choice and whether MYNN/SATMEDMF is used
if [ $IMP_PHYSICS = 8 ]; then
if [ $LTAEROSOL = .T. ]; then
if [ $DO_MYNNEDMF = .T. ] || [ $SATMEDMF = .T. ]; then
cp @[RTPWD]/FV3_input_data_gsd/field_table_gsd field_table
else
cp @[RTPWD]/FV3_input_data_gsd/field_table_gf_thompson field_table
fi
else
if [ $DO_MYNNEDMF = .T. ] || [ $SATMEDMF = .T. ]; then
echo "ERROR, no field table configured for Thompson MP without aerosols but with MYNN or SATMEDMF (need TKE)"
exit 1
else
cp @[RTPWD]/FV3_input_data_gsd/field_table_thompson_noaero field_table
fi
fi
elif [ $IMP_PHYSICS = 15 ]; then
# Copy field table for Ferrier-Aligo MP
cp @[RTPWD]/FV3_input_data_hafs/field_table_FA_nwat4 field_table
else
echo "ERROR, no field table configured for IMP_PHYSICS=${IMP_PHYSICS}"
exit 1
fi

# Thompson or F-A MP lookup tables
if [ $IMP_PHYSICS = 8 ]; then
cp @[RTPWD]/FV3_input_data_gsd/qr_acr_qs.dat .
cp @[RTPWD]/FV3_input_data_gsd/qr_acr_qg.dat .
cp @[RTPWD]/FV3_input_data_gsd/freezeH2O.dat .
cp @[RTPWD]/FV3_input_data_gsd/CCN_ACTIVATE.BIN .
elif [ $IMP_PHYSICS = 15 ]; then
cp @[RTPWD]/FV3_input_data/DETAMPNEW_DATA* .
fi
47 changes: 47 additions & 0 deletions tests/fv3_conf/ccpp_esg_HAFS_v0_hwrf_run.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
rm -fr INPUT RESTART
mkdir INPUT RESTART

if [ $WARM_START = .F. ]; then
rsync -av @[RTPWD]/FV3_input_data_regional_esg/ ./
else
echo "ERROR, warmstart runs not configured for regional HAFs runs on ESG grid"
exit 1
fi

# Copy diag table, depending on microphysics choice
if [ $IMP_PHYSICS = 8 ]; then
ln -sf diag_table.thompson diag_table
elif [ $IMP_PHYSICS = 15 ]; then
if [ $IOVR_LW = 4 ] && [ $IOVR_SW = 4 ]; then
cp @[RTPWD]/FV3_input_data_hafs/diag_table_FA_HWRF diag_table
else
cp @[RTPWD]/FV3_input_data_hafs/diag_table_FA diag_table
fi
else
echo "ERROR, no diag table configured for IMP_PHYSICS=${IMP_PHYSICS}"
exit 1
fi

# Copy field table, depending on microphysics choice and whether MYNN/SATMEDMF is used
if [ $IMP_PHYSICS = 8 ]; then
if [ $LTAEROSOL = .T. ]; then
if [ $DO_MYNNEDMF = .T. ] || [ $SATMEDMF = .T. ]; then
cp @[RTPWD]/FV3_input_data_gsd/field_table_gsd field_table
else
cp @[RTPWD]/FV3_input_data_gsd/field_table_gf_thompson field_table
fi
else
if [ $DO_MYNNEDMF = .T. ] || [ $SATMEDMF = .T. ]; then
echo "ERROR, no field table configured for Thompson MP without aerosols but with MYNN or SATMEDMF (need TKE)"
exit 1
else
cp @[RTPWD]/FV3_input_data_gsd/field_table_thompson_noaero field_table
fi
fi
elif [ $IMP_PHYSICS = 15 ]; then
# Copy field table for Ferrier-Aligo MP
cp @[RTPWD]/FV3_input_data_hafs/field_table_FA_nwat4 field_table
else
echo "ERROR, no field table configured for IMP_PHYSICS=${IMP_PHYSICS}"
exit 1
fi
22 changes: 0 additions & 22 deletions tests/fv3_conf/ccpp_regional_FA_run.IN

This file was deleted.

1 change: 1 addition & 0 deletions tests/fv3_conf/fv3_bsub.IN_wcoss_dell_p3
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ set -x
echo "Model started: " `date`

export OMP_NUM_THREADS=@[THRD]
export OMP_STACKSIZE=512M
export I_MPI_DEBUG=4

mpirun -l -n @[TASKS] ./fv3.exe
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/fv3_slurm.IN_orion
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ ulimit -s unlimited
echo "Model started: " `date`

#export MPI_TYPE_DEPTH=20
#export OMP_STACKSIZE=512M
export OMP_STACKSIZE=512M
export KMP_AFFINITY=scatter
export OMP_NUM_THREADS=@[THRD]
#export ESMF_RUNTIME_COMPLIANCECHECK=OFF:depth=4
Expand Down
Loading

0 comments on commit 9429797

Please sign in to comment.