From 27239064867636191314b090d3d7dc2f7571fa02 Mon Sep 17 00:00:00 2001 From: "Ming.Hu" Date: Wed, 28 Apr 2021 22:58:05 +0000 Subject: [PATCH 01/12] Cold start RRFS_dev1 3km CONUS hourly cycles from 09/21Z HRRR analysis. --- ush/config.sh.RRFS_dev1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ush/config.sh.RRFS_dev1 b/ush/config.sh.RRFS_dev1 index a962195ef..ba62b3cc8 100644 --- a/ush/config.sh.RRFS_dev1 +++ b/ush/config.sh.RRFS_dev1 @@ -41,11 +41,11 @@ LBC_SPEC_INTVL_HRS="1" EXTRN_MDL_LBCS_OFFSET_HRS="0" EXTRN_MDL_LBCS_SEARCH_OFFSET_HRS="0" -INITIAL_CYCLEDEF="00 00,12 * * 2021 *" +INITIAL_CYCLEDEF="00 09,21 * * 2021 *" BOUNDARY_CYCLEDEF="00 00-02/01,04-08/01,10-14/01,16-20/01,22,23 * * 2021 *" BOUNDARY_LONG_CYCLEDEF="00 03,09,15,21 * * 2021 *" -PREP_COLDSTART_CYCLEDEF="00 00,12 * * 2021 *" -PREP_WARMSTART_CYCLEDEF="00 01-11/01,13-23/01 * * 2021 *" +PREP_COLDSTART_CYCLEDEF="00 09,21 * * 2021 *" +PREP_WARMSTART_CYCLEDEF="00 00-08/01,10-20/01,22-23/01 * * 2021 *" ANALYSIS_CYCLEDEF="00 00-23/01 * * 2021 *" FORECAST_CYCLEDEF="00 00-23/01 * * 2021 *" ARCHIVE_CYCLEDEF="00 07 * * 2021 *" From 1a36dbde23b8f3957b3f10021bd2623a837a3a3f Mon Sep 17 00:00:00 2001 From: "Ming.Hu" Date: Thu, 29 Apr 2021 05:45:59 +0000 Subject: [PATCH 02/12] Changes for running on RRFS cycles on WCOSS. --- scripts/exregional_make_ics.sh | 2 + scripts/exregional_run_analysis.sh | 76 ++++++++---------- ush/config.sh.RRFS_wcoss | 122 +++++++++++++++++++++++++++++ ush/get_extrn_mdl_file_dir_info.sh | 9 ++- ush/launch_FV3LAM_wflow.sh | 2 +- ush/templates/FV3LAM_wflow.xml | 16 ++++ 6 files changed, 177 insertions(+), 50 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 599823702..16ec5ae78 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}" @@ -222,18 +208,14 @@ 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` + 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 @@ -242,16 +224,19 @@ for loop in $loops; do if [[ ${hourDiff} -lt ${minHourDiff} ]]; then minHourDiff=${hourDiff} - enkfcstname=${availtimeyy}${availtimejjj}${availtimehh}00.gdas.t${availtimehh}z.atmf${loop} + enkfcstname=gdas.t${availtimehh}z.atmf${loop} + EYYYYMMDD=$(echo ${availtime} | cut -c1-8) + EHH=$(echo ${availtime} | cut -c9-10) foundens=true fi done done -if [ $foundens ]; then - ls ${ENKF_FCST}/${enkfcstname}.mem0??.${ens_type} >> filelist03 +if [ ${foundens} ] +then + ls ${ENKF_FCST}/enkfgdas.${EYYYYMMDD}/${EHH}/atmos/mem???/${enkfcstname}.nc > filelist03 else - cat "no ens found" >> filelist03 + more "no enkfgdas file " > filelist03 fi # @@ -276,6 +261,7 @@ if [[ ${nummem} -eq 80 ]]; then print_info_msg "$VERBOSE" " Cycle ${YYYYMMDDHH}: GSI hybrid uses ${memname} with n_ens=${nummem}" fi +ifhyb=.false. # #----------------------------------------------------------------------- @@ -293,7 +279,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 @@ -322,13 +308,13 @@ sed -i "s/hh/${HH}/" coupler.res # #----------------------------------------------------------------------- -obs_files_source[0]=${OBSPATH}/${YYYYMMDDHH}.rap.t${HH}z.prepbufr.tm00 +obs_files_source[0]=${OBSPATH}/rap.${YYYYMMDD}/rap.t${HH}z.prepbufr.tm00 obs_files_target[0]=prepbufr -obs_files_source[1]=${OBSPATH}/${YYYYMMDDHH}.rap.t${HH}z.satwnd.tm00.bufr_d +obs_files_source[1]=${OBSPATH}/rap.${YYYYMMDD}/rap.t${HH}z.satwnd.tm00.bufr_d obs_files_target[1]=satwndbufr -obs_files_source[2]=${OBSPATH}/${YYYYMMDDHH}.rap.t${HH}z.nexrad.tm00.bufr_d +obs_files_source[2]=${OBSPATH}/rap.${YYYYMMDD}/rap.t${HH}z.nexrad.tm00.bufr_d obs_files_target[2]=l2rwbufr obs_number=${#obs_files_source[@]} diff --git a/ush/config.sh.RRFS_wcoss b/ush/config.sh.RRFS_wcoss new file mode 100644 index 000000000..d1cd4df7c --- /dev/null +++ b/ush/config.sh.RRFS_wcoss @@ -0,0 +1,122 @@ +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 + +VERBOSE="TRUE" + +RUN_ENVIR="nco" +PREEXISTING_DIR_METHOD="rename" + +PREDEF_GRID_NAME=RRFS_CONUS_3km + +DO_DACYCLE="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="0" +INITIAL_CYCLEDEF="00 03,15 21-25 04 2021 *" +BOUNDARY_CYCLEDEF="00 00,06,12,18 21-25 04 2021 *" +#BOUNDARY_LONG_CYCLEDEF="00 00,09,15,21 * * 2021 *" +PREP_COLDSTART_CYCLEDEF="00 03,15 21-25 04 2021 *" +PREP_WARMSTART_CYCLEDEF="00 00-02/01,04-14/01,16-23/01 21-25 04 2021 *" +ANALYSIS_CYCLEDEF="00 00-23/01 21-25 04 2021 *" +FORECAST_CYCLEDEF="00 00-23/01 21-25 04 2021 *" + +FCST_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) +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" + +DATE_FIRST_CYCL="20210413" +DATE_LAST_CYCL="20210415" +CYCL_HRS=( "00" "12" ) + +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/get_extrn_mdl_file_dir_info.sh b/ush/get_extrn_mdl_file_dir_info.sh index 76e3c4dc5..914fa24f7 100755 --- a/ush/get_extrn_mdl_file_dir_info.sh +++ b/ush/get_extrn_mdl_file_dir_info.sh @@ -391,9 +391,10 @@ 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.f000") # 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 +604,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 9d3d0b1d5..5d299003f 100644 --- a/ush/templates/FV3LAM_wflow.xml +++ b/ush/templates/FV3LAM_wflow.xml @@ -303,7 +303,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 %} @@ -339,7 +343,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 %} @@ -377,7 +385,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 %} @@ -855,6 +867,7 @@ MODULES_RUN_TASK_FP script. {% endif %} +{%- if machine in ["JET", "HERA"] %} - -{%- if do_dacycle %} - &RSRV_ANALYSIS; @@ -813,15 +818,58 @@ MODULES_RUN_TASK_FP script. + - {% for h in range(0, fcst_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + {% for h in range(0, postproc_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} - + + + &RSRV_DEFAULT; + &WALL_LIMIT_POST; + &LOAD_MODULES_RUN_TASK_FP; "&RUN_POST_TN;" "&JOBSDIR;/JREGIONAL_RUN_POST" + {{ nnodes_run_post }}:ppn={{ ppn_run_post }} + {{ wtime_run_post }} + &NCORES_PER_NODE; + &TAG;_&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr# + &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr#_@Y@m@d@H.log + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + CDATE@Y@m@d@H + CYCLE_DIR&CYCLE_BASEDIR;/@Y@m@d@H + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + cyc@H + fhr#fhr# + + + + &CYCLE_BASEDIR;/@Y@m@d@H/fcst_fv3lam{{ slash_ensmem_subdir }}/dynf#fhr#.nc + &CYCLE_BASEDIR;/@Y@m@d@H/fcst_fv3lam{{ slash_ensmem_subdir }}/phyf#fhr#.nc + + + + + + + +{% if do_ensemble %} + +{% endif %} + + + + + {% for h in range(0, postproc_long_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + + &RSRV_DEFAULT; &WALL_LIMIT_POST; @@ -881,7 +929,10 @@ MODULES_RUN_TASK_FP script. GRAPHICS_TYPEskewts - + + + + @@ -891,9 +942,9 @@ MODULES_RUN_TASK_FP script. --> - {% for h in range(0, fcst_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + {% for h in range(0, postproc_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} - + &RSRV_GRAPHICS; &WALL_LIMIT_GRAPHICS; @@ -917,15 +968,47 @@ MODULES_RUN_TASK_FP script. + + + + {% for h in range(0, postproc_long_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + + + + &RSRV_GRAPHICS; + &WALL_LIMIT_GRAPHICS; + + &JOBSDIR;/../scripts/exregional_run_ncl.ksh + 00:30:00 + 24G + 16 + &TAG;_&RUN_NCL_TN;_#fhr# + &LOGDIR;/&RUN_NCL_TN;_#fhr#_@Y@m@d@H.log + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + START_TIME@Y@m@d@H + FCST_TIME#fhr# + + + + + + + + + - {% for h in range(0, fcst_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + {% for h in range(0, postproc_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} - + &RSRV_GRAPHICS; &WALL_LIMIT_GRAPHICS; @@ -953,6 +1036,42 @@ MODULES_RUN_TASK_FP script. + + + + {% for h in range(0, postproc_long_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + + + + &RSRV_GRAPHICS; + &WALL_LIMIT_GRAPHICS; + + &JOBSDIR;/../scripts/exregional_run_ncl_zip.ksh + 1 + 00:15:00 + 2G + &TAG;_&RUN_NCL_ZIP_TN;_#fhr# + &LOGDIR;/&RUN_NCL_ZIP_TN;_#fhr#_@Y@m@d@H.log + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + START_TIME@Y@m@d@H + FCST_TIME#fhr# + + + + + + + + + + + + + - {% for h in range(0, postproc_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} - - - - &RSRV_DEFAULT; - &WALL_LIMIT_POST; - &LOAD_MODULES_RUN_TASK_FP; "&RUN_POST_TN;" "&JOBSDIR;/JREGIONAL_RUN_POST" - {{ nnodes_run_post }}:ppn={{ ppn_run_post }} - {{ wtime_run_post }} - &NCORES_PER_NODE; - &TAG;_&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr# - &LOGDIR;/&RUN_POST_TN;{{ uscore_ensmem_name }}_f#fhr#_@Y@m@d@H.log - - GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; - PDY@Y@m@d - CDATE@Y@m@d@H - CYCLE_DIR&CYCLE_BASEDIR;/@Y@m@d@H - SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} - cyc@H - fhr#fhr# - - - - &CYCLE_BASEDIR;/@Y@m@d@H/fcst_fv3lam{{ slash_ensmem_subdir }}/dynf#fhr#.nc - &CYCLE_BASEDIR;/@Y@m@d@H/fcst_fv3lam{{ slash_ensmem_subdir }}/phyf#fhr#.nc - - - - - - - -{% if do_ensemble %} - -{% endif %} - - - - {% for h in range(0, postproc_long_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + {% for h in range(0, postproc_len_hrs+1) %}{{ " normal" }}{% endfor %} {% for h in range(postproc_len_hrs+1, postproc_long_len_hrs+1) %}{{ " long" }}{% endfor %} - + &RSRV_DEFAULT; &WALL_LIMIT_POST; @@ -929,10 +885,7 @@ MODULES_RUN_TASK_FP script. GRAPHICS_TYPEskewts - - - - + @@ -942,41 +895,10 @@ MODULES_RUN_TASK_FP script. --> - {% for h in range(0, postproc_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} - - - - &RSRV_GRAPHICS; - &WALL_LIMIT_GRAPHICS; - - &JOBSDIR;/../scripts/exregional_run_ncl.ksh - 00:30:00 - 24G - 16 - &TAG;_&RUN_NCL_TN;_#fhr# - &LOGDIR;/&RUN_NCL_TN;_#fhr#_@Y@m@d@H.log - - GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; - START_TIME@Y@m@d@H - FCST_TIME#fhr# - - - - - - - - - - - - {% for h in range(0, postproc_long_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + {% for h in range(0, postproc_len_hrs+1) %}{{ " normal" }}{% endfor %} {% for h in range(postproc_len_hrs+1, postproc_long_len_hrs+1) %}{{ " long" }}{% endfor %} - + &RSRV_GRAPHICS; &WALL_LIMIT_GRAPHICS; @@ -993,7 +915,7 @@ MODULES_RUN_TASK_FP script. FCST_TIME#fhr# - + @@ -1006,9 +928,10 @@ MODULES_RUN_TASK_FP script. --> - {% for h in range(0, postproc_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + {% for h in range(0, postproc_long_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} + {% for h in range(0, postproc_len_hrs+1) %}{{ " normal" }}{% endfor %} {% for h in range(postproc_len_hrs+1, postproc_long_len_hrs+1) %}{{ " long" }}{% endfor %} - + &RSRV_GRAPHICS; &WALL_LIMIT_GRAPHICS; @@ -1036,42 +959,6 @@ MODULES_RUN_TASK_FP script. - - - - {% for h in range(0, postproc_long_len_hrs+1) %}{{ " %03d" % h }}{% endfor %} - - - - &RSRV_GRAPHICS; - &WALL_LIMIT_GRAPHICS; - - &JOBSDIR;/../scripts/exregional_run_ncl_zip.ksh - 1 - 00:15:00 - 2G - &TAG;_&RUN_NCL_ZIP_TN;_#fhr# - &LOGDIR;/&RUN_NCL_ZIP_TN;_#fhr#_@Y@m@d@H.log - - GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; - START_TIME@Y@m@d@H - FCST_TIME#fhr# - - - - - - - - - - - - - -#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..0d8340a56 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="false" +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 index d1cd4df7c..6109b4304 100644 --- a/ush/config.sh.RRFS_wcoss +++ b/ush/config.sh.RRFS_wcoss @@ -18,6 +18,8 @@ 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" @@ -27,6 +29,8 @@ 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" @@ -36,17 +40,45 @@ 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="0" -INITIAL_CYCLEDEF="00 03,15 21-25 04 2021 *" -BOUNDARY_CYCLEDEF="00 00,06,12,18 21-25 04 2021 *" -#BOUNDARY_LONG_CYCLEDEF="00 00,09,15,21 * * 2021 *" -PREP_COLDSTART_CYCLEDEF="00 03,15 21-25 04 2021 *" -PREP_WARMSTART_CYCLEDEF="00 00-02/01,04-14/01,16-23/01 21-25 04 2021 *" -ANALYSIS_CYCLEDEF="00 00-23/01 21-25 04 2021 *" -FORECAST_CYCLEDEF="00 00-23/01 21-25 04 2021 *" +EXTRN_MDL_LBCS_SEARCH_OFFSET_HRS="3" + +DATE_FIRST_CYCL="20210510" +DATE_LAST_CYCL="20210511" +CYCLEMONTH="5" +CYCLEDAY="10-11" +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" @@ -66,10 +98,6 @@ fi WTIME_RUN_FCST="02:45:00" -DATE_FIRST_CYCL="20210413" -DATE_LAST_CYCL="20210415" -CYCL_HRS=( "00" "12" ) - EXTRN_MDL_NAME_ICS="FV3GFS" EXTRN_MDL_NAME_LBCS="FV3GFS" FV3GFS_FILE_FMT_ICS="grib2" 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/templates/FV3LAM_wflow.xml b/ush/templates/FV3LAM_wflow.xml index 85cafa243..9ffff2660 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 }} @@ -525,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 @@ -532,6 +547,7 @@ MODULES_RUN_TASK_FP script. {%- endif %} +{% endif %} @@ -562,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 @@ -576,6 +595,7 @@ MODULES_RUN_TASK_FP script. +{% endif %} @@ -973,6 +993,7 @@ MODULES_RUN_TASK_FP script. {% endif %} +{%- if not do_retro %}