Comments (26)
@RussTreadon-NOAA @yangfanglin @JessicaMeixner-NOAA I have committed my initial set of changes to add $COMPONENTatmos and $COMPONENTwave variables to the workflow scripts. My local clone on Mars includes modifications for the components:
/gpfs/dell2/emc/modeling/save/Kate.Friedman/git/global-workflow/feature-gfsv16b-restructure
Please feel free to review my initial changes and suggest modifications. I am running a cycled experiment with these changes and will commit further changes as needed. Will merge in recent feature/gfsv16b changes this week as well.
from global-workflow.
First half cycle run, got prep jobs at start of first full cycle to run yesterday, and am awaiting return of Mars (parallel production test) to continue test.
from global-workflow.
(below is fixed based on comment from Fanglin after this was first posted)
Final email with Steven Earle lays out the new $COMPONENT variables and COMIN/COMOUT:
- JJOB script for job with multiple components (e.g. forecast):
export COMINatmos=${COMINatmos:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos}
export COMOUTatmos=${COMOUTatmos:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos}
export COMINwave=${COMINwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave}
export COMOUTwave=${COMOUTwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave}
- JJOB script for job with single component (e.g. non-forecast jobs):
for atmospheric components:
export COMPONENT=${COMPONENT:-atmos}
export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}
export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}
for wave components:
export COMPONENT=${COMPONENT:-wave}
export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}
export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}
from global-workflow.
from global-workflow.
Fanglin, you're right, let me adjust that, sorry, got my notes on that special case mixed up.
from global-workflow.
@yangfanglin fixed at 3d9f0dc
from global-workflow.
Summary of changes for FV3/ufs-weather-model component: none, all changes on global-workflow side to both JJOB and ex scripts, no changes needed in ufs-weather-model
Changes to scripts on workflow side can be seen in feature/gfsv16b-restructure branch or here:
JGLOBAL_FORECAST
[Kate.Friedman@m72a3 feature-gfsv16b-restructure]$ diff ../feature-gfsv16b/jobs/JGLOBAL_FORECAST jobs/JGLOBAL_FORECAST
72a73,80
> # Set wave variables
> if [ ${DO_WAVE:-"NO"} = "YES" ]; then
> # WAVE component directory
> export CDUMPwave=${CDUMPwave:-${CDUMP}wave}
> export COMINwave=${COMINwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave}
> export COMOUTwave=${COMOUTwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave}
> fi
>
exglobal_fcst_nemsfv3gfs.sh
[Kate.Friedman@m72a3 feature-gfsv16b-restructure]$ diff ../feature-gfsv16b/scripts/exglobal_fcst_nemsfv3gfs.sh scripts/exglobal_fcst_nemsfv3gfs.sh
42a43
> CDUMPwave="${CDUMP}wave"
153,157c154
< if [ $CDUMP = "gdas" ]; then
< RSTDIR_WAVE=$ROTDIR/${CDUMP}wave.${PDY}/${cyc}/restart
< else
< RSTDIR_WAVE=${RSTDIR_WAVE:-$ROTDIR/${CDUMP}wave.${PDY}/${cyc}/restart}
< fi
---
> RSTDIR_WAVE=$ROTDIR/${CDUMP}.${PDY}/${cyc}/wave/restart
163c160
< RSTDIR_ATM=${RSTDIR:-$ROTDIR}/${CDUMP}.${PDY}/${cyc}/RERUN_RESTART
---
> RSTDIR_ATM=${RSTDIR:-$ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos/RERUN_RESTART
205c202
< memdir=$ROTDIR/${prefix}.$PDY/$cyc/$memchar
---
> memdir=$ROTDIR/${prefix}.$PDY/$cyc/atmos/$memchar
211c208
< gmemdir=$ROTDIR/${rprefix}.$gPDY/$gcyc/$memchar
---
> gmemdir=$ROTDIR/${rprefix}.$gPDY/$gcyc/atmos/$memchar
413d409
< #-------------wavewave----------------------
415c411,412
< for file in $(ls $ROTDIR/${CDUMP}wave.${PDY}/${cyc}/rundata/rmp_src_to_dst_conserv_*) ; do
---
> # Link WW3 files
> for file in $(ls $COMINwave/rundata/rmp_src_to_dst_conserv_*) ; do
418c415
< $NLN $ROTDIR/${CDUMP}wave.${PDY}/${cyc}/rundata/ww3_multi.${CDUMP}wave${WAV_MEMBER}.${cycle}.inp $DATA/ww3_multi.inp
---
> $NLN $COMINwave/rundata/ww3_multi.${CDUMPwave}${WAV_MEMBER}.${cycle}.inp $DATA/ww3_multi.inp
419a417
> # Check for expected wave grids for this run
421a420
>
423c422,424
< $NLN $ROTDIR/${CDUMP}wave.${PDY}/${cyc}/rundata/${CDUMP}wave.mod_def.$wavGRD $DATA/mod_def.$wavGRD
---
> # Wave IC (restart) file must exist for warm start on this cycle, if not wave model starts from flat ocean
> # For IAU needs to use sPDY for adding IAU backup of 3h
> $NLN $COMINwave/rundata/${CDUMPwave}.mod_def.$wavGRD $DATA/mod_def.$wavGRD
426,432c427,435
< WAVHCYC=${WAVHCYC:-6}
< WRDATE=`$NDATE -${WAVHCYC} $CDATE`
< WRPDY=`echo $WRDATE | cut -c1-8`
< WRcyc=`echo $WRDATE | cut -c9-10`
< WRDIR=$ROTDIR/gdaswave.${WRPDY}/${WRcyc}/restart
< datwave=$ROTDIR/${CDUMP}wave.${PDY}/${cyc}/rundata/
< wavprfx=${CDUMP}wave${WAV_MEMBER}
---
> # Wave IC (restart) interval assumes 4 daily cycles (restarts only written by gdas cycle)
> # WAVHCYC needs to be consistent with restart write interval in ww3_multi.inp or will FAIL
> export WAVHCYC=${WAVHCYC:-6}
> export WRDATE=`$NDATE -${WAVHCYC} $CDATE`
> export WRPDY=`echo $WRDATE | cut -c1-8`
> export WRcyc=`echo $WRDATE | cut -c9-10`
> export WRDIR=${ROTDIR}/${CDUMPRSTwave}.${WRPDY}/${WRcyc}/wave/restart
> export datwave=$COMOUTwave/rundata
> export wavprfx=${CDUMPwave}${WAV_MEMBER}
444c447
< wavicefile=$ROTDIR/${CDUMP}wave.${PDY}/${cyc}/rundata/${CDUMP}wave.${WAVEICE_FID}.${cycle}.ice
---
> wavicefile=$COMINwave/rundata/${CDUMPwave}.${WAVEICE_FID}.${cycle}.ice
454c457
< wavcurfile=$ROTDIR/${CDUMP}wave.${PDY}/${cyc}/rundata/${CDUMP}wave.${WAVECUR_FID}.${cycle}.cur
---
> wavcurfile=$COMINwave/rundata/${CDUMPwave}.${WAVECUR_FID}.${cycle}.cur
465a469,470
>
> # Loop for gridded output (uses FHINC)
491a497
> fi #cplwav=true
493,495d498
< fi
< #-------------wavewave----------------------
<
from global-workflow.
Kate,
The structure of the following block needs to be preserved for restarting wave model from a breakpoint. NCO will save breakpoint restart files for the gfs cycle in a $nwges directory , while restart files for the gdas cycle in $comrot. So in operation RSTDIR_WAVE for the gfs cycle will be defined in an ecflow suite definition file. This is also true for the atmos part.
< if [ $CDUMP = "gdas" ]; then
< RSTDIR_WAVE=$ROTDIR/${CDUMP}wave.${PDY}/${cyc}/restart
< else
< RSTDIR_WAVE=${RSTDIR_WAVE:-$ROTDIR/${CDUMP}wave.${PDY}/${cyc}/restart}
< fi
You can change this block to
if [ $CDUMP = "gdas" ]; then
RSTDIR_WAVE=$ROTDIR/${CDUMP}.${PDY}/${cyc}/wave/restart
else
RSTDIR_WAVE=${RSTDIR_WAVE:-$ROTDIR/${CDUMP}.${PDY}/${cyc}/wave/restart}
fi
from global-workflow.
Fanglin, gotcha, changed it to the block you provided at 273c535, thanks!
from global-workflow.
Summary of changes to other FV3GFS components:
GSI:
Fork branch: release/gfsda.v16.0.0-restructure
Changes committed: https://github.com/KateFriedman-NOAA/GSI/commit/f6bc0f6a010b0606bf6003f14872fb3ddc80f96f
GLDAS:
Fork branch: gldas_gfsv16_release.v1.3.0-restructure
Changes committed: https://github.com/KateFriedman-NOAA/GLDAS/commit/ca6188375dfb46ac8b59346437c1b96ad50ea708
EMC_post:
Fork branch: upp_gfsv16_release.v1.0.10-restructure
Changes committed: https://github.com/KateFriedman-NOAA/EMC_post/commit/9cb2723b00c276a2e004a64a4bebf1e0e3f943ca
UFS_UTILS:
Just a three line change to ush/fv3gfs_chgres.sh to add $COMPONENT. We're moving away from that script though right? If so, no changes needed to UFS_UTILS.
WAFS:
Fork branch: gfs_wafs.v5.0.11-restructure
Changes committed: https://github.com/KateFriedman-NOAA/EMC_gfs_wafs/commit/52ed70d8351d186f04e25b5fe87f3bfb38b7fa5e
from global-workflow.
Continuing to let test run through additional cycles. Test on Mars:
EXPDIR: /gpfs/dell2/emc/modeling/save/Kate.Friedman/expdir/testrestrucb
COMROT: /gpfs/dell3/ptmp/Kate.Friedman/comrot/testrestrucb
clone: /gpfs/dell2/emc/modeling/save/Kate.Friedman/git/global-workflow/feature-gfsv16b-restructure
from global-workflow.
Quick look at GFS v16 DA changes looks good. $COMPONENT has been added to DA j-jobs and two exglobal scripts. COMPONENT defaults to "atmos" if not externally set. Seems we could pull these changes into base release/gfsda.v16.0.0 with COMPONENT="" and GFS v16 DA would work as-is in current real-time v16 parallel.
from global-workflow.
Seems we could pull these changes into base release/gfsda.v16.0.0 with COMPONENT="" and GFS v16 DA would work as-is in current real-time v16 parallel.
I agree and am suggesting that path in the email I'm drafting to everyone. The only part that will need more of a pivot is the wave part since it's moving from:
$CDUMPwave.$PDY/$cyc
...to:
$CDUMP.$PDY/$CYC/wave
from global-workflow.
from global-workflow.
Summary of changes to other FV3GFS components:
GSI:
Fork branch: release/gfsda.v16.0.0-restructure
Changes committed: KateFriedman-NOAA/GSI@f6bc0f6GLDAS:
Fork branch: gldas_gfsv16_release.v1.3.0-restructure
Changes committed: KateFriedman-NOAA/GLDAS@ca61883EMC_post:
Fork branch: upp_gfsv16_release.v1.0.10-restructure
Changes committed: KateFriedman-NOAA/EMC_post@9cb2723UFS_UTILS:
Just a three line change to ush/fv3gfs_chgres.sh to add $COMPONENT. We're moving away from that script though right? If so, no changes needed to UFS_UTILS.
The ./ush/fv3gfs_chgres.sh script is used by the old chgres and is obsolete. It has been replaced by the scripts in ./util/gdas_init.
WAFS:
Fork branch: gfs_wafs.v5.0.11-restructure
Changes committed: KateFriedman-NOAA/EMC_gfs_wafs@52ed70d
from global-workflow.
The ./ush/fv3gfs_chgres.sh script is used by the old chgres and is obsolete. It has been replaced by the scripts in ./util/gdas_init.
Thanks for the confirmation that fv3gfs_chgres.sh is indeed obsolete now! I'll forgo submitting changes to you for fv3gfs_chgres.sh then, thanks @GeorgeGayno-NOAA !
from global-workflow.
PR for EMC_post submitted: NOAA-EMC/UPP#151
from global-workflow.
PR for GSI submitted: NOAA-EMC/GSI#39
PR for GLDAS submitted: NOAA-EMC/GLDAS#8
PR for WAFS submitted: NOAA-EMC/WAFS#1
from global-workflow.
EMC_post PR NOAA-EMC/UPP#151 merged in.
New tag created: upp_gfsv16_release.v1.0.11
Moved feature/gfsv16b-restructure checkout.sh to use new EMC_post tag. Committed at ab89088.
from global-workflow.
GLDAS PR NOAA-EMC/GLDAS#8 merged in.
New tag created: gldas_gfsv16_release.v1.4.0
Moved feature/gfsv16b-restructure checkout.sh to use new GLDAS tag. Committed at 95ce823.
from global-workflow.
Did another sync merge of global-workflow and GSI branches...no new updates to pull in.
Ran new ens_tracker.v.1.1.15.3 from Jiayi successfully. Sent a few small edits back to him and he is now pushing this version to GitHub. Will update on-disk clone of the tracker when on GitHub.
Waiting for WAFS v16 still but will ingest that into system when available and will move the real-time parallel before that.
Running final test with all pieces in place and turned on today (minus WAFS) on Mars. Sent update email to code managers. Putting together notes for Russ for moving the real-time parallel to the updated $COMPONENT pieces.
Need to install updated external pieces on other platforms to support this new structure there (obsproc, fit2obs, tracker).
from global-workflow.
Updated tracker in GitHub: https://github.com/NOAA-EMC/TC_tracker/tree/TC_tracker.v1.1.15.3
from global-workflow.
WCOSS outages this week will delay implementing these changes in the real-time parallel. Plan is to allow real-time parallel to catch back up to real-time over the weekend and early next week ahead of a prod switch next Tuesday. Will set up and test system on Venus this week and plan to move to new structure when the parallel moves to Venus post-prod switch.
Will resync global-workflow and GSI PR branches again before the end.
from global-workflow.
Preparing to move v16rt2 to new structure after WCOSS prod switch this Thursday. Working with Russ to set up Venus as much as we can in advance. Will submit GSI and global-workflow PRs Wednesday (if not before).
from global-workflow.
GSI PR completed: NOAA-EMC/GSI#39
from global-workflow.
Global-workflow PR completed: #109
from global-workflow.
Related Issues (20)
- Atmos data for first fhr not being produced when REPLAY_ICS is set to YES HOT 1
- Upgrade to BUFR 12.1.0
- gfsmetp jobs do not generate stats files on Hera and Hercules HOT 30
- UFS will not write more than three hundred restart files HOT 1
- Remove namespaces from jinja templates where possible
- Create Comprehensive Slide Deck for CI HOT 1
- Enable CI on AWS
- Setup cycling test C96_atm3DVar on Gaea-C5 HOT 7
- Test all components and the global workflow with BUFR 12.1.0
- McCormack 2015 ozone parametrization does not include ozone hole
- Append .NO suffix to the mediator restart for the C48mx500 test case on Orion/Hercules and WCOSS HOT 3
- Remove atmos_prod f000 rocoto task when OFFSET_START_HOUR is greater than 0 HOT 1
- Add soil increments to deterministic member HOT 2
- Add feature to notify code managers when Jenkins Agents can not auto restart
- Use COMIN_OBS instead of COM_OBS for aero/snow other DA jobs
- Stage and use fregrid remap files HOT 1
- Consolidate Python resource structure
- land surface upgrades for HR4 HOT 4
- METplus jobs fail for gfs_cyc=2 or 4 HOT 4
- Update MOM_input for the marine DA HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from global-workflow.