From d89d7d464e64a7d5a508d7911b3e1e6109c78d51 Mon Sep 17 00:00:00 2001 From: ming hu Date: Thu, 3 Oct 2024 22:38:55 +0000 Subject: [PATCH 1/5] Bug fixes found in real-time testing on WCOSS2. --- jobs/JRRFS_ANALYSIS_GSIDIAG | 5 +++-- modulefiles/tasks/wcoss2/analysis_gsi.local.lua | 1 + modulefiles/tasks/wcoss2/bufrsnd.local.lua | 2 ++ modulefiles/tasks/wcoss2/post.local.lua | 2 ++ modulefiles/tasks/wcoss2/prep_cyc.local.lua | 2 ++ scripts/exrrfs_make_lbcs.sh | 2 +- scripts/exrrfs_process_radar.sh | 1 + ush/link_fix.sh | 2 +- ush/setup.sh | 1 + ush/valid_param_vals.sh | 1 + versions/run.ver | 1 + 11 files changed, 16 insertions(+), 4 deletions(-) diff --git a/jobs/JRRFS_ANALYSIS_GSIDIAG b/jobs/JRRFS_ANALYSIS_GSIDIAG index d14d440b4..6b7cff267 100755 --- a/jobs/JRRFS_ANALYSIS_GSIDIAG +++ b/jobs/JRRFS_ANALYSIS_GSIDIAG @@ -72,8 +72,9 @@ fi export jobid=${RUN}_analysis_conv_dbz_${workname}_${envir}_${cyc} export DATA="${DATAROOT}/${jobid}" -rm -rf ${DATA} -mkdir -p ${DATA} +if [ ! -d "${DATA}" ]; then + echo "warning: ${DATA} is not existing" +fi if [ ! -d "${SATBIAS_DIR}" ]; then echo "making satbias_dir directory for cycling bias correction files" diff --git a/modulefiles/tasks/wcoss2/analysis_gsi.local.lua b/modulefiles/tasks/wcoss2/analysis_gsi.local.lua index 13d9f37f3..5a06356cb 100644 --- a/modulefiles/tasks/wcoss2/analysis_gsi.local.lua +++ b/modulefiles/tasks/wcoss2/analysis_gsi.local.lua @@ -23,3 +23,4 @@ load(pathJoin("udunits", os.getenv("udunits_ver"))) load(pathJoin("gsl", os.getenv("gsl_ver"))) load(pathJoin("nco", os.getenv("nco_ver"))) +load(pathJoin("prod_envir", os.getenv("prod_envir_ver"))) diff --git a/modulefiles/tasks/wcoss2/bufrsnd.local.lua b/modulefiles/tasks/wcoss2/bufrsnd.local.lua index 22404c80c..f2cc391b5 100644 --- a/modulefiles/tasks/wcoss2/bufrsnd.local.lua +++ b/modulefiles/tasks/wcoss2/bufrsnd.local.lua @@ -15,3 +15,5 @@ prepend_path("MODULEPATH", os.getenv("modulepath_mpi")) load(pathJoin("hdf5", os.getenv("hdf5_ver"))) load(pathJoin("netcdf", os.getenv("netcdf_ver"))) load(pathJoin("gempak", os.getenv("gempak_ver"))) + +load(pathJoin("prod_envir", os.getenv("prod_envir_ver"))) diff --git a/modulefiles/tasks/wcoss2/post.local.lua b/modulefiles/tasks/wcoss2/post.local.lua index 43273d6c8..38ce4a972 100644 --- a/modulefiles/tasks/wcoss2/post.local.lua +++ b/modulefiles/tasks/wcoss2/post.local.lua @@ -17,3 +17,5 @@ load(pathJoin("hdf5", os.getenv("hdf5_ver"))) load(pathJoin("netcdf", os.getenv("netcdf_ver"))) load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) load(pathJoin("wgrib2", os.getenv("wgrib2_ver"))) + +load(pathJoin("prod_envir", os.getenv("prod_envir_ver"))) diff --git a/modulefiles/tasks/wcoss2/prep_cyc.local.lua b/modulefiles/tasks/wcoss2/prep_cyc.local.lua index 9fad8ba69..9a485bf74 100644 --- a/modulefiles/tasks/wcoss2/prep_cyc.local.lua +++ b/modulefiles/tasks/wcoss2/prep_cyc.local.lua @@ -22,3 +22,5 @@ load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) load(pathJoin("udunits", os.getenv("udunits_ver"))) load(pathJoin("gsl", os.getenv("gsl_ver"))) load(pathJoin("nco", os.getenv("nco_ver"))) + +load(pathJoin("prod_envir", os.getenv("prod_envir_ver"))) diff --git a/scripts/exrrfs_make_lbcs.sh b/scripts/exrrfs_make_lbcs.sh index 4397d1646..17c191d5f 100755 --- a/scripts/exrrfs_make_lbcs.sh +++ b/scripts/exrrfs_make_lbcs.sh @@ -648,7 +648,7 @@ $settings" fcst_hhh_FV3LAM=`printf %3.3i $fcst_hhh` # copy results to nwges for longer time disk storage. mv gfs.bndy.nc ${DATA}/gfs_bndy.tile7.${fcst_hhh_FV3LAM}.nc - ln -s ${DATA}/gfs_bndy.tile7.${fcst_hhh_FV3LAM}.nc ${NWGES_DIR}/gfs_bndy.tile7.${fcst_hhh_FV3LAM}.nc + cpreq ${DATA}/gfs_bndy.tile7.${fcst_hhh_FV3LAM}.nc ${NWGES_DIR}/gfs_bndy.tile7.${fcst_hhh_FV3LAM}.nc fi done diff --git a/scripts/exrrfs_process_radar.sh b/scripts/exrrfs_process_radar.sh index 491ac7ba2..08e628bfd 100755 --- a/scripts/exrrfs_process_radar.sh +++ b/scripts/exrrfs_process_radar.sh @@ -343,6 +343,7 @@ EOF export err=$?; err_chk cp RefInGSI3D.dat ${COMOUT}/rrfs.t${HH}z.RefInGSI3D.bin.${bigmin} + cp Gridded_ref.nc ${COMOUT}/rrfs.t${HH}z.Gridded_ref.nc.${bigmin} done # done with the bigmin for-loop # #----------------------------------------------------------------------- diff --git a/ush/link_fix.sh b/ush/link_fix.sh index 91c3b5843..a89d6aa3d 100755 --- a/ush/link_fix.sh +++ b/ush/link_fix.sh @@ -253,7 +253,7 @@ Creating links in the FIXLAM directory to the grid files..." "C*${DOT_OR_USCORE}oro_data.tile${TILE_RGNL}.halo${NH0}.nc" \ "C*${DOT_OR_USCORE}oro_data.tile${TILE_RGNL}.halo${NH4}.nc" \ ) - suites=( "FV3_HRRR" "FV3_RAP" "FV3_HRRR_gf" "FV3_GFS_v15_thompson_mynn_lam3km" ) + suites=( "FV3_HRRR" "FV3_RAP" "FV3_HRRR_gf" "FV3_GFS_v15_thompson_mynn_lam3km" "RRFS_sas" ) if [[ ${suites[@]} =~ "${CCPP_PHYS_SUITE}" ]] ; then fns+=( \ "C*${DOT_OR_USCORE}oro_data_ss.tile${TILE_RGNL}.halo${NH0}.nc" \ diff --git a/ush/setup.sh b/ush/setup.sh index afa8489ed..a7dfcb701 100755 --- a/ush/setup.sh +++ b/ush/setup.sh @@ -1110,6 +1110,7 @@ fi GWD_HRRRsuite_DIR="" if [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR" ] || \ [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR_gf" ] || \ + [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR_sas" ] || \ [ "${CCPP_PHYS_SUITE}" = "FV3_RAP" ] || \ [ "${CCPP_PHYS_SUITE}" = "FV3_GFS_v15_thompson_mynn_lam3km" ]; then # diff --git a/ush/valid_param_vals.sh b/ush/valid_param_vals.sh index 39b3e67f6..d20ae469b 100644 --- a/ush/valid_param_vals.sh +++ b/ush/valid_param_vals.sh @@ -29,6 +29,7 @@ valid_vals_CCPP_PHYS_SUITE=( \ "FV3_RRFS_v1beta" \ "FV3_HRRR" \ "FV3_HRRR_gf" \ +"FV3_HRRR_sas" \ "FV3_HRRR_gf_nogwd" \ "FV3_RAP" \ "FV3_GFS_v15_thompson_mynn_lam3km" \ diff --git a/versions/run.ver b/versions/run.ver index e6917a10d..0b564a3d5 100644 --- a/versions/run.ver +++ b/versions/run.ver @@ -24,6 +24,7 @@ export netcdf_ver=4.9.2 export pio_ver=2.5.10 export PrgEnv_intel_ver=8.1.0 export prod_util_ver=2.0.14 +export prod_envir_ver=2.0.6 export python_ver=3.8.6 export rocoto_ver=1.3.5 export sfcio_ver=1.4.1 From e19cf57bffb8c772a143e973fa9a327ae122e5a4 Mon Sep 17 00:00:00 2001 From: ming hu Date: Sun, 6 Oct 2024 07:22:47 +0000 Subject: [PATCH 2/5] Changes for running enkf da cycles on wcoss2. --- jobs/JRRFS_ANALYSIS_GSI | 4 +- jobs/JRRFS_ANALYSIS_NONVARCLD | 2 +- jobs/JRRFS_CALC_ENSMEAN | 4 +- jobs/JRRFS_MAKE_ICS | 2 +- jobs/JRRFS_PREP_CYC | 20 +++--- jobs/JRRFS_RECENTER | 6 +- jobs/JRRFS_SAVE_RESTART | 13 ++-- jobs/JRRFS_UPDATE_LBC_SOIL | 1 - modulefiles/tasks/wcoss2/prdgen.local.lua | 2 + modulefiles/tasks/wcoss2/recenter.local.lua | 2 + parm/FV3LAM_wflow.xml | 68 +++++++++++++-------- scripts/exrrfs_analysis_enkf.sh | 21 +++++-- scripts/exrrfs_analysis_gsi.sh | 12 ++-- scripts/exrrfs_calc_ensmean.sh | 10 +-- scripts/exrrfs_prep_cyc.sh | 12 ++-- scripts/exrrfs_recenter.sh | 26 ++++---- ush/setup.sh | 2 +- 17 files changed, 121 insertions(+), 86 deletions(-) diff --git a/jobs/JRRFS_ANALYSIS_GSI b/jobs/JRRFS_ANALYSIS_GSI index 52bb473cc..c70b088e6 100755 --- a/jobs/JRRFS_ANALYSIS_GSI +++ b/jobs/JRRFS_ANALYSIS_GSI @@ -80,7 +80,7 @@ fi if [ "${GSI_TYPE}" = "OBSERVER" ]; then if [ "${MEM_TYPE}" = "MEAN" ]; then export jobid=${RUN}_observer_${workname}_ensmean_${envir}_${cyc} - observer_nwges_dir="${GESROOT}/ensmean/observer_${workname}" + observer_nwges_dir="${GESROOT}/${RUN}.${PDY}/${cyc}/ensmean/observer_${workname}" else # GSI_TYPE = OBSERVER is only for EnKF (ensemble forecasts do not have ANALYSIS tasks) export jobid=${RUN}_observer_${workname}_${mem_num}_${envir}_${cyc} @@ -113,7 +113,7 @@ fi export gridspec_dir=${GESROOT}/grid_spec -export ${OB_TYPE} +export OB_TYPE=${OB_TYPE} #----------------------------------------------------------------------- # Define COM directories diff --git a/jobs/JRRFS_ANALYSIS_NONVARCLD b/jobs/JRRFS_ANALYSIS_NONVARCLD index 7ff335f50..516f8b960 100755 --- a/jobs/JRRFS_ANALYSIS_NONVARCLD +++ b/jobs/JRRFS_ANALYSIS_NONVARCLD @@ -95,7 +95,7 @@ if [ ${CYCLE_TYPE} = "spinup" ]; then if [ "${MEM_TYPE}" = "MEAN" ]; then export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc}_spinup/ensmean)} else - export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc}_spinup/${mem_num})} + export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc}_spinup)} fi export COMIN=${COMIN:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc}_spinup)} else diff --git a/jobs/JRRFS_CALC_ENSMEAN b/jobs/JRRFS_CALC_ENSMEAN index 0f189df8a..37a1c30e0 100755 --- a/jobs/JRRFS_CALC_ENSMEAN +++ b/jobs/JRRFS_CALC_ENSMEAN @@ -60,7 +60,7 @@ RRFS for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -export mem_num=m$(echo "${ENSMEM_INDX}") +#export mem_num=m$(echo "${ENSMEM_INDX}") export CYCLE_TYPE=${CYCLE_TYPE:-prod} if [ "${CYCLE_TYPE}" = "spinup" ]; then @@ -89,7 +89,7 @@ mkdir -p "${COMOUT}" # Execute the script. #----------------------------------------------------------------------- -export pgmout="${ensmeandir}/OUTPUT.$$" +export pgmout="${DATA}/OUTPUT.$$" env $HOMErrfs/scripts/exrrfs_calc_ensmean.sh diff --git a/jobs/JRRFS_MAKE_ICS b/jobs/JRRFS_MAKE_ICS index 4a22a1f09..0ea80c626 100755 --- a/jobs/JRRFS_MAKE_ICS +++ b/jobs/JRRFS_MAKE_ICS @@ -15,7 +15,7 @@ export USHrrfs=${USHrrfs:-${HOMErrfs}/ush} export FIXam=${FIXam:-${FIXrrfs}/am} export FIXLAM=${FIXLAM:-${FIXrrfs}/lam/${PREDEF_GRID_NAME}} -export FIXGSI=${FIXrrfs}/gsi +export FIX_GSI=${FIXrrfs}/gsi #----------------------------------------------------------------------- # Source the variable definitions file and the bash utility functions. diff --git a/jobs/JRRFS_PREP_CYC b/jobs/JRRFS_PREP_CYC index 3118f9de4..5bad60a69 100755 --- a/jobs/JRRFS_PREP_CYC +++ b/jobs/JRRFS_PREP_CYC @@ -67,14 +67,19 @@ export mem_num=m$(echo "${ENSMEM_INDX}") export CYCLE_TYPE=${CYCLE_TYPE:-prod} export CYCLE_SUBTYPE=${CYCLE_SUBTYPE:-empty} -export ctrlpath="" +#export ctrlpath="" if [ "${CYCLE_TYPE}" = "spinup" ]; then - export INPUT_DATA=${DATAROOT}/${RUN}_forecast_spinup_${envir}_${cyc}/INPUT - if [ "${DO_ENSINIT}" = "TRUE" ] && [ "${CYCLE_SUBTYPE}" = "ensinit" ]; then - export INPUT_DATA=${DATAROOT}/${RUN}_forecast_ensinit_${envir}_${cyc}/INPUT - fi - if [ "${DO_ENSINIT}" = "TRUE" ] && [ "${CYCLE_SUBTYPE}" = "spinup" ]; then - ctrlpath=${ENSCTRL_DATAROOT} + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then # EnKF has spinup forecasts + export INPUT_DATA=${DATAROOT}/${RUN}_forecast_spinup_${mem_num}_${envir}_${cyc}/INPUT + if [ "${DO_ENSINIT}" = "TRUE" ] && [ "${CYCLE_SUBTYPE}" = "ensinit" ]; then + export INPUT_DATA=${DATAROOT}/${RUN}_forecast_ensinit_${mem_num}_${envir}_${cyc}/INPUT + fi +# if [ "${DO_ENSINIT}" = "TRUE" ] && [ "${CYCLE_SUBTYPE}" = "spinup" ]; then +# ctrlpath=${ENSCTRL_DATAROOT} +# fi + else + export INPUT_DATA=${DATAROOT}/${RUN}_forecast_spinup_${envir}_${cyc}/INPUT +# ctrlpath=${ENSCTRL_DATAROOT} fi else if [ "${DO_ENSEMBLE}" = "TRUE" ]; then @@ -84,7 +89,6 @@ else fi fi -rm -fr ${INPUT_DATA} mkdir -p ${INPUT_DATA} cd ${INPUT_DATA} diff --git a/jobs/JRRFS_RECENTER b/jobs/JRRFS_RECENTER index a40f62824..94bf9f1f7 100755 --- a/jobs/JRRFS_RECENTER +++ b/jobs/JRRFS_RECENTER @@ -60,13 +60,13 @@ with RRFS for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -export mem_num=m$(echo "${ENSMEM_INDX}") +#export mem_num=m$(echo "${ENSMEM_INDX}") export CYCLE_TYPE=${CYCLE_TYPE:-prod} if [ "${CYCLE_TYPE}" = "spinup" ]; then - export jobid=${RUN}_recenter_spinup_${mem_num}_${envir}_${cyc} + export jobid=${RUN}_recenter_spinup_${envir}_${cyc} else - export jobid=${RUN}_recenter_${mem_num}_${envir}_${cyc} + export jobid=${RUN}_recenter_${envir}_${cyc} fi export DATA=${DATAROOT}/${jobid} diff --git a/jobs/JRRFS_SAVE_RESTART b/jobs/JRRFS_SAVE_RESTART index 7d6f95030..c6f1cef5a 100755 --- a/jobs/JRRFS_SAVE_RESTART +++ b/jobs/JRRFS_SAVE_RESTART @@ -90,13 +90,14 @@ mkdir -p "${NWGES_DIR}/RESTART" mkdir -p "${NWGES_DIR}/INPUT" if [ "${SURFACE_DIR}" != "empty" ]; then mkdir -p "${SURFACE_DIR}" + cd ${SURFACE_DIR} fi -len_ensmem=${#ENSMEM_INDX} -if [ ${len_ensmem} -le 3 ]; then - CYCLE_SUBTYPE="control" -fi -cd ${SURFACE_DIR} +# check this, why we need this???? +#len_ensmem=${#ENSMEM_INDX} +#if [ ${len_ensmem} -le 3 ]; then +# CYCLE_SUBTYPE="control" +#fi #----------------------------------------------------------------------- # Make sure that fhr is a non-empty string consisting of only digits. @@ -114,7 +115,7 @@ fi # Execute the script. #----------------------------------------------------------------------- -export pgmout="${SURFACE_DIR}/OUTPUT.$$" +export pgmout="${DATA}/OUTPUT.$$" env ${HOMErrfs}/scripts/exrrfs_save_restart.sh diff --git a/jobs/JRRFS_UPDATE_LBC_SOIL b/jobs/JRRFS_UPDATE_LBC_SOIL index f3bd44011..ea34e6f77 100755 --- a/jobs/JRRFS_UPDATE_LBC_SOIL +++ b/jobs/JRRFS_UPDATE_LBC_SOIL @@ -114,7 +114,6 @@ else if [ "${DO_ENSEMBLE}" = "TRUE" ]; then export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc}/${mem_num})} else - export COMOUT="${COMOUT_BASEDIR}/$RUN.$PDY/${cyc}" export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc})} fi fi diff --git a/modulefiles/tasks/wcoss2/prdgen.local.lua b/modulefiles/tasks/wcoss2/prdgen.local.lua index d4075e307..eb778b98b 100644 --- a/modulefiles/tasks/wcoss2/prdgen.local.lua +++ b/modulefiles/tasks/wcoss2/prdgen.local.lua @@ -18,3 +18,5 @@ load(pathJoin("wgrib2", os.getenv("wgrib2_ver"))) load(pathJoin("udunits", os.getenv("udunits_ver"))) load(pathJoin("gsl", os.getenv("gsl_ver"))) load(pathJoin("nco", os.getenv("nco_ver"))) + +load(pathJoin("prod_envir", os.getenv("prod_envir_ver"))) diff --git a/modulefiles/tasks/wcoss2/recenter.local.lua b/modulefiles/tasks/wcoss2/recenter.local.lua index 15121d298..cea287754 100644 --- a/modulefiles/tasks/wcoss2/recenter.local.lua +++ b/modulefiles/tasks/wcoss2/recenter.local.lua @@ -15,3 +15,5 @@ prepend_path("MODULEPATH", os.getenv("modulepath_mpi")) load(pathJoin("hdf5", os.getenv("hdf5_ver"))) load(pathJoin("netcdf", os.getenv("netcdf_ver"))) load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) + +load(pathJoin("prod_envir", os.getenv("prod_envir_ver"))) diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml index a032b72eb..b76f12ada 100644 --- a/parm/FV3LAM_wflow.xml +++ b/parm/FV3LAM_wflow.xml @@ -666,7 +666,7 @@ MODULES_RUN_TASK_FP script. GESROOT&GESROOT; FG_ROOT&FG_ROOT; EXTRN_MDL_NAME{{ extrn_mdl_name_ics }} - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# GEFS_INPUT_SUBDIR#subdirGE# WRF_MEM_NAME#memNameWRF# GDASENKF_INPUT_SUBDIR#subdirGDAS# @@ -768,7 +768,7 @@ MODULES_RUN_TASK_FP script. DATAROOT&DATAROOT; GESROOT&GESROOT; FG_ROOT&FG_ROOT; - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# envir&envir; KEEPDATAYES @@ -847,7 +847,7 @@ MODULES_RUN_TASK_FP script. GESROOT&GESROOT; EXTRN_MDL_NAME{{ extrn_mdl_name_lbcs }} BOUNDARY_LEN{{ boundary_len_hrs }} - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# GEFS_INPUT_SUBDIR#subdirGE# GDASENKF_INPUT_SUBDIR#subdirGDAS# GDAS_MEM_NAME#memNameGDAS# @@ -983,7 +983,7 @@ MODULES_RUN_TASK_FP script. {%- if do_ensinit %} CYCLE_SUBTYPEensinit {%- endif %} - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# GESROOT&GESROOT; COMROOT&COMROOT; envir&envir; @@ -1075,7 +1075,7 @@ MODULES_RUN_TASK_FP script. {%- if do_ensinit %} CYCLE_SUBTYPEensinit {%- endif %} - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# GESROOT&GESROOT; COMROOT&COMROOT; envir&envir; @@ -1201,7 +1201,7 @@ MODULES_RUN_TASK_FP script. HOMErrfs&HOMErrfs; DATAROOT&DATAROOT; GESROOT&GESROOT; - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# cyc@H fhr0 CYCLE_TYPEspinup @@ -1249,7 +1249,7 @@ MODULES_RUN_TASK_FP script. LBCS_ROOT&FG_ROOT; CYCLE_TYPEspinup CYCLE_SUBTYPEspinup - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# GESROOT&GESROOT; COMROOT&COMROOT; ENSCTRL_DATAROOT&ENSCTRL_DATAROOT; @@ -1305,7 +1305,7 @@ MODULES_RUN_TASK_FP script. {%- for m in range(1, num_ens_members+1) %} {%- if do_ensinit %} - + {%- endif %} {%- endfor %} &ENSCTRL_COMOUT;/@H_spinup/analysis_nonvarcld_complete.txt @@ -1321,7 +1321,7 @@ MODULES_RUN_TASK_FP script. &RSRV_ENKF; &WALL_LIMIT_RECENTER; - &LOAD_MODULES_RUN_TASK_FP; "&RUN_RECENTER_TN;" "&HOMErrfs;/jobs/JRRFS_CALC_ENSMEAN" + &LOAD_MODULES_RUN_TASK_FP; "&RECENTER_TN;" "&HOMErrfs;/jobs/JRRFS_CALC_ENSMEAN" &RESOURCES_RECENTER; &NATIVE_ALL; &WALLTIME_RECENTER; @@ -1426,8 +1426,8 @@ MODULES_RUN_TASK_FP script. cyc@H HOMErrfs&HOMErrfs; DATAROOT&DATAROOT; - GESROOT&GESROOT; - COMROOT&COMROOT; + GESROOT&GESROOT; + COMROOT&COMROOT; GSI_TYPEOBSERVER MEM_TYPEMEMBER CYCLE_TYPEspinup @@ -1564,7 +1564,7 @@ MODULES_RUN_TASK_FP script. CYCLE_TYPEspinup MEM_TYPEMEMBER cyc@H - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# envir&envir; KEEPDATAYES @@ -1637,7 +1637,7 @@ MODULES_RUN_TASK_FP script. CYCLE_TYPEspinup GSI_TYPEANALYSIS MEM_TYPEMEMBER - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# SATBIAS_DIR&GESROOT;/satbias nens{{ num_ens_members }} {%- if do_envar_radar_ref and do_envar_radar_ref_once %} @@ -1712,7 +1712,7 @@ MODULES_RUN_TASK_FP script. CYCLE_TYPEspinup GSI_TYPEANALYSIS MEM_TYPEMEMBER - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# SATBIAS_DIR&GESROOT;/satbias nens{{ num_ens_members }} {%- if do_envar_radar_ref and do_envar_radar_ref_once %} @@ -1757,7 +1757,7 @@ MODULES_RUN_TASK_FP script. CYCLE_TYPEspinup GSI_TYPEANALYSIS MEM_TYPEMEMBER - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# SATBIAS_DIR&GESROOT;/satbias nens30 OB_TYPEradardbz @@ -1857,7 +1857,7 @@ MODULES_RUN_TASK_FP script. CYCLE_TYPEspinup MEM_TYPEMEMBER cyc@H - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# envir&envir; KEEPDATAYES @@ -2147,7 +2147,7 @@ MODULES_RUN_TASK_FP script. FG_ROOT&FG_ROOT; LBCS_ROOT&FG_ROOT; CYCLE_TYPEprod - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# GESROOT&GESROOT; COMROOT&COMROOT; envir&envir; @@ -2175,13 +2175,21 @@ MODULES_RUN_TASK_FP script. @Y@m@d@H@M00 + {%- if do_ensemble %} + &FG_ROOT;/&RUN;.@Y@m@d/@H/m#mem#/forecast_spinup/RESTART/@Y@m@d.@H0000.coupler.res + {%- else %} &FG_ROOT;/&RUN;.@Y@m@d/@H/forecast_spinup/RESTART/@Y@m@d.@H0000.coupler.res + {%- endif %} @Y@m@d@H@M00 {%- for h in range(da_cycle_interval_hrs, 6+1, da_cycle_interval_hrs) %} + {%- if do_ensemble %} + &FG_ROOT;/&RUN;.@Y@m@d/@H/m#mem#/forecast/RESTART/@Y@m@d.@H0000.coupler.res + {%- else %} &FG_ROOT;/&RUN;.@Y@m@d/@H/forecast/RESTART/@Y@m@d.@H0000.coupler.res + {%- endif %} {%- endfor %} @@ -2226,7 +2234,11 @@ MODULES_RUN_TASK_FP script. @Y@m@d@H@M00 + {%- if do_ensemble %} + &FG_ROOT;/&RUN;.@Y@m@d/@H/m#mem#/forecast/RESTART/@Y@m@d.@H0000.coupler.res + {%- else %} &FG_ROOT;/&RUN;.@Y@m@d/@H/forecast/RESTART/@Y@m@d.@H0000.coupler.res + {%- endif %} {%- if is_rtma %} {%- if machine in ["WCOSS2"] %} &FG_ROOT;/@Y@m@d@H/m#mem#/fcst_fv3lam/RESTART/@Y@m@d.@H0000.fv_tracer.res.tile1.nc @@ -2240,7 +2252,11 @@ MODULES_RUN_TASK_FP script. @Y@m@d@H@M00 {%- for h in range(da_cycle_interval_hrs+da_cycle_interval_hrs, 6+1, da_cycle_interval_hrs) %} + {%- if do_ensemble %} + &FG_ROOT;/&RUN;.@Y@m@d/@H/m#mem#/forecast/RESTART/@Y@m@d.@H0000.coupler.res + {%- else %} &FG_ROOT;/&RUN;.@Y@m@d/@H/forecast/RESTART/@Y@m@d.@H0000.coupler.res + {%- endif %} {%- endfor %} @@ -2292,7 +2308,7 @@ MODULES_RUN_TASK_FP script. {%- for m in range(1, num_ens_members+1) %} - + {%- endfor %} @@ -2325,7 +2341,7 @@ MODULES_RUN_TASK_FP script. COMROOT&COMROOT; GSI_TYPEOBSERVER MEM_TYPEMEAN - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# SATBIAS_DIR&GESROOT;/satbias envir&envir; KEEPDATAYES @@ -2380,7 +2396,7 @@ MODULES_RUN_TASK_FP script. COMROOT&COMROOT; GSI_TYPEOBSERVER MEM_TYPEMEMBER - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# SATBIAS_DIR&GESROOT;/satbias envir&envir; KEEPDATAYES @@ -2516,7 +2532,7 @@ MODULES_RUN_TASK_FP script. CYCLE_TYPEprod GSI_TYPEANALYSIS MEM_TYPEMEMBER - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# SATBIAS_DIR&GESROOT;/satbias nens{{ num_ens_members }} {%- if do_envar_radar_ref and do_envar_radar_ref_once %} @@ -2599,7 +2615,7 @@ MODULES_RUN_TASK_FP script. CYCLE_TYPEprod GSI_TYPEANALYSIS MEM_TYPEMEMBER - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# SATBIAS_DIR&GESROOT;/satbias nens{{ num_ens_members }} {%- if do_envar_radar_ref and do_envar_radar_ref_once %} @@ -2644,7 +2660,7 @@ MODULES_RUN_TASK_FP script. CYCLE_TYPEprod GSI_TYPEANALYSIS MEM_TYPEMEMBER - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# SATBIAS_DIR&GESROOT;/satbias nens30 OB_TYPEradardbz @@ -2752,7 +2768,7 @@ MODULES_RUN_TASK_FP script. CYCLE_TYPEprod MEM_TYPEMEMBER cyc@H - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# envir&envir; KEEPDATAYES @@ -2826,7 +2842,7 @@ MODULES_RUN_TASK_FP script. GESROOT&GESROOT; COMROOT&COMROOT; cyc@H - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# envir&envir; KEEPDATAYES @@ -2889,7 +2905,7 @@ MODULES_RUN_TASK_FP script. HOMErrfs&HOMErrfs; DATAROOT&DATAROOT; GESROOT&GESROOT; - ENSMEM_INDX{{ ensmem_indx_name }} + ENSMEM_INDX#{{ ensmem_indx_name }}# cyc@H {%- if do_ensfcst %} CYCLE_TYPEenfcst diff --git a/scripts/exrrfs_analysis_enkf.sh b/scripts/exrrfs_analysis_enkf.sh index aa3c7de96..faa594b69 100755 --- a/scripts/exrrfs_analysis_enkf.sh +++ b/scripts/exrrfs_analysis_enkf.sh @@ -135,8 +135,10 @@ for imem in $(seq 1 $nens) ensmean; do if [ "${imem}" = "ensmean" ]; then memchar="ensmean" + memcharv0="ensmean" else memchar="m"$(printf %03i $imem) + memcharv0="mem"$( printf "%03d" $imem ) fi if [ "${CYCLE_TYPE}" = "spinup" ]; then bkpath=${DATAROOT}/${RUN}_forecast_spinup_${memchar}_${envir}_${cyc}/INPUT @@ -145,11 +147,18 @@ for imem in $(seq 1 $nens) ensmean; do bkpath=${DATAROOT}/${RUN}_forecast_${memchar}_${envir}_${cyc}/INPUT observer_nwges_dir="${GESROOT}/${RUN}.${PDY}/${cyc}/${memchar}/observer_gsi" fi - - ln -snf ${bkpath}/fv_core.res.tile1.nc fv3sar_tile1_${memcharv0}_dynvars - ln -snf ${bkpath}/fv_tracer.res.tile1.nc fv3sar_tile1_${memcharv0}_tracer - ln -snf ${bkpath}/sfc_data.nc fv3sar_tile1_${memcharv0}_sfcdata - ln -snf ${bkpath}/phy_data.nc fv3sar_tile1_${memcharv0}_phyvar + if [ "${imem}" = "ensmean" ]; then + bkpath=${DATAROOT}/${RUN}_calc_ensmean_${envir}_${cyc} + ln -snf ${bkpath}/fv3sar_tile1_dynvar fv3sar_tile1_${memcharv0}_dynvars + ln -snf ${bkpath}/fv3sar_tile1_tracer fv3sar_tile1_${memcharv0}_tracer + ln -snf ${bkpath}/fv3sar_tile1_sfcvar fv3sar_tile1_${memcharv0}_sfcdata + ln -snf ${bkpath}/phy_data.nc fv3sar_tile1_${memcharv0}_phyvar + else + ln -snf ${bkpath}/fv_core.res.tile1.nc fv3sar_tile1_${memcharv0}_dynvars + ln -snf ${bkpath}/fv_tracer.res.tile1.nc fv3sar_tile1_${memcharv0}_tracer + ln -snf ${bkpath}/sfc_data.nc fv3sar_tile1_${memcharv0}_sfcdata + ln -snf ${bkpath}/phy_data.nc fv3sar_tile1_${memcharv0}_phyvar + fi # #----------------------------------------------------------------------- # @@ -309,7 +318,7 @@ use_gfs_nemsio=.true., # cat > enkf.nml << EOFnml &nam_enkf - datestring="$vlddate",datapath="$enkfworkdir/", + datestring="$vlddate",datapath="$DATA/", analpertwtnh=1.10,analpertwtsh=1.10,analpertwttr=1.10, covinflatemax=1.e2,covinflatemin=1,pseudo_rh=.true.,iassim_order=0, corrlengthnh=$CORRLENGTH,corrlengthsh=$CORRLENGTH,corrlengthtr=$CORRLENGTH, diff --git a/scripts/exrrfs_analysis_gsi.sh b/scripts/exrrfs_analysis_gsi.sh index 6c9de4c28..5830fd0e9 100755 --- a/scripts/exrrfs_analysis_gsi.sh +++ b/scripts/exrrfs_analysis_gsi.sh @@ -959,9 +959,9 @@ if [ "${GSI_TYPE}" = "OBSERVER" ]; then lread_obs_save=.false. lread_obs_skip=.true. if [ "${CYCLE_TYPE}" = "spinup" ]; then - ln -s ../../ensmean/observer_gsi_spinup/obs_input.* . + ln -s ../${RUN}_observer_gsi_spinup_ensmean_${envir}_${cyc}/obs_input.* . else - ln -s ../../ensmean/observer_gsi/obs_input.* . + ln -s ../${RUN}_observer_gsi_ensmean_${envir}_${cyc}/obs_input.* . fi fi fi @@ -1105,11 +1105,11 @@ if [ "${DO_GSIDIAG_OFFLINE}" = "FALSE" ]; then if [ "${GSI_TYPE}" = "OBSERVER" ]; then cp *diag*ges* ${observer_nwges_dir}/. if [ "${MEM_TYPE}" = "MEAN" ]; then - mkdir -p ${observer_nwges_dir}/../../../../observer_diag/${YYYYMMDDHH}/ensmean/observer_gsi - cp *diag*ges* ${observer_nwges_dir}/../../../../observer_diag/${YYYYMMDDHH}/ensmean/observer_gsi/. + mkdir -p ${observer_nwges_dir} + cp *diag*ges* ${observer_nwges_dir}/. else - mkdir -p ${observer_nwges_dir}/../../../../observer_diag/${YYYYMMDDHH}/${mem_num}/observer_gsi - cp *diag*ges* ${observer_nwges_dir}/../../../../observer_diag/${YYYYMMDDHH}/${mem_num}/observer_gsi/. + mkdir -p ${observer_nwges_dir} + cp *diag*ges* ${observer_nwges_dir}/. fi fi # diff --git a/scripts/exrrfs_calc_ensmean.sh b/scripts/exrrfs_calc_ensmean.sh index be15a0f0b..6c924872c 100755 --- a/scripts/exrrfs_calc_ensmean.sh +++ b/scripts/exrrfs_calc_ensmean.sh @@ -61,8 +61,8 @@ case $MACHINE in export FI_OFI_RXM_SAR_LIMIT=3145728 export OMP_STACKSIZE=500M export OMP_NUM_THREADS=1 - ncores=$(( NNODES_RUN_RECENTER*PPN_RUN_RECENTER )) - APRUN="mpiexec -n ${ncores} -ppn ${PPN_RUN_RECENTER} --cpu-bind core --depth ${OMP_NUM_THREADS}" + ncores=$(( NNODES_RECENTER*PPN_RECENTER )) + APRUN="mpiexec -n ${ncores} -ppn ${PPN_RECENTER} --cpu-bind core --depth ${OMP_NUM_THREADS}" ;; # "HERA") @@ -117,13 +117,13 @@ YYYYMMDD=${YYYYMMDDHH:0:8} imem=1 for imem in $(seq 1 $nens) do - ensmem=$( printf "%04d" $imem ) + ensmem=$( printf "%03d" $imem ) memberstring=$( printf "%03d" $imem ) if [ "${CYCLE_TYPE}" = "spinup" ]; then - bkpath=${DATAROOT}/${RUN}_forecast_spinup_${mem_num}_${envir}_${cyc}/INPUT # cycling, use background from RESTART + bkpath=${DATAROOT}/${RUN}_forecast_spinup_m${ensmem}_${envir}_${cyc}/INPUT # cycling, use background from RESTART else - bkpath=${DATAROOT}/${RUN}_forecast_${mem_num}_${envir}_${cyc}/INPUT # cycling, use background from RESTART + bkpath=${DATAROOT}/${RUN}_forecast_m${ensmem}_${envir}_${cyc}/INPUT # cycling, use background from RESTART fi dynvarfile=${bkpath}/fv_core.res.tile1.nc diff --git a/scripts/exrrfs_prep_cyc.sh b/scripts/exrrfs_prep_cyc.sh index 467a3ee66..621362b64 100755 --- a/scripts/exrrfs_prep_cyc.sh +++ b/scripts/exrrfs_prep_cyc.sh @@ -342,8 +342,8 @@ else if [ "${CYCLE_SUBTYPE}" = "spinup" ] ; then # point to the 0-h cycle for the warm start from the 1 timestep restart files fg_restart_dirname=forecast_ensinit - bkpath=${FG_ROOT}/${RUN}.${PDY}/${cyc}/${fg_restart_dirname}/RESTART # cycling, use background from RESTART - ctrl_bkpath=${ctrlpath}/forecast_spinup/INPUT + bkpath=${FG_ROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/${fg_restart_dirname}/RESTART # cycling, use background from RESTART + ctrl_bkpath=${FG_ROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/forecast_spinup/INPUT else YYYYMMDDHHmInterv=$( date +%Y%m%d%H -d "${START_DATE} ${DA_CYCLE_INTERV} hours ago" ) YYYYMMDDInterv=`echo ${YYYYMMDDHHmInterv} | cut -c1-8` @@ -421,7 +421,8 @@ else if [ "${IO_LAYOUT_Y}" = "1" ]; then for file in ${filelistn}; do if [ "${CYCLE_SUBTYPE}" = "spinup" ]; then - cpreq -p ${ctrl_bkpath}/${file} ${file} + #cpreq -p ${ctrl_bkpath}/${file} ${file} + cpreq -p ${bkpath}/${restart_prefix}${file} ${file} else cpreq -p ${bkpath}/${restart_prefix}${file} ${file} fi @@ -433,7 +434,8 @@ else do iii=$(printf %4.4i $ii) if [ "${CYCLE_SUBTYPE}" = "spinup" ]; then - cpreq -p ${ctrl_bkpath}/${file}.${iii} ${file}.${iii} + #cpreq -p ${ctrl_bkpath}/${file}.${iii} ${file}.${iii} + cpreq -p ${bkpath}/${restart_prefix}${file}.${iii} ${file}.${iii} else cpreq -p ${bkpath}/${restart_prefix}${file}.${iii} ${file}.${iii} fi @@ -442,7 +444,7 @@ else done fi if [ "${CYCLE_SUBTYPE}" = "spinup" ] ; then - cpreq -p ${FG_ROOT}/${RUN}.${PDY}/${cyc}/${fg_restart_dirname}/INPUT/gfs_ctrl.nc gfs_ctrl.nc + cpreq -p ${FG_ROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/${fg_restart_dirname}/INPUT/gfs_ctrl.nc gfs_ctrl.nc else if [ "${DO_ENSEMBLE}" = "TRUE" ]; then cpreq -p ${FG_ROOT}/${RUN}.${YYYYMMDDInterv}/${HHInterv}/${mem_num}/${fg_restart_dirname}/INPUT/gfs_ctrl.nc gfs_ctrl.nc diff --git a/scripts/exrrfs_recenter.sh b/scripts/exrrfs_recenter.sh index dffb1f607..6f328da16 100755 --- a/scripts/exrrfs_recenter.sh +++ b/scripts/exrrfs_recenter.sh @@ -113,13 +113,13 @@ YYYYMMDD=${YYYYMMDDHH:0:8} imem=1 for imem in $(seq 1 $nens) do - ensmem=$( printf "%04d" $imem ) + ensmem=$( printf "%03d" $imem ) memberstring=$( printf "%03d" $imem ) if [ "${CYCLE_TYPE}" = "spinup" ]; then - bkpath=${DATAROOT}/${RUN}_forecast_spinup_${mem_num}_${envir}_${cyc}/INPUT # cycling, use background from RESTART + bkpath=${DATAROOT}/${RUN}_forecast_spinup_m${ensmem}_${envir}_${cyc}/INPUT # cycling, use background from RESTART else - bkpath=${DATAROOT}/${RUN}_forecast_${mem_num}_${envir}_${cyc}/INPUT # cycling, use background from RESTART + bkpath=${DATAROOT}/${RUN}_forecast_m${ensmem}_${envir}_${cyc}/INPUT # cycling, use background from RESTART fi dynvarfile=${bkpath}/fv_core.res.tile1.nc @@ -160,18 +160,18 @@ cp -f ./fv3sar_tile1_mem001_sfcvar fv3sar_tile1_sfcvar # #----------------------------------------------------------------------- # -dynvarfile_control=${ctrlpath}/forecast/INPUT/fv_core.res.tile1.nc -tracerfile_control=${ctrlpath}/forecast/INPUT/fv_tracer.res.tile1.nc -dynvarfile_control_spinup=${ctrlpath}/forecast_spinup/INPUT/fv_core.res.tile1.nc -tracerfile_control_spinup=${ctrlpath}/forecast_spinup/INPUT/fv_tracer.res.tile1.nc +dynvarfile_control=${ctrlpath}/rrfs_forecast_${envir}_${cyc}/INPUT/fv_core.res.tile1.nc +tracerfile_control=${ctrlpath}/rrfs_forecast_${envir}_${cyc}/INPUT/fv_tracer.res.tile1.nc +dynvarfile_control_spinup=${ctrlpath}/rrfs_forecast_spinup_${envir}_${cyc}/INPUT/fv_core.res.tile1.nc +tracerfile_control_spinup=${ctrlpath}/rrfs_forecast_spinup_${envir}_${cyc}/INPUT/fv_tracer.res.tile1.nc if [ -r "${dynvarfile_control_spinup}" ] && [ -r "${tracerfile_control_spinup}" ] && [[ ${DO_ENSFCST} != "TRUE" ]] ; then - ln -sf ${ctrlpath}/forecast_spinup/INPUT/fv_core.res.tile1.nc ./control_dynvar - ln -sf ${ctrlpath}/forecast_spinup/INPUT/fv_tracer.res.tile1.nc ./control_tracer - ln -sf ${ctrlpath}/forecast_spinup/INPUT/sfc_data.nc ./control_sfcvar + ln -sf ${ctrlpath}/rrfs_forecast_spinup_${envir}_${cyc}/INPUT/fv_core.res.tile1.nc ./control_dynvar + ln -sf ${ctrlpath}/rrfs_forecast_spinup_${envir}_${cyc}/INPUT/fv_tracer.res.tile1.nc ./control_tracer + ln -sf ${ctrlpath}/rrfs_forecast_spinup_${envir}_${cyc}/INPUT/sfc_data.nc ./control_sfcvar elif [ -r "${dynvarfile_control}" ] && [ -r "${tracerfile_control}" ] ; then - ln -sf ${ctrlpath}/forecast/INPUT/fv_core.res.tile1.nc ./control_dynvar - ln -sf ${ctrlpath}/forecast/INPUT/fv_tracer.res.tile1.nc ./control_tracer - ln -sf ${ctrlpath}/forecast/INPUT/sfc_data.nc ./control_sfcvar + ln -sf ${ctrlpath}/rrfs_forecast_${envir}_${cyc}/INPUT/fv_core.res.tile1.nc ./control_dynvar + ln -sf ${ctrlpath}/rrfs_forecast_${envir}_${cyc}/INPUT/fv_tracer.res.tile1.nc ./control_tracer + ln -sf ${ctrlpath}/rrfs_forecast_${envir}_${cyc}/INPUT/sfc_data.nc ./control_sfcvar else err_exit "Cannot find background: ${dynvarfile_control} or ${dynvarfile_control_spinup}" fi diff --git a/ush/setup.sh b/ush/setup.sh index a7dfcb701..83e7ac661 100755 --- a/ush/setup.sh +++ b/ush/setup.sh @@ -1288,7 +1288,7 @@ check_for_preexist_dir_file "${DATAROOT}" "${PREEXISTING_DIR_METHOD}" ENSCTRL_DATAROOT="${ENSCTRL_STMP}" COMROOT="${PTMP}/com" ENSCTRL_COMROOT="${ENSCTRL_PTMP}/com" -ENSCTRL_COMOUT="${ENSCTRL_COMROOT}/${NET}/${envir}/${RUN_ensctrl}.@Y@m@d" +ENSCTRL_COMOUT="${ENSCTRL_COMROOT}/${NET}/${rrfs_ver}/${RUN_ensctrl}.@Y@m@d" GESROOT="${PTMP}/nwges" LOG_BASEDIR="${PTMP}/logs" # From 97e3d2717eaa0b3c71a3f1c11623fd60b68327e2 Mon Sep 17 00:00:00 2001 From: ming hu Date: Mon, 7 Oct 2024 02:31:20 +0000 Subject: [PATCH 3/5] Make right dependence and links to RRFS ensembles for GSI hybrid analysis. --- parm/FV3LAM_wflow.xml | 11 ++++++----- scripts/exrrfs_analysis_gsi.sh | 9 +++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml index b76f12ada..b465a473b 100644 --- a/parm/FV3LAM_wflow.xml +++ b/parm/FV3LAM_wflow.xml @@ -66,6 +66,7 @@ Workflow task names. +