Skip to content

Commit

Permalink
Release/public v2 (#765)
Browse files Browse the repository at this point in the history
* Add Gaea as a supported platform for the regional_workflow (#734)

* Updates to port regional workflow to gaea

* Temp change with -v as batch option

* new fixes for gaea/slurm

* Updated time for make lbcs

* added TEST data directory path

* Update gaea.sh

* fixes for PR

* Add more parameters to CSV file containing WE2E test info (#740)

## DESCRIPTION OF CHANGES: 
The script/function `get_WE2Etest_names_subdirs_descs.sh` (which is called from `run_WE2E_tests.sh` if needed) creates a CSV (Comma-Separated Value) file named `WE2E_test_info.csv` that contains information about the WE2E tests.  Currently, this CSV file contains only 3 columns: the test name, the names of any alternate names for the test, and the test description.  In order to have a more complete summary of the WE2E tests, this PR modifies `get_WE2Etest_names_subdirs_descs.sh` so that additional information is included in the CSV file.  This additional information consists of the values of the following experiment variables for each test:
```
PREDEF_GRID_NAME
CCPP_PHYS_SUITE
EXTRN_MDL_NAME_ICS
EXTRN_MDL_NAME_LBCS
DATE_FIRST_CYCL
DATE_LAST_CYCL
CYCL_HRS
INCR_CYCL_FREQ
FCST_LEN_HRS
LBC_SPEC_INTVL_HRS
NUM_ENS_MEMBERS
```
In addition, the script uses this information to calculate the number of times each test calls the forecast model (e.g. if the test uses 3 different cycle dates, then the forecast model will be called 3 times; if it is an ensemble test for a single cycle, the test will call the forecast model as many times as the number of ensemble members).  

## TESTS CONDUCTED: 
The script `run_WE2E_tests.sh` was called that in turn calls `get_WE2Etest_names_subdirs_descs.sh`.  This created a new CSV file that contained the new fields (columns).  The CSV file was imported into Google Sheets (using "|" as the field/column separator) and looked correct.

## DOCUMENTATION:
The documentation is for the most part already within the `get_WE2Etest_names_subdirs_descs.sh`.  This PR slightly modifies that documentation to update it.

* Update directory structure of NCO mode (#743)

* update vertical structure of NCO mode

* update sample script for nco

* Fix typo on write component of new RRFS CONUS

* Default CCPP physics option is FV3_GFS_v16 (#746)

* Updated the default CCPP physics option to FV3_GFS_v16

* Updated the default CCPP physics option to FV3_GFS_v16 in config_defaults.sh

Co-authored-by: Natalie Perlin <[email protected]>

* Adds an alternative python workflow generation path (#698)

* Workflow in python starting to work.

* Use new python_utils package structure.

* Some bug fixes.

* Use uppercase TRUE/FALSE in var_dfns

* Use config.sh by default.

* Minor bug fixes.

* Remove config.yaml

* Update to the latest develop

* Remove quotes from numbers in predef grid.

* Minor bug fix.

* Move validity checker to the bottom of setup

* Add more unit tests.

* Update with python_utils changes.

* Update to latest develop additions (Need to re-run regression test)

* Use set_namelist and fill_jinja_template as python functions.

* Replace sed regex searches with python re.

* Use python realpath.

* Construct settings as dictionary before passing to fill_jinja and set_namelist

* Use yaml for setting predefined grid parameters.

* Use xml parser for ccpp phys suite definition file.

* Remove more run_command calls.

* Simplify some func argument processing.

* Move different config format parsers to same file.

* Use os.path.join for the sake of macosx

* Remove remaining func argument processing via os.environ.

* Minor bug fix in set_extrn_mdl_params.sh

* Add suite defn in test_data.

* Minor fixes on unittest on jet.

* Simplify boolean condition checks.

* Include old in renaming of old directories

* Fix conflicting yaml !join tag for paths and strings.

* Bug fix with setting sfcperst dict.

* Imitate "readlink -m" with os.path.realpath instead of os.readlink

* Don't use /tmp as that is shared by multiple users.

* Bug fix with cron line, maintain quotes around TRUE/FALSE.

* Update to latest develop (untested)

* Bug fix with existing cron line and quotes.

* Bug fix with case-sensitive MACHINE name, and empty EXPT_DIR.

* Update to latest develop

* More updates.

* Bug fix thanks to @willmayfield! Check both starting/ending
characters are brackets for shell variable to be considered an array.

* Make empty EXPT_BASEDIR workable.

* Update to latest develop

* Update in predef grid.

* Check f90nml as well.

Co-authored-by: Daniel Abdi <[email protected]>

* Fix typo and crontab issue on wcoss dell in workflow python scripts (#750)

* Fix typo and failure on wcoss

* fix new line issue on wcoss dell

* remove capture_output

* Get USER from environment

Co-authored-by: Daniel Abdi <[email protected]>

* Add new WE2E configs (#748)

## DESCRIPTION OF CHANGES: 
Added two new WE2E config files for the Sub-CONUS Indianapolis domain to support the upcoming SRW release. 

In addition, modified the external data used in the `config.specify_EXTRN_MDL_SYSBASEDIR_ICS_LBCS.sh` to match more common datasets used in the WE2E testing process. 

## TESTS CONDUCTED: 
Successfully ran the new WE2E tests (`config.SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_HRRR.sh`, `config.SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta.sh`) and `config.specify_EXTRN_MDL_SYSBASEDIR_ICS_LBCS.sh` on NOAA Parallel Works AWS instance.

## DEPENDENCIES:
None.

## DOCUMENTATION:
No documentation changes are required.

* Added a fixed WoF grid and the python tool to determine the write component parameters (#733)

* Added a fixed WoF grid and the python tool to determine the write component parameters

* Update set_predef_grid_params.sh

* Renamed file as recommended and removed unused lines

* Modified comment

Co-authored-by: JeffBeck-NOAA <[email protected]>
Co-authored-by: WYH@MBP <[email protected]>

* Replace env with modulefiles in scripts (#752)

* change env to mod

* update we2e script

* WE2E script improvements for usability (#745)

## DESCRIPTION OF CHANGES: 
* Modifications to `run_WE2E_tests.sh`:
  * Add examples to help/usage statement
* Modifications to `check_expts_status.sh`:
  * Add arguments list that can be processed by `process_args`
  * Add new optional arguments:  `num_log_lines`, `verbose`
  * Include a help/usage message

## TESTS CONDUCTED:
* Ran `run_WE2E_tests.sh --help` from the command line and got the expected help message.
* Ran `check_expts_status.sh --help` from the command line and got the expected help message.
* Used `run_WE2E_tests.sh` to run a set of 2 WE2E tests -- works as expected.
* Used `check_expts_status` to check on the status of the 2 tests run above and got the expected status message.
 
## DEPENDENCIES:
PR #[241](ufs-community/ufs-srweather-app#241)

## DOCUMENTATION:
A lot of this PR is documentation in the scripts.  There is an accompanying documentation PR #[241](ufs-community/ufs-srweather-app#241) into ufs-srweather-app.

* Standardize static data across Tier-1 platforms; fix and improve IC and LBC data retrieval (#744)

* Bug fixes (grid size + suppress screen output from module load) (#756)

## DESCRIPTION OF CHANGES: 
1) Adjust y-direction size of write-component grid of `SUBCONUS_Ind_3km` predefined grid from 195 to 197 (this was just an oversight in PR #725 ).
2) Redirect output of module load in launch script (`launch_FV3LAM_wflow.sh`) to `/dev/null` to avoid unwanted screen output (which was introduced in PR #[238](ufs-community/ufs-srweather-app#238) in ufs-srweather-app and is about how to load the `regional_workflow` environment and is not relevant in this context).

## TESTS CONDUCTED: 
1) Plotted the `SUBCONUS_Ind_3km` grid to ensure it has correct size (it does).
2) Manually ran `launch_FV3LAM_wflow.sh` from the command line to verify that screen output is suppressed (it is).

* Update default SPP ISEED array in config_defaults.sh to use unique values (#759)

* Modify RRFS North America 3- and 13-km domain configuration and WE2E test.

* Modify default ISEED values for SPP

* Fix grid in WE2E test

* Update workflow python scripts (#760)

* update python scripts

* Change output file name of run_post to meet NCO standards (#758)

* change output file name

* change variable name

* update python script

* remove duplicates

* add a check for empty variables

* move variable to common area

* clean up unnecessary comments

* update scripts

* remove duplicate

* update python scripts

* fix user-staged dir path issue in python script

* Add POST_OUTPUT_DOMAIN_NAME to WE2E tests for new grids (#763)

* Add new var to we2e tests for new grids

* rename we2e tests for custom grid

* remove unnecessary $

Co-authored-by: Mark Potts <[email protected]>
Co-authored-by: gsketefian <[email protected]>
Co-authored-by: Chan-Hoo.Jeon-NOAA <[email protected]>
Co-authored-by: Natalie Perlin <[email protected]>
Co-authored-by: Natalie Perlin <[email protected]>
Co-authored-by: danielabdi-noaa <[email protected]>
Co-authored-by: Daniel Abdi <[email protected]>
Co-authored-by: Daniel Abdi <[email protected]>
Co-authored-by: EdwardSnyder-NOAA <[email protected]>
Co-authored-by: Yunheng Wang <[email protected]>
Co-authored-by: JeffBeck-NOAA <[email protected]>
Co-authored-by: WYH@MBP <[email protected]>
Co-authored-by: Michael Kavulich <[email protected]>
  • Loading branch information
14 people authored May 11, 2022
1 parent 99d8da9 commit 71ea020
Show file tree
Hide file tree
Showing 152 changed files with 10,431 additions and 600 deletions.
6 changes: 6 additions & 0 deletions modulefiles/tasks/gaea/make_grid.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#%Module
module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles
module load rocoto
module load miniconda3

setenv SRW_ENV regional_workflow
6 changes: 6 additions & 0 deletions modulefiles/tasks/gaea/make_ics.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#%Module
module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles
module load rocoto
module load miniconda3

setenv SRW_ENV regional_workflow
6 changes: 6 additions & 0 deletions modulefiles/tasks/gaea/make_lbcs.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#%Module
module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles
module load rocoto
module load miniconda3

setenv SRW_ENV regional_workflow
6 changes: 6 additions & 0 deletions modulefiles/tasks/gaea/run_fcst.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#%Module
module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles
module load rocoto
module load miniconda3

setenv SRW_ENV regional_workflow
7 changes: 7 additions & 0 deletions modulefiles/tasks/gaea/run_vx.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#%Module

module use -a /contrib/anaconda/modulefiles
module load intel/18.0.5.274
module load anaconda/latest
module use -a /contrib/met/modulefiles/
module load met/10.0.0
4 changes: 2 additions & 2 deletions scripts/exregional_get_extrn_mdl_files.sh
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ elif [ "${ICS_OR_LBCS}" = "LBCS" ]; then
input_file_path=${EXTRN_MDL_SOURCE_BASEDIR_LBCS:-$EXTRN_MDL_SYSBASEDIR_LBCS}
fi

data_stores="hpss aws"
data_stores="${EXTRN_MDL_DATA_STORES}"

yyyymmddhh=${extrn_mdl_cdate:0:10}
yyyy=${yyyymmddhh:0:4}
Expand Down Expand Up @@ -141,7 +141,7 @@ if [ -n "${file_names:-}" ] ; then
fi

if [ -n "${input_file_path:-}" ] ; then
data_stores="disk hpss aws"
data_stores="disk $data_stores"
additional_flags="$additional_flags \
--input_file_path ${input_file_path}"
fi
Expand Down
2 changes: 1 addition & 1 deletion scripts/exregional_make_grid.sh
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ if [ "${GRID_GEN_METHOD}" = "GFDLgrid" ]; then
elif [ "${GRID_GEN_METHOD}" = "ESGgrid" ]; then
CRES="C${res_equiv}"
fi
set_file_param "${GLOBAL_VAR_DEFNS_FP}" "CRES" "\"$CRES\""
set_file_param "${GLOBAL_VAR_DEFNS_FP}" "CRES" "'$CRES'"
#
#-----------------------------------------------------------------------
#
Expand Down
1 change: 1 addition & 0 deletions scripts/exregional_run_ensgridvx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ export METPLUS_CONF
export MET_CONFIG
export MODEL
export NET
export POST_OUTPUT_DOMAIN_NAME
export NUM_ENS_MEMBERS
export NUM_PAD
export LOG_SUFFIX
Expand Down
1 change: 1 addition & 0 deletions scripts/exregional_run_ensgridvx_mean.sh
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ export METPLUS_CONF
export MET_CONFIG
export MODEL
export NET
export POST_OUTPUT_DOMAIN_NAME
export INPUT_BASE
export LOG_SUFFIX

Expand Down
1 change: 1 addition & 0 deletions scripts/exregional_run_ensgridvx_prob.sh
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ export METPLUS_CONF
export MET_CONFIG
export MODEL
export NET
export POST_OUTPUT_DOMAIN_NAME
export LOG_SUFFIX

#
Expand Down
1 change: 1 addition & 0 deletions scripts/exregional_run_enspointvx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ export METPLUS_CONF
export MET_CONFIG
export MODEL
export NET
export POST_OUTPUT_DOMAIN_NAME
export NUM_ENS_MEMBERS

${METPLUS_PATH}/ush/run_metplus.py \
Expand Down
1 change: 1 addition & 0 deletions scripts/exregional_run_enspointvx_mean.sh
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ export METPLUS_CONF
export MET_CONFIG
export MODEL
export NET
export POST_OUTPUT_DOMAIN_NAME

${METPLUS_PATH}/ush/run_metplus.py \
-c ${METPLUS_CONF}/common.conf \
Expand Down
1 change: 1 addition & 0 deletions scripts/exregional_run_enspointvx_prob.sh
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ export METPLUS_CONF
export MET_CONFIG
export MODEL
export NET
export POST_OUTPUT_DOMAIN_NAME

${METPLUS_PATH}/ush/run_metplus.py \
-c ${METPLUS_CONF}/common.conf \
Expand Down
5 changes: 2 additions & 3 deletions scripts/exregional_run_fcst.sh
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,6 @@ if [ ${WRITE_DOPOST} = "TRUE" ]; then
yyyymmdd=${cdate:0:8}
hh=${cdate:8:2}
cyc=$hh
tmmark="tm00"
fmn="00"

if [ "${RUN_ENVIR}" = "nco" ]; then
Expand All @@ -539,15 +538,15 @@ if [ ${WRITE_DOPOST} = "TRUE" ]; then
post_mn=${post_time:10:2}
post_mn_or_null=""
post_fn_suffix="GrbF${fhr_d}"
post_renamed_fn_suffix="f${fhr}${post_mn_or_null}.${tmmark}.grib2"
post_renamed_fn_suffix="f${fhr}${post_mn_or_null}.${POST_OUTPUT_DOMAIN_NAME}.grib2"

basetime=$( $DATE_UTIL --date "$yyyymmdd $hh" +%y%j%H%M )
symlink_suffix="_${basetime}f${fhr}${post_mn}"
fids=( "prslev" "natlev" )
for fid in "${fids[@]}"; do
FID=$(echo_uppercase $fid)
post_orig_fn="${FID}.${post_fn_suffix}"
post_renamed_fn="${NET}.t${cyc}z.${fid}${post_renamed_fn_suffix}"
post_renamed_fn="${NET}.t${cyc}z.${fid}.${post_renamed_fn_suffix}"
mv_vrfy ${run_dir}/${post_orig_fn} ${post_renamed_fn}
ln_vrfy -fs ${post_renamed_fn} ${FID}${symlink_suffix}
done
Expand Down
1 change: 1 addition & 0 deletions scripts/exregional_run_gridstatvx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ export METPLUS_CONF
export MET_CONFIG
export MODEL
export NET
export POST_OUTPUT_DOMAIN_NAME

#
#-----------------------------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions scripts/exregional_run_pointstatvx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ export METPLUS_CONF
export MET_CONFIG
export MODEL
export NET
export POST_OUTPUT_DOMAIN_NAME

${METPLUS_PATH}/ush/run_metplus.py \
-c ${METPLUS_CONF}/common.conf \
Expand Down
15 changes: 2 additions & 13 deletions scripts/exregional_run_post.sh
Original file line number Diff line number Diff line change
Expand Up @@ -172,17 +172,6 @@ cyc=$hh
#
#-----------------------------------------------------------------------
#
# The tmmark is a reference value used in real-time, DA-enabled NCEP models.
# It represents the delay between the onset of the DA cycle and the free
# forecast. With no DA in the SRW App at the moment, it is hard-wired to
# tm00 for now.
#
#-----------------------------------------------------------------------
#
tmmark="tm00"
#
#-----------------------------------------------------------------------
#
# Create the namelist file (itag) containing arguments to pass to the post-
# processor's executable.
#
Expand Down Expand Up @@ -300,7 +289,7 @@ if [ "${post_mn}" != "00" ]; then
fi

post_fn_suffix="GrbF${post_fhr}${dot_post_mn_or_null}"
post_renamed_fn_suffix="f${fhr}${post_mn_or_null}.${tmmark}.grib2"
post_renamed_fn_suffix="f${fhr}${post_mn_or_null}.${POST_OUTPUT_DOMAIN_NAME}.grib2"
#
# For convenience, change location to postprd_dir (where the final output
# from UPP will be located). Then loop through the two files that UPP
Expand All @@ -314,7 +303,7 @@ fids=( "prslev" "natlev" )
for fid in "${fids[@]}"; do
FID=$(echo_uppercase $fid)
post_orig_fn="${FID}.${post_fn_suffix}"
post_renamed_fn="${NET}.t${cyc}z.${fid}${post_renamed_fn_suffix}"
post_renamed_fn="${NET}.t${cyc}z.${fid}.${post_renamed_fn_suffix}"
mv_vrfy ${tmp_dir}/${post_orig_fn} ${post_renamed_fn}
create_symlink_to_file target="${post_renamed_fn}" \
symlink="${FID}${symlink_suffix}" \
Expand Down
Loading

0 comments on commit 71ea020

Please sign in to comment.