#!/bin/sh
################################################################################
####  UNIX Script Documentation Block
#                      .                                             .
# Script name:         global_forecast.sh
# Script description:  Runs a global spectral model forecast
#
# Author:        Mark Iredell       Org: NP23         Date: 1999-05-01
#
# Abstract: This script runs a single global spectral model forecast.
#   The initial conditions and run parameters are passed in the argument list.
#
# Script history log:
# 1999-05-01  Mark Iredell
# 2005-01-03  Cheng-Hsuan Lu :add namelist SOIL_VEG
#                             set FSMCL(2:4) = FSMCL2
#                             add FNVMNC,FNVMXC,FNSLPC,FNABSC
# 2006-02     Shrinivas Moorthi Modified to run ESMF - Stand Alone
#                             version of GFS - Only filestyle "L"
#                             allowed - Added a ESMF config file
#                             The script can run up to 21 ENS members
#                             concurrently.
# 2006-06     Shrinivas Moorthi : Added default PE$n values to 0
# 2009-2010   Shrinvias Moorthi : Added stochastic ensembles, semi-Lagrangian
#                                 high frequency output, G3D outputs and many
#                                 other upgrades related to model changes
#
# Usage:  global_forecast.sh SIGI SFCI SIGO FLXO FHOUT FHMAX IGEN NSTI NSTO D3DO G3DO FHOUT_HF FHMAX_HF
#
#   Input script positional parameters:
#     1             Input sigma file 1
#                   defaults to $SIGI; one or the other is required
#     2             Input surface file
#                   defaults to $SFCI; one or the other is required
#     3             Output sigma file with embedded forecast hour '${FH}'
#                   defaults to $SIGO, then to ${COMOUT}/sigf'${FH}'$SUFOUT
#     4             Output flux file with embedded forecast hour '${FH}'
#                   defaults to $FLXO, then to ${COMOUT}/flxf'${FH}'$SUFOUT
#     5             Output frequency in hours
#                   defaults to $FHOUT, then to 3
#     6             Length of forecast in hours
#                   defaults to $FHMAX; otherwise FHSEG is required to be set
#     7             Output generating code
#                   defaults to $IGEN, defaults to 0
#     8             Output D3D file with embedded forecast hour '${FH}'
#                   defaults to $D3DO, then to ${COMOUT}/d3df'${FH}'$SUFOUT
#     9             Input NST file
#     10            Output NST file
#     11            output 3d file for GOCART
#                   defaults to $G3DO, then to ${COMOUT}/g3df'${FH}'$SUFOUT
#     12            High frequency output interval ; default 1 hour
#     13            Maximum hour of high frequecny output
#
#   Imported Shell Variables:
#     SIGI          Input sigma file
#                   overridden by $1; one or the other is required
#     SFCI          Input surface file
#                   overridden by $2; one or the other is required
#     SIGO          Output sigma file with embedded forecast hour '${FH}'
#                   overridden by $3; defaults to ${COMOUT}/sigf'${FH}'$SUFOUT
#     FLXO          Output flux file with embedded forecast hour '${FH}'
#                   overridden by $4; defaults to ${COMOUT}/flxf'${FH}'$SUFOUT
#     D3DO          Output d3d file with embedded forecast hour '${FH}'
#                   overridden by $4; defaults to ${COMOUT}/d3df'${FH}'$SUFOUT
#     NSTO         Output nst file with embedded forecast hour '${FH}'
#                   overridden by $4; defaults to ${COMOUT}/nstf'${FH}'$SUFOUT
#     G3DO          Output g3d file with embedded forecast hour '${FH}'
#                   overridden by $4; defaults to ${COMOUT}/g3df'${FH}'$SUFOUT
#     FHOUT         Output frequency in hours
#                   overridden by $5; defaults to 3
#     FHMAX         Length of forecast in hours
#                   overridden by $6; either FHMAX or FHSEG must be set
#     IGEN          Output generating code
#                   overridden by $7; defaults to 0
#     FIXGLOBAL     Directory for global fixed files
#                   defaults to /nwprod/fix
#     EXECGLOBAL    Directory for global executables
#                   defaults to /nwprod/exec
#     DATA          working directory
#                   (if nonexistent will be made, used and deleted)
#                   defaults to current working directory
#     COMOUT        output directory
#                   (if nonexistent will be made)
#                   defaults to current working directory
#     XC            Suffix to add to executables
#                   defaults to none
#     SUFOUT        Suffix to add to output filenames
#                   defaults to none
#     NCP           Copy command
#                   defaults to cp
#     SIGHDR        Command to read sigma header
#                   (required if JCAP, LEVS, or FHINI are not specified)
#                   defaults to ${EXECGLOBAL}/global_sighdr$XC
#     JCAP          Spectral truncation
#                   defaults to the value in the input sigma file header
#     LEVS          Number of levels
#                   defaults to the value in the input sigma file header
#     FCSTEXEC      Forecast executable
#                   defaults to ${EXECGLOBAL}/global_fcst$XC
#     SIGI2         Second time level sigma restart file
#                   defaults to NULL
#     CO2CON        Input CO2 radiation (vertical resolution dependent)
#                   defaults to ${FIXGLOBAL}/global_co2con.l${LEVS}.f77
#     MTNVAR        Input mountain variance (horizontal resolution dependent)
#                   defaults to ${FIXGLOBAL}/global_mtnvar.t${JCAP}.f77
#     CLTUNE        Input cloud tuning file
#                   defaults to ${FIXGLOBAL}/global_cldtune.f77
#     DTBTHE        Input equivalent potential temperature file
#                   defaults to ${FIXGLOBAL}/global_tbthe.f77
#     O3FORC        Input ozone forcing (production/loss) climatology
#                   defaults to ${FIXGLOBAL}/global_o3prdlos.f77
#     O3CLIM        Input ozone climatology
#                   defaults to ${FIXGLOBAL}/global_o3clim.txt
#     FNGLAC        Input glacier climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_glacier.2x2.grb
#     FNMXIC        Input maximum sea ice climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_maxice.2x2.grb
#     FNTSFC        Input SST climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_sstclim.2x2.grb
#     FNSNOC        Input snow climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_snoclim.1.875.grb
#     FNZORC        Input roughness climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_zorclim.1x1.grb
#     FNALBC        Input albedo climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_albedo4.1x1.grb
#     FNAISC        Input sea ice climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_iceclim.2x2.grb
#     FNTG3C        Input deep soil temperature climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_tg3clim.2.6x1.5.grb
#     FNVEGC        Input vegetation fraction climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_vegfrac.1x1.grb
#     FNVETC        Input vegetation type climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_vegtype.1x1.grb
#     FNSOTC        Input soil type climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_soiltype.1x1.grb
#     FNSMCC        Input soil moisture climatology GRIB file
#                   defaults to ${FIXGLOBAL}/global_soilmcpc.1x1.grb
#     FNVMNC        Input min veg frac climatology GRIB file    
#                   defaults to ${FIXGLOBAL}/global_shdmin.0.144x0.144.grb
#     FNVMXC        Input max veg frac climatology GRIB file    
#                   defaults to ${FIXGLOBAL}/global_shdmax.0.144x0.144.grb
#     FNSLPC        Input slope type climatology GRIB file    
#                   defaults to ${FIXGLOBAL}/global_slope.1x1.grb
#     FNABSC        Input max snow albedo climatology GRIB file    
#                   defaults to ${FIXGLOBAL}/global_snoalb.1x1.grb
#     OROGRAPHY     Input orography GRIB file (horiz resolution dependent)
#                   defaults to ${FIXGLOBAL}/global_orography.t$JCAP.grb
#     FNMSKH        Input high resolution land mask GRIB file
#                   defaults to ${FIXGLOBAL}/seaice_newland.grb
#     FNTSFA        Input SST analysis GRIB file
#                   defaults to none
#     FNACNA        Input sea ice analysis GRIB file
#                   defaults to none
#     FNSNOA        Input snow analysis GRIB file
#                   defaults to none
#     AERODIR       Input aersol climatology directory
#                   defaults to ${FIXGLOBAL}
##########################################################################
#     FIX_RAD       Directory for global fixed files
#                   Defaults to $${FIXGLOBAL}
#     EMISDIR       Input earth's surface emissivity data directory
#                   defaults to ${FIX_RAD} - export IEMS=1 to activate
#     SOLCDIR       11 year cycle Solar constat data directory
#                   defaults to ${FIX_RAD} - export ISOL=1 to activate
#     VOLCDIR       Volcanic aerosol  data directory
#                   defaults to ${FIX_RAD} - export IAER=11 or 12 to activate
#                   IAER=11 uses opac aero_volc; IAER=12 uses gocart+volc
#     CO2DIR        Historical CO2 data directory
#                   defaults to ${FIX_RAD} - export ICO2=1 or 2 to activate
#                   ICO2=1 gives annual mean and ICO2=2 uses monthly 2D data
##########################################################################
#
#     SIGR1         Output first time level sigma restart file
#                   defaults to ${DATA}/sigr1 which is deleted
#     SIGR2         Output second time level sigma restart file
#                   defaults to ${DATA}/sigr2 which is deleted
#     SFCR          Output surface restart file
#                   defaults to ${DATA}/sfcr which is deleted
#     NSTR          Output nst restart file
#                   defaults to ${DATA}/nstr which is deleted
#     SFCO          Output surface file with embedded forecast hour '${FH}'
#                   defaults to ${COMOUT}/sfcf'${FH}'$SUFOUT
#     LOGO          Output log file with embedded forecast hour '${FH}'
#                   defaults to ${COMOUT}/logf'${FH}'$SUFOUT
#     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
#     FHINI         Starting forecast hour
#                   defaults to the value in the input sigma file header
#     FHSEG         Number of hours to integrate
#                   (only required if FHMAX is not specified)
#                   defaults to 0
#     DELTIM        Timestep in seconds
#                   defaults to 3600/($JCAP/20)
#     FHRES         Restart frequency in hours
#                   defaults to 24
#     FHZER         Zeroing frequency in hours
#                   defaults to 6
#     FHLWR         Longwave radiation frequency in hours
#                   defaults to 3
#     FHSWR         Shortwave radiation frequency in hours
#                   defaults to 1
#     FHROT         Forecast hour to Read One Time level
#                   defaults to 0
#     FHDFI         Half number of hours of digital filter initialization
#                   defaults to 0
#     FHCYC         Surface cycling frequency in hours
#                   defaults to 0 for no cycling
#     IDVC          Integer ID of the vertical coordinate type
#                   defaults to that in the header for the input upperair
#                   file. IDVC=1 for sigma; IDVC=2 for pressure/sigma hybrid
#     TFILTC        Time filter coefficient
#                   defaults to 0.85
#     FCSTVARS      Other namelist inputs to the forecast executable
#                   defaults to none set
#     TRACERVARS    Other namelist inputs to the forecast executable
#                   defaults to none set
#     FSMCL2        Scale in days to relax to soil moisture climatology
#                   defaults to 99999 for no relaxation
#     FTSFS         Scale in days to relax to SST anomaly to zero
#                   defaults to 90
#     FAISS         Scale in days to relax to sea ice to climatology
#                   defaults to 99999
#     FSNOL         Scale in days to relax to snow to climatology
#                   defaults to 99999
#     FSICL         Scale in days to relax to sea ice to climatology
#                   defaults to 99999
#     CYCLEVARS     Other namelist inputs to the surface cycling
#                   defaults to none set
#     NTHREADS      Number of threads
#                   defaults to 1
#     NTHSTACK      Size of stack per thread
#                   defaults to 64000000
#     FILESTYLE     File management style flag
#                   ('L' for symbolic links in $DATA is the only allowed style),
#     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
#
#   Exported Shell Variables:
#     PGM           Current program name
#     pgm
#     ERR           Last return code
#     err
#
#   Modules and files referenced:
#     scripts    : $INISCRIPT
#                  $LOGSCRIPT
#                  $ERRSCRIPT
#                  $ENDSCRIPT
#
#     programs   : $FCSTEXEC
#
#     input data : $1 or $SIGI
#                  $2 or $SFCI
#                  $SIGI2
#                  $FNTSFA
#                  $FNACNA
#                  $FNSNOA
#
#     fixed data : $CO2CON
#                  $MTNVAR
#                  $CLTUNE
#                  $DTBTHE
#                  $O3FORC
#                  $O3CLIM
#                  $FNGLAC
#                  $FNMXIC
#                  $FNTSFC
#                  $FNSNOC
#                  $FNZORC
#                  $FNALBC
#                  $FNAISC
#                  $FNTG3C
#                  $FNVEGC
#                  $FNVETC
#                  $FNSOTC
#                  $FNSMCC
#                  $FNVMNC
#                  $FNVMXC
#                  $FNSLPC
#                  $FNABSC
#                  $FNMSKH
#                  $OROGRAPHY
#
#     output data: $3 or $SIGO
#                  $4 or $FLXO
#                  $SFCO
#                  $LOGO
#                  $SIGR1
#                  $SIGR2
#                  $SFCR
#                  $NSTR
#                  $PGMOUT
#                  $PGMERR
#
#     scratch    : ${DATA}/fort.11
#                  ${DATA}/fort.12
#                  ${DATA}/fort.14
#                  ${DATA}/fort.15
#                  ${DATA}/fort.24
#                  ${DATA}/fort.27
#                  ${DATA}/fort.28
#                  ${DATA}/fort.29
#                  ${DATA}/fort.43
#                  ${DATA}/fort.48
#                  ${DATA}/fort.51
#                  ${DATA}/fort.52
#                  ${DATA}/fort.53
#                  ${DATA}/SIG.F*
#                  ${DATA}/SFC.F*
#                  ${DATA}/FLX.F*
#                  ${DATA}/LOG.F*
#                  ${DATA}/sigr1
#                  ${DATA}/sigr2
#                  ${DATA}/sfcr
#                  ${DATA}/nstr
#                  ${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.
export MP_BINDPROC=${MP_BINDPROC:-yes}
export MEMORY_AFFINIY=${MEMORY_AFFINIY:-MCM}
export MP_SYNC_QP=${MP_SYNC_QP:-yes}
export MP_SHARED_MEMORY=${MP_SHARED_MEMORY:-"NO"}
export MP_COREFILE_FORMAT=${MP_COREFILE_FORMAT:-"lite"}
export VERBOSE=${VERBOSE:-"NO"}
if [[ $VERBOSE = YES ]] ; then
   echo $(date) EXECUTING $0 $* >&2
   set -x
