Skip to content

Commit

Permalink
Further init updates for free-forecast mode
Browse files Browse the repository at this point in the history
- move COMPONENT setting from getic to init job
- cleanup how getic job sets tarball paths and pulls pgbanl files
- move second step of pgbanl pull to init job for consistency
- add MODE variable to config.base and its definition to setup scripts
- add MODE setting to config.base if-block that adjusts IAU variables
- add missing COMPONENT subfolder to data dependencies for getic and
init jobs in setup_workflow_fcstonly.py
- remove unneeded commented out wavestat job from setup_workflow_fcstonly.py

Refs: NOAA-EMC#178
  • Loading branch information
KateFriedman-NOAA committed Feb 3, 2021
1 parent b251164 commit abdc133
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 32 deletions.
22 changes: 5 additions & 17 deletions jobs/rocoto/getic.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ EXTRACT_DIR=${PTMP}/gdas.init_${CDATE}/input
OUTDIR=${PTMP}/gdas.init_${CDATE}/output
PRODHPSSDIR=/NCEPPROD/hpssprod/runhistory/rh${yy}/${yy}${mm}/${yy}${mm}${dd}

COMPONENT="atmos"

gfs_ver=v16
GETICSH=${GDASINIT_DIR}/get_v16.data.sh

Expand All @@ -64,9 +62,11 @@ elif [ $yy$mm$dd$hh -lt 2017072000 ]; then
elif [ $yy$mm$dd$hh -lt 2019061200 ]; then
gfs_ver=v14
GETICSH=${GDASINIT_DIR}/get_${gfs_ver}.data.sh
tarball=gpfs_hps_nco_ops_com_gfs_prod_gfs.${yy}${mm}${dd}_${hh}.pgrb2_${grid}.tar
elif [ $yy$mm$dd$hh -lt 2021020300 ]; then
gfs_ver=v15
GETICSH=${GDASINIT_DIR}/get_${gfs_ver}.data.sh
tarball=com_gfs_prod_gfs.${yy}${mm}${dd}_${hh}.gfs_pgrb2.tar
fi

export EXTRACT_DIR yy mm dd hh UFS_DIR OUTDIR CRES_HIRES CRES_ENKF
Expand All @@ -78,25 +78,13 @@ sh ${GETICSH} ${CDUMP}
status=$?
[[ $status -ne 0 ]] && exit $status

# Copy pgbanl file to ROTDIR for verification/archival - v14+
cd $EXTRACT_DIR
OUTDIR2=${ROTDIR}/gfs.${yy}${mm}${dd}/${hh}/${COMPONENT}
if [ ! -d ${OUTDIR2} ]; then mkdir -p ${OUTDIR2} ; fi
if [ $gfs_ver = v14 ]; then
for grid in 0p25 0p50 1p00
do
tarball=gpfs_hps_nco_ops_com_gfs_prod_gfs.${yy}${mm}${dd}_${hh}.pgrb2_${grid}.tar
file=gfs.t${hh}z.pgrb2.${grid}.anl
htar -xvf ${PRODHPSSDIR}/${tarball} ./gfs.${yy}${mm}${dd}/${hh}/${file}
mv ${EXTRACT_DIR}/gfs.${yy}${mm}${dd}/${hh}/${file} ${OUTDIR2}/${file}
done
elif [ $gfs_ver = v15 ]; then
tarball=com_gfs_prod_gfs.${yy}${mm}${dd}_${hh}.gfs_pgrb2.tar
# Pull pgbanl file for verification/archival - v14+
if [ $gfs_ver = v14 -o $gfs_ver = v15 ]; then
cd $EXTRACT_DIR
for grid in 0p25 0p50 1p00
do
file=gfs.t${hh}z.pgrb2.${grid}.anl
htar -xvf ${PRODHPSSDIR}/${tarball} ./gfs.${yy}${mm}${dd}/${hh}/${file}
mv ${EXTRACT_DIR}/gfs.${yy}${mm}${dd}/${hh}/${file} ${OUTDIR2}/${file}
done
fi

Expand Down
15 changes: 15 additions & 0 deletions jobs/rocoto/init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ EXTRACT_DIR=${PTMP}/gdas.init_${CDATE}/input
WORKDIR=${PTMP}/gdas.init_${CDATE}/output
OUTDIR=${ROTDIR}

COMPONENT="atmos"

gfs_ver=v16
RUNICSH=${GDASINIT_DIR}/run_v16.chgres.sh

Expand Down Expand Up @@ -76,6 +78,19 @@ sh ${RUNICSH} ${CDUMP}
status=$?
[[ $status -ne 0 ]] && exit $status

# Copy pgbanl file to ROTDIR for verification/archival - v14+
if [ $gfs_ver = v14 -o $gfs_ver = v15 ]; then
cd $EXTRACT_DIR
for grid in 0p25 0p50 1p00
do
file=gfs.t${hh}z.pgrb2.${grid}.anl
mv ${EXTRACT_DIR}/${CDUMP}.${yy}${mm}${dd}/${hh}/${file} ${OUTDIR}/${CDUMP}.${yy}${mm}${dd}/${hh}/${COMPONENT}/${file}
done
fi

