Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Atmosphere cycling with a Coupled model #1274

Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
9a7abd7
update setup_expt.py for cycling w/ coupled model
aerorahul Jan 19, 2023
87752bc
add ocnpost to cycled applications when using coupled model
aerorahul Jan 19, 2023
7fa1c14
fill COMROT for coupled and warm start
aerorahul Jan 20, 2023
48b0ab0
add capability to copy restarts back to com
aerorahul Jan 22, 2023
c463640
make room for C48O5deg. configuration
aerorahul Jan 22, 2023
07206c3
pynorm check
aerorahul Jan 22, 2023
897e454
add 5deg MOM6_input template and update config.ice for 5deg
aerorahul Jan 23, 2023
e4475b3
First C48 5deg ocean run success.
aerorahul Jan 24, 2023
220c518
C48 runs
aerorahul Jan 25, 2023
2c82642
simplify ice MPI layout and add cold_start dirs for ocean and ice (#1)
NeilBarton-NOAA Jan 25, 2023
adaccd6
minor updates and a typo
aerorahul Jan 25, 2023
756cd83
Merge branch 'develop' into feature/cycle_with_coupled_model
aerorahul Jan 25, 2023
52aef5b
update diag_table to include ocean fields
aerorahul Jan 25, 2023
87c3aea
cycled for a full day. ocnpost still crapping out
aerorahul Jan 26, 2023
4e8d388
Merge branch 'develop' into feature/merge-develop-into-cycle-with-cou…
aerorahul Jan 26, 2023
d906c3b
Merge branch 'feature/merge-develop-into-cycle-with-coupled' into fea…
aerorahul Jan 26, 2023
6865065
configs do not need exec perms. do not run ocnpost in cycled mode of s2s
aerorahul Jan 26, 2023
cd69548
fix pynorms failure
aerorahul Jan 26, 2023
3e6bb7e
Merge branch 'develop' into feature/cycle_with_coupled_model
aerorahul Jan 26, 2023
22c91a0
update CICE_OUTPUT and CICE_RESTART after discussing w/ NB
aerorahul Jan 27, 2023
accadfb
at 1/4 degree MOM has 4 additional restarts. update setup_expt.py to…
aerorahul Jan 27, 2023
44ceaaf
update mediator restart file logic triggering runtype.
aerorahul Jan 27, 2023
013c276
Merge branch 'develop' into feature/cycle_with_coupled_model
aerorahul Jan 27, 2023
24be763
remove debug statement from JGLOBAL_FORECAST
aerorahul Jan 27, 2023
d8a14d7
replace 4 lines with a loop
aerorahul Jan 27, 2023
42beaf9
allow atmDA cycling w/ FV3_GFS_v16 suite. allow CICE initialization f…
aerorahul Jan 28, 2023
9854da5
remove SIS2 comment attribute to Travis
aerorahul Jan 30, 2023
0254f89
update .gitignore to hold off adding nohup.out
aerorahul Jan 30, 2023
8afd36a
explain why using largest signed int
aerorahul Jan 30, 2023
044ce69
Merge branch 'develop' into feature/cycle_with_coupled_model
aerorahul Jan 30, 2023
75165f7
undo permissions change from previous PR merge
aerorahul Jan 30, 2023
54aea10
undo perms on config
aerorahul Jan 31, 2023
9c6d78c
Merge branch 'develop' into feature/cycle_with_coupled_model
aerorahul Jan 31, 2023
897a226
Merge remote-tracking branch 'upstream/develop' into develop
aerorahul Jan 31, 2023
5b61bfd
Merge branch 'develop' into feature/cycle_with_coupled_model
aerorahul Jan 31, 2023
7686cea
when running in forecast-only mode, restart_interval_gfs=0 has implic…
aerorahul Jan 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ __pycache__
*.sw[a-p]
._*
.DS_Store
#nohup.out - some users do not want this to be a part of .gitignore. TODO: review against best practices
.idea/
.vscode/

Expand Down
Empty file modified parm/config/config.aero
100755 → 100644
Empty file.
Empty file modified parm/config/config.aerosol_init
100755 → 100644
Empty file.
40 changes: 20 additions & 20 deletions parm/config/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,23 @@ export DOBNDPNT_WAVE="NO"
export cplwav2atm=".false."
export FRAC_GRID=".true."

# Set operational resolution
export OPS_RES="C768" # Do not change

# Resolution specific parameters
export LEVS=128
export CASE="@CASECTL@"
export CASE_ENKF="@CASEENS@"
case "$CASE" in
"C48") export OCNRES=500;;
"C96") export OCNRES=100;;
"C192") export OCNRES=050;;
"C384") export OCNRES=025;;
"C768") export OCNRES=025;;
*) export OCNRES=025;;
esac
export ICERES=$OCNRES