fi
#  Command line arguments.
export ENS_NUM=${ENS_NUM:-1}
export FM=${FM}
export SIGI=${1:-${SIGI:-?}}
export SFCI=${2:-${SFCI:-?}}
export SIGO=${3:-${SIGO}}
export FLXO=${4:-${FLXO}}
export FHOUT=${5:-${FHOUT:-3}}
export FHMAX=${6:-${FHMAX:-0}}
export IGEN=${7:-${IGEN:-0}}
export D3DO=${8:-${D3DO}}
export NSTI=${9:-${NSTI:-?}}
export NSTO=${10:-${NSTO}}
export G3DO=${11:-${G3DO}}
export FHOUT_HF=${12:-${FHOUT_HF:-1}}
export FHMAX_HF=${13:-${FHMAX_HF:-0}}

# DHOU 02/28/2008 Modified for general case
# DHOU 01/07/2008 Added two input for the GEFS_Cpl module
# FHM_FST is the FHMAX for the integration before the first stop
# FH_INC is the FHMAX_increase for the integration before next stop
export FH_INC=${FH_INC:-100000000}
export ENS_SPS=${ENS_SPS:-.false.}
export ADVANCECOUNT_SETUP=${ADVANCECOUNT_SETUP:-0}
export HOUTASPS=${HOUTASPS:-10000}

