From 2fa0424702025eda2f43b1451b11589e0adbd2b4 Mon Sep 17 00:00:00 2001
From: BenjaminBlake-NOAA
<52074832+BenjaminBlake-NOAA@users.noreply.github.com>
Date: Mon, 30 Sep 2019 12:49:13 -0400
Subject: [PATCH] Final set of changes for port to Hera (#112)
* chgres cube and second set of changes for port to Hera
* input and model configure files for AK/Guam/PR
* Final set of changes for port to Hera
* Update wcoss_dell_p3.ent
---
Externals.cfg | 10 +-
jobs/JREGIONAL_MAKE_BC | 119 +-----
jobs/JREGIONAL_MAKE_IC | 21 +-
modulefiles/theia/fv3 | 43 ---
modulefiles/theia/regional | 47 ---
parm/input_sar_ak.nml | 284 ++++++++++++++
parm/input_sar_conus.nml | 2 +-
parm/input_sar_guam.nml | 284 ++++++++++++++
parm/input_sar_pr.nml | 284 ++++++++++++++
parm/model_configure_sar.tmp_ak | 58 +++
parm/model_configure_sar.tmp_conus | 4 +-
parm/model_configure_sar.tmp_guam | 58 +++
parm/model_configure_sar.tmp_pr | 58 +++
rocoto/regional_workflow.xml.in | 1 -
rocoto/rocoto_pre_job.sh | 2 -
rocoto/run_regional_hera.sh | 6 +-
rocoto/run_regional_theia.sh | 62 ---
rocoto/sites/hera.ent | 20 +-
rocoto/sites/theia.ent | 54 ---
rocoto/sites/wcoss_cray.ent | 2 +-
rocoto/sites/wcoss_dell_p3.ent | 10 +-
scripts/exregional_forecast.sh | 9 +-
scripts/exregional_make_bc.sh | 100 +++++
scripts/exregional_make_ic.sh | 87 +++++
scripts/exregional_make_ic_bc.sh | 1 -
scripts/exregional_make_ic_bc_new.sh | 550 ---------------------------
sorc/build_forecast.sh | 1 -
sorc/checkout.sh | 38 +-
sorc/link_fix.sh | 5 -
sorc/machine-setup.sh | 18 +-
ush/regional_chgres.sh | 543 --------------------------
ush/run_commands_bc.sh | 2 +-
ush/run_commands_forecast.sh | 2 +-
33 files changed, 1283 insertions(+), 1502 deletions(-)
delete mode 100644 modulefiles/theia/fv3
delete mode 100644 modulefiles/theia/regional
create mode 100644 parm/input_sar_ak.nml
create mode 100644 parm/input_sar_guam.nml
create mode 100644 parm/input_sar_pr.nml
create mode 100644 parm/model_configure_sar.tmp_ak
create mode 100644 parm/model_configure_sar.tmp_guam
create mode 100644 parm/model_configure_sar.tmp_pr
delete mode 100755 rocoto/run_regional_theia.sh
delete mode 100644 rocoto/sites/theia.ent
create mode 100755 scripts/exregional_make_bc.sh
create mode 100755 scripts/exregional_make_ic.sh
delete mode 120000 scripts/exregional_make_ic_bc.sh
delete mode 100755 scripts/exregional_make_ic_bc_new.sh
delete mode 100755 ush/regional_chgres.sh
diff --git a/Externals.cfg b/Externals.cfg
index 05c6e377d..e3477b386 100644
--- a/Externals.cfg
+++ b/Externals.cfg
@@ -1,12 +1,12 @@
[ufs_utils]
-branch = feature/HAFS
+branch = support/regional
protocol = git
-repo_url = gerrit:UFS_UTILS
+repo_url = https://github.com/hafs-community/UFS_UTILS.git
local_path = sorc/regional_utils.fd
required = True
[nemsfv3gfs]
-branch = regional
+branch = develop
protocol = git
repo_url = gerrit:NEMSfv3gfs
local_path = sorc/regional_forecast.fd
@@ -20,9 +20,9 @@ local_path = sorc/regional_gsi.fd
required = True
[post]
-branch = regional
+branch = support/regional
protocol = git
-repo_url = gerrit:EMC_post
+repo_url = https://github.com/hafs-community/EMC_post.git
local_path = sorc/regional_post.fd
required = True
diff --git a/jobs/JREGIONAL_MAKE_BC b/jobs/JREGIONAL_MAKE_BC
index c293986a1..0316d8c6e 100755
--- a/jobs/JREGIONAL_MAKE_BC
+++ b/jobs/JREGIONAL_MAKE_BC
@@ -7,9 +7,7 @@ set -xe
####################################
# Specify Execution Areas
####################################
-export CHGRESEXEC=$EXECfv3/regional_chgres.x
-export CHGRESSH=$USHfv3/regional_chgres.sh
-export GETGES=$HOMEfv3/util/ush/getges_linkges_hourlypgrb_new.sh
+export CHGRESEXEC=$EXECfv3/regional_chgres_cube.x
####################################
# Run setpdy and initialize PDY variables
@@ -18,6 +16,9 @@ export GETGES=$HOMEfv3/util/ush/getges_linkges_hourlypgrb_new.sh
#setpdy.sh
#. ./PDY
+export month=`echo $CDATE | cut -c 5-6`
+export day=`echo $CDATE | cut -c 7-8`
+
offset=`echo $tmmark | cut -c 3-4`
export CYCLEGUESS=`$NDATE -${offset} $CDATE`
export CDATE=$CYCLEGUESS
@@ -32,9 +33,6 @@ mkdir -p $DATA
cd $DATA
export BNDYdir=$DATA
-export OUTDIR=$DATA/INPUT
-mkdir -p $OUTDIR
-
export pid=$$
export pgmout="OUTPUT.${pid}"
export pgmerr=errfile
@@ -69,119 +67,20 @@ export LSOIL=4
export REGIONAL=2 # REGIONAL=0 - uniform, stretch, or nest
# REGIONAL=1 - generate data and boundary (for regional case)
# REGIONAL=2 - generate boundaries only (for regional case)
+export HALO=4
export ictype=pfv3gfs
export nst_anl=.false. # false or true to include NST analysis
export KMP_AFFINITY=disabled
-export NTRAC=7 # output all gfdl mp tracers
env
#####################################
# Generate the BCs
#####################################
-if [ -e bcfile.input ]; then
- rm -f bcfile.input
-fi
-
-# NHRS = length of free forecast
-# NHRSda = length of DA cycle forecast (always 1-h)
-if [ $tmmark = tm00 ] ; then
- hour=3
- end_hour=$NHRS
- hour_inc=3
-else
- hour=0
- end_hour=$NHRSda
- hour_inc=1
-fi
-
-while (test "$hour" -le "$end_hour")
- do
- if [ $hour -lt 10 ]; then
- hour_name='00'$hour
- elif [ $hour -lt 100 ]; then
- hour_name='0'$hour
- else
- hour_name=$hour
- fi
-
-#
-# create input file for cfp in order to run multiple copies of exfv3cam_sar_chgres.sh simultaneously
-# since we are going to run simultaneously, we want different working directories for each hour
-#
- if [ $tmmark = tm00 ] ; then
- BC_DATA=${DATA}/wrk.chgres.$hour_name
- rm -rf $BC_DATA
- mkdir -p $BC_DATA
- rm -f chgres_bc_f${hour_name}.sh
- echo "#! /bin/sh " > chgres_bc_f${hour_name}.sh
- echo "env REGIONAL=2 HALO=4 bchour=$hour_name DATA=$BC_DATA $HOMEfv3/scripts/exregional_make_ic_bc.sh" >> chgres_bc_f${hour_name}.sh
- chmod u+x chgres_bc_f${hour_name}.sh
- echo APRUNO is $APRUNO
- echo "${APRUNO} ./chgres_bc_f${hour_name}.sh > out.chgres.$hour_name 2>&1 ${BACKGROUND}" >> bcfile.input
- elif [ $tmmark != tm00 ] ; then
-# Run the BC creation sequentially
- export HALO=4
- export bchour=$hour_name
- $HOMEfv3/scripts/exregional_make_ic_bc.sh
- mv $OUTDIR/gfs_bndy.tile7.${bchour}.nc $INPdir/.
- err=$?
- if [ $err -ne 0 ] ; then
- echo "bndy file not created, abort"
- err_exit
- fi
- fi
- hour=`expr $hour + $hour_inc`
- nhour=`expr $nhour + 1`
-done
-
-# for tm00 we now run BC creation for all hours simultaneously
-if [ $tmmark = tm00 ] ; then
-
-export APRUNC="time"
-export OMP_NUM_THREADS_CH=${OMP_NUM_THREADS:-24}
-
-if [ "$machine" = theia ] || [ "$machine" = jet ]; then
- rm -f bcfile.input_new
- nline=0
- while [ "$nline" -lt "$nhour" ];
- do
- # Take the first $TOTAL_TASKS lines from bcfile.input
- sed -n -e "1,${TOTAL_TASKS}p" bcfile.input >> bcfile.input_new
- echo 'wait' >> bcfile.input_new
- sed -i -e "1,${TOTAL_TASKS}d" bcfile.input
- nline=`expr $nline + $TOTAL_TASKS`
- done
- cp bcfile.input_new bcfile.input
- #rm -f bcfile.input_new
-fi
-
-# mpirun cfp bcfile.input
- chmod u+x bcfile.input
- echo APRUNF is $APRUNF
- ls -l bcfile.input
- ${APRUNF} ./bcfile.input
- wait
-#tmp rm -f bcfile.input
-
- cd $OUTDIR
- cat filelist.ges* > $COMOUT/filelist.bndy.${tmmark}
- cp gfs_bndy.tile7.*.nc $INPdir/.
- cd $BNDYdir
- hr=03
- while [ $hr -le $NHRS ] ; do
- cat out.chgres.0${hr}
- cd wrk.chgres.0${hr}
- cat $pgmout
- cd $BNDYdir
- let "hr=hr+3"
- typeset -Z2 hr
- done
-else
- cp filelist.ges $COMOUT/filelist.bndy.${tmmark}
-fi
-
-date
+# Execute the script
+$HOMEfv3/scripts/exregional_make_bc.sh
+export err=$?
+#####################################
if [ -e $pgmerr ] ; then
cat $pgmerr
diff --git a/jobs/JREGIONAL_MAKE_IC b/jobs/JREGIONAL_MAKE_IC
index 72b53ef24..f94419125 100755
--- a/jobs/JREGIONAL_MAKE_IC
+++ b/jobs/JREGIONAL_MAKE_IC
@@ -2,14 +2,12 @@
set -xe
. $HOMEfv3/jobs/JREGIONAL_ENVIR
-. $USHfv3/run_commands_forecast.sh
+. $USHfv3/run_commands_bc.sh
####################################
# Specify Execution Areas
####################################
-export CHGRESEXEC=$EXECfv3/regional_chgres.x
-export CHGRESSH=$USHfv3/regional_chgres.sh
-export GETGES=$HOMEfv3/util/ush/getges_linkges_hourlypgrb_new.sh
+export CHGRESEXEC=$EXECfv3/regional_chgres_cube.x
####################################
# Run setpdy and initialize PDY variables
@@ -18,6 +16,9 @@ export GETGES=$HOMEfv3/util/ush/getges_linkges_hourlypgrb_new.sh
#setpdy.sh
#. ./PDY
+export month=`echo $CDATE | cut -c 5-6`
+export day=`echo $CDATE | cut -c 7-8`
+
export CYCLEguess=`$NDATE -12 $CDATE`
export ymd=`echo $CDATE | cut -c 1-8`
export hhcyc=`echo $CDATE | cut -c 9-10`
@@ -31,9 +32,6 @@ export DATA=${DATA:-${STMP}/tmpnwprd/${job}}
mkdir -p $DATA
cd $DATA
-export OUTDIR=$DATA/INPUT
-mkdir -p $OUTDIR
-
export pid=$$
export pgmout="OUTPUT.${pid}"
export pgmerr=errfile
@@ -73,7 +71,6 @@ export HALO=4
export ictype=pfv3gfs
export nst_anl=.false. # false or true to include NST analysis
export KMP_AFFINITY=disabled
-export NTRAC=7 # output all gfdl mp tracers
env
@@ -81,12 +78,10 @@ env
# Generate the ICs and BC hour 0
#####################################
# Execute the script.
-${HOMEfv3}/scripts/exregional_make_ic_bc.sh
+${HOMEfv3}/scripts/exregional_make_ic.sh
export err=$?
#####################################
-mv $OUTDIR/gfs*nc $INPdir/.
-mv $OUTDIR/sfc*nc $INPdir/.
#####################################
# Generate BCs for NHRSguess for SAR-DA
@@ -108,9 +103,7 @@ if [ $tmmark = tm12 ] ; then
fi
export bchour=$hour_name
- ${HOMEfv3}/scripts/exregional_make_ic_bc.sh
-
- mv $OUTDIR/gfs_bndy.tile7.${bchour}.nc $INPdir/.
+ ${HOMEfv3}/scripts/exregional_make_ic.sh
err=$?
if [ $err -ne 0 ] ; then
diff --git a/modulefiles/theia/fv3 b/modulefiles/theia/fv3
deleted file mode 100644
index ccf6e1765..000000000
--- a/modulefiles/theia/fv3
+++ /dev/null
@@ -1,43 +0,0 @@
-#%Module######################################################################
-##
-## NEMS FV3 Prerequisites: Theia/Intel
-
-proc ModulesHelp {} {
- puts stderr "\tcit - loads modules required for building and running FV3 under NEMS on Theia/Intel"
-}
-
-module-whatis "loads NEMS FV3 prerequisites for Theia/Intel"
-
-# NOTE: the "module purge" and loading of the module command are
-# handled by the module-setup.sh (or .csh) script.
-
-##
-## load programming environment
-## this typically includes compiler, MPI and job scheduler
-##
-module load intel/18.0.1.163
-module load impi/5.1.2.150
-module load netcdf/4.3.0
-module load pnetcdf/1.5.0-impi
-
-##
-## NCEP libraries (temporary version to match the CCPP requirements)
-##
-module use -a /scratch3/NCEPDEV/nwprod/NCEPLIBS_CCPP/modulefiles
-module load bacio/9.9.9
-module load ip/9.9.9
-module load nemsio/9.9.9
-module load sp/2.0.2
-module load w3emc/9.9.9
-module load w3nco/9.9.9
-
-##
-## use pre-compiled EMSF library for above compiler / MPI combination
-##
-module use -a /scratch4/NCEPDEV/nems/noscrub/emc.nemspara/soft/modulefiles
-module load esmf/8.0.0bs21-intel18
-
-module load prod_util/1.0.18
-module load rocoto/1.3.1
-
-module list
diff --git a/modulefiles/theia/regional b/modulefiles/theia/regional
deleted file mode 100644
index 9dc2cf0c6..000000000
--- a/modulefiles/theia/regional
+++ /dev/null
@@ -1,47 +0,0 @@
-#%Module#####################################################
-## Module file for regional workflow
-#############################################################
-proc ModulesHelp { } {
- puts stderr "Set environment veriables for compiling or running regional workflow"
-}
-module-whatis " regional workflow prerequisites"
-
-module use /scratch3/NCEPDEV/nwprod/lib/modulefiles
-module use /scratch4/NCEPDEV/nems/noscrub/emc.nemspara/soft/modulefiles
-
-module load intel
-module load impi
-#module load nco
-
-module load jasper/v1.900.1
-module load png/v1.2.44
-module load z/v1.2.6
-
-module load g2/v2.5.0
-module load w3emc/v2.0.5
-module load w3nco/v2.0.6
-module load sp/v2.0.2
-module load ip/v2.0.0
-module load bufr/v10.2.5
-module load bacio/v2.0.1
-module load sigio/v2.0.1
-module load sfcio/v1.0.0
-module load nemsio/v2.2.2
-module load nemsiogfs/v2.0.1
-
-module load hpss/hpss
-
-module load szip
-module load netcdf/4.3.0
-module load hdf5/1.8.14
-
-module load prod_util/1.0.18
-#Use wgrib2 v2.0.8
-#module load wgrib2/2.0.8 # This version does not work
-setenv WGRIB2 /home/Wesley.Ebisuzaki/bin/wgrib.v2.0.8b3
-setenv GRB2INDEX /scratch3/NCEPDEV/hwrf/save/Bin.Liu/hwrftrunk2019/nwport/util/exec/grb2index
-
-module load rocoto/1.3.1
-module load crtm/v2.2.3
-
-module list
diff --git a/parm/input_sar_ak.nml b/parm/input_sar_ak.nml
new file mode 100644
index 000000000..81d070908
--- /dev/null
+++ b/parm/input_sar_ak.nml
@@ -0,0 +1,284 @@
+ &amip_interp_nml
+ interp_oi_sst = .true.
+ use_ncep_sst = .true.
+ use_ncep_ice = .false.
+ no_anom_sst = .false.
+ data_set = 'reynolds_oi',
+ date_out_of_range = 'climo',
+/
+
+ &atmos_model_nml
+ blocksize = 24
+ chksum_debug = .false.
+ dycore_only = .false.
+ fdiag = 1
+ avg_max_length = 3600.
+/
+
+&diag_manager_nml
+ prepend_date = .false.
+/
+
+ &fms_io_nml
+ checksum_required = .false.
+ max_files_r = 100,
+ max_files_w = 100,
+/
+
+ &fms_nml
+ clock_grain = 'ROUTINE',
+ domains_stack_size = 1800200,
+ print_memory_usage = .false.
+/
+
+ &fv_grid_nml
+ grid_file = 'INPUT/grid_spec.nc'
+/
+
+ &fv_core_nml
+ layout = 14,48
+ io_layout = 1,1
+ npx = 1345
+ npy = 1153
+ ntiles = 1,
+ npz = 64
+! grid_type = -1
+ make_nh = .T.
+ fv_debug = .F.
+ range_warn = .F.
+ reset_eta = .F.
+ n_sponge = 24
+ nudge_qv = .F.
+ tau = 5.
+ rf_cutoff = 20.e2
+ d2_bg_k1 = 0.20
+ d2_bg_k2 = 0.04
+ kord_tm = -11
+ kord_mt = 11
+ kord_wz = 11
+ kord_tr = 11
+ hydrostatic = .F.
+ phys_hydrostatic = .F.
+ use_hydro_pressure = .F.
+ beta = 0.
+ a_imp = 1.
+ p_fac = 0.1
+ k_split = 6
+ n_split = 6
+ nwat = 6
+ na_init = 1
+ d_ext = 0.0
+ dnats = 1
+ fv_sg_adj = 300
+ d2_bg = 0.
+ nord = 2
+ dddmp = 0.1
+ d4_bg = 0.15
+ vtdm4 = 0.075
+ delt_max = 0.008
+ ke_bg = 0.
+ do_vort_damp = .true.
+ external_ic = .T.
+ external_eta = .T.
+ gfs_phil = .false.
+ nggps_ic = .T.
+ mountain = .F.
+ ncep_ic = .F.
+ d_con = 1.0
+ hord_mt = 6
+ hord_vt = 6
+ hord_tm = 6
+ hord_dp = -6
+ hord_tr = 8
+ adjust_dry_mass = .F.
+ consv_te = 0.
+ do_sat_adj = .T.
+ consv_am = .F.
+ fill = .T.
+ dwind_2d = .F.
+ print_freq = 6
+ warm_start = .F.
+ no_dycore = .false.
+ z_tracer = .T.
+ read_increment = .F.
+ res_latlon_dynamics = "fv3_increment.nc"
+
+ do_schmidt = .true.
+ target_lat = 61.0
+ target_lon = -153.0
+ stretch_fac = 1.5
+ regional = .true.
+ bc_update_interval = 3
+ agrid_vel_rst = .false.
+
+ full_zs_filter = .F. !unreleased feature
+
+ nord_zs_filter = 4
+ n_zs_filter = 0 ! safety
+/
+
+&surf_map_nml
+ zero_ocean = .F.
+ cd4 = 0.12
+ cd2 = -1
+ n_del2_strong = 0
+ n_del2_weak = 2
+ n_del4 = 1
+ max_slope = 0.4
+ peak_fac = 1.
+/
+
+ &external_ic_nml
+ filtered_terrain = .true.
+ levp = 65
+ gfs_dwinds = .true.
+ checker_tr = .F.
+ nt_checker = 0
+/
+
+ &gfs_physics_nml
+ fhzero = 1.
+ ldiag3d = .false.
+ lradar = .true.
+ avg_max_length = 3600.
+ h2o_phys = .true.
+ fhcyc = 24.
+ nst_anl = .true.
+ use_ufo = .true.
+ pre_rad = .false.
+ ncld = 5
+ imp_physics = 11
+ pdfcld = .false.
+ fhswr = 3600.
+ fhlwr = 3600.
+ ialb = 1
+ iems = 1
+ IAER = 111
+ ico2 = 2
+ isubc_sw = 2
+ isubc_lw = 2
+ isol = 2
+ lwhtr = .true.
+ swhtr = .true.
+ cnvgwd = .false.
+ cal_pre = .false.
+ redrag = .true.
+ dspheat = .true.
+ hybedmf = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .false.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ cdmbgwd = 3.5, 0.01 ! NCEP default
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ debug = .false.
+ nstf_name = 2,0,0,0,0
+ iau_delthrs = 6
+ iaufhrs = 30
+ iau_inc_files = ''
+ shal_cnv = .false. !Shallow convection
+ do_deep = .false.
+ lgfdlmprad = .true.
+ effr_in = .true.
+/
+
+ &gfdl_cloud_microphysics_nml
+ sedi_transport = .false.
+ do_sedi_heat = .false.
+ rad_snow = .true.
+ rad_graupel = .true.
+ rad_rain = .true.
+ const_vi = .F.
+ const_vs = .F.
+ const_vg = .F.
+ const_vr = .F.
+ vi_max = 1.
+ vs_max = 2.
+ vg_max = 12.
+ vr_max = 12.
+ qi_lim = 1.
+ prog_ccn = .false.
+ do_qa = .true.
+ fast_sat_adj = .true.
+ tau_l2v = 180.
+ tau_v2l = 90.
+ tau_g2v = 900.
+ rthresh = 10.e-6 ! This is a key parameter for cloud water
+ dw_land = 0.16
+ dw_ocean = 0.10
+ ql_gen = 1.0e-3
+ ql_mlt = 1.0e-3
+ qi0_crt = 8.0E-5
+ qs0_crt = 1.0e-3
+ tau_i2s = 1000.
+ c_psaci = 0.05
+ c_pgacs = 0.01
+ rh_inc = 0.30
+ rh_inr = 0.30
+ rh_ins = 0.30
+ ccn_l = 300.
+ ccn_o = 100.
+ c_paut = 0.5
+ c_cracw = 0.8
+ use_ppm = .false.
+ use_ccn = .true.
+ mono_prof = .true.
+ z_slope_liq = .true.
+ z_slope_ice = .true.
+ de_ice = .false.
+ fix_negative = .true.
+ icloud_f = 1
+ mp_time = 90.
+/
+ &interpolator_nml
+ interp_method = 'conserve_great_circle'
+/
+
+&namsfc
+ FNALBC2 = "C768.facsf.tileX.nc",
+ FNALBC = "C768.snowfree_albedo.tileX.nc",
+ FNTG3C = "C768.substrate_temperature.tileX.nc",
+ FNVEGC = "C768.vegetation_greenness.tileX.nc",
+ FNVETC = "C768.vegetation_type.tileX.nc",
+ FNSOTC = "C768.soil_type.tileX.nc",
+ FNVMNC = "C768.vegetation_greenness.tileX.nc",
+ FNVMXC = "C768.vegetation_greenness.tileX.nc",
+ FNSLPC = "C768.slope_type.tileX.nc",
+ FNABSC = "C768.maximum_snow_albedo.tileX.nc",
+ FNGLAC = "global_glacier.2x2.grb",
+ FNMXIC = "global_maxice.2x2.grb",
+ FNTSFC = "RTGSST.1982.2012.monthly.clim.grb",
+ FNSNOC = "global_snoclim.1.875.grb",
+ FNZORC = "igbp"
+ FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb",
+ FNSMCC = "global_soilmgldas.t1534.3072.1536.grb",
+ FNMSKH = "seaice_newland.grb",
+ FNTSFA = "",
+ FNACNA = "",
+ FNSNOA = "",
+ LDEBUG =.true.,
+ FSMCL(2) = 99999
+ FSMCL(3) = 99999
+ FSMCL(4) = 99999
+ FTSFS = 90
+ FAISS = 99999
+ FSNOL = 99999
+ FSICL = 99999
+ FTSFL = 99999,
+ FAISL = 99999,
+ FVETL = 99999,
+ FSOTL = 99999,
+ FvmnL = 99999,
+ FvmxL = 99999,
+ FSLPL = 99999,
+ FABSL = 99999,
+ FSNOS = 99999,
+ FSICS = 99999,
+/
+&nam_stochy
+/
+&nam_sfcperts
+/
diff --git a/parm/input_sar_conus.nml b/parm/input_sar_conus.nml
index 718817108..02f1352d7 100755
--- a/parm/input_sar_conus.nml
+++ b/parm/input_sar_conus.nml
@@ -36,7 +36,7 @@
/
&fv_core_nml
- layout = 16,48
+ layout = _TASK_X_,_TASK_Y_
io_layout = 1,1
npx = 1921
npy = 1297
diff --git a/parm/input_sar_guam.nml b/parm/input_sar_guam.nml
new file mode 100644
index 000000000..f77080444
--- /dev/null
+++ b/parm/input_sar_guam.nml
@@ -0,0 +1,284 @@
+ &amip_interp_nml
+ interp_oi_sst = .true.
+ use_ncep_sst = .true.
+ use_ncep_ice = .false.
+ no_anom_sst = .false.
+ data_set = 'reynolds_oi',
+ date_out_of_range = 'climo',
+/
+
+ &atmos_model_nml
+ blocksize = 24
+ chksum_debug = .false.
+ dycore_only = .false.
+ fdiag = 1
+ avg_max_length = 3600.
+/
+
+&diag_manager_nml
+ prepend_date = .false.
+/
+
+ &fms_io_nml
+ checksum_required = .false.
+ max_files_r = 100,
+ max_files_w = 100,
+/
+
+ &fms_nml
+ clock_grain = 'ROUTINE',
+ domains_stack_size = 1800200,
+ print_memory_usage = .false.
+/
+
+ &fv_grid_nml
+ grid_file = 'INPUT/grid_spec.nc'
+/
+
+ &fv_core_nml
+ layout = 6,10
+ io_layout = 1,1
+ npx = 433
+ npy = 361
+ ntiles = 1,
+ npz = 64
+! grid_type = -1
+ make_nh = .T.
+ fv_debug = .F.
+ range_warn = .F.
+ reset_eta = .F.
+ n_sponge = 24
+ nudge_qv = .F.
+ tau = 5.
+ rf_cutoff = 20.e2
+ d2_bg_k1 = 0.20
+ d2_bg_k2 = 0.04
+ kord_tm = -11
+ kord_mt = 11
+ kord_wz = 11
+ kord_tr = 11
+ hydrostatic = .F.
+ phys_hydrostatic = .F.
+ use_hydro_pressure = .F.
+ beta = 0.
+ a_imp = 1.
+ p_fac = 0.1
+ k_split = 6
+ n_split = 6
+ nwat = 6
+ na_init = 1
+ d_ext = 0.0
+ dnats = 1
+ fv_sg_adj = 300
+ d2_bg = 0.
+ nord = 2
+ dddmp = 0.1
+ d4_bg = 0.15
+ vtdm4 = 0.075
+ delt_max = 0.008
+ ke_bg = 0.
+ do_vort_damp = .true.
+ external_ic = .T.
+ external_eta = .T.
+ gfs_phil = .false.
+ nggps_ic = .T.
+ mountain = .F.
+ ncep_ic = .F.
+ d_con = 1.0
+ hord_mt = 6
+ hord_vt = 6
+ hord_tm = 6
+ hord_dp = -6
+ hord_tr = 8
+ adjust_dry_mass = .F.
+ consv_te = 0.
+ do_sat_adj = .T.
+ consv_am = .F.
+ fill = .T.
+ dwind_2d = .F.
+ print_freq = 6
+ warm_start = .F.
+ no_dycore = .false.
+ z_tracer = .T.
+ read_increment = .F.
+ res_latlon_dynamics = "fv3_increment.nc"
+
+ do_schmidt = .true.
+ target_lat = 15.0
+ target_lon = 146.0
+ stretch_fac = 1.5
+ regional = .true.
+ bc_update_interval = 3
+ agrid_vel_rst = .false.
+
+ full_zs_filter = .F. !unreleased feature
+
+ nord_zs_filter = 4
+ n_zs_filter = 0 ! safety
+/
+
+&surf_map_nml
+ zero_ocean = .F.
+ cd4 = 0.12
+ cd2 = -1
+ n_del2_strong = 0
+ n_del2_weak = 2
+ n_del4 = 1
+ max_slope = 0.4
+ peak_fac = 1.
+/
+
+ &external_ic_nml
+ filtered_terrain = .true.
+ levp = 65
+ gfs_dwinds = .true.
+ checker_tr = .F.
+ nt_checker = 0
+/
+
+ &gfs_physics_nml
+ fhzero = 1.
+ ldiag3d = .false.
+ lradar = .true.
+ avg_max_length = 3600.
+ h2o_phys = .true.
+ fhcyc = 24.
+ nst_anl = .true.
+ use_ufo = .true.
+ pre_rad = .false.
+ ncld = 5
+ imp_physics = 11
+ pdfcld = .false.
+ fhswr = 3600.
+ fhlwr = 3600.
+ ialb = 1
+ iems = 1
+ IAER = 111
+ ico2 = 2
+ isubc_sw = 2
+ isubc_lw = 2
+ isol = 2
+ lwhtr = .true.
+ swhtr = .true.
+ cnvgwd = .false.
+ cal_pre = .false.
+ redrag = .true.
+ dspheat = .true.
+ hybedmf = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .false.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ cdmbgwd = 3.5, 0.01 ! NCEP default
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ debug = .false.
+ nstf_name = 2,0,0,0,0
+ iau_delthrs = 6
+ iaufhrs = 30
+ iau_inc_files = ''
+ shal_cnv = .false. !Shallow convection
+ do_deep = .false.
+ lgfdlmprad = .true.
+ effr_in = .true.
+/
+
+ &gfdl_cloud_microphysics_nml
+ sedi_transport = .false.
+ do_sedi_heat = .false.
+ rad_snow = .true.
+ rad_graupel = .true.
+ rad_rain = .true.
+ const_vi = .F.
+ const_vs = .F.
+ const_vg = .F.
+ const_vr = .F.
+ vi_max = 1.
+ vs_max = 2.
+ vg_max = 12.
+ vr_max = 12.
+ qi_lim = 1.
+ prog_ccn = .false.
+ do_qa = .true.
+ fast_sat_adj = .true.
+ tau_l2v = 180.
+ tau_v2l = 90.
+ tau_g2v = 900.
+ rthresh = 10.e-6 ! This is a key parameter for cloud water
+ dw_land = 0.16
+ dw_ocean = 0.10
+ ql_gen = 1.0e-3
+ ql_mlt = 1.0e-3
+ qi0_crt = 8.0E-5
+ qs0_crt = 1.0e-3
+ tau_i2s = 1000.
+ c_psaci = 0.05
+ c_pgacs = 0.01
+ rh_inc = 0.30
+ rh_inr = 0.30
+ rh_ins = 0.30
+ ccn_l = 300.
+ ccn_o = 100.
+ c_paut = 0.5
+ c_cracw = 0.8
+ use_ppm = .false.
+ use_ccn = .true.
+ mono_prof = .true.
+ z_slope_liq = .true.
+ z_slope_ice = .true.
+ de_ice = .false.
+ fix_negative = .true.
+ icloud_f = 1
+ mp_time = 90.
+/
+ &interpolator_nml
+ interp_method = 'conserve_great_circle'
+/
+
+&namsfc
+ FNALBC2 = "C768.facsf.tileX.nc",
+ FNALBC = "C768.snowfree_albedo.tileX.nc",
+ FNTG3C = "C768.substrate_temperature.tileX.nc",
+ FNVEGC = "C768.vegetation_greenness.tileX.nc",
+ FNVETC = "C768.vegetation_type.tileX.nc",
+ FNSOTC = "C768.soil_type.tileX.nc",
+ FNVMNC = "C768.vegetation_greenness.tileX.nc",
+ FNVMXC = "C768.vegetation_greenness.tileX.nc",
+ FNSLPC = "C768.slope_type.tileX.nc",
+ FNABSC = "C768.maximum_snow_albedo.tileX.nc",
+ FNGLAC = "global_glacier.2x2.grb",
+ FNMXIC = "global_maxice.2x2.grb",
+ FNTSFC = "RTGSST.1982.2012.monthly.clim.grb",
+ FNSNOC = "global_snoclim.1.875.grb",
+ FNZORC = "igbp"
+ FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb",
+ FNSMCC = "global_soilmgldas.t1534.3072.1536.grb",
+ FNMSKH = "seaice_newland.grb",
+ FNTSFA = "",
+ FNACNA = "",
+ FNSNOA = "",
+ LDEBUG =.true.,
+ FSMCL(2) = 99999
+ FSMCL(3) = 99999
+ FSMCL(4) = 99999
+ FTSFS = 90
+ FAISS = 99999
+ FSNOL = 99999
+ FSICL = 99999
+ FTSFL = 99999,
+ FAISL = 99999,
+ FVETL = 99999,
+ FSOTL = 99999,
+ FvmnL = 99999,
+ FvmxL = 99999,
+ FSLPL = 99999,
+ FABSL = 99999,
+ FSNOS = 99999,
+ FSICS = 99999,
+/
+&nam_stochy
+/
+&nam_sfcperts
+/
diff --git a/parm/input_sar_pr.nml b/parm/input_sar_pr.nml
new file mode 100644
index 000000000..dcd20bf3f
--- /dev/null
+++ b/parm/input_sar_pr.nml
@@ -0,0 +1,284 @@
+ &amip_interp_nml
+ interp_oi_sst = .true.
+ use_ncep_sst = .true.
+ use_ncep_ice = .false.
+ no_anom_sst = .false.
+ data_set = 'reynolds_oi',
+ date_out_of_range = 'climo',
+/
+
+ &atmos_model_nml
+ blocksize = 24
+ chksum_debug = .false.
+ dycore_only = .false.
+ fdiag = 1
+ avg_max_length = 3600.
+/
+
+&diag_manager_nml
+ prepend_date = .false.
+/
+
+ &fms_io_nml
+ checksum_required = .false.
+ max_files_r = 100,
+ max_files_w = 100,
+/
+
+ &fms_nml
+ clock_grain = 'ROUTINE',
+ domains_stack_size = 1800200,
+ print_memory_usage = .false.
+/
+
+ &fv_grid_nml
+ grid_file = 'INPUT/grid_spec.nc'
+/
+
+ &fv_core_nml
+ layout = 8,12
+ io_layout = 1,1
+ npx = 577
+ npy = 433
+ ntiles = 1,
+ npz = 64
+! grid_type = -1
+ make_nh = .T.
+ fv_debug = .F.
+ range_warn = .F.
+ reset_eta = .F.
+ n_sponge = 24
+ nudge_qv = .F.
+ tau = 5.
+ rf_cutoff = 20.e2
+ d2_bg_k1 = 0.20
+ d2_bg_k2 = 0.04
+ kord_tm = -11
+ kord_mt = 11
+ kord_wz = 11
+ kord_tr = 11
+ hydrostatic = .F.
+ phys_hydrostatic = .F.
+ use_hydro_pressure = .F.
+ beta = 0.
+ a_imp = 1.
+ p_fac = 0.1
+ k_split = 6
+ n_split = 6
+ nwat = 6
+ na_init = 1
+ d_ext = 0.0
+ dnats = 1
+ fv_sg_adj = 300
+ d2_bg = 0.
+ nord = 2
+ dddmp = 0.1
+ d4_bg = 0.15
+ vtdm4 = 0.075
+ delt_max = 0.008
+ ke_bg = 0.
+ do_vort_damp = .true.
+ external_ic = .T.
+ external_eta = .T.
+ gfs_phil = .false.
+ nggps_ic = .T.
+ mountain = .F.
+ ncep_ic = .F.
+ d_con = 1.0
+ hord_mt = 6
+ hord_vt = 6
+ hord_tm = 6
+ hord_dp = -6
+ hord_tr = 8
+ adjust_dry_mass = .F.
+ consv_te = 0.
+ do_sat_adj = .T.
+ consv_am = .F.
+ fill = .T.
+ dwind_2d = .F.
+ print_freq = 6
+ warm_start = .F.
+ no_dycore = .false.
+ z_tracer = .T.
+ read_increment = .F.
+ res_latlon_dynamics = "fv3_increment.nc"
+
+ do_schmidt = .true.
+ target_lat = 18.0
+ target_lon = -69.0
+ stretch_fac = 1.5
+ regional = .true.
+ bc_update_interval = 3
+ agrid_vel_rst = .false.
+
+ full_zs_filter = .F. !unreleased feature
+
+ nord_zs_filter = 4
+ n_zs_filter = 0 ! safety
+/
+
+&surf_map_nml
+ zero_ocean = .F.
+ cd4 = 0.12
+ cd2 = -1
+ n_del2_strong = 0
+ n_del2_weak = 2
+ n_del4 = 1
+ max_slope = 0.4
+ peak_fac = 1.
+/
+
+ &external_ic_nml
+ filtered_terrain = .true.
+ levp = 65
+ gfs_dwinds = .true.
+ checker_tr = .F.
+ nt_checker = 0
+/
+
+ &gfs_physics_nml
+ fhzero = 1.
+ ldiag3d = .false.
+ lradar = .true.
+ avg_max_length = 3600.
+ h2o_phys = .true.
+ fhcyc = 24.
+ nst_anl = .true.
+ use_ufo = .true.
+ pre_rad = .false.
+ ncld = 5
+ imp_physics = 11
+ pdfcld = .false.
+ fhswr = 3600.
+ fhlwr = 3600.
+ ialb = 1
+ iems = 1
+ IAER = 111
+ ico2 = 2
+ isubc_sw = 2
+ isubc_lw = 2
+ isol = 2
+ lwhtr = .true.
+ swhtr = .true.
+ cnvgwd = .false.
+ cal_pre = .false.
+ redrag = .true.
+ dspheat = .true.
+ hybedmf = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .false.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ cdmbgwd = 3.5, 0.01 ! NCEP default
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ debug = .false.
+ nstf_name = 2,0,0,0,0
+ iau_delthrs = 6
+ iaufhrs = 30
+ iau_inc_files = ''
+ shal_cnv = .false. !Shallow convection
+ do_deep = .false.
+ lgfdlmprad = .true.
+ effr_in = .true.
+/
+
+ &gfdl_cloud_microphysics_nml
+ sedi_transport = .false.
+ do_sedi_heat = .false.
+ rad_snow = .true.
+ rad_graupel = .true.
+ rad_rain = .true.
+ const_vi = .F.
+ const_vs = .F.
+ const_vg = .F.
+ const_vr = .F.
+ vi_max = 1.
+ vs_max = 2.
+ vg_max = 12.
+ vr_max = 12.
+ qi_lim = 1.
+ prog_ccn = .false.
+ do_qa = .true.
+ fast_sat_adj = .true.
+ tau_l2v = 180.
+ tau_v2l = 90.
+ tau_g2v = 900.
+ rthresh = 10.e-6 ! This is a key parameter for cloud water
+ dw_land = 0.16
+ dw_ocean = 0.10
+ ql_gen = 1.0e-3
+ ql_mlt = 1.0e-3
+ qi0_crt = 8.0E-5
+ qs0_crt = 1.0e-3
+ tau_i2s = 1000.
+ c_psaci = 0.05
+ c_pgacs = 0.01
+ rh_inc = 0.30
+ rh_inr = 0.30
+ rh_ins = 0.30
+ ccn_l = 300.
+ ccn_o = 100.
+ c_paut = 0.5
+ c_cracw = 0.8
+ use_ppm = .false.
+ use_ccn = .true.
+ mono_prof = .true.
+ z_slope_liq = .true.
+ z_slope_ice = .true.
+ de_ice = .false.
+ fix_negative = .true.
+ icloud_f = 1
+ mp_time = 90.
+/
+ &interpolator_nml
+ interp_method = 'conserve_great_circle'
+/
+
+&namsfc
+ FNALBC2 = "C768.facsf.tileX.nc",
+ FNALBC = "C768.snowfree_albedo.tileX.nc",
+ FNTG3C = "C768.substrate_temperature.tileX.nc",
+ FNVEGC = "C768.vegetation_greenness.tileX.nc",
+ FNVETC = "C768.vegetation_type.tileX.nc",
+ FNSOTC = "C768.soil_type.tileX.nc",
+ FNVMNC = "C768.vegetation_greenness.tileX.nc",
+ FNVMXC = "C768.vegetation_greenness.tileX.nc",
+ FNSLPC = "C768.slope_type.tileX.nc",
+ FNABSC = "C768.maximum_snow_albedo.tileX.nc",
+ FNGLAC = "global_glacier.2x2.grb",
+ FNMXIC = "global_maxice.2x2.grb",
+ FNTSFC = "RTGSST.1982.2012.monthly.clim.grb",
+ FNSNOC = "global_snoclim.1.875.grb",
+ FNZORC = "igbp"
+ FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb",
+ FNSMCC = "global_soilmgldas.t1534.3072.1536.grb",
+ FNMSKH = "seaice_newland.grb",
+ FNTSFA = "",
+ FNACNA = "",
+ FNSNOA = "",
+ LDEBUG =.true.,
+ FSMCL(2) = 99999
+ FSMCL(3) = 99999
+ FSMCL(4) = 99999
+ FTSFS = 90
+ FAISS = 99999
+ FSNOL = 99999
+ FSICL = 99999
+ FTSFL = 99999,
+ FAISL = 99999,
+ FVETL = 99999,
+ FSOTL = 99999,
+ FvmnL = 99999,
+ FvmxL = 99999,
+ FSLPL = 99999,
+ FABSL = 99999,
+ FSNOS = 99999,
+ FSICS = 99999,
+/
+&nam_stochy
+/
+&nam_sfcperts
+/
diff --git a/parm/model_configure_sar.tmp_ak b/parm/model_configure_sar.tmp_ak
new file mode 100644
index 000000000..8f17e9c91
--- /dev/null
+++ b/parm/model_configure_sar.tmp_ak
@@ -0,0 +1,58 @@
+print_esmf: .false.
+total_member: 1
+PE_MEMBER01: NTASKS
+start_year: YR
+start_month: MN
+start_day: DY
+start_hour: H_R
+start_minute: 0
+start_second: 0
+nhours_fcst: NHRS
+RUN_CONTINUE: .false.
+ENS_SPS: .false.
+dt_atmos: 90
+cpl: .false.
+calendar: 'julian'
+memuse_verbose: .false.
+atmos_nthreads: NTHRD
+use_hyper_thread: .false.
+ncores_per_node: NCNODE
+debug_affinity: .true.
+restart_interval: 12
+output_1st_tstep_rst: .false.
+
+quilting: .true.
+write_groups: 2
+write_tasks_per_group: 24
+num_files: 2
+filename_base: 'dyn''phy'
+output_file: 'netcdf'
+write_nemsioflip: .false.
+write_fsyncflag: .false.
+
+output_grid: 'rotated_latlon'
+cen_lon: -153.0 # central longitude
+cen_lat: 61.0 # central latitude
+lon1: -18.0 # longitude of lower-left point in rotated coordinate system (in degrees)
+lat1: -14.79 # latitude of lower-left ...
+lon2: 18.0 # longitude of upper-right ...
+lat2: 14.79 # latitude of upper-right ...
+dlon: 0.03
+dlat: 0.03
+
+#output_grid: 'lambert_conformal'
+#cen_lon: -97.5 # central longitude
+#cen_lat: 38.5 # central latitude
+#stdlat1: 38.5
+#stdlat2: 38.5
+#nx: 1799 # number of points along x-axis.
+#ny: 1059 # number of points along y-axis.
+#lon1: -122.719528 # longitude of lower-left point (in degrees)
+#lat1: 21.138123 # latitude of lower-left point (in degrees)
+#dx: 3000.0 # x-direction grid length
+#dy: 3000.0 # y-direction grid length
+
+nfhout: 1
+nfhmax_hf: 60
+nfhout_hf: 1
+nsout: -1
diff --git a/parm/model_configure_sar.tmp_conus b/parm/model_configure_sar.tmp_conus
index b0aae0ec2..7f4d1c09e 100755
--- a/parm/model_configure_sar.tmp_conus
+++ b/parm/model_configure_sar.tmp_conus
@@ -22,8 +22,8 @@ restart_interval: 12
output_1st_tstep_rst: .false.
quilting: .true.
-write_groups: 3
-write_tasks_per_group: 48
+write_groups: _WG_
+write_tasks_per_group: _WTPG_
num_files: 2
filename_base: 'dyn''phy'
output_file: 'netcdf'
diff --git a/parm/model_configure_sar.tmp_guam b/parm/model_configure_sar.tmp_guam
new file mode 100644
index 000000000..f807b16bf
--- /dev/null
+++ b/parm/model_configure_sar.tmp_guam
@@ -0,0 +1,58 @@
+print_esmf: .false.
+total_member: 1
+PE_MEMBER01: NTASKS
+start_year: YR
+start_month: MN
+start_day: DY
+start_hour: H_R
+start_minute: 0
+start_second: 0
+nhours_fcst: NHRS
+RUN_CONTINUE: .false.
+ENS_SPS: .false.
+dt_atmos: 90
+cpl: .false.
+calendar: 'julian'
+memuse_verbose: .false.
+atmos_nthreads: NTHRD
+use_hyper_thread: .false.
+ncores_per_node: NCNODE
+debug_affinity: .true.
+restart_interval: 12
+output_1st_tstep_rst: .false.
+
+quilting: .true.
+write_groups: 1
+write_tasks_per_group: 12
+num_files: 2
+filename_base: 'dyn''phy'
+output_file: 'netcdf'
+write_nemsioflip: .false.
+write_fsyncflag: .false.
+
+output_grid: 'rotated_latlon'
+cen_lon: 146.0 # central longitude
+cen_lat: 15.0 # central latitude
+lon1: -5.6 # longitude of lower-left point in rotated coordinate system (in degrees)
+lat1: -4.8 # latitude of lower-left ...
+lon2: 5.6 # longitude of upper-right ...
+lat2: 4.8 # latitude of upper-right ...
+dlon: 0.025
+dlat: 0.025
+
+#output_grid: 'lambert_conformal'
+#cen_lon: -97.5 # central longitude
+#cen_lat: 38.5 # central latitude
+#stdlat1: 38.5
+#stdlat2: 38.5
+#nx: 1799 # number of points along x-axis.
+#ny: 1059 # number of points along y-axis.
+#lon1: -122.719528 # longitude of lower-left point (in degrees)
+#lat1: 21.138123 # latitude of lower-left point (in degrees)
+#dx: 3000.0 # x-direction grid length
+#dy: 3000.0 # y-direction grid length
+
+nfhout: 1
+nfhmax_hf: 60
+nfhout_hf: 1
+nsout: -1
diff --git a/parm/model_configure_sar.tmp_pr b/parm/model_configure_sar.tmp_pr
new file mode 100644
index 000000000..535b2b509
--- /dev/null
+++ b/parm/model_configure_sar.tmp_pr
@@ -0,0 +1,58 @@
+print_esmf: .false.
+total_member: 1
+PE_MEMBER01: NTASKS
+start_year: YR
+start_month: MN
+start_day: DY
+start_hour: H_R
+start_minute: 0
+start_second: 0
+nhours_fcst: NHRS
+RUN_CONTINUE: .false.
+ENS_SPS: .false.
+dt_atmos: 90
+cpl: .false.
+calendar: 'julian'
+memuse_verbose: .false.
+atmos_nthreads: NTHRD
+use_hyper_thread: .false.
+ncores_per_node: NCNODE
+debug_affinity: .true.
+restart_interval: 12
+output_1st_tstep_rst: .false.
+
+quilting: .true.
+write_groups: 1
+write_tasks_per_group: 12
+num_files: 2
+filename_base: 'dyn''phy'
+output_file: 'netcdf'
+write_nemsioflip: .false.
+write_fsyncflag: .false.
+
+output_grid: 'rotated_latlon'
+cen_lon: -69.0 # central longitude
+cen_lat: 18.0 # central latitude
+lon1: -7.8 # longitude of lower-left point in rotated coordinate system (in degrees)
+lat1: -5.2 # latitude of lower-left ...
+lon2: 7.8 # longitude of upper-right ...
+lat2: 5.2 # latitude of upper-right ...
+dlon: 0.025
+dlat: 0.025
+
+#output_grid: 'lambert_conformal'
+#cen_lon: -97.5 # central longitude
+#cen_lat: 38.5 # central latitude
+#stdlat1: 38.5
+#stdlat2: 38.5
+#nx: 1799 # number of points along x-axis.
+#ny: 1059 # number of points along y-axis.
+#lon1: -122.719528 # longitude of lower-left point (in degrees)
+#lat1: 21.138123 # latitude of lower-left point (in degrees)
+#dx: 3000.0 # x-direction grid length
+#dy: 3000.0 # y-direction grid length
+
+nfhout: 1
+nfhmax_hf: 60
+nfhout_hf: 1
+nsout: -1
diff --git a/rocoto/regional_workflow.xml.in b/rocoto/regional_workflow.xml.in
index 8dcc62f9f..78d748a37 100644
--- a/rocoto/regional_workflow.xml.in
+++ b/rocoto/regional_workflow.xml.in
@@ -184,7 +184,6 @@
- &COMINgfs;/gfs.@Y@m@d/@H/gfs.t@Hz.atmf000.nemsio
&COMINgfs;/gfs.@Y@m@d/@H/gfs.t@Hz.atmanl.nemsio
&COMINgfs;/gfs.@Y@m@d/@H/gfs.t@Hz.sfcanl.nemsio
diff --git a/rocoto/rocoto_pre_job.sh b/rocoto/rocoto_pre_job.sh
index 256647bd9..33840ea06 100755
--- a/rocoto/rocoto_pre_job.sh
+++ b/rocoto/rocoto_pre_job.sh
@@ -11,8 +11,6 @@ elif [ "$machine" = "wcoss_cray" ] ; then
. /opt/modules/default/init/sh
elif [ "$machine" = "hera" ] ; then
. /apps/lmod/lmod/init/sh
-elif [ "$machine" = "theia" ] ; then
- . /apps/lmod/lmod/init/sh
elif [ "$machine" = "jet" ] ; then
. /apps/lmod/lmod/init/sh
fi
diff --git a/rocoto/run_regional_hera.sh b/rocoto/run_regional_hera.sh
index c8983432e..108fda66c 100755
--- a/rocoto/run_regional_hera.sh
+++ b/rocoto/run_regional_hera.sh
@@ -22,12 +22,12 @@ CPU_ACCOUNT=fv3-cam
# Experiment name
EXPT=fv3sartest
# First, last, and interval of the workflow cycles
-CYCLE_YMDH_BEG="2019082700"
-CYCLE_YMDH_END="2019082700"
+CYCLE_YMDH_BEG="2019093000"
+CYCLE_YMDH_END="2019093000"
CYCLE_INT_HH="06"
GET_INPUT=NO
-COMINgfs=/scratch2/NCEPDEV/fv3-cam/emc.campara/fv3-input/COMGFS
+COMINgfs=/scratch2/NCEPDEV/fv3-cam/noscrub/Eric.Rogers/prfv3rt1
STMP=/scratch2/NCEPDEV/stmp3/${USER}/${EXPT}
PTMP=/scratch2/NCEPDEV/stmp3/${USER}/${EXPT}
diff --git a/rocoto/run_regional_theia.sh b/rocoto/run_regional_theia.sh
deleted file mode 100755
index 9182f4f64..000000000
--- a/rocoto/run_regional_theia.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh -l
-
-set -x
-
-# Home directory of the regional_workflow package
-
-HOMEfv3=/scratch4/NCEPDEV/fv3-cam/noscrub/${USER}/regional_workflow
-
-cd ${HOMEfv3}/rocoto
-
-# if want a non-CONUS domain, export DOMAIN here
-
-# export DOMAIN=pr
-
-source ./config.workflow.defaults
-
-# Machine and project account
-machine=theia
-SITE_FILE="sites/${machine}.ent"
-CPU_ACCOUNT=fv3-cam
-
-# Experiment name
-EXPT=fv3sartest
-# First, last, and interval of the workflow cycles
-CYCLE_YMDH_BEG="2019050200"
-CYCLE_YMDH_END="2019050200"
-CYCLE_INT_HH="06"
-
-GET_INPUT=NO
-COMINgfs=/scratch3/NCEPDEV/hwrf/noscrub/hafs-input/COMGFS
-STMP=/scratch4/NCEPDEV/stmp3/${USER}/${EXPT}
-PTMP=/scratch4/NCEPDEV/stmp3/${USER}/${EXPT}
-
-# The workflow files of the experiment
-expxml=${EXPT}_${CYCLE_YMDH_BEG}.xml
-expdb=${EXPT}_${CYCLE_YMDH_BEG}.db
-
-# Generate the workflow definition file by parsing regional_workflow.xml.in
-sed -e "s|@\[EXPT.*\]|${EXPT}|g" \
- -e "s|@\[GTYPE.*\]|${GTYPE}|g" \
- -e "s|@\[DOMAIN.*\]|${DOMAIN}|g" \
- -e "s|@\[CYCLE_YMDH_BEG.*\]|${CYCLE_YMDH_BEG}|g" \
- -e "s|@\[CYCLE_YMDH_END.*\]|${CYCLE_YMDH_END}|g" \
- -e "s|@\[CYCLE_INT_HH.*\]|${CYCLE_INT_HH}|g" \
- -e "s|@\[USER.*\]|${USER}|g" \
- -e "s|@\[CPU_ACCOUNT.*\]|${CPU_ACCOUNT}|g" \
- -e "s|@\[SITE_FILE.*\]|${SITE_FILE}|g" \
- -e "s|@\[HOMEfv3.*\]|${HOMEfv3}|g" \
- -e "s|@\[PTMP.*\]|${PTMP}|g" \
- -e "s|@\[STMP.*\]|${STMP}|g" \
- -e "s|@\[MAKE_GRID_OROG.*\]|${MAKE_GRID_OROG}|g" \
- -e "s|@\[MAKE_SFC_CLIMO.*\]|${MAKE_SFC_CLIMO}|g" \
- -e "s|@\[GET_INPUT.*\]|${GET_INPUT}|g" \
- -e "s|@\[COMINgfs.*\]|${COMINgfs}|g" \
- regional_workflow.xml.in \
- > ${expxml}
-
-# Run the workflow for the experiment
-rocotorun -v 10 -w ${expxml} -d ${expdb}
-
-echo 'job done'
-
diff --git a/rocoto/sites/hera.ent b/rocoto/sites/hera.ent
index 882279f5c..be83e6859 100644
--- a/rocoto/sites/hera.ent
+++ b/rocoto/sites/hera.ent
@@ -23,24 +23,24 @@
103:00:00">
- 1:ppn=1:tpp=24TOTAL_TASKS1OMP_THREADS2400:30:00">
+ 4:ppn=3TOTAL_TASKS12NCTSK3OMP_THREADS100:30:00">
- 20:ppn=1:tpp=24TOTAL_TASKS20OMP_THREADS2400:30:00">
+ 4:ppn=3TOTAL_TASKS12OMP_THREADS101:30:00">
- NCTSK20OMP_THREADS202:00:00">
+ NCTSK20NCNODE40OMP_THREADS202:00:00">
7:ppn=12:tpp=2TOTAL_TASKS84&FORECAST_EXTRA;">
- 71:ppn=20:tpp=2TOTAL_TASKS1404&FORECAST_EXTRA;">
+ 71:ppn=20:tpp=2TOTAL_TASKS1404TASK_X24TASK_Y54WG2WTPG54&FORECAST_EXTRA;">
68:ppn=12:tpp=2TOTAL_TASKS816&FORECAST_EXTRA;">
10:ppn=12:tpp=2TOTAL_TASKS120&FORECAST_EXTRA;">
7:ppn=12:tpp=2TOTAL_TASKS84&FORECAST_EXTRA;">
- NCTSK24OMP_THREADS100:20:00">
- 3:ppn=24TOTAL_TASKS72&POST_EXTRA;">
- 2:ppn=24TOTAL_TASKS48&POST_EXTRA;">
- 1:ppn=24TOTAL_TASKS24&POST_EXTRA;">
- 1:ppn=24TOTAL_TASKS24&POST_EXTRA;">
- 1:ppn=24TOTAL_TASKS24&POST_EXTRA;">
+ NCTSK12OMP_THREADS100:30:00">
+ 3:ppn=12TOTAL_TASKS72&POST_EXTRA;">
+ 2:ppn=12TOTAL_TASKS48&POST_EXTRA;">
+ 1:ppn=12TOTAL_TASKS24&POST_EXTRA;">
+ 1:ppn=12TOTAL_TASKS24&POST_EXTRA;">
+ 1:ppn=12TOTAL_TASKS24&POST_EXTRA;">
15:ppn=24TOTAL_TASKS360&POST_EXTRA;">
5:ppn=24TOTAL_TASKS120&POST_EXTRA;">
diff --git a/rocoto/sites/theia.ent b/rocoto/sites/theia.ent
deleted file mode 100644
index fda62afe5..000000000
--- a/rocoto/sites/theia.ent
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- 24">
- 24">
- 1:ppn=1:tpp=24">
-
- 1G">
-
- PURE_OPENMP_THREADS&THREADS;OMP_NUM_THREADS&THREADS;KMP_NUM_THREADS&THREADS;">
-
- 1:ppn=24TOTAL_TASKS4OMP_THREADS600:30:00">
-
- 1:ppn=24TOTAL_TASKS1OMP_THREADS100:30:00">
-
- 103:00:00">
-
- 1:ppn=1:tpp=24TOTAL_TASKS1OMP_THREADS2400:30:00">
-
- 20:ppn=1:tpp=24TOTAL_TASKS20OMP_THREADS2400:30:00">
-
-
- NCTSK12OMP_THREADS202:40:00">
- 7:ppn=12:tpp=2TOTAL_TASKS84&FORECAST_EXTRA;">
- 76:ppn=12:tpp=2TOTAL_TASKS912&FORECAST_EXTRA;">
- 68:ppn=12:tpp=2TOTAL_TASKS816&FORECAST_EXTRA;">
- 10:ppn=12:tpp=2TOTAL_TASKS120&FORECAST_EXTRA;">
- 7:ppn=12:tpp=2TOTAL_TASKS84&FORECAST_EXTRA;">
-
- NCTSK24OMP_THREADS100:20:00">
- 3:ppn=24TOTAL_TASKS72&POST_EXTRA;">
- 2:ppn=24TOTAL_TASKS48&POST_EXTRA;">
- 1:ppn=24TOTAL_TASKS24&POST_EXTRA;">
- 1:ppn=24TOTAL_TASKS24&POST_EXTRA;">
- 1:ppn=24TOTAL_TASKS24&POST_EXTRA;">
-
- 15:ppn=24TOTAL_TASKS360&POST_EXTRA;">
- 5:ppn=24TOTAL_TASKS120&POST_EXTRA;">
- 2:ppn=24TOTAL_TASKS48&POST_EXTRA;">
- 2:ppn=24TOTAL_TASKS48&POST_EXTRA;">
- 2:ppn=24TOTAL_TASKS48&POST_EXTRA;">
-
- 15G03:00:00">
-
- 100:10:00">
-
diff --git a/rocoto/sites/wcoss_cray.ent b/rocoto/sites/wcoss_cray.ent
index 3a7f4f829..b3a95c4dd 100644
--- a/rocoto/sites/wcoss_cray.ent
+++ b/rocoto/sites/wcoss_cray.ent
@@ -30,7 +30,7 @@
NCTSK12OMP_THREADS202:40:00">
6:ppn=12:tpp=2TOTAL_TASKS72&FORECAST_EXTRA;">
- 76:ppn=12:tpp=2TOTAL_TASKS912&FORECAST_EXTRA;">
+ 76:ppn=12:tpp=2TOTAL_TASKS912TASK_X16TASK_Y48WG3WTPG48&FORECAST_EXTRA;">
60:ppn=12:tpp=2TOTAL_TASKS720&FORECAST_EXTRA;">
9:ppn=12:tpp=2TOTAL_TASKS108&FORECAST_EXTRA;">
6:ppn=12:tpp=2TOTAL_TASKS72&FORECAST_EXTRA;">
diff --git a/rocoto/sites/wcoss_dell_p3.ent b/rocoto/sites/wcoss_dell_p3.ent
index 43bd761ec..fcb444729 100644
--- a/rocoto/sites/wcoss_dell_p3.ent
+++ b/rocoto/sites/wcoss_dell_p3.ent
@@ -28,11 +28,11 @@
20:ppn=1TOTAL_TASKS480OMP_THREADS100:30:00-R affinity[core]">
NCTSK12OMP_THREADS201:30:00-R affinity[core\(2\):distribute=balance]">
- 76:ppn=12:tpp=1TOTAL_TASKS912&FORECAST_EXTRA;">
- 60:ppn=12:tpp=1TOTAL_TASKS720&FORECAST_EXTRA;">
- 6:ppn=12:tpp=1TOTAL_TASKS72&FORECAST_EXTRA;">
- 9:ppn=12:tpp=1TOTAL_TASKS108&FORECAST_EXTRA;">
- 6:ppn=12:tpp=1TOTAL_TASKS72&FORECAST_EXTRA;">
+ 76:ppn=12:tpp=2TOTAL_TASKS912TASK_X16TASK_Y48WG3WTPG48&FORECAST_EXTRA;">
+ 60:ppn=12:tpp=2TOTAL_TASKS720&FORECAST_EXTRA;">
+ 6:ppn=12:tpp=2TOTAL_TASKS72&FORECAST_EXTRA;">
+ 9:ppn=12:tpp=2TOTAL_TASKS108&FORECAST_EXTRA;">
+ 6:ppn=12:tpp=2TOTAL_TASKS72&FORECAST_EXTRA;">
NCTSK14OMP_THREADS100:20:00-R affinity[core]">
2:ppn=14TOTAL_TASKS28&POST_EXTRA;">
diff --git a/scripts/exregional_forecast.sh b/scripts/exregional_forecast.sh
index 29ba9f3ab..bcf42d61d 100755
--- a/scripts/exregional_forecast.sh
+++ b/scripts/exregional_forecast.sh
@@ -116,7 +116,11 @@ if [ $tmmark = tm00 ] ; then
cp ${PARMfv3}/suite_${CCPP_SUITE}.xml suite_${CCPP_SUITE}.xml
else
cp ${PARMfv3}/input_sar_${dom}.nml input.nml
- if [ ! -e input.nml ] ; then
+ if [ $dom = conus ] ; then
+ mv input.nml input.nml.tmp
+ cat input.nml.tmp | \
+ sed s/_TASK_X_/${TASK_X}/ | sed s/_TASK_Y_/${TASK_Y}/ > input.nml
+ elif [ ! -e input.nml ] ; then
echo "FATAL ERROR: no input_sar_${dom}.nml in PARMfv3 directory. Create one!"
fi
fi
@@ -161,7 +165,8 @@ cat temp diag_table.tmp > diag_table
cat model_configure.tmp | sed s/NTASKS/$TOTAL_TASKS/ | sed s/YR/$yr/ | \
sed s/MN/$mn/ | sed s/DY/$dy/ | sed s/H_R/$hr/ | \
sed s/NHRS/$NFCSTHRS/ | sed s/NTHRD/$OMP_NUM_THREADS/ | \
- sed s/NCNODE/$NCNODE/ | sed s/NRESTART/$NRST/ > model_configure
+ sed s/NCNODE/$NCNODE/ | sed s/NRESTART/$NRST/ | \
+ sed s/_WG_/${WG}/ | sed s/_WTPG_/${WTPG}/ > model_configure
#-----------------------------------------
# Run the forecast
diff --git a/scripts/exregional_make_bc.sh b/scripts/exregional_make_bc.sh
new file mode 100755
index 000000000..21783f0dc
--- /dev/null
+++ b/scripts/exregional_make_bc.sh
@@ -0,0 +1,100 @@
+#!/bin/sh
+############################################################################
+# Script name: exfv3cam_sar_chgres.sh
+# Script description: Makes ICs on fv3 stand-alone regional grid
+# using FV3GFS initial conditions.
+# Script history log:
+# 1) 2016-09-30 Fanglin Yang
+# 2) 2017-02-08 Fanglin Yang and George Gayno
+# Use the new CHGRES George Gayno developed.
+# 3) 2019-05-02 Ben Blake
+# Created exfv3cam_sar_chgres.sh script
+# from global_chgres_driver.sh
+############################################################################
+set -ax
+
+# gtype = regional
+echo "creating standalone regional BCs"
+export ntiles=1
+export TILE_NUM=7
+
+#
+# set the links to use the 4 halo grid and orog files
+# these are necessary for creating the boundary data
+#
+ln -sf $FIXsar/${CASE}_grid.tile7.halo4.nc $FIXsar/${CASE}_grid.tile7.nc
+ln -sf $FIXsar/${CASE}_oro_data.tile7.halo4.nc $FIXsar/${CASE}_oro_data.tile7.nc
+ln -sf $FIXsar/${CASE}.vegetation_greenness.tile7.halo4.nc $FIXsar/${CASE}.vegetation_greenness.tile7.nc
+ln -sf $FIXsar/${CASE}.soil_type.tile7.halo4.nc $FIXsar/${CASE}.soil_type.tile7.nc
+ln -sf $FIXsar/${CASE}.slope_type.tile7.halo4.nc $FIXsar/${CASE}.slope_type.tile7.nc
+ln -sf $FIXsar/${CASE}.substrate_temperature.tile7.halo4.nc $FIXsar/${CASE}.substrate_temperature.tile7.nc
+ln -sf $FIXsar/${CASE}.facsf.tile7.halo4.nc $FIXsar/${CASE}.facsf.tile7.nc
+ln -sf $FIXsar/${CASE}.maximum_snow_albedo.tile7.halo4.nc $FIXsar/${CASE}.maximum_snow_albedo.tile7.nc
+ln -sf $FIXsar/${CASE}.snowfree_albedo.tile7.halo4.nc $FIXsar/${CASE}.snowfree_albedo.tile7.nc
+ln -sf $FIXsar/${CASE}.vegetation_type.tile7.halo4.nc $FIXsar/${CASE}.vegetation_type.tile7.nc
+
+#
+# create namelist and run chgres cube
+#
+cp ${CHGRESEXEC} .
+
+# NHRS = lentgh of free forecast
+# NHRSda = length of DA cyce forecast (always 1-h)
+if [ $tmmark = tm00 ]; then
+ hour=3
+ end_hour=$NHRS
+ hour_inc=3
+else
+ hour=0
+ end_hour=$NHRSda
+ hour_inc=1
+fi
+
+while (test "$hour" -le "$end_hour")
+ do
+ if [ $hour -lt 10 ]; then
+ hour_name='00'$hour
+ elif [ $hour -lt 100 ]; then
+ hour_name='0'$hour
+ else
+ hour_name=$hour
+ fi
+
+cat <fort.41
+&config
+ mosaic_file_target_grid="$FIXsar/${CASE}_mosaic.nc"
+ fix_dir_target_grid="$FIXsar"
+ orog_dir_target_grid="$FIXsar"
+ orog_files_target_grid="${CASE}_oro_data.tile7.halo4.nc"
+ vcoord_file_target_grid="${FIXam}/global_hyblev.l${LEVS}.txt"
+ mosaic_file_input_grid="NULL"
+ orog_dir_input_grid="NULL"
+ orog_files_input_grid="NULL"
+ data_dir_input_grid="${INIDIR}"
+ atm_files_input_grid="gfs.t${cyc}z.atmf${hour_name}.nemsio"
+ sfc_files_input_grid="gfs.t${cyc}z.sfcanl.nemsio"
+ cycle_mon=$month
+ cycle_day=$day
+ cycle_hour=$cyc
+ convert_atm=.true.
+ convert_sfc=.false.
+ convert_nst=.false.
+ input_type="gaussian"
+ tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
+ tracers_input="spfh","clwmr","o3mr","icmr","rwmr","snmr","grle"
+ regional=${REGIONAL}
+ halo_bndy=${HALO}
+/
+EOF
+
+ time ${APRUNC} -l ./regional_chgres_cube.x
+ hour=`expr $hour + $hour_inc`
+
+#
+# move output files to save directory
+#
+ mv gfs.bndy.nc $INPdir/gfs_bndy.tile7.${hour_name}.nc
+done
+
+
+exit 0
diff --git a/scripts/exregional_make_ic.sh b/scripts/exregional_make_ic.sh
new file mode 100755
index 000000000..f86ba040f
--- /dev/null
+++ b/scripts/exregional_make_ic.sh
@@ -0,0 +1,87 @@
+#!/bin/sh
+############################################################################
+# Script name: exfv3cam_sar_chgres.sh
+# Script description: Makes ICs on fv3 stand-alone regional grid
+# using FV3GFS initial conditions.
+# Script history log:
+# 1) 2016-09-30 Fanglin Yang
+# 2) 2017-02-08 Fanglin Yang and George Gayno
+# Use the new CHGRES George Gayno developed.
+# 3) 2019-05-02 Ben Blake
+# Created exfv3cam_sar_chgres.sh script
+# from global_chgres_driver.sh
+############################################################################
+set -ax
+
+# gtype = regional
+echo "creating standalone regional ICs"
+export ntiles=1
+export TILE_NUM=7
+
+if [ $tmmark = tm00 ] ; then
+ # input data is FV3GFS (ictype is 'pfv3gfs')
+ export ANLDIR=$INIDIR
+fi
+if [ $tmmark = tm12 ] ; then
+ # input data is FV3GFS (ictype is 'pfv3gfs')
+ export ANLDIR=$INIDIRtm12
+fi
+
+#
+# set the links to use the 4 halo grid and orog files
+# these are necessary for creating the boundary data
+#
+ln -sf $FIXsar/${CASE}_grid.tile7.halo4.nc $FIXsar/${CASE}_grid.tile7.nc
+ln -sf $FIXsar/${CASE}_oro_data.tile7.halo4.nc $FIXsar/${CASE}_oro_data.tile7.nc
+ln -sf $FIXsar/${CASE}.vegetation_greenness.tile7.halo4.nc $FIXsar/${CASE}.vegetation_greenness.tile7.nc
+ln -sf $FIXsar/${CASE}.soil_type.tile7.halo4.nc $FIXsar/${CASE}.soil_type.tile7.nc
+ln -sf $FIXsar/${CASE}.slope_type.tile7.halo4.nc $FIXsar/${CASE}.slope_type.tile7.nc
+ln -sf $FIXsar/${CASE}.substrate_temperature.tile7.halo4.nc $FIXsar/${CASE}.substrate_temperature.tile7.nc
+ln -sf $FIXsar/${CASE}.facsf.tile7.halo4.nc $FIXsar/${CASE}.facsf.tile7.nc
+ln -sf $FIXsar/${CASE}.maximum_snow_albedo.tile7.halo4.nc $FIXsar/${CASE}.maximum_snow_albedo.tile7.nc
+ln -sf $FIXsar/${CASE}.snowfree_albedo.tile7.halo4.nc $FIXsar/${CASE}.snowfree_albedo.tile7.nc
+ln -sf $FIXsar/${CASE}.vegetation_type.tile7.halo4.nc $FIXsar/${CASE}.vegetation_type.tile7.nc
+
+#
+# create namelist and run chgres cube
+#
+cp ${CHGRESEXEC} .
+cat <fort.41
+&config
+ mosaic_file_target_grid="$FIXsar/${CASE}_mosaic.nc"
+ fix_dir_target_grid="$FIXsar"
+ orog_dir_target_grid="$FIXsar"
+ orog_files_target_grid="${CASE}_oro_data.tile7.halo4.nc"
+ vcoord_file_target_grid="${FIXam}/global_hyblev.l${LEVS}.txt"
+ mosaic_file_input_grid="NULL"
+ orog_dir_input_grid="NULL"
+ orog_files_input_grid="NULL"
+ data_dir_input_grid="${ANLDIR}"
+ atm_files_input_grid="gfs.t${cyc}z.atmanl.nemsio"
+ sfc_files_input_grid="gfs.t${cyc}z.sfcanl.nemsio"
+ cycle_mon=$month
+ cycle_day=$day
+ cycle_hour=$cyc
+ convert_atm=.true.
+ convert_sfc=.true.
+ convert_nst=.true.
+ input_type="gaussian"
+ tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
+ tracers_input="spfh","clwmr","o3mr","icmr","rwmr","snmr","grle"
+ regional=${REGIONAL}
+ halo_bndy=${HALO}
+/
+EOF
+
+time ${APRUNC} -l ./regional_chgres_cube.x
+
+#
+# move output files to save directory
+#
+mv gfs_ctrl.nc $INPdir/.
+mv gfs.bndy.nc $INPdir/gfs_bndy.tile7.000.nc
+mv out.atm.tile1.nc $INPdir/gfs_data.tile7.nc
+mv out.sfc.tile1.nc $INPdir/sfc_data.tile7.nc
+
+
+exit 0
diff --git a/scripts/exregional_make_ic_bc.sh b/scripts/exregional_make_ic_bc.sh
deleted file mode 120000
index df4b65c5a..000000000
--- a/scripts/exregional_make_ic_bc.sh
+++ /dev/null
@@ -1 +0,0 @@
-exregional_make_ic_bc_old.sh
\ No newline at end of file
diff --git a/scripts/exregional_make_ic_bc_new.sh b/scripts/exregional_make_ic_bc_new.sh
deleted file mode 100755
index fc6574369..000000000
--- a/scripts/exregional_make_ic_bc_new.sh
+++ /dev/null
@@ -1,550 +0,0 @@
-#!/bin/bash -l
-#
-#-----------------------------------------------------------------------
-#
-# This script generates:
-#
-# 1) A NetCDF initial condition (IC) file on a regional grid for the
-# date/time on which the analysis files in the directory specified by
-# INIDIR are valid. Note that this file does not include data in the
-# halo of this regional grid (that data is found in the boundary con-
-# dition (BC) files).
-#
-# 2) A NetCDF surface file on the regional grid. As with the IC file,
-# this file does not include data in the halo.
-#
-# 3) A NetCDF boundary condition (BC) file containing data on the halo
-# of the regional grid at the initial time (i.e. at the same time as
-# the one at which the IC file is valid).
-#
-# 4) A NetCDF "control" file named gfs_ctrl.nc that contains infor-
-# mation on the vertical coordinate and the number of tracers for
-# which initial and boundary conditions are provided.
-#
-# All four of these NetCDF files are placed in the directory specified
-# by WORKDIR_ICSLBCS_CDATE, defined as
-#
-# WORKDIR_ICSLBCS_CDATE="$WORKDIR_ICSLBCS/$CDATE"
-#
-# where CDATE is the externally specified starting date and cycle hour
-# of the current forecast.
-#
-#-----------------------------------------------------------------------
-
-#
-#-----------------------------------------------------------------------
-#
-# Source the variable definitions script.
-#
-#-----------------------------------------------------------------------
-#
-. $SCRIPT_VAR_DEFNS_FP
-
-. $HOMEfv3/jobs/JFV3CAM_SAR_ENVIR
-COMOUT=${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}
-
-#
-#-----------------------------------------------------------------------
-#
-# Source function definition files.
-#
-#-----------------------------------------------------------------------
-#
-. $USHDIR/source_funcs.sh
-#
-#-----------------------------------------------------------------------
-#
-# Save current shell options (in a global array). Then set new options
-# for this script/function.
-#
-#-----------------------------------------------------------------------
-#
-{ save_shell_opts; set -u -x; } > /dev/null 2>&1
-#
-#-----------------------------------------------------------------------
-#
-# Set the name of and create the directory in which the output from this
-# script will be placed (if it doesn't already exist).
-#
-#-----------------------------------------------------------------------
-#
-if [ $RUN_ENVIR = "nco" ]; then
- WORKDIR_ICSLBCS_CDATE=$COMOUT/anl.${dom}.$tmark
-else
- WORKDIR_ICSLBCS_CDATE="$WORKDIR_ICSLBCS/$CDATE"
-fi
-WORKDIR_ICSLBCS_CDATE_ICSSURF_WORK="$WORKDIR_ICSLBCS_CDATE/ICSSURF_work"
-mkdir_vrfy -p "$WORKDIR_ICSLBCS_CDATE_ICSSURF_WORK"
-cd_vrfy ${WORKDIR_ICSLBCS_CDATE_ICSSURF_WORK}
-#
-#-----------------------------------------------------------------------
-#
-# Load modules and set machine-dependent parameters.
-#
-#-----------------------------------------------------------------------
-#
-case "$MACHINE" in
-#
-"WCOSS_C")
-#
- { save_shell_opts; set +x; } > /dev/null 2>&1
-
- { restore_shell_opts; } > /dev/null 2>&1
- ;;
-#
-"WCOSS")
-#
- { save_shell_opts; set +x; } > /dev/null 2>&1
-
- { restore_shell_opts; } > /dev/null 2>&1
- ;;
-#
-"DELL")
-#
- { save_shell_opts; set +x; } > /dev/null 2>&1
-
- { restore_shell_opts; } > /dev/null 2>&1
- ;;
-#
-"THEIA")
-#
- { save_shell_opts; set +x; } > /dev/null 2>&1
-
- ulimit -s unlimited
- ulimit -a
-
- module purge
- module load intel/18.1.163
- module load impi/5.1.1.109
- module load netcdf/4.3.0
- module load hdf5/1.8.14
- module load wgrib2/2.0.8
- module load contrib wrap-mpi
- module list
-
- np=${SLURM_NTASKS}
- APRUN="mpirun -np ${np}"
-
- { restore_shell_opts; } > /dev/null 2>&1
- ;;
-#
-"JET")
-#
- { save_shell_opts; set +x; } > /dev/null 2>&1
-
- { restore_shell_opts; } > /dev/null 2>&1
- ;;
-#
-"ODIN")
-#
- ;;
-#
-"CHEYENNE")
-#
- ;;
-#
-esac
-#
-#-----------------------------------------------------------------------
-#
-# Create links to the grid and orography files with 4 halo cells. These
-# are needed by chgres_cube to create the boundary data.
-#
-#-----------------------------------------------------------------------
-#
-# Are these still needed for chgres_cube? I don't think so; try commenting out.
-#
-ln_vrfy -sf $WORKDIR_SHVE/${CRES}_grid.tile7.halo${nh4_T7}.nc \
- $WORKDIR_SHVE/${CRES}_grid.tile7.nc
-
-ln_vrfy -sf $WORKDIR_SHVE/${CRES}_oro_data.tile7.halo${nh4_T7}.nc \
- $WORKDIR_SHVE/${CRES}_oro_data.tile7.nc
-#
-#-----------------------------------------------------------------------
-#
-# Find the directory in which the wgrib2 executable is located.
-#
-#-----------------------------------------------------------------------
-#
-WGRIB2_DIR=$( which wgrib2 ) || print_err_msg_exit "\
-Directory in which the wgrib2 executable is located not found:
- WGRIB2_DIR = \"${WGRIB2_DIR}\"
-"
-#
-#-----------------------------------------------------------------------
-#
-# Set the directory containing the external model output files.
-#
-#-----------------------------------------------------------------------
-#
-EXTRN_MDL_FILES_DIR="${EXTRN_MDL_FILES_BASEDIR_ICSSURF}/${CDATE}"
-#
-#-----------------------------------------------------------------------
-#
-# Source the file (generated by a previous task) that contains variable
-# definitions (e.g. forecast hours, file and directory names, etc) re-
-# lated to the exteranl model run that is providing fields from which
-# we will generate LBC files for the FV3SAR.
-#
-#-----------------------------------------------------------------------
-#
-. ${EXTRN_MDL_FILES_DIR}/${EXTRN_MDL_INFO_FN}
-
-
-
-
-#
-#-----------------------------------------------------------------------
-#
-# Get the name of the external model to use in the chgres FORTRAN name-
-# list file.
-#
-#-----------------------------------------------------------------------
-#
-case "$EXTRN_MDL_NAME_ICSSURF" in
-#
-"GFS")
- external_model="GFS"
- ;;
-"RAPX")
- external_model="RAP"
- ;;
-"HRRRX")
- external_model="HRRR"
- ;;
-*)
- print_err_msg_exit "\
-The external model name to use in the chgres FORTRAN namelist file is
-not specified for this external model:
- EXTRN_MDL_NAME_ICSSURF = \"${EXTRN_MDL_NAME_ICSSURF}\"
-"
- ;;
-#
-esac
-#
-#-----------------------------------------------------------------------
-#
-# Get the name of the physics suite to use in the chgres FORTRAN name-
-# list file.
-#
-#-----------------------------------------------------------------------
-#
-case "$CCPP_phys_suite" in
-#
-"GFS")
- phys_suite="GFS"
- ;;
-"GSD")
- phys_suite="GSD"
- ;;
-*)
- print_err_msg_exit "\
-The physics suite name to use in the chgres FORTRAN namelist file is not
-specified for this physics suite:
- CCPP_phys_suite = \"${CCPP_phys_suite}\"
-"
- ;;
-#
-esac
-#
-#-----------------------------------------------------------------------
-#
-# Get the starting year, month, day, and hour of the the external model
-# run.
-#
-#-----------------------------------------------------------------------
-#
-#yyyy="${EXTRN_MDL_CDATE:0:4}"
-mm="${EXTRN_MDL_CDATE:4:2}"
-dd="${EXTRN_MDL_CDATE:6:2}"
-hh="${EXTRN_MDL_CDATE:8:2}"
-#yyyymmdd="${EXTRN_MDL_CDATE:0:8}"
-#
-#-----------------------------------------------------------------------
-#
-# Set external model output file name(s) and file type/format. Note
-# that these are now inputs into chgres.
-#
-#-----------------------------------------------------------------------
-#
-fn_atm_nemsio=""
-fn_sfc_nemsio=""
-fn_grib2=""
-input_type=""
-
-case "$EXTRN_MDL_NAME_ICSSURF" in
-"GFS")
- fn_atm_nemsio="${EXTRN_MDL_FNS[0]}"
- fn_sfc_nemsio="${EXTRN_MDL_FNS[1]}"
-# This has to be fixed to that for EXTRN_MDL_NAME_ICSSURF, there is a "GFS_GAUSSIAN" (or better yet, spectral)
-# and a "GFS-FV3" option!!!
- input_type="gfs_gaussian" # For spectral GFS Gaussian grid in nemsio format.
-# input_type="gaussian" # For FV3-GFS Gaussian grid in nemsio format.
- ;;
-"RAPX")
- fn_grib2="${EXTRN_MDL_FNS[0]}"
- input_type="grib2"
- ;;
-"HRRRX")
- fn_grib2="${EXTRN_MDL_FNS[0]}"
- input_type="grib2"
- ;;
-*)
- print_err_msg_exit "\
-The external model output file name(s) and file type/format to use in the
-chgres FORTRAN namelist file are not specified for this external model:
- EXTRN_MDL_NAME_ICSSURF = \"${EXTRN_MDL_NAME_ICSSURF}\"
-"
- ;;
-esac
-#
-#-----------------------------------------------------------------------
-#
-# Set various external model-dependent namelist options to chgres_cube.
-#
-#-----------------------------------------------------------------------
-#
-case "$EXTRN_MDL_NAME_ICSSURF" in
-
-"GFS")
-#
-# The following are the three atmsopheric tracers that are in the atmo-
-# spheric analysis (atmanl) nemsio file for CDATE=2017100700:
-#
-# "spfh","o3mr","clwmr"
-#
-# Note also that these are hardcoded in the code (file input_data.F90,
-# subroutine read_input_atm_gfs_spectral_file), so that subroutine will
-# break if tracers_input(:) is not specified as above.
-#
-# Note that there are other fields too ["hgt" (surface height (togography?)),
-# pres (surface pressure), ugrd, vgrd, and tmp (temperature)] in the atmanl file, but those
-# are not considered tracers (they're categorized as dynamics variables,
-# I guess).
-#
-# Another note: The way things are set up now, tracers_input(:) and
-# tracers(:) are assumed to have the same number of elements (just the
-# atmospheric tracer names in the input and output files may be differ-
-# ent). There needs to be a check for this in the chgres_cube code!!
-# If there was a varmap table that specifies how to handle missing
-# fields, that would solve this problem.
-#
-# Also, it seems like the order of tracers in tracers_input(:) and
-# tracers(:) must match, e.g. if ozone mixing ratio is 3rd in
-# tracers_input(:), it must also be 3rd in tracers(:). How can this be checked?
-#
-# NOTE: Really should use a varmap table for GFS, just like we do for
-# RAP/HRRR.
-#
-
-# A non-prognostic variable that appears in the field_table for GSD physics
-# is cld_amt. Why is that in the field_table at all (since it is a non-
-# prognostic field), and how should we handle it here??
-
-# I guess this works for spectral GFS but not for FV3GFS since the nemsio
-# output files of those have different variable names (see below).
- tracers_input="\"spfh\",\"o3mr\",\"clwmr\""
-# I guess this works for FV3GFS but not for the spectral GFS since these
-# variables won't exist in the spectral GFS atmanl files.
-# tracers_input="\"sphum\",\"liq_wat\",\"ice_wat\",\"rainwat\",\"snowwat\",\"graupel\",\"o3mr\""
-#
-# Not sure if tracers(:) should include "cld_amt" since that is also in
-# the field_table for CDATE=2017100700 but is a non-prognostic variable.
-#
-# tracers="\"sphum\",\"liq_wat\",\"ice_wat\",\"rainwat\",\"snowwat\",\"graupel\",\"o3mr\""
- tracers="\"sphum\",\"o3mr\",\"liq_wat\""
-#
- numsoil_out="4"
- geogrid_file_input_grid="" # How to get this to not be used???
- replace_vgtyp=".true."
- replace_sotyp=".true."
- replace_vgfrc=".true."
- tg3_from_soil=".false."
- ;;
-
-"HRRRX")
-# Don't set these; tracers(:) won't get used, and tracers_input(:) will
-# get set to the value specified in the varmap table.
-# Maybe better to set them to blank? Not sure...
- tracers_input="\"\""
- tracers="\"\""
-#
- numsoil_out="9"
- geogrid_file_input_grid="/scratch3/BMC/det/beck/FV3-CAM/geo_em.d01.nc" # As of 2019-06-19, this parameter is only used if reading in HRRR grib2 files.
- replace_vgtyp=".false."
- replace_sotyp=".false."
- replace_vgfrc=".false."
- tg3_from_soil=".true."
- ;;
-
-*)
- print_err_msg_exit "\
-One or more chgres_cube namelist variables have not been specified for
-the specifed external model used to generate ICs, surface fields, and
-the first LBC:
-
- EXTRN_MDL_NAME_ICSSURF = \"${EXTRN_MDL_NAME_ICSSURF}\"
-
-Unspecified namelist variables:
-
- tracers_input
- tracers
- numsoil_out
- geogrid_file_input_grid
- replace_vgtyp
- replace_sotyp
- replace_vgfrc
- tg3_from_soil
-"
- ;;
-
-esac
-#
-#-----------------------------------------------------------------------
-#
-# Build the FORTRAN namelist file that chgres_cube will read in.
-#
-#-----------------------------------------------------------------------
-#
-
-# For GFS physics, the character arrays tracers_input(:) and tracers(:)
-# must be specified in the namelist file. tracers_input(:) contains the
-# tracer name to look for in the external model file(s), while tracers(:)
-# contains the names to use for the tracers in the output NetCDF files
-# that chgres creates (that will be read in by FV3). Since when FV3
-# reads these NetCDF files it looks for atmospheric traces as specified
-# in the file field_table, tracers(:) should be set to the names in
-# field_table.
-#
-# NOTE: This process should be automated where the set of elements that
-# tracers(:) should be set to is obtained from reading in field_table.
-#
-# To know how to set tracers_input(:), you have to know the names of the
-# variables in the input atmospheric nemsio file (usually this file is
-# named gfs.t00z.atmanl.nemsio).
-#
-# It is not quite clear how these should be specified. Here are a list
-# of examples:
-#
-# [Gerard.Ketefian@tfe05] /scratch3/.../chgres_cube.fd/run (feature/chgres_grib2_gsk)
-# $ grep -n -i "tracers" * | grep theia
-# config.C1152.l91.atm.theia.nml:24: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
-# config.C1152.l91.atm.theia.nml:25: tracers_input="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
-# config.C48.gaussian.theia.nml:20: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
-# config.C48.gaussian.theia.nml:21: tracers_input="spfh","clwmr","o3mr","icmr","rwmr","snmr","grle"
-# config.C48.gfs.gaussian.theia.nml:21: tracers="sphum","liq_wat","o3mr"
-# config.C48.gfs.gaussian.theia.nml:22: tracers_input="spfh","clwmr","o3mr"
-# config.C48.gfs.spectral.theia.nml:21: tracers_input="spfh","o3mr","clwmr"
-# config.C48.gfs.spectral.theia.nml:22: tracers="sphum","o3mr","liq_wat"
-# config.C48.theia.nml:21: tracers="sphum","liq_wat","o3mr"
-# config.C48.theia.nml:22: tracers_input="spfh","clwmr","o3mr"
-# config.C768.atm.theia.nml:24: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
-# config.C768.atm.theia.nml:25: tracers_input="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
-# config.C768.l91.atm.theia.nml:24: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
-# config.C768.l91.atm.theia.nml:25: tracers_input="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
-# config.C768.nest.atm.theia.nml:22: tracers="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
-# config.C768.nest.atm.theia.nml:23: tracers_input="sphum","liq_wat","o3mr","ice_wat","rainwat","snowwat","graupel"
-
-
-# fix_dir_target_grid="${BASEDIR}/JP_grid_HRRR_like_fix_files_chgres_cube"
-# base_install_dir="${SORCDIR}/chgres_cube.fd"
-
-#
-# As an alternative to the cat command below, we can have a template for
-# the namelist file and use the set_file_param(.sh) function to set
-# namelist entries in it. The set_file_param function will print out a
-# message and exit if it fails to set a variable in the file.
-#
-
-{ cat > fort.41 < /dev/null 2>&1
diff --git a/sorc/build_forecast.sh b/sorc/build_forecast.sh
index 7ea6b6e2e..798825271 100755
--- a/sorc/build_forecast.sh
+++ b/sorc/build_forecast.sh
@@ -17,7 +17,6 @@ if [ ! -d "../exec" ]; then
fi
if [ $target = hera ]; then target=hera.intel ; fi
-if [ $target = theia ]; then target=theia.intel ; fi
cd regional_forecast.fd/
FV3=$( pwd -P )/FV3
diff --git a/sorc/checkout.sh b/sorc/checkout.sh
index cc2c39503..107b411db 100755
--- a/sorc/checkout.sh
+++ b/sorc/checkout.sh
@@ -28,15 +28,13 @@ echo $topdir
echo NEMSfv3gfs checkout ...
if [[ ! -d regional_forecast.fd ]] ; then
- git clone -b regional --recursive gerrit:NEMSfv3gfs regional_forecast.fd
- #cd regional_forecast.fd
- #git checkout regional
- #git submodule update --init --recursive
- #cd ${topdir}
+ git clone --recursive gerrit:NEMSfv3gfs regional_forecast.fd
+ cd regional_forecast.fd
+ git submodule update --init --recursive
+ cd ${topdir}
else
echo 'Directory regional_forecast.fd already exists. Pull the latest updates from the corresponding branch.'
cd regional_forecast.fd
- git checkout regional
git pull
git submodule update --init --recursive
cd ${topdir}
@@ -44,45 +42,37 @@ fi
echo EMC_post checkout ...
if [[ ! -d regional_post.fd ]] ; then
- git clone -b regional --recursive gerrit:EMC_post regional_post.fd
- #cd regional_post.fd
- #git checkout regional
- #cd ${topdir}
+ git clone -b support/regional https://github.com/hafs-community/EMC_post.git regional_post.fd
else
echo 'Directory regional_post.fd already exists. Pull the latest updates from the corresponding branch.'
cd regional_post.fd
- git checkout regional
+ git checkout support/regional
git pull
cd ${topdir}
fi
echo UFS_UTILS checkout ...
if [[ ! -d regional_utils.fd ]] ; then
- git clone -b feature/HAFS --recursive gerrit:UFS_UTILS regional_utils.fd
- #cd regional_utils.fd
- #git checkout feature/HAFS
- #cd ${topdir}
+ git clone -b support/regional https://github.com/hafs-community/UFS_UTILS.git regional_utils.fd
else
echo 'Directory regional_utils.fd already exists. Pull the latest updates from the corresponding branch.'
- cd regional_utils.fd
- git checkout feature/HAFS
- git pull
+ cd regional_utils.fd
+ git checkout support/regional
+ git pull
cd ${topdir}
fi
echo ProdGSI checkout ...
if [[ ! -d regional_gsi.fd ]] ; then
git clone -b regional --recursive gerrit:ProdGSI regional_gsi.fd
- #cd regional_gsi.fd
- #git checkout regional
- #git submodule update --init --recursive
- #cd ${topdir}
+ cd regional_gsi.fd
+ git submodule update --init --recursive
+ cd ${topdir}
else
echo 'Directory regional_gsi.fd already exists. Pull the latest updates from the corresponding branch.'
cd regional_gsi.fd
- git checkout regional
git submodule update --init --recursive
- git pull
+ git pull
cd ${topdir}
fi
diff --git a/sorc/link_fix.sh b/sorc/link_fix.sh
index a6206a16b..4602e6580 100755
--- a/sorc/link_fix.sh
+++ b/sorc/link_fix.sh
@@ -12,15 +12,10 @@ fi
pwd=$(pwd -P)
-# if [ ${target} == "wcoss_cray" ]; then
-# FIX_DIR="/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix"
-
if [[ ${target} == "wcoss_dell_p3" || ${target} == "wcoss" || ${target} == "wcoss_cray" ]]; then
FIX_DIR="/gpfs/dell2/emc/modeling/noscrub/emc.campara/fix_fv3cam"
elif [ ${target} == "hera" ]; then
FIX_DIR="/scratch2/NCEPDEV/fv3-cam/emc.campara/fix_fv3cam"
-elif [ ${target} == "theia" ]; then
- FIX_DIR="/scratch4/NCEPDEV/fv3-cam/save/Benjamin.Blake/fix_fv3cam"
elif [ ${target} == "jet" ]; then
FIX_DIR="/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix"
else
diff --git a/sorc/machine-setup.sh b/sorc/machine-setup.sh
index f014663be..7ea684701 100644
--- a/sorc/machine-setup.sh
+++ b/sorc/machine-setup.sh
@@ -30,26 +30,16 @@ if [[ -d /lfs3 ]] ; then
export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib
echo NCEPLIBS HARD SET to $NCEPLIBS in `pwd`/module_setup.sh.inc
module use $NCEPLIBS/modulefiles
-elif [[ -d /scratch2 ]] ; then
+elif [[ -d /scratch1/NCEPDEV ]] ; then
# We are on NOAA Hera
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
+ target=hera
module purge
- module use /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles/
- module use /scratch2/NCEPDEV/nwprod/NCEPLIBS_CCPP/modulefiles/
-elif [[ -d /scratch3 ]] ; 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
+ module use /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles
+ MOD_PATH=/scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles
elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then
# We are on NOAA Luna or Surge
if ( ! eval module help > /dev/null 2>&1 ) ; then
diff --git a/ush/regional_chgres.sh b/ush/regional_chgres.sh
deleted file mode 100755
index 057086b63..000000000
--- a/ush/regional_chgres.sh
+++ /dev/null
@@ -1,543 +0,0 @@
-#!/bin/ksh
-################################################################################
-#### UNIX Script Documentation Block
-# . .
-# Script name: global_chgres.sh
-# Script description: Convert GFS restart files to the FV3 cubed-sphere grid.
-#
-# Author: Mark Iredell Org: NP23 Date: 1999-03-01
-#
-# Abstract: This script converts the GFS restart files, namely the sigma
-# file, surface file, nst file or all 3, to the cubed-sphere grid. When
-# converting an nst file, you must also convert a surface file.
-# All input files are specified by the first three arguments.
-# The horizontal/vertical resolution of the output files is given by
-# the CASE/LEVS arguments. When the input sigma file is sigio format,
-# the conversion is done in two steps. First, the spectral coefficients
-# are converted to grid point space. By default, this intermediate
-# data are on a gaussian grid with i/j dimension as described by the
-# input file header. These defaults may be overridden by the IDRT,
-# LONB and LATB environment variables. The sigma file is converted
-# to all six sides of the cube. The surface and nst files are only
-# converted to one side of the cube (as specified by the TILE_NUM
-# environment variable). I.e., you must run this script six times
-# to fully convert a surface or nst file.
-#
-# Script history log:
-# 1999-03-01 Mark Iredell
-# 2011-08-05 Added logic for nst restart files. G. Gayno
-# 2011-10-10 Updated for gaea - S. Moorthi
-# 2016-12-27 Updated for FV3 core. G. Gayno
-# 2017-04-12 Remove references to output nsst file. nsst data
-# now written to surface restart file.
-# 2018-02-09 Updated for regional grids.
-#
-# Usage: global_chgres.sh SIGINP SFCINP NSTINP CASE LEVS
-#
-# Input script positional parameters:
-# 1 Input sigma file (SIGINP)
-# 2 Input surface file (SFCINP)
-# 3 Input nst file (NSTINP)
-# 4 Output cubed-sphere resolution (CASE)
-# 5 New number of vertical sigma levels (LEVS)
-#
-# Imported Shell Variables:
-# SIGINP Input sigma file
-# overridden by $1; skip sigma conversion if missing
-# SFCINP Input surface file
-# overridden by $2; skip surface conversion if missing
-# NSTINP Input nst file
-# overridden by $3; skip surface conversion if missing
-# CASE Output cubed-sphere resolution.
-# overridden by $4.
-# LEVS New number of sigma levels
-# overridden by $5; one or the other is required
-# OUTTYP Output file type. Not used yet. The sigma/atms and
-# surface/nsst files are output in netcdf.
-# IDRT When converting an atmospheric file in sigio format,
-# this is the grid type after spectral conversion.
-# 4: guassian(default); 0: lat-lon
-# LONB When converting an atmospheric file in sigio format,
-# this is the number of longitudes of the intermediate grid
-# after spectral conversion. When converting a surface
-# file, this is the number of longitudes of the input
-# climatological soil moisture data file.
-# LATB When converting an atmospheric file in sigio format,
-# this is the number of latitudes of the intermediate grid
-# after spectral conversion. When converting a surface
-# file, this is the number of latitudes of the input
-# climatological soil moisture data file.
-# NTRAC New number of tracers
-# defaults to input sigma file value
-# REGIONAL Process stand-alone regional grid. When '1', remove halo
-# from grids and create an atmospheric boundary file.
-# When '2', create boundary file only. When '0',
-# do neither (process as normal for a global grid).
-# Default is '0'.
-# HALO When processing a stand-alone regional grid, this
-# specifies the number of rows/cols for the halo.
-# Default is '0'.
-# IDVC New vertical coordinate id (1 for sigma, 2 for hybrid)
-# defaults to input sigma file value
-# IDSL New midlayer pressure id (1 for phillips, 2 for mean)
-# defaults to input sigma file value
-# TILE_NUM The number of the cubed-sphere tile to convert surface
-# and nst data.
-# NWROOT A string that defaults to /nwprod
-# gfs_ver Version number. Defaults to v15.0.0.
-# BASEDIR Base directory. Defaults to /nwprod2
-# HOMEgfs GFS home directory. Defaults to $BASEDIR/gfs.${gfs_ver}
-# FIXam Directory for global climo files
-# Defaults to $HOMEgfs/fix/fix_am
-# FIXfv3 Directory for model 'grid' and 'orography' files.
-# Defaults to HOMEgfs/fix/fix_fv3_gmted2010
-# EXECgfs Directory for global executables.
-# Defaults to $HOMEgfs/exec
-# DATA working directory
-# (if nonexistent will be made, used and deleted)
-# defaults to current working directory
-# XC Suffix to add to executables
-# defaults to none
-# SIGLEVEL New sigma levels ("NULL" to use from input sigma file)
-# defaults to ${FIXam}/global_siglevel.l${LEVS}.txt
-# FNGLAC Input glacier climatology GRIB file
-# defaults to ${FIXam}/global_glacier.2x2.grb
-# FNMXIC Input maximum sea ice climatology GRIB file
-# defaults to ${FIXam}/global_maxice.2x2.grb
-# FNTSFC Input SST climatology GRIB file
-# defaults to ${FIXam}/global_sstclim.2x2.grb
-# FNSNOC Input snow climatology GRIB file
-# defaults to ${FIXam}/global_snoclim.1.875.grb
-# FNZORC Input roughness climatology
-# defaults to sib vegtetation type-based lookup table
-# FNVETC must be set to ${FIXam}/global_vegtype.1x1.grb
-# FNALBC Input 4-component albedo climatology GRIB file
-# defaults to ${FIXam}/global_albedo4.1x1.grb
-# FNALBC2 Input 'facsf' and 'facwf' albedo climatology GRIB file
-# defaults to ${FIXam}/global_albedo4.1x1.grb
-# FNAISC Input sea ice climatology GRIB file
-# defaults to ${FIXam}/global_iceclim.2x2.grb
-# FNTG3C Input deep soil temperature climatology GRIB file
-# defaults to ${FIXam}/global_tg3clim.2.6x1.5.grb
-# FNVEGC Input vegetation fraction climatology GRIB file
-# defaults to ${FIXam}/global_vegfrac.1x1.grb
-# FNVETC Input vegetation type climatology GRIB file
-# defaults to ${FIXam}/global_vegtype.1x1.grb
-# FNSOTC Input soil type climatology GRIB file
-# defaults to ${FIXam}/global_soiltype.1x1.grb
-# FNSMCC Input soil moisture climatology GRIB file
-# defaults to ${FIXam}/global_soilmgldas.statsgo.t$JCAP.$LONB.$LATB.grb
-# FNVMNC Input min veg frac climatology GRIB file
-# defaults to ${FIXam}/global_shdmin.0.144x0.144.grb
-# FNVMXC Input max veg frac climatology GRIB file
-# defaults to ${FIXam}/global_shdmax.0.144x0.144.grb
-# FNSLPC Input slope type climatology GRIB file
-# defaults to ${FIXam}/global_slope.1x1.grb
-# FNABSC Input max snow albedo climatology GRIB file
-# defaults to ${FIXam}/global_snoalb.1x1.grb
-# FNMSKH Input high resolution land mask GRIB file
-# defaults to ${FIXam}/seaice_newland.grb
-# CLIMO_
-# FIELDS_OPT 1-Climo/static fields (albedo, soil type, greenness, etc.)
-# interpolated from input grid.
-# 2-Vegetation, slope and soil type interpolated from input
-# grid. All other climo/static fields from sfccycle.
-# 3-All climo/static fields from sfccycle.
-# defaults to '3'
-# LANDICE_OPT 1-Input no landice => output landice
-# 2-Input landice => output landice.
-# 3-Input no landice => output no landice
-# 4-Input landice => output no landice
-# 5-Output landice regardless of input
-# LSOIL 2-Output file with 2 soil layers
-# 4-Output file with 4 soil layers
-# 0-Default, number of soil layers same as input file
-# IVSSFC Version number of surface restart file
-# 0-Default, same as input file.
-# LONSPERLAT New lonsperlat ("NULL" to use from input surface file)
-# CHGRESEXEC Change resolution executable
-# defaults to ${EXECgfs}/global_chgres
-# INISCRIPT Preprocessing script
-# defaults to none
-# LOGSCRIPT Log posting script
-# defaults to none
-# ERRSCRIPT Error processing script
-# defaults to 'eval [[ $err = 0 ]]'
-# ENDSCRIPT Postprocessing script
-# defaults to none
-# CHGRESVARS Other namelist inputs to the change resolution executable
-# such as IGEN,MQUICK. Defaults to none set.
-# NTHREADS Number of threads
-# defaults to 1
-# NTHSTACK Size of stack per thread
-# defaults to 64000000
-# PGMOUT Executable standard output
-# defaults to $pgmout, then to '&1'
-# PGMERR Executable standard error
-# defaults to $pgmerr, then to '&1'
-# pgmout Executable standard output default
-# pgmerr Executable standard error default
-# REDOUT standard output redirect ('1>' or '1>>')
-# defaults to '1>', or to '1>>' to append if $PGMOUT is a file
-# REDERR standard error redirect ('2>' or '2>>')
-# defaults to '2>', or to '2>>' to append if $PGMERR is a file
-# VERBOSE Verbose flag (YES or NO)
-# defaults to NO
-# FV3GRID_TILE# Contains grid information (lat/lon) for the cubed-sphere grid.
-# One file for each of the six tiles.
-# FV3OROG_TILE# Contains mask and orography for the cubed-sphere grid.
-# One file for each of the six tiles.
-#
-# Exported Shell Variables:
-# PGM Current program name
-# pgm
-# ERR Last return code
-# err
-#
-# Modules and files referenced:
-# scripts : $INISCRIPT
-# $LOGSCRIPT
-# $ERRSCRIPT
-# $ENDSCRIPT
-#
-# programs : $CHGRESEXEC
-#
-# input data : $1 or $SIGINP
-# $2 or $SFCINP
-# $3 or $NSTINP
-# $SIGLEVEL
-# $LONSPERLAT
-# $FVGRID_TILE[1-6]
-# $FVOROG_TILE[1-6]
-#
-# output data:
-# $PGMOUT
-# $PGMERR
-#
-# scratch : ${DATA}/chgres.inp.sig
-# ${DATA}/chgres.inp.siglevel
-# ${DATA}/chgres.inp.sfc
-# ${DATA}/chgres.inp.nst
-# ${DATA}/chgres.inp.lpl3
-# ${DATA}/chgres.fv3.grd.t[1-6]
-# ${DATA}/chgres.fv3.orog.t[1-6]
-# ${DATA}/fort.35
-# ${DATA}/fort.81
-# ${DATA}/NULL
-#
-# Remarks:
-#
-# Condition codes
-# 0 - no problem encountered
-# >0 - some problem encountered
-#
-# Control variable resolution priority
-# 1 Command line argument.
-# 2 Environment variable.
-# 3 Inline default.
-#
-# Attributes:
-# Language: POSIX shell
-# Machine: IBM SP
-#
-####
-################################################################################
-# Set environment.
-VERBOSE=${VERBOSE:-"NO"}
-if [[ "$VERBOSE" = "YES" ]] ; then
- echo $(date) EXECUTING $0 $* >&2
- set -x
-fi
-# Command line arguments.
-APRUNC=${APRUNC:-""}
-SIGINP=${1:-${SIGINP:-NULL}}
-SFCINP=${2:-${SFCINP:-NULL}}
-NSTINP=${3:-${NSTINP:-NULL}}
-CASE=${4:-${CASE:?}}
-LEVS=${5:-${LEVS:?}}
-# Directories.
-gfs_ver=${gfs_ver:-v15.0.0}
-BASEDIR=${BASEDIR:-${NWROOT:-/nwprod2}}
-HOMEgfs=${HOMEgfs:-$BASEDIR/gfs.${gfs_ver}}
-EXECgfs=${EXECgfs:-$HOMEgfs/exec}
-
-DATA=${DATA:-$(pwd)}
-# Filenames.
-CHGRESEXEC=${CHGRESEXEC:-${EXECgfs}/regional_chgres.x}
-#
-
-CRES=$(echo $CASE | cut -c2-)
-JCAP_CASE=$((CRES*2-2))
-LATB_CASE=$((CRES*2))
-LONB_CASE=$((CRES*4))
-
-JCAP=${JCAP:-$JCAP_CASE}
-LONB=${LONB:-$LONB_CASE}
-LATB=${LATB:-$LATB_CASE}
-
-SIGLEVEL=${SIGLEVEL:-${FIXam}/global_hyblev.l${LEVS}.txt}
-if [ $LEVS = 128 ]; then
- SIGLEVEL=${SIGLEVEL:-${FIXam}/global_hyblev.l${LEVS}B.txt}
-fi
-FNGLAC=${FNGLAC:-${FIXam}/global_glacier.2x2.grb}
-FNMXIC=${FNMXIC:-${FIXam}/global_maxice.2x2.grb}
-FNTSFC=${FNTSFC:-${FIXam}/cfs_oi2sst1x1monclim19822001.grb}
-FNSNOC=${FNSNOC:-${FIXam}/global_snoclim.1.875.grb}
-FNZORC=${FNZORC:-sib}
-FNALBC=${FNALBC:-${FIXam}/global_albedo4.1x1.grb}
-FNALBC2=${FNALBC2:-${FIXam}/global_albedo4.1x1.grb}
-FNAISC=${FNAISC:-${FIXam}/cfs_ice1x1monclim19822001.grb}
-FNTG3C=${FNTG3C:-${FIXam}/global_tg3clim.2.6x1.5.grb}
-FNVEGC=${FNVEGC:-${FIXam}/global_vegfrac.0.144.decpercent.grb}
-FNVETC=${FNVETC:-${FIXam}/global_vegtype.1x1.grb}
-FNSOTC=${FNSOTC:-${FIXam}/global_soiltype.1x1.grb}
-FNSMCC=${FNSMCC:-${FIXam}/global_soilmgldas.statsgo.t${JCAP}.${LONB}.${LATB}.grb}
-FNVMNC=${FNVMNC:-${FIXam}/global_shdmin.0.144x0.144.grb}
-FNVMXC=${FNVMXC:-${FIXam}/global_shdmax.0.144x0.144.grb}
-FNSLPC=${FNSLPC:-${FIXam}/global_slope.1x1.grb}
-FNABSC=${FNABSC:-${FIXam}/global_snoalb.1x1.grb}
-FNMSKH=${FNMSKH:-${FIXam}/seaice_newland.grb}
-LANDICE_OPT=${LANDICE_OPT:-2}
-CLIMO_FIELDS_OPT=${CLIMO_FIELDS_OPT:-3}
-SOILTYPE_INP=${SOILTYPE_INP:-"zobler"}
-SOILTYPE_OUT=${SOILTYPE_OUT:-"zobler"}
-VEGTYPE_INP=${VEGTYPE_INP:-"sib"}
-VEGTYPE_OUT=${VEGTYPE_OUT:-"sib"}
-LONSPERLAT=${LONSPERLAT:-NULL}
-export INISCRIPT=${INISCRIPT}
-export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}
-export LOGSCRIPT=${LOGSCRIPT}
-export ENDSCRIPT=${ENDSCRIPT}
-# Other variables.
-TILE_NUM=${TILE_NUM:-1}
-IDRT=${IDRT:-4}
-OUTTYP=${OUTTYP:-999}
-NTRAC=${NTRAC:-3}
-REGIONAL=${REGIONAL:-0}
-HALO=${HALO:-0}
-gtype=${gtype:-uniform}
-IALB=${IALB:-0}
-IDVC=${IDVC:-2}
-IDVT=${IDVT:-21}
-IDVM=${IDVM:-0}
-IDSL=${IDSL:-1}
-LSOIL=${LSOIL:-0}
-IVSSFC=${IVSSFC:-0}
-use_ufo=${use_ufo:-.true.}
-rdgrid=${rdgrid:-.false.}
-NTHREADS=${NTHREADS:-1}
-NTHSTACK=${NTHSTACK:-1024000000}
-XLSMPOPTS=${XLSMPOPTS:-"parthds=$NTHREADS:stack=$NTHSTACK"}
-export KMP_STACKSIZE=${KMP_STACKSIZE:-$NTHSTACK}
-export PGMOUT=${PGMOUT:-${pgmout:-'&1'}}
-export PGMERR=${PGMERR:-${pgmerr:-'&2'}}
-export REDOUT=${REDOUT:-'1>'}
-export REDERR=${REDERR:-'2>'}
-CHGRESVARS=${CHGRESVARS}
-################################################################################
-# Preprocessing
-$INISCRIPT
-pwd=$(pwd)
-if [[ -d $DATA ]]
-then
- mkdata=NO
-else
- mkdir -p $DATA
- mkdata=YES
-fi
-cd $DATA||exit 99
-################################################################################
-# Change resolution
-#export XLSMPOPTS="parthds=$NTHREADS:stack=$NTHSTACK"
-export PGM=$CHGRESEXEC
-export pgm=$PGM
-$LOGSCRIPT
-rm -f NULL
-ln -sf $SIGINP chgres.inp.sig
-ln -sf $SIGLEVEL chgres.inp.siglevel
-ln -sf $SFCINP chgres.inp.sfc
-ln -sf $NSTINP chgres.inp.nst
-ln -sf $LONSPERLAT chgres.inp.lpl3
-
-if [ $gtype = regional ]; then
- tile=7
- ln -sf ${FIXsar}/${CASE}_grid.tile${tile}.halo${HALO}.nc chgres.fv3.grd.t${tile}
- ln -sf ${FIXsar}/${CASE}_oro_data.tile${tile}.halo${HALO}.nc chgres.fv3.orog.t${tile}
-else
- tile=1
- while [ $tile -le $ntiles ]; do
- ln -sf ${FIXnest}/C${CRES}_grid.tile${tile}.nc chgres.fv3.grd.t${tile}
- ln -sf ${FIXnest}/C${CRES}_oro_data.tile${tile}.nc chgres.fv3.orog.t${tile}
- tile=`expr $tile + 1 `
- done
-fi
-
-if [[ $LANDICE_OPT = 3 || $LANDICE_OPT = 4 ]]
-then
- LANDICE=.false.
-else
- LANDICE=.true.
-fi
-
-if [[ $VEGTYPE_OUT = "sib" ]]; then
- IVEGSRC=2
-elif [[ $VEGTYPE_OUT = "igbp" ]]; then
- IVEGSRC=1
-fi
-
-if [[ $SOILTYPE_OUT = "zobler" ]]; then
- ISOT=0
-elif [[ $SOILTYPE_OUT = "statsgo" ]]; then
- ISOT=1
-fi
-
-# If the appropriate resolution fix file is not present, use the highest resolution available (T1534)
-[[ ! -f $FNSMCC ]] && FNSMCC="$FIXam/global_soilmgldas.statsgo.t1534.3072.1536.grb"
-
-cat << EOF > fort.35
- &NAMSFC
- FNGLAC='${FNGLAC}'
- FNMXIC='${FNMXIC}'
- FNTSFC='${FNTSFC}'
- FNSNOC='${FNSNOC}'
- FNZORC='${FNZORC}'
- FNALBC='${FNALBC}'
- FNALBC2='${FNALBC2}'
- FNAISC='${FNAISC}'
- FNTG3C='${FNTG3C}'
- FNVEGC='${FNVEGC}'
- FNVETC='${FNVETC}'
- FNSOTC='${FNSOTC}'
- FNSMCC='${FNSMCC}'
- FNVMNC='${FNVMNC}'
- FNVMXC='${FNVMXC}'
- FNSLPC='${FNSLPC}'
- FNABSC='${FNABSC}'
- FNMSKH='${FNMSKH}'
- FNTSFA=''
- FNACNA=''
- FNSNOA=''
- LDEBUG=.false.
- LANDICE=$LANDICE
-/
-EOF
-
-if [[ $SOILTYPE_INP = "zobler" ]]; then
-cat << EOF > fort.81
- &soil_parameters
- soil_src_input = "zobler"
- smclow_input = 0.5
- smchigh_input = 6.0
- smcmax_input= 0.421, 0.464, 0.468, 0.434, 0.406, 0.465,
- 0.404, 0.439, 0.421
- beta_input = 4.26, 8.72, 11.55, 4.74, 10.73, 8.17,
- 6.77, 5.25, 4.26
- psis_input = 0.040, 0.620, 0.470, 0.140, 0.100, 0.260,
- 0.140, 0.360, 0.040
- satdk_input = 1.41e-5, 0.20e-5, 0.10e-5, 0.52e-5, 0.72e-5,
- 0.25e-5, 0.45e-5, 0.34e-5, 1.41e-5
-EOF
-elif [[ $SOILTYPE_INP = "statsgo" ]]; then
-cat << EOF > fort.81
- &soil_parameters
- soil_src_input = "statsgo"
- smclow_input = 0.5
- smchigh_input = 6.0
- smcmax_input= 0.395, 0.421, 0.434, 0.476, 0.476, 0.439,
- 0.404, 0.464, 0.465, 0.406, 0.468, 0.457,
- 0.464, -9.99, 0.200, 0.421
- beta_input = 4.05, 4.26, 4.74, 5.33, 5.33, 5.25,
- 6.77, 8.72, 8.17, 10.73, 10.39, 11.55,
- 5.25, -9.99, 4.05, 4.26
- psis_input = 0.0350, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548,
- 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677,
- 0.3548, -9.99, 0.0350, 0.0363
- satdk_input = 1.7600e-4, 1.4078e-5, 5.2304e-6, 2.8089e-6, 2.8089e-6,
- 3.3770e-6, 4.4518e-6, 2.0348e-6, 2.4464e-6, 7.2199e-6,
- 1.3444e-6, 9.7384e-7, 3.3770e-6, -9.99, 1.4078e-5,
- 1.4078e-5
-EOF
-fi
-
-if [[ $SOILTYPE_OUT = "zobler" ]]; then
-cat << EOF >> fort.81
- soil_src_output = "zobler"
- smclow_output = 0.5
- smchigh_output = 6.0
- smcmax_output= 0.421, 0.464, 0.468, 0.434, 0.406, 0.465,
- 0.404, 0.439, 0.421
- beta_output = 4.26, 8.72, 11.55, 4.74, 10.73, 8.17,
- 6.77, 5.25, 4.26
- psis_output = 0.040, 0.620, 0.470, 0.140, 0.100, 0.260,
- 0.140, 0.360, 0.040
- satdk_output = 1.41e-5, 0.20e-5, 0.10e-5, 0.52e-5, 0.72e-5,
- 0.25e-5, 0.45e-5, 0.34e-5, 1.41e-5
-/
-EOF
-elif [[ $SOILTYPE_OUT = "statsgo" ]]; then
-cat << EOF >> fort.81
- soil_src_output = "statsgo"
- smclow_output = 0.5
- smchigh_output = 6.0
- smcmax_output= 0.395, 0.421, 0.434, 0.476, 0.476, 0.439,
- 0.404, 0.464, 0.465, 0.406, 0.468, 0.457,
- 0.464, -9.99, 0.200, 0.421
- beta_output = 4.05, 4.26, 4.74, 5.33, 5.33, 5.25,
- 6.77, 8.72, 8.17, 10.73, 10.39, 11.55,
- 5.25, -9.99, 4.05, 4.26
- psis_output = 0.0350, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548,
- 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677,
- 0.3548, -9.99, 0.0350, 0.0363
- satdk_output = 1.7600e-4, 1.4078e-5, 5.2304e-6, 2.8089e-6, 2.8089e-6,
- 3.3770e-6, 4.4518e-6, 2.0348e-6, 2.4464e-6, 7.2199e-6,
- 1.3444e-6, 9.7384e-7, 3.3770e-6, -9.99, 1.4078e-5,
- 1.4078e-5
-/
-EOF
-fi
-
-cat << EOF >> fort.81
- &veg_parameters
- veg_src_input = "${VEGTYPE_INP}"
- veg_src_output = "${VEGTYPE_OUT}"
- salp_output= -999.
- snup_output= -999.
-/
- &options
- CLIMO_FIELDS_OPT=${CLIMO_FIELDS_OPT}
- LANDICE_OPT=${LANDICE_OPT}
- /
-EOF
-
-export OMP_NUM_THREADS=${OMP_NUM_THREADS_CH:-${CHGRESTHREAD:-1}}
-
- eval $APRUNC $CHGRESEXEC <&2
-fi
-exit $err
diff --git a/ush/run_commands_bc.sh b/ush/run_commands_bc.sh
index d1075b3ce..518cea81a 100644
--- a/ush/run_commands_bc.sh
+++ b/ush/run_commands_bc.sh
@@ -21,7 +21,7 @@ elif [ "$machine" = wcoss_dell_p3 ]; then
export APRUNC=${APRUNC:-"time"}
export APRUNO="time"
export BACKGROUND=""
-elif [ "$machine" = theia ]; then
+elif [ "$machine" = hera ]; then
export APRUNS=${APRUNS:-"srun --ntasks=1 --nodes=1 --ntasks-per-node=1 --cpus-per-task=1"}
#export APRUNF=${APRUNF:-"srun --ntasks=${TOTAL_TASKS} --ntasks-per-node=${NCTSK} --cpus-per-task=${OMP_NUM_THREADS} --multi-prog"}
#export APRUNF=${APRUNF:-"source"}
diff --git a/ush/run_commands_forecast.sh b/ush/run_commands_forecast.sh
index f7a7a93de..d6b461110 100644
--- a/ush/run_commands_forecast.sh
+++ b/ush/run_commands_forecast.sh
@@ -21,7 +21,7 @@ elif [ "$machine" = wcoss_dell_p3 ]; then
export APRUNC=${APRUNC:-"mpirun"}
export APRUNO="time"
export BACKGROUND=""
-elif [ "$machine" = theia ]; then
+elif [ "$machine" = hera ]; then
export APRUNS=${APRUNS:-"srun --ntasks=1 --ntasks-per-node=1 --cpus-per-task=1"}
#export APRUNF=${APRUNF:-"srun --ntasks=${TOTAL_TASKS} --ntasks-per-node=${NCTSK} --cpus-per-task=${OMP_NUM_THREADS} --multi-prog"}
export APRUNF=${APRUNF:-"time"}