case "${APP}" in
ATM)
export confignamevarfornems="atm"
Expand Down Expand Up @@ -212,23 +229,6 @@ case "${APP}" in
;;
esac

# Set operational resolution
export OPS_RES="C768" # Do not change

# Resolution specific parameters
export LEVS=128
export CASE="@CASECTL@"
export CASE_ENKF="@CASEENS@"
case "${CASE}" in
"C48") export OCNRES=500;;
"C96") export OCNRES=100;;
"C192") export OCNRES=050;;
"C384") export OCNRES=025;;
"C768") export OCNRES=025;;
*) export OCNRES=025;;
esac
export ICERES=${OCNRES}

# Surface cycle update frequency
if [[ "${CDUMP}" == "gdas" ]] ; then
export FHCYC=1
Expand Down Expand Up @@ -289,7 +289,7 @@ export IAU_DELTHRS_ENKF=6
export lobsdiag_forenkf=".true."

# run GLDAS to spin up land ICs
export DO_GLDAS="YES"
export DO_GLDAS="NO"
export gldas_cyc=00

# Exception handling that when DO_GLDAS is set, the FHOUT must be 1
Expand All @@ -312,7 +312,7 @@ export DO_JEDIENS="NO"
export DO_JEDIOCNVAR="NO"

# Hybrid related
export DOHYBVAR="YES"
export DOHYBVAR="@DOHYBVAR@"
export NMEM_ENKF=@NMEM_ENKF@
export NMEM_EFCS=30
export SMOOTH_ENKF="NO"
Expand Down Expand Up @@ -363,7 +363,7 @@ export MAKE_ACFTBUFR="@MAKE_ACFTBUFR@"
# Analysis increments to zero in CALCINCEXEC
export INCREMENTS_TO_ZERO="'liq_wat_inc','icmr_inc'"

# Write analysis files for early cycle EnKF
# Write analysis files for early cycle EnKF
export DO_CALC_INCREMENT_ENKF_GFS="YES"

# Stratospheric increments to zero
Expand Down
35 changes: 20 additions & 15 deletions parm/config/config.defaults.s2sw
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
# Empty variables must include a space otherwise they will be overwritten

# config.base
# CASE=C384
FHMAX_GFS_00=48
FHMAX_GFS_06=48
FHMAX_GFS_12=48
Expand All @@ -15,21 +14,27 @@ FHOUT_HF_GFS=-1
min_seaice="1.0e-6"
use_cice_alb=".true."

# config.fv3
DELTIM=300
layout_x_gfs=8
layout_y_gfs=8
WRITE_GROUP_GFS=1
WRTTASK_PER_GROUP_GFS=24
#The settings below will result in S2SWA running 35 days under 8 hours wallclock on hera
#layout_x_gfs=24
#layout_y_gfs=16
#WRTTASK_PER_GROUP_GFS=86
WRTIOBUF="32M"
MEDPETS=300