export SPS_PARM1=${SPS_PARM1:-"0.005 10.0 0.005 10.0 0.0 0.0 0.0 0.0 0.0 0.0"}
export SPS_PARM2=${SPS_PARM2:-"0.105 0.03 0.12 42.0 0.0 0.0 0.0 0.0 0.0 0.0"}
export SPS_PARM3=${SPS_PARM3:-"0.2 0.34 -0.34 3.0 0.0 0.0 0.0 0.0 0.0 0.0"}

[[ $ENS_NUM -le 2 ]]&&ENS_SPS=.false.
if [ $ENS_SPS = .false. ] ; then export FH_INC=$FHMAX ; fi

#
#  Directories.
#
export HOMEDIR=${HOMEDIR:-/nwprod}
export NWPROD=${NWPROD:-$HOMEDIR}
export FIXSUBDA=${FIXSUBDA:-fix/fix_am}
export FIXGLOBAL=${FIXGLOBAL:-$NWPROD/$FIXSUBDA}
export FIX_RAD=${FIX_RAD:-$FIXGLOBAL}
export EXECGLOBAL=${EXECGLOBAL:-$NWPROD/exec}
export DATA=${DATA:-$(pwd)}
export COMOUT=${COMOUT:-$(pwd)}
#  Filenames.
#MN=c00                  ; # Commented by Moorthi
MN=${MN:-""}
export XC=${XC}
export SUFOUT=${SUFOUT}
export SIGHDR=${SIGHDR:-${EXECGLOBAL}/global_sighdr$XC}
export JCAP=${JCAP:-$(echo jcap|eval $SIGHDR ${SIGI}$FM)}
export LEVS=${LEVS:-$(echo levs|eval $SIGHDR ${SIGI}$FM)}
export LONR=${LONR:-$(echo lonr|eval $SIGHDR ${SIGI}$FM)}
export LATR=${LATR:-$(echo latr|eval $SIGHDR ${SIGI}$FM)}
export LONF=${LONF:-$(echo lonf|eval $SIGHDR ${SIGI}$FM)}
export LATG=${LATG:-$(echo latf|eval $SIGHDR ${SIGI}$FM)}
export NTRAC=${NTRAC:-$(echo ntrac|eval $SIGHDR ${SIGI}$FM)}
export IDVC=${IDVC:-$(echo idvc|eval $SIGHDR ${SIGI}$FM)}
export NMTVR=${NMTVR:-14}
export LSOIL=${LSOIL:-4}
export NTOZ=${NTOZ:-2}
export NTCW=${NTCW:-3}
export NCLD=${NCLD:-1}
export NGPTC=${NGPTC:-30}
export ADIAB=${ADIAB:-.false.}
export pre_rad=${pre_rad:-.false.}
export random_xkt2=${random_xkt2:-.true.}
export FCSTEXEC=${FCSTEXEC:-${EXECGLOBAL}/global_fcst$XC}
export SIGI2=${SIGI2:-NULL}
export CO2CON=${CO2CON:-${FIXGLOBAL}/global_co2con.l${LEVS}.f77}
export MTNVAR=${MTNVAR:-${FIXGLOBAL}/global_mtnvar.t${JCAP}.f77}
export CLTUNE=${CLTUNE:-${FIXGLOBAL}/global_cldtune.f77}
export DTBTHE=${DTBTHE:-${FIXGLOBAL}/global_tbthe.f77}
export O3FORC=${O3FORC:-${FIXGLOBAL}/global_o3prdlos.f77}
export O3CLIM=${O3CLIM:-${FIXGLOBAL}/global_o3clim.txt}
export FNGLAC=${FNGLAC:-${FIXGLOBAL}/global_glacier.2x2.grb}
export FNMXIC=${FNMXIC:-${FIXGLOBAL}/global_maxice.2x2.grb}
export FNTSFC=${FNTSFC:-${FIXGLOBAL}/cfs_oi2sst1x1monclim19822001.grb}
export FNSNOC=${FNSNOC:-${FIXGLOBAL}/global_snoclim.1.875.grb}
export FNZORC=${FNZORC:-${FIXGLOBAL}/global_zorclim.1x1.grb}
export FNALBC=${FNALBC:-${FIXGLOBAL}/global_albedo4.1x1.grb}
export FNAISC=${FNAISC:-${FIXGLOBAL}/cfs_ice1x1monclim19822001.grb}
export FNTG3C=${FNTG3C:-${FIXGLOBAL}/global_tg3clim.2.6x1.5.grb}
export FNVEGC=${FNVEGC:-${FIXGLOBAL}/global_vegfrac.0.144.decpercent.grb}
export FNVETC=${FNVETC:-${FIXGLOBAL}/global_vegtype.1x1.grb}
export FNSOTC=${FNSOTC:-${FIXGLOBAL}/global_soiltype.1x1.grb}
export FNSMCC=${FNSMCC:-${FIXGLOBAL}/global_soilmcpc.1x1.grb}
export FNVMNC=${FNVMNC:-${FIXGLOBAL}/global_shdmin.0.144x0.144.grb}
export FNVMXC=${FNVMXC:-${FIXGLOBAL}/global_shdmax.0.144x0.144.grb}
export FNSLPC=${FNSLPC:-${FIXGLOBAL}/global_slope.1x1.grb}
export FNABSC=${FNABSC:-${FIXGLOBAL}/global_snoalb.1x1.grb}
export FNMSKH=${FNMSKH:-${FIXGLOBAL}/seaice_newland.grb}
export OROGRAPHY=${OROGRAPHY:-${FIXGLOBAL}/global_orography.t$JCAP.grb}
export FNTSFA=${FNTSFA}
export FNACNA=${FNACNA}
export FNSNOA=${FNSNOA}
#
export AERODIR=${AERODIR:-${FIX_RAD}}
export EMISDIR=${EMISDIR:-${FIX_RAD}}
export SOLCDIR=${SOLCDIR:-${FIX_RAD}}
export VOLCDIR=${VOLCDIR:-${FIX_RAD}}
export CO2DIR=${CO2DIR:-${FIX_RAD}}
#export ALBDIR=${ALBDIR:-${FIX_RAD}}
export IEMS=${IEMS:-0}
export ISOL=${ISOL:-0}
export IAER=${IAER:-0}
export ICO2=${ICO2:-0}
#export IALB=${IALB:-0}
#
LOCD=${LOCD:-""}
export COMENS=$COMOUT'$LOCD'
export SIGR1=${SIGR1:-${COMENS}/sigr1}
export SIGR2=${SIGR2:-${COMENS}/sigr2}
export SFCR=${SFCR:-${COMENS}/sfcr}
export NSTR=${NSTR:-${COMENS}/nstr}

