From fe83181cb28cae75abe9cc7b4ca60aff72d771ef Mon Sep 17 00:00:00 2001 From: Ming Hu Date: Thu, 13 May 2021 15:05:07 -0600 Subject: [PATCH 1/3] Feature/rrfs dev1: add retrospective function and changes for running on WCOSS (#104) * Cold start RRFS_dev1 3km CONUS hourly cycles from 09/21Z HRRR analysis. * Changes for running on RRFS cycles on WCOSS. --- scripts/exregional_make_ics.sh | 2 + scripts/exregional_run_analysis.sh | 204 +++++++++++++++-------------- ush/config.sh.RRFS_AK_dev1 | 51 +++++--- ush/config.sh.RRFS_NA_13km | 46 +++++-- ush/config.sh.RRFS_NA_3km | 46 +++++-- ush/config.sh.RRFS_dev1 | 49 ++++--- ush/config.sh.RRFS_wcoss | 150 +++++++++++++++++++++ ush/config_defaults.sh | 5 + ush/get_extrn_mdl_file_dir_info.sh | 8 +- ush/launch_FV3LAM_wflow.sh | 2 +- ush/templates/FV3LAM_wflow.xml | 40 +++++- ush/valid_param_vals.sh | 1 + 12 files changed, 442 insertions(+), 162 deletions(-) create mode 100644 ush/config.sh.RRFS_wcoss diff --git a/scripts/exregional_make_ics.sh b/scripts/exregional_make_ics.sh index f22fa9d05..758851685 100755 --- a/scripts/exregional_make_ics.sh +++ b/scripts/exregional_make_ics.sh @@ -403,6 +403,8 @@ case "${EXTRN_MDL_NAME_ICS}" in fn_grib2="${EXTRN_MDL_FNS[0]}" input_type="grib2" convert_nst=False + fn_atm_nemsio="${EXTRN_MDL_FNS[0]}" + fn_sfc_nemsio="${EXTRN_MDL_FNS[1]}" fi vgtyp_from_climo=True sotyp_from_climo=True diff --git a/scripts/exregional_run_analysis.sh b/scripts/exregional_run_analysis.sh index 2c39f0f54..24021169c 100755 --- a/scripts/exregional_run_analysis.sh +++ b/scripts/exregional_run_analysis.sh @@ -78,31 +78,17 @@ case $MACHINE in # "WCOSS_C" | "WCOSS") # - - if [ "${USE_CCPP}" = "TRUE" ]; then - -# Needed to change to the experiment directory because the module files -# for the CCPP-enabled version of FV3 have been copied to there. - - cd_vrfy ${cycle_dir} - - set +x - source ./module-setup.sh - module use $( pwd -P ) - module load modules.fv3 - module list - set -x - - else - - . /apps/lmod/lmod/init/sh - module purge - module use /scratch4/NCEPDEV/nems/noscrub/emc.nemspara/soft/modulefiles - module load intel/16.1.150 impi/5.1.1.109 netcdf/4.3.0 - module list - - fi - + module load NCO/4.7.0 + module list + ulimit -s unlimited + ulimit -a + APRUN="mpirun -l -np ${PE_MEMBER01}" + ;; +# +"WCOSS_DELL_P3") +# + module load NCO/4.7.0 + module list ulimit -s unlimited ulimit -a APRUN="mpirun -l -np ${PE_MEMBER01}" @@ -110,32 +96,6 @@ case $MACHINE in # "THEIA") # - - if [ "${USE_CCPP}" = "TRUE" ]; then - -# Need to change to the experiment directory to correctly load necessary -# modules for CCPP-version of FV3LAM in lines below - cd_vrfy ${EXPTDIR} - - set +x - source ./module-setup.sh - module use $( pwd -P ) - module load modules.fv3 - module load contrib wrap-mpi - module list - set -x - - else - - . /apps/lmod/lmod/init/sh - module purge - module use /scratch4/NCEPDEV/nems/noscrub/emc.nemspara/soft/modulefiles - module load intel/16.1.150 impi/5.1.1.109 netcdf/4.3.0 - module load contrib wrap-mpi - module list - - fi - ulimit -s unlimited ulimit -a np=${SLURM_NTASKS} @@ -146,14 +106,12 @@ case $MACHINE in ulimit -s unlimited ulimit -a APRUN="srun" - LD_LIBRARY_PATH="${UFS_WTHR_MDL_DIR}/FV3/ccpp/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ;; # "JET") ulimit -s unlimited ulimit -a APRUN="srun" - LD_LIBRARY_PATH="${UFS_WTHR_MDL_DIR}/FV3/ccpp/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" NCKS=ncks ;; # @@ -175,10 +133,10 @@ esac # #----------------------------------------------------------------------- # -START_DATE=`echo "${CDATE}" | sed 's/\([[:digit:]]\{2\}\)$/ \1/'` +START_DATE=$(echo "${CDATE}" | sed 's/\([[:digit:]]\{2\}\)$/ \1/') -YYYYMMDDHH=`date +%Y%m%d%H -d "${START_DATE}"` -JJJ=`date +%j -d "${START_DATE}"` +YYYYMMDDHH=$(date +%Y%m%d%H -d "${START_DATE}") +JJJ=$(date +%j -d "${START_DATE}") YYYY=${YYYYMMDDHH:0:4} MM=${YYYYMMDDHH:4:2} @@ -216,43 +174,82 @@ print_info_msg "$VERBOSE" "background type is is $BKTYPE" # #----------------------------------------------------------------------- -stampcycle=`date -d "${START_DATE}" +%s` +stampcycle=$(date -d "${START_DATE}" +%s) minHourDiff=100 loops="009" # or 009s for GFSv15 ens_type="nc" # or nemsio for GFSv15 foundens=false -for loop in $loops; do - for timelist in `ls ${ENKF_FCST}/*.gdas.t*z.atmf${loop}.mem080.${ens_type}`; do - availtimeyy=`basename ${timelist} | cut -c 1-2` - availtimeyyyy=20${availtimeyy} - availtimejjj=`basename ${timelist} | cut -c 3-5` - availtimemm=`date -d "${availtimeyyyy}0101 +$(( 10#${availtimejjj} - 1 )) days" +%m` - availtimedd=`date -d "${availtimeyyyy}0101 +$(( 10#${availtimejjj} - 1 )) days" +%d` - availtimehh=`basename ${timelist} | cut -c 6-7` - availtime=${availtimeyyyy}${availtimemm}${availtimedd}${availtimehh} - avail_time=`echo "${availtime}" | sed 's/\([[:digit:]]\{2\}\)$/ \1/'` - avail_time=`date -d "${avail_time}"` - - stamp_avail=`date -d "${avail_time} ${loop} hours" +%s` - - hourDiff=`echo "($stampcycle - $stamp_avail) / (60 * 60 )" | bc`; - if [[ ${stampcycle} -lt ${stamp_avail} ]]; then - hourDiff=`echo "($stamp_avail - $stampcycle) / (60 * 60 )" | bc`; - fi - - if [[ ${hourDiff} -lt ${minHourDiff} ]]; then - minHourDiff=${hourDiff} - enkfcstname=${availtimeyy}${availtimejjj}${availtimehh}00.gdas.t${availtimehh}z.atmf${loop} - foundens=true - fi +cat "no ens found" >> filelist03 + +case $MACHINE in + +"WCOSS_C" | "WCOSS" | "WCOSS_DELL_P3") + + for loop in $loops; do + for timelist in $(ls ${ENKF_FCST}/enkfgdas.*/*/atmos/mem080/gdas*.atmf${loop}.${ens_type}); do + availtimeyyyymmdd=$(echo ${timelist} | cut -d'/' -f9 | cut -c 10-17) + availtimehh=$(echo ${timelist} | cut -d'/' -f10) + availtime=${availtimeyyyymmdd}${availtimehh} + avail_time=$(echo "${availtime}" | sed 's/\([[:digit:]]\{2\}\)$/ \1/') + avail_time=$(date -d "${avail_time}") + + stamp_avail=$(date -d "${avail_time} ${loop} hours" +%s) + + hourDiff=$(echo "($stampcycle - $stamp_avail) / (60 * 60 )" | bc); + if [[ ${stampcycle} -lt ${stamp_avail} ]]; then + hourDiff=$(echo "($stamp_avail - $stampcycle) / (60 * 60 )" | bc); + fi + + if [[ ${hourDiff} -lt ${minHourDiff} ]]; then + minHourDiff=${hourDiff} + enkfcstname=gdas.t${availtimehh}z.atmf${loop} + eyyyymmdd=$(echo ${availtime} | cut -c1-8) + ehh=$(echo ${availtime} | cut -c9-10) + foundens=true + fi + done done -done -if [ $foundens ]; then - ls ${ENKF_FCST}/${enkfcstname}.mem0??.${ens_type} >> filelist03 -else - cat "no ens found" >> filelist03 -fi + if [ ${foundens} ] + then + ls ${ENKF_FCST}/enkfgdas.${eyyyymmdd}/${ehh}/atmos/mem???/${enkfcstname}.nc > filelist03 + fi + + ;; +"JET") + + for loop in $loops; do + for timelist in $(ls ${ENKF_FCST}/*.gdas.t*z.atmf${loop}.mem080.${ens_type}); do + availtimeyy=$(basename ${timelist} | cut -c 1-2) + availtimeyyyy=20${availtimeyy} + availtimejjj=$(basename ${timelist} | cut -c 3-5) + availtimemm=$(date -d "${availtimeyyyy}0101 +$(( 10#${availtimejjj} - 1 )) days" +%m) + availtimedd=$(date -d "${availtimeyyyy}0101 +$(( 10#${availtimejjj} - 1 )) days" +%d) + availtimehh=$(basename ${timelist} | cut -c 6-7) + availtime=${availtimeyyyy}${availtimemm}${availtimedd}${availtimehh} + avail_time=$(echo "${availtime}" | sed 's/\([[:digit:]]\{2\}\)$/ \1/') + avail_time=$(date -d "${avail_time}") + + stamp_avail=$(date -d "${avail_time} ${loop} hours" +%s) + + hourDiff=$(echo "($stampcycle - $stamp_avail) / (60 * 60 )" | bc); + if [[ ${stampcycle} -lt ${stamp_avail} ]]; then + hourDiff=$(echo "($stamp_avail - $stampcycle) / (60 * 60 )" | bc); + fi + + if [[ ${hourDiff} -lt ${minHourDiff} ]]; then + minHourDiff=${hourDiff} + enkfcstname=${availtimeyy}${availtimejjj}${availtimehh}00.gdas.t${availtimehh}z.atmf${loop} + foundens=true + fi + done + done + + if [ $foundens ]; then + ls ${ENKF_FCST}/${enkfcstname}.mem0??.${ens_type} >> filelist03 + fi + +esac # #----------------------------------------------------------------------- @@ -268,7 +265,7 @@ ifhyb=.false. # Determine if hybrid option is available memname='atmf009' -nummem=`more filelist03 | wc -l` +nummem=$(more filelist03 | wc -l) nummem=$((nummem - 3 )) if [[ ${nummem} -eq 80 ]]; then print_info_msg "$VERBOSE" "Do hybrid with ${memname}" @@ -276,7 +273,6 @@ if [[ ${nummem} -eq 80 ]]; then print_info_msg "$VERBOSE" " Cycle ${YYYYMMDDHH}: GSI hybrid uses ${memname} with n_ens=${nummem}" fi - # #----------------------------------------------------------------------- # @@ -293,7 +289,7 @@ cp_vrfy ${fixgriddir}/fv3_grid_spec fv3_grid_spec if [ ${BKTYPE} -eq 1 ]; then # cold start uses background from INPUT cp_vrfy ${bkpath}/gfs_data.tile7.halo0.nc gfs_data.tile7.halo0.nc_b - ${NCKS} -A -v phis ${fixgriddir}/phis.nc gfs_data.tile7.halo0.nc_b + ncks -A -v phis ${fixgriddir}/phis.nc gfs_data.tile7.halo0.nc_b cp_vrfy ${bkpath}/sfc_data.tile7.halo0.nc fv3_sfcdata cp_vrfy gfs_data.tile7.halo0.nc_b fv3_dynvars @@ -326,13 +322,27 @@ if [[ ${HH} -eq '00' || ${HH} -eq '12' ]]; then obs_source=rap_e fi -obs_files_source[0]=${OBSPATH}/${YYYYMMDDHH}.${obs_source}.t${HH}z.prepbufr.tm00 +case $MACHINE in + +"WCOSS_C" | "WCOSS" | "WCOSS_DELL_P3") + obsfileprefix=${obs_source} + obspath_tmp=${OBSPATH}/${obs_source}.${YYYYMMDD} + + ;; +"JET") + obsfileprefix=${YYYYMMDDHH}.${obs_source} + obspath_tmp=${OBSPATH} + +esac + + +obs_files_source[0]=${obspath_tmp}/${obsfileprefix}.t${HH}z.prepbufr.tm00 obs_files_target[0]=prepbufr -obs_files_source[1]=${OBSPATH}/${YYYYMMDDHH}.${obs_source}.t${HH}z.satwnd.tm00.bufr_d +obs_files_source[1]=${obspath_tmp}/${obsfileprefix}.t${HH}z.satwnd.tm00.bufr_d obs_files_target[1]=satwndbufr -obs_files_source[2]=${OBSPATH}/${YYYYMMDDHH}.${obs_source}.t${HH}z.nexrad.tm00.bufr_d +obs_files_source[2]=${obspath_tmp}/${obsfileprefix}.t${HH}z.nexrad.tm00.bufr_d obs_files_target[2]=l2rwbufr obs_number=${#obs_files_source[@]} @@ -427,7 +437,7 @@ ln -s $cldcoef ./CloudCoeff.bin # Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do +for file in $(awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq) ;do ln -s ${CRTMFIX}/${file}.SpcCoeff.bin ./ ln -s ${CRTMFIX}/${file}.TauCoeff.bin ./ done @@ -558,9 +568,9 @@ esac if [ $binary_diag = ".true." ]; then listall="conv hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep sndr_g11_prep sndr_g12_prep sndr_g13_prep sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g11 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm sbuv2_n16 sbuv2_n17 sbuv2_n18 omi_aura ssmi_f13 ssmi_f14 ssmi_f15 hirs4_n18 hirs4_metop-a amsua_n18 amsua_metop-a mhs_n18 mhs_metop-a amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a" for type in $listall; do - count=`ls pe*.${type}_${loop} | wc -l` + count=$(ls pe*.${type}_${loop} | wc -l) if [[ $count -gt 0 ]]; then - `cat pe*.${type}_${loop} > diag_${type}_${string}.${YYYYMMDDHH}` + $(cat pe*.${type}_${loop} > diag_${type}_${string}.${YYYYMMDDHH}) fi done fi @@ -582,7 +592,7 @@ if [ $netcdf_diag = ".true." ]; then fi for type in $listallnc; do - count=`ls pe*.${type}_${loop}.nc4 | wc -l` + count=$(ls pe*.${type}_${loop}.nc4 | wc -l) if [[ $count -gt 0 ]]; then ./ncdiag_cat.x -o ncdiag_${type}_${string}.nc4.${YYYYMMDDHH} pe*.${type}_${loop}.nc4 fi diff --git a/ush/config.sh.RRFS_AK_dev1 b/ush/config.sh.RRFS_AK_dev1 index 8889e95f0..a8fbd8b35 100644 --- a/ush/config.sh.RRFS_AK_dev1 +++ b/ush/config.sh.RRFS_AK_dev1 @@ -28,6 +28,8 @@ PREEXISTING_DIR_METHOD="rename" PREDEF_GRID_NAME=RRFS_AK_3km DO_DACYCLE="true" +#DO_RETRO="true" +#LBCS_ICS_ONLY="true" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_HRRR" @@ -39,18 +41,39 @@ LBC_SPEC_INTVL_HRS="1" EXTRN_MDL_LBCS_OFFSET_HRS="0" EXTRN_MDL_LBCS_SEARCH_OFFSET_HRS="0" -#CYCLEDAY="1-4" +DATE_FIRST_CYCL="20210401" +DATE_LAST_CYCL="20211231" +CYCL_HRS=( "00" "12" ) CYCLEMONTH="5-7" -INITIAL_CYCLEDEF="00 09,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -BOUNDARY_CYCLEDEF="00 00-02,04-08,10-14,16-20,22,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -BOUNDARY_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -PREP_COLDSTART_CYCLEDEF="00 09,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -PREP_WARMSTART_CYCLEDEF="00 00-08,10-20,22,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -ANALYSIS_CYCLEDEF="00 00-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -FORECAST_CYCLEDEF="00 00-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -POSTPROC_CYCLEDEF="00 00-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -POSTPROC_LONG_CYCLEDEF="00 00-23/03 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -ARCHIVE_CYCLEDEF="00 07 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" +#CYCLEDAY="1-4" + +if [[ $DO_RETRO == "true" ]] ; then + if [[ $LBCS_ICS_ONLY == "true" ]]; then + PREEXISTING_DIR_METHOD="rename" + INITIAL_CYCLEDEF="00 09,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_CYCLEDEF="00 00-02,04-08,10-14,16-20,22,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + else + PREEXISTING_DIR_METHOD="overwrite" + PREP_COLDSTART_CYCLEDEF="00 09,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_WARMSTART_CYCLEDEF="00 00-08,10-20,22,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ANALYSIS_CYCLEDEF="00 00-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_LONG_CYCLEDEF="00 00-23/03 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + fi +else + INITIAL_CYCLEDEF="00 09,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_CYCLEDEF="00 00-02,04-08,10-14,16-20,22,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_COLDSTART_CYCLEDEF="00 09,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_WARMSTART_CYCLEDEF="00 00-08,10-20,22,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ANALYSIS_CYCLEDEF="00 00-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_LONG_CYCLEDEF="00 00-23/03 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ARCHIVE_CYCLEDEF="00 07 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" +fi FCST_LEN_HRS="18" POSTPROC_LEN_HRS="3" @@ -74,11 +97,7 @@ if [[ -n $RESERVATION ]] ; then fi WTIME_RUN_FCST="03:00:00" -DT_ATMOS=20 - -DATE_FIRST_CYCL="20210401" -DATE_LAST_CYCL="20211231" -CYCL_HRS=( "00" "12" ) +DT_ATMOS=30 EXTRN_MDL_NAME_ICS="RAP" EXTRN_MDL_NAME_LBCS="RAP" diff --git a/ush/config.sh.RRFS_NA_13km b/ush/config.sh.RRFS_NA_13km index 5fb4faf77..280cb686c 100644 --- a/ush/config.sh.RRFS_NA_13km +++ b/ush/config.sh.RRFS_NA_13km @@ -29,6 +29,8 @@ PREDEF_GRID_NAME=GSD_RAP13km ADDNL_OUTPUT_GRIDS=( "130" "242" ) DO_DACYCLE="true" +#DO_RETRO="true" +#LBCS_ICS_ONLY="true" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_RAP" @@ -40,17 +42,37 @@ LBC_SPEC_INTVL_HRS="1" EXTRN_MDL_LBCS_OFFSET_HRS="0" EXTRN_MDL_LBCS_SEARCH_OFFSET_HRS="0" -#CYCLEDAY="1-4" +DATE_FIRST_CYCL="20210419" +DATE_LAST_CYCL="20220419" +CYCL_HRS=( "00" "06" "12" "18" ) CYCLEMONTH="5-7" -INITIAL_CYCLEDEF="00 03,15 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -BOUNDARY_CYCLEDEF="00 00,06,12,18 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -PREP_COLDSTART_CYCLEDEF="00 03,15 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -PREP_WARMSTART_CYCLEDEF="00 00-02,04-14,16-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -FORECAST_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -POSTPROC_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -POSTPROC_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -ARCHIVE_CYCLEDEF="00 07 * * 2021 *" +#CYCLEDAY="1-4" + +if [[ $DO_RETRO == "true" ]] ; then + if [[ $LBCS_ICS_ONLY == "true" ]]; then + PREEXISTING_DIR_METHOD="rename" + INITIAL_CYCLEDEF="00 03,15 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_CYCLEDEF="00 00,06,12,18 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + else + PREEXISTING_DIR_METHOD="overwrite" + PREP_COLDSTART_CYCLEDEF="00 03,15 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_WARMSTART_CYCLEDEF="00 00-02,04-14,16-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + fi +else + INITIAL_CYCLEDEF="00 03,15 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_CYCLEDEF="00 00,06,12,18 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_COLDSTART_CYCLEDEF="00 03,15 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_WARMSTART_CYCLEDEF="00 00-02,04-14,16-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ARCHIVE_CYCLEDEF="00 07 * * 2021 *" +fi FCST_LEN_HRS="21" POSTPROC_LEN_HRS="21" @@ -69,10 +91,6 @@ WTIME_MAKE_LBCS="02:30:00" NNODES_RUN_POST="1" -DATE_FIRST_CYCL="20210419" -DATE_LAST_CYCL="20220419" -CYCL_HRS=( "00" "06" "12" "18" ) - EXTRN_MDL_NAME_ICS="FV3GFS" EXTRN_MDL_NAME_LBCS="FV3GFS" diff --git a/ush/config.sh.RRFS_NA_3km b/ush/config.sh.RRFS_NA_3km index ae29b516e..1a153aa7d 100644 --- a/ush/config.sh.RRFS_NA_3km +++ b/ush/config.sh.RRFS_NA_3km @@ -30,6 +30,8 @@ PREEXISTING_DIR_METHOD="rename" PREDEF_GRID_NAME=RRFS_NA_3km DO_DACYCLE="FALSE" +#DO_RETRO="true" +#LBCS_ICS_ONLY="true" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_HRRR" @@ -41,17 +43,37 @@ LBC_SPEC_INTVL_HRS="3" EXTRN_MDL_LBCS_OFFSET_HRS="6" EXTRN_MDL_LBCS_SEARCH_OFFSET_HRS="0" -#CYCLEDAY="1-4" +DATE_FIRST_CYCL="20210430" +DATE_LAST_CYCL="20210430" +CYCL_HRS=( "00" ) #CYCLEMONTH="5-7" -INITIAL_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -BOUNDARY_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -PREP_COLDSTART_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -#PREP_WARMSTART_CYCLEDEF="00 00-02,04-14,16-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -#ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -FORECAST_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -POSTPROC_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -#POSTPROC_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -ARCHIVE_CYCLEDEF="00 07 * * 2021 *" +#CYCLEDAY="1-4" +# +if [[ $DO_RETRO == "true" ]] ; then + if [[ $LBCS_ICS_ONLY == "true" ]]; then + PREEXISTING_DIR_METHOD="rename" + INITIAL_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + else + PREEXISTING_DIR_METHOD="overwrite" + PREP_COLDSTART_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + #PREP_WARMSTART_CYCLEDEF="00 00-02,04-14,16-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + #ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + #POSTPROC_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + fi +else + INITIAL_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_COLDSTART_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + #PREP_WARMSTART_CYCLEDEF="00 00-02,04-14,16-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + #ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00,12 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + #POSTPROC_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ARCHIVE_CYCLEDEF="00 07 * * 2021 *" +fi FCST_LEN_HRS="30" POSTPROC_LEN_HRS="30" @@ -75,10 +97,6 @@ WTIME_RUN_FCST="08:00:00" NNODES_RUN_POST="6" -DATE_FIRST_CYCL="20210430" -DATE_LAST_CYCL="20210430" -CYCL_HRS=( "00" ) - EXTRN_MDL_NAME_ICS="FV3GFS" EXTRN_MDL_NAME_LBCS="FV3GFS" diff --git a/ush/config.sh.RRFS_dev1 b/ush/config.sh.RRFS_dev1 index bce59de8c..b3ea85d73 100644 --- a/ush/config.sh.RRFS_dev1 +++ b/ush/config.sh.RRFS_dev1 @@ -31,6 +31,8 @@ PREDEF_GRID_NAME=RRFS_CONUS_3km ADDNL_OUTPUT_GRIDS=( "hrrr" ) DO_DACYCLE="true" +#DO_RETRO="true" +#LBCS_ICS_ONLY="true" DO_NONVAR_CLDANAL="true" DO_REFL2TTEN="true" @@ -44,18 +46,39 @@ LBC_SPEC_INTVL_HRS="1" EXTRN_MDL_LBCS_OFFSET_HRS="0" EXTRN_MDL_LBCS_SEARCH_OFFSET_HRS="0" -#CYCLEDAY="1-4" +DATE_FIRST_CYCL="20210414" +DATE_LAST_CYCL="20210415" +CYCL_HRS=( "00" "12" ) CYCLEMONTH="5-7" -INITIAL_CYCLEDEF="00 10,22 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -BOUNDARY_CYCLEDEF="00 00-02/01,04-08/01,10-14/01,16-20/01,22,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -BOUNDARY_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -PREP_COLDSTART_CYCLEDEF="00 10,22 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -PREP_WARMSTART_CYCLEDEF="00 00-09/01,11-21/01,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -FORECAST_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -POSTPROC_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -POSTPROC_LONG_CYCLEDEF="00 00,06,12,18 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" -ARCHIVE_CYCLEDEF="00 07 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" +#CYCLEDAY="1-4" + +if [[ $DO_RETRO == "true" ]] ; then + if [[ $LBCS_ICS_ONLY == "true" ]]; then + PREEXISTING_DIR_METHOD="rename" + INITIAL_CYCLEDEF="00 10,22 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_CYCLEDEF="00 00-02/01,04-08/01,10-14/01,16-20/01,22,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + else + PREEXISTING_DIR_METHOD="overwrite" + PREP_COLDSTART_CYCLEDEF="00 10,22 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_WARMSTART_CYCLEDEF="00 00-09/01,11-21/01,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_LONG_CYCLEDEF="00 00,06,12,18 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + fi +else + INITIAL_CYCLEDEF="00 10,22 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_CYCLEDEF="00 00-02/01,04-08/01,10-14/01,16-20/01,22,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_LONG_CYCLEDEF="00 03,09,15,21 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_COLDSTART_CYCLEDEF="00 10,22 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_WARMSTART_CYCLEDEF="00 00-09/01,11-21/01,23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_LONG_CYCLEDEF="00 00,06,12,18 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ARCHIVE_CYCLEDEF="00 07 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" +fi FCST_LEN_HRS="18" POSTPROC_LEN_HRS="18" @@ -81,10 +104,6 @@ fi WTIME_RUN_FCST="07:45:00" WTIME_MAKE_LBCS="02:00:00" -DATE_FIRST_CYCL="20210414" -DATE_LAST_CYCL="20210415" -CYCL_HRS=( "00" "12" ) - EXTRN_MDL_NAME_ICS="HRRR" EXTRN_MDL_NAME_LBCS="RAP" diff --git a/ush/config.sh.RRFS_wcoss b/ush/config.sh.RRFS_wcoss new file mode 100644 index 000000000..8d61b4199 --- /dev/null +++ b/ush/config.sh.RRFS_wcoss @@ -0,0 +1,150 @@ +MACHINE="WCOSS_DELL_P3" +ACCOUNT="HRRR-T2O" +#RESERVATION="rrfsdet" +EXPT_BASEDIR="/gpfs/dell2/emc/modeling/noscrub/Ming.Hu/rrfs" +EXPT_SUBDIR="RRFS_dev2" + +if [[ -n $RESERVATION ]] ; then + ACCOUNT=rtrr + PARTITION_DEFAULT=kjet + PARTITION_FCST=kjet + PARTITION_GRAPHICS=kjet + PARTITION_ANALYSIS=kjet +fi + +FIXLAM_NCO_BASEDIR=/gpfs/hps3/emc/meso/save/Ming.Hu/rrfs/fix/fix_lam.20210128 +FIXgsm=/gpfs/hps3/emc/meso/save/Ming.Hu/rrfs/fix/fix_am.20210128 +GWD_HRRRsuite_BASEDIR=/gpfs/hps3/emc/meso/save/Ming.Hu/rrfs/fix/fix_lam.20210128 + +FIX_GSI=/gpfs/hps3/emc/meso/save/Ming.Hu/rrfs/fix/fix_gsi +FIX_CRTM=/gpfs/hps3/emc/meso/save/Ming.Hu/rrfs/fix/CRTM_v2.3.0 +AIRCRAFT_REJECT=${FIX_GSI} +SFCOBS_USELIST=${FIX_GSI} + +VERBOSE="TRUE" + +RUN_ENVIR="nco" +PREEXISTING_DIR_METHOD="rename" + +PREDEF_GRID_NAME=RRFS_CONUS_3km + +DO_DACYCLE="true" +#DO_RETRO="true" +#LBCS_ICS_ONLY="true" + +QUILTING="TRUE" +CCPP_PHYS_SUITE="FV3_HRRR" + +EXTRN_MDL_ICS_OFFSET_HRS="3" +BOUNDARY_LEN_HRS="24" +BOUNDARY_LONG_LEN_HRS="01" +LBC_SPEC_INTVL_HRS="1" +EXTRN_MDL_LBCS_OFFSET_HRS="0" +EXTRN_MDL_LBCS_SEARCH_OFFSET_HRS="3" + +DATE_FIRST_CYCL="20210510" +DATE_LAST_CYCL="20210511" +CYCLEMONTH="5" +CYCLEDAY="12" +CYCL_HRS=( "00" "12" ) +if [[ $DO_RETRO == "true" ]] ; then + if [[ $LBCS_ICS_ONLY == "true" ]]; then + PREEXISTING_DIR_METHOD="rename" + INITIAL_CYCLEDEF="${DATE_FIRST_CYCL}0300 ${DATE_LAST_CYCL}2300 12:00:00" + BOUNDARY_CYCLEDEF="${DATE_FIRST_CYCL}0000 ${DATE_LAST_CYCL}2300 06:00:00" + else + PREEXISTING_DIR_METHOD="overwrite" + PREP_COLDSTART_CYCLEDEF="00 03,15 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_WARMSTART_CYCLEDEF="00 00-02,04-14,16-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_LONG_CYCLEDEF="00 00,06,12,18 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + fi +else + INITIAL_CYCLEDEF="00 03,15 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + BOUNDARY_CYCLEDEF="00 00,06,12,18 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_COLDSTART_CYCLEDEF="00 03,15 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + PREP_WARMSTART_CYCLEDEF="00 00-02,04-14,16-23 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ANALYSIS_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + FORECAST_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_CYCLEDEF="00 00-23/01 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + POSTPROC_LONG_CYCLEDEF="00 00,06,12,18 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" + ARCHIVE_CYCLEDEF="00 07 ${CYCLEDAY} ${CYCLEMONTH} 2021 *" +fi + +FCST_LEN_HRS="12" +POSTPROC_LEN_HRS="3" +POSTPROC_LONG_LEN_HRS="12" +FCST_LEN_HRS_CYCLES=(12 3 3 06 3 3 12 3 3 6 3 3 12 3 3 6 3 3 12 3 3 6 3 3) +for i in {0..23}; do FCST_LEN_HRS_CYCLES[$i]=3; done +for i in {0..23..6}; do FCST_LEN_HRS_CYCLES[$i]=12; done +DA_CYCLE_INTERV="1" +RESTART_INTERVAL="1 2 3 4 5 6" + +NCORES_RUN_ANAL=240 +QUEUE_ANALYSIS="dev" +QUEUE_HPSS="dev" +HALO_BLEND=10 + +if [[ -n $RESERVATION ]] ; then + NNODES_MAKE_LBCS="3" + PPN_MAKE_ICS="20" + NNODES_MAKE_LBCS="3" + PPN_MAKE_LBCS="20" + NNODES_RUN_POST="1" + PPN_RUN_POST="40" +fi + +WTIME_RUN_FCST="02:45:00" + +EXTRN_MDL_NAME_ICS="FV3GFS" +EXTRN_MDL_NAME_LBCS="FV3GFS" +FV3GFS_FILE_FMT_ICS="grib2" +FV3GFS_FILE_FMT_LBCS="grib2" + +envir="para" + +NET="RRFS_CONUS" +TAG="RRFS_dev2_CONUS" + +OBSPATH="/gpfs/hps/nco/ops/com/rap/prod" +ENKF_FCST="/gpfs/dell1/nco/ops/com/gfs/prod" +#USE_CUSTOM_POST_CONFIG_FILE="TRUE" +#CUSTOM_POST_CONFIG_FP="/mnt/lfs4/BMC/nrtrr/RRFS/dev1-ufs-srweather-app/src/EMC_post/parm/postxconfig-NT-fv3lam_rrfs.txt" +ARCHIVEDIR="/5year/BMC/wrfruc/rrfs_dev1" +NCARG_ROOT="/apps/ncl/6.5.0-CentOS6.10_64bit_nodap_gnu447" +NCL_HOME="/gpfs/hps3/ptmp/Ming.Hu/ptmp" +NCL_REGION="conus" +MODEL="RRFS_dev2" + +# +# In NCO mode, the following don't need to be explicitly set to "FALSE" +# in this configuration file because the experiment generation script +# will do this (along with printing out an informational message). +# +#RUN_TASK_MAKE_GRID="FALSE" +#RUN_TASK_MAKE_OROG="FALSE" +#RUN_TASK_MAKE_SFC_CLIMO="FALSE" + +RUN="RRFS_dev2" +COMINgfs="" + +STMP="/gpfs/hps3/ptmp/Ming.Hu/stmp" # Path to directory STMP that mostly contains input files. +PTMP="/gpfs/hps3/ptmp/Ming.Hu/ptmp" # Path to directory STMP that mostly contains input files. + +# +# In NCO mode, the user must manually (e.g. after doing the build step) +# create the symlink "${FIXrrfs}/fix_sar" that points to EMC's FIXLAM +# directory on the machine. For example, on hera, the symlink's target +# needs to be +# +# /scratch2/NCEPDEV/fv3-cam/emc.campara/fix_fv3cam/fix_sar +# +# The experiment generation script will then set FIXLAM to +# +# FIXLAM="${FIXrrfs}/fix_lam/${EMC_GRID_NAME}" +# +# where EMC_GRID_NAME has the value set above. +# + diff --git a/ush/config_defaults.sh b/ush/config_defaults.sh index 4d2314a94..4d7e48e2a 100644 --- a/ush/config_defaults.sh +++ b/ush/config_defaults.sh @@ -1610,7 +1610,12 @@ DO_DACYCLE="FALSE" # DO_RETRO: # Flag turn on the retrospective experiments. # +# LBCS_ICS_ONLY: +# Flag turn on the runs prepare boundary and cold start initial conditions in +# retrospective experiments. +# DO_RETRO="FALSE" +LBCS_ICS_ONLY="FALSE" # #----------------------------------------------------------------------- # diff --git a/ush/get_extrn_mdl_file_dir_info.sh b/ush/get_extrn_mdl_file_dir_info.sh index 76e3c4dc5..f924990e7 100755 --- a/ush/get_extrn_mdl_file_dir_info.sh +++ b/ush/get_extrn_mdl_file_dir_info.sh @@ -391,9 +391,9 @@ fi if [ "${MACHINE}" = "JET" ]; then fns_on_disk=( "${yy}${ddd}${hh}0${fcst_mn}0${fcst_hh}" ) else - fns_on_disk=( "gfs.t${hh}z.pgrb2.0p25.f${fcst_hh}" ) # Get only 0.25 degree files for now. + fns_on_disk=( "gfs.t${hh}z.pgrb2.0p25.f0${fcst_hh}" "gfs.t${hh}z.sfcf0${fcst_hh}.nc") # use netcdf fi - fns_in_arcv=( "gfs.t${hh}z.pgrb2.0p25.f${fcst_hh}" ) # Get only 0.25 degree files for now. + fns_in_arcv=( "gfs.t${hh}z.pgrb2.0p25.f0${fcst_hh}" ) # Get only 0.25 degree files for now. fi ;; @@ -603,10 +603,10 @@ has not been specified for this external model and machine combination: "FV3GFS") case "$MACHINE" in "WCOSS_CRAY") - sysdir="$sysbasedir/gfs.${yyyymmdd}/${hh}" + sysdir="$sysbasedir/gfs.${yyyymmdd}/${hh}/atmos" ;; "WCOSS_DELL_P3") - sysdir="$sysbasedir/gfs.${yyyymmdd}/${hh}" + sysdir="$sysbasedir/gfs.${yyyymmdd}/${hh}/atmos" ;; "HERA") sysdir="$sysbasedir/gfs.${yyyymmdd}/${hh}" diff --git a/ush/launch_FV3LAM_wflow.sh b/ush/launch_FV3LAM_wflow.sh index 8d42ab976..46b08b1f4 100755 --- a/ush/launch_FV3LAM_wflow.sh +++ b/ush/launch_FV3LAM_wflow.sh @@ -100,7 +100,7 @@ elif [ "$MACHINE" = "WCOSS_DELL_P3" ]; then module purge module load lsf/10.1 module use /gpfs/dell3/usrx/local/dev/emc_rocoto/modulefiles/ - module load ruby/2.5.1 rocoto/1.2.4 + module load ruby/2.5.1 rocoto/1.3.0rc2 #rocoto/1.2.4 elif [ "$MACHINE" = "WCOSS_CRAY" ]; then module purge module load xt-lsfhpc/9.1.3 diff --git a/ush/templates/FV3LAM_wflow.xml b/ush/templates/FV3LAM_wflow.xml index b586d2095..981cb1a68 100644 --- a/ush/templates/FV3LAM_wflow.xml +++ b/ush/templates/FV3LAM_wflow.xml @@ -125,18 +125,30 @@ tasks; and the "FCST" type is used for the RUN_FCST_TN task. +{%- if do_retro %} + + + + + + +{% else %} @Y@m@d@H@M'> @Y@m@d@H@M'> @Y@m@d@H@M'> @Y@m@d@H@M'> @Y@m@d@H@M'> @Y@m@d@H@M'> - +{% endif %} ]> +{%- if do_retro %} + +{% else %} +{%- endif %} {# Double quotes are required inside the strftime! Expect an error from reading the template if using single quotes. #} {{ at_start_cycledef }} @@ -306,7 +318,11 @@ MODULES_RUN_TASK_FP script. ICS_OR_LBCSICS + {%- if machine in ["WCOSS_DELL_P3", "WCOSS_CRAY"] %} + {{ extrn_mdl_sysbasedir_ics }}/gfs.@Y@m@d/@H/atmos/gfs.t@Hz.pgrb2.0p25.f{{ "%03d" % extrn_mdl_ics_offset_hrs }} + {% else %} {{ extrn_mdl_sysbasedir_ics }}/@y@j@H000{{ "%03d" % extrn_mdl_ics_offset_hrs }} + {%- endif %} @@ -342,7 +358,11 @@ MODULES_RUN_TASK_FP script. {%- for h in range(extrn_mdl_lbcs_offset_hrs, boundary_len_hrs+extrn_mdl_lbcs_offset_hrs+1, bc_update_interval) %} + {%- if machine in ["WCOSS_DELL_P3", "WCOSS_CRAY"] %} + {{ extrn_mdl_sysbasedir_ics }}/gfs.@Y@m@d/@H/atmos/gfs.t@Hz.pgrb2.0p25.f{{ "%03d" % h }} + {%- else %} {{ extrn_mdl_sysbasedir_lbcs }}/@y@j@H000{{ "%03d" % h }} + {%- endif %} {%- endfor %} @@ -380,7 +400,11 @@ MODULES_RUN_TASK_FP script. {%- for h in range(extrn_mdl_lbcs_offset_hrs, boundary_long_len_hrs+extrn_mdl_lbcs_offset_hrs+1, bc_update_interval) %} + {%- if machine in ["WCOSS_DELL_P3", "WCOSS_CRAY"] %} + {{ extrn_mdl_sysbasedir_ics }}/gfs.@Y@m@d/@H/atmos/gfs.t@Hz.pgrb2.0p25.f{{ "%03d" % h }} + {%- else %} {{ extrn_mdl_sysbasedir_lbcs }}/@y@j@H000{{ "%03d" % h }} + {%- endif %} {%- endfor %} @@ -513,6 +537,9 @@ MODULES_RUN_TASK_FP script. BKTYPE1 +{%- if do_retro %} + &FG_ROOT;/@Y@m@d@H/ics/gfs_data.tile7.halo0.nc +{% else %} @Y@m@d@H@M00 @@ -520,6 +547,7 @@ MODULES_RUN_TASK_FP script. {%- endif %} +{%- endif %} @@ -550,6 +578,9 @@ MODULES_RUN_TASK_FP script. BKTYPE0 +{%- if do_retro %} + &FG_ROOT;/@Y@m@d@H/fcst_fv3lam/dynf00{{ da_cycle_interval_hrs }}.nc +{% else %} @Y@m@d@H@M00 @@ -564,6 +595,7 @@ MODULES_RUN_TASK_FP script. +{%- endif %} @@ -859,6 +891,7 @@ MODULES_RUN_TASK_FP script. {% endif %} +{%- if machine in ["JET", "HERA"] %}