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 8 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
Copy link
Contributor

Choose a reason for hiding this comment

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

Why is this file added to .gitignore?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

nohup.out is a file usually produced when one runs a script or an executable using nohup. nohup allows running a job in the background and closing the terminal will allow the job to continue running.
This is especially useful for scripts such as build_all.sh that take a while.
It can be viewed as a file similar to a "log".

Copy link
Contributor

Choose a reason for hiding this comment

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

Thank you @aerorahul . I am familiar with nohup.out. I often run the GDASApp build in the background with nohup. I was just wondering why we put it in the .gitignore list. I like to see nohup.out in the git status listing. When I commit, I manually git add each file I intend to commit. Was nohup.out added to .gitignore to avoid accidentally committing this file to the repo?

Copy link
Contributor

Choose a reason for hiding this comment

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

I agree with @RussTreadon-NOAA that I like seeing files like this in my "git status".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@RussTreadon-NOAA @JessicaMeixner-NOAA
nohup.out was added to .gitignore to avoid accidentally committing this file to the repo similar to the other files listed above; such as executables, logs, compiled artifacts.
Users should be able to do an ls and still see this file.

Copy link
Contributor

@JessicaMeixner-NOAA JessicaMeixner-NOAA Jan 30, 2023

Choose a reason for hiding this comment

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

The file could always be removed later if accidentally committed and could be avoided by manually adding each commit field.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Everywhere I have seen, this file is part of .gitignore to precisely preventing manual removing an accidental addition of this (and other types of files).

@RussTreadon-NOAA Is your comment suggesting we don't add this to .gitignore? Am I missing something?

Either way, this should not be a blocker for this PR.

Copy link
Contributor

Choose a reason for hiding this comment

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

@aerorahul . Yes, I don't think nohup.out should be in .gitignore. If it's standard practice to place this file in .gitignore, I'm OK with this. I agree. This is not a blocker for this PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok. we will review this user request against best practice and hold this for another time.

Copy link
Contributor

Choose a reason for hiding this comment

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

I agree with @aerorahul. nohup.out is just another kind of logfile that should never be committed to the repo, which is the point of .gitignore.

.idea/
.vscode/

Expand Down
1 change: 1 addition & 0 deletions jobs/JGLOBAL_FORECAST
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#! /usr/bin/env bash

source "${HOMEgfs}/ush/preamble.sh"
export DATA=${DATAROOT}/debug_fcst # TODO: (RM) remove before PR
source "${HOMEgfs}/ush/jjob_header.sh" -e "fcst" -c "base fcst"

##############################################
Expand Down
41 changes: 22 additions & 19 deletions parm/config/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,26 @@ 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
export OCNTIM=3600 # TODO: add OCNTIM for other resolutions?
;;
"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 +232,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 @@ -305,7 +308,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 @@ -328,7 +331,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
35 changes: 20 additions & 15 deletions parm/config/config.defaults.s2sw
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
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
18 changes: 16 additions & 2 deletions parm/config/config.ice
Original file line number Diff line number Diff line change
@@ -1,4 +1,18 @@
#! /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") # TODO: From GV, check w/ DW
export NX_GLB="36"
export NY_GLB="70"
export block_size_x="18" # TODO: These are calculated in parsing_namelists_CICE.sh, but the model does not like those values
export block_size_y="35"
;;
*)
echo "FATAL ERROR: Unsupported ICERES = ${ICERES}, ABORT!"
exit 1
;;
esac
4 changes: 3 additions & 1 deletion parm/config/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ elif [ ${step} = "gldas" ]; then

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

export wtime_fcst="00:40:00"
export wtime_fcst="00:30:00"
if [ ${CASE} = "C768" ]; then
export wtime_fcst_gfs="06:00:00"
elif [ ${CASE} = "C384" ]; then
Expand Down Expand Up @@ -437,6 +437,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 @@ -451,6 +452,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
Loading