diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..d9a042c6c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,16 @@
+# Ignore all compiled files
+*.pyc
+*.o
+*.mod
+
+# Ignore exec folder
+exec/
+
+# Ignore sorc folders from externals
+sorc/logs/
+sorc/fv3gfs.fd/
+sorc/gfs_post.fd/
+sorc/gsi.fd/
+sorc/ufs_utils.fd/
+sorc/gfs_wafs.fd/
+sorc/verif-global.fd/
diff --git a/Externals.cfg b/Externals.cfg
new file mode 100644
index 000000000..ccb0de6cf
--- /dev/null
+++ b/Externals.cfg
@@ -0,0 +1,46 @@
+# External sub-modules of global-workflow
+
+[NEMSfv3gfs]
+tag = gfs.v16_PhysicsUpdate
+local_path = sorc/fv3gfs.fd
+repo_url = ssh://vlab.ncep.noaa.gov:29418/NEMSfv3gfs
+protocol = git
+required = True
+
+[GSI]
+hash = cb8f69d8
+local_path = sorc/gsi.fd
+repo_url = ssh://vlab.ncep.noaa.gov:29418/ProdGSI
+protocol = git
+required = True
+
+[EMC_post]
+hash = ba7e59b2
+local_path = sorc/gfs_post.fd
+repo_url = https://github.com/NOAA-EMC/EMC_post.git
+protocol = git
+required = True
+
+[UFS_UTILS]
+tag = v1.1.0
+local_path = sorc/ufs_utils.fd
+repo_url = https://github.com/NOAA-EMC/UFS_UTILS.git
+protocol = git
+required = True
+
+[EMC_verif-global]
+tag = verif_global_v1.5.0
+local_path = sorc/verif-global.fd
+repo_url = https://github.com/NOAA-EMC/EMC_verif-global.git
+protocol = git
+required = True
+
+[EMC_gfs_wafs]
+tag = gfs_wafs.v5.0.11
+local_path = sorc/gfs_wafs.fd
+repo_url = https://github.com/NOAA-EMC/EMC_gfs_wafs.git
+protocol = git
+required = False
+
+[externals_description]
+schema_version = 1.0.0
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..3fac2751a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+# global-workflow
+Global Superstructure/Workflow currently supporting the Finite-Volume on a Cubed-Sphere Global Forecast System (FV3GFS)
+
+The global-workflow depends on the following prerequisities to be available on the system:
+
+* workload management platform / scheduler - LSF or SLURM
+* workflow manager - ROCOTO (https://github.com/christopherwharrop/rocoto)
+* modules - NCEPLIBS (various), esmf v8.0.0bs48, hdf5, intel/ips v18, impi v18, wgrib2, netcdf v4.7.0, hpss, gempak (see module files under /modulefiles for additional details)
+* manage_externals - A utility from ESMCI to checkout external dependencies. Manage_externals can be obtained at the following address and should be in the users PATH: https://github.com/ESMCI/manage_externals
+
+The global-workflow current supports the following machines:
+
+* WCOSS-Dell
+* WCOSS-Cray
+* Hera
+
+## Build global-workflow:
+
+### 1. Check out components
+
+The global-workflow uses the manage_externals utility to handle checking out its components. The manic-v1.1.8 manage_externals tag is supported. The manage_externals utility will be replacing the current checkout.sh script.
+
+Run manage_externals (checkout_externals) while at top of clone:
+
+```
+$ checkout_externals -e Externals.cfg
+```
+
+If checkout_externals is not in your $PATH then use full path to it:
+
+* WCOSS-Dell: /gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/manage_externals/manic-v1.1.8/checkout_externals
+* WCOSS-Cray: /gpfs/hps3/emc/global/noscrub/emc.glopara/git/manage_externals/manic-v1.1.8/checkout_externals
+* Hera: /scratch1/NCEPDEV/global/glopara/git/manage_externals/manic-v1.1.8/checkout_externals
+
+### 2. Build components
+
+While in /sorc folder:
+```
+$ sh build_all.sh
+```
+
+### 3. Link components
+
+While in /sorc folder:
+```
+$ sh link_fv3gfs.sh emc $MACHINE
+```
+
+...where $MACHINE is "dell", "cray", or "hera".
diff --git a/docs/doxygen/compile b/docs/doxygen/compile
index 9acc27cf5..e5f95b673 100755
--- a/docs/doxygen/compile
+++ b/docs/doxygen/compile
@@ -3,8 +3,8 @@
machine=${1:-${machine:-"WCOSS_C"}}
machine=$(echo $machine | tr '[a-z]' '[A-Z]')
-if [ $machine = "THEIA" ]; then
- doxygen=/scratch3/NCEPDEV/hwrf/save/Samuel.Trahan/doxygen-1.8.10/bin/doxygen
+if [ $machine = "HERA" ]; then
+ doxygen=/usr/bin/doxygen
elif [ $machine = "WCOSS_C" ]; then
doxygen=/gpfs/hps3/emc/hwrf/noscrub/soft/doxygen-1.8.10/bin/doxygen
elif [ $machine = "WCOSS" ]; then
diff --git a/docs/doxygen/mainpage.h b/docs/doxygen/mainpage.h
index adc5df958..ac26cd861 100644
--- a/docs/doxygen/mainpage.h
+++ b/docs/doxygen/mainpage.h
@@ -21,7 +21,7 @@ This is a very much a work in progress and any issues should be reported back an
To setup an experiment, a python script \c setup_expt.py (located in \c fv3gfs/ush) can be used:
$> setup_expt.py -h
- usage: setup_expt.py [-h] [--machine {THEIA,WCOSS_C}] --pslot PSLOT
+ usage: setup_expt.py [-h] [--machine {HERA,WCOSS_C}] --pslot PSLOT
[--configdir CONFIGDIR] [--idate IDATE] [--icsdir ICSDIR]
[--resdet RESDET] [--resens RESENS] [--comrot COMROT]
[--expdir EXPDIR] [--nens NENS] [--cdump CDUMP]
diff --git a/docs/note_fixfield.txt b/docs/note_fixfield.txt
index 76496c6d3..292947353 100644
--- a/docs/note_fixfield.txt
+++ b/docs/note_fixfield.txt
@@ -4,7 +4,7 @@ They are saved locally on all platforms
Venus/Mars: /gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix
Surge/Luna: /gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix
-THEIA: /scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix
+Hera: /scratch1/NCEPDEV/global/glopara/fix
------------------------------------------------------------------------------
09/28/2018
diff --git a/driver/gdas/test_jgdas_verfozn_theia.sh b/driver/gdas/test_jgdas_verfozn_theia.sh
deleted file mode 100755
index da52cd11d..000000000
--- a/driver/gdas/test_jgdas_verfozn_theia.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/ksh
-
-#PBS -o gdas_verfozn.log
-#PBS -e gdas_verfozn.err
-#PBS -N gdas_verfozn
-#PBS -A glbss
-#PBS -l procs=1,walltime=0:10:00
-#PBS -V
-
-set -x
-
-export PDATE=${PDATE:-2017071806}
-
-#############################################################
-# Specify whether the run is production or development
-#############################################################
-export PDY=`echo $PDATE | cut -c1-8`
-export cyc=`echo $PDATE | cut -c9-10`
-export job=gdas_verfozn.${cyc}
-export pid=${pid:-$$}
-export jobid=${job}.${pid}
-export envir=para
-export DATAROOT=${DATAROOT:-/scratch4/NCEPDEV/da/noscrub/Edward.Safford/ozn_test_data}
-export COMROOT=${COMROOT:-/scratch4/NCEPDEV/stmp3/$LOGNAME/com}
-
-
-#############################################################
-# Specify versions
-#############################################################
-export gfs_ver=v15.0.0
-
-
-#############################################################
-# Add nwpara tools to path
-#############################################################
-NWPROD=${NWPROD:-/scratch4/NCEPDEV/global/save/glopara/nwpara/util}
-NWPRODush=${NWPRODush:=${NWPROD}/ush}
-NWPRODexec=${NWPRODexec:=${NWPROD}/exec}
-export PATH=${PATH}:${NWPRODush}:${NWPRODexec}
-
-#############################################################
-# Set user specific variables
-#############################################################
-
-export OZNMON_SUFFIX=${OZNMON_SUFFIX:-testozn}
-export NWTEST=${NWTEST:-/scratch4/NCEPDEV/da/noscrub/${LOGNAME}/gfs.${gfs_ver}}
-export HOMEgfs_ozn=${HOMEgfs_ozn:-${NWTEST}}
-export JOBGLOBAL=${JOBGLOBAL:-${HOMEgfs_ozn}/jobs}
-export HOMEoznmon=${HOMEoznmon:-${NWTEST}}
-export COM_IN=${COM_IN:-${DATAROOT}}
-export OZN_TANKDIR=${OZN_TANKDIR:-${COMROOT}/${OZNMON_SUFFIX}}
-
-export SUB=${SUB:-/apps/torque/default/bin/qsub}
-export NDATE=${NDATE:-ndate}
-
-
-#######################################################################
-# theia specific hacks for no prod_utils module & no setpdy.sh script
-#######################################################################
-export MY_MACHINE=theia
-prevday=`$NDATE -24 $PDATE`
-export PDYm1=`echo $prevday | cut -c1-8`
-ln -s ${NWPRODush}/startmsg.sh ${COMROOT}/startmsg
-ln -s ${NWPRODush}/postmsg.sh ${COMROOT}/postmsg
-ln -s ${NWPRODush}/prep_step.sh ${COMROOT}/prep_step
-ln -s ${NWPRODush}/err_chk.sh ${COMROOT}/err_chk
-export PATH=$PATH:${COMROOT}
-export utilscript=${utilscript:-${NWPRODush}} # err_chk calls postmsg.sh
- # directly so need to override
- # utilscript location for theia
-#############################################################
-# Execute job
-#############################################################
-$JOBGLOBAL/JGDAS_VERFOZN
-
-exit
-
diff --git a/driver/gdas/test_jgdas_verfrad_theia.sh b/driver/gdas/test_jgdas_verfrad_theia.sh
deleted file mode 100755
index 8f0a3cab9..000000000
--- a/driver/gdas/test_jgdas_verfrad_theia.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/ksh
-
-#PBS -o gdas_verfrad.log
-#PBS -e gdas_verfrad.err
-#PBS -N gdas_verfrad
-#PBS -A glbss
-#PBS -l procs=1,walltime=0:10:00
-#PBS -V
-
-set -x
-
-export PDATE=${PDATE:-2017020606}
-
-#############################################################
-# Specify whether the run is production or development
-#############################################################
-export PDY=`echo $PDATE | cut -c1-8`
-export cyc=`echo $PDATE | cut -c9-10`
-export job=gdas_verfrad.${cyc}
-export pid=${pid:-$$}
-export jobid=${job}.${pid}
-export envir=para
-export DATAROOT=${DATAROOT:-/scratch4/NCEPDEV/da/noscrub/Edward.Safford/test_data}
-export COMROOT=${COMROOT:-/scratch4/NCEPDEV/stmp3/$LOGNAME/com}
-export STMP_USER=${STMP_USER:-/scratch4/NCEPDEV/stmp3/$LOGNAME}
-
-#############################################################
-# Specify versions
-#############################################################
-export gfs_ver=v15.0.0
-
-
-#############################################################
-# Add nwpara tools to path
-#############################################################
-NWPROD=${NWPROD:-/scratch4/NCEPDEV/global/save/glopara/nwpara/util}
-NWPRODush=${NWPRODush:=${NWPROD}/ush}
-NWPRODexec=${NWPRODexec:=${NWPROD}/exec}
-export PATH=${PATH}:${NWPRODush}:${NWPRODexec}
-
-#############################################################
-# Set user specific variables
-#############################################################
-
-export RADMON_SUFFIX=${RADMON_SUFFIX:-testrad}
-export NWTEST=${NWTEST:-/scratch4/NCEPDEV/da/noscrub/${LOGNAME}/gfs.${gfs_ver}}
-export HOMEgfs=${HOMEgfs:-${NWTEST}}
-export JOBGLOBAL=${JOBGLOBAL:-${HOMEgfs}/jobs}
-export HOMEradmon=${HOMEradmon:-${NWTEST}}
-export COM_IN=${COM_IN:-${DATAROOT}}
-export TANKverf=${TANKverf:-${COMROOT}/${RADMON_SUFFIX}}
-
-export SUB=${SUB:-/apps/torque/default/bin/qsub}
-export NDATE=${NDATE:-ndate}
-
-
-#######################################################################
-# theia specific hacks for no prod_utils module & no setpdy.sh script
-#######################################################################
-export MY_MACHINE=theia
-prevday=`$NDATE -24 $PDATE`
-export PDYm1=`echo $prevday | cut -c1-8`
-ln -s ${NWPRODush}/startmsg.sh ${STMP_USER}/startmsg
-ln -s ${NWPRODush}/postmsg.sh ${STMP_USER}/postmsg
-ln -s ${NWPRODush}/prep_step.sh ${STMP_USER}/prep_step
-ln -s ${NWPRODush}/err_chk.sh ${STMP_USER}/err_chk
-export PATH=$PATH:${STMP_USER}
-export utilscript=${utilscript:-${NWPRODush}} # err_chk calls postmsg.sh
- # directly so need to override
- # utilscript location for theia
-#############################################################
-# Execute job
-#############################################################
-$JOBGLOBAL/JGDAS_VERFRAD
-
-exit
-
diff --git a/driver/gdas/test_jgdas_vminmon_theia.sh b/driver/gdas/test_jgdas_vminmon_theia.sh
deleted file mode 100755
index 750936ef2..000000000
--- a/driver/gdas/test_jgdas_vminmon_theia.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/ksh
-
-#PBS -o gdas_vminmon.log
-#PBS -e gdas_vminmon.err
-#PBS -N gdas_vminmon
-#PBS -A glbss
-#PBS -l procs=1,walltime=0:05:00
-#PBS -V
-
-set -x
-
-export PDATE=${PDATE:-2016030706}
-
-#############################################################
-# Specify whether the run is production or development
-#############################################################
-export PDY=`echo $PDATE | cut -c1-8`
-export cyc=`echo $PDATE | cut -c9-10`
-export job=gdas_vminmon.${cyc}
-export pid=${pid:-$$}
-export jobid=${job}.${pid}
-export envir=para
-export DATAROOT=${DATAROOT:-/scratch4/NCEPDEV/da/noscrub/Edward.Safford/test_data}
-export COMROOT=${COMROOT:-/scratch4/NCEPDEV/stmp3/$LOGNAME/com}
-export STMP_USER=${STMP_USER:-/scratch4/NCEPDEV/stmp3/$LOGNAME}
-
-#############################################################
-# Specify versions
-#############################################################
-export gfs_ver=v15.0.0
-
-
-#############################################################
-# Add nwpara tools to path
-#############################################################
-NWPROD=${NWPROD:-/scratch4/NCEPDEV/global/save/glopara/nwpara/util}
-NWPRODush=${NWPRODush:=${NWPROD}/ush}
-NWPRODexec=${NWPRODexec:=${NWPROD}/exec}
-export PATH=${PATH}:${NWPRODush}:${NWPRODexec}
-
-
-#############################################################
-# Set user specific variables
-#############################################################
-export MINMON_SUFFIX=${MINMON_SUFFIX:-testminmon}
-export NWTEST=${NWTEST:-/scratch4/NCEPDEV/da/noscrub/${LOGNAME}/gfs.${gfs_ver}}
-export HOMEgfs=${HOMEgfs:-${NWTEST}}
-export JOBGLOBAL=${HOMEgfs}/jobs
-export HOMEminmon=${HOMEminmon:-${NWTEST}}
-export COM_IN=${COM_IN:-${DATAROOT}}
-export M_TANKverf=${M_TANKverf:-${COMROOT}/${MINMON_SUFFIX}}
-
-#######################################################################
-# theia specific hacks for no prod_utils module & no setpdy.sh script
-#######################################################################
-export MY_MACHINE=theia
-
-export NDATE=/scratch4/NCEPDEV/global/save/glopara/nwpara/util/exec/ndate
-prevday=`$NDATE -24 $PDATE`
-export PDYm1=`echo $prevday | cut -c1-8`
-
-ln -s ${NWPRODush}/startmsg.sh ${STMP_USER}/startmsg
-ln -s ${NWPRODush}/postmsg.sh ${STMP_USER}/postmsg
-ln -s ${NWPRODush}/prep_step.sh ${STMP_USER}/prep_step
-ln -s ${NWPRODush}/err_chk.sh ${STMP_USER}/err_chk
-export PATH=$PATH:${STMP_USER}
-export utilscript=${utilscript:-${NWPRODush}} # err_chk calls postmsg.sh
- # directly so need to override
- # utilscript location
-
-#############################################################
-# Execute job
-#############################################################
-$JOBGLOBAL/JGDAS_VMINMON
-
-exit
-
diff --git a/driver/gfs/test_jgfs_vminmon_theia.sh b/driver/gfs/test_jgfs_vminmon_theia.sh
deleted file mode 100755
index ab8b485d7..000000000
--- a/driver/gfs/test_jgfs_vminmon_theia.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/ksh
-
-#PBS -o gfs_vminmon.log
-#PBS -e gfs_vminmon.err
-#PBS -N gfs_vminmon
-#PBS -A glbss
-#PBS -l procs=1,walltime=0:05:00
-#PBS -V
-
-set -x
-
-export PDATE=${PDATE:-2016030718}
-
-#############################################################
-# Specify whether the run is production or development
-#############################################################
-export PDY=`echo $PDATE | cut -c1-8`
-export cyc=`echo $PDATE | cut -c9-10`
-export job=gfs_vminmon.${cyc}
-export pid=${pid:-$$}
-export jobid=${job}.${pid}
-export envir=para
-export DATAROOT=${DATAROOT:-/scratch4/NCEPDEV/da/noscrub/Edward.Safford/test_data}
-export COMROOT=${COMROOT:-/scratch4/NCEPDEV/stmp3/$LOGNAME/com}
-export STMP_USER=${STMP_USER:-/scratch4/NCEPDEV/stmp3/$LOGNAME}
-
-#############################################################
-# Specify versions
-#############################################################
-export gfs_ver=v15.0.0
-
-
-#############################################################
-# Add nwpara tools to path
-#############################################################
-NWPROD=${NWPROD:-/scratch4/NCEPDEV/global/save/glopara/nwpara/util}
-NWPRODush=${NWPRODush:=${NWPROD}/ush}
-NWPRODexec=${NWPRODexec:=${NWPROD}/exec}
-export PATH=${PATH}:${NWPRODush}:${NWPRODexec}
-
-
-#############################################################
-# Set user specific variables
-#############################################################
-export MINMON_SUFFIX=${MINMON_SUFFIX:-testminmon}
-export NWTEST=${NWTEST:-/scratch4/NCEPDEV/da/noscrub/${LOGNAME}/gfs.${gfs_ver}}
-export HOMEgfs=${HOMEgfs:-${NWTEST}}
-export JOBGLOBAL=${HOMEgfs}/jobs
-export HOMEminmon=${HOMEminmon:-${NWTEST}}
-export COM_IN=${COM_IN:-${DATAROOT}}
-export M_TANKverf=${M_TANKverf:-${COMROOT}/${MINMON_SUFFIX}}
-
-#######################################################################
-# theia specific hacks for no prod_utils module & no setpdy.sh script
-#######################################################################
-export MY_MACHINE=theia
-
-export NDATE=/scratch4/NCEPDEV/global/save/glopara/nwpara/util/exec/ndate
-prevday=`$NDATE -24 $PDATE`
-export PDYm1=`echo $prevday | cut -c1-8`
-
-ln -s ${NWPRODush}/startmsg.sh ${STMP_USER}/startmsg
-ln -s ${NWPRODush}/postmsg.sh ${STMP_USER}/postmsg
-ln -s ${NWPRODush}/prep_step.sh ${STMP_USER}/prep_step
-ln -s ${NWPRODush}/err_chk.sh ${STMP_USER}/err_chk
-export PATH=$PATH:${STMP_USER}
-export utilscript=${utilscript:-${NWPRODush}} # err_chk calls postmsg.sh
- # directly so need to override
- # utilscript location
-
-#############################################################
-# Execute job
-#############################################################
-$JOBGLOBAL/JGFS_VMINMON
-
-exit
-
diff --git a/driver/product/run_postsnd.sh b/driver/product/run_postsnd.sh
index 72f7c26eb..bcf34d91e 100755
--- a/driver/product/run_postsnd.sh
+++ b/driver/product/run_postsnd.sh
@@ -46,7 +46,6 @@ export MP_STDOUTMODE=ordered
#export machine="WCOSS_C"
machine="WCOSS_DELL_P3"
-#machine="THEIA"
if [ $machine == "WCOSS_C" ]; then
##For WCOSS-Cray##################
export launcher="aprun"
diff --git a/driver/product/run_postsnd.sh.cray b/driver/product/run_postsnd.sh.cray
index 6679562b1..c1199c918 100755
--- a/driver/product/run_postsnd.sh.cray
+++ b/driver/product/run_postsnd.sh.cray
@@ -39,7 +39,6 @@ export MP_STDOUTMODE=ordered
export machine="WCOSS_C"
#machine="WCOSS_DELL_P3"
-#machine="THEIA"
#machine="JET"
export FHMAX_HF_GFS=120
export FHOUT_HF_GFS=1
diff --git a/driver/product/run_postsnd.sh.dell b/driver/product/run_postsnd.sh.dell
index e7d3a17d6..189c521c3 100755
--- a/driver/product/run_postsnd.sh.dell
+++ b/driver/product/run_postsnd.sh.dell
@@ -46,7 +46,6 @@ export MP_STDOUTMODE=ordered
#export machine="WCOSS_C"
machine="WCOSS_DELL_P3"
-#machine="THEIA"
#machine="JET"
export npe_postsnd=12
export npe_postsndcfp=10
diff --git a/driver/product/run_postsnd.sh.jet b/driver/product/run_postsnd.sh.jet
index 0f0365fd9..0a4bc2d03 100755
--- a/driver/product/run_postsnd.sh.jet
+++ b/driver/product/run_postsnd.sh.jet
@@ -47,7 +47,6 @@ export MP_STDOUTMODE=ordered
#export machine="WCOSS_C"
#machine="WCOSS_DELL_P3"
-#machine="THEIA"
machine="JET"
export npe_postsnd=12
export npe_postsndcfp=10
diff --git a/driver/product/run_postsnd.sh.theia b/driver/product/run_postsnd.sh.theia
deleted file mode 100755
index b0fe4f197..000000000
--- a/driver/product/run_postsnd.sh.theia
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/bin/ksh -l
-#PBS -o /scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3gfs/driver/product/postsnd_00.out19
-#PBS -e /scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3gfs/driver/product/postsnd_00.out19
-#PBS -N postsnd
-##PBS -A fv3-cam
-#PBS -A fv3-cpu
-#PBS -l nodes=6:ppn=3
-#PBS -l walltime=02:30:00
-
-############################################
-# Loading module
-############################################
-. $MODULESHOME/init/ksh
-
-# Loading Intel Compiler Suite
-module load intel
-module load impi
-
-module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles
-
-# Loding nceplibs modules
-module load sigio/v2.0.1
-module load bacio/v2.0.1
-module load sp/v2.0.2
-module load w3emc/v2.2.0
-module load w3nco/v2.0.6
-module load bufr/v10.2.5
-module load nemsio/v2.2.1
-module load gempak/7.4.2
-
-########################################
-# Runs GFS BUFR SOUNDINGS
-########################################
-set -xa
-
-export OMP_NUM_THREADS=1
-export KMP_AFFINITY=disabled
-export OMP_STACKSIZE=2048m
-export MP_LABELIO=yes
-export MP_STDOUTMODE=ordered
-
-#export machine="WCOSS_C"
-#machine="WCOSS_DELL_P3"
-machine="THEIA"
-#machine="JET"
-export npe_postsnd=12
-export npe_postsndcfp=10
-if [ $machine == "WCOSS_C" ]; then
-##For WCOSS-Cray##################
-export FHMAX_HF_GFS=120
-export FHOUT_HF_GFS=1
-export launcher="aprun"
-export npe_node_postsnd=3
-export NTHREADS_POSTSND=1
-export npe_node_postsndcfp=3
-export NTHREADS_POSTSNDCFP=1
-export APRUN_POSTSND="$launcher -j 1 -n $npe_postsnd -N $npe_node_postsnd -d $NTHREADS_POSTSND -cc depth"
-export APRUN_POSTSNDCFP="$launcher -j 1 -n $npe_postsndcfp -N $npe_node_postsndcfp -d $NTHREADS_POSTSNDCFP cfp"
-elif [ $machine == "WCOSS_DELL_P3" ]; then
-##For WCOSS-Dell ################
-export FHMAX_HF_GFS=120
-export FHOUT_HF_GFS=1
-export launcher="mpirun -n"
-export APRUN_POSTSND="$launcher $npe_postsnd"
-export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp"
-else
-##For Theia, Jet################
-export FHMAX_HF_GFS=120
-export FHOUT_HF_GFS=1
-export launcher="mpirun -np"
-export APRUN_POSTSND="$launcher $npe_postsnd"
-export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp"
-fi
-
-#export PS4='$SECONDS + '
-date
-# #### 08/25/1999 ###################
-# SET SHELL PROCESSING VARIABLES
-# ###################################
-#
-#Specify whether the run is production or development
-#
-export envir=${envir:-prod}
-
-####################################
-# Specify version numbers
-####################################
-export gfs_bufrsnd_ver=${gfs_bufrsnd_ver:-v1.0.2}
-export gsm_ver=${gsm_ver:-v12.0.0}
-export util_ver=${util_ver:-v1.0.0}
-
-# obtain unique process id (pid) and make temp directories
-#
-export pid=$$
-#export DATA_IN=${DATA_IN:-/tmpnwprd1}
-#export DATA=$DATA_IN/${job}.${pid}
-export DATA_IN=${DATA_IN:-/scratch4/NCEPDEV/meso/scrub/$USER}
-export DATA=$DATA_IN/postsnd.${pid}
-mkdir -p $DATA
-cd $DATA
-export PDY=20180305
-export cyc=00
-export STARTHOUR=00
-export ENDHOUR=180
-
-####################################
-# File To Log Msgs
-####################################
-job=gfs_postsnd_test
-export jlogfile=/com/logs/jlogfiles/jlogfile.${job}.${pid}
-
-####################################
-# Determine Job Output Name on System
-####################################
-export outid="LL$job"
-export jobid="${outid}.o${pid}"
-export pgmout="OUTPUT.${pid}"
-
-export cycle=t${cyc}z
-
-export SENDCOM=YES
-export SENDECF=YES
-export SENDDBN=YES
-
-export NET=gfs
-export RUN=gfs
-export model=gfs
-export pcom=$DATA_IN/pcom/gfs
-mkdir -p $pcom
-
-###################################
-# Set up the UTILITIES
-###################################
-
-export HOMEbufrsnd=/scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3gfs
-#export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/fv3gfs
-#export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/Bufr_sounding
-#export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/bufr_fnl_mpmd2_test
-
-##############################
-# Define COM Directories
-##############################
-##export COMIN=/gpfs/hps/ptmp/emc.glopara/com2/${NET}/para/${RUN}.${PDY}
-##export COMIN=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/fv3data/${RUN}.${PDY}/$cyc
-##export COMIN=/gpfs/hps/nco/ops/com/gfs/prod/${RUN}.${PDY}
-export COMIN=/scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3data/${RUN}.${PDY}/$cyc
-
-export COMOUT=$DATA_IN/com2/${NET}/${envir}/${RUN}.${PDY}
-mkdir -p $COMOUT
-export COMAWP=$DATA_IN/com2/nawips/${envir}/${RUN}.${PDY}
-mkdir -p $COMAWP
-env
-
-export KEEPDATA=YES
-########################################################
-# Execute the script.
-#$SCRbufrsnd/exgfs_postsnd.sh.ecf
-${HOMEbufrsnd}/jobs/JGFS_POSTSND
-########################################################
-
-#cat $pgmout
-
-#cd /tmpnwprd1
-#rm -rf $DATA
-date
-
diff --git a/env/HERA.env b/env/HERA.env
index 642fc33c4..922b6f6fd 100755
--- a/env/HERA.env
+++ b/env/HERA.env
@@ -4,7 +4,7 @@ if [ $# -ne 1 ]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "anal fcst post vrfy"
+ echo "anal fcst post vrfy metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
exit 1
diff --git a/env/JET.env b/env/JET.env
index 2bb02c3d9..bce371d41 100755
--- a/env/JET.env
+++ b/env/JET.env
@@ -4,7 +4,7 @@ if [ $# -ne 1 ]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "anal fcst post vrfy"
+ echo "anal fcst post vrfy metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
exit 1
diff --git a/env/THEIA.env b/env/THEIA.env
deleted file mode 100755
index 6e2e6516f..000000000
--- a/env/THEIA.env
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/bin/ksh -x
-
-if [ $# -ne 1 ]; then
-
- echo "Must specify an input argument to set runtime environment variables!"
- echo "argument can be any one of the following:"
- echo "anal fcst post vrfy"
- echo "eobs eupd ecen efcs epos"
- echo "postsnd awips gempak"
- exit 1
-
-fi
-
-step=$1
-
-export npe_node_max=24
-export launcher="srun --export=ALL"
-
-# Configure MPI environment
-export I_MPI_ADJUST_ALLREDUCE=5
-export MPI_BUFS_PER_PROC=2048
-export MPI_BUFS_PER_HOST=2048
-export MPI_GROUP_MAX=256
-export MPI_MEMMAP_OFF=1
-export MP_STDOUTMODE="ORDERED"
-export OMP_STACKSIZE=2048000
-export NTHSTACK=1024000000
-#export LD_BIND_NOW=1
-export job=${PBS_JOBNAME:-$step}
-export jobid=${job}.${PBS_JOBID:-$$}
-
-if [ $step = "prep" -o $step = "prepbufr" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_prep))
-
- export POE="NO"
- export BACK=${BACK:-"YES"}
- export sys_tp="Cray-CS400"
-
-elif [ $step = "anal" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_anal))
-
- export NTHREADS_GSI=${nth_gsi:-$nth_max}
- [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max
- export APRUN_GSI="$launcher"
-
- export NTHREADS_CALCINC=${nth_calcinc:-1}
- [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max
- export APRUN_CALCINC="$launcher"
-
- export NTHREADS_CYCLE=${nth_cycle:-12}
- [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max
- npe_cycle=${ntiles:-6}
- export APRUN_CYCLE="$launcher"
-
- export NTHREADS_GAUSFCANL=1
- npe_gausfcanl=${npe_gausfcanl:-1}
- export APRUN_GAUSFCANL="$launcher"
-
-elif [ $step = "eobs" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_eobs))
-
- export NTHREADS_GSI=${nth_gsi:-$nth_max}
- [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max
- export APRUN_GSI="$launcher"
-
-elif [ $step = "eupd" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_eupd))
-
- export NTHREADS_ENKF=${nth_enkf:-$nth_max}
- [[ $NTHREADS_ENKF -gt $nth_max ]] && export NTHREADS_ENKF=$nth_max
- export APRUN_ENKF="$launcher"
-
-elif [ $step = "fcst" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_fcst))
-
- export NTHREADS_FV3=${nth_fv3:-$nth_max}
- [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max
- export cores_per_node=$npe_node_max
- export APRUN_FV3="$launcher"
-
- export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1}
- [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max
- export APRUN_REGRID_NEMSIO="$launcher"
-
- export NTHREADS_REMAP=${nth_remap:-2}
- [[ $NTHREADS_REMAP -gt $nth_max ]] && export NTHREADS_REMAP=$nth_max
- export APRUN_REMAP="$launcher"
-
-elif [ $step = "efcs" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_efcs))
-
- export NTHREADS_FV3=${nth_fv3:-$nth_max}
- [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max
- export cores_per_node=$npe_node_max
- export APRUN_FV3="$launcher"
-
- export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1}
- [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max
- export APRUN_REGRID_NEMSIO="$launcher"
-
-elif [ $step = "post" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_post))
-
- export NTHREADS_NP=${nth_np:-1}
- [[ $NTHREADS_NP -gt $nth_max ]] && export NTHREADS_NP=$nth_max
- export APRUN_NP="$launcher"
-
- export NTHREADS_DWN=${nth_dwn:-1}
- [[ $NTHREADS_DWN -gt $nth_max ]] && export NTHREADS_DWN=$nth_max
- export APRUN_DWN="$launcher"
-
-elif [ $step = "ecen" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_ecen))
-
- export NTHREADS_ECEN=${nth_ecen:-$nth_max}
- [[ $NTHREADS_ECEN -gt $nth_max ]] && export NTHREADS_ECEN=$nth_max
- export APRUN_ECEN="$launcher"
-
- export NTHREADS_CHGRES=${nth_chgres:-12}
- [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max
- export APRUN_CHGRES="time"
-
- export NTHREADS_CALCINC=${nth_calcinc:-1}
- [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max
- export APRUN_CALCINC="$launcher"
-
-elif [ $step = "epos" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_epos))
-
- export NTHREADS_EPOS=${nth_epos:-$nth_max}
- [[ $NTHREADS_EPOS -gt $nth_max ]] && export NTHREADS_EPOS=$nth_max
- export APRUN_EPOS="$launcher"
-
-elif [ $step = "fv3ic" ]; then
-
- export NTHREADS_CHGRES=${nth_chgres:-$npe_node_max}
- [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max
- export APRUN_CHGRES="time"
-
-elif [ $step = "postsnd" ]; then
-
- nth_max=$(($npe_node_max / $npe_node_postsnd))
-
- export NTHREADS_POSTSND=${nth_postsnd:-1}
- [[ $NTHREADS_POSTSND -gt $nth_max ]] && export NTHREADS_POSTSND=$nth_max
- export APRUN_POSTSND="$launcher"
-
- export NTHREADS_POSTSNDCFP=${nth_postsndcfp:-1}
- [[ $NTHREADS_POSTSNDCFP -gt $nth_max ]] && export NTHREADS_POSTSNDCFP=$nth_max
- export APRUN_POSTSNDCFP="$launcher"
-
-elif [ $step = "awips" ]; then
-
- echo "WARNING: $step is not enabled on $machine!"
-
-elif [ $step = "gempak" ]; then
-
- echo "WARNING: $step is not enabled on $machine!"
-fi
diff --git a/env/WCOSS_C.env b/env/WCOSS_C.env
index 549d91f80..b9c426add 100755
--- a/env/WCOSS_C.env
+++ b/env/WCOSS_C.env
@@ -4,7 +4,7 @@ if [ $# -ne 1 ]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "anal fcst post vrfy"
+ echo "anal fcst post vrfy metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
exit 1
@@ -166,6 +166,11 @@ elif [ $step = "vrfy" ]; then
export IOBUF_PARAMS="*:size=32M:count=4:verbose"
export APRUNTRACK="$launcher -j1 -n1 -N1 -d1 -cc depth"
+elif [ $step = "metp" ]; then
+
+ export IOBUF_PARAMS="*:size=32M:count=4:verbose"
+ export APRUNTRACK="$launcher -j1 -n1 -N1 -d1 -cc depth"
+
elif [ $step = "postsnd" ]; then
export IOBUF_PARAMS="sigf*:size=128M:count=20:prefetch=0:verbose,gfs_collectiv*:size=128M:count=2:prefetch=0:verbose,*.snd:size=128M:count=3:prefetch=0:verbose,*.sfc:size=32M:count=3:prefetch=0:verbose,bufr.*:size=8M:count=20:prefetch=0:verbose"
diff --git a/env/WCOSS_DELL_P3.env b/env/WCOSS_DELL_P3.env
index 853f62d65..f8615e87e 100755
--- a/env/WCOSS_DELL_P3.env
+++ b/env/WCOSS_DELL_P3.env
@@ -4,7 +4,7 @@ if [ $# -ne 1 ]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "anal fcst post vrfy"
+ echo "anal fcst post vrfy metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
exit 1
@@ -14,8 +14,11 @@ fi
step=$1
# WCOSS_DELL_P3 information
-export npe_node_max=28
export launcher="mpirun -n"
+export npe_node_max=28
+if [ "$QUEUE" = "dev2" -o "$QUEUE" = "devonprod2" -o "$QUEUE" = "devmax2" ]; then # WCOSS Dell 3.5
+ export npe_node_max=40
+fi
# Due to ESMF issue, fv3gfs model must run with npe_node_max=24
if [ $step = "fcst" -o $step = "efcs" ]; then
diff --git a/jobs/rocoto/earc.sh b/jobs/rocoto/earc.sh
index 11f20804e..3bc42fab6 100755
--- a/jobs/rocoto/earc.sh
+++ b/jobs/rocoto/earc.sh
@@ -80,32 +80,34 @@ if [[ $ENSGRP -gt 0 ]] && [[ $HPSSARCH = "YES" ]]; then
if [ $CDATE -eq $SDATE -a $cyc -eq $EARCICS_CYC ] ; then SAVEWARMICB="YES" ; fi
fi
- if [ $CDATE -gt $SDATE ]; then
- htar -P -cvf $ATARDIR/$CDATE/enkf${CDUMP}_grp${ENSGRP}.tar `cat $ARCH_LIST/enkf${CDUMP}_grp${n}.txt`
- status=$?
- if [ $status -ne 0 -a $CDATE -ge $firstday ]; then
- echo "HTAR $CDATE enkf${CDUMP}_grp${ENSGRP}.tar failed"
- exit $status
- fi
- fi
+ if [ $CDATE -gt $SDATE ]; then # Don't run for first half cycle
- if [ $SAVEWARMICA = "YES" -a $cyc -eq $EARCINC_CYC ]; then
+ htar -P -cvf $ATARDIR/$CDATE/enkf${CDUMP}_grp${ENSGRP}.tar `cat $ARCH_LIST/enkf${CDUMP}_grp${n}.txt`
+ status=$?
+ if [ $status -ne 0 -a $CDATE -ge $firstday ]; then
+ echo "HTAR $CDATE enkf${CDUMP}_grp${ENSGRP}.tar failed"
+ exit $status
+ fi
+
+ if [ $SAVEWARMICA = "YES" -a $cyc -eq $EARCINC_CYC ]; then
htar -P -cvf $ATARDIR/$CDATE/enkf${CDUMP}_restarta_grp${ENSGRP}.tar `cat $ARCH_LIST/enkf${CDUMP}_restarta_grp${n}.txt`
status=$?
if [ $status -ne 0 ]; then
echo "HTAR $CDATE enkf${CDUMP}_restarta_grp${ENSGRP}.tar failed"
exit $status
fi
- fi
+ fi
- if [ $SAVEWARMICB = "YES" -a $cyc -eq $EARCICS_CYC ]; then
+ if [ $SAVEWARMICB = "YES" -a $cyc -eq $EARCICS_CYC ]; then
htar -P -cvf $ATARDIR/$CDATE/enkf${CDUMP}_restartb_grp${ENSGRP}.tar `cat $ARCH_LIST/enkf${CDUMP}_restartb_grp${n}.txt`
status=$?
if [ $status -ne 0 ]; then
echo "HTAR $CDATE enkf${CDUMP}_restartb_grp${ENSGRP}.tar failed"
exit $status
fi
- fi
+ fi
+
+ fi # CDATE>SDATE
fi
diff --git a/jobs/rocoto/getic.sh b/jobs/rocoto/getic.sh
index f4cb367e4..2da15881c 100755
--- a/jobs/rocoto/getic.sh
+++ b/jobs/rocoto/getic.sh
@@ -124,9 +124,11 @@ if [ $ics_from = "opsgfs" ]; then
fi
# Move the files to legacy EMC filenames
- for i in `seq 1 $nfanal`; do
- $NMV ${fanal[i]} ${ftanal[i]}
- done
+ if [ $CDATE -le "2019061118" ]; then #GFSv14
+ for i in `seq 1 $nfanal`; do
+ $NMV ${fanal[i]} ${flanal[i]}
+ done
+ fi
fi
diff --git a/jobs/rocoto/metp.sh b/jobs/rocoto/metp.sh
new file mode 100755
index 000000000..b6658a523
--- /dev/null
+++ b/jobs/rocoto/metp.sh
@@ -0,0 +1,71 @@
+#!/bin/ksh -x
+
+###############################################################
+## Abstract:
+## Inline METplus verification and diagnostics driver script
+## RUN_ENVIR : runtime environment (emc | nco)
+## HOMEgfs : /full/path/to/workflow
+## EXPDIR : /full/path/to/config/files
+## CDATE : current analysis date (YYYYMMDDHH)
+## CDUMP : cycle name (gdas / gfs)
+## PDY : current date (YYYYMMDD)
+## cyc : current cycle (HH)
+## METPCASE : METplus verification use case (g2g1 | g2o1 | pcp1)
+###############################################################
+
+###############################################################
+echo
+echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ==============="
+. $HOMEgfs/ush/load_fv3gfs_modules.sh
+status=$?
+[[ $status -ne 0 ]] && exit $status
+
+
+###############################################################
+echo
+echo "=============== START TO SOURCE RELEVANT CONFIGS ==============="
+configs="base vrfy metp"
+for config in $configs; do
+ . $EXPDIR/config.${config}
+ status=$?
+ [[ $status -ne 0 ]] && exit $status
+done
+
+
+###############################################################
+echo
+echo "=============== START TO SOURCE MACHINE RUNTIME ENVIRONMENT ==============="
+. $BASE_ENV/${machine}.env metp
+status=$?
+[[ $status -ne 0 ]] && exit $status
+
+###############################################################
+export CDATEm1=$($NDATE -24 $CDATE)
+export PDYm1=$(echo $CDATEm1 | cut -c1-8)
+
+export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc"
+export DATAROOT="$RUNDIR/$CDATE/$CDUMP/vrfy"
+[[ -d $DATAROOT ]] && rm -rf $DATAROOT
+mkdir -p $DATAROOT
+
+
+###############################################################
+echo
+echo "=============== START TO RUN METPLUS VERIFICATION ==============="
+if [ $CDUMP = "gfs" ]; then
+
+ if [ $RUN_GRID2GRID_STEP1 = "YES" -o $RUN_GRID2OBS_STEP1 = "YES" -o $RUN_PRECIP_STEP1 = "YES" ]; then
+
+ $VERIF_GLOBALSH
+
+ fi
+fi
+
+
+if [ $CDUMP = "gdas" ]; then
+ echo "METplus verification currently not supported for CDUMP=${CDUMP}"
+fi
+###############################################################
+# Force Exit out cleanly
+if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi
+exit 0
diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.theia b/modulefiles/fv3gfs/enkf_chgres_recenter.theia
deleted file mode 100644
index 369c013f3..000000000
--- a/modulefiles/fv3gfs/enkf_chgres_recenter.theia
+++ /dev/null
@@ -1,14 +0,0 @@
-#%Module#####################################################
-## enkf_chgres_recenter component - theia
-#############################################################
-
-module load intel/16.1.150
-
-module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles
-module load nemsio/v2.2.3
-module load bacio/v2.0.2
-module load w3nco/v2.0.6
-module load ip/v3.0.0
-module load sp/v2.0.2
-
-export FC=ifort
diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.theia b/modulefiles/fv3gfs/gaussian_sfcanl.theia
deleted file mode 100644
index d70de3df8..000000000
--- a/modulefiles/fv3gfs/gaussian_sfcanl.theia
+++ /dev/null
@@ -1,19 +0,0 @@
-#%Module#####################################################
-## gaussian_sfcanl build module for Theia
-#############################################################
-
-# Loading Intel Compiler Suite
-module load intel/15.1.133
-
-# Loding nceplibs modules
-module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles
-module load w3nco/v2.0.6
-module load bacio/v2.0.2
-module load nemsio/v2.2.3
-module load sp/v2.0.2
-module load netcdf/4.3.0
-module load hdf5/1.8.14
-export NETCDF_INCLUDE="-I${NETCDF}/include"
-export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran"
-
-export FCOMP=ifort
diff --git a/modulefiles/gdas_gridbull.theia b/modulefiles/gdas_gridbull.theia
deleted file mode 100644
index e7cd769a1..000000000
--- a/modulefiles/gdas_gridbull.theia
+++ /dev/null
@@ -1,7 +0,0 @@
-#%Module################################################
-# Modfule file for gdas_gridbull
-########################################################
-module load intel/14.0.2
-module use -a $MOD_PATH
-module load bacio/v2.0.2
-module load w3nco/v2.0.6
diff --git a/modulefiles/gdas_navybull.theia b/modulefiles/gdas_navybull.theia
deleted file mode 100644
index a6c29a401..000000000
--- a/modulefiles/gdas_navybull.theia
+++ /dev/null
@@ -1,12 +0,0 @@
-#%Module################################################
-# Modfule file for gdas_navybull
-########################################################
-
-# Loading Intel Compiler Suite
-module load intel
-
-# Loding nceplibs modules
-module use -a $MOD_PATH
-module load w3emc/v2.0.3
-module load w3nco/v2.0.6
-module load bufr/v10.2.5
diff --git a/modulefiles/gdas_trpsfcmv.theia b/modulefiles/gdas_trpsfcmv.theia
deleted file mode 100644
index ae1a16731..000000000
--- a/modulefiles/gdas_trpsfcmv.theia
+++ /dev/null
@@ -1,12 +0,0 @@
-#%Module################################################
-# Modfule file for gdas_trpsfcmv
-########################################################
-module load intel/14.0.2
-module load impi/5.1.2.150
-module load ncl/6.3.0
-module use -a $MOD_PATH
-module load bufr/v10.2.5
-module load ip/v3.0.0
-module load sp/v2.0.2
-module load w3nco/v2.0.6
-module load bacio/v2.0.1
diff --git a/modulefiles/gfs_bufr.theia b/modulefiles/gfs_bufr.theia
deleted file mode 100644
index c433c9ca1..000000000
--- a/modulefiles/gfs_bufr.theia
+++ /dev/null
@@ -1,22 +0,0 @@
-#%Module#####################################################
-## bufrsnd
-#############################################################
-
-# Loading Intel Compiler Suite
-module load intel
-module load impi
-
-module use -a $MOD_PATH
-
-# Loding nceplibs modules
-module load sigio/v2.0.1
-module load bacio/v2.0.1
-module load w3emc/v2.2.0
-module load w3nco/v2.0.6
-module load bufr/v10.2.5
-module load nemsio/v2.2.1
-
-export myFC=mpiifort
-export myFCFLAGS="-O3 -convert big_endian -traceback -g -fp-model source -openmp"
-export myCPP=/lib/cpp
-export myCPPFLAGS="-P"
diff --git a/modulefiles/gfs_cnvgrib21_gfs.theia b/modulefiles/gfs_cnvgrib21_gfs.theia
deleted file mode 100644
index f2190a2bc..000000000
--- a/modulefiles/gfs_cnvgrib21_gfs.theia
+++ /dev/null
@@ -1,16 +0,0 @@
-#%Module#####################################################
-## Module file for cnvgrib21
-#############################################################
-
-# Loading Intel Compiler Suite
-module load intel
-
-module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles
-
-# Loding nceplibs modules
-module load bacio/v2.0.1
-module load w3nco/v2.0.6
-module load g2/v2.5.0
-module load jasper/v1.900.1
-module load z/v1.2.6
-module load png/v1.2.44
diff --git a/modulefiles/gfs_fbwndgfs.theia b/modulefiles/gfs_fbwndgfs.theia
deleted file mode 100644
index 9a896baf6..000000000
--- a/modulefiles/gfs_fbwndgfs.theia
+++ /dev/null
@@ -1,14 +0,0 @@
-#%Module#####################################################
-## Module file for fbwndgfs
-#############################################################
-
-# Loading Intel Compiler Suite
-module load intel/14.0.2
-
-# Loding nceplibs modules
-module use -a $MOD_PATH
-module load bacio/v2.0.1
-module load w3emc/v2.2.0
-module load w3nco/v2.0.6
-module load ip/v3.0.0
-module load sp/v2.0.2
diff --git a/modulefiles/gfs_overpdtg2.theia b/modulefiles/gfs_overpdtg2.theia
deleted file mode 100644
index 3bddf7c57..000000000
--- a/modulefiles/gfs_overpdtg2.theia
+++ /dev/null
@@ -1,15 +0,0 @@
-#%Module#####################################################
-## Module file for overpdtg2
-#############################################################
-
-# Loading Intel Compiler Suite
-module load intel
-
-# Loding nceplibs modules
-module use $MOD_PATH
-module load bacio/v2.0.1
-module load w3nco/v2.0.6
-module load g2/v2.5.0
-module load jasper/v1.900.1
-module load z/v1.2.6
-module load png/v1.2.44
diff --git a/modulefiles/gfs_wintemv.theia b/modulefiles/gfs_wintemv.theia
deleted file mode 100644
index 8205dd4a6..000000000
--- a/modulefiles/gfs_wintemv.theia
+++ /dev/null
@@ -1,12 +0,0 @@
-#%Module#####################################################
-## Module file for wintemv
-#############################################################
-
-# Loading Intel Compiler Suite
-module load intel
-
-# Loding nceplibs modules
-module use -a $MOD_PATH
-module load bacio/v2.0.1
-module load w3emc/v2.2.0
-module load w3nco/v2.0.6
diff --git a/modulefiles/module_base.theia b/modulefiles/module_base.theia
deleted file mode 100644
index 6d47731af..000000000
--- a/modulefiles/module_base.theia
+++ /dev/null
@@ -1,20 +0,0 @@
-#%Module######################################################################
-##
-## FV3GFS prerequisites
-##
-
-module load intel/18.0.1.163
-module load impi/5.1.2.150
-module load wgrib2/0.2.0.6c
-module load hpss/hpss
-module load pnetcdf/1.5.0-impi
-module load netcdf/4.3.0
-module load nco/4.7.0
-module load hdf5/1.8.14
-module load gempak/6.7.0
-
-module use /scratch4/NCEPDEV/global/save/glopara/git/NCEPLIBS-prod_util/modulefiles
-module load prod_util/v1.1.0_slurm
-
-module use -a /scratch4/NCEPDEV/nems/noscrub/emc.nemspara/soft/modulefiles
-module load esmf/8.0.0bs48
diff --git a/modulefiles/module_nemsutil.hera b/modulefiles/module_nemsutil.hera
deleted file mode 100644
index f1908fdf6..000000000
--- a/modulefiles/module_nemsutil.hera
+++ /dev/null
@@ -1,10 +0,0 @@
-#%Module#####################################################
-## Module file for nemsutil
-#############################################################
-
-module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles
-module load w3nco/2.0.6
-module load bacio/2.0.3
-module load nemsio/2.2.3
-
-export FCMP=ifort
diff --git a/modulefiles/module_nemsutil.theia b/modulefiles/module_nemsutil.theia
deleted file mode 100644
index 45685118e..000000000
--- a/modulefiles/module_nemsutil.theia
+++ /dev/null
@@ -1,15 +0,0 @@
-#%Module#####################################################
-## Module file for nemsutil
-#############################################################
-
-# Loading Intel Compiler Suite
-module load intel/14.0.2
-module load impi/5.1.2.150
-
-# Loding nceplibs modules
-module use -a $MOD_PATH
-module load w3nco/v2.0.6
-module load bacio/v2.0.1
-module load nemsio/v2.2.1
-
-export FCMP=ifort
diff --git a/modulefiles/module_nemsutil.wcoss b/modulefiles/module_nemsutil.wcoss
deleted file mode 100644
index f421c1a88..000000000
--- a/modulefiles/module_nemsutil.wcoss
+++ /dev/null
@@ -1,13 +0,0 @@
-#%Module#####################################################
-## Module file for nemsutil
-#############################################################
-
-# Loading Intel Compiler Suite
-module load ics/14.0.1
-
-# Loding nceplibs modules
-module load w3nco/v2.0.6
-module load bacio/v2.0.1
-module load nemsio/v2.2.1
-
-export FCMP=ifort
diff --git a/modulefiles/module_nemsutil.wcoss_cray b/modulefiles/module_nemsutil.wcoss_cray
deleted file mode 100644
index 371c8e024..000000000
--- a/modulefiles/module_nemsutil.wcoss_cray
+++ /dev/null
@@ -1,17 +0,0 @@
-#%Module#####################################################
-## Module file for nemsutil
-#############################################################
-
-module purge
-module load modules
-module load PrgEnv-intel
-module load cray-mpich
-module load craype-sandybridge
-
-module load w3nco-intel/2.0.6
-module load bacio-intel/2.0.1
-
-export NEMSIO_INC=/usrx/local/nceplibs/nemsio/nemsio_v2.2.3/incmod
-export NEMSIO_LIB=/usrx/local/nceplibs/nemsio/nemsio_v2.2.3/libnemsio_v2.2.3.a
-
-export FCMP=ftn
diff --git a/modulefiles/module_nemsutil.wcoss_cray_userlib b/modulefiles/module_nemsutil.wcoss_cray_userlib
deleted file mode 100644
index 53fad475a..000000000
--- a/modulefiles/module_nemsutil.wcoss_cray_userlib
+++ /dev/null
@@ -1,19 +0,0 @@
-#%Module#####################################################
-## Module file for nemsutil
-#############################################################
-
-# Load Intel environment
-module purge
-module load modules
-module load PrgEnv-intel
-module load cray-mpich
-module load craype-sandybridge
-
-# Load NCEPLIBS modules
-module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles
-module use $MOD_PATH
-module load w3nco/v2.0.6
-module load bacio/v2.0.2
-module load nemsio/v2.2.3
-
-export FCMP=ftn
diff --git a/modulefiles/module_nemsutil.wcoss_dell_p3 b/modulefiles/module_nemsutil.wcoss_dell_p3
deleted file mode 100644
index e93d58165..000000000
--- a/modulefiles/module_nemsutil.wcoss_dell_p3
+++ /dev/null
@@ -1,12 +0,0 @@
-#%Module#####################################################
-## Module file for nemsutil
-#############################################################
-
-module load ips/18.0.1.163
-module load impi/18.0.1
-
-module load bacio/2.0.2
-module load w3nco/2.0.6
-module load nemsio/2.2.3
-
-export FCMP=ifort
diff --git a/modulefiles/modulefile.fv3nc2nemsio.theia b/modulefiles/modulefile.fv3nc2nemsio.theia
deleted file mode 100644
index 83bf6bff1..000000000
--- a/modulefiles/modulefile.fv3nc2nemsio.theia
+++ /dev/null
@@ -1,14 +0,0 @@
-#%Module#####################################################
-## Module file for fv3nc2nemsio
-#############################################################
-
-module load intel/14.0.2
-module load netcdf/4.3.0
-module load hdf5/1.8.14
-module use -a $MOD_PATH
-module load bacio/v2.0.2
-module load nemsio/v2.2.3
-module load w3nco/v2.0.6
-
-export FCMP="ifort"
-export FFLAGS="-g -O2 -traceback"
diff --git a/modulefiles/modulefile.grib_util.theia b/modulefiles/modulefile.grib_util.theia
deleted file mode 100644
index ecdd67804..000000000
--- a/modulefiles/modulefile.grib_util.theia
+++ /dev/null
@@ -1,20 +0,0 @@
-#%Module######################################################################
-module use -a $MOD_PATH
-
-module load intel/14.0.2
-
-module load jasper/v1.900.1
-module load png/v1.2.44
-module load z/v1.2.6
-
-
-module load bacio/v2.0.2
-module load w3emc/v2.2.0
-module load w3nco/v2.0.6
-module load ip/v3.0.0
-module load sp/v2.0.2
-module load g2/v3.1.0
-
-export FCMP=ifort
-export CCMP=icc
-
diff --git a/modulefiles/modulefile.grib_util.wcoss b/modulefiles/modulefile.grib_util.wcoss
deleted file mode 100644
index 0ae2e8f49..000000000
--- a/modulefiles/modulefile.grib_util.wcoss
+++ /dev/null
@@ -1,32 +0,0 @@
-#%Module######################################################################
-proc ModulesHelp { } {
- puts stderr "Load modules for building GRIB utilities"
-}
-module-whatis "This module loads the modules and libraries for building\
- the GRIB utilities, including jasper, png, zlib, bacio, g2,\
- w3emc, w3nco, ip, sp, and iobuf."
-
-conflict build_grib_util
-
-#
-# Loading required system modules
-#
- module load ics
- module switch ics/15.0.6
- module load jasper/v1.900.1
- module load png/v1.2.44
- module load z/v1.2.6
-
-# Loading Intel-Compiled NCEP Libraries
- module load bacio/v2.0.1
- module load w3emc/v2.2.0
- module load w3nco/v2.0.6
- module load ip/v3.0.0
- module load sp/v2.0.2
-
- # pre-implemented g2 v3.1.0
- module use /nwtest2/lib/modulefiles
- module load g2/v3.1.0
-
-setenv FCMP ifort
-setenv CCMP icc
diff --git a/modulefiles/modulefile.grib_util.wcoss_cray b/modulefiles/modulefile.grib_util.wcoss_cray
deleted file mode 100644
index 191baa15d..000000000
--- a/modulefiles/modulefile.grib_util.wcoss_cray
+++ /dev/null
@@ -1,22 +0,0 @@
-#%Module######################################################################
-module unload craype-haswell
-module load craype-sandybridge
-module unload PrgEnv-cray
-module load PrgEnv-intel/5.2.56
-module switch intel/15.0.6.233
-module load iobuf/2.0.7
-
-module load bacio-intel/2.0.1
-module load w3emc-intel/2.2.0
-module load w3nco-intel/2.0.6
-module load ip-intel/3.0.0
-module load sp-intel/2.0.2
-module load jasper-gnu-sandybridge/1.900.1
-module load png-intel-sandybridge/1.2.49
-module load zlib-intel-sandybridge/1.2.7
-
-module use /gpfs/hps/nco/ops/nwtest/lib/modulefiles
-module load g2-intel/3.1.0
-
-export FCMP=ftn
-export CCMP=cc
diff --git a/modulefiles/modulefile.grib_util.wcoss_cray_userlib b/modulefiles/modulefile.grib_util.wcoss_cray_userlib
deleted file mode 100644
index 56ebe0c33..000000000
--- a/modulefiles/modulefile.grib_util.wcoss_cray_userlib
+++ /dev/null
@@ -1,22 +0,0 @@
-#%Module######################################################################
-module unload craype-haswell
-module load craype-sandybridge
-module unload PrgEnv-cray
-module load PrgEnv-intel/5.2.56
-module switch intel/15.0.6.233
-module load iobuf/2.0.7
-
-module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles
-module use -a $MOD_PATH
-module load bacio/v2.0.2
-module load w3emc/v2.2.0
-module load w3nco/v2.0.6
-module load ip/v3.0.0
-module load sp/v2.0.2
-module load jasper/v1.900.1
-module load png/v1.2.44
-module load z/v1.2.6
-module load g2/v3.1.0
-
-export FCMP=ftn
-export CCMP=cc
diff --git a/modulefiles/modulefile.grib_util.wcoss_dell_p3 b/modulefiles/modulefile.grib_util.wcoss_dell_p3
deleted file mode 100644
index bbebec9cb..000000000
--- a/modulefiles/modulefile.grib_util.wcoss_dell_p3
+++ /dev/null
@@ -1,15 +0,0 @@
-#%Module######################################################################
-
-module load bacio/2.0.2
-module load w3emc/2.3.0
-module load w3nco/2.0.6
-module load ip/3.0.1
-module load sp/2.0.2
-
-module load jasper/1.900.1
-module load libpng/1.2.59
-module load zlib/1.2.11
-module load g2/3.1.0
-
-export FCMP=ifort
-export CCMP=icc
diff --git a/modulefiles/modulefile.prod_util.theia b/modulefiles/modulefile.prod_util.theia
deleted file mode 100644
index 3ad4d37bf..000000000
--- a/modulefiles/modulefile.prod_util.theia
+++ /dev/null
@@ -1,8 +0,0 @@
-#%Module######################################################################
-##
-module load intel/16.1.150
-module use -a $MOD_PATH
-module load w3nco/v2.0.6
-
-export FCMP=ifort
-export CCMP=icc
diff --git a/modulefiles/modulefile.prod_util.wcoss_cray b/modulefiles/modulefile.prod_util.wcoss_cray
deleted file mode 100644
index 51031c6bd..000000000
--- a/modulefiles/modulefile.prod_util.wcoss_cray
+++ /dev/null
@@ -1,11 +0,0 @@
-#%Module#####################################################
-module purge
-module load modules
-module load PrgEnv-intel
-module load cray-mpich
-module load craype-sandybridge
-
-module load w3nco-intel/2.0.6
-
-export FCMP=ftn
-export CCMP=cc
diff --git a/modulefiles/modulefile.prod_util.wcoss_cray_userlib b/modulefiles/modulefile.prod_util.wcoss_cray_userlib
deleted file mode 100644
index dd5209fcf..000000000
--- a/modulefiles/modulefile.prod_util.wcoss_cray_userlib
+++ /dev/null
@@ -1,13 +0,0 @@
-#%Module#####################################################
-module purge
-module load modules
-module load PrgEnv-intel
-module load cray-mpich
-module load craype-sandybridge
-
-module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles
-module use -a $MOD_PATH
-module load w3nco/v2.0.6
-
-export FCMP=ftn
-export CCMP=cc
diff --git a/modulefiles/modulefile.prod_util.wcoss_dell_p3 b/modulefiles/modulefile.prod_util.wcoss_dell_p3
deleted file mode 100644
index 9186e13eb..000000000
--- a/modulefiles/modulefile.prod_util.wcoss_dell_p3
+++ /dev/null
@@ -1,6 +0,0 @@
-#%Module#####################################################
-
-module load w3nco/2.0.6
-
-export FCMP=ifort
-export CCMP=icc
diff --git a/modulefiles/modulefile.regrid_nemsio.theia b/modulefiles/modulefile.regrid_nemsio.theia
deleted file mode 100644
index bcc0d169f..000000000
--- a/modulefiles/modulefile.regrid_nemsio.theia
+++ /dev/null
@@ -1,16 +0,0 @@
-#%Module#####################################################
-## Module file for regrid_nemsio
-#############################################################
-
-module load intel/14.0.2
-module load impi/4.1.3.048
-module load netcdf/4.3.0
-module load hdf5/1.8.14
-
-module use -a $MOD_PATH
-module load bacio/v2.0.2
-module load nemsio/v2.2.3
-module load w3nco/v2.0.6
-module load sp/v2.0.2
-
-export FCMP="mpif90 -f90=ifort"
diff --git a/modulefiles/modulefile.storm_reloc_v6.0.0.theia b/modulefiles/modulefile.storm_reloc_v6.0.0.theia
deleted file mode 100644
index f9835db93..000000000
--- a/modulefiles/modulefile.storm_reloc_v6.0.0.theia
+++ /dev/null
@@ -1,26 +0,0 @@
-#%Module#####################################################
-## Module file for storm_reloc_v6.0.0
-#############################################################
-
-module use /scratch3/NCEPDEV/nwprod/lib/modulefiles
-
-module load intel
-module load impi
-module load nco
-
-module load sigio/v2.0.1
-module load sfcio/v1.0.0
-module load g2/v2.5.0
-module load w3nco/v2.0.6
-module load w3emc/v2.0.5
-module load bacio/v2.0.1
-module load jasper/v1.900.1
-module load png/v1.2.44
-module load z/v1.2.6
-module load sp/v2.0.2
-module load ip/v2.0.0
-module load bufr/v10.2.5
-module load nemsio/v2.2.2
-module load nemsiogfs/v2.0.1
-
-set FC mpiifort
diff --git a/modulefiles/modulefile.wgrib2.theia b/modulefiles/modulefile.wgrib2.theia
deleted file mode 100644
index b1568e8ce..000000000
--- a/modulefiles/modulefile.wgrib2.theia
+++ /dev/null
@@ -1,19 +0,0 @@
-#%Module######################################################################
-
-module load intel/14.0.2
-module load netcdf/4.3.0
-module load hdf5/1.8.14
-module load szip/2.1
-
-module use -a $MOD_PATH
-module load jasper/v1.900.1
-module load png/v1.2.44
-module load z/v1.2.6
-module load ip/v3.0.0
-module load sp/v2.0.2
-module load g2c/v1.5.0
-
-export NETCDF_INCLUDE="-I${NETCDF}/include"
-
-export FCMP=ifort
-export CCMP=icc
diff --git a/modulefiles/modulefile.wgrib2.wcoss b/modulefiles/modulefile.wgrib2.wcoss
deleted file mode 100644
index 0eea72e39..000000000
--- a/modulefiles/modulefile.wgrib2.wcoss
+++ /dev/null
@@ -1,24 +0,0 @@
-#%Module######################################################################
-#############################################################
-## Lin.Gan@noaa.gov
-## EMC
-## wgrib2 v2.0.5
-#############################################################
-proc ModulesHelp { } {
-puts stderr "Set environment veriables for wgrib2"
-puts stderr "This module initializes the users environment"
-puts stderr "to build the wgrib2 for WCOSS production.\n"
-}
-module-whatis "wgrib2"
-
-set ver v2.0.5
-
-module load ics/15.0.6
-module load NetCDF/4.2/serial
-module load jasper/v1.900.1
-module load png/v1.2.44
-module load z/v1.2.6
-module load ip/v3.0.0
-module load sp/v2.0.2
-module load g2c/v1.5.0
-
diff --git a/modulefiles/modulefile.wgrib2.wcoss_cray b/modulefiles/modulefile.wgrib2.wcoss_cray
deleted file mode 100644
index 4d933141a..000000000
--- a/modulefiles/modulefile.wgrib2.wcoss_cray
+++ /dev/null
@@ -1,13 +0,0 @@
-#%Module######################################################################
-module load PrgEnv-gnu/5.2.56
-module load cray-netcdf/4.3.2
-module load craype/2.3.0
-module load craype-sandybridge
-module load /gpfs/hps/nco/ops/nwtest/lib/modulefiles/g2c-gnu/1.5.0
-
-module load jasper-gnu-sandybridge/1.900.1
-module load png-gnu-sandybridge/1.2.49
-module load zlib-gnu-sandybridge/1.2.7
-
-export FCMP=ftn
-export CCMP=cc
diff --git a/modulefiles/modulefile.wgrib2.wcoss_cray_userlib b/modulefiles/modulefile.wgrib2.wcoss_cray_userlib
deleted file mode 100644
index 7b41a17f9..000000000
--- a/modulefiles/modulefile.wgrib2.wcoss_cray_userlib
+++ /dev/null
@@ -1,15 +0,0 @@
-#%Module######################################################################
-module load PrgEnv-gnu/5.2.56
-module load cray-netcdf/4.3.2
-module load craype/2.3.0
-module load craype-sandybridge
-
-module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles
-module use -a $MOD_PATH
-module load jasper/v1.900.1
-module load png/v1.2.44
-module load z/v1.2.6
-module load g2c/v1.5.0
-
-export FCMP=ftn
-export CCMP=cc
diff --git a/modulefiles/modulefile.wgrib2.wcoss_dell_p3 b/modulefiles/modulefile.wgrib2.wcoss_dell_p3
deleted file mode 100644
index 9a43e3ffd..000000000
--- a/modulefiles/modulefile.wgrib2.wcoss_dell_p3
+++ /dev/null
@@ -1,11 +0,0 @@
-#%Module######################################################################
-
-module load ips/18.0.1.163
-
-module load g2c/1.5.0
-module load jasper/1.900.1
-module load libpng/1.2.59
-module load zlib/1.2.11
-
-export FCMP=ifort
-export CCMP=icc
diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn
index f4d7e8166..ed1f2c485 100755
--- a/parm/config/config.base.emc.dyn
+++ b/parm/config/config.base.emc.dyn
@@ -12,19 +12,9 @@ export machine="@MACHINE@"
export RUN_ENVIR="emc"
# Account, queue, etc.
-if [ $machine = "THEIA" -o $machine = "HERA" ]; then
-
- export ACCOUNT="fv3-cpu"
- export QUEUE="batch"
- export QUEUE_ARCH="service"
-
-elif [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" ]; then
-
- export ACCOUNT="FV3GFS-T2O"
- export QUEUE="dev"
- export QUEUE_ARCH="dev_transfer"
-
-fi
+export ACCOUNT="@ACCOUNT@"
+export QUEUE="@QUEUE@"
+export QUEUE_ARCH="@QUEUE_ARCH@"
# Project to use in mass store:
HPSS_PROJECT=emc-global
@@ -41,104 +31,19 @@ export SCRgfs=$HOMEgfs/scripts
########################################################################
# GLOBAL static environment parameters
-if [ $machine = "THEIA" ]; then
-
- export NWPROD="/scratch4/NCEPDEV/global/save/glopara/nwpara"
- export DMPDIR="/scratch4/NCEPDEV/global/noscrub/dump"
- export RTMFIX="/scratch4/NCEPDEV/da/save/Michael.Lueken/nwprod/lib/crtm/2.2.3/fix_update"
- export FV3INP="/scratch4/NCEPDEV/nems/noscrub/emc.nemspara/RT/NEMSfv3gfs/trunk-20190613/FV3_input_data_gsd"
-
-elif [ $machine = "HERA" ]; then
-
- #export NWPROD="/scratch1/NCEPDEV/global/glopara/nwpara"
- export DMPDIR="/scratch1/NCEPDEV/global/glopara/dump"
- export RTMFIX=$CRTM_FIX
- export FV3INP="/scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/trunk-20190925/FV3_input_data_gsd"
-
-elif [ $machine = "WCOSS_C" ]; then
-
- export NWPROD="/gpfs/hps/nco/ops/nwprod"
- export DMPDIR="/gpfs/dell3/emc/global/dump"
- export RTMFIX=$CRTM_FIX
- export FV3INP=$FV3INP
-
-elif [ $machine = "WCOSS_DELL_P3" ]; then
-
- export NWPROD="/gpfs/dell1/nco/ops/nwprod"
- export DMPDIR="/gpfs/dell3/emc/global/dump"
- export RTMFIX=$CRTM_FIX
- export FV3INP=$FV3INP
-fi
-
-
-# Machine specific paths used everywhere
-if [ $machine = "THEIA" ]; then
-
- # USER specific paths
- export HOMEDIR="/scratch4/NCEPDEV/global/save/$USER"
- export STMP="/scratch4/NCEPDEV/stmp3/$USER"
- export PTMP="/scratch4/NCEPDEV/stmp4/$USER"
- export NOSCRUB="/scratch4/NCEPDEV/global/noscrub/$USER"
-
- # Base directories for various builds
- export BASE_GIT="/scratch4/NCEPDEV/global/save/glopara/git"
- export BASE_SVN="/scratch4/NCEPDEV/global/save/glopara/svn"
-
-elif [ $machine = "HERA" ]; then
-
- # USER specific paths
- export HOMEDIR="/scratch1/NCEPDEV/global/$USER"
- export STMP="/scratch1/NCEPDEV/stmp2/$USER"
- export PTMP="/scratch1/NCEPDEV/stmp4/$USER"
- export NOSCRUB="$HOMEDIR"
-
- # Base directories for various builds
- export BASE_GIT="/scratch1/NCEPDEV/global/glopara/git"
- export BASE_SVN="/scratch1/NCEPDEV/global/glopara/svn"
-
-elif [ $machine = "WCOSS_C" ]; then
-
- # USER specific paths
- export HOMEDIR="/gpfs/hps3/emc/global/noscrub/$USER"
- export STMP="/gpfs/hps2/stmp/$USER"
- export PTMP="/gpfs/hps2/ptmp/$USER"
- export NOSCRUB="/gpfs/hps3/emc/global/noscrub/$USER"
-
- # Base directories for various builds
- export BASE_GIT="/gpfs/hps3/emc/global/noscrub/emc.glopara/git"
- export BASE_SVN="/gpfs/hps3/emc/global/noscrub/emc.glopara/svn"
-
-elif [ $machine = "WCOSS_DELL_P3" ]; then
-
- # USER specific paths
- export HOMEDIR="/gpfs/dell2/emc/modeling/noscrub/$USER"
- export STMP="/gpfs/dell3/stmp/$USER"
- export PTMP="/gpfs/dell3/ptmp/$USER"
- export NOSCRUB="/gpfs/dell2/emc/modeling/noscrub/$USER"
-
- # Base directories for various builds
- export BASE_GIT="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git"
- export BASE_SVN="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git"
-
-fi
-
-# Utilities needed in the scripts (mostly post)
-if [ $machine = "THEIA" ]; then
-
- export NDATE="$NWPROD/util/exec/ndate"
- export NHOUR="$NWPROD/util/exec/nhour"
- export WGRIB="$NWPROD/util/exec/wgrib"
- export WGRIB2="/scratch3/NCEPDEV/nwprod/utils/wgrib2.v2.0.6c/wgrib2/wgrib2"
- export COPYGB="$NWPROD/util/exec/copygb"
- export COPYGB2="$NWPROD/util/exec/copygb2"
- export GRBINDEX="$NWPROD/util/exec/grbindex"
- export GRB2INDEX="$NWPROD/util/exec/grb2index"
- export GRBINDEX2="$NWPROD/util/exec/grb2index"
- export CNVGRIB="/apps/cnvgrib/1.4.0/bin/cnvgrib"
- export POSTGRB2TBL="/scratch3/NCEPDEV/nwprod/lib/g2tmpl/v1.5.0/sorc/params_grib2_tbl_new"
-
-fi
-
+export NWPROD="@NWPROD@"
+export DMPDIR="@DMPDIR@"
+export RTMFIX=$CRTM_FIX
+
+# USER specific paths
+export HOMEDIR="@HOMEDIR@"
+export STMP="@STMP@"
+export PTMP="@PTMP@"
+export NOSCRUB="@NOSCRUB@"
+
+# Base directories for various builds
+export BASE_GIT="@BASE_GIT@"
+export BASE_SVN="@BASE_SVN@"
#### CCPP Suite
export CCPP_SUITE="FV3_GSD_v0" # testgsdsuite
#### export CCPP_SUITE="FV3_GFS_v15" # testemc
@@ -164,7 +69,7 @@ export FIXgsi="$HOMEgfs/fix/fix_gsi"
export HOMEfv3gfs="$HOMEgfs/sorc/fv3gfs.fd"
export HOMEpost="$HOMEgfs"
export HOMEobsproc_prep="$BASE_GIT/obsproc/obsproc_prep_RB-5.2.0"
-export HOMEobsproc_network="$BASE_GIT/obsproc/obsproc_global_RB-3.2.2"
+export HOMEobsproc_network="$BASE_GIT/obsproc/obsproc_global.v3.2.3"
export HOMEobsproc_global=$HOMEobsproc_network
export BASE_VERIF="$BASE_SVN/verif/global/tags/vsdb"
@@ -304,6 +209,8 @@ export nst_anl=.true.
# Analysis increments to zero in CALCINCEXEC
export INCREMENTS_TO_ZERO="'delz_inc','clwmr_inc','icmr_inc'"
+# Verification options
+export DO_METP="YES" # Run MET+ jobs
# Archiving options
export HPSSARCH="NO" # save data to HPSS archive
diff --git a/parm/config/config.fv3ic b/parm/config/config.fv3ic
index afe998fbb..eaed3892e 100755
--- a/parm/config/config.fv3ic
+++ b/parm/config/config.fv3ic
@@ -10,7 +10,7 @@ export wtime_fv3ic="00:30:00"
export npe_fv3ic=1
export npe_node_fv3ic=1
export nth_fv3ic=${NTHREADS_CHGRES:-24}
-if [ $machine = THEIA -o $machine = HERA ]; then
+if [ $machine = HERA ]; then
export npe_fv3ic=4
export npe_node_fv3ic=4
export nth_fv3ic=1
diff --git a/parm/config/config.metp b/parm/config/config.metp
new file mode 100755
index 000000000..9dd701ea1
--- /dev/null
+++ b/parm/config/config.metp
@@ -0,0 +1,69 @@
+#!/bin/ksh -x
+
+########## config.metp ##########
+# METplus verification step specific
+
+echo "BEGIN: config.metp"
+
+# Get task specific resources
+. $EXPDIR/config.resources metp
+
+export RUN_GRID2GRID_STEP1="YES" # Run grid-to-grid verification using METplus
+export RUN_GRID2OBS_STEP1="YES" # Run grid-to-obs verification using METplus
+export RUN_PRECIP_STEP1="YES" # Run precip verification using METplus
+
+
+#----------------------------------------------------------
+# METplus, Verify grid-to-grid, and/or grid-to-obs, and/or precipitation options
+#----------------------------------------------------------
+
+if [ "$CDUMP" = "gfs" ] ; then
+ if [ $RUN_GRID2GRID_STEP1 = "YES" -o $RUN_GRID2OBS_STEP1 = "YES" -o $RUN_PRECIP_STEP1 = "YES" ]; then
+ export HOMEverif_global=${HOMEgfs}/sorc/verif-global.fd
+ export VERIF_GLOBALSH=$HOMEverif_global/ush/run_verif_global_in_global_workflow.sh
+ ## INPUT DATA SETTINGS
+ export model_list=$PSLOT
+ export model_data_dir_list=$ARCDIR/..
+ export model_fileformat_list="pgbf{lead?fmt=%H}.${CDUMP}.{init?fmt=%Y%m%d%H}"
+ export model_hpssdir_list=$ATARDIR/..
+ export get_data_from_hpss="NO"
+ export hpss_walltime="10"
+ ## OUTPUT SETTINGS
+ export OUTPUTROOT=$RUNDIR/$CDUMP/$CDATE/vrfy/metplus_exp
+ export model_arch_dir_list=$ARCDIR/..
+ export make_met_data_by="VALID"
+ export gather_by="VSDB"
+ ## DATE SETTINGS
+ export VRFYBACK_HRS="24"
+ ## METPLUS SETTINGS
+ export METplus_verbosity="INFO"
+ export MET_verbosity="2"
+ export log_MET_output_to_METplus="yes"
+ ## FORECAST VERIFICATION SETTINGS
+ export fhr_min=$FHMIN_GFS
+ export fhr_max=$FHMAX_GFS
+ # GRID-TO-GRID STEP 1
+ export g2g1_type_list="anom pres sfc"
+ export g2g1_anl_name="self_anl"
+ export g2g1_anl_fileformat_list="pgbanl.gfs.{valid?fmt=%Y%m%d%H}"
+ export g2g1_grid="G002"
+ # GRID-TO-OBS STEP 1
+ export g2o1_type_list="upper_air conus_sfc"
+ export g2o1_obtype_upper_air="ADPUPA"
+ export g2o1_grid_upper_air="G003"
+ export g2o1_fhr_out_upper_air="6"
+ export g2o1_obtype_conus_sfc="ONLYSF"
+ export g2o1_grid_conus_sfc="G104"
+ export g2o1_fhr_out_conus_sfc="3"
+ export g2o1_prepbufr_data_runhpss="YES"
+ # PRECIP STEP 1
+ export precip1_obtype="ccpa"
+ export precip1_accum_length="24"
+ export precip1_model_bucket_list="06"
+ export precip1_model_varname_list="APCP"
+ export precip1_model_fileformat_list="pgbf{lead?fmt=%H}.gfs.{init?fmt=%Y%m%d%H}"
+ export precip1_grid="G211"
+ fi
+fi
+
+echo "END: config.metp"
diff --git a/parm/config/config.post b/parm/config/config.post
index 11eab60b4..63a219451 100755
--- a/parm/config/config.post
+++ b/parm/config/config.post
@@ -44,10 +44,4 @@ fi
export GRIBVERSION='grib2'
export SENDCOM="YES"
-if [ $machine = "THEIA" ] ; then
- export CRTM_FIX=/scratch3/NCEPDEV/nceplibs/dev/crtm/v2.2.3/fix
-else
- echo "UPP using CRTM_FIX = $CRTM_FIX"
-fi
-
echo "END: config.post"
diff --git a/parm/config/config.prepbufr b/parm/config/config.prepbufr
index 198cc9ef8..c90a732c4 100755
--- a/parm/config/config.prepbufr
+++ b/parm/config/config.prepbufr
@@ -10,9 +10,7 @@ echo "BEGIN: config.prepbufr"
# Set variables
-if [ $machine = "THEIA" ]; then
- export GESROOT=/scratch4/NCEPDEV/rstprod/nwges/prod # set by module prod_envir on WCOSS_C
-elif [ $machine = "HERA" ]; then
+if [ $machine = "HERA" ]; then
export GESROOT=/scratch1/NCEPDEV/rstprod # set by module prod_envir on WCOSS_C
fi
diff --git a/parm/config/config.resources b/parm/config/config.resources
index aa003d405..c3f563e84 100755
--- a/parm/config/config.resources
+++ b/parm/config/config.resources
@@ -8,7 +8,7 @@ if [ $# -ne 1 ]; then
echo "Must specify an input task argument to set resource variables!"
echo "argument can be any one of the following:"
- echo "anal fcst post vrfy arch"
+ echo "anal fcst post vrfy metp arch"
echo "eobs eomg eupd ecen efcs epos earc"
echo "postsnd awips gempak"
exit 1
@@ -21,10 +21,11 @@ echo "BEGIN: config.resources"
if [[ "$machine" = "WCOSS_DELL_P3" ]]; then
export npe_node_max=28
+ if [ "$QUEUE" = "dev2" -o "$QUEUE" = "devonprod2" -o "$QUEUE" = "devmax2" ]; then # WCOSS Dell 3.5
+ export npe_node_max=40
+ fi
elif [[ "$machine" = "WCOSS_C" ]]; then
export npe_node_max=24
-elif [[ "$machine" = "THEIA" ]]; then
- export npe_node_max=24
elif [[ "$machine" = "JET" ]]; then
export npe_node_max=24
elif [[ "$machine" = "HERA" ]]; then
@@ -110,10 +111,25 @@ elif [ $step = "vrfy" ]; then
export npe_node_vrfy_gfs=1
if [[ "$machine" == "WCOSS_C" ]]; then
export memory_vrfy="3072M"
- elif [[ "$machine" == "THEIA" ]]; then
+ elif [[ "$machine" == "HERA" ]]; then
export memory_vrfy="16384M"
fi
+elif [ $step = "metp" ]; then
+
+ export nth_metp=1
+ export wtime_metp="03:00:00"
+ export npe_metp=4
+ export npe_node_metp=4
+ export wtime_metp_gfs="06:00:00"
+ export npe_metp_gfs=4
+ export npe_node_metp_gfs=4
+ if [[ "$machine" == "WCOSS_C" ]]; then
+ export memory_metp="3072M"
+ elif [[ "$machine" == "THEIA" ]]; then
+ export memory_metp="16384M"
+ fi
+
elif [ $step = "arch" -o $step = "earc" -o $step = "getic" ]; then
eval "export wtime_$step='06:00:00'"
diff --git a/parm/config/config.vrfy b/parm/config/config.vrfy
index 88edf1d81..432c6d4e2 100755
--- a/parm/config/config.vrfy
+++ b/parm/config/config.vrfy
@@ -14,7 +14,6 @@ export CDFNL="gdas" # Scores verification against GDAS/GFS analysi
export MKPGB4PRCP="YES" # Make 0.25-deg pgb files in ARCDIR for precip verification
export VRFYFITS="YES" # Fit to observations
-export VRFY_PCKG2RUN="VSDB" # "VSDB" = run VSDB verification package only, "METPLUS" = run METplus verification package only, "BOTH = run both verification packages
export VSDB_STEP1="YES" # Populate VSDB database
export VSDB_STEP2="NO"
export VRFYG2OBS="YES" # Grid to observations, see note below if turning ON
@@ -22,12 +21,9 @@ export VRFYPRCP="YES" # Precip threat scores
export VRFYRAD="YES" # Radiance data assimilation monitoring
export VRFYOZN="YES" # Ozone data assimilation monitoring
export VRFYMINMON="YES" # GSI minimization monitoring
-export VRFYTRAK="YES" # Hurricane track verification
-export VRFYGENESIS="YES" # Cyclone genesis verification
+export VRFYTRAK="YES" # Hurricane track verification
+export VRFYGENESIS="YES" # Cyclone genesis verification
export RUNMOS="NO" # whether to run entire MOS package
-export RUN_METPLUS_GRID2GRID_STEP1="YES" # Run grid-to-grid verification using METplus
-export RUN_METPLUS_GRID2OBS_STEP1="YES" # Run grid-to-obs verification using METplus
-export RUN_METPLUS_PRECIP_STEP1="YES" # Run precip verification using METplus
#-------------------------------------------------
# Fit to Observations
@@ -36,7 +32,7 @@ export RUN_METPLUS_PRECIP_STEP1="YES" # Run precip verification using METplus
if [ $VRFYFITS = "YES" ]; then
export PRVT=$HOMEgfs/fix/fix_gsi/prepobs_errtable.global
- export HYBLEVS=$HOMEgfs/fix/fix_am/global_hyblev.l65.txt
+ export HYBLEVS=$HOMEgfs/fix/fix_am/global_hyblev.l${LEVS}.txt
export CUE2RUN=$QUEUE
if [ $machine = "WCOSS_C" ]; then
@@ -45,7 +41,7 @@ if [ $VRFYFITS = "YES" ]; then
elif [ $machine = "WCOSS_DELL_P3" ]; then
export fitdir="$BASE_SVN/verif/global/parafits.fv3nems/batrun"
export PREPQFITSH="$fitdir/subfits_dell_nems"
- elif [ $machine = "THEIA" -o $machine = "HERA" ]; then
+ elif [ $machine = "HERA" ]; then
export fitdir="$BASE_GIT/Fit2Obs/batrun"
export PREPQFITSH="$fitdir/subfits_theia_slurm"
fi
@@ -62,84 +58,25 @@ if [ "$CDUMP" = "gfs" ] ; then
ddd=`echo $CDATE |cut -c 1-8`
#if [ $ddd -eq 5 -o $ddd -eq 10 ]; then export VSDB_STEP2 = "YES" ;fi
- if [ $VRFY_PCKG2RUN = "VSDB" -o $VRFY_PCKG2RUN = "BOTH" ]; then
- if [ $VSDB_STEP1 = "YES" -o $VSDB_STEP2 = "YES" -o $VRFYPRCP = "YES" -o $VRFYG2OBS = "YES" ]; then
- export BACKDATEVSDB=24 # execute vsdbjob for the previous day
- export VBACKUP_PRCP=24 # back up for QPF verification data
- export vsdbsave="$NOSCRUB/archive/vsdb_data" # place to save vsdb database
- export vsdbhome=$BASE_VERIF # location of global verification scripts
- export VSDBSH="$vsdbhome/vsdbjob.sh" # VSDB job script
- export vlength=$FHMAX_GFS # verification length
- export vhr_rain=$FHMAX_GFS # verification length for precip
- export ftyplist="pgbq" # verif. files used for computing QPF ETS scores
- export ptyplist="PRATE" # precip types in GRIB: PRATE or APCP
- export anltype="gfs" # default=gfs, analysis type (gfs or gdas) for verification
- export rain_bucket=6 # prate in pgb files is 6-hr accumulated
-
- export VSDB_START_DATE="$SDATE" # starting date for vsdb maps
- export webhost="emcrzdm.ncep.noaa.gov" # webhost(rzdm) computer
- export webhostid="$USER" # webhost(rzdm) user name
- export SEND2WEB="NO" # whether or not to send maps to webhost
- export WEBDIR="/home/people/emc/www/htdocs/gmb/${webhostid}/vsdb/$PSLOT"
- export mdlist="gfs $PSLOT " # exps (up to 10) to compare in maps
- fi
- fi
-fi
-
-
-#----------------------------------------------------------
-# METplus, Verify grid-to-grid, and/or grid-to-obs, and/or precipitation options
-#----------------------------------------------------------
-# All these call $METPLUSSH
-
-if [ "$CDUMP" = "gfs" ] ; then
- if [ $RUN_METPLUS_GRID2GRID_STEP1 = "YES" -o $RUN_METPLUS_GRID2OBS_STEP1 = "YES" -o $RUN_METPLUS_PRECIP_STEP1 = "YES" ]; then
- if [ $VRFY_PCKG2RUN = "METPLUS" -o $VRFY_PCKG2RUN = "BOTH" ]; then
- export HOMEverif_global=${HOMEgfs}/sorc/verif-global.fd
- export VERIF_GLOBALSH=$HOMEverif_global/ush/run_verif_global_in_global_workflow.sh
- export RUNBATCH="NO"
- ## INPUT DATA SETTINGS
- export model_list=$PSLOT
- export model_data_dir_list=$ARCDIR/..
- export model_fileformat_list="pgbf{lead?fmt=%H}.${CDUMP}.{init?fmt=%Y%m%d%H}"
- export model_hpssdir_list=$ATARDIR/..
- export get_data_from_hpss="NO"
- export hpss_walltime="10"
- ## OUTPUT SETTINGS
- export OUTPUTROOT=$RUNDIR/$CDUMP/$CDATE/vrfy/metplus_exp
- export model_arch_dir_list=$ARCDIR/..
- export make_met_data_by="VALID"
- export gather_by="VSDB"
- ## DATE SETTINGS
- export VRFYBACK_HRS="24"
- ## METPLUS SETTINGS
- export METplus_verbosity="INFO"
- export MET_verbosity="2"
- export log_MET_output_to_METplus="yes"
- ## FORECAST VERIFICATION SETTINGS
- export fhr_min=$FHMIN_GFS
- export fhr_max=$FHMAX_GFS
- # GRID-TO-GRID STEP 1
- export g2g1_type_list="anom pres sfc"
- export g2g1_anl_name="self_anl"
- export g2g1_anl_fileformat_list="pgbanl.gfs.{valid?fmt=%Y%m%d%H}"
- export g2g1_grid="G002"
- # GRID-TO-OBS STEP 1
- export g2o1_type_list="upper_air conus_sfc"
- export g2o1_obtype_upper_air="ADPUPA"
- export g2o1_grid_upper_air="G003"
- export g2o1_fhr_out_upper_air="6"
- export g2o1_obtype_conus_sfc="ONLYSF"
- export g2o1_grid_conus_sfc="G104"
- export g2o1_fhr_out_conus_sfc="3"
- # PRECIP STEP 1
- export precip1_obtype="ccpa"
- export precip1_accum_length="24"
- export precip1_model_bucket_list="06"
- export precip1_model_varname_list="APCP"
- export precip1_model_fileformat_list="pgbf{lead?fmt=%H}.gfs.{init?fmt=%Y%m%d%H}"
- export precip1_grid="G211"
- fi
+ if [ $VSDB_STEP1 = "YES" -o $VSDB_STEP2 = "YES" -o $VRFYPRCP = "YES" -o $VRFYG2OBS = "YES" ]; then
+ export BACKDATEVSDB=24 # execute vsdbjob for the previous day
+ export VBACKUP_PRCP=24 # back up for QPF verification data
+ export vsdbsave="$NOSCRUB/archive/vsdb_data" # place to save vsdb database
+ export vsdbhome=$BASE_VERIF # location of global verification scripts
+ export VSDBSH="$vsdbhome/vsdbjob.sh" # VSDB job script
+ export vlength=$FHMAX_GFS # verification length
+ export vhr_rain=$FHMAX_GFS # verification length for precip
+ export ftyplist="pgbq" # verif. files used for computing QPF ETS scores
+ export ptyplist="PRATE" # precip types in GRIB: PRATE or APCP
+ export anltype="gfs" # default=gfs, analysis type (gfs or gdas) for verification
+ export rain_bucket=6 # prate in pgb files is 6-hr accumulated
+
+ export VSDB_START_DATE="$SDATE" # starting date for vsdb maps
+ export webhost="emcrzdm.ncep.noaa.gov" # webhost(rzdm) computer
+ export webhostid="$USER" # webhost(rzdm) user name
+ export SEND2WEB="NO" # whether or not to send maps to webhost
+ export WEBDIR="/home/people/emc/www/htdocs/gmb/${webhostid}/vsdb/$PSLOT"
+ export mdlist="gfs $PSLOT " # exps (up to 10) to compare in maps
fi
fi
@@ -191,20 +128,8 @@ fi
# Cyclone genesis and cyclone track verification
#-------------------------------------------------
-if [ $machine = "WCOSS_C" ] ; then
- export ens_tracker_ver=v1.1.15.1
- export HOMEens_tracker=$BASE_GIT/ens_tracker.${ens_tracker_ver}
-elif [ $machine = "WCOSS_DELL_P3" ] ; then
- export ens_tracker_ver=v1.1.15.1
- export HOMEens_tracker=$BASE_GIT/ens_tracker.${ens_tracker_ver}
-elif [ $machine = "THEIA" -o $machine = "HERA" ] ; then
- export ens_tracker_ver=v1.1.15.1
- export HOMEens_tracker=$BASE_GIT/tracker/ens_tracker.${ens_tracker_ver}
-else
- echo "WARNING: Genesis and cyclone verifications are not enabled on $machine!"
- export VRFYGENESIS="NO"
- export VRFYTRAK="NO"
-fi
+export ens_tracker_ver=v1.1.15.1
+export HOMEens_tracker=$BASE_GIT/tracker/ens_tracker.${ens_tracker_ver}
if [ "$VRFYTRAK" = "YES" ]; then
@@ -217,12 +142,11 @@ if [ "$VRFYTRAK" = "YES" ]; then
export FHOUT_CYCLONE=6
export FHMAX_CYCLONE=$(( FHMAX_GFS<240 ? FHMAX_GFS : 240 ))
fi
- if [ $machine = "THEIA" ]; then
- export COMROOTp1="/scratch4/NCEPDEV/rstprod/com"
- export COMINsyn="$COMROOTp1/arch/prod/syndat"
- elif [ $machine = "HERA" ]; then
+ if [ $machine = "HERA" ]; then
export COMROOTp1="/scratch1/NCEPDEV/rstprod/com"
export COMINsyn=${COMINsyn:-${COMROOTp1}/arch/prod/syndat}
+ else
+ export COMINsyn=${COMINsyn:-${COMROOT}/gfs/prod/syndat}
fi
fi
diff --git a/parm/product/bufr_stalist.meteo.gfs b/parm/product/bufr_stalist.meteo.gfs
index b302f9f7e..e6911a933 100755
--- a/parm/product/bufr_stalist.meteo.gfs
+++ b/parm/product/bufr_stalist.meteo.gfs
@@ -106,7 +106,7 @@
000235 41.63N 80.21W KGKL 11 MEADVILLE PA 427 Usr Rqst 2-11
000236 38.69N 80.65W K48I 11 SUTTON WV 255 Usr Rqst 2-11
000237 34.57N 117.67W KGXA 11 GRAY BUTTE FIELD CA 923 Usr Rqst 10-11
-000238 34.37N 117.36W EMF 11 EL MIRAGE FIELD CA 873 Usr Rqst 10-11
+000238 34.63N 117.61W EMF 11 EL MIRAGE FIELD CA 873 Usr Rqst 10-11
000239 45.97N 86.17W KISQ 11 MANISTIQUE MI 209 Usr Rqst 10-11
000240 46.42N 86.65W KP53 11 MUNISING MI 187 Usr Rqst 10-11
000241 39.16N 89.67W K3LF 11 LITCHFIELD IL 210 Usr Rqst 11-11
@@ -198,7 +198,7 @@
000354 36.65N 118.48W TBM 11 TABLE MOUNTAIN CA -999 Usr Rqst 1-13
000355 42.47N 73.29W KPSF 11 PITTSFIELD MA 364 Usr Rqst 5-12
000356 39.21N 82.23W KUNI 11 ATHENS/ALBANY OH 232 Usr Rqst 5-12
-000357 40.48N 111.43W K36U 11 HEBER VALLEY MUN APT UT 1718 Usr Rqst 5-12
+000357 40.48N 111.43W KHCR 11 HEBER VALLEY MUN APT UT 1718 Usr Rqst 5-12
000358 33.02N 114.24W B40 11 YUMA AZ 303 DHS/AWC 8-13
000359 31.49N 110.30W B41 11 FT HUACHUCA AZ 1482 DHS/AWC 8-13
000360 32.02N 107.87W B42 11 DEMING NM 1293 DHS/AWC 8-13
@@ -252,11 +252,30 @@
000503 39.30N 111.46W MTSL 12 MANTI SKYLINE UT 3048 Usr Rqst 2-18
000504 36.74N 104.65W RTN 12 RATON/CREWS_FLD NM 3674 Usr Rqst 2-18
000505 36.99N 77.00W KAKQ 12 WAKEFIELD VA 30 Usr Rqst 2-18
-000506 37.86N 78.89W KXSA 12 TAPPAHANNOCK VA 14 Usr Rqst 2-18
+000506 37.86N 76.89W KXSA 12 TAPPAHANNOCK VA 14 Usr Rqst 2-18
000507 38.54N 76.03W KCGE 12 CAMBRIDGE MD 6 Usr Rqst 2-18
000508 36.77N 77.79W KLVL 12 LAWRENCEVILLE VA 81 Usr Rqst 2-18
000509 43.78N 68.86W MSM1 20 MATINICUS ROCK ATL 0 Usr Rqst 2-18
000510 38.40N 80.00W SNWS 12 SNOWSHOE WV 1478 Usr Rqst 2-18
+000511 35.10N 117.56W KEYX 11 BORON (NEXRAD) CA 846 Usr Rqst 11-19
+000512 43.37N 103.39W KHSR 11 HOT SPRINGS APT SD 960 Usr Rqst 11-19
+000513 44.41N 103.48W FTMS 11 FORT MEADE SD 1008 Usr Rqst 11-19
+000514 42.21N 88.32W 3CK 11 LAKE IN THE HILLS APT IL 270 Usr Rqst 11-19
+000515 40.46N 88.10W PAXT 11 PAXTON IL 243 Usr Rqst 11-19
+000516 32.78N 79.92W CHTS 11 COOPER RIVER CHS SC 3 Usr Rqst 11-19
+000517 32.66N 79.93W FBIS 11 FOLLY ISLAND SC 5 Usr Rqst 11-19
+000518 32.03N 80.89W FPKG 11 FORT PULASKI GA 10 Usr Rqst 11-19
+000519 47.97N 117.43W KDEW 11 DEER PARK AIRPORT WA 674 Usr Rqst 11-19
+000520 36.22N 81.10W KUKF 11 WILKES COUNTY AIRPORT NC 397 Usr Rqst 11-19
+000521 42.47N 82.76W LSC 20 LAKE ST CLAIR MI 175 Usr Rqst 11-19
+000522 43.80N 83.72W SBL 20 INNER SAGINAW BAY MI 180 Usr Rqst 11-19
+000523 44.02N 82.79W KP58 11 PORT HOPE MI 185 Usr Rqst 11-19
+000524 41.69N 87.15W BRHR 20 BURNS HARBOR IN 176 Usr Rqst 11-19
+000525 41.61N 88.10W KLOT 11 LEWIS UNIV APT IL 207 Usr Rqst 11-19
+000526 36.46N 80.55W KMWK 11 MT AIRY SURRY CO APT NC 387 Usr Rqst 11-19
+000527 37.20N 112.99W ZION 11 ZION NTL PARK UT 1197 Usr Rqst 11-19
+000528 38.29N 111.26W CPRF 11 CAPITOL REEF NTL PARK UT 1672 Usr Rqst 11-19
+000529 38.74N 112.10W KRIF 11 RICHFIELD MUNI UT 1615 Usr Rqst 11-19
000601 37.20N 118.80W C01 12 NEAR YOSEMITE, CA 2936 GCIP 5-98
000602 47.61N 103.26W C02 12 WOLFORD, ND 762 GCIP 5-94
000603 37.80N 97.01W C03 12 TOWANDA, KS 390 GCIP 5-94
@@ -662,7 +681,10 @@
041002 32.30N 75.20W B#2 20 BUOY S HATTERAS ATL 0 3-93
041004 32.50N 79.07W B#T 20 BUOY E SAVANNAH ATL 0 OPC 11-03
041006 29.30N 77.40W B#3 20 BUOY E DAYTONA ATL 0 3-93
+041008 31.40N 80.87W B#10 20 BUOY SE SAVANNAH ATL 0 Usr Rqst 11-19
041010 28.90N 78.50W B#4 20 BUOY CANAVERAL EAST ATL 0 NASA-JSC 3-93
+041029 32.80N 79.62W B#11 20 BUOY CAPERS NEARSHORE ATL 0 Usr Rqst 11-19
+041033 32.28N 80.41W FRP2 20 BUOY FRIPP NEARSHORE ATL 0 Usr Rqst 11-19
042001 25.90N 89.70W B#5 22 BUOY MID GULF MEX 0 FOUS(G2GFD) 3-93
042002 25.90N 93.60W B#6 22 BUOY W GULF MEX 0 FOUS(G2GFE) 3-93
042003 25.90N 85.90W B#7 22 BUOY E GULF MEX 0 NASA-JSCFOUS(B)
@@ -692,6 +714,7 @@
045132 42.47N 81.22W LE2 20 BUOY BUOY PORT STANLEY 174 6-02
045139 43.40N 79.45W LO2 20 BUOY WESTERN LAKE ONTARIO 75 6-02
045142 42.74N 79.35W LE3 20 BUOY PORT COLBORNE 174 6-02
+045174 42.14N 87.66W LM3 20 BUOY WILMETTE BUOY LK MICH 176 Usr Rqst 11-19
046001 56.30N 148.20W B#C 20 BUOY GULF OF AK PAC 0 3-93
046002 42.50N 130.50W B#D 20 BUOY OREGON PAC 0 3-93
046003 51.90N 155.90W B#E 20 BUOY S ALEUTIANS PAC 0 3-93
@@ -1687,6 +1710,7 @@
727677 47.65N 101.43W N60 11 GARRISON ND 587 Usr Rqst 6-16
727680 48.22N 106.62W KGGW 12 GLASGOW_INTL_ARPT MT 700 UA NA110 FOUS TAF 2-99
727684 47.33N 106.93W JDN 10 JORDAN MT 811 TAF 7-01
+727686 48.10N 105.58W KOLF 10 WOLF_POINT_INTL_(ASOS) MT 605 Usr Rqst 11-19
727687 47.70N 104.20W KSDY 10 SIDNEY-RICHLAND MT 605 TAF 2-99
727720 46.60N 112.00W KHLN 10 HELENA_REGIONAL MT 1188 WRGN 8-97 TAF 2-99
727730 46.92N 114.08W KMSO 10 MISSOULA/BELL_FIELD MT 972 TAF 2-99
@@ -1761,6 +1785,7 @@
745510 39.58N 94.19W P#I 12 LTHM7 LATHROP MO 297 PROF
745560 39.66N 90.48W P#J 12 WNCI2 WINCHESTER IL 170 PROF
745600 40.15N 89.33W ILX 12 LINCOLN IL 176 GCIP 9-95
+745966 39.02N 74.92W KWWD 11 WILDWOOD NJ 7 Usr Rqst 11-19
746120 35.68N 117.68W NID 10 CHINA_LAKE_(NAF)__& CA 696 FORMER UA 3-93
746290 32.41N 106.35W P#L 12 WSMN5 WHITE SANDS MR NM 1224 PROF
746300 36.84N 107.91W P#M 12 AZCN5 AZTEC NM 1902 PROF
diff --git a/parm/transfer_gdas_misc.list b/parm/transfer_gdas_misc.list
old mode 100644
new mode 100755
index d65e801e2..7768f72ab
--- a/parm/transfer_gdas_misc.list
+++ b/parm/transfer_gdas_misc.list
@@ -23,7 +23,7 @@
# directory are included, so if no exclude patterns match that file, it will be
# transferred.
-com/arch/_ENVIR_/syndat/
+com/gfs/_ENVIR_/syndat/
B 180
com/realtime/_ENVIR_/gds._PDY_/
diff --git a/scripts/exgfs_postsnd.sh.ecf b/scripts/exgfs_postsnd.sh.ecf
index fc8866bf3..0a5377783 100755
--- a/scripts/exgfs_postsnd.sh.ecf
+++ b/scripts/exgfs_postsnd.sh.ecf
@@ -128,7 +128,7 @@ fi
# add appropriate WMO Headers.
########################################
collect=' 1 2 3 4 5 6 7 8 9'
-if [ $machine == "THEIA" -o $machine == "JET" ]; then
+if [ $machine == "JET" ]; then
for m in ${collect}
do
sh $USHbufrsnd/gfs_sndp.sh $m
diff --git a/sorc/build_all.sh b/sorc/build_all.sh
index 1af1b2b16..50a31e14f 100755
--- a/sorc/build_all.sh
+++ b/sorc/build_all.sh
@@ -1,6 +1,8 @@
#!/bin/sh
-set -eu
+set +x
#------------------------------------
+# Exception handling is now included.
+#
# USER DEFINED STUFF:
#
# USE_PREINST_LIBS: set to "true" to use preinstalled libraries.
@@ -38,6 +40,12 @@ source ./machine-setup.sh > /dev/null 2>&1
. ./partial_build.sh
+#------------------------------------
+# Exception Handling Init
+#------------------------------------
+ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}
+err=0
+
#------------------------------------
# build libraries first
#------------------------------------
@@ -53,6 +61,12 @@ echo " .... Library build not currently supported .... "
$Build_fv3gfs && {
echo " .... Building fv3 .... "
./build_fv3.sh > $logs_dir/build_fv3.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building fv3."
+ echo "The log file is in $logs_dir/build_fv3.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -61,6 +75,12 @@ echo " .... Building fv3 .... "
$Build_gsi && {
echo " .... Building gsi .... "
./build_gsi.sh > $logs_dir/build_gsi.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building gsi."
+ echo "The log file is in $logs_dir/build_gsi.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -69,6 +89,12 @@ echo " .... Building gsi .... "
$Build_ncep_post && {
echo " .... Building ncep_post .... "
./build_ncep_post.sh > $logs_dir/build_ncep_post.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building ncep_post."
+ echo "The log file is in $logs_dir/build_ncep_post.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -77,15 +103,29 @@ echo " .... Building ncep_post .... "
$Build_ufs_utils && {
echo " .... Building ufs_utils .... "
./build_ufs_utils.sh > $logs_dir/build_ufs_utils.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building ufs_utils."
+ echo "The log file is in $logs_dir/build_ufs_utils.log"
+fi
+((err+=$rc))
}
#------------------------------------
-# build gfs_wafs
-#------------------------------------
-$Build_gfs_wafs && {
-echo " .... Building gfs_wafs .... "
-./build_gfs_wafs.sh > $logs_dir/build_gfs_wafs .log 2>&1
+# build gfs_wafs - optional checkout
+#------------------------------------
+if [ -d gfs_wafs.fd ]; then
+ $Build_gfs_wafs && {
+ echo " .... Building gfs_wafs .... "
+ ./build_gfs_wafs.sh > $logs_dir/build_gfs_wafs.log 2>&1
+ rc=$?
+ if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building gfs_wafs."
+ echo "The log file is in $logs_dir/build_gfs_wafs.log"
+ fi
+ ((err+=$rc))
}
+fi
#------------------------------------
# build sfcanl_nsttfchg
@@ -93,6 +133,12 @@ echo " .... Building gfs_wafs .... "
$Build_sfcanl_nsttfchg && {
echo " .... Building gaussian_sfcanl and nst_tf_chg .... "
./build_sfcanl_nsttfchg.sh > $logs_dir/build_sfcanl_nsttfchg.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building gaussian_sfcanl and nst_tf_chg."
+ echo "The log file is in $logs_dir/build_sfcanl_nsttfchg.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -101,6 +147,12 @@ echo " .... Building gaussian_sfcanl and nst_tf_chg .... "
$Build_enkf_chgres_recenter && {
echo " .... Building enkf_chgres_recenter .... "
./build_enkf_chgres_recenter.sh > $logs_dir/build_enkf_chgres_recenter.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building enkf_chgres_recenter."
+ echo "The log file is in $logs_dir/build_enkf_chgres_recenter.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -109,6 +161,12 @@ echo " .... Building enkf_chgres_recenter .... "
$Build_tropcy && {
echo " .... Building tropcy_NEMS .... "
./build_tropcy_NEMS.sh > $logs_dir/build_tropcy_NEMS.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building tropcy_NEMS."
+ echo "The log file is in $logs_dir/build_tropcy_NEMS.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -117,6 +175,12 @@ echo " .... Building tropcy_NEMS .... "
$Build_gdas && {
echo " .... Building gdas .... "
./build_gdas.sh > $logs_dir/build_gdas.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building gdas."
+ echo "The log file is in $logs_dir/build_gdas.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -125,6 +189,12 @@ echo " .... Building gdas .... "
$Build_gfs_fbwndgfs && {
echo " .... Building gfs_fbwndgfs .... "
./build_gfs_fbwndgfs.sh > $logs_dir/build_gfs_fbwndgfs.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building gfs_fbwndgfs."
+ echo "The log file is in $logs_dir/build_gfs_fbwndgfs.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -133,6 +203,12 @@ echo " .... Building gfs_fbwndgfs .... "
$Build_gfs_overpdtg2 && {
echo " .... Building gfs_overpdtg2 .... "
./build_gfs_overpdtg2.sh > $logs_dir/build_gfs_overpdtg2.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building gfs_overpdtg2."
+ echo "The log file is in $logs_dir/build_gfs_overpdtg2.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -141,6 +217,12 @@ echo " .... Building gfs_overpdtg2 .... "
$Build_gfs_wintemv && {
echo " .... Building gfs_wintemv .... "
./build_gfs_wintemv.sh > $logs_dir/build_gfs_wintemv.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building gfs_wintemv."
+ echo "The log file is in $logs_dir/build_gfs_wintemv.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -149,6 +231,12 @@ echo " .... Building gfs_wintemv .... "
$Build_gfs_bufrsnd && {
echo " .... Building gfs_bufrsnd .... "
./build_gfs_bufrsnd.sh > $logs_dir/build_gfs_bufrsnd.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building gfs_bufrsnd."
+ echo "The log file is in $logs_dir/build_gfs_bufrsnd.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -157,6 +245,12 @@ echo " .... Building gfs_bufrsnd .... "
$Build_fv3nc2nemsio && {
echo " .... Building fv3nc2nemsio .... "
./build_fv3nc2nemsio.sh > $logs_dir/build_fv3nc2nemsio.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building fv3nc2nemsio."
+ echo "The log file is in $logs_dir/build_fv3nc2nemsio.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -165,6 +259,12 @@ echo " .... Building fv3nc2nemsio .... "
$Build_regrid_nemsio && {
echo " .... Building regrid_nemsio .... "
./build_regrid_nemsio.sh > $logs_dir/build_regrid_nemsio.log 2>&1
+rc=$?
+if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building regrid_nemsio."
+ echo "The log file is in $logs_dir/build_regrid_nemsio.log"
+fi
+((err+=$rc))
}
#------------------------------------
@@ -175,26 +275,20 @@ if [ $target = wcoss -o $target = wcoss_cray -o $target = wcoss_dell_p3 ]; then
$Build_gfs_util && {
echo " .... Building gfs_util .... "
./build_gfs_util.sh > $logs_dir/build_gfs_util.log 2>&1
+ rc=$?
+ if [[ $rc -ne 0 ]] ; then
+ echo "Fatal error in building gfs_util."
+ echo "The log file is in $logs_dir/build_gfs_util.log"
+ fi
+ ((err+=$rc))
}
fi
#------------------------------------
-# build prod_util
-#------------------------------------
-$Build_prod_util && {
-echo " .... prod_util build not currently supported .... "
-#echo " .... Building prod_util .... "
-#./build_prod_util.sh > $logs_dir/build_prod_util.log 2>&1
-}
-
-#------------------------------------
-# build grib_util
+# Exception Handling
#------------------------------------
-$Build_grib_util && {
-echo " .... grib_util build not currently supported .... "
-#echo " .... Building grib_util .... "
-#./build_grib_util.sh > $logs_dir/build_grib_util.log 2>&1
-}
+[[ $err -ne 0 ]] && echo "FATAL BUILD ERROR: Please check the log file for detail, ABORT!"
+$ERRSCRIPT || exit $err
echo;echo " .... Build system finished .... "
diff --git a/sorc/build_fv3.sh b/sorc/build_fv3.sh
index 8bd0dae72..dcc33d1f6 100755
--- a/sorc/build_fv3.sh
+++ b/sorc/build_fv3.sh
@@ -16,7 +16,6 @@ if [ ! -d "../exec" ]; then
mkdir ../exec
fi
-if [ $target = theia ]; then target=theia.intel ; fi
if [ $target = hera ]; then target=hera.intel ; fi
cd fv3gfs.fd/
diff --git a/sorc/build_grib_util.sh b/sorc/build_grib_util.sh
deleted file mode 100755
index 6569cc22c..000000000
--- a/sorc/build_grib_util.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#! /usr/bin/env bash
-set -eux
-
-source ./machine-setup.sh > /dev/null 2>&1
-cwd=`pwd`
-
-USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"}
-if [ $USE_PREINST_LIBS = true ]; then
- export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles
- source ../modulefiles/modulefile.grib_util.$target > /dev/null 2>&1
-else
- export MOD_PATH=${cwd}/lib/modulefiles
- if [ $target = wcoss_cray ]; then
- source ../modulefiles/modulefile.grib_util.${target}_userlib > /dev/null 2>&1
- else
- source ../modulefiles/modulefile.grib_util.$target > /dev/null 2>&1
- fi
-fi
-
-# Move to util/sorc folder
-cd ../util/sorc
-
-# Check final exec folder exists
-if [ ! -d "../exec" ]; then
- mkdir ../exec
-fi
-
-for grib_util in cnvgrib copygb2 degrib2 grbindex tocgrib2 tocgrib \
- copygb grb2index grib2grib tocgrib2super
-do
- cd $grib_util.fd
- make -f makefile_$target clean
- make -f makefile_$target
- make -f makefile_$target install
- make -f makefile_$target clean
- cd ..
-done
-
-#
-# compile wgrib
-#
-cd wgrib.cd
- make -f makefile_$target clean
- make -f makefile_$target
- make -f makefile_$target install
- make -f makefile_$target clean
-cd ..
-
-#
-# compile wgrib2
-#
-cd $cwd
-source ./machine-setup.sh > /dev/null 2>&1
-
-if [ $target = wcoss_cray -a $USE_PREINST_LIBS != true ]; then
- source ../modulefiles/modulefile.wgrib2.${target}_userlib > /dev/null 2>&1
-else
- source ../modulefiles/modulefile.wgrib2.$target > /dev/null 2>&1
-fi
-
-# Move to util/sorc folder
-cd ../util/sorc
-cwd=`pwd`
-
-#----------------------------------------------------------------
-export CPPFLAGS="-ffast-math -O3 -DGFORTRAN"
-cd $cwd/wgrib2.cd/gctpc/
-make -f makefile.gctpc clean
-make -f makefile.gctpc
-rm -f *.o
-#----------------------------------------------------------------
-if [ $target = wcoss_cray ]; then
- export FFLAGS=-O2
- cd $cwd/wgrib2.cd/iplib/
- make clean
- make
- rm -f *.o
-fi
-#----------------------------------------------------------------
-cd $cwd/wgrib2.cd
-module list
-make -f makefile_$target clean
-make -f makefile_$target
-make -f makefile_$target install
-make -f makefile_$target clean
-#----------------------------------------------------------------
-
-exit
diff --git a/sorc/build_libs.sh b/sorc/build_libs.sh
index 1d50665fb..31e158c1f 100755
--- a/sorc/build_libs.sh
+++ b/sorc/build_libs.sh
@@ -18,8 +18,6 @@ rm -rf libpng* libjasper* lib*.a incmod/* modulefiles/*
# --- hopefully this will lead to single version in the future
if [ $target = wcoss_cray ]; then
bufr_ver=v11.0.1
-elif [ $target = "theia" ]; then
- bufr_ver=v10.2.5
fi
# --------------------------------------------------------------
diff --git a/sorc/build_prod_util.sh b/sorc/build_prod_util.sh
deleted file mode 100755
index e4220f7c2..000000000
--- a/sorc/build_prod_util.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#! /usr/bin/env bash
-set -eux
-
-source ./machine-setup.sh > /dev/null 2>&1
-cwd=`pwd`
-
-USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"}
-if [ $USE_PREINST_LIBS = true ]; then
- export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles
- source ../modulefiles/modulefile.prod_util.$target > /dev/null 2>&1
-else
- export MOD_PATH=${cwd}/lib/modulefiles
- if [ $target = wcoss_cray ]; then
- source ../modulefiles/modulefile.prod_util.${target}_userlib > /dev/null 2>&1
- else
- source ../modulefiles/modulefile.prod_util.$target > /dev/null 2>&1
- fi
-fi
-
-# Move to util/sorc folder
-cd ../util/sorc
-
-# Check final exec folder exists
-if [ ! -d "../exec" ]; then
- mkdir ../exec
-fi
-
-for prod_util in fsync_file
-do
- cd $prod_util.cd
- make -f makefile clean
- make -f makefile
- make -f makefile install
- make -f makefile clean
- cd ..
-done
-
-for prod_util in mdate ndate nhour
-do
- cd $prod_util.fd
- make -f makefile clean
- make -f makefile
- make -f makefile install
- make -f makefile clean
- cd ..
-done
-exit
diff --git a/sorc/checkout.sh b/sorc/checkout.sh
index 3fcf53ab6..cf6201444 100755
--- a/sorc/checkout.sh
+++ b/sorc/checkout.sh
@@ -81,9 +81,9 @@ fi
echo EMC_verif-global checkout ...
if [[ ! -d verif-global.fd ]] ; then
rm -f ${topdir}/checkout-verif-global.log
- git clone --recursive gerrit:EMC_verif-global verif-global.fd >> ${topdir}/checkout-verif-global.log 2>&1
+ git clone --recursive https://github.com/NOAA-EMC/EMC_verif-global.git verif-global.fd >> ${topdir}/checkout-verif-global.log 2>&1
cd verif-global.fd
- git checkout verif_global_v1.2.2
+ git checkout verif_global_v1.5.0
cd ${topdir}
else
echo 'Skip. Directory verif-global.fd already exist.'
diff --git a/sorc/fv3gfs_build.cfg b/sorc/fv3gfs_build.cfg
index 8143eb0bd..93fab7844 100644
--- a/sorc/fv3gfs_build.cfg
+++ b/sorc/fv3gfs_build.cfg
@@ -18,8 +18,6 @@
Building fv3nc2nemsio (fv3nc2nemsio) .................. yes
Building regrid_nemsio (regrid_nemsio) ................ yes
Building gfs_util (gfs_util) .......................... yes
- Building prod_util (prod_util) ........................ no
- Building grib_util (grib_util) ........................ no
# -- END --
diff --git a/sorc/fv3nc2nemsio.fd/makefile.sh b/sorc/fv3nc2nemsio.fd/makefile.sh
index 67f66f15e..94b9b253c 100755
--- a/sorc/fv3nc2nemsio.fd/makefile.sh
+++ b/sorc/fv3nc2nemsio.fd/makefile.sh
@@ -3,17 +3,6 @@ set -x
machine=${1:-"cray"}
-if [ $machine = "cray" ]; then
-:
-elif [ $machine = "theia" ]; then
-:
-else
-
- echo "machine $machine is unsupported, ABORT!"
- exit 1
-
-fi
-
source ../../modulefiles/module-setup.sh.inc
module use ../../modulefiles
module load modulefile.fv3nc2nemsio.$machine
diff --git a/sorc/gaussian_sfcanl.fd/weight_gen/scrip.fd/make.sh b/sorc/gaussian_sfcanl.fd/weight_gen/scrip.fd/make.sh
index 06a3df945..12ed3eefd 100755
--- a/sorc/gaussian_sfcanl.fd/weight_gen/scrip.fd/make.sh
+++ b/sorc/gaussian_sfcanl.fd/weight_gen/scrip.fd/make.sh
@@ -25,26 +25,26 @@ llogin? | slogin?)
exit 1 ;;
#---------------------------------------------------------------------------------
-# BUILD PROGRAM ON THEIA.
+# BUILD PROGRAM ON HERA.
#---------------------------------------------------------------------------------
-tfe??)
+hfe??)
source /apps/lmod/lmod/init/sh
module purge
- module load intel/18.1.163
+ module load intel/18.0.5.274
export FCOMP=ifort
export FFLAGS="-O0 -g -traceback -r8 -i4 -convert big_endian -check bounds"
- module load netcdf/4.3.0
- module load hdf5/1.8.14
+ module load netcdf/4.7.0
+ module load hdf5/1.10.5
export NETCDF_INCLUDE="-I${NETCDF}/include"
export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran"
- module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles
- module load sp/v2.0.2
+ module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles
+ module load sp/2.0.2
make clean
make
diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh
index e1de979ae..0a75e2609 100755
--- a/sorc/link_fv3gfs.sh
+++ b/sorc/link_fv3gfs.sh
@@ -8,16 +8,16 @@ machine=${2}
if [ $# -lt 2 ]; then
echo '***ERROR*** must specify two arguements: (1) RUN_ENVIR, (2) machine'
- echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera )'
+ echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera )'
exit 1
fi
if [ $RUN_ENVIR != emc -a $RUN_ENVIR != nco ]; then
- echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera )'
+ echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera )'
exit 1
fi
-if [ $machine != cray -a $machine != theia -a $machine != dell -a $machine != hera ]; then
- echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera )'
+if [ $machine != cray -a $machine != dell -a $machine != hera ]; then
+ echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera )'
exit 1
fi
@@ -34,8 +34,6 @@ if [ $machine == "cray" ]; then
FIX_DIR="/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix"
elif [ $machine = "dell" ]; then
FIX_DIR="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix"
-elif [ $machine = "theia" ]; then
- FIX_DIR="/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix"
elif [ $machine = "hera" ]; then
FIX_DIR="/scratch1/NCEPDEV/global/glopara/fix"
fi
@@ -76,10 +74,10 @@ cd ${pwd}/../util ||exit 8
done
-#------------------------------
-#--add gfs_wafs link if on Dell
-if [ $machine = dell -o $machine = hera ]; then
-#------------------------------
+#-----------------------------------
+#--add gfs_wafs link if checked out
+if [ -d ${pwd}/gfs_wafs.fd ]; then
+#-----------------------------------
cd ${pwd}/../jobs ||exit 8
$LINK ../sorc/gfs_wafs.fd/jobs/* .
cd ${pwd}/../parm ||exit 8
@@ -178,7 +176,7 @@ $LINK ../sorc/fv3gfs.fd/NEMS/exe/global_fv3gfs_ccpp.x .
[[ -s gfs_ncep_post ]] && rm -f gfs_ncep_post
$LINK ../sorc/gfs_post.fd/exec/ncep_post gfs_ncep_post
-if [ $machine = dell -o $machine = hera ]; then
+if [ -d ${pwd}/gfs_wafs.fd ]; then
for wafsexe in wafs_awc_wafavn wafs_blending wafs_cnvgrib2 wafs_gcip wafs_makewafs wafs_setmissing; do
[[ -s $wafsexe ]] && rm -f $wafsexe
$LINK ../sorc/gfs_wafs.fd/exec/$wafsexe .
@@ -234,7 +232,7 @@ cd ${pwd}/../sorc || exit 8
done
- if [ $machine = dell -o $machine = hera ]; then
+ if [ -d ${pwd}/gfs_wafs.fd ]; then
$SLINK gfs_wafs.fd/sorc/wafs_awc_wafavn.fd wafs_awc_wafavn.fd
$SLINK gfs_wafs.fd/sorc/wafs_blending.fd wafs_blending.fd
$SLINK gfs_wafs.fd/sorc/wafs_cnvgrib2.fd wafs_cnvgrib2.fd
@@ -259,5 +257,3 @@ fi
exit 0
-
-
diff --git a/sorc/machine-setup.sh b/sorc/machine-setup.sh
index f6e1b9ca3..2dbe6abd7 100644
--- a/sorc/machine-setup.sh
+++ b/sorc/machine-setup.sh
@@ -21,7 +21,6 @@ USERNAME=`echo $LOGNAME | awk '{ print tolower($0)'}`
##---------------------------------------------------------------------------
export hname=`hostname | cut -c 1,1`
if [[ -d /scratch1 ]] ; then
-if [ $hname == 'h' ] ; then
# We are on NOAA Hera
if ( ! eval module help > /dev/null 2>&1 ) ; then
echo load the module command 1>&2
@@ -37,19 +36,6 @@ if [ $hname == 'h' ] ; then
export myFC=mpiifort
export FCOMP=mpiifort
-##---------------------------------------------------------------------------
-elif [ $hname == 't' ] ; then
- # We are on NOAA Theia
- if ( ! eval module help > /dev/null 2>&1 ) ; then
- echo load the module command 1>&2
- source /apps/lmod/lmod/init/$__ms_shell
- fi
- target=theia
- module purge
- module use /scratch3/NCEPDEV/nwprod/modulefiles/
- module use /scratch3/NCEPDEV/nwprod/lib/modulefiles
-fi #scratch1
-
##---------------------------------------------------------------------------
elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then
# We are on NOAA Luna or Surge
diff --git a/sorc/ncl.setup b/sorc/ncl.setup
index f27079c3f..c848fb988 100644
--- a/sorc/ncl.setup
+++ b/sorc/ncl.setup
@@ -14,16 +14,12 @@ then
module load ncarg/v6.1.0
fi
-if [ $target == theia ]
-then
-module load ncl/6.3.0
-fi
-
if [ $target == jet ]
then
module load ncl/6.5.0
export NCARG_LIB=$NCARG_ROOT/lib
fi
+
if [ $target == hera ]
then
module load ncl/6.5.0
diff --git a/sorc/partial_build.sh b/sorc/partial_build.sh
index 885548f05..da306969a 100755
--- a/sorc/partial_build.sh
+++ b/sorc/partial_build.sh
@@ -14,9 +14,7 @@
"Build_gfs_bufrsnd" \
"Build_fv3nc2nemsio" \
"Build_regrid_nemsio" \
- "Build_gfs_util" \
- "Build_prod_util" \
- "Build_grib_util")
+ "Build_gfs_util")
#
# function parse_cfg: read config file and retrieve the values
diff --git a/ush/fv3ics.py b/ush/fv3ics.py
deleted file mode 100755
index 155dd65be..000000000
--- a/ush/fv3ics.py
+++ /dev/null
@@ -1,331 +0,0 @@
-#!/usr/bin/env python
-
-
-import os
-import sys
-import glob
-import subprocess
-import string
-import random
-import argparse
-
-
-__author__ = "Rahul Mahajan"
-__organization__ = "NOAA/NCEP/EMC"
-__email__ = "rahul.mahajan@noaa.gov"
-__version__ = '1.0.0'
-
-
-def set_machine():
-
- if os.path.isdir('/scratch4'):
- return 'THEIA'
- elif os.path.isdir('/gpfs/hps2'):
- return 'WCOSS_C'
- elif os.path.isdir('/gpfs/dell2'):
- return 'WCOSS_DELL_P3'
- else:
- raise NotImplementedError('Unknown machine')
-
-
-def set_paths():
-
- if machine in ['THEIA']:
- homegfs = "/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/gfs.v15.0.0"
- stmp = "/scratch4/NCEPDEV/stmp4/%s" % os.environ['USER']
- elif machine in ['WCOSS_C']:
- homegfs = "/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/gfs.v15.0.0"
- stmp = "/gpfs/hps3/stmp/%s" % os.environ['USER']
- elif machine in ['WCOSS_DELL_P3']:
- homegfs = "/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/gfs.v15.0.0"
- stmp = "/gpfs/dell2/stmp/%s" % os.environ['USER']
-
- return homegfs, stmp
-
-
-def get_accountinfo():
-
- if machine in ['THEIA']:
- queue, account = 'batch', 'fv3-cpu'
- elif machine in ['WCOSS_C']:
- queue, account = 'dev', 'FV3GFS-T2O'
- elif machine in ['WCOSS_DELL_P3']:
- queue, account = 'dev', 'FV3GFS-T2O'
-
- return queue, account
-
-
-def get_jobcard():
-
- queue, account = get_accountinfo()
-
- mdict = {'queue':queue, 'account': account, 'icsdir':icsdir, 'date':date, 'pwd':os.environ['PWD'], 'nthreads':nthreads}
-
- if machine in ['WCOSS_C', 'WCOSS_DELL_P3']:
-
- strings = '''
-#BSUB -J fv3ics_
-#BSUB -P {account}
-#BSUB -q {queue}
-#BSUB -W 0:30
-#BSUB -M 3072
-#BSUB -e {icsdir}/{date}///fv3ics.log
-#BSUB -o {icsdir}/{date}///fv3ics.log
-#BSUB -cwd {pwd}
-'''.format(**mdict)
-
- if machine in ['WCOSS_C']:
- strings += '''
-#BSUB -extsched 'CRAYLINUX[]' -R '1*{{select[craylinux && !vnode]}} + 24*{{select[craylinux && vnode]span[ptile=24] cu[type=cabinet]}}'
-'''
- elif machine in ['WCOSS_DELL_P3']:
- strings += '''
-#BSUB -n 1
-#BSUB -R span[ptile=1]
-#BSUB -R affinity[core(28):distribute=balance]
-'''
-
- elif machine in ['THEIA']:
-
- strings = '''
-#PBS -N fv3ics_
-#PBS -A {account}
-#PBS -q {queue}
-#PBS -l walltime=00:30:00
-#PBS -l nodes=1:ppn={nthreads}
-#PBS -o {icsdir}/{date}///fv3ics.log
-#PBS -j oe
-'''.format(**mdict)
-
- return strings
-
-
-def get_jobtemplate():
-
- strings = '''#!/bin/sh'''
-
- strings += get_jobcard()
-
- mdict = {'homegfs':homegfs, 'stmp':stmp, 'date':date, 'icsdir':icsdir, 'nthreads':nthreads}
- strings += '''
-set -x
-
-export HOMEgfs={homegfs}
-export STMP={stmp}
-
-export CDATE={date}
-export CASE=
-export INIDIR={icsdir}/$CDATE/
-export OUTDIR={icsdir}/$CDATE/$CASE//INPUT
-export DATA=$STMP/RUNDIRS/tmpdir.fv3ics/$CDATE/$CASE/
-
-export OMP_NUM_THREADS_CH={nthreads}
-'''.format(**mdict)
-
- strings += '''
-export ATMANL=$INIDIR/
-export SFCANL=$INIDIR/
-'''
- if nsst:
- strings += '''export NSTANL=$INIDIR/
-'''
-
- if machine in ['WCOSS_C']:
- strings += '''
-export APRUNC="aprun -j 1 -n 1 -N 1 -d $OMP_NUM_THREADS_CH -cc depth"
-'''
-
- if machine in ['WCOSS_DELL_P3']:
- strings += '''
-export APRUNC="mpirun -n 1"
-'''
-
- strings += '''
-[[ -d $DATA ]] && rm -rf $DATA
-[[ -d $OUTDIR ]] && rm -rf $OUTDIR
-mkdir -p $OUTDIR
-
-# Load fv3gfs modules
-source $HOMEgfs/ush/load_fv3gfs_modules.sh
-module list
-
-$HOMEgfs/ush/global_chgres_driver.sh
-status=$?
-exit $status
-'''
-
- return strings
-
-
-def get_jobscript(member, files, jcap, case, strings):
-
- strings = strings.replace('', member)
- strings = strings.replace('', jcap)
- strings = strings.replace('', case)
-
- strings = strings.replace('', files['atmanl'])
- strings = strings.replace('', files['sfcanl'])
- if nsst:
- strings = strings.replace('', files['nstanl'])
-
- return strings
-
-
-def get_submitcmd():
-
- if machine in ['THEIA']:
- cmd = 'qsub'
- elif machine in ['WCOSS_C', 'WCOSS_DELL_P3']:
- cmd = 'bsub <'
-
- return cmd
-
-
-def submit_jobs(jobs):
-
- def _random_id(length=8):
- return ''.join(random.sample(string.ascii_letters + string.digits, length))
-
- submit_cmd = get_submitcmd()
-
- for job in jobs:
-
- script = 'submit_%s.sh' % _random_id()
- open(script, 'wb').write(job)
-
- cmd = '%s %s' % (submit_cmd, script)
- try:
- subprocess.check_call(cmd, stderr=subprocess.STDOUT, shell=True)
- except subprocess.CalledProcessError as e:
- print e.output
- finally:
- if not debug:
- os.remove(script)
-
- return
-
-
-def main():
-
- global machine, homegfs, stmp, nthreads
- global date, icsdir
- global nsst
- global CASE_det, CASE_ens, JCAP_det, JCAP_ens
- global debug
-
- icsdirdoc = []
- icsdirdoc.append('Convert GFS files into FV3 files\n')
- icsdirdoc.append('\n')
- icsdirdoc.append('This script expects the following directory structure:\n')
- icsdirdoc.append('\n')
- icsdirdoc.append('ICSDIR/ [--icsdir]\n')
- icsdirdoc.append('\tYYYYMMDDHH/ [--date]\n')
- icsdirdoc.append('\t\tgdas.tHHz.abias\n')
- icsdirdoc.append('\t\tgdas.tHHz.abias_pc\n')
- icsdirdoc.append('\t\tgdas.tHHz.abias_air\n')
- icsdirdoc.append('\t\tgdas.tHHz.radstat\n')
- icsdirdoc.append('\t\tT1534/ [--JCAP_det]\n')
- icsdirdoc.append('\t\t\tgdas.tHHz.atmanl.nemsio\n')
- icsdirdoc.append('\t\t\tgdas.tHHz.sfcanl.nemsio\n')
- icsdirdoc.append('\t\t\tgdas.tHHz.nstanl.nemsio (optional)\n')
- icsdirdoc.append('\t\tT574/ [--JCAP_ens]\n')
- icsdirdoc.append('\t\t\tgdas.tHHz.ratmanl.memXXX.nemsio\n')
- icsdirdoc.append('\t\t\tgdas.tHHz.sfcanl.memXXX.nemsio\n')
- icsdirdoc.append('\t\t\tgdas.tHHz.nstanl.memXXX.nemsio (optional)\n')
- icsdirdoc.append('\t\tC96/ [--CASE_det] [--CASE_ens]\n')
- icsdirdoc.append('\t\t\tcontrol/\n')
- icsdirdoc.append('\t\t\t\tfv3ics.log\n')
- icsdirdoc.append('\t\t\t\tINPUT/\n')
- icsdirdoc.append('\t\t\t\t\tgfs_data.nc\n')
- icsdirdoc.append('\t\t\t\t\t...\n')
- icsdirdoc.append('\t\t\tmem001/\n')
- icsdirdoc.append('\t\t\t\tfv3ics.log\n')
- icsdirdoc.append('\t\t\t\tINPUT/\n')
- icsdirdoc.append('\t\t\t\t\tgfs_data.nc\n')
- icsdirdoc.append('\t\t\t\t\t...\n')
-
- parser = argparse.ArgumentParser(usage=''.join(icsdirdoc), formatter_class=argparse.ArgumentDefaultsHelpFormatter)
- parser.add_argument('--homegfs', help='full path to HOMEgfs', type=str, required=False, default='glopara')
- parser.add_argument('--date', help='date of initial conditions to convert from GFS to FV3', type=str, metavar='YYYYMMDDHH', required=True)
- parser.add_argument('--icsdir', help='full path to initial conditions directory', type=str, required=True)
- parser.add_argument('--cdump', help='cycle', type=str, required=False, default='gdas')
- parser.add_argument('--CASE_det', help='desired resolution of the FV3 deterministic initial conditions', type=int, required=False, default=None)
- parser.add_argument('--CASE_ens', help='desired resolution of the FV3 ensemble initial conditions', type=int, required=False, default=None)
- parser.add_argument('--JCAP_det', help='resolution of the deterministic GFS initial conditions', type=int, required=False, default=1534)
- parser.add_argument('--JCAP_ens', help='resolution of the ensemble GFS initial conditions', type=int, required=False, default=574)
- parser.add_argument('--nthreads', help='how many threads to use', type=int, required=False, default=24)
- parser.add_argument('--debug', help='aid in debugging', action='store_true',required=False)
-
- input_args = parser.parse_args()
-
- if input_args.CASE_det is None and input_args.CASE_ens is None:
- print 'CASE_det and CASE_ens both cannot be None'
- print 'nothing to do, EXIT!'
- print '\n'
- sys.exit(1)
-
- homegfs_inp = input_args.homegfs
- date = input_args.date
- icsdir = input_args.icsdir
- CASE_det = input_args.CASE_det
- CASE_ens = input_args.CASE_ens
- JCAP_det = input_args.JCAP_det
- JCAP_ens = input_args.JCAP_ens
- nthreads = input_args.nthreads
- cdump = input_args.cdump
- debug = input_args.debug
-
- PDY = date[:8]
- cyc = date[8:]
-
- prefix = '%s.t%sz' % (cdump, cyc)
- suffix = 'nemsio'
-
- chgres_det = False if CASE_det is None else True
- chgres_ens = False if CASE_ens is None else True
-
- machine = set_machine()
- homegfs_def, stmp = set_paths()
- homegfs = homegfs_def if homegfs_inp == 'glopara' else homegfs_inp
-
- nsst = True if os.path.exists('%s/%s/T%s/%s.nstanl.%s' % (icsdir, date, JCAP_det, prefix, suffix)) else False
-
- job_template = get_jobtemplate()
-
- jobs = []
-
- if chgres_det:
-
- files = {}
- files['atmanl'] = '%s.atmanl.%s' % (prefix, suffix)
- files['sfcanl'] = '%s.sfcanl.%s' % (prefix, suffix)
- files['nstanl'] = '%s.nstanl.%s' % (prefix, suffix) if nsst else None
-
- cmd = 'mkdir -p %s/%s/C%d/control' % (icsdir, date, CASE_det)
- os.system(cmd)
- cmd = 'rm -f %s/%s/C%d/control/fv3ics.log' % (icsdir, date, CASE_det)
- os.system(cmd)
- job_script = get_jobscript('control', files, 'T%d' % JCAP_det, 'C%d' % CASE_det, job_template)
- jobs.append(job_script)
-
- if chgres_ens:
- nens = len(glob.glob('%s/%s/T%s/%s.ratmanl.mem???.%s' % (icsdir, date, JCAP_ens, prefix, suffix)))
-
- for i in range(1, nens+1):
-
- files = {}
- files['atmanl'] = '%s.ratmanl.mem%03d.%s' % (prefix, i, suffix)
- files['sfcanl'] = '%s.sfcanl.mem%03d.%s' % (prefix, i, suffix)
- files['nstanl'] = '%s.nstanl.mem%03d.%s' % (prefix, i, suffix) if nsst else None
-
- cmd = 'mkdir -p %s/%s/C%d/mem%03d' % (icsdir, date, CASE_ens, i)
- os.system(cmd)
- cmd = 'rm -f %s/%s/C%d/mem%03d/fv3ics.log' % (icsdir, date, CASE_ens, i)
- os.system(cmd)
- job_script = get_jobscript('mem%03d' % i, files, 'T%d' % JCAP_ens, 'C%d' % CASE_ens, job_template)
- jobs.append(job_script)
-
- submit_jobs(jobs)
-
-if __name__ == '__main__':
- main()
diff --git a/ush/load_fv3gfs_modules.sh b/ush/load_fv3gfs_modules.sh
index a89c38a0f..8972b6575 100755
--- a/ush/load_fv3gfs_modules.sh
+++ b/ush/load_fv3gfs_modules.sh
@@ -18,9 +18,6 @@ if [[ -d /lfs3 ]] ; then
elif [[ -d /scratch1 ]] ; then
# We are on NOAA Hera
module load module_base.hera
-elif [[ -d /scratch3 ]] ; then
- # We are on NOAA Theia
- module load module_base.theia
elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then
# We are on NOAA Luna or Surge
module load module_base.wcoss_c
diff --git a/ush/rocoto/fv3gfs_workflow.sh b/ush/rocoto/fv3gfs_workflow.sh
index 7e52c6e76..7331b646f 100755
--- a/ush/rocoto/fv3gfs_workflow.sh
+++ b/ush/rocoto/fv3gfs_workflow.sh
@@ -17,10 +17,7 @@ edate="2017080112"
# USER NEED NOT MODIFY BELOW THIS LINE
######################################
-if [ -d /scratch4/NCEPDEV ]; then
- machine="theia"
- icsdir="/scratch4/NCEPDEV/global/noscrub/glopara/ICS/FV3GFS"
-elif [ -d /gpfs/hps3 ]; then
+if [ -d /gpfs/hps3 ]; then
machine="cray"
icsdir="/gpfs/hps3/emc/global/noscrub/emc.glopara/ICS"
else
diff --git a/ush/rocoto/rocoto_viewer.py b/ush/rocoto/rocoto_viewer.py
index 26db6943f..8dfad7286 100755
--- a/ush/rocoto/rocoto_viewer.py
+++ b/ush/rocoto/rocoto_viewer.py
@@ -192,11 +192,12 @@ def load_produtil_pythonpath():
pass
PRODUTIL = collections.defaultdict(list)
- PRODUTIL['theia'] = '/scratch4/NCEPDEV/global/save/glopara/svn/nceplibs/produtil/trunk/ush'
+ PRODUTIL['hera'] = '/scratch1/NCEPDEV/global/glopara/svn/nceplibs/produtil/trunk/ush'
PRODUTIL['luna'] = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn/nceplibs/produtil/trunk/ush'
- PRODUTIL['tide'] = '/gpfs/td1/emc/global/save/emc.glopara/svn/nceplibs/produtil/trunk/ush'
- PRODUTIL['gyre'] = '/gpfs/gd1/emc/global/save/emc.glopara/svn/nceplibs/produtil/trunk/ush'
- try_clusters = ('theia','luna','tide','gyre')
+ PRODUTIL['surge'] = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn/nceplibs/produtil/trunk/ush'
+ PRODUTIL['mars'] = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/svn/nceplibs/produtil/trunk/ush'
+ PRODUTIL['venus'] = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/svn/nceplibs/produtil/trunk/ush'
+ try_clusters = ('hera','luna','surge','mars','venus')
for cluster in try_clusters:
sys.path.append(PRODUTIL[cluster])
diff --git a/ush/rocoto/setup_expt.py b/ush/rocoto/setup_expt.py
index 0d66a3691..d4841b327 100755
--- a/ush/rocoto/setup_expt.py
+++ b/ush/rocoto/setup_expt.py
@@ -76,12 +76,12 @@ def edit_baseconfig():
top = os.path.abspath(os.path.join(
os.path.abspath(here), '../..'))
- # make a copy of the default before editing
- shutil.copy(base_config, base_config + '.default')
+ if os.path.exists(base_config):
+ os.unlink(base_config)
print '\nSDATE = %s\nEDATE = %s' % (idate, edate)
- with open(base_config + '.default', 'rt') as fi:
- with open(base_config + '.new', 'wt') as fo:
+ with open(base_config + '.emc.dyn', 'rt') as fi:
+ with open(base_config, 'wt') as fo:
for line in fi:
line = line.replace('@MACHINE@', machine.upper()) \
.replace('@PSLOT@', pslot) \
@@ -91,6 +91,17 @@ def edit_baseconfig():
.replace('@CASECTL@', 'C%d' % resdet) \
.replace('@NMEM_ENKF@', '%d' % nens) \
.replace('@HOMEgfs@', top) \
+ .replace('@BASE_GIT@', base_git) \
+ .replace('@BASE_SVN@', base_svn) \
+ .replace('@DMPDIR@', dmpdir) \
+ .replace('@NWPROD@', nwprod) \
+ .replace('@HOMEDIR@', homedir) \
+ .replace('@STMP@', stmp) \
+ .replace('@PTMP@', ptmp) \
+ .replace('@NOSCRUB@', noscrub) \
+ .replace('@ACCOUNT@', account) \
+ .replace('@QUEUE@', queue) \
+ .replace('@QUEUE_ARCH@', queue_arch) \
.replace('@gfs_cyc@', '%d' % gfs_cyc)
if expdir is not None:
line = line.replace('@EXPDIR@', os.path.dirname(expdir))
@@ -99,12 +110,10 @@ def edit_baseconfig():
if 'ICSDIR' in line:
continue
fo.write(line)
- os.unlink(base_config)
- os.rename(base_config + '.new', base_config)
print ''
print 'EDITED: %s/config.base as per user input.' % expdir
- print 'DEFAULT: %s/config.base.default is for reference only.' % expdir
+ print 'DEFAULT: %s/config.base.emc.dyn is for reference only.' % expdir
print 'Please verify and delete the default file before proceeding.'
print ''
@@ -131,6 +140,7 @@ def edit_baseconfig():
parser.add_argument('--nens', help='number of ensemble members', type=int, required=False, default=20)
parser.add_argument('--cdump', help='CDUMP to start the experiment', type=str, required=False, default='gdas')
parser.add_argument('--gfs_cyc', help='GFS cycles to run', type=int, choices=[0, 1, 2, 4], default=1, required=False)
+ parser.add_argument('--partition', help='partition on machine', type=str, required=False, default=None)
args = parser.parse_args()
@@ -151,6 +161,48 @@ def edit_baseconfig():
nens = args.nens
cdump = args.cdump
gfs_cyc = args.gfs_cyc
+ partition = args.partition
+
+ # Set machine defaults
+ if machine == 'WCOSS_DELL_P3':
+ base_git = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git'
+ base_svn = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git'
+ dmpdir = '/gpfs/dell3/emc/global/dump'
+ nwprod = '/gpfs/dell1/nco/ops/nwprod'
+ homedir = '/gpfs/dell2/emc/modeling/noscrub/$USER'
+ stmp = '/gpfs/dell3/stmp/$USER'
+ ptmp = '/gpfs/dell3/ptmp/$USER'
+ noscrub = '/gpfs/dell2/emc/modeling/noscrub/$USER'
+ account = 'GFS-DEV'
+ queue = 'dev'
+ queue_arch = 'dev_transfer'
+ if partition in ['3p5']:
+ queue = 'dev2'
+ queue_arch = 'dev2_transfer'
+ elif machine == 'WCOSS_C':
+ base_git = '/gpfs/hps3/emc/global/noscrub/emc.glopara/git'
+ base_svn = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn'
+ dmpdir = '/gpfs/dell3/emc/global/dump'
+ nwprod = '/gpfs/hps/nco/ops/nwprod'
+ homedir = '/gpfs/hps3/emc/global/noscrub/$USER'
+ stmp = '/gpfs/hps2/stmp/$USER'
+ ptmp = '/gpfs/hps2/ptmp/$USER'
+ noscrub = '/gpfs/hps3/emc/global/noscrub/$USER'
+ account = 'GFS-DEV'
+ queue = 'dev'
+ queue_arch = 'dev_transfer'
+ elif machine == 'HERA':
+ base_git = '/scratch1/NCEPDEV/global/glopara/git'
+ base_svn = '/scratch1/NCEPDEV/global/glopara/svn'
+ dmpdir = '/scratch1/NCEPDEV/global/glopara/dump'
+ nwprod = '/scratch1/NCEPDEV/global/glopara/nwpara'
+ homedir = '/scratch1/NCEPDEV/global/$USER'
+ stmp = '/scratch1/NCEPDEV/stmp2/$USER'
+ ptmp = '/scratch1/NCEPDEV/stmp4/$USER'
+ noscrub = '$HOMEDIR'
+ account = 'fv3-cpu'
+ queue = 'batch'
+ queue_arch = 'service'
if args.icsdir is not None and not os.path.exists(icsdir):
msg = 'Initial conditions do not exist in %s' % icsdir
diff --git a/ush/rocoto/setup_expt_fcstonly.py b/ush/rocoto/setup_expt_fcstonly.py
index 51666a362..79d6fa9ed 100755
--- a/ush/rocoto/setup_expt_fcstonly.py
+++ b/ush/rocoto/setup_expt_fcstonly.py
@@ -65,6 +65,17 @@ def edit_baseconfig():
.replace('@EDATE@', edate.strftime('%Y%m%d%H')) \
.replace('@CASECTL@', 'C%d' % res) \
.replace('@HOMEgfs@', top) \
+ .replace('@BASE_GIT@', base_git) \
+ .replace('@BASE_SVN@', base_svn) \
+ .replace('@DMPDIR@', dmpdir) \
+ .replace('@NWPROD@', nwprod) \
+ .replace('@HOMEDIR@', homedir) \
+ .replace('@STMP@', stmp) \
+ .replace('@PTMP@', ptmp) \
+ .replace('@NOSCRUB@', noscrub) \
+ .replace('@ACCOUNT@', account) \
+ .replace('@QUEUE@', queue) \
+ .replace('@QUEUE_ARCH@', queue_arch) \
.replace('@gfs_cyc@', '%d' % gfs_cyc)
if expdir is not None:
line = line.replace('@EXPDIR@', os.path.dirname(expdir))
@@ -99,6 +110,7 @@ def edit_baseconfig():
parser.add_argument('--edate', help='end date experiment', type=str, required=True)
parser.add_argument('--configdir', help='full path to directory containing the config files', type=str, required=False, default=None)
parser.add_argument('--gfs_cyc', help='GFS cycles to run', type=int, choices=[0, 1, 2, 4], default=1, required=False)
+ parser.add_argument('--partition', help='partition on machine', type=str, required=False, default=None)
args = parser.parse_args()
@@ -115,6 +127,48 @@ def edit_baseconfig():
comrot = args.comrot if args.comrot is None else os.path.join(args.comrot, pslot)
expdir = args.expdir if args.expdir is None else os.path.join(args.expdir, pslot)
gfs_cyc = args.gfs_cyc
+ partition = args.partition
+
+ # Set machine defaults
+ if machine == 'WCOSS_DELL_P3':
+ base_git = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git'
+ base_svn = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git'
+ dmpdir = '/gpfs/dell3/emc/global/dump'
+ nwprod = '/gpfs/dell1/nco/ops/nwprod'
+ homedir = '/gpfs/dell2/emc/modeling/noscrub/$USER'
+ stmp = '/gpfs/dell3/stmp/$USER'
+ ptmp = '/gpfs/dell3/ptmp/$USER'
+ noscrub = '/gpfs/dell2/emc/modeling/noscrub/$USER'
+ account = 'GFS-DEV'
+ queue = 'dev'
+ queue_arch = 'dev_transfer'
+ if partition in ['3p5']:
+ queue = 'dev2'
+ queue_arch = 'dev2_transfer'
+ elif machine == 'WCOSS_C':
+ base_git = '/gpfs/hps3/emc/global/noscrub/emc.glopara/git'
+ base_svn = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn'
+ dmpdir = '/gpfs/dell3/emc/global/dump'
+ nwprod = '/gpfs/hps/nco/ops/nwprod'
+ homedir = '/gpfs/hps3/emc/global/noscrub/$USER'
+ stmp = '/gpfs/hps2/stmp/$USER'
+ ptmp = '/gpfs/hps2/ptmp/$USER'
+ noscrub = '/gpfs/hps3/emc/global/noscrub/$USER'
+ account = 'GFS-DEV'
+ queue = 'dev'
+ queue_arch = 'dev_transfer'
+ elif machine == 'HERA':
+ base_git = '/scratch1/NCEPDEV/global/glopara/git'
+ base_svn = '/scratch1/NCEPDEV/global/glopara/svn'
+ dmpdir = '/scratch1/NCEPDEV/global/glopara/dump'
+ nwprod = '/scratch1/NCEPDEV/global/glopara/nwpara'
+ homedir = '/scratch1/NCEPDEV/global/$USER'
+ stmp = '/scratch1/NCEPDEV/stmp2/$USER'
+ ptmp = '/scratch1/NCEPDEV/stmp4/$USER'
+ noscrub = '$HOMEDIR'
+ account = 'fv3-cpu'
+ queue = 'batch'
+ queue_arch = 'service'
# COMROT directory
create_comrot = True
diff --git a/ush/rocoto/setup_workflow.py b/ush/rocoto/setup_workflow.py
index 778596846..505af50b9 100755
--- a/ush/rocoto/setup_workflow.py
+++ b/ush/rocoto/setup_workflow.py
@@ -44,8 +44,10 @@ def main():
gfs_steps = ['prep', 'anal', 'fcst', 'postsnd', 'post', 'awips', 'gempak', 'vrfy', 'arch']
hyb_steps = ['eobs', 'eomg', 'eupd', 'ecen', 'efcs', 'epos', 'earc']
+ metp_steps = ['metp']
steps = gfs_steps + hyb_steps if _base.get('DOHYBVAR', 'NO') == 'YES' else gfs_steps
+ steps = steps + metp_steps if _base.get('DO_METP', 'NO') == 'YES' else steps
dict_configs = wfu.source_configs(configs, steps)
@@ -216,6 +218,7 @@ def get_gdasgfs_resources(dict_configs, cdump='gdas'):
do_bufrsnd = base.get('DO_BUFRSND', 'NO').upper()
do_gempak = base.get('DO_GEMPAK', 'NO').upper()
do_awips = base.get('DO_AWIPS', 'NO').upper()
+ do_metp = base.get('DO_METP', 'NO').upper()
tasks = ['prep', 'anal', 'fcst', 'post', 'vrfy', 'arch']
@@ -225,6 +228,8 @@ def get_gdasgfs_resources(dict_configs, cdump='gdas'):
tasks += ['gempak']
if cdump in ['gfs'] and do_awips in ['Y', 'YES']:
tasks += ['awips']
+ if cdump in ['gfs'] and do_metp in ['Y', 'YES']:
+ tasks += ['metp']
dict_resources = OrderedDict()
@@ -345,6 +350,7 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'):
do_bufrsnd = base.get('DO_BUFRSND', 'NO').upper()
do_gempak = base.get('DO_GEMPAK', 'NO').upper()
do_awips = base.get('DO_AWIPS', 'NO').upper()
+ do_metp = base.get('DO_METP', 'NO').upper()
dumpsuffix = base.get('DUMP_SUFFIX', '')
dict_tasks = OrderedDict()
@@ -431,6 +437,21 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'):
dict_tasks['%svrfy' % cdump] = task
+ # metp
+ if cdump in ['gfs'] and do_metp in ['Y', 'YES']:
+ deps = []
+ dep_dict = {'type':'metatask', 'name':'%spost' % cdump}
+ deps.append(rocoto.add_dependency(dep_dict))
+ dep_dict = {'type':'task', 'name':'%sarch' % cdump, 'offset':'-&INTERVAL_GFS;'}
+ deps.append(rocoto.add_dependency(dep_dict))
+ dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
+ metpcase = rocoto.create_envar(name='METPCASE', value='#metpcase#')
+ metpenvars = envars + [metpcase]
+ varname1 = 'metpcase'
+ varval1 = 'g2g1 g2o1 pcp1'
+ task = wfu.create_wf_task('metp', cdump=cdump, envar=metpenvars, dependency=dependencies,
+ metatask='metp', varname=varname1, varval=varval1)
+ dict_tasks['%smetp' % cdump] = task
if cdump in ['gfs'] and do_bufrsnd in ['Y', 'YES']:
#postsnd
diff --git a/ush/rocoto/setup_workflow_fcstonly.py b/ush/rocoto/setup_workflow_fcstonly.py
index c3569578a..0aaeda4bf 100755
--- a/ush/rocoto/setup_workflow_fcstonly.py
+++ b/ush/rocoto/setup_workflow_fcstonly.py
@@ -28,7 +28,7 @@
import workflow_utils as wfu
-taskplan = ['getic', 'fv3ic', 'aeroic', 'fcst', 'post', 'vrfy', 'arch']
+taskplan = ['getic', 'fv3ic', 'aeroic', 'fcst', 'post', 'vrfy', 'metp', 'arch']
def main():
parser = ArgumentParser(description='Setup XML workflow and CRONTAB for a forecast only experiment.', formatter_class=ArgumentDefaultsHelpFormatter)
@@ -224,6 +224,9 @@ def get_workflow(dict_configs, cdump='gdas'):
envars.append(rocoto.create_envar(name='PDY', value='@Y@m@d'))
envars.append(rocoto.create_envar(name='cyc', value='@H'))
+ base = dict_configs['base']
+ do_metp = base.get('DO_METP', 'NO').upper()
+
tasks = []
# getics
@@ -347,6 +350,23 @@ def get_workflow(dict_configs, cdump='gdas'):
tasks.append(task)
tasks.append('\n')
+ # metp
+ if do_metp in ['Y', 'YES']:
+ deps = []
+ dep_dict = {'type':'metatask', 'name':'%spost' % cdump}
+ deps.append(rocoto.add_dependency(dep_dict))
+ dep_dict = {'type':'task', 'name':'%sarch' % cdump, 'offset':'-&INTERVAL;'}
+ deps.append(rocoto.add_dependency(dep_dict))
+ dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
+ metpcase = rocoto.create_envar(name='METPCASE', value='#metpcase#')
+ metpenvars = envars + [metpcase]
+ varname1 = 'metpcase'
+ varval1 = 'g2g1 g2o1 pcp1'
+ task = wfu.create_wf_task('metp', cdump=cdump, envar=metpenvars, dependency=dependencies,
+ metatask='metp', varname=varname1, varval=varval1)
+ tasks.append(task)
+ tasks.append('\n')
+
# arch
deps = []
dep_dict = {'type':'metatask', 'name':'%spost' % cdump}
diff --git a/ush/rocoto/workflow_utils.py b/ush/rocoto/workflow_utils.py
index f878e5375..50a1f7534 100755
--- a/ush/rocoto/workflow_utils.py
+++ b/ush/rocoto/workflow_utils.py
@@ -16,7 +16,6 @@
DATE_ENV_VARS=['CDATE','SDATE','EDATE']
SCHEDULER_MAP={'HERA':'slurm',
- 'THEIA':'slurm',
'WCOSS':'lsf',
'WCOSS_DELL_P3':'lsf',
'WCOSS_C':'lsfcray'}
@@ -145,12 +144,10 @@ def config_parser(files):
def detectMachine():
- machines = ['THEIA', 'HERA', 'WCOSS_C', 'WCOSS_DELL_P3']
+ machines = ['HERA', 'WCOSS_C', 'WCOSS_DELL_P3']
if os.path.exists('/scratch1/NCEPDEV'):
return 'HERA'
- elif os.path.exists('/scratch3/NCEPDEV'):
- return 'THEIA'
elif os.path.exists('/gpfs') and os.path.exists('/etc/SuSE-release'):
return 'WCOSS_C'
elif os.path.exists('/gpfs/dell2'):
@@ -302,7 +299,7 @@ def get_resources(machine, cfg, task, cdump='gdas'):
if scheduler in ['slurm']:
natstr = '--export=NONE'
- if machine in ['THEIA', 'HERA', 'WCOSS_C', 'WCOSS_DELL_P3']:
+ if machine in ['HERA', 'WCOSS_C', 'WCOSS_DELL_P3']:
if machine in ['HERA']:
resstr = '%d:ppn=%d:tpp=%d' % (nodes, ppn, threads)
@@ -342,7 +339,7 @@ def create_crontab(base, cronint=5):
return
# Leaving the code for a wrapper around crontab file if needed again later
-# if check_slurm() and base['machine'] in ['THEIA']:
+# if check_slurm():
#
# cronintstr = '*/%d * * * *' % cronint
# rocotorunstr = '%s -d %s/%s.db -w %s/%s.xml' % (rocotoruncmd, base['EXPDIR'], base['PSLOT'], base['EXPDIR'], base['PSLOT'])
diff --git a/util/modulefiles/gfs_util.theia b/util/modulefiles/gfs_util.theia
deleted file mode 100644
index 50c7bf1d5..000000000
--- a/util/modulefiles/gfs_util.theia
+++ /dev/null
@@ -1,25 +0,0 @@
-#%Module#####################################################
-## Module file for GFS util
-#############################################################
-#
-# Loading required system modules
-#
-
-# Loading Intel Compiler Suite
-module load intel/18.1.163
-module load impi/5.1.2.150
-module load ncl/6.3.0
-module load gempak/7.4.2
-
-# Loding nceplibs modules
-module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles
-module load bacio/v2.0.1
-module load w3emc/v2.2.0
-module load w3nco/v2.0.6
-module load ip/v3.0.0
-module load sp/v2.0.2
-module load bufr/v11.1.0
-module load graphics/v2.0.0
-
-export GEMINC=/apps/gempak/7.4.2/gempak/include
-export GEMOLB=/apps/gempak/7.4.2/os/linux64/lib
diff --git a/util/sorc/compile_gfs_util_wcoss.sh b/util/sorc/compile_gfs_util_wcoss.sh
index f260d14d1..6cafe01bc 100755
--- a/util/sorc/compile_gfs_util_wcoss.sh
+++ b/util/sorc/compile_gfs_util_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/faxmakr.fd/compile_faxmakr_wcoss.sh b/util/sorc/faxmakr.fd/compile_faxmakr_wcoss.sh
index 4a97888a0..31e5b0240 100755
--- a/util/sorc/faxmakr.fd/compile_faxmakr_wcoss.sh
+++ b/util/sorc/faxmakr.fd/compile_faxmakr_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/faxmakrx.fd/compile_faxmakrx_wcoss.sh b/util/sorc/faxmakrx.fd/compile_faxmakrx_wcoss.sh
index dc8078236..b717860c9 100755
--- a/util/sorc/faxmakrx.fd/compile_faxmakrx_wcoss.sh
+++ b/util/sorc/faxmakrx.fd/compile_faxmakrx_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/fxcompoz.fd/compile_fxcompoz_wcoss.sh b/util/sorc/fxcompoz.fd/compile_fxcompoz_wcoss.sh
index b185ba308..8a206ee8e 100755
--- a/util/sorc/fxcompoz.fd/compile_fxcompoz_wcoss.sh
+++ b/util/sorc/fxcompoz.fd/compile_fxcompoz_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/gendata.fd/compile_gendata_wcoss.sh b/util/sorc/gendata.fd/compile_gendata_wcoss.sh
index 642ac9c37..8a043b352 100755
--- a/util/sorc/gendata.fd/compile_gendata_wcoss.sh
+++ b/util/sorc/gendata.fd/compile_gendata_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/mkgfsawps.fd/compile_mkgfsawps_wcoss.sh b/util/sorc/mkgfsawps.fd/compile_mkgfsawps_wcoss.sh
index 103ed63e3..97c04173d 100755
--- a/util/sorc/mkgfsawps.fd/compile_mkgfsawps_wcoss.sh
+++ b/util/sorc/mkgfsawps.fd/compile_mkgfsawps_wcoss.sh
@@ -3,7 +3,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/overgridid.fd/compile_overgridid_wcoss.sh b/util/sorc/overgridid.fd/compile_overgridid_wcoss.sh
index d9baf16d9..da3550ceb 100755
--- a/util/sorc/overgridid.fd/compile_overgridid_wcoss.sh
+++ b/util/sorc/overgridid.fd/compile_overgridid_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/plotvpap.fd/compile_plotvpap_wcoss.sh b/util/sorc/plotvpap.fd/compile_plotvpap_wcoss.sh
index c6046803a..fa20959fe 100755
--- a/util/sorc/plotvpap.fd/compile_plotvpap_wcoss.sh
+++ b/util/sorc/plotvpap.fd/compile_plotvpap_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/ras2bit.fd/compile_ras2bit_wcoss.sh b/util/sorc/ras2bit.fd/compile_ras2bit_wcoss.sh
index 4121b285f..9db5d0665 100755
--- a/util/sorc/ras2bit.fd/compile_ras2bit_wcoss.sh
+++ b/util/sorc/ras2bit.fd/compile_ras2bit_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/ras2bity.fd/compile_ras2bity_wcoss.sh b/util/sorc/ras2bity.fd/compile_ras2bity_wcoss.sh
index abbf0e13a..f09df01cf 100755
--- a/util/sorc/ras2bity.fd/compile_ras2bity_wcoss.sh
+++ b/util/sorc/ras2bity.fd/compile_ras2bity_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/rdbfmsua.fd/compile_rdbfmsua_wcoss.sh b/util/sorc/rdbfmsua.fd/compile_rdbfmsua_wcoss.sh
index b4b53ee37..e3bc85810 100755
--- a/util/sorc/rdbfmsua.fd/compile_rdbfmsua_wcoss.sh
+++ b/util/sorc/rdbfmsua.fd/compile_rdbfmsua_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/redsat.fd/compile_redsat_wcoss.sh b/util/sorc/redsat.fd/compile_redsat_wcoss.sh
index c5c7c06a9..638eecccb 100755
--- a/util/sorc/redsat.fd/compile_redsat_wcoss.sh
+++ b/util/sorc/redsat.fd/compile_redsat_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/rsonde.fd/compile_rsonde_wcoss.sh b/util/sorc/rsonde.fd/compile_rsonde_wcoss.sh
index e73ef6d21..bd71f11fb 100755
--- a/util/sorc/rsonde.fd/compile_rsonde_wcoss.sh
+++ b/util/sorc/rsonde.fd/compile_rsonde_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/rsondplt.fd/compile_rsondplt_wcoss.sh b/util/sorc/rsondplt.fd/compile_rsondplt_wcoss.sh
index c285bc76a..b51551254 100755
--- a/util/sorc/rsondplt.fd/compile_rsondplt_wcoss.sh
+++ b/util/sorc/rsondplt.fd/compile_rsondplt_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/sixbitb.fd/compile_sixbitb_wcoss.sh b/util/sorc/sixbitb.fd/compile_sixbitb_wcoss.sh
index a72ce8635..ae1bd4c0a 100755
--- a/util/sorc/sixbitb.fd/compile_sixbitb_wcoss.sh
+++ b/util/sorc/sixbitb.fd/compile_sixbitb_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/sixbitb2.fd/compile_sixbitb2_wcoss.sh b/util/sorc/sixbitb2.fd/compile_sixbitb2_wcoss.sh
index a91cd918e..f3f8a734d 100755
--- a/util/sorc/sixbitb2.fd/compile_sixbitb2_wcoss.sh
+++ b/util/sorc/sixbitb2.fd/compile_sixbitb2_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/terrain.fd/makefile.sh b/util/sorc/terrain.fd/makefile.sh
index 1e8f4b3fb..d1b5f5bc3 100755
--- a/util/sorc/terrain.fd/makefile.sh
+++ b/util/sorc/terrain.fd/makefile.sh
@@ -16,10 +16,6 @@ elif [ $machine = WCOSS_C ] ; then
FFOPTS="-i4 -O3 -r8 -convert big_endian -fp-model precise -openmp"
LIBS="${W3EMC_LIBd} ${W3NCO_LIBd} ${BACIO_LIB4} ${SP_LIBd}"
LDOPTS="-openmp -mkl"
-elif [ $machine = THEIA ] ; then
- CF=ftn
- FFOPTS="-i4 -O3 -r8 -convert big_endian -fp-model precise -openmp"
- LIBS="${W3EMC_LIBd} ${W3NCO_LIBd} ${BACIO_LIB4} ${SP_LIBd}"
fi
f=mtnlm7_slm30g.f
diff --git a/util/sorc/trpanl.fd/compile_trpanl_wcoss.sh b/util/sorc/trpanl.fd/compile_trpanl_wcoss.sh
index 51dd2fcce..1fcf9e747 100755
--- a/util/sorc/trpanl.fd/compile_trpanl_wcoss.sh
+++ b/util/sorc/trpanl.fd/compile_trpanl_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/trpsfcmv.fd/compile_trpsfcmv_wcoss.sh b/util/sorc/trpsfcmv.fd/compile_trpsfcmv_wcoss.sh
index 23474483e..b4592ea34 100755
--- a/util/sorc/trpsfcmv.fd/compile_trpsfcmv_wcoss.sh
+++ b/util/sorc/trpsfcmv.fd/compile_trpsfcmv_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/trpsfprv.fd/compile_trpsfprv_wcoss.sh b/util/sorc/trpsfprv.fd/compile_trpsfprv_wcoss.sh
index c09de7ca1..91d1f3fec 100755
--- a/util/sorc/trpsfprv.fd/compile_trpsfprv_wcoss.sh
+++ b/util/sorc/trpsfprv.fd/compile_trpsfprv_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/upaprep.fd/compile_upaprep_wcoss.sh b/util/sorc/upaprep.fd/compile_upaprep_wcoss.sh
index b492dc681..188f7cd5a 100755
--- a/util/sorc/upaprep.fd/compile_upaprep_wcoss.sh
+++ b/util/sorc/upaprep.fd/compile_upaprep_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/webtitle.fd/compile_webtitle_wcoss.sh b/util/sorc/webtitle.fd/compile_webtitle_wcoss.sh
index 6101d84f5..7b1af5d7f 100755
--- a/util/sorc/webtitle.fd/compile_webtitle_wcoss.sh
+++ b/util/sorc/webtitle.fd/compile_webtitle_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "
diff --git a/util/sorc/wndanftf.fd/compile_wndanftf_wcoss.sh b/util/sorc/wndanftf.fd/compile_wndanftf_wcoss.sh
index 252745f29..d446a9212 100755
--- a/util/sorc/wndanftf.fd/compile_wndanftf_wcoss.sh
+++ b/util/sorc/wndanftf.fd/compile_wndanftf_wcoss.sh
@@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no
source ../../../sorc/machine-setup.sh > /dev/null 2>&1
cwd=`pwd`
-if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then
+if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] ; then
echo " "
echo " You are on WCOSS: $target "
echo " "