diff --git a/jobs/JRRFS_ANALYSIS_ENKF b/jobs/JRRFS_ANALYSIS_ENKF index cfcd3b40c..2c446d315 100755 --- a/jobs/JRRFS_ANALYSIS_ENKF +++ b/jobs/JRRFS_ANALYSIS_ENKF @@ -61,17 +61,21 @@ specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} export CYCLE_TYPE=${CYCLE_TYPE:-prod} if [ "${CYCLE_TYPE}" = "spinup" ]; then + export jobid=${RUN}_enkfupdt_${OB_TYPE}_spinup_${envir}_${cyc} export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc}_spinup)} else + export jobid=${RUN}_enkfupdt_${OB_TYPE}_${envir}_${cyc} export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc})} fi -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} rm -fr ${DATA} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_ANALYSIS_GSI b/jobs/JRRFS_ANALYSIS_GSI index d90559cd7..5070d2e25 100755 --- a/jobs/JRRFS_ANALYSIS_GSI +++ b/jobs/JRRFS_ANALYSIS_GSI @@ -62,10 +62,11 @@ for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ ! "${MEM_TYPE}" = "MEAN" ] && [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") +fi export CYCLE_TYPE=${CYCLE_TYPE:-prod} export observer_nwges_dir="" @@ -80,15 +81,31 @@ if [[ ! -v OB_TYPE ]]; then OB_TYPE="conv" fi -if [ "${MEM_TYPE}" = "MEAN" ]; then - observer_nwges_dir="${GESROOT}/${RUN}.${PDY}/${cyc}/ensmean/observer_${workname}" +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} else -# GSI_TYPE = OBSERVER is only for EnKF (ensemble forecasts do not have ANALYSIS tasks) - observer_nwges_dir="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/observer_${workname}" + if [ "${GSI_TYPE}" = "OBSERVER" ]; then + if [ "${MEM_TYPE}" = "MEAN" ]; then + export jobid=${RUN}_observer_${workname}_ensmean_${envir}_${cyc} + else + export jobid=${RUN}_observer_${workname}_${mem_num}_${envir}_${cyc} + fi + else # For control member, GSI_TYPE is always ANALYSIS + export jobid=${RUN}_analysis_${OB_TYPE}_${workname}_${envir}_${cyc} + fi +fi + +if [ "${GSI_TYPE}" = "OBSERVER" ]; then + if [ "${MEM_TYPE}" = "MEAN" ]; then + 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) + observer_nwges_dir="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/observer_${workname}" + fi + mkdir -p ${observer_nwges_dir} fi -mkdir -p ${observer_nwges_dir} -export DATA=${DATAROOT}/${jobid} +export DATA=${DATA:-${DATAROOT}/${jobid}} rm -fr ${DATA} mkdir -p ${DATA} cd ${DATA} @@ -117,7 +134,7 @@ export OB_TYPE=${OB_TYPE} #----------------------------------------------------------------------- if [ "${CYCLE_TYPE}" = "spinup" ]; then - if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + if [ "${DO_ENSEMBLE}" = "TRUE" ] && [ ! "${MEM_TYPE}" = "MEAN" ]; then export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc}_spinup/${mem_num})} else export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${rrfs_ver}/${RUN}.${PDY}/${cyc}_spinup)} diff --git a/jobs/JRRFS_ANALYSIS_GSIDIAG b/jobs/JRRFS_ANALYSIS_GSIDIAG index 8188fb3b4..dcf219232 100755 --- a/jobs/JRRFS_ANALYSIS_GSIDIAG +++ b/jobs/JRRFS_ANALYSIS_GSIDIAG @@ -61,12 +61,20 @@ the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} export CYCLE_TYPE=${CYCLE_TYPE:-prod} -export DATA="${DATAROOT}/${jobid}" +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${CYCLE_TYPE}" = "spinup" ]; then + export jobid=${RUN}_analysis_conv_dbz_gsi_spinup_${envir}_${cyc} + else + export jobid=${RUN}_analysis_conv_dbz_gsi_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} if [ ! -d "${DATA}" ]; then echo "WARNING: ${DATA} does not exist" fi diff --git a/jobs/JRRFS_ANALYSIS_NONVARCLD b/jobs/JRRFS_ANALYSIS_NONVARCLD index 49c00f3fd..e10999d55 100755 --- a/jobs/JRRFS_ANALYSIS_NONVARCLD +++ b/jobs/JRRFS_ANALYSIS_NONVARCLD @@ -61,12 +61,30 @@ analysis with RRFS for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${CYCLE_TYPE}" = "spinup" ]; then + export workname="nonvar_cldanl_spinup" + else + export workname="nonvar_cldanl" + fi + if [ ${MEM_TYPE} = "MEAN" ]; then + export jobid=${RUN}_${workname}_ensmean_${envir}_${cyc} + else + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") + export jobid=${RUN}_${workname}_${mem_num}_${envir}_${cyc} + else + export jobid=${RUN}_${workname}_${envir}_${cyc} + fi + fi +fi +export mem_num=${mem_num:-} -export DATA=${DATAROOT}/${jobid} +export DATA=${DATA:-${DATAROOT}/${jobid}} rm -fr ${DATA} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_BLEND_ICS b/jobs/JRRFS_BLEND_ICS index 4025ec638..25104206c 100755 --- a/jobs/JRRFS_BLEND_ICS +++ b/jobs/JRRFS_BLEND_ICS @@ -59,13 +59,18 @@ on the RRFS initial conditions. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} +export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} export mem_num=m$(echo "${ENSMEM_INDX}") export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/ics" -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + export jobid=${RUN}_make_ics_${mem_num}_${envir}_${cyc} +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p $DATA mkdir -p ${DATA}/tmp_ICS diff --git a/jobs/JRRFS_BUFRSND b/jobs/JRRFS_BUFRSND index 3db1d3982..39c5bcd64 100755 --- a/jobs/JRRFS_BUFRSND +++ b/jobs/JRRFS_BUFRSND @@ -62,13 +62,14 @@ on the output files corresponding to a specified forecast hour. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} export fhr=01 export tmmark=tm00 -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(printf "%03d" "$((10#${ENSMEM_INDX}))") +fi CYCLE_TYPE=${CYCLE_TYPE:-prod} if [ "${DO_ENSEMBLE}" = "TRUE" ]; then @@ -82,7 +83,17 @@ fi mkdir -p "${NWGES_DIR}/RESTART" mkdir -p "${NWGES_DIR}/INPUT" -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export jobid=${RUN}_bufrsnd_${mem_num}_${envir}_${cyc} + else + export jobid=${RUN}_bufrsnd_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} rm -rf ${DATA} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_CALC_ENSMEAN b/jobs/JRRFS_CALC_ENSMEAN index 1635f099e..5ff23c743 100755 --- a/jobs/JRRFS_CALC_ENSMEAN +++ b/jobs/JRRFS_CALC_ENSMEAN @@ -59,14 +59,20 @@ RRFS for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} - -#export mem_num=m$(echo "${ENSMEM_INDX}") export CYCLE_TYPE=${CYCLE_TYPE:-prod} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${CYCLE_TYPE}" = "spinup" ]; then + export jobid=${RUN}_calc_ensmean_spinup_${envir}_${cyc} + else + export jobid=${RUN}_calc_ensmean_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} rm -fr ${DATA} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_FORECAST b/jobs/JRRFS_FORECAST index 7ac6e7740..eaea69fbf 100755 --- a/jobs/JRRFS_FORECAST +++ b/jobs/JRRFS_FORECAST @@ -64,15 +64,42 @@ the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + # export mem_num=m$(echo "${ENSMEM_INDX}") + export mem_num=m$(printf "%03d" "$((10#${ENSMEM_INDX}))") +fi export CYCLE_TYPE=${CYCLE_TYPE:-prod} export CYCLE_SUBTYPE=${CYCLE_SUBTYPE:-empty} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ ${CYCLE_TYPE} == "spinup" ]; then + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then # EnKF has spinup forecasts + export jobid=${RUN}_forecast_spinup_${mem_num}_${envir}_${cyc} + if [ ${CYCLE_SUBTYPE} == "ensinit" ]; then + export jobid=${RUN}_forecast_ensinit_${mem_num}_${envir}_${cyc} + fi + else + export jobid=${RUN}_forecast_spinup_${envir}_${cyc} + fi + else + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export jobid=${RUN}_forecast_${mem_num}_${envir}_${cyc} + else + if [ ${WGF} == "firewx" ]; then + export jobid=firewx_forecast_${envir}_${cyc} + else + export jobid=${RUN}_forecast_${envir}_${cyc} + fi + fi + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p ${DATA} mkdir -p ${DATA}/INPUT diff --git a/jobs/JRRFS_MAKE_GRID b/jobs/JRRFS_MAKE_GRID index 9f0215ec9..b7f89d37d 100755 --- a/jobs/JRRFS_MAKE_GRID +++ b/jobs/JRRFS_MAKE_GRID @@ -61,10 +61,14 @@ This is the J-job script for the task that generates grid files. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + export jobid=${RUN}_make_grid_${envir}_${cyc} +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_MAKE_ICS b/jobs/JRRFS_MAKE_ICS index 98eb83395..354c93002 100755 --- a/jobs/JRRFS_MAKE_ICS +++ b/jobs/JRRFS_MAKE_ICS @@ -62,7 +62,7 @@ for the RRFS (in NetCDF format). # Set the parameters for the external model files. #----------------------------------------------------------------------- -extrn_mdl_name="${EXTRN_MDL_NAME}" +extrn_mdl_name="${EXTRN_MDL_NAME_ICS}" sysbasedir="${EXTRN_MDL_SYSBASEDIR_ICS}" gfs_file_fmt="${GFS_FILE_FMT_ICS}" time_offset_hrs="${EXTRN_MDL_ICS_OFFSET_HRS}" @@ -118,7 +118,7 @@ case "${extrn_mdl_name}" in else sysdir="$sysbasedir/rrfs.${yyyymmdd}/${hh}" fi - fns_on_disk=( "rrfs.t${hh}z.natlev.f0${fcst_hh}.grib2" ) + fns_on_disk=( "rrfs.t${hh}z.natlev.3km.f0${fcst_hh}.na.grib2" ) ;; *) @@ -134,17 +134,29 @@ extrn_mdl_fns_on_disk_str="( "$( printf "\"%s\" " "${fns_on_disk[@]}" )")" export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") +fi + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/ics" else export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/ics" fi -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export jobid=${RUN}_make_ics_${mem_num}_${envir}_${cyc} + else + export jobid=${RUN}_make_ics_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p $DATA mkdir -p ${DATA}/tmp_ICS diff --git a/jobs/JRRFS_MAKE_LBCS b/jobs/JRRFS_MAKE_LBCS index 7c5c78e8b..ea533613c 100755 --- a/jobs/JRRFS_MAKE_LBCS +++ b/jobs/JRRFS_MAKE_LBCS @@ -61,7 +61,7 @@ hour zero). # Set the parameters for the external model files. #----------------------------------------------------------------------- -export extrn_mdl_name="${EXTRN_MDL_NAME}" +export extrn_mdl_name="${EXTRN_MDL_NAME_LBCS}" sysbasedir="${EXTRN_MDL_SYSBASEDIR_LBCS}" gfs_file_fmt="${GFS_FILE_FMT_LBCS}" extrn_mdl_memhead="${GEFS_INPUT_SUBDIR}" @@ -149,9 +149,9 @@ case "${extrn_mdl_name}" in fi sysdir2="" fcst_hhh=( $( printf "%03d " "${lbc_spec_fhrs[@]}" ) ) - prefix="rrfs.t${hh}z.natlev.f" + prefix="rrfs.t${hh}z.natlev.3km.f" fns=( "${fcst_hhh[@]/#/$prefix}" ) - suffix=".grib2" + suffix=".na.grib2" fns_on_disk=( "${fns[@]/%/$suffix}" ) ;; @@ -173,17 +173,26 @@ extrn_mdl_fns_on_disk_str2="( "$( printf "\"%s\" " "${fns_on_disk2[@]}" )")" export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/lbcs" else export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/lbcs" fi -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export jobid=${RUN}_make_lbcs_${mem_num}_${envir}_${cyc} + else + export jobid=${RUN}_make_lbcs_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p $DATA mkdir -p ${DATA}/tmp_LBCS_${bcgrp} diff --git a/jobs/JRRFS_MAKE_OROG b/jobs/JRRFS_MAKE_OROG index 92fb59e17..740f78d60 100755 --- a/jobs/JRRFS_MAKE_OROG +++ b/jobs/JRRFS_MAKE_OROG @@ -61,10 +61,14 @@ This is the J-job script for the task that generates orography files. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + export jobid=${RUN}_make_orog_${envir}_${cyc} +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p ${DATA} mkdir -p "${DATA}/raw_topo" diff --git a/jobs/JRRFS_MAKE_SFC_CLIMO b/jobs/JRRFS_MAKE_SFC_CLIMO index 99cacd97a..d1618d9b9 100755 --- a/jobs/JRRFS_MAKE_SFC_CLIMO +++ b/jobs/JRRFS_MAKE_SFC_CLIMO @@ -61,10 +61,15 @@ climatology. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + export jobid=${RUN}_make_sfc_climo_${envir}_${cyc} +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} +[[ -d ${DATA} ]]&& mv ${DATA} ${DATA}_old_$$ mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_POST b/jobs/JRRFS_POST index 462658c79..ba5ba48d8 100755 --- a/jobs/JRRFS_POST +++ b/jobs/JRRFS_POST @@ -62,23 +62,36 @@ on the output files corresponding to a specified forecast hour. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") +fi export CYCLE_TYPE=${CYCLE_TYPE:-prod} if [ ${CYCLE_TYPE} == "spinup" ]; then export INPUT_DATA="${DATAROOT}/${RUN}_forecast_spinup_${envir}_${cyc}" + export jobid=${RUN}_post_spinup_${envir}_${cyc}_f${fhr} else if [ "${DO_ENSEMBLE}" = "TRUE" ]; then export INPUT_DATA="${DATAROOT}/${RUN}_forecast_${mem_num}_${envir}_${cyc}" + export jobid=${RUN}_post_${mem_num}_${envir}_${cyc}_f${fhr} else - export INPUT_DATA="${DATAROOT}/${RUN}_forecast_${envir}_${cyc}" + if [ ${WGF} == "firewx" ]; then + export INPUT_DATA="${DATAROOT}/firewx_forecast_${envir}_${cyc}" + export jobid=${WGF}_post_${envir}_${cyc}_f${fhr} + else + export INPUT_DATA="${DATAROOT}/${RUN}_forecast_${envir}_${cyc}" + export jobid=${RUN}_post_${envir}_${cyc}_f${fhr} + fi fi fi -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_PRDGEN b/jobs/JRRFS_PRDGEN index 1ae7fe361..f01299e28 100755 --- a/jobs/JRRFS_PRDGEN +++ b/jobs/JRRFS_PRDGEN @@ -62,13 +62,33 @@ files corresponding to a specified forecast hour. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") +fi + export CYCLE_TYPE=${CYCLE_TYPE:-prod} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${CYCLE_TYPE}" = "spinup" ]; then + jobid=${RUN}_post_spinup_${envir}_${cyc}_f${fhr} + else + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + jobid=${RUN}_post_${mem_num}_${envir}_${cyc}_f${fhr} + else + if [ ${WGF} == "firewx" ]; then + jobid=${WGF}_post_${envir}_${cyc}_f${fhr} + else + jobid=${RUN}_post_${envir}_${cyc}_f${fhr} + fi + fi + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_PREP_CYC b/jobs/JRRFS_PREP_CYC index 599f7fcf7..ffb412c66 100755 --- a/jobs/JRRFS_PREP_CYC +++ b/jobs/JRRFS_PREP_CYC @@ -62,15 +62,39 @@ This is the J-job script for the prep_cyc tasks for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + number_tmp_BCGRP=$(echo $BCGRP | cut -c4-6) + MEMBER_NAME=${MEMBER_NAME:-$number_tmp_BCGRP} + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") +fi export CYCLE_TYPE=${CYCLE_TYPE:-prod} export CYCLE_SUBTYPE=${CYCLE_SUBTYPE:-empty} -export INPUT_DATA=${DATAROOT}/${taskid}/INPUT +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ ${CYCLE_TYPE} == "spinup" ]; then + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then # EnKF has spinup forecasts + export jobid=${RUN}_forecast_spinup_${mem_num}_${envir}_${cyc} + if [ ${CYCLE_SUBTYPE} == "ensinit" ]; then + export jobid=${RUN}_forecast_ensinit_${mem_num}_${envir}_${cyc} + fi + else + export jobid=${RUN}_forecast_spinup_${envir}_${cyc} + fi + else + if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export jobid=${RUN}_forecast_${mem_num}_${envir}_${cyc} + else + export jobid=${RUN}_forecast_${envir}_${cyc} + fi + fi +fi + +export INPUT_DATA=${DATAROOT}/${jobid}/INPUT mkdir -p ${INPUT_DATA} cd ${INPUT_DATA} diff --git a/jobs/JRRFS_PROCESS_BUFR b/jobs/JRRFS_PROCESS_BUFR index 9487b59cc..92e60ec97 100755 --- a/jobs/JRRFS_PROCESS_BUFR +++ b/jobs/JRRFS_PROCESS_BUFR @@ -61,10 +61,18 @@ the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${CYCLE_TYPE}" = "spinup" ]; then + export jobid=${RUN}_process_bufr_spinup_${envir}_${cyc} + else + export jobid=${RUN}_process_bufr_prod_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_PROCESS_LIGHTNING b/jobs/JRRFS_PROCESS_LIGHTNING index c8baa3579..d87c24b85 100755 --- a/jobs/JRRFS_PROCESS_LIGHTNING +++ b/jobs/JRRFS_PROCESS_LIGHTNING @@ -58,10 +58,18 @@ preprocess with RRFS for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${CYCLE_TYPE}" = "spinup" ]; then + export jobid=${RUN}_process_lightning_spinup_${envir}_${cyc} + else + export jobid=${RUN}_process_lightning_prod_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_PROCESS_RADAR b/jobs/JRRFS_PROCESS_RADAR index 30de4bf9e..654b2d58a 100755 --- a/jobs/JRRFS_PROCESS_RADAR +++ b/jobs/JRRFS_PROCESS_RADAR @@ -61,10 +61,18 @@ preprocessing with RRFS for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${CYCLE_TYPE}" = "spinup" ]; then + export jobid=${RUN}_process_radar_spinup_${envir}_${cyc} + else + export jobid=${RUN}_process_radar_prod_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_PROCESS_SMOKE b/jobs/JRRFS_PROCESS_SMOKE index 8baf53fd8..095fe0a9a 100755 --- a/jobs/JRRFS_PROCESS_SMOKE +++ b/jobs/JRRFS_PROCESS_SMOKE @@ -61,10 +61,18 @@ for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${CYCLE_TYPE}" = "spinup" ]; then + export jobid=${RUN}_process_smoke_spinup_${envir}_${cyc} + else + export jobid=${RUN}_process_smoke_prod_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p ${DATA} cd ${DATA} diff --git a/jobs/JRRFS_RECENTER b/jobs/JRRFS_RECENTER index 0fc0cee10..40cf5c479 100755 --- a/jobs/JRRFS_RECENTER +++ b/jobs/JRRFS_RECENTER @@ -59,13 +59,20 @@ with RRFS for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -#export mem_num=m$(echo "${ENSMEM_INDX}") export CYCLE_TYPE=${CYCLE_TYPE:-prod} -export DATA=${DATAROOT}/${jobid} +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +else + if [ "${CYCLE_TYPE}" = "spinup" ]; then + export jobid=${RUN}_recenter_spinup_${envir}_${cyc} + else + export jobid=${RUN}_recenter_${envir}_${cyc} + fi +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} rm -fr ${DATA} mkdir -p ${DATA} cd ${DATA} @@ -85,11 +92,7 @@ mkdir -p "${COMOUT}" # Specify the control anaylsis file location #----------------------------------------------------------------------- -if [ "${DO_ENSFCST}" = "TRUE" ]; then - export ctrlpath=${ENSCTRL_GESROOT} -else - export ctrlpath=${ENSCTRL_DATAROOT} -fi +export ctrlpath=${ENSCTRL_GESROOT} #----------------------------------------------------------------------- # Execute the script. diff --git a/jobs/JRRFS_SAVE_DA_OUTPUT b/jobs/JRRFS_SAVE_DA_OUTPUT index 43c2a6a6d..7f06b78e5 100755 --- a/jobs/JRRFS_SAVE_DA_OUTPUT +++ b/jobs/JRRFS_SAVE_DA_OUTPUT @@ -58,28 +58,34 @@ This is the J-job script for the task that saves DA analysis files to nwges. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ ${DO_ENSEMBLE} = "TRUE" ] || [ ${CYCLE_TYPE} == "enfcst" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") +fi # NWGES_DIR is the directory in which the model IC file (DA analysis) will be saved export CYCLE_TYPE=${CYCLE_TYPE:-prod} if [ "${CYCLE_TYPE}" = "prod" ]; then if [ ${DO_ENSEMBLE} = "TRUE" ]; then - export DATA="${DATAROOT}/${jobid}" + export jobid=${RUN}_forecast_${mem_num}_${envir}_${cyc} export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/forecast" else - export DATA="${DATAROOT}/${jobid}" + export jobid=${RUN}_forecast_${envir}_${cyc} export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/forecast" fi fi if [ ${CYCLE_TYPE} == "enfcst" ]; then - export DATA="${DATAROOT}/${jobid}" + export jobid=${RUN}_forecast_${mem_num}_${envir}_${cyc} export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/forecast_enfcst" fi +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +fi + +export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p "${NWGES_DIR}/DA_OUTPUT" cd "${NWGES_DIR}/DA_OUTPUT" diff --git a/jobs/JRRFS_SAVE_RESTART b/jobs/JRRFS_SAVE_RESTART index 9905d70a1..917ffb398 100755 --- a/jobs/JRRFS_SAVE_RESTART +++ b/jobs/JRRFS_SAVE_RESTART @@ -58,36 +58,42 @@ This is the J-job script for the task that saves restart files to nwges. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") +fi export CYCLE_TYPE=${CYCLE_TYPE:-prod} export CYCLE_SUBTYPE=${CYCLE_SUBTYPE:-empty} export SURFACE_DIR=${SURFACE_DIR:-empty} if [ "${CYCLE_TYPE}" = "spinup" ]; then if [ "${DO_ENSEMBLE}" = "TRUE" ]; then # EnKF has spinup forecasts - export DATA="${DATAROOT}/${jobid}" + export jobid=${RUN}_forecast_spinup_${mem_num}_${envir}_${cyc} export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/forecast_spinup" if [ "${CYCLE_SUBTYPE}" = "ensinit" ]; then - export DATA="${DATAROOT}/${jobid}" + export jobid=${RUN}_forecast_ensinit_${mem_num}_${envir}_${cyc} export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/forecast_ensinit" fi else - export DATA="${DATAROOT}/${jobid}" + export jobid=${RUN}_forecast_spinup_${envir}_${cyc} export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/forecast_spinup" fi else if [ "${DO_ENSEMBLE}" = "TRUE" ]; then - export DATA="${DATAROOT}/${jobid}" + export jobid=${RUN}_forecast_${mem_num}_${envir}_${cyc} export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/${mem_num}/forecast" else - export DATA="${DATAROOT}/${jobid}" + export jobid=${RUN}_forecast_${envir}_${cyc} export NWGES_DIR="${GESROOT}/${RUN}.${PDY}/${cyc}/forecast" fi fi +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +fi +export DATA=${DATA:-${DATAROOT}/${jobid}} + mkdir -p "${NWGES_DIR}/RESTART" mkdir -p "${NWGES_DIR}/INPUT" if [ "${SURFACE_DIR}" != "empty" ]; then diff --git a/jobs/JRRFS_UPDATE_LBC_SOIL b/jobs/JRRFS_UPDATE_LBC_SOIL index ed56c366c..22a29e004 100755 --- a/jobs/JRRFS_UPDATE_LBC_SOIL +++ b/jobs/JRRFS_UPDATE_LBC_SOIL @@ -61,14 +61,39 @@ analysis with RRFS for the specified cycle. export pid=${pid:-$$} export RUN=${RUN:-rrfs} -#export jobid=${jobid:-${taskid}} -export jobid=${taskid} -export mem_num=m$(echo "${ENSMEM_INDX}") +if [ ! "${MEM_TYPE}" = "MEAN" ] || [ "${DO_ENSEMBLE}" = "TRUE" ]; then + export ENSMEM_INDX=${ENSMEM_INDX:-${MEMBER_NAME}} + export mem_num=m$(echo "${ENSMEM_INDX}") +fi + export CYCLE_TYPE=${CYCLE_TYPE:-prod} -export DATA=${DATAROOT}/${jobid} +if [ "${CYCLE_TYPE}" = "spinup" ]; then + workname="gsi_spinup" +else + workname="gsi" +fi + +if [[ ! -v OB_TYPE ]]; then + OB_TYPE="conv" +fi + +if [ "${GSI_TYPE}" = "OBSERVER" ]; then + if [ "${MEM_TYPE}" = "MEAN" ]; then + export jobid=${RUN}_observer_${workname}_ensmean_${envir}_${cyc} + else + export jobid=${RUN}_observer_${workname}_${mem_num}_${envir}_${cyc} + fi +else + export jobid=${RUN}_analysis_${OB_TYPE}_${workname}_${envir}_${cyc} +fi + +if [ ${WORKFLOW_MANAGER} == "rocoto" ] && [[ ! -z ${taskid} ]]; then + export jobid=${taskid} +fi +export DATA=${DATA:-${DATAROOT}/${jobid}} if [[ ! -d ${DATA} ]]; then echo "cannot find analysis run directory" exit diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml index 06537fefc..a241078c0 100644 --- a/parm/FV3LAM_wflow.xml +++ b/parm/FV3LAM_wflow.xml @@ -42,7 +42,6 @@ Workflow task names. - @@ -66,8 +65,9 @@ Workflow task names. - + + - + &RSRV_ANALYSIS; &WALL_LIMIT_ANALYSIS; @@ -1386,11 +1386,11 @@ MODULES_RUN_TASK_FP script. &NATIVE_ANALYSIS_GSI; &WALLTIME_ANALYSIS_GSI; &NODESIZE_ALL; - &TAG;_&OBSERVER_GSI_ENSMEAN_TN;_spinup - &LOGDIR;/&OBSERVER_GSI_ENSMEAN_TN;_spinup_&TAG;_@Y@m@d@H.log + &TAG;_&OBSERVER_GSI_TN;_spinup_ensmean + &LOGDIR;/&OBSERVER_GSI_TN;_spinup_ensmean_&TAG;_@Y@m@d@H.log GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; - taskid&RUN;_&OBSERVER_GSI_ENSMEAN_TN;_spinup_&envir;_@H + taskid&RUN;_&OBSERVER_GSI_TN;_spinup_ensmean_&envir;_@H PDY@Y@m@d CDATE@Y@m@d@H cyc@H @@ -1452,6 +1452,7 @@ MODULES_RUN_TASK_FP script. DATAROOT&DATAROOT; GESROOT&GESROOT; COMROOT&COMROOT; + ENSMEM_INDX#{{ ensmem_indx_name }}# GSI_TYPEOBSERVER MEM_TYPEMEMBER CYCLE_TYPEspinup @@ -1461,7 +1462,7 @@ MODULES_RUN_TASK_FP script. - + @@ -2193,7 +2194,7 @@ MODULES_RUN_TASK_FP script. {%- if do_ensfcst %} - &FG_ROOT;/&RUN;.@Y@m@d/@H/m#mem#/forecast/DA_OUTPUT/coupler.res + &FG_ROOT;/&RUNE;.@Y@m@d/@H/m#mem#/forecast/DA_OUTPUT/coupler.res {%- else %} @@ -2356,7 +2357,7 @@ MODULES_RUN_TASK_FP script. ************************************************************************ ************************************************************************ --> - + &RSRV_ANALYSIS; &WALL_LIMIT_ANALYSIS; @@ -2366,11 +2367,11 @@ MODULES_RUN_TASK_FP script. &NATIVE_ANALYSIS_GSI; &WALLTIME_ANALYSIS_GSI; &NODESIZE_ALL; - &TAG;_&OBSERVER_GSI_ENSMEAN_TN; - &LOGDIR;/&OBSERVER_GSI_ENSMEAN_TN;_&TAG;_@Y@m@d@H.log + &TAG;_&OBSERVER_GSI_TN;_ensmean + &LOGDIR;/&OBSERVER_GSI_TN;_ensmean_&TAG;_@Y@m@d@H.log GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; - taskid&RUN;_&OBSERVER_GSI_ENSMEAN_TN;_&envir;_@H + taskid&RUN;_&OBSERVER_GSI_TN;_ensmean_&envir;_@H PDY@Y@m@d CDATE@Y@m@d@H cyc@H @@ -2443,7 +2444,7 @@ MODULES_RUN_TASK_FP script. - + @@ -3513,12 +3514,13 @@ MODULES_RUN_TASK_FP script. KEEPDATAYES -{%- if postproc_nsout_min > 0 %} +{%- if postproc_nsout_min > 0 %} &DATAROOT;/&RUN;_forecast_&envir;_@H/log.atm.f000-00-36 +{%- else %} &DATAROOT;/&RUN;_forecast_&envir;_@H/log.atm.f000 - {%- endif %} + diff --git a/parm/FV3LAM_wflow_firewx.xml b/parm/FV3LAM_wflow_firewx.xml index 1b9fa401d..f949214dd 100644 --- a/parm/FV3LAM_wflow_firewx.xml +++ b/parm/FV3LAM_wflow_firewx.xml @@ -38,6 +38,7 @@ Workflow task names. +