# config.fv3 # TODO: This is hard-wired for P8 and needs to be refactored. For now, use case C384
case "${CASE}" in
"C384")
DELTIM=300
layout_x_gfs=8
layout_y_gfs=8
WRITE_GROUP_GFS=1
WRTTASK_PER_GROUP_GFS=24
#The settings below will result in S2SWA running 35 days under 8 hours wallclock on hera
#layout_x_gfs=24
#layout_y_gfs=16
#WRTTASK_PER_GROUP_GFS=86
WRTIOBUF="32M" # TODO: This value is for P8 w/ C384. Why not update/set this as default in config.fv3 C384?
MEDPETS=300 # TODO: P8 wants to use 300 instead of ATMPETS = layout_x * layout_y * 6
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI: The reason we use less than ATMPETS is it's been found to be more efficient, so this is likely not going to be limited to a "p8" case. That'll be for future GEFS and GFS once optimized settings are determined again (the current ones here were "sufficient" but not "optimal").

;;
esac

# config.ice

# TODO: These also are likely P8 hard-wired configurations. Perhaps this file should be config.P8.defaults
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a fair statement. In some sense this is the "I want to run the coupled model" file which before would mess-up other configurations stand-alone.

# config.wave

waveGRD='gwes_30m'
waveinterpGRD=' '
waveuoutpGRD='gwes_30m'
Expand Down
30 changes: 9 additions & 21 deletions parm/config/config.fcst
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export h2o_phys=".true."
# Options of stratosphere O3 physics reaction coefficients
export new_o3forc="YES"

export gwd_opt=2
export gwd_opt=2

# --GFS.v16 uGWD.v0, used for suite FV3_GFS_v16 and UFS p6 etc
# do_ugwp=T: use unified CGWD and OGWD, and turbulent orographic form drag (TOFD)
Expand Down Expand Up @@ -121,8 +121,8 @@ if [[ "$gwd_opt" -eq 2 ]]; then
#export do_gsl_drag_ss=".true."
#export do_gsl_drag_tofd=".true."
#export do_ugwp_v1_orog_only=".false."
#--used for UFS p8

#--used for UFS p8
export knob_ugwp_version=0
export do_ugwp=".false."
export do_tofd=".false."
Expand Down Expand Up @@ -272,7 +272,7 @@ export FSICS="0"
export ideflate=1
export nbits=14
export ishuffle=0
# compression for RESTART files written by FMS
# compression for RESTART files written by FMS
export shuffle=1
export deflate_level=1

Expand All @@ -283,20 +283,16 @@ export USE_COUPLER_RES="NO"
if [[ "$CDUMP" == "gdas" ]] ; then # GDAS cycle specific parameters

# Variables used in DA cycling
if [[ "$QUILTING" = ".true." && "$OUTPUT_GRID" = "gaussian_grid" ]]; then
export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table_da"
else
export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table_da_orig"
fi
export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table_da"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we are finally removing the settings for the old diag table, let's also remove parm/parm_fv3diag/diag_table_orig.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not intend to do clean-up in this PR.
I did intend not to add more diag_table files.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get that, but if it is no longer reachable, why keep it? But if you really want to defer that, we can.


# Write restart files, where $number is current model start time.
# Write restart files, where $number is current model start time.
# restart_interval: $number
# number=0, writes out restart files at the end of forecast.
# number=0, writes out restart files at the end of forecast.
# number>0, writes out restart files at the frequency of $number and at the end of forecast.
# restart_interval: "$number -1"
# writes out restart files only once at $number forecast hour.
# restart_interval: "$number1 $number2 $number3 ..."
# writes out restart file at the specified forecast hours
# writes out restart file at the specified forecast hours
export restart_interval=${restart_interval:-6}

# For IAU, write restarts at beginning of window also
Expand All @@ -313,11 +309,7 @@ if [[ "$CDUMP" == "gdas" ]] ; then # GDAS cycle specific parameters
elif [[ "$CDUMP" == "gfs" ]] ; then # GFS cycle specific parameters

# Write more variables to output
if [[ "$QUILTING" = ".true." && $OUTPUT_GRID = "gaussian_grid" ]]; then
export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table"
else
export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table_orig"
fi
export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table"

# Write gfs restart files to rerun fcst from any break point
export restart_interval_gfs=${restart_interval_gfs:-0}
Expand Down Expand Up @@ -359,10 +351,6 @@ elif [[ "$CDUMP" == "gfs" ]] ; then # GFS cycle specific parameters

fi

