#!/bin/ksh
################################################################################
####  UNIX Script Documentation Block
#                      .                                             .
# Script name:         exnam_gsireg_nest.sh.ecf
# Script description:  Runs regional GSI variational analysis for the NAM nests
#
# Author:        Eric Rogers       Org: NP22         Date: 1999-06-23
#
# Script history log:
# 1999-06-23  Eric Rogers
# 1999-08-02  Brent Gordon  - Modified for production
# 2006-01-13  Eric Rogers - Modified for WRF-NMM GSI analysis
# 2011-10-18  Eric Rogers - Modified for NEMS-NMMB GSI analysi for NAM nests
# 2014-04-18  Eric Rogers - Modified to run hybrid GSI w/global EnKF and new
#                           satellite bias correction scheme
#

set -x
cd $DATA

export OMP_NUM_THREADS=1
export MP_MPILIB=mpich2
export MP_EUILIB=us

msg="JOB $job HAS BEGUN"
postmsg "$jlogfile" "$msg"

#
# Get needed variables from exndas_prelim.sh.ecf
#
. $GESDIR/nam.t${cyc}z.envir.sh

DATEANL=$CYCLE
SDATE=$CYCLE
tmpdir=$DATA

adate=$SDATE

export tmmark_prev=tm03

offset_prev=-`echo $tmmark_prev | cut -c 3-4`
SDATE_PREV=`/nwprod/util/exec/ndate $offset_prev $CYCLE`

# try to see in links to restart files work to avoid having to copy them to tmpnwprd

# E.Rogers 2/07: Change links to copies so that file in /nwges is not overwritten by the 
# tm00 analysis, in case the tm03 wrfrst file is used to start the next NDAS cycle
# or PMB needs to rerun this job

if test $GUESS = "NAM"
then
   cp $GESNDAS/ndas.t${cyc}z.input_nemsio_guess_${domain}nest ./wrf_inout
else
   cp $GESDIR/nam.t${cyc}z.input_nemsio_guess_${domain}nest ./wrf_inout
fi

# Specify fixed field and data directories.
aday=`echo $adate | cut -c1-8`
cya=`echo $adate | cut -c9-10`
cday=`echo $CYCLE | cut -c1-8`
CYC=`echo $CYCLE | cut -c9-10`

#####  connect with gefs ensemble #################
gdate=`/nwprod/util/exec/ndate -6 $adate`
pdyg=`echo $gdate | cut -c1-8`
cycg=`echo $gdate | cut -c9-10`
cp /com/gfs/prod/enkf.${pdyg}/${cycg}/sfg_${gdate}_fhr06_ensmean .
cp /com/gfs/prod/enkf.${pdyg}/${cycg}/sfg_${gdate}_fhr06s* .
ls sfg_${gdate}_fhr06_ensmean > filelist
ls sfg_${gdate}_fhr06s* >> filelist
numfiles=`cat filelist | wc -l`
if [ $numfiles -eq 81 ]
then
  echo "We have all 81 enkf files at tm00"