export SIGS1=${SIGS1:-${COMENS}/sigs1}
export SIGS2=${SIGS2:-${COMENS}/sigs2}
export SFCS=${SFCS:-${COMENS}/sfcs}
export NSTS=${NSTS:-${COMENS}/nsts}

export SIGO=${SIGO:-${COMENS}/sigf'${FH}''${MN}'$SUFOUT}
export SFCO=${SFCO:-${COMENS}/sfcf'${FH}''${MN}'$SUFOUT}
export FLXO=${FLXO:-${COMENS}/flxf'${FH}''${MN}'$SUFOUT}
export LOGO=${LOGO:-${COMENS}/logf'${FH}''${MN}'$SUFOUT}
export D3DO=${D3DO:-${COMENS}/d3df'${FH}''${MN}'$SUFOUT}
export NSTO=${NSTO:-${COMENS}/nstf'${FH}''${MN}'$SUFOUT}
export G3DO=${G3DO:-${COMENS}/g3df'${FH}''${MN}'$SUFOUT}
export INISCRIPT=${INISCRIPT}
export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}
export LOGSCRIPT=${LOGSCRIPT}
export ENDSCRIPT=${ENDSCRIPT}
#  Other variables.
export FHINI=${FHINI:-$(echo ifhr|eval $SIGHDR ${SIGI}$FM)}
export FHSEG=${FHSEG:-0}
export FHMAX=${FHMAX:-$((10#$FHINI+10#$FHSEG))}
export DELTIM=${DELTIM:-$((3600/(JCAP/20)))}

#DHOU 02/28/2008, calculate FHM_FST
((FHM_FST=$FHINI+$FH_INC))
 echo $FHM_FST $ADVANCECOUNT_SETUP
 if [[ $FHM_FST -ge $FHMAX ]] ; then
  FHM_FST=$FHMAX
 fi
 echo DHOU FHM_FST, $FHINI, $FHMAX, $FHM_FST

export FHRES=${FHRES:-24}
export FHZER=${FHZER:-6}
export FHLWR=${FHLWR:-3}
export FHSWR=${FHSWR:-1}
export FHROT=${FHROT:-0}
export FHDFI=${FHDFI:-0}
export FHCYC=${FHCYC:-0}
export GB=${GB:-0}
export gfsio_in=${gfsio_in:-.false.}
export gfsio_out=${gfsio_out:-.false.}
export FCSTVARS="gfsio_in=$gfsio_in,gfsio_out=$gfsio_out,$FCSTVARS"
if [ $gfsio_in = .true. ] ; then
 export GB=1
fi
if [ $IDVC = 1 ] ; then
 export HYBRID=.false.
 export GEN_COORD_HYBRID=.false.
elif [ $IDVC = 2 ] ; then
 export HYBRID=.true.
 export GEN_COORD_HYBRID=.false.
elif [ $IDVC = 3 ] ; then
 export HYBRID=.false.
 export GEN_COORD_HYBRID=.true.
fi
export TFILTC=${TFILTC:-0.85}
export FCSTVARS=${FCSTVARS:-""}
export TRACERVARS=${TRACERVARS:-""}
export FSMCL2=${FSMCL2:-99999}
export FTSFS=${FTSFS:-90}
export FAISS=${FAISS:-99999}
export FSNOL=${FSNOL:-99999}
export FSICL=${FSICL:-99999}
export CYCLVARS=${CYCLVARS}
export NTHREADS=${NTHREADS:-1}
export NTHSTACK=${NTHSTACK:-128000000}
export XLSMPOPTS=${XLSMPOPTS:-"parthds=$NTHREADS:stack=$NTHSTACK"}
export FILESTYLE=${FILESTYLE:-'L'}
export PGMOUT=${PGMOUT:-${pgmout:-'&1'}}
export PGMERR=${PGMERR:-${pgmerr:-'&2'}}
export MEMBER_NAMES=${MEMBER_NAMES:-''}
export BIND_TASKS=${BIND_TASKS:-no}
typeset -L1 l=$PGMOUT
[[ $l = '&' ]]&&a=''||a='>'
export REDOUT=${REDOUT:-'1>'$a}
typeset -L1 l=$PGMERR
[[ $l = '&' ]]&&a=''||a='>'
export REDERR=${REDERR:-'2>'$a}
################################################################################
#  Preprocessing
$INISCRIPT
pwd=$(pwd)
if [[ -d $DATA ]] ; then
   mkdata=NO
else
   mkdir -p $DATA
   mkdata=YES
fi
cd $DATA||exit 99
[[ -d $COMOUT ]]||mkdir -p $COMOUT
################################################################################
#if [[ $HOUTASPS -gt 10000 ]] ; then
#   (( HOUTA = HOUTASPS - 10000 ))
#   NMSUB=${NMSUB:-'.new'}
#else
#   HOUTA=-1
#   NMSUB=""
#fi
# DHOU, 09/11/2010 commented out previous block and adaedd the follwing block
 if [[ $HOUTASPS -lt 10000 ]] ; then
    (( HOUTA = FHROT + FHMAX - HOUTASPS ))  # DHOU, 09/11/2010
    NMSUB=${NMSUB}
 fi


#  Make forecast
export XLFRTEOPTS="unit_vars=yes:intrinthds=1"
export PGM=$DATA/$(basename $FCSTEXEC)
export pgm=$PGM
$LOGSCRIPT
${NCP:-cp} $FCSTEXEC $DATA
rm -f NULL
FH=$((10#$FHINI))
[[ $FH -lt 10 ]]&&FH=0$FH
if [[ $FHINI -gt 0 ]] ; then
   if [ $FHOUT_HF -ne $FHOUT -a $FH -lt $FHMAX_HF ] ; then
    FH=$((10#$FHINI+10#$FHOUT_HF))
   else
    FH=$((10#$FHINI+10#$FHOUT))
   fi
   [[ $FH -lt 10 ]]&&FH=0$FH
fi
while [[ $FH -le $FHMAX ]] ; do
   if [[ $FH -le $HOUTA ]] ; then
     FNSUB=$NMSUB
   else
     FNSUB=""
   fi
   eval rm -f ${LOGO}${FNSUB}
   if [ $FHOUT_HF -ne $FHOUT -a $FH -lt $FHMAX_HF ] ; then
     ((FH=10#$FH+10#$FHOUT_HF))
   else
     ((FH=10#$FH+10#$FHOUT))
   fi
   [[ $FH -lt 10 ]]&&FH=0$FH
done
if [[ $FILESTYLE = "L" ]] ; then
   ln -fs $CO2CON fort.15
   ln -fs $MTNVAR fort.24
   ln -fs $DTBTHE fort.27
   ln -fs $O3FORC fort.28
   ln -fs $CLTUNE fort.43
   ln -fs $O3CLIM fort.48
else
  echo 'FILESTYLE' $FILESTYLE 'NOT SUPPORTED'
  exit 222
fi
#for m in 01 02 03 04 05 06 07 08 09 10 11 12
#do
# ln -fs $AERODIR/global_aeropac3a.m$m.txt aeropac3a.m$m
#done
AEROSOL_FILE=${AEROSOL_FILE:-global_climaeropac_global.txt}
EMMISSIVITY_FILE=${EMMISSIVITY_FILE:-global_sfc_emissivity_idx.txt}
ln -fs $AERODIR/$AEROSOL_FILE     aerosol.dat
ln -fs $EMISDIR/$EMMISSIVITY_FILE sfc_emissivity_idx.txt
ln -fs $OROGRAPHY                 orography
if [ $IEMS -gt 0 ] ; then
 EMMISSIVITY_FILE=${EMMISSIVITY_FILE:-global_sfc_emissivity_idx.txt}
 ln -fs $EMISDIR/$EMMISSIVITY_FILE sfc_emissivity_idx.txt
#export FCSTVARS="IEMS=$IEMS,$FCSTVARS"
fi
if [ $ISOL -gt 0 ] ; then
 ${NCP:-cp} $SOLCDIR/*solarconstantdata.txt solarconstantdata.txt
#export FCSTVARS="ISOL=$ISOL,$FCSTVARS"
fi
if [ $IAER -gt 0 ] ; then
 cd $VOLCDIR
 for file in `ls | grep volcanic_aerosols` ; do
  ${NCP:-cp} $file $DATA/$(echo $file |sed -e "s/global_//g")
 done
#export FCSTVARS="IAER=$IAER,$FCSTVARS"
fi
if [ $ICO2 -gt 0 ] ; then
 cd $CO2DIR
 for file in `ls | grep co2historicaldata` ; do
  ${NCP:-cp} $file $DATA/$(echo $file |sed -e "s/global_//g")
 done
 CO2_seasonal_cycle=${CO2_seasonal_cycle:-global_co2monthlycyc1976_2006.txt}
 ${NCP:-cp} $CO2_seasonal_cycle $DATA/co2monthlycyc.txt
#export FCSTVARS="ICO2=$ICO2,$FCSTVARS"
fi
cd $DATA
export FCSTVARS="IEMS=$IEMS,ISOL=$ISOL,IAER=$IAER,ICO2=$ICO2,$FCSTVARS"
#
#     For one member case i.e. control
#
if [[ $ENS_NUM -le 1 ]] ; then
  FH=$((10#$FHINI))
  [[ $FH -lt 10 ]]&&FH=0$FH
  if [[ $FHINI -gt 0 ]] ; then
    if [ $FHOUT_HF -ne $FHOUT -a $FH -lt $FHMAX_HF ] ; then
     FH=$((10#$FHINI+10#$FHOUT_HF))
    else
     FH=$((10#$FHINI+10#$FHOUT))
    fi
    [[ $FH -lt 10 ]]&&FH=0$FH
  fi
#        For Initial Conditions
  ln -fs $SIGI  sig_ini
  ln -fs $SFCI  sfc_ini
  ln -fs $SIGI2 sig_ini2
  ln -fs $NSTI  nst_ini
#        For output
  while [[ $FH -le $FHMAX ]] ; do
    if [[ $FH -le $HOUTA ]] ; then
      FNSUB=$NMSUB
    else
      FNSUB=""
    fi
    eval ln -fs ${SIGO}$FNSUB SIG.F${FH}
    eval ln -fs ${SFCO}$FNSUB SFC.F${FH}
    eval ln -fs ${FLXO}$FNSUB FLX.F${FH}
    eval ln -fs ${LOGO}$FNSUB LOG.F${FH}
    eval ln -fs ${D3DO}$FNSUB D3D.F${FH}
    eval ln -fs ${NSTO}$FNSUB NST.F${FH}
    eval ln -fs ${G3DO}$FNSUB G3D.F${FH}

    if [ $FHOUT_HF -ne $FHOUT -a $FH -lt $FHMAX_HF ] ; then
     ((FH=10#$FH+10#$FHOUT_HF))
    else
     ((FH=10#$FH+10#$FHOUT))
    fi
    [[ $FH -lt 10 ]]&&FH=0$FH
  done
  eval ln -fs $SIGR1 SIGR1
  eval ln -fs $SIGR2 SIGR2
  eval ln -fs $SFCR  SFCR
  eval ln -fs $NSTR  NSTR
else
#
#   For Ensemble runs (members > 1)
  for MN in $MEMBER_NAMES ; do
    IMN=`echo $MN|cut -c2-3`
    IMN=$((IMN+0))
    if [ $IMN -eq 0 ] ; then IMN=$ENS_NUM ; fi
    if [ $IMN -lt 10 ] ; then IMN=0$IMN ; fi
    if [ ${USESUBDIR:-NO} = YES ] ; then
     if [ $IMN -eq $ENS_NUM ] ; then LOCD=/c00 ; else LOCD=/p$IMN ; fi
    fi
    mkdir -p `eval echo \$COMENS`


#      This is just faking the ensemble ICs.
#   ${NCP:-cp} $SIGI  ${SIGI}${MN}
#   ${NCP:-cp} $SFCI  ${SFCI}${MN}
#   ${NCP:-cp} $SIGI2 ${SIGI2}${MN}
#        For Initial Conditions
#   ln -fs ${SIGI}${MN}  sig_ini${MN}
#   ln -fs ${SFCI}${MN}  sfc_ini${MN}
#   ln -fs ${SIGI2}${MN} sig_ini2${MN}
#   ln -fs ${NSTI}${MN}  nst_ini${MN}

    eval ln -fs ${SIGI}  sig_ini_${IMN}
    eval ln -fs ${SFCI}  sfc_ini_${IMN}
    eval ln -fs ${SIGI2} sig_ini2_${IMN}
    eval ln -fs ${NSTI}  nst_ini_${IMN}
#        For output
    FH=$((10#$FHINI))
    [[ $FH -lt 10 ]]&&FH=0$FH
    if [[ $FHINI -gt 0 ]] ; then
      if [ $FHOUT_HF -ne $FHOUT -a $FH -lt $FHMAX_HF ] ; then
       FH=$((10#$FHINI+10#$FHOUT_HF))
      else
       FH=$((10#$FHINI+10#$FHOUT))
      fi
      [[ $FH -lt 10 ]]&&FH=0$FH
    fi
    while [[ $FH -le $FHMAX ]] ; do
      if [[ $FH -le $HOUTA ]] ; then
        FNSUB=$NMSUB
      else
        FNSUB=""
      fi
#     eval ln -fs $SIGO SIG.F${FH}${MN}
#     eval ln -fs $SFCO SFC.F${FH}${MN}
#     eval ln -fs $FLXO FLX.F${FH}${MN}
#     eval ln -fs $LOGO LOG.F${FH}${MN}
#     eval ln -fs $D3DO D3D.F${FH}${MN}
#     eval ln -fs $NSTO NST.F${FH}${MN}
#     eval ln -fs $G3DO G3D.F${FH}${MN}

      eval ln -fs $SIGO$FNSUB SIG.F${FH}_${IMN}
      eval ln -fs $SFCO$FNSUB SFC.F${FH}_${IMN}
      eval ln -fs $FLXO$FNSUB FLX.F${FH}_${IMN}
      eval ln -fs $LOGO$FNSUB LOG.F${FH}_${IMN}
      eval ln -fs $D3DO$FNSUB D3D.F${FH}_${IMN}
      eval ln -fs $NSTO$FNSUB NST.F${FH}_${IMN}
      eval ln -fs $G3DO$FNSUB G3D.F${FH}_${IMN}

      if [ $FHOUT_HF -ne $FHOUT -a $FH -lt $FHMAX_HF ] ; then
       ((FH=10#$FH+10#$FHOUT_HF))
      else
       ((FH=10#$FH+10#$FHOUT))
      fi
      [[ $FH -lt 10 ]]&&FH=0$FH
    done

# 02/29/2008 DHOU,  added new files for the output after SPS
#     FH=$FHMAX
# 09/09/2008 DHOU,  changed the time of output after SPS, fro end to earlier
#             for the digital filtering after resolution change
      FH=$HOUTASPS
    if [[ $FH -lt 10000 ]] ; then
      [[ $FH -lt 10 ]]&&FH=0$FH
      eval ln -fs $SIGS SIG.S${FH}_${IMN}
      eval ln -fs $SFBS SFB.S${FH}_${IMN}
      eval ln -fs $FLXS FLX.S${FH}_${IMN}
    fi

#   ln -fs ${SIGR1}${MN} SIGR1${MN}
#   ln -fs ${SIGR2}${MN} SIGR2${MN}
#   ln -fs ${SFCR}${MN}  SFCR${MN}
#   ln -fs ${NSTR}${MN}  NSTR${MN}

    eval ln -fs ${SIGR1}_${IMN} SIGR1_${IMN}
    eval ln -fs ${SIGR2}_${IMN} SIGR2_${IMN}
    eval ln -fs ${SFCR}_{IMN}   SFCR_${IMN}
    eval ln -fs ${NSTR}_${IMN}  NSTR_${IMN}
# 02/29/2008 DHOU,  added new files for the re-start-files after SP
    if [ $ENS_NUM -gt 2 ] ; then
      eval ln -fs ${SIGS1}_${IMN} SIGS1_${IMN}
      eval ln -fs ${SIGS2}_${IMN} SIGS2_${IMN}
      eval ln -fs ${SFCS}_${IMN}  SFCS_${IMN}
      eval ln -fs ${NSTS}_${IMN}  NSTS_${IMN}
    fi
  done
fi

#
# Create Configure file (i.e. .rc file) here
# PE$n are to be imported from outside.  If PE$n are not set from outside, the
# model would give equal processors for all ensembel members.
#
c=1
while [ $c -le $ENS_NUM ] ; do
 eval export PE$c=\${PE$c:-0}
 c=$((c+1))
done
cat << EOF > gfs_namelist.rc

#nam_gfs +++++++++++++++++++++++++++
NLUNIT:                  35
DELTIM:                  ${DELTIM}.0
FHROT:                   $FHROT
NAMELIST:                gfs_namelist
TOTAL_MEMBER:            $ENS_NUM
GRIB_INPUT:              $GB
PE_MEMBER01:             $PE1
PE_MEMBER02:             $PE2
PE_MEMBER03:             $PE3
PE_MEMBER04:             $PE4
PE_MEMBER05:             $PE5
PE_MEMBER06:             $PE6
PE_MEMBER07:             $PE7
PE_MEMBER08:             $PE8
PE_MEMBER09:             $PE9
PE_MEMBER10:             $PE10
PE_MEMBER11:             $PE11
PE_MEMBER12:             $PE12
PE_MEMBER13:             $PE13
PE_MEMBER14:             $PE14
PE_MEMBER14:             $PE15
PE_MEMBER16:             $PE16
PE_MEMBER17:             $PE17
PE_MEMBER18:             $PE18
PE_MEMBER19:             $PE19
PE_MEMBER20:             $PE20
PE_MEMBER21:             $PE21

# For stachastic purturbed runs -  added by dhou and wyang
HH_INCREASE:             $FH_INC
HH_FINAL:                $FHMAX
HH_START:                $FHINI
ADVANCECOUNT_SETUP:      $ADVANCECOUNT_SETUP

SPS_PARM1:               $SPS_PARM1
SPS_PARM2:               $SPS_PARM2
SPS_PARM3:               $SPS_PARM3


#ESMF_State_Namelist +++++++++++++++

ENS_SPS:                          $ENS_SPS
HOUTASPS:                         $HOUTASPS

IDATE1_IMPORT:                    .false.
Z_IMPORT:                         .false.
PS_IMPORT:                        .false.
VOR_IMPORT:                       .false.
DIV_IMPORT:                       .false.
TEMP_IMPORT:                      .false.
Q_IMPORT:                         .false.
OZ_IMPORT:                        .false.
SCLD_IMPORT:                      .false.
TRIEO_IMPORT:                     .false.

IDATE1_EXPORT:                    .false.
Z_EXPORT:                         .false.
PS_EXPORT:                        .false.
VOR_EXPORT:                       .false.
DIV_EXPORT:                       .false.
TEMP_EXPORT:                      .false.
Q_EXPORT:                         .false.
OZ_EXPORT:                        .false.
SCLD_EXPORT:                      .false.
TRIEO_EXPORT:                     .true.

# Surface state.
#---------------
OROGRAPHY_IMPORT:                 .false.
T_SKIN_IMPORT:                    .false.
SOIL_MOIS_IMPORT:                 .false.
SNOW_DEPTH_IMPORT:                .false.
SOIL_T_IMPORT:                    .false.
DEEP_SOIL_T_IMPORT:               .false.
ROUGHNESS_IMPORT:                 .false.
CONV_CLOUD_COVER_IMPORT:          .false.
CONV_CLOUD_BASE_IMPORT:           .false.
CONV_CLOUD_TOP_IMPORT:            .false.
ALBEDO_VISIBLE_SCATTERED_IMPORT:  .false.
ALBEDO_VISIBLE_BEAM_IMPORT:       .false.
ALBEDO_NEARIR_SCATTERED_IMPORT:   .false.
ALBEDO_NEARIR_BEAM_IMPORT:        .false.
SEA_LEVEL_ICE_MASK_IMPORT:        .false.
VEGETATION_COVER_IMPORT:          .false.
CANOPY_WATER_IMPORT:              .false.
M10_WIND_FRACTION_IMPORT:         .false.
VEGETATION_TYPE_IMPORT:           .false.
SOIL_TYPE_IMPORT:                 .false.
ZENEITH_ANGLE_FACSF_IMPORT:       .false.
ZENEITH_ANGLE_FACWF_IMPORT:       .false.
UUSTAR_IMPORT:                    .false.
FFMM_IMPORT:                      .false.
FFHH_IMPORT:                      .false.
SEA_ICE_THICKNESS_IMPORT:         .false.
SEA_ICE_CONCENTRATION_IMPORT:     .false.
TPRCP_IMPORT:                     .false.
SRFLAG_IMPORT:                    .false.
ACTUAL_SNOW_DEPTH_IMPORT:         .false.
LIQUID_SOIL_MOISTURE_IMPORT:      .false.
VEGETATION_COVER_MIN_IMPORT:      .false.
VEGETATION_COVER_MAX_IMPORT:      .false.
SLOPE_TYPE_IMPORT:                .false.
SNOW_ALBEDO_MAX_IMPORT:           .false.

OROGRAPHY_EXPORT:                 .false.
T_SKIN_EXPORT:                    .false.
SOIL_MOIS_EXPORT:                 .false.
SNOW_DEPTH_EXPORT:                .false.
SOIL_T_EXPORT:                    .false.
DEEP_SOIL_T_EXPORT:               .false.
ROUGHNESS_EXPORT:                 .false.
CONV_CLOUD_COVER_EXPORT:          .false.
CONV_CLOUD_BASE_EXPORT:           .false.
CONV_CLOUD_TOP_EXPORT:            .false.
ALBEDO_VISIBLE_SCATTERED_EXPORT:  .false.
ALBEDO_VISIBLE_BEAM_EXPORT:       .false.
ALBEDO_NEARIR_SCATTERED_EXPORT:   .false.
ALBEDO_NEARIR_BEAM_EXPORT:        .false.
SEA_LEVEL_ICE_MASK_EXPORT:        .false.
VEGETATION_COVER_EXPORT:          .false.
CANOPY_WATER_EXPORT:              .false.
M10_WIND_FRACTION_EXPORT:         .false.
VEGETATION_TYPE_EXPORT:           .false.
SOIL_TYPE_EXPORT:                 .false.
ZENEITH_ANGLE_FACSF_EXPORT:       .false.
ZENEITH_ANGLE_FACWF_EXPORT:       .false.
UUSTAR_EXPORT:                    .false.
FFMM_EXPORT:                      .false.
FFHH_EXPORT:                      .false.
SEA_ICE_THICKNESS_EXPORT:         .false.
SEA_ICE_CONCENTRATION_EXPORT:     .false.
TPRCP_EXPORT:                     .false.
SRFLAG_EXPORT:                    .false.
ACTUAL_SNOW_DEPTH_EXPORT:         .false.
LIQUID_SOIL_MOISTURE_EXPORT:      .false.
VEGETATION_COVER_MIN_EXPORT:      .false.
VEGETATION_COVER_MAX_EXPORT:      .false.
SLOPE_TYPE_EXPORT:                .false.
SNOW_ALBEDO_MAX_EXPORT:           .false.

EOF

#
#   WARNING WARNING FILESTYLE "C" will not work for Component Ensembles!!!
#
#setenv TVDSVRLAUNCHCMD ssh
#setenv DISPLAY=140.90.192.88:0
#export TVDSVRLAUNCHCMD=ssh
#export DISPLAY=140.90.192.88:0
#eval $PGM <<EOF $REDOUT$PGMOUT $REDERR$PGMERR
#totalview poe -a $PGM <<EOF $REDOUT$PGMOUT $REDERR$PGMERR
#
#eval $PGM <<EOF $REDOUT$PGMOUT $REDERR$PGMERR
cat  > gfs_namelist <<EOF
 &nam_mrf
  FHOUT=$FHOUT, FHMAX=$FHM_FST, IGEN=$IGEN, DELTIM=$DELTIM,
  FHRES=$FHRES, FHZER=$FHZER, FHLWR=$FHLWR, FHSWR=$FHSWR,
  FHROT=$FHROT, FHDFI=$FHDFI, FHCYC=$FHCYC,
  ntrac=$NTRAC,jcap=$JCAP,levs=$LEVS,lonf=$LONF,
  lonr=$LONR,latg=$LATG,latr=$LATR,ntoz=$NTOZ,ntcw=$NTCW,ncld=$NCLD,lsoil=$LSOIL,
  nmtvr=$NMTVR, ngptc=$NGPTC,hybrid=$HYBRID,tfiltc=$TFILTC,
  gen_coord_hybrid=$GEN_COORD_HYBRID,FHOUT_HF=$FHOUT_HF,FHMAX_HF=$FHMAX_HF,
  $FCSTVARS /
&TRACER_CONSTANT
  $TRACERVARS /
&SOIL_VEG
  LPARAM = .FALSE./
&NAMSFC
  FNGLAC="$FNGLAC",
  FNMXIC="$FNMXIC",
  FNTSFC="$FNTSFC",
  FNSNOC="$FNSNOC",
  FNZORC="$FNZORC",
  FNALBC="$FNALBC",
  FNAISC="$FNAISC",
  FNTG3C="$FNTG3C",
  FNVEGC="$FNVEGC",
  FNVETC="$FNVETC",
  FNSOTC="$FNSOTC",
  FNSMCC="$FNSMCC",
  FNMSKH="$FNMSKH",
  FNTSFA="$FNTSFA",
  FNACNA="$FNACNA",
  FNSNOA="$FNSNOA",
  FNVMNC="$FNVMNC",
  FNVMXC="$FNVMXC",
  FNSLPC="$FNSLPC",
  FNABSC="$FNABSC",
  LDEBUG=.false.,
  FSMCL(2)=$FSMCL2,
  FSMCL(3)=$FSMCL2,
  FSMCL(4)=$FSMCL2,
  FTSFS=$FTSFS,
  FAISS=$FAISS,
  FSNOL=$FSNOL,
  FSICL=$FSICL,
  FTSFL=99999,
  FAISL=99999,
  FVETL=99999,
  FSOTL=99999,
  FvmnL=99999,
  FvmxL=99999,
  FSLPL=99999,
  FABSL=99999,
  FSNOS=99999,
  FSICS=99999,

  $CYCLVARS /
EOF

 eval $PGM $REDOUT$PGMOUT $REDERR$PGMERR
#totalview poe -a $PGM $REDOUT$PGMOUT $REDERR$PGMERR

export ERR=$?
export err=$ERR
$ERRSCRIPT||exit 2


rm -f NULL
rm -f fort.11 fort.12 fort.14
rm -f fort.15 fort.24 fort.27 fort.28 fort.29 fort.43 fort.48
rm -f orography
rm -f fort.51 fort.52 fort.53
#rm -f SIG.F* SFC.F* FLX.F* LOG.F* D3D.F* G3D.F*
##rm -f sigr1 sigr2 sfcr nstr
################################################################################
#  Postprocessing
cd $pwd
[[ $mkdata = YES ]]&&rmdir $DATA
$ENDSCRIPT
set +x
if [[ $VERBOSE = YES ]] ; then
   echo $(date) EXITING $0 with return code $err >&2
fi
exit $err