if [[ "$DO_COUPLED" = "YES" ]] ; then # coupled model
export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table_cpl"
fi

if [[ "$DO_AERO" = "YES" ]]; then # temporary settings for aerosol coupling
export AERO_DIAG_TABLE="${AERO_DIAG_TABLE:-$HOMEgfs/parm/parm_fv3diag/diag_table.aero}"
export AERO_FIELD_TABLE="${AERO_FIELD_TABLE:-$HOMEgfs/parm/parm_fv3diag/field_table.aero}"
Expand Down
14 changes: 7 additions & 7 deletions parm/config/config.fv3
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,18 @@ fi
# (Standard) Model resolution dependent variables
case ${case_in} in
"C48")
export DELTIM=450
export layout_x=3
export layout_y=2
export layout_x_gfs=3
export layout_y_gfs=2
export DELTIM=1200
export layout_x=1
export layout_y=1
export layout_x_gfs=1
export layout_y_gfs=1
export nth_fv3=1
export nth_fv3_gfs=1
export cdmbgwd="0.071,2.1,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export WRITE_GROUP=1
export WRTTASK_PER_GROUP=64
export WRTTASK_PER_GROUP=6
export WRITE_GROUP_GFS=1
export WRTTASK_PER_GROUP_GFS=64
export WRTTASK_PER_GROUP_GFS=6
export WRTIOBUF="1M"
;;
"C96")
Expand Down
17 changes: 15 additions & 2 deletions parm/config/config.ice
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
#! /usr/bin/env bash

export NX_GLB="1440"
export NY_GLB="1080"
case "${ICERES}" in
"025")
export NX_GLB="1440"
export NY_GLB="1080"
;;
"500")
export NX_GLB="72"
export NY_GLB="35"
export cice_processor_shape="slenderX1"
;;
*)
echo "FATAL ERROR: Unsupported ICERES = ${ICERES}, ABORT!"
exit 1
;;
esac
12 changes: 4 additions & 8 deletions parm/config/config.ocn
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
#! /usr/bin/env bash

# OCNRES is currently being set in config.base
# case "$CASE" in
# "C48") export OCNRES=500;;
# "C96") export OCNRES=100;;
# "C192") export OCNRES=050;;
# "C384") export OCNRES=025;;
# "C768") export OCNRES=025;;
# *) export OCNRES=025;;
# esac
case "$CASE" in
"C48") export OCNTIM=3600;;
*) export OCNTIM=1800;;
esac
Empty file modified parm/config/config.ocnanal
100755 → 100644
Empty file.
Empty file modified parm/config/config.ocnanalpost
100755 → 100644
Empty file.
Empty file modified parm/config/config.ocnanalrun
100755 → 100644
Empty file.
8 changes: 7 additions & 1 deletion parm/config/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,11 @@ elif [ ${step} = "gldas" ]; then

elif [ ${step} = "fcst" ]; then

export wtime_fcst="00:40:00"
if [ ${CASE} = "C48" ]; then
export wtime_fcst="00:30:00"
else
export wtime_fcst="00:40:00"
fi
if [ ${CASE} = "C768" ]; then
export wtime_fcst_gfs="06:00:00"
elif [ ${CASE} = "C384" ]; then
Expand Down Expand Up @@ -458,6 +462,7 @@ elif [ ${step} = "fcst" ]; then
if [[ ${DO_OCN} == "YES" ]]; then
case ${OCNRES} in
# Except for 025, these are guesses for now
500) export OCNPETS=8 ;;
100) export OCNPETS=20 ;;
050) export OCNPETS=60 ;;
025) export OCNPETS=220 ;;
Expand All @@ -472,6 +477,7 @@ elif [ ${step} = "fcst" ]; then
if [[ ${DO_ICE} == "YES" ]]; then
case ${ICERES} in
# Except for 025, these are guesses for now
500) export ICEPETS=4 ;;
100) export ICEPETS=10 ;;
050) export ICEPETS=30 ;;
025) export ICEPETS=120 ;;
Expand Down
Empty file modified parm/config/config.sfcanl
100755 → 100644
Empty file.
Loading