# Clean up EXTRACT_DIR
rm -rf $EXTRACT_DIR

###############################################################
# Exit out cleanly
exit 0
5 changes: 4 additions & 1 deletion parm/config/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ export WAFSF="NO" # WAFS products
# use RUNMOS flag (currently in config.vrfy)
export REALTIME="YES"

# Experiment mode (cycled or free-forecast)
export MODE="@MODE@" # cycled/free

####################################################
# DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE
Expand Down Expand Up @@ -209,7 +211,8 @@ export IAU_OFFSET=6
export DOIAU_ENKF=${DOIAU:-"YES"} # Enable 4DIAU for EnKF ensemble
export IAUFHRS_ENKF="3,6,9"
export IAU_DELTHRS_ENKF=6
if [[ "$SDATE" = "$CDATE" && $EXP_WARM_START = ".false." ]] || [[ "$DOIAU" = "NO" ]] ; then # Cold starting or IAU off
# Check if cycle is cold starting, DOIAU off, or free-forecast mode
if [[ "$MODE" = "cycled" && "$SDATE" = "$CDATE" && $EXP_WARM_START = ".false." ]] || [[ "$DOIAU" = "NO" ]] || [[ "$MODE" = "free" && $EXP_WARM_START = ".false." ]] ; then
export IAU_OFFSET=0
export IAU_FHROT=0
fi
Expand Down
1 change: 1 addition & 0 deletions ush/rocoto/setup_expt.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ def edit_baseconfig():
.replace('@QUEUE_SERVICE@', queue_service) \
.replace('@PARTITION_BATCH@', partition_batch) \
.replace('@EXP_WARM_START@', exp_warm_start) \
.replace('@MODE@', 'cycled') \
.replace('@CHGRP_RSTPROD@', chgrp_rstprod) \
.replace('@CHGRP_CMD@', chgrp_cmd) \
.replace('@HPSSARCH@', hpssarch) \
Expand Down
1 change: 1 addition & 0 deletions ush/rocoto/setup_expt_fcstonly.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ def edit_baseconfig():
.replace('@QUEUE_SERVICE@', queue_service) \
.replace('@PARTITION_BATCH@', partition_batch) \
.replace('@EXP_WARM_START@', exp_warm_start) \
.replace('@MODE@', 'free') \
.replace('@CHGRP_RSTPROD@', chgrp_rstprod) \
.replace('@CHGRP_CMD@', chgrp_cmd) \
.replace('@HPSSARCH@', hpssarch) \
Expand Down
18 changes: 4 additions & 14 deletions ush/rocoto/setup_workflow_fcstonly.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,10 +245,10 @@ def get_workflow(dict_configs, cdump='gdas'):

# getic
deps = []
data = '&ROTDIR;/&CDUMP;.@Y@m@d/@H/INPUT/sfc_data.tile6.nc'
data = '&ROTDIR;/&CDUMP;.@Y@m@d/@H/atmos/INPUT/sfc_data.tile6.nc'
dep_dict = {'type':'data', 'data':data}
deps.append(rocoto.add_dependency(dep_dict))
data = '&ROTDIR;/&CDUMP;.@Y@m@d/@H/RESTART/@Y@m@[email protected]_data.tile6.nc'
data = '&ROTDIR;/&CDUMP;.@Y@m@d/@H/atmos/RESTART/@Y@m@[email protected]_data.tile6.nc'
dep_dict = {'type':'data', 'data':data}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='nor', dep=deps)
Expand All @@ -259,10 +259,10 @@ def get_workflow(dict_configs, cdump='gdas'):

# init - chgres_cube
deps = []
data = '&ROTDIR;/&CDUMP;.@Y@m@d/@H/INPUT/sfc_data.tile6.nc'
data = '&ROTDIR;/&CDUMP;.@Y@m@d/@H/atmos/INPUT/sfc_data.tile6.nc'
dep_dict = {'type':'data', 'data':data}
deps.append(rocoto.add_dependency(dep_dict))
data = '&ROTDIR;/&CDUMP;.@Y@m@d/@H/RESTART/@Y@m@[email protected]_data.tile6.nc'
data = '&ROTDIR;/&CDUMP;.@Y@m@d/@H/atmos/RESTART/@Y@m@[email protected]_data.tile6.nc'
dep_dict = {'type':'data', 'data':data}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='nor', dep=deps)
Expand Down Expand Up @@ -380,16 +380,6 @@ def get_workflow(dict_configs, cdump='gdas'):
tasks.append(task)
tasks.append('\n')

# wavestat
#if do_wave in ['Y', 'YES'] and do_wave_cdump in ['GFS', 'BOTH']:
# deps = []
# dep_dict = {'type':'task', 'name':'%swavepost' % cdump}
# deps.append(rocoto.add_dependency(dep_dict))
# dependencies = rocoto.create_dependency(dep=deps)
# task = wfu.create_wf_task('wavestat', cdump=cdump, envar=envars, dependency=dependencies)
# tasks.append(task)
# tasks.append('\n')

# wavegempak
if do_wave in ['Y', 'YES'] and do_gempak in ['Y', 'YES']:
deps = []
Expand Down

0 comments on commit abdc133

Please sign in to comment.