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

[develop] Integrate jinja-enabled config files and add rrfs workflow #2

Closed
wants to merge 131 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
370834b
[develop] Updated README.md and Introduction.rst for the SRW v2.1.0 r…
MichaelLueken Nov 21, 2022
f0963f6
[develop] Python-based crontab replacement (#466)
mark-a-potts Nov 28, 2022
98edca0
[develop] Pull in relevant doc updates from release v2.1.0 (#498)
gspetro-NOAA Nov 29, 2022
4a9d1fe
[develop] Update ufs-weather-model hash and add WoFS_v0 to suites and…
MichaelLueken Nov 30, 2022
ce9b0cc
[develop] modulefile updates for generic linux (#501)
natalie-perlin Dec 1, 2022
c8bb869
[develop] Add plotting scripts to the workflow. (#482)
danielabdi-noaa Dec 2, 2022
6d720f6
[develop]: Add sample verification case w/instructions (#500)
gspetro-NOAA Dec 2, 2022
b414442
[develop] Ensure arbitrary restart_interval numbers in model_configur…
chan-hoo Dec 5, 2022
f755e64
[develop] noaacloud MET updates (#504)
EdwardSnyder-NOAA Dec 6, 2022
53c62ca
[develop] Added logic to not include slurm memory option for noaaclou…
EdwardSnyder-NOAA Dec 6, 2022
0c8843f
[develop]: Correct PDF-generated release version for develop docs (#513)
gspetro-NOAA Dec 14, 2022
bea3633
[develop] Add gfs_v16.3 to file list of HPSS for FV3GFS (#510)
chan-hoo Dec 14, 2022
bf07542
[develop] Refactor setup.py to remove use of global variables. (#505)
christinaholtNOAA Dec 16, 2022
519e5c4
[develop]: Add plotting and template variable documentation (#528)
gspetro-NOAA Jan 5, 2023
3770ca5
[develop]: Add debugging guide to README.md (#519)
MichaelLueken Jan 5, 2023
d3d023b
[develop] Add DOMAIN_PREGEN_BASEDIR to gaea machine file. (#522)
christinaholtNOAA Jan 6, 2023
d3b10e6
[develop]: Fix formatting for RTD User's Guide (#533)
gspetro-NOAA Jan 9, 2023
70da0e8
[develop] Enable workflow runs on single node linux/mac machine using…
danielabdi-noaa Jan 10, 2023
23b9852
[develop] Integrate 'online-cmaq' branch into 'develop' branch: Part …
chan-hoo Jan 17, 2023
54c740e
[develop] Fix plotting bug. (#529)
danielabdi-noaa Jan 20, 2023
7ce093b
Adding SPFH to metplus config file parm/metplus/PointStat_conus_sfc.c…
panll Jan 20, 2023
5acf381
[develop] Add option to plot a list of domains. (#560)
danielabdi-noaa Jan 26, 2023
fc72f4e
[develop] Fix issue 541: correct error message when config.yaml has i…
mkavulich Jan 31, 2023
25418e8
[develop] Fix issue 555 (restore default behavior of EXPT_BASEDIR opt…
mkavulich Jan 31, 2023
7299fef
[develop] First implementation of run_WE2E_tests.py (#558)
mkavulich Feb 7, 2023
373d1aa
[develop] Enable deterministic verification to be run from staged for…
gsketefian Feb 7, 2023
844f347
[develop] Fix failing unit test due to renamed variable (#583)
mkavulich Feb 7, 2023
4997e4f
[develop] Add new ccpp physics suite 'FV3_GFS_v17_p8' (#574)
chan-hoo Feb 8, 2023
b505e50
[develop] Rename variables that store task names (#598)
gsketefian Feb 9, 2023
3de08b0
[develop]: Add Tutorial chapter to SRW App Documentation (#584)
gspetro-NOAA Feb 9, 2023
d036849
[develop] Integrate 'online-cmaq' into 'develop' branch: Part 2, buil…
chan-hoo Feb 10, 2023
4b77153
[develop] Add correct logic for 3-digit forecast hours in post (#607)
mkavulich Feb 10, 2023
034d873
[develop] Add RAP/GFS bufr and GSI-fix file retrieval options (#535)
ulmononian Feb 10, 2023
a1076e1
[develop] Add GDAS and GEFS datasets to the workflow (#526)
EdwardSnyder-NOAA Feb 10, 2023
a36f88d
[develop] Fix for error at the end of monitor_jobs.py, other minor im…
mkavulich Feb 14, 2023
f3ed8ef
[develop] Fix unbound variable issue. (#612)
danielabdi-noaa Feb 14, 2023
2427e93
[develop] Integrate 'online-cmaq' into 'develop' branch: Part 3, work…
chan-hoo Feb 15, 2023
80c5409
[develop] Adding mixed-layer convective available potential energy (M…
panll Feb 15, 2023
307713f
[develop] Allow WE2E run script to set location of staged forecast fi…
gsketefian Feb 16, 2023
532ed1c
[develop] Fixes for Issue #608, #610, and #616 (#609)
gsketefian Feb 17, 2023
57745b9
[develop] Correct SINGULARITY_TEMPDIR -> SINGULARITY_TMPDIR (#622)
dtrudg Feb 21, 2023
fd3c778
[develop] Update default timesteps (DT_ATMOS) to less wasteful values…
mkavulich Feb 23, 2023
967186f
[develop] Fixing the issue related to NDAS file name change on NOAA H…
panll Feb 24, 2023
e96e102
[develop] Add RAVE data processing to fire_emission task for AQM (#628)
chan-hoo Feb 25, 2023
b34ab05
[develop] Reorganize verification tasks (rename tasks and files; spli…
gsketefian Mar 1, 2023
ff6f103
[develop] Enable run_post to work with varying forecast length hours …
chan-hoo Mar 6, 2023
550f400
[develop]: Update for Gaea software stack location and Lmod initializ…
natalie-perlin Mar 10, 2023
86c3eb0
[develop] Fixed issue #649 and tested on cheyenne. (#650)
padhrigmccarthy Mar 10, 2023
af3855f
[develop] Configs for compiling and running online-cmaq on cheyenne. …
padhrigmccarthy Mar 10, 2023
8af7a40
[develop] Revert back to old way of setting FIXdir (#670)
danielabdi-noaa Mar 14, 2023
8a4a443
[develop] Fix rrfs_utils bug in devbuild script (#669)
EdwardSnyder-NOAA Mar 14, 2023
8c2325b
Update nco: config section.
danielabdi-noaa Mar 7, 2023
4a2fc0e
Add the DO_ parameters from rrfs_dev.
danielabdi-noaa Mar 7, 2023
6a13df3
Put values for RRFS_NA_13km predef grid from RRFS_dev1 in comments.
danielabdi-noaa Mar 7, 2023
257bcc1
Add workflow definitons.
danielabdi-noaa Mar 8, 2023
1e10b56
Modify FIXdir.
danielabdi-noaa Mar 8, 2023
006f562
Add 3km HRRRIC predef grid.
danielabdi-noaa Mar 9, 2023
8e6787b
Add more stuff needed for workflow generation.
danielabdi-noaa Mar 9, 2023
b233633
Add machne file modifications.
danielabdi-noaa Mar 9, 2023
8396339
Add FIX directories.
danielabdi-noaa Mar 9, 2023
3bffba4
Add workflow and test case.
danielabdi-noaa Mar 9, 2023
7bcb169
Turn off all rrfs options in test case, turn them on later as PRs get…
danielabdi-noaa Mar 10, 2023
913e41a
Temporarily turn off jinja template variable existence test for RRFS …
danielabdi-noaa Mar 10, 2023
4a733de
Add missing TN_PLOT_ALLVARS definition.
danielabdi-noaa Mar 10, 2023
9f9e7fa
Minor bugfix duplict namelist fn.
danielabdi-noaa Mar 13, 2023
183973e
Use HPSS queue for get_ics/lbcs
danielabdi-noaa Mar 13, 2023
62490ac
Move input nml modificaiton to next PR.
danielabdi-noaa Mar 13, 2023
27a6e46
Temporarily turn off fcstfv3_lam subdirectory unitl run_fcst is mergd.
danielabdi-noaa Mar 13, 2023
fb41d4f
Make stochastic physics forecast work.
danielabdi-noaa Mar 14, 2023
ffe4c17
Temporarily fix run_fcst name to prod.
danielabdi-noaa Mar 14, 2023
6ab59b2
[develop] Split calling of METplus's PcpCombine tool into separate ta…
gsketefian Mar 15, 2023
6ce0363
[develop] Bug fix ensemble_verification in run_envir=nco mode. (#679)
danielabdi-noaa Mar 16, 2023
b82d7ec
Merge branch 'develop' into feature/rrfs_params
danielabdi-noaa Mar 17, 2023
60b6717
Remove custom rrfs fix file.
danielabdi-noaa Mar 17, 2023
2873640
Update nwges comment.
danielabdi-noaa Mar 17, 2023
e83194e
[develop] Change settings for AQM to meet NCO requirement and improve…
chan-hoo Mar 17, 2023
f250f1b
[develop]: Add initial documentation for AQM (#680)
gspetro-NOAA Mar 17, 2023
d917ace
[develop] Replace shell-based WE2E scripts with python versions (#637)
mkavulich Mar 20, 2023
f8b4eb4
[develop] Split calling of METplus's Pb2nc tool into separate task (f…
gsketefian Mar 20, 2023
7528d52
Merge branch 'develop' into feature/rrfs_params
danielabdi-noaa Mar 20, 2023
0a4ea2d
Add back accidentally removed FCST_DIR
danielabdi-noaa Mar 20, 2023
4018b00
[develop] Add RRFS product generation job to the SRW app (#631)
BenjaminBlake-NOAA Mar 20, 2023
e317d02
[develop] Update hash of ufs weather model and input.nml/diag_table f…
chan-hoo Mar 21, 2023
0c88e4b
[develop] Updated cheyenne configs to use new shared conda env for Ti…
padhrigmccarthy Mar 22, 2023
d13d64b
Merge branch 'develop' into feature/rrfs_params
danielabdi-noaa Mar 23, 2023
db8524f
Set RRFS data patsh for realtime/retrospective runs.
danielabdi-noaa Mar 23, 2023
7332188
[develop] Change file paths to EPIC data locations and add fix_gsi va…
EdwardSnyder-NOAA Mar 24, 2023
72e3898
Merge branch 'develop' into feature/rrfs_params
danielabdi-noaa Mar 24, 2023
dba1c0f
Fixes due to merge.
danielabdi-noaa Mar 24, 2023
742846b
Remove DO_RETRO flag.
danielabdi-noaa Mar 24, 2023
3320ee5
Fix RESTART_INTERVAL locations.
danielabdi-noaa Mar 25, 2023
4523e8c
Revert back to old way of creating FIXam
danielabdi-noaa Mar 25, 2023
289a318
Other fixes.
danielabdi-noaa Mar 25, 2023
f32b6af
Remove unused variables.
danielabdi-noaa Mar 27, 2023
adb2eee
Revert accidently removed conditions.
danielabdi-noaa Mar 27, 2023
dd4749a
Update realtime lightning_root on jet.
danielabdi-noaa Mar 28, 2023
6048b5d
[develop] Reverts to previous values set for GFS_v16 (#694)
christinaholtNOAA Mar 28, 2023
d2a8495
[develop] Updating S3 artifact bucket to point to new OAR account. (#…
kbooker79 Mar 29, 2023
aa9841c
[develop] Update ufs-weather-model and UPP hash to correct post contr…
MichaelLueken Mar 29, 2023
bd80d94
[develop] First iteration of overhauling WE2E tests (#686)
mkavulich Mar 29, 2023
be2db74
Update lightning_root paths for retro runs.
danielabdi-noaa Mar 31, 2023
276bdd6
[develop] Adds a YAML interface for creating a Rocoto XML. (#676)
christinaholtNOAA Mar 31, 2023
93d5374
Merge branch 'develop' into feature/rrfs_params
danielabdi-noaa Apr 1, 2023
d33219b
Update test config file to conform to new format.
danielabdi-noaa Apr 1, 2023
da34aac
[develop] Change the build log output file extension from log to txt …
BruceKropp-Raytheon Apr 3, 2023
c94ef05
Remove 3km HRRRIC predef grid.
danielabdi-noaa Apr 3, 2023
96fef95
Add HPSS_ACCOUNT.
danielabdi-noaa Apr 3, 2023
992becc
Keep predef grids we have in SRW.
danielabdi-noaa Apr 3, 2023
36084eb
[develop] Add reuse option to check_for_preexist_dir. (#645)
danielabdi-noaa Apr 4, 2023
ff9eddd
[develop] Add restart capability to forecast task (#682)
chan-hoo Apr 4, 2023
5598722
Add missing config options.
danielabdi-noaa Apr 5, 2023
c05132e
Merge branch 'develop' into feature/rrfs_params
danielabdi-noaa Apr 5, 2023
dc5340f
Add some variable updates from RRFS_dev1
danielabdi-noaa Apr 5, 2023
08737e0
Remove ARCHIVEDIR and NCL vars.
danielabdi-noaa Apr 7, 2023
0db4606
Bug fix FCST_LEN_CYCL
danielabdi-noaa Apr 7, 2023
6f96f19
[develop] Return Jet to Jenkinsfile. (#714)
MichaelLueken Apr 7, 2023
51df8ca
[develop] Fix a bug in devbuild.sh with a case statement (#715)
ywangwof Apr 7, 2023
baf4df1
[develop] Point source pre-combine (#708)
zmoon Apr 7, 2023
73e22e3
Merge branch 'develop' into feature/rrfs_params
danielabdi-noaa Apr 10, 2023
aa54f08
Add jinja templating to all config file formats.
danielabdi-noaa Mar 18, 2023
af0edc7
Use valuea less frequently.
danielabdi-noaa Mar 29, 2023
18a4b08
Modification to make rendering be called from setup.
danielabdi-noaa Apr 1, 2023
19dde67
Fix loading config from string.
danielabdi-noaa Apr 4, 2023
a430d16
Separate rendering of value templates from others.
danielabdi-noaa Apr 5, 2023
f90ac2b
Don't loop over cycledefs.
danielabdi-noaa Apr 1, 2023
3b16ff6
Remove startstopfreq.
danielabdi-noaa Apr 1, 2023
ff31759
Modify include filter to just copy/paste content.
danielabdi-noaa Apr 2, 2023
4f8381d
Rename anchors to avoid conflict during include.
danielabdi-noaa Apr 2, 2023
5b8138a
Modify setup for jinja templated workflow config file.
danielabdi-noaa Apr 1, 2023
b812ad2
Change rrfs test case
danielabdi-noaa Apr 5, 2023
7ea6b13
Add some rrfs workflow yaml files.
danielabdi-noaa Apr 5, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 9 additions & 5 deletions .cicd/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ pipeline {
// choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion', 'pclusternoaav2use1', 'azclusternoaav2eus1', 'gclusternoaav2usc1'], description: 'Specify the platform(s) to use')
// Use the line below to enable the PW AWS cluster
// choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion', 'pclusternoaav2use1'], description: 'Specify the platform(s) to use')
choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion'], description: 'Specify the platform(s) to use')
// Use the line below to enable hera
// choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion'], description: 'Specify the platform(s) to use')
choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'jet', 'orion'], description: 'Specify the platform(s) to use')
// Allow job runner to filter based on compiler
choice(name: 'SRW_COMPILER_FILTER', choices: ['all', 'gnu', 'intel'], description: 'Specify the compiler(s) to use to build')
// Uncomment the following line to re-enable comprehensive tests
Expand Down Expand Up @@ -76,7 +78,9 @@ pipeline {
axes {
axis {
name 'SRW_PLATFORM'
values 'cheyenne', 'gaea', 'hera', 'jet', 'orion' //, 'pclusternoaav2use1', 'azclusternoaav2eus1', 'gclusternoaav2usc1'
// Uncomment line below to re-add use of Hera
// values 'cheyenne', 'gaea', 'hera', 'jet', 'orion' //, 'pclusternoaav2use1', 'azclusternoaav2eus1', 'gclusternoaav2usc1'
values 'cheyenne', 'gaea', 'jet', 'orion' //, 'pclusternoaav2use1', 'azclusternoaav2eus1', 'gclusternoaav2usc1'
}

axis {
Expand Down Expand Up @@ -132,7 +136,7 @@ pipeline {
post {
success {
sh 'cd "${WORKSPACE}/${INSTALL_NAME}" && tar --create --gzip --verbose --file "${WORKSPACE}/${BUILD_NAME}.tgz" *'
s3Upload consoleLogLevel: 'INFO', dontSetBuildResultOnFailure: false, dontWaitForConcurrentBuildCompletion: false, entries: [[bucket: 'woc-epic-jenkins-artifacts', excludedFile: '', flatten: false, gzipFiles: false, keepForever: false, managedArtifacts: true, noUploadOnFailure: true, selectedRegion: 'us-east-1', showDirectlyInBrowser: false, sourceFile: "${env.BUILD_NAME}.tgz", storageClass: 'STANDARD', uploadFromSlave: false, useServerSideEncryption: false], [bucket: 'woc-epic-jenkins-artifacts', excludedFile: '', flatten: false, gzipFiles: false, keepForever: false, managedArtifacts: true, noUploadOnFailure: true, selectedRegion: 'us-east-1', showDirectlyInBrowser: false, sourceFile: "build_${env.SRW_COMPILER}/srw_build-${env.SRW_PLATFORM}-${env.SRW_COMPILER}.log", storageClass: 'STANDARD', uploadFromSlave: false, useServerSideEncryption: false]], pluginFailureResultConstraint: 'FAILURE', profileName: 'main', userMetadata: []
s3Upload consoleLogLevel: 'INFO', dontSetBuildResultOnFailure: false, dontWaitForConcurrentBuildCompletion: false, entries: [[bucket: 'noaa-epic-prod-jenkins-artifacts', excludedFile: '', flatten: false, gzipFiles: false, keepForever: false, managedArtifacts: true, noUploadOnFailure: true, selectedRegion: 'us-east-1', showDirectlyInBrowser: false, sourceFile: "${env.BUILD_NAME}.tgz", storageClass: 'STANDARD', uploadFromSlave: false, useServerSideEncryption: false], [bucket: 'noaa-epic-prod-jenkins-artifacts', excludedFile: '', flatten: false, gzipFiles: false, keepForever: false, managedArtifacts: true, noUploadOnFailure: true, selectedRegion: 'us-east-1', showDirectlyInBrowser: false, sourceFile: "build_${env.SRW_COMPILER}/srw_build-${env.SRW_PLATFORM}-${env.SRW_COMPILER}.txt", storageClass: 'STANDARD', uploadFromSlave: false, useServerSideEncryption: false]], pluginFailureResultConstraint: 'FAILURE', profileName: 'main', userMetadata: []
}
}
}
Expand Down Expand Up @@ -173,10 +177,10 @@ pipeline {
post {
always {
// Archive the test log files
sh 'cd "${SRW_WE2E_EXPERIMENT_BASE_DIR}" && tar --create --gzip --verbose --dereference --file "${WORKSPACE}/we2e_test_logs-${SRW_PLATFORM}-${SRW_COMPILER}.tgz" */log.generate_FV3LAM_wflow */log.launch_FV3LAM_wflow */log/*'
sh 'cd "${SRW_WE2E_EXPERIMENT_BASE_DIR}" && tar --create --gzip --verbose --dereference --file "${WORKSPACE}/we2e_test_logs-${SRW_PLATFORM}-${SRW_COMPILER}.tgz" */log.generate_FV3LAM_wflow */log/* ${WORKSPACE}/tests/WE2E/WE2E_tests_*yaml ${WORKSPACE}/tests/WE2E/WE2E_summary*txt ${WORKSPACE}/tests/WE2E/log.*'
// Remove the data sets from the experiments directory to conserve disk space
sh 'find "${SRW_WE2E_EXPERIMENT_BASE_DIR}" -regextype posix-extended -regex "^.*(orog|[0-9]{10})$" -type d | xargs rm -rf'
s3Upload consoleLogLevel: 'INFO', dontSetBuildResultOnFailure: false, dontWaitForConcurrentBuildCompletion: false, entries: [[bucket: 'woc-epic-jenkins-artifacts', excludedFile: '', flatten: false, gzipFiles: false, keepForever: false, managedArtifacts: true, noUploadOnFailure: false, selectedRegion: 'us-east-1', showDirectlyInBrowser: false, sourceFile: 'we2e_test_results-*-*.txt', storageClass: 'STANDARD', uploadFromSlave: false, useServerSideEncryption: false], [bucket: 'woc-epic-jenkins-artifacts', excludedFile: '', flatten: false, gzipFiles: false, keepForever: false, managedArtifacts: true, noUploadOnFailure: false, selectedRegion: 'us-east-1', showDirectlyInBrowser: false, sourceFile: 'we2e_test_logs-*-*.tgz', storageClass: 'STANDARD', uploadFromSlave: false, useServerSideEncryption: false]], pluginFailureResultConstraint: 'FAILURE', profileName: 'main', userMetadata: []
s3Upload consoleLogLevel: 'INFO', dontSetBuildResultOnFailure: false, dontWaitForConcurrentBuildCompletion: false, entries: [[bucket: 'noaa-epic-prod-jenkins-artifacts', excludedFile: '', flatten: false, gzipFiles: false, keepForever: false, managedArtifacts: true, noUploadOnFailure: false, selectedRegion: 'us-east-1', showDirectlyInBrowser: false, sourceFile: 'we2e_test_results-*-*.txt', storageClass: 'STANDARD', uploadFromSlave: false, useServerSideEncryption: false], [bucket: 'noaa-epic-prod-jenkins-artifacts', excludedFile: '', flatten: false, gzipFiles: false, keepForever: false, managedArtifacts: true, noUploadOnFailure: false, selectedRegion: 'us-east-1', showDirectlyInBrowser: false, sourceFile: 'we2e_test_logs-*-*.tgz', storageClass: 'STANDARD', uploadFromSlave: false, useServerSideEncryption: false]], pluginFailureResultConstraint: 'FAILURE', profileName: 'main', userMetadata: []
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion .cicd/scripts/srw_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ cd -
# Create combined log file for upload to s3
build_dir="${workspace}/build_${SRW_COMPILER}"
cat ${build_dir}/log.cmake ${build_dir}/log.make \
>${build_dir}/srw_build-${platform}-${SRW_COMPILER}.log
>${build_dir}/srw_build-${platform}-${SRW_COMPILER}.txt

exit $build_exit
43 changes: 7 additions & 36 deletions .cicd/scripts/srw_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,46 +38,17 @@ else
fi

cd ${we2e_test_dir}
./setup_WE2E_tests.sh ${platform} ${SRW_PROJECT} ${SRW_COMPILER} ${test_type} \
expt_basedir=${we2e_experiment_base_dir} \
opsroot=${nco_dir}

# Allow the tests to start before checking for status.
# TODO: Create a parameter that sets the initial start delay.
sleep 300

# Progress file
progress_file="${workspace}/we2e_test_results-${platform}-${SRW_COMPILER}.txt"

# Wait for all tests to complete.
while true; do

# Check status of all experiments
./get_expts_status.sh expts_basedir="${we2e_experiment_base_dir}" \
verbose="FALSE" | tee ${progress_file}

# Exit loop only if there are not tests in progress
set +e
grep -q "Workflow status: IN PROGRESS" ${progress_file}
exit_code=$?
set -e

if [[ $exit_code -ne 0 ]]; then
break
fi

# TODO: Create a paremeter that sets the poll frequency.
sleep 60
done

# Allow we2e cron jobs time to complete and clean up themselves
# TODO: Create parameter that sets the interval for the we2e cron jobs; this
# value should be some factor of that interval to ensure the cron jobs execute
# before the workspace is cleaned up.
sleep 600
./setup_WE2E_tests.sh ${platform} ${SRW_PROJECT} ${SRW_COMPILER} ${test_type} \
--expt_basedir=${we2e_experiment_base_dir} \
--opsroot=${nco_dir} | tee ${progress_file}

# Set exit code to number of failures
set +e
failures=$(grep "Workflow status: FAILURE" ${progress_file} | wc -l)
failures=$(grep " DEAD " ${progress_file} | wc -l)
if [[ $failures -ne 0 ]]; then
failures=1
fi
set -e
exit ${failures}
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,16 @@ fix/
include/
lib/
share/
modulefiles/extrn_comp_build/
sorc/*/
tests/WE2E/WE2E_test_info.csv
tests/WE2E/WE2E_tests_*.yaml
tests/WE2E/*.txt
tests/WE2E/*.log
tests/WE2E/log.*
ush/__pycache__/
ush/config.yaml
ush/python_utils/__pycache__/
ush/*.swp

*.swp
__pycache__
22 changes: 20 additions & 2 deletions Externals.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ protocol = git
repo_url = https://github.com/ufs-community/ufs-weather-model
# Specify either a branch name or a hash but not both.
#branch = develop
hash = 52072c5
hash = 36d6e16
local_path = sorc/ufs-weather-model
required = True

Expand All @@ -21,7 +21,7 @@ protocol = git
repo_url = https://github.com/NOAA-EMC/UPP
# Specify either a branch name or a hash but not both.
#branch = develop
hash = a644aaa
hash = 22cfb88
local_path = sorc/UPP
required = True

Expand All @@ -44,5 +44,23 @@ hash = 8d21f25
local_path = sorc/rrfs_utl
required = True

[arl_nexus]
protocol = git
repo_url = https://github.com/noaa-oar-arl/NEXUS
# Specify either a branch name or a hash but not both.
#branch = develop
hash = 3842818
local_path = sorc/arl_nexus
required = True

[aqm-utils]
protocol = git
repo_url = https://github.com/NOAA-EMC/AQM-utils
# Specify either a branch name or a hash but not both.
#branch = develop
hash = 0a86f73
local_path = sorc/AQM-utils
required = True

[externals_description]
schema_version = 1.0.0
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
# UFS Short-Range Weather Application

The Unified Forecast System (UFS) is a community-based, coupled, comprehensive Earth modeling system. It is designed to be the source system for NOAA’s operational numerical weather prediction applications while enabling research, development, and contribution opportunities for the broader weather enterprise. For more information about the UFS, visit the UFS Portal at https://ufscommunity.org/.
The Unified Forecast System (UFS) is a community-based, coupled, comprehensive Earth modeling system. It is designed to be the source system for NOAA’s operational numerical weather prediction applications while enabling research, development, and contribution opportunities for the broader Weather Enterprise. For more information about the UFS, visit the UFS Portal at https://ufscommunity.org/.

The UFS includes multiple applications (see a complete list at https://ufscommunity.org/science/aboutapps/) that support different forecast durations and spatial domains. This documentation describes the development branch of the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The development branch of the application is continually evolving as the system undergoes open development. The latest SRW App release (v2.0.0) represents a snapshot of this continuously evolving system.
The UFS includes multiple applications (see a complete list at https://ufscommunity.org/science/aboutapps/) that support different forecast durations and spatial domains. This documentation describes the development branch of the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The development branch of the application is continually evolving as the system undergoes open development. The latest SRW App release (v2.1.0) represents a snapshot of this continuously evolving system.

The UFS SRW App User's Guide associated with the development branch is at: https://ufs-srweather-app.readthedocs.io/en/develop/, while the guide specific to the SRW App v2.0.0 release can be found at: https://ufs-srweather-app.readthedocs.io/en/release-public-v2/. The repository is at: https://github.com/ufs-community/ufs-srweather-app.
The UFS SRW App User's Guide associated with the development branch is at: https://ufs-srweather-app.readthedocs.io/en/develop/, while the guide specific to the SRW App v2.1.0 release can be found at: https://ufs-srweather-app.readthedocs.io/en/release-public-v2.1.0/. The repository is at: https://github.com/ufs-community/ufs-srweather-app.

For instructions on how to clone the repository, build the code, and run the workflow, see:
https://github.com/ufs-community/ufs-srweather-app/wiki/Getting-Started

UFS Development Team. (2022, June 23). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.0.0). Zenodo. https://doi.org/10.5281/zenodo.6505854
For a debugging guide for users and developers in the field of Earth System Modeling, please see:
https://epic.noaa.gov/wp-content/uploads/2022/12/Debugging-Guide.pdf

UFS Development Team. (2022, Nov. 17). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.1.0). Zenodo. https://doi.org/10.5281/zenodo.7277602

[![Python unittests](https://github.com/ufs-community/ufs-srweather-app/actions/workflows/python_unittests.yaml/badge.svg)](https://github.com/ufs-community/ufs-srweather-app/actions/workflows/python_unittests.yaml)
[![Python functional tests](https://github.com/ufs-community/ufs-srweather-app/actions/workflows/python_func_tests.yaml/badge.svg)](https://github.com/ufs-community/ufs-srweather-app/actions/workflows/python_func_tests.yaml)
Expand Down
83 changes: 68 additions & 15 deletions devbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ OPTIONS
compiler to use; default depends on platform
(e.g. intel | gnu | cray | gccgfortran)
-a, --app=APPLICATION
weather model application to build
(e.g. ATM | ATMW | S2S | S2SW)
weather model application to build; for example, ATMAQ for Online-CMAQ
(e.g. ATM | ATMAQ | ATMW | S2S | S2SW)
--ccpp="CCPP_SUITE1,CCPP_SUITE2..."
CCPP suites (CCPP_SUITES) to include in build; delimited with ','
--enable-options="OPTION1,OPTION2,..."
Expand Down Expand Up @@ -56,8 +56,7 @@ TARGETS
all = builds all apps
Or any combinations of (ufs, ufs_utils, upp, gsi, rrfs_utils)

NOTE: This script is for internal developer use only;
See User's Guide for detailed build instructions
NOTE: See User's Guide for detailed build instructions

EOF_USAGE
}
Expand Down Expand Up @@ -87,6 +86,8 @@ Settings:
BUILD_UPP=${BUILD_UPP}
BUILD_GSI=${BUILD_GSI}
BUILD_RRFS_UTILS=${BUILD_RRFS_UTILS}
BUILD_NEXUS=${BUILD_NEXUS}
BUILD_AQM_UTILS=${BUILD_AQM_UTILS}

EOF_SETTINGS
}
Expand Down Expand Up @@ -123,6 +124,8 @@ BUILD_UFS_UTILS="off"
BUILD_UPP="off"
BUILD_GSI="off"
BUILD_RRFS_UTILS="off"
BUILD_NEXUS="off"
BUILD_AQM_UTILS="off"

# Make options
CLEAN=false
Expand Down Expand Up @@ -182,36 +185,51 @@ while :; do
upp) DEFAULT_BUILD=false; BUILD_UPP="on" ;;
gsi) DEFAULT_BUILD=false; BUILD_GSI="on" ;;
rrfs_utils) DEFAULT_BUILD=false; BUILD_RRFS_UTILS="on" ;;
nexus) DEFAULT_BUILD=false; BUILD_NEXUS="on" ;;
aqm_utils) DEFAULT_BUILD=false; BUILD_AQM_UTILS="on" ;;
# unknown
-?*|?*) usage_error "Unknown option $1" ;;
*) break
esac
shift
done

# choose default apps to build
if [ "${DEFAULT_BUILD}" = true ]; then
BUILD_UFS="on"
BUILD_UFS_UTILS="on"
BUILD_UPP="on"
fi

# Ensure uppercase / lowercase ============================================
APPLICATION="${APPLICATION^^}"
PLATFORM="${PLATFORM,,}"
COMPILER="${COMPILER,,}"
EXTERNALS="${EXTERNALS^^}"

# check if PLATFORM is set
if [ -z $PLATFORM ] ; then
printf "\nERROR: Please set PLATFORM.\n\n"
usage
exit 0
fi

# set PLATFORM (MACHINE)
MACHINE="${PLATFORM}"
printf "PLATFORM(MACHINE)=${PLATFORM}\n" >&2

# choose default apps to build
if [ "${DEFAULT_BUILD}" = true ]; then
BUILD_UFS="on"
BUILD_UFS_UTILS="on"
BUILD_UPP="on"
fi

# Choose components to build for air quality modeling (Online-CMAQ)
if [ "${APPLICATION}" = "ATMAQ" ]; then
if [ "${DEFAULT_BUILD}" = true ]; then
BUILD_NEXUS="on"
BUILD_AQM_UTILS="on"
fi
if [ "${PLATFORM}" = "wcoss2" ]; then
BUILD_POST_STAT="on"
else
BUILD_POST_STAT="off"
fi
fi

set -eu

# automatically determine compiler
Expand All @@ -221,8 +239,8 @@ if [ -z "${COMPILER}" ] ; then
orion) COMPILER=intel ;;
wcoss2) COMPILER=intel ;;
cheyenne) COMPILER=intel ;;
macos,singularity) COMPILER=gnu ;;
odin,noaacloud) COMPILER=intel ;;
macos|singularity) COMPILER=gnu ;;
odin|noaacloud) COMPILER=intel ;;
*)
COMPILER=intel
printf "WARNING: Setting default COMPILER=intel for new platform ${PLATFORM}\n" >&2;
Expand Down Expand Up @@ -304,7 +322,9 @@ CMAKE_SETTINGS="\
-DBUILD_UFS_UTILS=${BUILD_UFS_UTILS}\
-DBUILD_UPP=${BUILD_UPP}\
-DBUILD_GSI=${BUILD_GSI}\
-DBUILD_RRFS_UTILS=${BUILD_RRFS_UTILS}"
-DBUILD_RRFS_UTILS=${BUILD_RRFS_UTILS}\
-DBUILD_NEXUS=${BUILD_NEXUS}\
-DBUILD_AQM_UTILS=${BUILD_AQM_UTILS}"

if [ ! -z "${APPLICATION}" ]; then
CMAKE_SETTINGS="${CMAKE_SETTINGS} -DAPP=${APPLICATION}"
Expand All @@ -318,6 +338,29 @@ fi
if [ ! -z "${DISABLE_OPTIONS}" ]; then
CMAKE_SETTINGS="${CMAKE_SETTINGS} -DDISABLE_OPTIONS=${DISABLE_OPTIONS}"
fi
if [ "${APPLICATION}" = "ATMAQ" ]; then
CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCPL_AQM=ON -DBUILD_POST_STAT=${BUILD_POST_STAT}"

# Copy module files to designated directory
EXTRN_BUILD_MOD_DIR="${SRW_DIR}/modulefiles/extrn_comp_build"
mkdir -p ${EXTRN_BUILD_MOD_DIR}
if [ "${BUILD_UFS}" = "on" ]; then
cp "${SRW_DIR}/sorc/ufs-weather-model/modulefiles/ufs_${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_ufs-weather-model.lua"
cp "${SRW_DIR}/sorc/ufs-weather-model/modulefiles/ufs_common.lua" ${EXTRN_BUILD_MOD_DIR}
fi
if [ "${BUILD_UFS_UTILS}" = "on" ]; then
cp "${SRW_DIR}/sorc/UFS_UTILS/modulefiles/build.${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_ufs-utils.lua"
fi
if [ "${BUILD_UPP}" = "on" ]; then
cp "${SRW_DIR}/sorc/UPP/modulefiles/${PLATFORM}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_upp.lua"
fi
if [ "${BUILD_NEXUS}" = "on" ]; then
cp "${SRW_DIR}/sorc/AQM-utils/parm/nexus_modulefiles/${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_nexus.lua"
fi
if [ "${BUILD_AQM_UTILS}" = "on" ]; then
cp "${SRW_DIR}/sorc/AQM-utils/modulefiles/build_${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_aqm-utils.lua"
fi
fi

# make settings
MAKE_SETTINGS="-j ${BUILD_JOBS}"
Expand Down Expand Up @@ -393,6 +436,16 @@ if [ $USE_SUB_MODULES = true ]; then
printf "... Loading RRFS_UTILS modules ...\n"
load_module ""
fi
if [ $BUILD_NEXUS = "on" ]; then
printf "... Loading NEXUS modules ...\n"
module use ${SRW_DIR}/sorc/arl_nexus/modulefiles
load_module ""
fi
if [ $BUILD_AQM_UTILS = "on" ]; then
printf "... Loading AQM-utils modules ...\n"
module use ${SRW_DIR}/sorc/AQM-utils/modulefiles
load_module ""
fi
else
module use ${SRW_DIR}/modulefiles
module load ${MODULE_FILE}
Expand Down
1 change: 1 addition & 0 deletions docs/UsersGuide/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
sphinxcontrib-bibtex
sphinx_rtd_theme
docutils==0.16
Loading