diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..af332b055
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+fix
+ush/config.sh
diff --git a/jobs/JREGIONAL_NOVARCLD b/jobs/JREGIONAL_NOVARCLD
new file mode 100755
index 000000000..fa85bc1a5
--- /dev/null
+++ b/jobs/JREGIONAL_NOVARCLD
@@ -0,0 +1,98 @@
+#!/bin/bash
+
+#-----------------------------------------------------------------------
+#
+# This J-JOB script runs the standalone No-Var Cloud Analysis
+# for the FV3-LAM model
+#
+#-----------------------------------------------------------------------
+
+#
+#-----------------------------------------------------------------------
+#
+# Source the variable definitions file and the bash utility functions.
+#
+#-----------------------------------------------------------------------
+#
+. ${GLOBAL_VAR_DEFNS_FP}
+. $USHDIR/source_util_funcs.sh
+#
+#-----------------------------------------------------------------------
+#
+# Save current shell options (in a global array). Then set new options
+# for this script/function.
+#
+#-----------------------------------------------------------------------
+#
+{ save_shell_opts; set -u +x; } > /dev/null 2>&1
+#
+#-----------------------------------------------------------------------
+#
+# Get the full path to the file in which this script/function is located
+# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in
+# which the file is located (scrfunc_dir).
+#
+#-----------------------------------------------------------------------
+#
+scrfunc_fp=$( readlink -f "${BASH_SOURCE[0]}" )
+scrfunc_fn=$( basename "${scrfunc_fp}" )
+scrfunc_dir=$( dirname "${scrfunc_fp}" )
+#
+#-----------------------------------------------------------------------
+#
+# Print message indicating entry into script.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+Entering script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+
+This is the J-job script for the task that runs a standalone No-Var cloud
+analysis with FV3 for the specified cycle.
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Create the working directory under the cycle directory.
+#
+#-----------------------------------------------------------------------
+#
+WORKDIR=${CYCLE_DIR}/novar_cldanl
+rm -fr ${WORKDIR}
+mkdir_vrfy -p ${WORKDIR}
+#
+#-----------------------------------------------------------------------
+#
+# Call the ex-script for this J-job and pass to it the necessary varia-
+# bles.
+#
+#-----------------------------------------------------------------------
+#
+$SCRIPTSDIR/exregional_novarcldanl.sh \
+ CYCLE_DIR="${CYCLE_DIR}" WORKDIR="${WORKDIR}" || \
+print_err_msg_exit "\
+Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed."
+#
+#-----------------------------------------------------------------------
+#
+# Print exit message.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+Exiting script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Restore the shell options saved at the beginning of this script/func-
+# tion.
+#
+#-----------------------------------------------------------------------
+#
+{ restore_shell_opts; } > /dev/null 2>&1
+
diff --git a/jobs/JREGIONAL_PROCESS_BUFR b/jobs/JREGIONAL_PROCESS_BUFR
new file mode 100755
index 000000000..a86793d64
--- /dev/null
+++ b/jobs/JREGIONAL_PROCESS_BUFR
@@ -0,0 +1,99 @@
+#!/bin/bash
+
+#
+#-----------------------------------------------------------------------
+#
+# This J-JOB script runs the preprocess of BUFR files
+# for the FV3-LAM model
+#
+#-----------------------------------------------------------------------
+#
+#
+#-----------------------------------------------------------------------
+#
+# Source the variable definitions file and the bash utility functions.
+#
+#-----------------------------------------------------------------------
+#
+. ${GLOBAL_VAR_DEFNS_FP}
+. $USHDIR/source_util_funcs.sh
+#
+#-----------------------------------------------------------------------
+#
+# Save current shell options (in a global array). Then set new options
+# for this script/function.
+#
+#-----------------------------------------------------------------------
+#
+{ save_shell_opts; set -u +x; } > /dev/null 2>&1
+#
+#-----------------------------------------------------------------------
+#
+# Get the full path to the file in which this script/function is located
+# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in
+# which the file is located (scrfunc_dir).
+#
+#-----------------------------------------------------------------------
+#
+scrfunc_fp=$( readlink -f "${BASH_SOURCE[0]}" )
+scrfunc_fn=$( basename "${scrfunc_fp}" )
+scrfunc_dir=$( dirname "${scrfunc_fp}" )
+#
+#-----------------------------------------------------------------------
+#
+# Print message indicating entry into script.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+Entering script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+
+This is the J-job script for the task that runs a BUFR preprocess for
+the specified cycle.
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Create the working directory under the cycle directory.
+#
+#-----------------------------------------------------------------------
+#
+WORKDIR=${CYCLE_DIR}/process_bufr
+rm -fr ${WORKDIR}
+mkdir_vrfy -p ${WORKDIR}
+#
+#-----------------------------------------------------------------------
+#
+# Call the ex-script for this J-job and pass to it the necessary varia-
+# bles.
+#
+#-----------------------------------------------------------------------
+#
+$SCRIPTSDIR/exregional_process_bufr.sh \
+ CYCLE_DIR="${CYCLE_DIR}" WORKDIR="${WORKDIR}" || \
+print_err_msg_exit "\
+Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed."
+#
+#-----------------------------------------------------------------------
+#
+# Print exit message.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+Exiting script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Restore the shell options saved at the beginning of this script/func-
+# tion.
+#
+#-----------------------------------------------------------------------
+#
+{ restore_shell_opts; } > /dev/null 2>&1
+
diff --git a/jobs/JREGIONAL_PROCESS_LIGHTNING b/jobs/JREGIONAL_PROCESS_LIGHTNING
new file mode 100755
index 000000000..1c786b034
--- /dev/null
+++ b/jobs/JREGIONAL_PROCESS_LIGHTNING
@@ -0,0 +1,99 @@
+#!/bin/bash
+
+#
+#-----------------------------------------------------------------------
+#
+# This J-JOB script runs the NetCDF ligthning observation preprocess
+# for the FV3-LAM model
+#
+#-----------------------------------------------------------------------
+#
+#
+#-----------------------------------------------------------------------
+#
+# Source the variable definitions file and the bash utility functions.
+#
+#-----------------------------------------------------------------------
+#
+. ${GLOBAL_VAR_DEFNS_FP}
+. $USHDIR/source_util_funcs.sh
+#
+#-----------------------------------------------------------------------
+#
+# Save current shell options (in a global array). Then set new options
+# for this script/function.
+#
+#-----------------------------------------------------------------------
+#
+{ save_shell_opts; set -u +x; } > /dev/null 2>&1
+#
+#-----------------------------------------------------------------------
+#
+# Get the full path to the file in which this script/function is located
+# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in
+# which the file is located (scrfunc_dir).
+#
+#-----------------------------------------------------------------------
+#
+scrfunc_fp=$( readlink -f "${BASH_SOURCE[0]}" )
+scrfunc_fn=$( basename "${scrfunc_fp}" )
+scrfunc_dir=$( dirname "${scrfunc_fp}" )
+#
+#-----------------------------------------------------------------------
+#
+# Print message indicating entry into script.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+Entering script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+
+This is the J-job script for the task that runs a lightning preprocess for
+the specified cycle.
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Create the working directory under the cycle directory.
+#
+#-----------------------------------------------------------------------
+#
+WORKDIR=${CYCLE_DIR}/process_lightning
+rm -fr ${WORKDIR}
+mkdir_vrfy -p ${WORKDIR}
+#
+#-----------------------------------------------------------------------
+#
+# Call the ex-script for this J-job and pass to it the necessary varia-
+# bles.
+#
+#-----------------------------------------------------------------------
+#
+$SCRIPTSDIR/exregional_process_lightning.sh \
+ CYCLE_DIR="${CYCLE_DIR}" WORKDIR="${WORKDIR}" || \
+print_err_msg_exit "\
+Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed."
+#
+#-----------------------------------------------------------------------
+#
+# Print exit message.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+Exiting script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Restore the shell options saved at the beginning of this script/func-
+# tion.
+#
+#-----------------------------------------------------------------------
+#
+{ restore_shell_opts; } > /dev/null 2>&1
+
diff --git a/jobs/JREGIONAL_PROCESS_RADARREF b/jobs/JREGIONAL_PROCESS_RADARREF
index 2c8ec7eb7..103de0282 100755
--- a/jobs/JREGIONAL_PROCESS_RADARREF
+++ b/jobs/JREGIONAL_PROCESS_RADARREF
@@ -1,11 +1,14 @@
#!/bin/bash
+
+#
#-----------------------------------------------------------------------
#
# This J-JOB script runs the radar reflectivity preprocess
# for the FV3-LAM model
#
#-----------------------------------------------------------------------
+#
#
#-----------------------------------------------------------------------
@@ -60,9 +63,7 @@ preprocess with FV3 for the specified cycle.
#-----------------------------------------------------------------------
#
WORKDIR=${CYCLE_DIR}/PROCESS_RADARREF
-if [ -r ${WORKDIR} ]; then
- rm -fr ${WORKDIR}
-fi
+rm -fr ${WORKDIR}
mkdir_vrfy -p ${WORKDIR}
#
#-----------------------------------------------------------------------
diff --git a/jobs/JREGIONAL_REFL2TTEN b/jobs/JREGIONAL_REFL2TTEN
index 0e7fcadc8..e6de2760c 100755
--- a/jobs/JREGIONAL_REFL2TTEN
+++ b/jobs/JREGIONAL_REFL2TTEN
@@ -60,9 +60,7 @@ the specified cycle.
#-----------------------------------------------------------------------
#
WORKDIR=${CYCLE_DIR}/REFL2TTEN
-if [ -r ${WORKDIR} ]; then
- rm -fr ${WORKDIR}
-fi
+rm -fr ${WORKDIR}
mkdir_vrfy -p ${WORKDIR}
#
#-----------------------------------------------------------------------
diff --git a/jobs/JREGIONAL_RUN_ANAL b/jobs/JREGIONAL_RUN_ANAL
index da5409208..c49ea087c 100755
--- a/jobs/JREGIONAL_RUN_ANAL
+++ b/jobs/JREGIONAL_RUN_ANAL
@@ -61,9 +61,7 @@ the specified cycle.
#-----------------------------------------------------------------------
#
ANALWORKDIR=${CYCLE_DIR}/ANAL_GSI
-if [ -r ${ANALWORKDIR} ]; then
- rm -fr ${ANALWORKDIR}
-fi
+rm -fr ${ANALWORKDIR}
mkdir_vrfy -p ${ANALWORKDIR}
#
#-----------------------------------------------------------------------
diff --git a/scripts/exregional_novarcldanl.sh b/scripts/exregional_novarcldanl.sh
new file mode 100755
index 000000000..e25acee9f
--- /dev/null
+++ b/scripts/exregional_novarcldanl.sh
@@ -0,0 +1,315 @@
+#!/bin/bash
+
+#
+#-----------------------------------------------------------------------
+#
+# Source the variable definitions file and the bash utility functions.
+#
+#-----------------------------------------------------------------------
+#
+. ${GLOBAL_VAR_DEFNS_FP}
+. $USHDIR/source_util_funcs.sh
+#
+#-----------------------------------------------------------------------
+#
+# Save current shell options (in a global array). Then set new options
+# for this script/function.
+#
+#-----------------------------------------------------------------------
+#
+{ save_shell_opts; set -u +x; } > /dev/null 2>&1
+#
+#-----------------------------------------------------------------------
+#
+# Get the full path to the file in which this script/function is located
+# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in
+# which the file is located (scrfunc_dir).
+#
+#-----------------------------------------------------------------------
+#
+scrfunc_fp=$( readlink -f "${BASH_SOURCE[0]}" )
+scrfunc_fn=$( basename "${scrfunc_fp}" )
+scrfunc_dir=$( dirname "${scrfunc_fp}" )
+#
+#-----------------------------------------------------------------------
+#
+# Print message indicating entry into script.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+Entering script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+
+This is the ex-script for the task that conduct no-var cloud analysis
+with FV3 for the specified cycle.
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Specify the set of valid argument names for this script/function.
+# Then process the arguments provided to this script/function (which
+# should consist of a set of name-value pairs of the form arg1="value1",
+# etc).
+#
+#-----------------------------------------------------------------------
+#
+valid_args=( "CYCLE_DIR" "WORKDIR")
+process_args valid_args "$@"
+#
+#-----------------------------------------------------------------------
+#
+# For debugging purposes, print out values of arguments passed to this
+# script. Note that these will be printed out only if VERBOSE is set to
+# TRUE.
+#
+#-----------------------------------------------------------------------
+#
+print_input_args valid_args
+#
+#-----------------------------------------------------------------------
+#
+# Load modules.
+#
+#-----------------------------------------------------------------------
+#
+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
+
+ ulimit -s unlimited
+ ulimit -a
+ APRUN="mpirun -l -np ${PE_MEMBER01}"
+ ;;
+#
+"HERA")
+ ulimit -s unlimited
+ ulimit -a
+ APRUN="srun"
+ ;;
+#
+"JET")
+ ulimit -s unlimited
+ ulimit -a
+ APRUN="srun"
+ ;;
+#
+"ODIN")
+#
+ module list
+
+ ulimit -s unlimited
+ ulimit -a
+ APRUN="srun -n ${PE_MEMBER01}"
+ ;;
+#
+esac
+#
+#-----------------------------------------------------------------------
+#
+# Extract from CDATE the starting year, month, day, and hour of the
+# forecast. These are needed below for various operations.
+#
+#-----------------------------------------------------------------------
+#
+set -x
+START_DATE=`echo "${CDATE}" | sed 's/\([[:digit:]]\{2\}\)$/ \1/'`
+YYYYMMDDHH=`date +%Y%m%d%H -d "${START_DATE}"`
+JJJ=`date +%j -d "${START_DATE}"`
+
+YYYY=${YYYYMMDDHH:0:4}
+MM=${YYYYMMDDHH:4:2}
+DD=${YYYYMMDDHH:6:2}
+HH=${YYYYMMDDHH:8:2}
+YYYYMMDD=${YYYYMMDDHH:0:8}
+#
+#-----------------------------------------------------------------------
+#
+# Get into working directory and define fix directory
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "$VERBOSE" "
+Getting into working directory for radar tten process ..."
+
+workdir=${WORKDIR}
+cd_vrfy ${workdir}
+
+fixdir=$FIXgsi
+print_info_msg "$VERBOSE" "fixdir is $fixdir"
+pwd
+
+#
+#-----------------------------------------------------------------------
+#
+# link or copy background and grid configuration files
+#
+#-----------------------------------------------------------------------
+
+cp_vrfy ${fixdir}/fv3_akbk fv3_akbk
+cp_vrfy ${fixdir}/fv3_grid_spec fv3_grid_spec
+
+bkpath=${CYCLE_DIR}/INPUT
+if [ -w ${bkpath}/gfs_data.tile7.halo0.nc ]; then # Use background from INPUT
+ ln_vrfy -s ${bkpath}/sfc_data.tile7.halo0.nc fv3_sfcdata
+ ln_vrfy -s ${bkpath}/gfs_data.tile7.halo0.nc fv3_dynvars
+ ln_vrfy -s ${bkpath}/gfs_data.tile7.halo0.nc fv3_tracer
+else # Use background from RESTART
+ ln_vrfy -s ${bkpath}/fv_core.res.tile1.nc fv3_dynvars
+ ln_vrfy -s ${bkpath}/fv_tracer.res.tile1.nc fv3_tracer
+ ln_vrfy -s ${bkpath}/sfc_data.nc fv3_sfcdata
+fi
+
+#
+#-----------------------------------------------------------------------
+#
+# link/copy observation files to working directory
+#
+#-----------------------------------------------------------------------
+
+PROCESS_BUFR_PATH=${CYCLE_DIR}/process_bufr
+
+obs_file=${PROCESS_BUFR_PATH}/LightningInFV3LAM.dat
+if [ -r "${obs_file}" ]; then
+ cp_vrfy "${obs_file}" "LightningInFV3LAM.dat"
+else
+ print_info_msg "$VERBOSE" "Warning: ${obs_file} does not exist!"
+fi
+
+obs_file=${PROCESS_BUFR_PATH}/NASALaRC_cloud4fv3.bin
+if [ -r "${obs_file}" ]; then
+ cp_vrfy "${obs_file}" "NASALaRC_cloud4fv3.bin"
+else
+ print_info_msg "$VERBOSE" "Warning: ${obs_file} does not exist!"
+fi
+
+obs_file=${PROCESS_BUFR_PATH}/fv3_metarcloud.bin
+if [ -r "${obs_file}" ]; then
+ cp_vrfy "${obs_file}" "fv3_metarcloud.bin"
+else
+ print_info_msg "$VERBOSE" "Warning: ${obs_file} does not exist!"
+fi
+
+#-----------------------------------------------------------------------
+#
+# Build namelist
+#
+#-----------------------------------------------------------------------
+
+cat << EOF > gsiparm.anl
+
+ &SETUP
+ iyear=${YYYY},
+ imonth=${MM},
+ iday=${DD},
+ ihour=${HH},
+ iminute=00,
+ /
+ &RAPIDREFRESH_CLDSURF
+ dfi_radar_latent_heat_time_period=20.0,
+ metar_impact_radius=10.0,
+ metar_impact_radius_lowCloud=4.0,
+ l_pw_hgt_adjust=.true.,
+ l_limit_pw_innov=.true.,
+ max_innov_pct=0.1,
+ l_cleanSnow_WarmTs=.true.,
+ r_cleanSnow_WarmTs_threshold=5.0,
+ l_conserve_thetaV=.true.,
+ i_conserve_thetaV_iternum=3,
+ l_cld_bld=.true.,
+ l_numconc=.true.,
+ cld_bld_hgt=1200.0,
+ build_cloud_frac_p=0.50,
+ clear_cloud_frac_p=0.10,
+ iclean_hydro_withRef_allcol=1,
+ i_gsdcldanal_type=6,
+ i_gsdsfc_uselist=1,
+ i_lightpcp=1,
+ i_gsdqc=2,
+ l_saturate_bkCloud=.true.,
+ /
+EOF
+
+
+
+#
+#-----------------------------------------------------------------------
+#
+# Copy the executable to the run directory.
+#
+#-----------------------------------------------------------------------
+#
+EXEC="${EXECDIR}/fv3sar_novarcldana.exe"
+
+if [ -f $EXEC ]; then
+ print_info_msg "$VERBOSE" "
+Copying the noVar Cloud Analysis executable to the run directory..."
+ cp_vrfy ${EXEC} ${workdir}/fv3sar_novarcldana.exe
+else
+ print_err_msg_exit "\
+The executable specified in EXEC does not exist:
+ EXEC = \"$EXEC\"
+Build executable and rerun."
+fi
+#
+#
+#
+#-----------------------------------------------------------------------
+#
+# Run the novar cloud analysis application.
+#
+#-----------------------------------------------------------------------
+#
+$APRUN ./fv3sar_novarcldana.exe > stdout 2>&1 || print_err_msg_exit "\
+Call to executable to run No Var Cloud Analysis returned with nonzero exit code."
+
+#
+#-----------------------------------------------------------------------
+#
+# Print message indicating successful completion of script.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+RADAR REFL TTEN PROCESS completed successfully!!!
+
+Exiting script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Restore the shell options saved at the beginning of this script/func-
+# tion.
+#
+#-----------------------------------------------------------------------
+#
+{ restore_shell_opts; } > /dev/null 2>&1
+
diff --git a/scripts/exregional_process_bufr.sh b/scripts/exregional_process_bufr.sh
new file mode 100755
index 000000000..22df900b9
--- /dev/null
+++ b/scripts/exregional_process_bufr.sh
@@ -0,0 +1,433 @@
+#!/bin/bash
+
+#
+#-----------------------------------------------------------------------
+#
+# Source the variable definitions file and the bash utility functions.
+#
+#-----------------------------------------------------------------------
+#
+. ${GLOBAL_VAR_DEFNS_FP}
+. $USHDIR/source_util_funcs.sh
+#
+#-----------------------------------------------------------------------
+#
+# Save current shell options (in a global array). Then set new options
+# for this script/function.
+#
+#-----------------------------------------------------------------------
+#
+{ save_shell_opts; set -u +x; } > /dev/null 2>&1
+#
+#-----------------------------------------------------------------------
+#
+# Get the full path to the file in which this script/function is located
+# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in
+# which the file is located (scrfunc_dir).
+#
+#-----------------------------------------------------------------------
+#
+scrfunc_fp=$( readlink -f "${BASH_SOURCE[0]}" )
+scrfunc_fn=$( basename "${scrfunc_fp}" )
+scrfunc_dir=$( dirname "${scrfunc_fp}" )
+#
+#-----------------------------------------------------------------------
+#
+# Print message indicating entry into script.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+Entering script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+
+This is the ex-script for the task that runs bufr (cloud, metar, lightning) preprocess
+with FV3 for the specified cycle.
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Specify the set of valid argument names for this script/function.
+# Then process the arguments provided to this script/function (which
+# should consist of a set of name-value pairs of the form arg1="value1",
+# etc).
+#
+#-----------------------------------------------------------------------
+#
+valid_args=( "CYCLE_DIR" "WORKDIR")
+process_args valid_args "$@"
+#
+#-----------------------------------------------------------------------
+#
+# For debugging purposes, print out values of arguments passed to this
+# script. Note that these will be printed out only if VERBOSE is set to
+# TRUE.
+#
+#-----------------------------------------------------------------------
+#
+print_input_args valid_args
+#
+#-----------------------------------------------------------------------
+#
+# Load modules.
+#
+#-----------------------------------------------------------------------
+#
+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
+
+ ulimit -s unlimited
+ ulimit -a
+ APRUN="mpirun -l -np ${PE_MEMBER01}"
+ ;;
+#
+"HERA")
+ 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}"
+ ;;
+#
+"ODIN")
+#
+ module list
+
+ ulimit -s unlimited
+ ulimit -a
+ APRUN="srun -n ${PE_MEMBER01}"
+ ;;
+#
+esac
+#
+#-----------------------------------------------------------------------
+#
+# Extract from CDATE the starting year, month, day, and hour of the
+# forecast. These are needed below for various operations.
+#
+#-----------------------------------------------------------------------
+#
+set -x
+START_DATE=`echo "${CDATE}" | sed 's/\([[:digit:]]\{2\}\)$/ \1/'`
+ YYYYMMDDHH=`date +%Y%m%d%H -d "${START_DATE}"`
+ JJJ=`date +%j -d "${START_DATE}"`
+
+YYYY=${YYYYMMDDHH:0:4}
+MM=${YYYYMMDDHH:4:2}
+DD=${YYYYMMDDHH:6:2}
+HH=${YYYYMMDDHH:8:2}
+YYYYMMDD=${YYYYMMDDHH:0:8}
+
+YYJJJHH=`date +"%y%j%H" -d "${START_DATE}"`
+PREYYJJJHH=`date +"%y%j%H" -d "${START_DATE} 1 hours ago"`
+
+#
+#-----------------------------------------------------------------------
+#
+# Get into working directory
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "$VERBOSE" "
+Getting into working directory for BUFR obseration process ..."
+
+cd ${WORKDIR}
+
+fixdir=$FIXgsi/
+
+print_info_msg "$VERBOSE" "fixdir is $fixdir"
+
+#
+#-----------------------------------------------------------------------
+#
+# link or copy background files
+#
+#-----------------------------------------------------------------------
+
+cp_vrfy ${fixdir}/fv3_grid_spec fv3sar_grid_spec.nc
+cp_vrfy ${fixdir}/geo_em.d01.nc geo_em.d01.nc
+
+
+#-----------------------------------------------------------------------
+#
+# copy bufr table
+#
+#-----------------------------------------------------------------------
+BUFR_TABLE=${fixdir}/prepobs_prep_RAP.bufrtable
+cp_vrfy $BUFR_TABLE prepobs_prep.bufrtable
+
+#
+#-----------------------------------------------------------------------
+#-----------------------------------------------------------------------
+#
+# Link to the observation lightning bufr files
+#
+#-----------------------------------------------------------------------
+
+run_lightning=false
+obs_file=${OBSPATH}/${YYYYMMDDHH}.rap.t${HH}z.lghtng.tm00.bufr_d
+print_info_msg "$VERBOSE" "obsfile is $obs_file"
+if [ -r "${obs_file}" ]; then
+ cp_vrfy "${obs_file}" "lghtngbufr"
+ run_lightning=true
+else
+ print_info_msg "$VERBOSE" "Warning: ${obs_file} does not exist!"
+fi
+
+#-----------------------------------------------------------------------
+#
+# Build namelist and run executable for lightning
+#
+# analysis_time : process obs used for this analysis date (YYYYMMDDHH)
+# minute : process obs used for this analysis minute (integer)
+# trange_start : obs time window start (minutes before analysis time)
+# trange_end : obs time window end (minutes after analysis time)
+# bkversion : grid type (background will be used in the analysis)
+# 0 for ARW (default)
+# 1 for FV3LAM
+#-----------------------------------------------------------------------
+
+cat << EOF > lightning_bufr.namelist
+ &setup
+ analysis_time = ${YYYYMMDDHH},
+ minute=00,
+ trange_start=-10,
+ trange_end=10,
+ bkversion=1,
+ /
+
+EOF
+
+#
+#-----------------------------------------------------------------------
+#
+# link/copy executable file to working directory
+#
+#-----------------------------------------------------------------------
+#
+EXEC="${EXECDIR}/process_Lightning_bufr.exe"
+
+if [ -f $EXEC ]; then
+ print_info_msg "$VERBOSE" "
+Copying the lightning process executable to the run directory..."
+ cp_vrfy ${EXEC} ${WORKDIR}/process_Lightning_bufr.exe
+else
+ print_err_msg_exit "\
+The executable specified in EXEC does not exist:
+ EXEC = \"$EXEC\"
+Build lightning process and rerun."
+fi
+#
+#
+#-----------------------------------------------------------------------
+#
+# Run the process for lightning bufr file
+#
+#-----------------------------------------------------------------------
+#
+if [ $run_lightning ]; then
+ $APRUN ./process_Lightning_bufr.exe > stdout_lightning_bufr 2>&1 || print_err_msg "\
+ Call to executable to run lightning process returned with nonzero exit code."
+fi
+
+#
+#-----------------------------------------------------------------------
+#-----------------------------------------------------------------------
+#
+# Link to the observation NASA LaRC cloud bufr file
+#
+#-----------------------------------------------------------------------
+
+obs_file=${OBSPATH}/${YYYYMMDDHH}.rap.t${HH}z.lgycld.tm00.bufr_d
+print_info_msg "$VERBOSE" "obsfile is $obs_file"
+run_cloud=false
+if [ -r "${obs_file}" ]; then
+ cp_vrfy "${obs_file}" "NASA_LaRC_cloud.bufr"
+ run_cloud=true
+else
+ print_info_msg "$VERBOSE" "Warning: ${obs_file} does not exist!"
+fi
+
+#-----------------------------------------------------------------------
+#
+# Build namelist and run executable for NASA LaRC cloud
+#
+# analysis_time : process obs used for this analysis date (YYYYMMDDHH)
+# bufrfile : result BUFR file name
+# npts_rad : number of grid point to build search box (integer)
+# ioption : interpolation options
+# = 1 is nearest neighrhood
+# = 2 is median of cloudy fov
+# bkversion : grid type (background will be used in the analysis)
+# = 0 for ARW (default)
+# = 1 for FV3LAM
+#-----------------------------------------------------------------------
+
+cat << EOF > namelist_nasalarc
+ &setup
+ analysis_time = ${YYYYMMDDHH},
+ bufrfile='NASALaRCCloudInGSI_bufr.bufr',
+ npts_rad=1,
+ ioption = 2,
+ bkversion=1,
+ /
+EOF
+
+#
+#-----------------------------------------------------------------------
+#
+# Copy the executable to the run directory.
+#
+#-----------------------------------------------------------------------
+#
+EXEC="${EXECDIR}/process_larccld.exe"
+
+if [ -f $EXEC ]; then
+ print_info_msg "$VERBOSE" "
+Copying the NASA LaRC cloud process executable to the run directory..."
+ cp_vrfy ${EXEC} ${WORKDIR}/process_larccld.exe
+else
+ print_err_msg_exit "\
+The executable specified in EXEC does not exist:
+ EXEC = \"$EXEC\"
+Build lightning process and rerun."
+fi
+#
+#
+#-----------------------------------------------------------------------
+#
+# Run the process for NASA LaRc cloud bufr file
+#
+#-----------------------------------------------------------------------
+#
+if [ $run_cloud ]; then
+ $APRUN ./process_larccld.exe > stdout_nasalarc 2>&1 || print_err_msg "\
+ Call to executable to run NASA LaRC Cloud process returned with nonzero exit code."
+fi
+
+#
+#-----------------------------------------------------------------------
+#-----------------------------------------------------------------------
+#
+# Link to the observation prepbufr bufr file for METAR cloud
+#
+#-----------------------------------------------------------------------
+
+obs_file=${OBSPATH}/${YYYYMMDDHH}.rap.t${HH}z.prepbufr.tm00
+print_info_msg "$VERBOSE" "obsfile is $obs_file"
+run_metar=false
+if [ -r "${obs_file}" ]; then
+ cp_vrfy "${obs_file}" "prepbufr"
+ run_metar=true
+else
+ print_info_msg "$VERBOSE" "Warning: ${obs_file} does not exist!"
+fi
+
+#-----------------------------------------------------------------------
+#
+# Build namelist for METAR cloud
+#
+# analysis_time : process obs used for this analysis date (YYYYMMDDHH)
+# analysis_minute : process obs used for this analysis minute (integer)
+# prepbufrfile : input prepbufr file name
+# twindin : observation time window (real: hours before and after analysis time)
+#
+#-----------------------------------------------------------------------
+
+cat << EOF > namelist_metarcld
+ &setup
+ analysis_time = ${YYYYMMDDHH},
+ prepbufrfile='prepbufr',
+ twindin=0.5,
+ /
+EOF
+
+#
+#-----------------------------------------------------------------------
+#
+# Copy the executable to the run directory.
+#
+#-----------------------------------------------------------------------
+#
+EXEC="${EXECDIR}/process_metarcld.exe"
+
+if [ -f $EXEC ]; then
+ print_info_msg "$VERBOSE" "
+Copying the METAR cloud process executable to the run directory..."
+ cp_vrfy ${EXEC} ${WORKDIR}/process_metarcld.exe
+else
+ print_err_msg_exit "\
+The executable specified in EXEC does not exist:
+ EXEC = \"$EXEC\"
+Build lightning process and rerun."
+fi
+#
+#
+#-----------------------------------------------------------------------
+#
+# Run the process for METAR cloud bufr file
+#
+#-----------------------------------------------------------------------
+#
+if [ $run_metar ]; then
+ $APRUN ./process_metarcld.exe > stdout_metarcld 2>&1 || print_err_msg "\
+ Call to executable to run METAR cloud process returned with nonzero exit code."
+fi
+
+#
+#-----------------------------------------------------------------------
+#
+# Print message indicating successful completion of script.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+BUFR PROCESS completed successfully!!!
+
+Exiting script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Restore the shell options saved at the beginning of this script/func-
+# tion.
+#
+#-----------------------------------------------------------------------
+#
+{ restore_shell_opts; } > /dev/null 2>&1
+
diff --git a/scripts/exregional_process_lightning.sh b/scripts/exregional_process_lightning.sh
new file mode 100755
index 000000000..ec39feb59
--- /dev/null
+++ b/scripts/exregional_process_lightning.sh
@@ -0,0 +1,295 @@
+#!/bin/bash
+
+#
+#-----------------------------------------------------------------------
+#
+# Source the variable definitions file and the bash utility functions.
+#
+#-----------------------------------------------------------------------
+#
+. ${GLOBAL_VAR_DEFNS_FP}
+. $USHDIR/source_util_funcs.sh
+#
+#-----------------------------------------------------------------------
+#
+# Save current shell options (in a global array). Then set new options
+# for this script/function.
+#
+#-----------------------------------------------------------------------
+#
+{ save_shell_opts; set -u +x; } > /dev/null 2>&1
+#
+#-----------------------------------------------------------------------
+#
+# Get the full path to the file in which this script/function is located
+# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in
+# which the file is located (scrfunc_dir).
+#
+#-----------------------------------------------------------------------
+#
+scrfunc_fp=$( readlink -f "${BASH_SOURCE[0]}" )
+scrfunc_fn=$( basename "${scrfunc_fp}" )
+scrfunc_dir=$( dirname "${scrfunc_fp}" )
+#
+#-----------------------------------------------------------------------
+#
+# Print message indicating entry into script.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+Entering script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+
+This is the ex-script for the task that runs lightning preprocess
+with FV3 for the specified cycle.
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Specify the set of valid argument names for this script/function.
+# Then process the arguments provided to this script/function (which
+# should consist of a set of name-value pairs of the form arg1="value1",
+# etc).
+#
+#-----------------------------------------------------------------------
+#
+valid_args=( "CYCLE_DIR" "WORKDIR")
+process_args valid_args "$@"
+#
+#-----------------------------------------------------------------------
+#
+# For debugging purposes, print out values of arguments passed to this
+# script. Note that these will be printed out only if VERBOSE is set to
+# TRUE.
+#
+#-----------------------------------------------------------------------
+#
+print_input_args valid_args
+#
+#-----------------------------------------------------------------------
+#
+# Load modules.
+#
+#-----------------------------------------------------------------------
+#
+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
+
+ ulimit -s unlimited
+ ulimit -a
+ APRUN="mpirun -l -np ${PE_MEMBER01}"
+ ;;
+#
+"HERA")
+ 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}"
+ ;;
+#
+"ODIN")
+#
+ module list
+
+ ulimit -s unlimited
+ ulimit -a
+ APRUN="srun -n ${PE_MEMBER01}"
+ ;;
+#
+esac
+#
+#-----------------------------------------------------------------------
+#
+# Extract from CDATE the starting year, month, day, and hour of the
+# forecast. These are needed below for various operations.
+#
+#-----------------------------------------------------------------------
+#
+set -x
+START_DATE=`echo "${CDATE}" | sed 's/\([[:digit:]]\{2\}\)$/ \1/'`
+ YYYYMMDDHH=`date +%Y%m%d%H -d "${START_DATE}"`
+ JJJ=`date +%j -d "${START_DATE}"`
+
+YYYY=${YYYYMMDDHH:0:4}
+MM=${YYYYMMDDHH:4:2}
+DD=${YYYYMMDDHH:6:2}
+HH=${YYYYMMDDHH:8:2}
+YYYYMMDD=${YYYYMMDDHH:0:8}
+
+YYJJJHH=`date +"%y%j%H" -d "${START_DATE}"`
+PREYYJJJHH=`date +"%y%j%H" -d "${START_DATE} 1 hours ago"`
+
+#
+#-----------------------------------------------------------------------
+#
+# Get into working directory
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "$VERBOSE" "
+Getting into working directory for lightning process ..."
+
+cd ${WORKDIR}
+
+fixdir=$FIXgsi/
+
+print_info_msg "$VERBOSE" "fixdir is $fixdir"
+
+#
+#-----------------------------------------------------------------------
+#
+# link or copy background and grid files
+#
+#-----------------------------------------------------------------------
+
+cp_vrfy ${fixdir}/fv3_grid_spec fv3sar_grid_spec.nc
+cp_vrfy ${fixdir}/geo_em.d01.nc geo_em.d01.nc
+
+
+#-----------------------------------------------------------------------
+#
+# Link to the NLDN data
+#
+#-----------------------------------------------------------------------
+filenum=0
+LIGHTNING_FILE=${LIGHTNING_ROOT}/vaisala/netcdf
+for n in 00 05 ; do
+ filename=${LIGHTNING_FILE}/${YYJJJHH}${n}0005r
+ if [ -r ${filename} ]; then
+ ((filenum += 1 ))
+ ln -sf ${filename} ./NLDN_lightning_${filenum}
+ else
+ echo " ${filename} does not exist"
+ fi
+done
+for n in 55 50 45 40 35 ; do
+ filename=${LIGHTNING_FILE}/${PREYYJJJHH}${n}0005r
+ if [ -r ${filename} ]; then
+ ((filenum += 1 ))
+ ln -sf ${filename} ./NLDN_lightning_${filenum}
+ else
+ echo " ${filename} does not exist"
+ fi
+done
+
+echo "found GLD360 files: ${filenum}"
+
+#-----------------------------------------------------------------------
+#
+# copy bufr table from fix directory
+#
+#-----------------------------------------------------------------------
+BUFR_TABLE=${fixdir}/prepobs_prep_RAP.bufrtable
+
+cp_vrfy $BUFR_TABLE prepobs_prep.bufrtable
+
+#-----------------------------------------------------------------------
+#
+# Build namelist and run executable
+#
+# analysis_time : process obs used for this analysis date (YYYYMMDDHH)
+# NLDN_filenum : number of NLDN lighting observation files
+# IfAlaska : logic to decide if to process Alaska lightning obs
+# bkversion : grid type (background will be used in the analysis)
+# = 0 for ARW (default)
+# = 1 for FV3LAM
+#-----------------------------------------------------------------------
+
+cat << EOF > lightning.namelist
+ &setup
+ analysis_time = ${YYYYMMDDHH},
+ NLDN_filenum = ${filenum},
+ IfAlaska = false,
+ bkversion=1,
+ /
+
+EOF
+
+#
+#-----------------------------------------------------------------------
+#
+# Copy the executable to the run directory.
+#
+#-----------------------------------------------------------------------
+#
+EXEC="${EXECDIR}/process_Lightning_nc.exe"
+
+if [ -f $EXEC ]; then
+ print_info_msg "$VERBOSE" "
+Copying the lightning process executable to the run directory..."
+ cp_vrfy ${EXEC} ${WORKDIR}/process_Lightning_nc.exe
+else
+ print_err_msg_exit "\
+The executable specified in EXEC does not exist:
+ EXEC = \"$EXEC\"
+Build lightning process and rerun."
+fi
+#
+#
+#-----------------------------------------------------------------------
+#
+# Run the process
+#
+#-----------------------------------------------------------------------
+#
+$APRUN ./process_Lightning_nc.exe < lightning.namelist > stdout 2>&1 || print_err_msg "\
+Call to executable to run lightning (nc) process returned with nonzero exit code."
+#
+#-----------------------------------------------------------------------
+#
+# Print message indicating successful completion of script.
+#
+#-----------------------------------------------------------------------
+#
+print_info_msg "
+========================================================================
+LIGHTNING PROCESS completed successfully!!!
+
+Exiting script: \"${scrfunc_fn}\"
+In directory: \"${scrfunc_dir}\"
+========================================================================"
+#
+#-----------------------------------------------------------------------
+#
+# Restore the shell options saved at the beginning of this script/func-
+# tion.
+#
+#-----------------------------------------------------------------------
+#
+{ restore_shell_opts; } > /dev/null 2>&1
+
diff --git a/scripts/exregional_process_radarref.sh b/scripts/exregional_process_radarref.sh
index 412872c50..cc2777ee0 100755
--- a/scripts/exregional_process_radarref.sh
+++ b/scripts/exregional_process_radarref.sh
@@ -162,7 +162,7 @@ Getting into working directory for radar reflectivity process ..."
cd ${WORKDIR}
-fixdir=$FIXgsi/$PREDEF_GRID_NAME
+fixdir=$FIXgsi/
print_info_msg "$VERBOSE" "fixdir is $fixdir"
@@ -176,6 +176,7 @@ print_info_msg "$VERBOSE" "fixdir is $fixdir"
FV3SARPATH=${CYCLE_DIR}
cp_vrfy ${fixdir}/fv3_grid_spec fv3sar_grid_spec.nc
+
#
#-----------------------------------------------------------------------
#
@@ -184,7 +185,9 @@ cp_vrfy ${fixdir}/fv3_grid_spec fv3sar_grid_spec.nc
#-----------------------------------------------------------------------
NSSL=${OBSPATH_NSSLMOSIAC}
-mrms="MRMS_EXP_MergedReflectivityQC"
+
+mrms="MRMS_MergedReflectivityQC"
+
echo "${MM0} ${MM1} ${MM2} ${MM3}"
# Link to the MRMS operational data
@@ -240,6 +243,16 @@ cp_vrfy $BUFR_TABLE prepobs_prep.bufrtable
#
# Build namelist and run executable
#
+# tversion : data source version
+# = 1 NSSL 1 tile grib2 for single level
+# = 4 NSSL 4 tiles binary
+# = 8 NSSL 8 tiles netcdf
+# bkversion : grid type (background will be used in the analysis)
+# 0 for ARW (default)
+# 1 for FV3LAM
+# analysis_time : process obs used for this analysis date (YYYYMMDDHH)
+# dataPath : path of the radar reflectivity mosaic files.
+#
#-----------------------------------------------------------------------
cat << EOF > mosaic.namelist
@@ -279,7 +292,7 @@ fi
#
#-----------------------------------------------------------------------
#
-$APRUN ./process_NSSL_mosaic.exe > stdout 2>&1 || print_err_msg_exit "\
+$APRUN ./process_NSSL_mosaic.exe > stdout 2>&1 || print_err_msg "\
Call to executable to run radar refl process returned with nonzero exit code."
#
#-----------------------------------------------------------------------
diff --git a/scripts/exregional_refl2tten.sh b/scripts/exregional_refl2tten.sh
index 926342cf4..29410defb 100755
--- a/scripts/exregional_refl2tten.sh
+++ b/scripts/exregional_refl2tten.sh
@@ -161,7 +161,8 @@ Getting into working directory for radar tten process ..."
workdir=${WORKDIR}
cd_vrfy ${workdir}
-fixdir=$FIXgsi/$PREDEF_GRID_NAME
+fixdir=$FIXgsi
+
print_info_msg "$VERBOSE" "fixdir is $fixdir"
pwd
@@ -189,14 +190,26 @@ fi
#
#-----------------------------------------------------------------------
#
-# link observation files
-# copy observation files to working directory
+# link/copy observation files to working directory
#
#-----------------------------------------------------------------------
-
-# Link to the radar binary data
PROCESS_RADARREF_PATH=${CYCLE_DIR}/PROCESS_RADARREF
-ln -s ${PROCESS_RADARREF_PATH}/RefInGSI3D.dat ./RefInGSI3D.dat_01
+PROCESS_LIGHTNING_PATH=${CYCLE_DIR}/process_lightning
+
+obs_file=${PROCESS_RADARREF_PATH}/RefInGSI3D.dat
+if [ -r "${obs_file}" ]; then
+ cp_vrfy "${obs_file}" "RefInGSI3D.dat_01"
+else
+ print_info_msg "$VERBOSE" "Warning: ${obs_file} does not exist!"
+fi
+
+obs_file=${PROCESS_RADARREF_PATH}/LightningInFV3LAM.dat
+if [ -r "${obs_file}" ]; then
+ cp_vrfy "${obs_file}" "LightningInGSI.dat_01"
+else
+ print_info_msg "$VERBOSE" "Warning: ${obs_file} does not exist!"
+fi
+
#-----------------------------------------------------------------------
#
@@ -215,7 +228,8 @@ cp_vrfy $BUFR_TABLE prepobs_prep.bufrtable
#
#-----------------------------------------------------------------------
#
-EXEC="${EXECDIR}/ref2ttenfv3sar.exe"
+
+EXEC="${EXECDIR}/ref2tten.exe"
if [ -f $EXEC ]; then
print_info_msg "$VERBOSE" "
diff --git a/ush/addtten.py b/ush/addtten.py
new file mode 100644
index 000000000..5e7d09113
--- /dev/null
+++ b/ush/addtten.py
@@ -0,0 +1,20 @@
+#! /scratch1/BMC/wrfruc/Samuel.Trahan/soft/anaconda2-5.3.1/bin/python3.7
+
+import netCDF4, numpy, sys
+rootgrp=netCDF4.Dataset(sys.argv[1],'r+')
+
+T=rootgrp.variables['sphum']
+varname="radar_tten"
+datatype='f4'
+dimensions=[ d.name for d in T.get_dims() ]
+
+Tdat=numpy.array(T)
+one=(Tdat*0.+99.)
+v=rootgrp.createVariable(varname,datatype,dimensions)
+
+n=rootgrp.variables[varname]
+
+n.setncattr('long_name','temperature tendency from reflectivity')
+n.setncattr('units','k s-1')
+n[:,:,:]=one
+
diff --git a/ush/config_defaults.sh b/ush/config_defaults.sh
index 14244e888..31ad53c4d 100644
--- a/ush/config_defaults.sh
+++ b/ush/config_defaults.sh
@@ -1145,7 +1145,11 @@ RUN_POST_TN="run_post"
ANAL_GSI_INPUT_TN="anal_gsi_input"
ANAL_GSI_RESTA_TN="anal_gsi_resta"
PROCESS_RADAR_REF_TN="process_radarref"
+PROCESS_LIGHTNING_TN="process_lightning"
+PROCESS_BUFR_TN="process_bufr"
RADAR_REFL2TTEN_TN="radar_refl2tten"
+CLDANL_NOVAR_TN="cldanl_novar"
+
#
# Number of nodes.
#
@@ -1159,6 +1163,12 @@ NNODES_MAKE_LBCS="4"
NNODES_RUN_FCST="" # This is calculated in the workflow generation scripts, so no need to set here.
NNODES_RUN_POST="2"
NNODES_RUN_ANAL="16"
+NNODES_PROC_RADAR="2"
+NNODES_PROC_LIGHTNING="1"
+NNODES_PROC_BUFR="1"
+NNODES_RUN_REF2TTEN="1"
+NNODES_RUN_NOVARCLDANL="1"
+
#
# Number of MPI processes per node.
#
@@ -1172,6 +1182,12 @@ PPN_MAKE_LBCS="12"
PPN_RUN_FCST="24" # This may have to be changed depending on the number of threads used.
PPN_RUN_POST="24"
PPN_RUN_ANAL="24"
+PPN_PROC_RADAR="24"
+PPN_PROC_LIGHTNING="1"
+PPN_PROC_BUFR="1"
+PPN_RUN_REF2TTEN="1"
+PPN_RUN_NOVARCLDANL="1"
+
#
# Walltimes.
#
@@ -1185,6 +1201,17 @@ WTIME_MAKE_LBCS="00:30:00"
WTIME_RUN_FCST="04:30:00"
WTIME_RUN_POST="00:15:00"
WTIME_RUN_ANAL="00:30:00"
+WTIME_PROC_RADAR="00:10:00"
+WTIME_PROC_LIGHTNING="00:10:00"
+WTIME_PROC_BUFR="00:10:00"
+WTIME_RUN_REF2TTEN="00:10:00"
+WTIME_RUN_NOVARCLDANL="00:20:00"
+#
+# Memory.
+#
+MEMO_RUN_REF2TTEN="10G"
+MEMO_RUN_NOVARCLDANL="20G"
+
#
#-----------------------------------------------------------------------
#
@@ -1278,3 +1305,17 @@ HALO_BLEND=0
#-----------------------------------------------------------------------
#
GWD_RRFS_v1beta_BASEDIR=""
+
+#-----------------------------------------------------------------------
+#
+# Parameters for observation preprocess.
+# MM?: minute from the hour that the NSSL mosaic files will be searched for
+# data preprocess
+#
+#-----------------------------------------------------------------------
+#
+MM0="00"
+MM1="01"
+MM2="02"
+MM3="03"
+
diff --git a/ush/generate_FV3LAM_wflow.sh b/ush/generate_FV3LAM_wflow.sh
index f2b0b7ed1..ac51c8457 100755
--- a/ush/generate_FV3LAM_wflow.sh
+++ b/ush/generate_FV3LAM_wflow.sh
@@ -182,6 +182,15 @@ settings="\
'make_lbcs_tn': ${MAKE_LBCS_TN}
'run_fcst_tn': ${RUN_FCST_TN}
'run_post_tn': ${RUN_POST_TN}
+
+
+ 'anal_gsi_input': ${ANAL_GSI_INPUT_TN}
+ 'anal_gsi_resta': ${ANAL_GSI_RESTA_TN}
+ 'process_radarref': ${PROCESS_RADAR_REF_TN}
+ 'process_lightning': ${PROCESS_LIGHTNING_TN}
+ 'process_bufr': ${PROCESS_BUFR_TN}
+ 'radar_refl2tten': ${RADAR_REFL2TTEN_TN}
+ 'cldanl_novar': ${CLDANL_NOVAR_TN}
#
# Number of nodes to use for each task.
#
@@ -195,6 +204,11 @@ settings="\
'nnodes_run_fcst': ${NNODES_RUN_FCST}
'nnodes_run_anal': ${NNODES_RUN_ANAL}
'nnodes_run_post': ${NNODES_RUN_POST}
+ 'nnodes_proc_radar': ${NNODES_PROC_RADAR}
+ 'nnodes_proc_lightning': ${NNODES_PROC_LIGHTNING}
+ 'nnodes_proc_bufr': ${NNODES_PROC_BUFR}
+ 'nnodes_run_ref2tten': ${NNODES_RUN_REF2TTEN}
+ 'nnodes_run_novarcldanl': ${NNODES_RUN_NOVARCLDANL}
#
# Number of cores used for a task
#
@@ -215,6 +229,11 @@ settings="\
'ppn_run_fcst': ${PPN_RUN_FCST}
'ppn_run_anal': ${PPN_RUN_ANAL}
'ppn_run_post': ${PPN_RUN_POST}
+ 'ppn_proc_radar': ${PPN_PROC_RADAR}
+ 'ppn_proc_lightning': ${PPN_PROC_LIGHTNING}
+ 'ppn_proc_bufr': ${PPN_PROC_BUFR}
+ 'ppn_run_ref2tten': ${PPN_RUN_REF2TTEN}
+ 'ppn_run_novarcldanl': ${PPN_RUN_NOVARCLDANL}
#
# Maximum wallclock time for each task.
#
@@ -228,6 +247,16 @@ settings="\
'wtime_run_fcst': ${WTIME_RUN_FCST}
'wtime_run_anal': ${WTIME_RUN_ANAL}
'wtime_run_post': ${WTIME_RUN_POST}
+ 'wtime_proc_radar': ${WTIME_PROC_RADAR}
+ 'wtime_proc_lightning': ${WTIME_PROC_LIGHTNING}
+ 'wtime_proc_bufr': ${WTIME_PROC_BUFR}
+ 'wtime_run_ref2tten': ${WTIME_RUN_REF2TTEN}
+ 'wtime_run_novarcldanl': ${WTIME_RUN_NOVARCLDANL}
+#
+# Maximum memory for each task.
+#
+ 'memo_run_ref2tten': ${MEMO_RUN_REF2TTEN}
+ 'memo_run_novarcldanl': ${MEMO_RUN_NOVARCLDANL}
#
# Flags that specify whether to run the preprocessing tasks.
#
@@ -833,7 +862,7 @@ settings="\
'make_nh' : false,
'na_init' : 0,
'nggps_ic' : false,
- 'no_dycore' : true,
+ 'mountain' : true,
'warm_start' : true,
}"
diff --git a/ush/setup.sh b/ush/setup.sh
index 625a08069..15d158209 100755
--- a/ush/setup.sh
+++ b/ush/setup.sh
@@ -2553,6 +2553,7 @@ FV3_NML_ENSMEM_FPS=( $( printf "\"%s\" " "${FV3_NML_ENSMEM_FPS[@]}" ))
# for data assimilation
OBSPATH="/public/data/grids/rap/obs"
OBSPATH_NSSLMOSIAC="/public/data/radar/mrms"
+LIGHTNING_ROOT="/public/data/lightning"
ENKF_FCST="/lfs4/BMC/public/data/grids/enkf/atm_v15"
FIXgsi="${FIXrrfs}/fix_gsi"
diff --git a/ush/templates/FV3LAM_wflow.xml b/ush/templates/FV3LAM_wflow.xml
index 3f0ccf733..6bc2e403a 100644
--- a/ush/templates/FV3LAM_wflow.xml
+++ b/ush/templates/FV3LAM_wflow.xml
@@ -32,10 +32,13 @@ Workflow task names.
-
-
-
-
+
+
+
+
+
+
+
@@ -87,6 +90,9 @@ tasks; and the "FCST" type is used for the RUN_FCST_TN task.
+
+
+
@Y@m@d@H@M'>
@Y@m@d@H@M'>
@@ -392,6 +398,96 @@ MODULES_RUN_TASK_FP script.
{%- if do_dacycle %}
+
+
+
+ &RSRV_DEFAULT;
+ &WALL_LIMIT_ANAL;
+
+ &LOAD_MODULES_RUN_TASK_FP; "&RUN_ANAL_TN;" "&JOBSDIR;/JREGIONAL_PROCESS_RADARREF"
+
+ {{ nnodes_proc_radar }}:ppn={{ ppn_proc_radar }};
+ {{ wtime_proc_radar }}
+ &NCORES_PER_NODE;
+ &PROCESS_RADAR_REF_TN;
+ &LOGDIR;/&PROCESS_RADAR_REF_TN;_@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
+
+
+
+ @Y@m@d@H@M00
+
+
+
+
+
+
+
+
+ &RSRV_DEFAULT;
+ &WALL_LIMIT_ANAL;
+
+ &LOAD_MODULES_RUN_TASK_FP; "&RUN_ANAL_TN;" "&JOBSDIR;/JREGIONAL_PROCESS_LIGHTNING"
+
+ {{ nnodes_proc_lightning }}:ppn={{ ppn_proc_lightning }};
+ {{ wtime_proc_lightning }}
+ &NCORES_PER_NODE;
+ &PROCESS_LIGHTNING_TN;
+ &LOGDIR;/&PROCESS_LIGHTNING_TN;_@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
+
+
+
+ @Y@m@d@H@M00
+
+
+
+
+
+
+
+
+ &RSRV_DEFAULT;
+ &WALL_LIMIT_ANAL;
+
+ &LOAD_MODULES_RUN_TASK_FP; "&RUN_ANAL_TN;" "&JOBSDIR;/JREGIONAL_PROCESS_BUFR"
+
+ {{ nnodes_proc_bufr }}:ppn={{ ppn_proc_bufr }};
+ {{ wtime_proc_bufr }}
+ &NCORES_PER_NODE;
+ &PROCESS_BUFR_TN;
+ &LOGDIR;/&PROCESS_BUFR_TN;_@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
+
+
+
+ @Y@m@d@H@M00
+
+
+
+
+
+
+
+ &RSRV_DEFAULT;
+ &WALL_LIMIT_ANAL;
+
+ &LOAD_MODULES_RUN_TASK_FP; "&RUN_ANAL_TN;" "&JOBSDIR;/JREGIONAL_REFL2TTEN"
+ {{ nnodes_run_ref2tten }}:ppn={{ ppn_run_ref2tten }}
+ {{ wtime_run_ref2tten }}
+ {{ memo_run_ref2tten }}
+ &NCORES_PER_NODE;
+ &RADAR_REFL2TTEN_TN;
+ &LOGDIR;/&RADAR_REFL2TTEN_TN;_@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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &RSRV_DEFAULT;
+ &WALL_LIMIT_ANAL;
+
+ &LOAD_MODULES_RUN_TASK_FP; "&RUN_ANAL_TN;" "&JOBSDIR;/JREGIONAL_NOVARCLD"
+ {{ nnodes_run_novarcldanl }}:ppn={{ ppn_run_novarcldanl }}
+ {{ wtime_run_novarcldanl }}
+ {{ memo_run_novarcldanl }}
+ &NCORES_PER_NODE;
+ &CLDANL_NOVAR_TN;
+ &LOGDIR;/&CLDANL_NOVAR_TN;_@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
+
+
+
+
+
+
+
+
+
+
+
+
+
{%- endif %}