else
  cp /com/gens/prod/gefs.${pdyg}/${cycg}/sfcsig/*sf06* .
  ls *sf06* > filelist
fi
##########################################################

#####  gdas sigf03 for ozges           #################
$USHGETGES/getges.sh -t sigcur -v ${adate} gfs_sigf03

numfiles=`cat filelist | wc -l`

if [ $numfiles -eq 81 ]
then
  HYB_ENS=.true.
else
  HYB_ENS=.false.
fi

if [ -s gfs_sigf03 ]
then
  USEGFSO3=.true.
else
  USEGFSO3=.false.
fi

sync

# Make gsi namelist
if [ $GUESS = NAM ] ; then
  v1=1.0
  fs=.true.
else
  v1=0.6
  fs=.false.
fi

# Make gsi namelist
cat << EOF > gsiparm.anl
 &SETUP
   miter=2,niter(1)=50,niter(2)=50,niter_no_qc(1)=20,
   write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true.,
   gencode=78,qoption=2,
   factqmin=0.0,factqmax=0.0,
   ndat=69,iguess=-1,use_gfs_ozone=$USEGFSO3,
   oneobtest=.false.,retrieval=.false.,
   nhr_assimilation=3,l_foto=.false.,
   use_pbl=.false.,gpstop=30.,
   print_diag_pcg=.true.,
   newpc4pred=.true., adp_anglebc=.true., angord=4,
   passive_bc=.false., use_edges=.false., emiss_bc=.true.,
   diag_precon=.true., step_start=1.e-3,
 /
 &GRIDOPTS
   wrf_nmm_regional=.false.,wrf_mass_regional=.false.,nems_nmmb_regional=.true.,diagnostic_reg=.false.,
   nmmb_reference_grid='H',grid_ratio_nmmb=3.0,
   filled_grid=.false.,half_grid=.false.,netcdf=.false.,nvege_type=20,
 /
 &BKGERR
   hzscl=0.373,0.746,1.50,
   vs=${v1},bw=0.,fstat=${fs},
 /
 &ANBKGERR
   anisotropic=.false.,
 /
 &JCOPTS
 /
 &STRONGOPTS
   nstrong=0,nvmodes_keep=20,period_max=3.,
    baldiag_full=.true.,baldiag_inc=.true.,  
 /
 &OBSQC
   dfact=0.75,dfact1=3.0,noiqc=.false.,c_varqc=0.02,
   vadfile='prepbufr',
 /
 &OBS_INPUT
   dmesh(1)=120.0,time_window_max=1.5,ext_sonde=.true.,
   dfile(01)='prepbufr',  dtype(01)='ps',        dplat(01)=' ',       dsis(01)='ps',                 dval(01)=0.0, dthin(01)=0,  dsfcalc(01)=0,
   dfile(02)='prepbufr'   dtype(02)='t',         dplat(02)=' ',       dsis(02)='t',                  dval(02)=0.0, dthin(02)=0,  dsfcalc(02)=0,
   dfile(03)='prepbufr',  dtype(03)='q',         dplat(03)=' ',       dsis(03)='q',                  dval(03)=0.0, dthin(03)=0,  dsfcalc(03)=0,
   dfile(04)='prepbufr',  dtype(04)='pw',        dplat(04)=' ',       dsis(04)='pw',                 dval(04)=0.0, dthin(04)=0,  dsfcalc(04)=0,
   dfile(05)='prepbufr',  dtype(05)='uv',        dplat(05)=' ',       dsis(05)='uv',                 dval(05)=0.0, dthin(05)=0,  dsfcalc(05)=0,
   dfile(06)='prepbufr',  dtype(06)='spd',       dplat(06)=' ',       dsis(06)='spd',                dval(06)=0.0, dthin(06)=0,  dsfcalc(06)=0,
   dfile(07)='prepbufr',  dtype(07)='dw',        dplat(07)=' ',       dsis(07)='dw',                 dval(07)=0.0, dthin(07)=0,  dsfcalc(07)=0,
   dfile(08)='radarbufr', dtype(08)='rw',        dplat(08)=' ',       dsis(08)='rw',                 dval(08)=0.0, dthin(08)=0,  dsfcalc(08)=0,
   dfile(09)='prepbufr',  dtype(09)='sst',       dplat(09)=' ',       dsis(09)='sst',                dval(09)=0.0, dthin(09)=0,  dsfcalc(09)=0,
   dfile(10)='gpsrobufr', dtype(10)='gps_bnd',   dplat(10)=' ',       dsis(10)='gps_bnd',            dval(10)=0.0, dthin(10)=0,  dsfcalc(10)=0,
   dfile(11)='ssmirrbufr',dtype(11)='pcp_ssmi',  dplat(11)='dmsp',    dsis(11)='pcp_ssmi',           dval(11)=0.0, dthin(11)=-1, dsfcalc(11)=0,
   dfile(12)='tmirrbufr', dtype(12)='pcp_tmi',   dplat(12)='trmm',    dsis(12)='pcp_tmi',            dval(12)=0.0, dthin(12)=-1, dsfcalc(12)=0,
   dfile(13)='sbuvbufr',  dtype(13)='sbuv2',     dplat(13)='n16',     dsis(13)='sbuv8_n16',          dval(13)=0.0, dthin(13)=0,  dsfcalc(13)=0,
   dfile(14)='sbuvbufr',  dtype(14)='sbuv2',     dplat(14)='n17',     dsis(14)='sbuv8_n17',          dval(14)=0.0, dthin(14)=0,  dsfcalc(14)=0,
   dfile(15)='sbuvbufr',  dtype(15)='sbuv2',     dplat(15)='n18',     dsis(15)='sbuv8_n18',          dval(15)=0.0, dthin(15)=0,  dsfcalc(15)=0,
   dfile(16)='hirs2bufr', dtype(16)='hirs2',     dplat(16)='n14',     dsis(16)='hirs2_n14',          dval(16)=0.0, dthin(16)=1,  dsfcalc(16)=0,
   dfile(17)='hirs3bufr', dtype(17)='hirs3',     dplat(17)='n16',     dsis(17)='hirs3_n16',          dval(17)=0.0, dthin(17)=1,  dsfcalc(17)=0,
   dfile(18)='hirs3bufr', dtype(18)='hirs3',     dplat(18)='n17',     dsis(18)='hirs3_n17',          dval(18)=0.0, dthin(18)=1,  dsfcalc(18)=0,
   dfile(19)='hirs4bufr', dtype(19)='hirs4',     dplat(19)='n18',     dsis(19)='hirs4_n18',          dval(19)=0.0, dthin(19)=1,  dsfcalc(19)=0,
   dfile(20)='hirs4bufr', dtype(20)='hirs4',     dplat(20)='metop-a', dsis(20)='hirs4_metop-a',      dval(20)=0.0, dthin(20)=1,  dsfcalc(20)=0,
   dfile(21)='gsndrbufr', dtype(21)='sndr',      dplat(21)='g11',     dsis(21)='sndr_g11',           dval(21)=0.0, dthin(21)=1,  dsfcalc(21)=0,
   dfile(22)='gsndrbufr', dtype(22)='sndr',      dplat(22)='g12',     dsis(22)='sndr_g12',           dval(22)=0.0, dthin(22)=1,  dsfcalc(22)=0,
   dfile(23)='gimgrbufr', dtype(23)='goes_img',  dplat(23)='g11',     dsis(23)='imgr_g11',           dval(23)=0.0, dthin(23)=1,  dsfcalc(23)=0,
   dfile(24)='gimgrbufr', dtype(24)='goes_img',  dplat(24)='g12',     dsis(24)='imgr_g12',           dval(24)=0.0, dthin(24)=1,  dsfcalc(24)=0,
   dfile(25)='airsbufr',  dtype(25)='airs',      dplat(25)='aqua',    dsis(25)='airs281SUBSET_aqua', dval(25)=0.0, dthin(25)=1,  dsfcalc(25)=0,
   dfile(26)='msubufr',   dtype(26)='msu',       dplat(26)='n14',     dsis(26)='msu_n14',            dval(26)=0.0, dthin(26)=1,  dsfcalc(26)=0,
   dfile(27)='amsuabufr', dtype(27)='amsua',     dplat(27)='n15',     dsis(27)='amsua_n15',          dval(27)=0.0, dthin(27)=1,  dsfcalc(27)=0,
   dfile(28)='amsuabufr', dtype(28)='amsua',     dplat(28)='n16',     dsis(28)='amsua_n16',          dval(28)=0.0, dthin(28)=1,  dsfcalc(28)=0,
   dfile(29)='amsuabufr', dtype(29)='amsua',     dplat(29)='n17',     dsis(29)='amsua_n17',          dval(29)=0.0, dthin(29)=1,  dsfcalc(29)=0,
   dfile(30)='amsuabufr', dtype(30)='amsua',     dplat(30)='n18',     dsis(30)='amsua_n18',          dval(30)=0.0, dthin(30)=1,  dsfcalc(30)=0,
   dfile(31)='amsuabufr', dtype(31)='amsua',     dplat(31)='metop-a', dsis(31)='amsua_metop-a',      dval(31)=0.0, dthin(31)=1,  dsfcalc(31)=0,
   dfile(32)='airsbufr',  dtype(32)='amsua',     dplat(32)='aqua',    dsis(32)='amsua_aqua',         dval(32)=0.0, dthin(32)=1,  dsfcalc(32)=0,
   dfile(33)='amsubbufr', dtype(33)='amsub',     dplat(33)='n15',     dsis(33)='amsub_n15',          dval(33)=0.0, dthin(33)=1,  dsfcalc(33)=0,
   dfile(34)='amsubbufr', dtype(34)='amsub',     dplat(34)='n16',     dsis(34)='amsub_n16',          dval(34)=0.0, dthin(34)=1,  dsfcalc(34)=0,
   dfile(35)='amsubbufr', dtype(35)='amsub',     dplat(35)='n17',     dsis(35)='amsub_n17',          dval(35)=0.0, dthin(35)=1,  dsfcalc(35)=0,
   dfile(36)='mhsbufr',   dtype(36)='mhs',       dplat(36)='n18',     dsis(36)='mhs_n18',            dval(36)=0.0, dthin(36)=1,  dsfcalc(36)=0,
   dfile(37)='mhsbufr',   dtype(37)='mhs',       dplat(37)='metop-a', dsis(37)='mhs_metop-a',        dval(37)=0.0, dthin(37)=1,  dsfcalc(37)=0,
   dfile(38)='ssmitbufr', dtype(38)='ssmi',      dplat(38)='f13',     dsis(38)='ssmi_f13',           dval(38)=0.0, dthin(38)=1,  dsfcalc(38)=0,
   dfile(39)='ssmitbufr', dtype(39)='ssmi',      dplat(39)='f14',     dsis(39)='ssmi_f14',           dval(39)=0.0, dthin(39)=1,  dsfcalc(39)=0,
   dfile(40)='ssmitbufr', dtype(40)='ssmi',      dplat(40)='f15',     dsis(40)='ssmi_f15',           dval(40)=0.0, dthin(40)=1,  dsfcalc(40)=0,
   dfile(41)='amsrebufr', dtype(41)='amsre_low', dplat(41)='aqua',    dsis(41)='amsre_aqua',         dval(41)=0.0, dthin(41)=1,  dsfcalc(41)=0,
   dfile(42)='amsrebufr', dtype(42)='amsre_mid', dplat(42)='aqua',    dsis(42)='amsre_aqua',         dval(42)=0.0, dthin(42)=1,  dsfcalc(42)=0,
   dfile(43)='amsrebufr', dtype(43)='amsre_hig', dplat(43)='aqua',    dsis(43)='amsre_aqua',         dval(43)=0.0, dthin(43)=1,  dsfcalc(43)=0,
   dfile(44)='ssmisbufr', dtype(44)='ssmis',     dplat(44)='f16',     dsis(44)='ssmis_f16',          dval(44)=0.0, dthin(44)=1,  dsfcalc(44)=0,
   dfile(45)='gsnd1bufr', dtype(45)='sndrd1',    dplat(45)='g12',     dsis(45)='sndrD1_g12',         dval(45)=0.0, dthin(45)=1,  dsfcalc(45)=0,
   dfile(46)='gsnd1bufr', dtype(46)='sndrd2',    dplat(46)='g12',     dsis(46)='sndrD2_g12',         dval(46)=0.0, dthin(46)=1,  dsfcalc(46)=0,
   dfile(47)='gsnd1bufr', dtype(47)='sndrd3',    dplat(47)='g12',     dsis(47)='sndrD3_g12',         dval(47)=0.0, dthin(47)=1,  dsfcalc(47)=0,
   dfile(48)='gsnd1bufr', dtype(48)='sndrd4',    dplat(48)='g12',     dsis(48)='sndrD4_g12',         dval(48)=0.0, dthin(48)=1,  dsfcalc(48)=0,
   dfile(49)='gsnd1bufr', dtype(49)='sndrd1',    dplat(49)='g11',     dsis(49)='sndrD1_g11',         dval(49)=0.0, dthin(49)=1,  dsfcalc(49)=0,
   dfile(50)='gsnd1bufr', dtype(50)='sndrd2',    dplat(50)='g11',     dsis(50)='sndrD2_g11',         dval(50)=0.0, dthin(50)=1,  dsfcalc(50)=0,
   dfile(51)='gsnd1bufr', dtype(51)='sndrd3',    dplat(51)='g11',     dsis(51)='sndrD3_g11',         dval(51)=0.0, dthin(51)=1,  dsfcalc(51)=0,
   dfile(52)='gsnd1bufr', dtype(52)='sndrd4',    dplat(52)='g11',     dsis(52)='sndrD4_g11',         dval(52)=0.0, dthin(52)=1,  dsfcalc(52)=0,
   dfile(53)='gsnd1bufr', dtype(53)='sndrd1',    dplat(53)='g13',     dsis(53)='sndrD1_g13',         dval(53)=0.0, dthin(53)=1,  dsfcalc(53)=0,
   dfile(54)='gsnd1bufr', dtype(54)='sndrd2',    dplat(54)='g13',     dsis(54)='sndrD2_g13',         dval(54)=0.0, dthin(54)=1,  dsfcalc(54)=0,
   dfile(55)='gsnd1bufr', dtype(55)='sndrd3',    dplat(55)='g13',     dsis(55)='sndrD3_g13',         dval(55)=0.0, dthin(55)=1,  dsfcalc(55)=0,
   dfile(56)='gsnd1bufr', dtype(56)='sndrd4',    dplat(56)='g13',     dsis(56)='sndrD4_g13',         dval(56)=0.0, dthin(56)=1,  dsfcalc(56)=0,
   dfile(57)='iasibufr',  dtype(57)='iasi',      dplat(57)='metop-a', dsis(57)='iasi616_metop-a',    dval(57)=0.0, dthin(57)=1,  dsfcalc(57)=0,
   dfile(58)='gomebufr',  dtype(58)='gome',      dplat(58)='metop-a', dsis(58)='gome_metop-a',       dval(58)=0.0, dthin(58)=1,  dsfcalc(58)=0,
   dfile(59)='omibufr',   dtype(59)='omi',       dplat(59)='aura',    dsis(59)='omi_aura',           dval(59)=0.0, dthin(59)=1,  dsfcalc(59)=0,
   dfile(60)='sbuvbufr',  dtype(60)='sbuv2',     dplat(60)='n19',     dsis(60)='sbuv8_n19',          dval(60)=0.0, dthin(60)=0,  dsfcalc(60)=0,
   dfile(61)='hirs4bufr', dtype(61)='hirs4',     dplat(61)='n19',     dsis(61)='hirs4_n19',          dval(61)=0.0, dthin(61)=1,  dsfcalc(61)=0,
   dfile(62)='amsuabufr', dtype(62)='amsua',     dplat(62)='n19',     dsis(62)='amsua_n19',          dval(62)=0.0, dthin(62)=1,  dsfcalc(62)=0,
   dfile(63)='mhsbufr',   dtype(63)='mhs',       dplat(63)='n19',     dsis(63)='mhs_n19',            dval(63)=0.0, dthin(63)=1,  dsfcalc(63)=0,
   dfile(64)='tcvitl'     dtype(64)='tcp',       dplat(64)=' ',       dsis(64)='tcp',                dval(64)=0.0, dthin(64)=0,  dsfcalc(64)=0,
   dfile(65)='satwnd',  dtype(65)='uv',        dplat(65)=' ',       dsis(65)='uv',                 dval(65)=0.0, dthin(65)=0,  dsfcalc(65)=0,
   dfile(66)='gsnd1bufr', dtype(66)='sndrd1',    dplat(66)='g15',     dsis(66)='sndrD1_g15',       dval(66)=0.0, dthin(66)=1,  dsfcalc(66)=0 ,
   dfile(67)='gsnd1bufr', dtype(67)='sndrd2',    dplat(67)='g15',     dsis(67)='sndrD2_g15',       dval(67)=0.0, dthin(67)=1,  dsfcalc(67)=0 ,
   dfile(68)='gsnd1bufr', dtype(68)='sndrd3',    dplat(68)='g15',     dsis(68)='sndrD3_g15',       dval(68)=0.0, dthin(68)=1,  dsfcalc(68)=0 ,
   dfile(69)='gsnd1bufr', dtype(69)='sndrd4',    dplat(69)='g15',     dsis(69)='sndrD4_g15',       dval(69)=0.0, dthin(69)=1,  dsfcalc(69)=0 ,
/
 &SUPEROB_RADAR
   del_azimuth=5.,del_elev=.25,del_range=5000.,del_time=.5,elev_angle_max=5.,minnum=50,range_max=100000.,
   l2superob_only=.false.,
 /
 &LAG_DATA
 /
 &HYBRID_ENSEMBLE
   l_hyb_ens=$HYB_ENS,
   n_ens=81,
   uv_hyb_ens=.true.,
   beta1_inv=0.5,
   s_ens_h=300,
   s_ens_v=5,
   generate_ens=.false.,
   regional_ensemble_option=1,
   aniso_a_en=.false.,
   nlon_ens=0,
   nlat_ens=0,
   jcap_ens=0,
   jcap_ens_test=0,coef_bw=0.5,
   full_ensemble=.true.,betaflg=.true.,pwgtflg=.true.,
 /
 &RAPIDREFRESH_CLDSURF
 /
 &CHEM
 /
 &SINGLEOB_TEST
   maginnov=0.1,magoberr=0.1,oneob_type='t',
   oblat=45.,oblon=270.,obpres=850.,obdattim=${adate},
   obhourset=0.,
 /
EOF

FIXCRTM=/usrx/local/nceplibs/fix/crtm_v2.1.3

if [ $GUESS = NAM ] ; then
  berror=$FIXnam/nam_nmmstat_na.gcv
  anavinfo=$FIXnam/nam_anavinfo_nems_nmmb
else
  berror=$FIXnam/nam_nmmstat_na_glberror.gcv
  anavinfo=$FIXnam/nam_anavinfo_nems_nmmb_glb
fi

emiscoef_IRwater=$FIXCRTM/Nalli.IRwater.EmisCoeff.bin
emiscoef_IRice=$FIXCRTM/NPOESS.IRice.EmisCoeff.bin
emiscoef_IRland=$FIXCRTM/NPOESS.IRland.EmisCoeff.bin
emiscoef_IRsnow=$FIXCRTM/NPOESS.IRsnow.EmisCoeff.bin
emiscoef_VISice=$FIXCRTM/NPOESS.VISice.EmisCoeff.bin
emiscoef_VISland=$FIXCRTM/NPOESS.VISland.EmisCoeff.bin
emiscoef_VISsnow=$FIXCRTM/NPOESS.VISsnow.EmisCoeff.bin
emiscoef_VISwater=$FIXCRTM/NPOESS.VISwater.EmisCoeff.bin
emiscoef_MWwater=$FIXCRTM/FASTEM5.MWwater.EmisCoeff.bin
aercoef=$FIXCRTM/AerosolCoeff.bin
cldcoef=$FIXCRTM/CloudCoeff.bin
satinfo=$FIXnam/nam_regional_satinfo.txt
scaninfo=$FIXnam/nam_regional_scaninfo.txt
pcpinfo=$FIXnam/nam_global_pcpinfo.txt
ozinfo=$FIXnam/nam_global_ozinfo.txt
errtable=$FIXnam/nam_errtable.r3dv
convinfo=$FIXnam/nam_regional_convinfo.txt 
mesonetuselist=$FIXnam/nam_mesonet_uselist.txt
stnuselist=$FIXnam/nam_mesonet_stnuselist.txt
qdaylist=$FIXnam/nam_q_day_rejectlist.txt
qnightlist=$FIXnam/nam_q_night_rejectlist.txt
tdaylist=$FIXnam/nam_t_day_rejectlist.txt
tnightlist=$FIXnam/nam_t_night_rejectlist.txt
wbinuselist=$FIXnam/nam_wbinuselist.txt

cp $anavinfo ./anavinfo
cp $berror   ./berror_stats
cp $errtable ./errtable
cp $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin
cp $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin
cp $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin
cp $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin
cp $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin
cp $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin
cp $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin
cp $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin
cp $emiscoef_MWwater ./FASTEM5.MWwater.EmisCoeff.bin
cp $aercoef  ./AerosolCoeff.bin
cp $cldcoef  ./CloudCoeff.bin
cp $satinfo  ./satinfo
cp $scaninfo ./scaninfo
cp $pcpinfo  ./pcpinfo
cp $ozinfo   ./ozinfo
cp $convinfo ./convinfo
cp $mesonetuselist ./mesonetuselist
cp $stnuselist ./mesonet_stnuselist
cp $qdaylist ./q_day_rejectlist
cp $qnightlist ./q_night_rejectlist
cp $tdaylist ./t_day_rejectlist
cp $tnightlist ./t_night_rejectlist
cp $wbinuselist ./wbinuselist

export COM_RTMA=/com/rtma/prod
MP=$COM_RTMA/rtma2p5.${aday}

cp $MP/rtma2p5.t${cya}z.w_rejectlist ./w_rejectlist
cp $MP/rtma2p5.t${cya}z.t_rejectlist ./t_rejectlist
cp $MP/rtma2p5.t${cya}z.p_rejectlist ./p_rejectlist
cp $MP/rtma2p5.t${cya}z.q_rejectlist ./q_rejectlist

ls -1 w_rejectlist t_rejectlist p_rejectlist q_rejectlist
err5=$?

if [ $err5 -ne 0 ] ; then
  cp ${gespath}/ndas.hold/*_rejectlist .
fi

# Copy CRTM coefficient files based on entries in satinfo file
set +x
for file in `awk '{if($1!~"!"){print $1}}' satinfo | sort | uniq` ;do
   cp $FIXCRTM/${file}.SpcCoeff.bin ./
   cp $FIXCRTM/${file}.TauCoeff.bin ./
done
set -x

##############################################################
# Get prepbufr file and satellite radiances
###############################################################

cp $COMINOPS/nam.t${cyc}z.prepbufr.tm00 $DATA/prepbufr
cp $COMINOPS/${RUN}.t${cyc}z.1bhrs4.${tmmark}.bufr_d $DATA/hirs4bufr
cp $COMINOPS/${RUN}.t${cyc}z.1bamua.${tmmark}.bufr_d $DATA/amsuabufr
cp $COMINOPS/${RUN}.t${cyc}z.esamua.${tmmark}.bufr_d $DATA/amsuabufrears
cp $COMINOPS/${RUN}.t${cyc}z.1bamub.${tmmark}.bufr_d $DATA/amsubbufr
cp $COMINOPS/${RUN}.t${cyc}z.1bmhs.${tmmark}.bufr_d  $DATA/mhsbufr
cp $COMINOPS/${RUN}.t${cyc}z.gpsro.${tmmark}.bufr_d $DATA/gpsrobufr
cp $COMINOPS/${RUN}.t${cyc}z.goesfv.${tmmark}.bufr_d $DATA/gsnd1bufr
cp $COMINOPS/${RUN}.t${cyc}z.airsev.${tmmark}.bufr_d $DATA/airsbufr
cp $COMINOPS/${RUN}.t${cyc}z.radwnd.${tmmark}.bufr_d $DATA/radarbufr
cp $COMINOPS/${RUN}.t${cyc}z.nexrad.${tmmark}.bufr_d $DATA/l2rwbufr
cp $COMINOPS/${RUN}.t${cyc}z.satwnd.${tmmark}.bufr_d $DATA/satwnd

TM12=`/nwprod/util/exec/ndate -12 $CYCLE`
TM06=`/nwprod/util/exec/ndate -06 $CYCLE`

yyyymmdd=`echo $CYCLE | cut -c 1-8`
hh=`echo $CYCLE | cut -c 9-10`

yyyymmddm12=`echo $TM12 | cut -c 1-8`
hh12=`echo $TM12 | cut -c 9-10`
yyyymmddm06=`echo $TM06 | cut -c 1-8`

case $cyc in
 00) bias1=$COM_IN/ndas.${yyyymmdd}/ndas.t00z.satbiasc.tm03
     bias2=$COM_IN/ndas.${yyyymmddm06}/ndas.t18z.satbiasc.tm09
     bias3=$COM_IN/ndas.${yyyymmddm12}/ndas.t12z.satbiasc.tm03;;
 06) bias1=$COM_IN/ndas.${yyyymmdd}/ndas.t06z.satbiasc.tm03
     bias2=$COM_IN/ndas.${yyyymmddm06}/ndas.t00z.satbiasc.tm09
     bias3=$COM_IN/ndas.${yyyymmddm12}/ndas.t18z.satbiasc.tm03;;
 12) bias1=$COM_IN/ndas.${yyyymmdd}/ndas.t12z.satbiasc.tm03
     bias2=$COM_IN/ndas.${yyyymmddm06}/ndas.t06z.satbiasc.tm09
     bias3=$COM_IN/ndas.${yyyymmddm12}/ndas.t00z.satbiasc.tm03;;
 18) bias1=$COM_IN/ndas.${yyyymmdd}/ndas.t18z.satbiasc.tm03
     bias2=$COM_IN/ndas.${yyyymmddm06}/ndas.t12z.satbiasc.tm09
     bias3=$COM_IN/ndas.${yyyymmddm12}/ndas.t06z.satbiasc.tm03;;
esac

if [ -s $bias1 ]
then
    cp $bias1 $DATA/satbias_in
else
   if [ -s $bias2 ]
   then
      cp $bias2 $DATA/satbias_in
   else
      if [ -s $bias3 ]
      then
         cp $bias3 $DATA/satbias_in
      else
         cp ${gespath}/ndas.hold/satbias_in $DATA/satbias_in
      fi
   fi
fi

##########################################################

case $cyc in
 00) pc1=$COM_IN/ndas.${yyyymmdd}/ndas.t00z.satbiaspc.tm03
     pc2=$COM_IN/ndas.${yyyymmddm06}/ndas.t18z.satbiaspc.tm09
     pc3=$COM_IN/ndas.${yyyymmddm12}/ndas.t12z.satbiaspc.tm03
     radstat1=$COM_IN/ndas.${yyyymmdd}/ndas.t00z.radstat.tm03
     radstat2=$COM_IN/ndas.${yyyymmddm06}/ndas.t18z.radstat.tm09
     radstat3=$COM_IN/ndas.${yyyymmddm12}/ndas.t12z.radstat.tm03;;
 06) pc1=$COM_IN/ndas.${yyyymmdd}/ndas.t06z.satbiaspc.tm03
     pc2=$COM_IN/ndas.${yyyymmddm06}/ndas.t00z.satbiaspc.tm09
     pc3=$COM_IN/ndas.${yyyymmddm12}/ndas.t18z.satbiaspc.tm03
     radstat1=$COM_IN/ndas.${yyyymmdd}/ndas.t06z.radstat.tm03
     radstat2=$COM_IN/ndas.${yyyymmddm06}/ndas.t00z.radstat.tm09
     radstat3=$COM_IN/ndas.${yyyymmddm12}/ndas.t18z.radstat.tm03;;
 12) pc1=$COM_IN/ndas.${yyyymmdd}/ndas.t12z.satbiaspc.tm03
     pc2=$COM_IN/ndas.${yyyymmddm06}/ndas.t06z.satbiaspc.tm09
     pc3=$COM_IN/ndas.${yyyymmddm12}/ndas.t00z.satbiaspc.tm03
     radstat1=$COM_IN/ndas.${yyyymmdd}/ndas.t12z.radstat.tm03
     radstat2=$COM_IN/ndas.${yyyymmddm06}/ndas.t06z.radstat.tm09
     radstat3=$COM_IN/ndas.${yyyymmddm12}/ndas.t00z.radstat.tm03;;
 18) pc1=$COM_IN/ndas.${yyyymmdd}/ndas.t18z.satbiaspc.tm03
     pc2=$COM_IN/ndas.${yyyymmddm06}/ndas.t12z.satbiaspc.tm09
     pc3=$COM_IN/ndas.${yyyymmddm12}/ndas.t06z.satbiaspc.tm03
     radstat1=$COM_IN/ndas.${yyyymmdd}/ndas.t18z.radstat.tm03
     radstat2=$COM_IN/ndas.${yyyymmddm06}/ndas.t12z.radstat.tm09
     radstat3=$COM_IN/ndas.${yyyymmddm12}/ndas.t06z.radstat.tm03;;
esac

if [ -s $pc1 ]
then
    cp $pc1 $DATA/satbias_pc
    ln -sf $radstat1             ./radstat.gdas
else
   if [ -s $pc2 ]
   then
      cp $pc2 $DATA/satbias_pc
      ln -sf $radstat2             ./radstat.gdas
   else
      if [ -s $pc3 ]
      then
         cp $pc3 $DATA/satbias_pc
         ln -sf $radstat3             ./radstat.gdas
      else
         cp ${gespath}/ndas.hold/satbias_pc $DATA/satbias_pc
         ln -sf ${gespath}/ndas.hold/radstat   ./radstat.gdas
      fi
   fi
fi

listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges`
for type in $listdiag; do
   diag_file=`echo $type | cut -d',' -f1`
   fname=`echo $diag_file | cut -d'.' -f1`
   date=`echo $diag_file | cut -d'.' -f2`
   gunzip $diag_file
   fnameanl=$(echo $fname|sed 's/_ges//g')
   mv $fname.$date $fnameanl
        done

#################################################################

export pgm=nam_gsi
. prep_step

startmsg
mpirun.lsf $EXECnam/nam_gsi < gsiparm.anl >> $pgmout 2>errfile
export err=$?;err_chk

mv fort.201 fit_p1
mv fort.202 fit_w1
mv fort.203 fit_t1
mv fort.204 fit_q1
mv fort.205 fit_pw1
mv fort.207 fit_rad1
mv fort.209 fit_rw1

cat fit_p1 fit_w1 fit_t1 fit_q1 fit_pw1 fit_rad1 fit_rw1 > $COMOUT/${RUN}.${cycle}.fits_${domain}nest.${tmmark}
cat fort.208 fort.210 fort.211 fort.212 fort.213 fort.220 > $COMOUT/${RUN}.${cycle}.fits2_${domain}nest.${tmmark}

#copy 00hr file to nwges

mv wrf_inout $GESDIR/nam.t${cyc}z.input_nemsio_anl_${domain}nest

################################################################################
RADSTAT=${COMOUT}/${RUN}.t${cyc}z.radstat_${domain}nest.${tmmark}
CNVSTAT=${COMOUT}/${RUN}.t${cyc}z.cnvstat_${domain}nest.${tmmark}

# Set up lists and variables for various types of diagnostic files.
ntype=1

diagtype[0]="conv"
diagtype[1]="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep sndr_g11_prep sndr_g12_prep sndr_g13_prep sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 sndrd1_g14 sndrd2_g14 sndrd3_g14 sndrd4_g14 sndrd1_g15 sndrd2_g15 sndrd3_g15 sndrd4_g15 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g11 imgr_g12 imgr_g14 imgr_g15 ssmi_f13 ssmi_f14 ssmi_f15 hirs4_n18 hirs4_metop-a amsua_n18 amsua_metop-a mhs_n18 mhs_metop-a amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 ssmis_las_f17 ssmis_uas_f17 ssmis_img_f17 ssmis_env_f17 ssmis_las_f18 ssmis_uas_f18 ssmis_img_f18 ssmis_env_f18 ssmis_las_f19 ssmis_uas_f19 ssmis_img_f19 ssmis_env_f19 ssmis_las_f20 ssmis_uas_f20 ssmis_img_f20 ssmis_env_f20 iasi_metop-a hirs4_n19 amsua_n19 mhs_n19 seviri_m08 seviri_m09 seviri_m10 cris_npp atms_npp hirs4_metop-b amsua_metop-b mhs_metop-b iasi_metop-b gome_metop-b"

diaglist[0]=listcnv
diaglist[1]=listrad

diagfile[0]=$CNVSTAT
diagfile[1]=$RADSTAT

numfile[0]=0
numfile[1]=0
# Set diagnostic file prefix based on lrun_subdirs variable
   prefix="pe*"

# Compress and tar diagnostic files.

loops="01 03"
for loop in $loops; do
   case $loop in
     01) string=ges;;
     03) string=anl;;
      *) string=$loop;;
   esac
   n=-1
   while [ $((n+=1)) -le $ntype ] ;do
      for type in `echo ${diagtype[n]}`; do
         count=`ls ${prefix}${type}_${loop}* | wc -l`
         if [ $count -gt 0 ]; then
            cat ${prefix}${type}_${loop}* > diag_${type}_${string}.${SDATE}
            echo "diag_${type}_${string}.${SDATE}*" >> ${diaglist[n]}
            numfile[n]=`expr ${numfile[n]} + 1`
         fi
      done
   done
done


#  compress diagnostic files
   for file in `ls diag_*${SDATE}`; do
      gzip $file
   done

# If requested, create diagnostic file tarballs
   n=-1
   while [ $((n+=1)) -le $ntype ] ;do
      TAROPTS="-uvf"
      if [ ! -s ${diagfile[n]} ]; then
         TAROPTS="-cvf"
      fi
      if [ ${numfile[n]} -gt 0 ]; then
         tar $TAROPTS ${diagfile[n]} `cat ${diaglist[n]}`
      fi
   done

#  Restrict CNVSTAT
   chmod 750 $CNVSTAT
   chgrp rstprod $CNVSTAT

msg="JOB $job HAS COMPLETED NORMALLY."
postmsg "$jlogfile" "$msg"

echo EXITING $0 with return code $err
exit $err


