#!/bin/ksh
################################################################################
####  UNIX Script Documentation Block
#                      .                                             .
# Script name:         exndas_gsireg.sh.sms
# Script description:  Runs regional GSI variational analysis and computes boundary
#                      tendencies for NAM forecast
#
# 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
#

set -x
cd $DATA

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

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

# Set environment variables for NCEP IBM
export MEMORY_AFFINITY=MCM
export BIND_TASKS=yes
export MP_PULSE=0
export MP_SHARED_MEMORY=yes
export MP_BULK_MIN_MSG_SIZE=10k
export MP_USE_BULK_XFER=yes

# Set environment variables for threads
export AIXTHREAD_GUARDPAGES=4
export AIXTHREAD_MUTEX_DEBUG=OFF
export AIXTHREAD_RWLOCK_DEBUG=OFF
export AIXTHREAD_COND_DEBUG=OFF
export AIXTHREAD_MNRATIO=1:1
export AIXTHREAD_SCOPE=S
export XLSMPOPTS="parthds=1:stack=64000000"

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.wrfrst_d01.tm03 ./wrf_inout
   cp $GESNDAS/ndas.t${cyc}z.wrfrst_d01.tm03 $COMOUT/nam.t${cyc}z.wrfrst_d01.ges &
else
   cp $COMIN/nam.t${cyc}z.wrfinput_d01.ges ./wrf_inout
fi

cp $COMIN/nam.t${cyc}z.prepbufr.tm00 $DATA/prepbufr

# Set resolution and other dependent parameters
export JCAP=62
export LEVS=60
export DELTIM=${DELTIM:-$((3600/($JCAP/20)))}

# 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`

# Make gsi namelist
cat << EOF > gsiparm.anl
 &SETUP
   miter=2,niter(1)=50,niter(2)=50,
   write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true.,
   gencode=78,qoption=2,
   factqmin=0.0,factqmax=0.0,deltim=$DELTIM,
   ndat=51,jpch=843,npred=5,iguess=-1,
   oneobtest=.false.,retrieval=.false.,
   nhr_assimilation=3,l_foto=.false.,
   use_pbl=.false.,
 /
 &GRIDOPTS
   JCAP=$JCAP,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS,hybrid=.true.,
   wrf_nmm_regional=.true.,wrf_mass_regional=.false.,diagnostic_reg=.false.,
   filled_grid=.false.,half_grid=.true.,netcdf=.false.,
 /
 &BKGERR
   as=1.0,1.0,0.5 ,0.7,0.7,0.5,1.0,1.0,
   hzscl=0.373,0.746,1.50,
   vs=1.0,bw=0.,fstat=.true.,
 /
 &ANBKGERR
   anisotropic=.false.,
 /
 &JCOPTS
   jcterm=.false.,jcdivt=.false.,bamp_ext1=1.0e6,bamp_ext2=1.0e6,
   bamp_int1=1.0e5, bamp_int2=1.0e4
 /
 &STRONGOPTS
   jcstrong=.false.,jcstrong_option=3,nstrong=0,nvmodes_keep=20,period_max=3.,
    baldiag_full=.true.,baldiag_inc=.true.,  
 /
 &OBSQC
   dfact=0.75,dfact1=3.0,noiqc=.false.,
   vadfile='prepbufr',
 /
 &OBS_INPUT
   dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=60.0,dmesh(4)=60.0,dmesh(5)=120,time_window_max=1.5,
   dfile(01)='prepbufr',  dtype(01)='ps',        dplat(01)=' ',    dsis(01)='ps',                dval(01)=1.0,  dthin(01)=0,
   dfile(02)='prepbufr'   dtype(02)='t',         dplat(02)=' ',    dsis(02)='t',                 dval(02)=1.0,  dthin(02)=0,
   dfile(03)='prepbufr',  dtype(03)='q',         dplat(03)=' ',    dsis(03)='q',                 dval(03)=1.0,  dthin(03)=0,
   dfile(04)='prepbufr',  dtype(04)='pw',        dplat(04)=' ',    dsis(04)='pw',                dval(04)=1.0,  dthin(04)=0,
   dfile(05)='prepbufr',  dtype(05)='uv',        dplat(05)=' ',    dsis(05)='uv',                dval(05)=1.0,  dthin(05)=0,
   dfile(06)='prepbufr',  dtype(06)='spd',       dplat(06)=' ',    dsis(06)='spd',               dval(06)=1.0,  dthin(06)=0,
   dfile(07)='prepbufr',  dtype(07)='dw',        dplat(07)=' ',    dsis(07)='dw',                dval(07)=1.0,  dthin(07)=0,
   dfile(08)='radarbufr'  dtype(08)='rw',        dplat(08)=' ',    dsis(08)='rw',                dval(08)=1.0,  dthin(08)=0,
   dfile(09)='prepbufr',  dtype(09)='sst',       dplat(09)=' ',    dsis(09)='sst',               dval(09)=1.0,  dthin(09)=0,
   dfile(10)='gpsbufr',   dtype(10)='gps_ref',   dplat(10)=' ',    dsis(10)='gps_ref',           dval(10)=1.0,  dthin(10)=0,
   dfile(11)='ssmibufr',  dtype(11)='pcp_ssmi',  dplat(11)='dmsp', dsis(11)='pcp_ssmi',          dval(11)=1.0,  dthin(11)=-1,
   dfile(12)='tmibufr',   dtype(12)='pcp_tmi',   dplat(12)='trmm', dsis(12)='pcp_tmi',           dval(12)=1.0,  dthin(12)=-1,
   dfile(13)='sbuvbufr',  dtype(13)='sbuv2',     dplat(13)='n16',  dsis(13)='sbuv6_n16',         dval(13)=1.0,  dthin(13)=0,
   dfile(14)='sbuvbufr',  dtype(14)='sbuv2',     dplat(14)='n17',  dsis(14)='sbuv6_n17',         dval(14)=1.0,  dthin(14)=0,
   dfile(15)='omi',       dtype(15)='omi',       dplat(15)='aura', dsis(15)='omi_aura',          dval(15)=1.0,  dthin(15)=0,
   dfile(16)='hirs2bufr', dtype(16)='hirs2',     dplat(16)='n14',  dsis(16)='hirs2_n14',         dval(16)=6.0,  dthin(16)=1,
   dfile(17)='hirs3bufr', dtype(17)='hirs3',     dplat(17)='n16',  dsis(17)='hirs3_n16',         dval(17)=0.0,  dthin(17)=1,
   dfile(18)='hirs3bufr', dtype(18)='hirs3',     dplat(18)='n17',  dsis(18)='hirs3_n17',         dval(18)=6.0,  dthin(18)=1,
   dfile(19)='hirs4bufr', dtype(19)='hirs4',     dplat(19)='n18',  dsis(19)='hirs4_n18',         dval(19)=1.0,  dthin(19)=1,
   dfile(20)='gsndrbufr', dtype(20)='sndr',      dplat(20)='g10',  dsis(20)='sndr_g10',          dval(20)=6.0,  dthin(20)=1,
   dfile(21)='gsndrbufr', dtype(21)='sndr',      dplat(21)='g12',  dsis(21)='sndr_g12',          dval(21)=6.0,  dthin(21)=1,
   dfile(22)='gimgrbufr', dtype(22)='goes_img',  dplat(22)='g10',  dsis(22)='imgr_g10',          dval(22)=0.0,  dthin(22)=1,
   dfile(23)='gimgrbufr', dtype(23)='goes_img',  dplat(23)='g12',  dsis(23)='imgr_g12',          dval(23)=0.0,  dthin(23)=1,
   dfile(24)='airsbufr',  dtype(24)='airs',      dplat(24)='aqua', dsis(24)='airs281SUBSET_aqua',dval(24)=20.0, dthin(24)=1,
   dfile(25)='ssmisbufr', dtype(25)='ssmis_env', dplat(25)='f16',  dsis(25)='ssmis_f16',         dval(25)=1.0,  dthin(25)=4,
   dfile(26)='amsuabufr', dtype(26)='amsua',     dplat(26)='n15',  dsis(26)='amsua_n15',         dval(26)=10.0, dthin(26)=2,
   dfile(27)='amsuabufr', dtype(27)='amsua',     dplat(27)='n16',  dsis(27)='amsua_n16',         dval(27)=1.0,  dthin(27)=2,
   dfile(28)='amsuabufr', dtype(28)='amsua',     dplat(28)='n17',  dsis(28)='amsua_n17',         dval(28)=10.0, dthin(28)=2,
   dfile(29)='amsuabufr', dtype(29)='amsua',     dplat(29)='n18',  dsis(29)='amsua_n18',         dval(29)=10.0, dthin(29)=2,
   dfile(30)='airsbufr',  dtype(30)='amsua',     dplat(30)='aqua', dsis(30)='amsua_aqua',        dval(30)=10.0, dthin(30)=2,
   dfile(31)='amsubbufr', dtype(31)='amsub',     dplat(31)='n15',  dsis(31)='amsub_n15',         dval(31)=3.0,  dthin(31)=3,
   dfile(32)='amsubbufr', dtype(32)='amsub',     dplat(32)='n16',  dsis(32)='amsub_n16',         dval(32)=3.0,  dthin(32)=3,
   dfile(33)='amsubbufr', dtype(33)='amsub',     dplat(33)='n17',  dsis(33)='amsub_n17',         dval(33)=3.0,  dthin(33)=3,
   dfile(34)='mhsbufr',   dtype(34)='mhs',       dplat(34)='n18',  dsis(34)='mhs_n18',           dval(34)=3.0,  dthin(34)=3,
   dfile(35)='ssmitbufr', dtype(35)='ssmi',      dplat(35)='f13',  dsis(35)='ssmi_f13',          dval(35)=1.0,  dthin(35)=4,
   dfile(36)='ssmitbufr', dtype(36)='ssmi',      dplat(36)='f14',  dsis(36)='ssmi_f14',          dval(36)=1.0,  dthin(36)=4,
   dfile(37)='ssmitbufr', dtype(37)='ssmi',      dplat(37)='f15',  dsis(37)='ssmi_f15',          dval(37)=1.0,  dthin(37)=4,
   dfile(38)='amsrebufr', dtype(38)='amsre_low', dplat(38)='aqua', dsis(38)='amsre_aqua',        dval(38)=1.0,  dthin(38)=4,
   dfile(39)='amsrebufr', dtype(39)='amsre_mid', dplat(39)='aqua', dsis(39)='amsre_aqua',        dval(39)=1.0,  dthin(39)=4,
   dfile(40)='amsrebufr', dtype(40)='amsre_hig', dplat(40)='aqua', dsis(40)='amsre_aqua',        dval(40)=1.0,  dthin(40)=4,
   dfile(41)='ssmisbufr', dtype(41)='ssmis_las', dplat(41)='f16',  dsis(41)='ssmis_f16',         dval(41)=1.0,  dthin(41)=4,
   dfile(42)='ssmisbufr', dtype(42)='ssmis_uas', dplat(42)='f16',  dsis(42)='ssmis_f16',         dval(42)=1.0,  dthin(42)=4,
   dfile(43)='ssmisbufr', dtype(43)='ssmis_img', dplat(43)='f16',  dsis(43)='ssmis_f16',         dval(43)=1.0,  dthin(43)=4,
   dfile(44)='gsnd1bufr', dtype(44)='sndrd3',    dplat(44)='g11',  dsis(44)='sndrD3_g11',        dval(44)=1.5,  dthin(44)=5,
   dfile(45)='gsnd1bufr', dtype(45)='sndrd4',    dplat(45)='g11',  dsis(45)='sndrD4_g11',        dval(45)=1.5,  dthin(45)=5,
   dfile(46)='gsnd1bufr', dtype(46)='sndrd1',    dplat(46)='g12',  dsis(46)='sndrD1_g12',        dval(46)=1.5,  dthin(46)=5,
   dfile(47)='gsnd1bufr', dtype(47)='sndrd2',    dplat(47)='g12',  dsis(47)='sndrD2_g12',        dval(47)=1.5,  dthin(47)=5,
   dfile(48)='gsnd1bufr', dtype(48)='sndrd3',    dplat(48)='g12',  dsis(48)='sndrD3_g12',        dval(48)=1.5,  dthin(48)=5,
   dfile(49)='gsnd1bufr', dtype(49)='sndrd4',    dplat(49)='g12',  dsis(49)='sndrD4_g12',        dval(49)=1.5,  dthin(49)=5,
   dfile(50)='gsnd1bufr', dtype(50)='sndrd1',    dplat(50)='g11',  dsis(50)='sndrD1_g11',        dval(50)=1.5,  dthin(50)=5,
   dfile(51)='gsnd1bufr', dtype(51)='sndrd2',    dplat(51)='g11',  dsis(51)='sndrD2_g11',        dval(51)=1.5,  dthin(51)=5,
 /
 &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.,
 /
 &SINGLEOB_TEST
   maginnov=0.1,magoberr=0.1,oneob_type='t',
   oblat=45.,oblon=270.,obpres=850.,obdattim=${adate},
   obhourset=0.,
 /
EOF

berror=$FIXnam/nam_nmmstat_na
emiscoef=$FIXnam/crtm_nam/EmisCoeff.bin
aercoef=$FIXnam/crtm_nam/AerosolCoeff.bin
cldcoef=$FIXnam/crtm_nam/CloudCoeff.bin
satinfo=$FIXnam/nam_regional_satinfo.txt
satangl=$FIXnam/nam_global_satangbias.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

cp $berror   ./berror_stats
cp $errtable ./errtable
cp $emiscoef ./EmisCoeff.bin
cp $aercoef  ./AerosolCoeff.bin
cp $cldcoef  ./CloudCoeff.bin
cp $satangl  ./satbias_angle
cp $satinfo  ./satinfo
cp $pcpinfo  ./pcpinfo
cp $ozinfo   ./ozinfo
cp $convinfo ./convinfo
cp $mesonetuselist ./mesonetuselist

# Copy CRTM coefficient files based on entries in satinfo file
count=`cat $satinfo | wc -l`
nsatsen=`expr $count - 1`
isatsen=1
while [[ $isatsen -le $nsatsen ]]; do
   satsen=`head -n $isatsen $satinfo | tail -1 | cut -f 2 -d" "`
   spccoeff=${satsen}.SpcCoeff.bin
   if  [[ ! -s $spccoeff ]]; then
      cp $FIXnam/crtm_nam/$spccoeff ./
      cp $FIXnam/crtm_nam/${satsen}.TauCoeff.bin ./
   fi
   isatsen=` expr $isatsen + 1 `
done

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

cp $COMIN/${RUN}.t${cyc}z.1bhrs3.${tmmark}.bufr_d $DATA/hirs3bufr
cp $COMIN/${RUN}.t${cyc}z.1bhrs4.${tmmark}.bufr_d $DATA/hirs4bufr
cp $COMIN/${RUN}.t${cyc}z.1bamua.${tmmark}.bufr_d $DATA/amsuabufr
cp $COMIN/${RUN}.t${cyc}z.1bamub.${tmmark}.bufr_d $DATA/amsubbufr
cp $COMIN/${RUN}.t${cyc}z.1bmhs.${tmmark}.bufr_d $DATA/mhsbufr
cp $COMIN/${RUN}.t${cyc}z.goesfv.${tmmark}.bufr_d $DATA/gsnd1bufr
cp $COMIN/${RUN}.t${cyc}z.airsev.${tmmark}.bufr_d $DATA/airsbufr

cp $COMIN/${RUN}.t${cyc}z.radwnd.${tmmark}.bufr_d $DATA/radarbufr
cp $COMIN/${RUN}.t${cyc}z.nexrad.${tmmark}.bufr_d $DATA/l2rwbufr

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/${NET}/${envir}/ndas.${yyyymmdd}/ndas.t00z.satbias.tm03
     bias2=/com/${NET}/${envir}/ndas.${yyyymmddm06}/ndas.t18z.satbias.tm09
     bias3=/com/${NET}/${envir}/ndas.${yyyymmddm12}/ndas.t12z.satbias.tm03;;
 06) bias1=/com/${NET}/${envir}/ndas.${yyyymmdd}/ndas.t06z.satbias.tm03
     bias2=/com/${NET}/${envir}/ndas.${yyyymmddm06}/ndas.t00z.satbias.tm09
     bias3=/com/${NET}/${envir}/ndas.${yyyymmddm12}/ndas.t18z.satbias.tm03;;
 12) bias1=/com/${NET}/${envir}/ndas.${yyyymmdd}/ndas.t12z.satbias.tm03
     bias2=/com/${NET}/${envir}/ndas.${yyyymmddm06}/ndas.t06z.satbias.tm09
     bias3=/com/${NET}/${envir}/ndas.${yyyymmddm12}/ndas.t00z.satbias.tm03;;
 18) bias1=/com/${NET}/${envir}/ndas.${yyyymmdd}/ndas.t18z.satbias.tm03
     bias2=/com/${NET}/${envir}/ndas.${yyyymmddm06}/ndas.t12z.satbias.tm09
     bias3=/com/${NET}/${envir}/ndas.${yyyymmddm12}/ndas.t06z.satbias.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 /nwges/${envir}/ndas.hold/satbias_in $DATA/satbias_in
      fi
   fi
fi

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

case $cyc in
 00) ang1=/com/${NET}/${envir}/ndas.${yyyymmdd}/ndas.t00z.satang.tm03
     ang2=/com/${NET}/${envir}/ndas.${yyyymmddm06}/ndas.t18z.satang.tm09
     ang3=/com/${NET}/${envir}/ndas.${yyyymmddm12}/ndas.t12z.satang.tm03;;
 06) ang1=/com/${NET}/${envir}/ndas.${yyyymmdd}/ndas.t06z.satang.tm03
     ang2=/com/${NET}/${envir}/ndas.${yyyymmddm06}/ndas.t00z.satang.tm09
     ang3=/com/${NET}/${envir}/ndas.${yyyymmddm12}/ndas.t18z.satang.tm03;;
 12) ang1=/com/${NET}/${envir}/ndas.${yyyymmdd}/ndas.t12z.satang.tm03
     ang2=/com/${NET}/${envir}/ndas.${yyyymmddm06}/ndas.t06z.satang.tm09
     ang3=/com/${NET}/${envir}/ndas.${yyyymmddm12}/ndas.t00z.satang.tm03;;
 18) ang1=/com/${NET}/${envir}/ndas.${yyyymmdd}/ndas.t18z.satang.tm03
     ang2=/com/${NET}/${envir}/ndas.${yyyymmddm06}/ndas.t12z.satang.tm09
     ang3=/com/${NET}/${envir}/ndas.${yyyymmddm12}/ndas.t06z.satang.tm03;;
esac

if [ -s $ang1 ]
then
    cp $ang1 $DATA/satbias_angle
else
   if [ -s $ang2 ]
   then
      cp $ang2 $DATA/satbias_angle
   else
      if [ -s $ang3 ]
      then
         cp $ang3 $DATA/satbias_angle
      else
         cp /nwges/${envir}/ndas.hold/satbias_angle $DATA/satbias_angle
      fi
   fi
fi

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

export MP_SHARED_MEMORY=yes
export MEMORY_AFFINITY=MCM
export BIND_TASKS=yes

export pgm=nam_gsi
. prep_step

startmsg
$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.${tmmark}

#copy 00hr restart file to nwges 

if [ $GUESS = GDAS ] ; then
   mv wrf_inout $GESDIR/${RUN}.t${cyc}z.wrfinput_anl.${tmmark}
else
   mv wrf_inout $GESDIR/${RUN}.t${cyc}z.wrfrst_anl.${tmmark}
fi

cp satbias_out $COMOUT/${RUN}.t${cyc}z.satbias.${tmmark}
cp satbias_out /nwges/${envir}/ndas.hold/satbias_in

mv radar_supobs_from_level2 /com/${NET}/${envir}/nam.${yyyymmdd}/nam.t${cyc}z.l2suob.${tmmark}.bufr_d

if [ "$SENDDBN" = 'YES' ]; then
 $DBNROOT/bin/dbn_alert MODEL NAM_satbias_PARA $job $COMOUT/${RUN}.t${cyc}z.satbias.${tmmark}
fi

################################################################################
#  Update angle dependent bias
loops="01 03"
for loop in $loops; do

#  Collect diagnostic files for obs types (groups) below
   list="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep \ 
         sndr_g11_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 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 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 \ 
         omi_aura 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"
for type in $list; do
      count=`ls ${tmpdir}/dir.*/${type}_${loop}* | wc -l`
      if [[ $count -gt 0 ]]; then
         cat ${tmpdir}/dir.*/${type}_${loop}* > ${tmpdir}/diag_${type}_${loop}.${SDATE}
         if [[ "$loop" = "01" ]]; then
            mv ${tmpdir}/diag_${type}_${loop}.${SDATE} ${tmpdir}/diag_${type}_ges.${SDATE}
         elif [[ "$loop" = "03" ]]; then
            mv ${tmpdir}/diag_${type}_${loop}.${SDATE} ${tmpdir}/diag_${type}_anl.${SDATE}
         else
            mv ${tmpdir}/diag_${type}_${loop}.${SDATE} ${tmpdir}/diag_${type}_${loop}.${SDATE}
         fi
      fi
   done
done

ANGUPDATEXEC=$EXECnam/nam_global_angupdate

# local input files assumed to already exist are

cp ./satbias_angle ./satbias_ang.in

list="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep \ 
      sndr_g11_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 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 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"

for type in $list; do
   ln -fs ${tmpdir}/diag_${type}_ges.$SDATE  ./diag_${type}.$SDATE
done

# output files created by program are
#   stdout.global_angupdate - not saved
#   $SATANGO = ./satbias_ang.out

iy=$(echo $SDATE|cut -c1-4)
im=$(echo $SDATE|cut -c5-6)
id=$(echo $SDATE|cut -c7-8)
ih=$(echo $SDATE|cut -c9-10)

cat <<EOF> input
 &SETUP
  jpch=843,nstep=90,nsize=20,wgtang=0.008333333,wgtlap=0.0,
  iuseqc=1,dtmax=1.0,
  iyy1=${iy},imm1=${im},idd1=${id},ihh1=${ih},
  iyy2=${iy},imm2=${im},idd2=${id},ihh2=${ih},
  dth=06,ndat=41,
 /
 &OBS_INPUT
  dtype(01)='hirs2',     dplat(01)='n14',       dsis(01)='hirs2_n14',
  dtype(02)='hirs3',     dplat(02)='n16',       dsis(02)='hirs3_n16',
  dtype(03)='hirs3',     dplat(03)='n17',       dsis(03)='hirs3_n17',
  dtype(04)='hirs4',     dplat(04)='n18',       dsis(04)='hirs4_n18',
  dtype(05)='sndr',      dplat(05)='g11_prep',  dsis(05)='sndr_g11',
  dtype(06)='sndr',      dplat(06)='g12_prep',  dsis(06)='sndr_g12',
  dtype(07)='goesimg',   dplat(07)='g11',       dsis(07)='goesimg_g11',
  dtype(08)='goesimg',   dplat(08)='g12',       dsis(08)='goesimg_g12',
  dtype(09)='airs',      dplat(09)='aqua',      dsis(09)='airs281SUBSET_aqua',
  dtype(10)='msu',       dplat(10)='n14',       dsis(10)='msu_n14',
  dtype(11)='amsua',     dplat(11)='n15',       dsis(11)='amsua_n15',
  dtype(12)='amsua',     dplat(12)='n16',       dsis(12)='amsua_n16',
  dtype(13)='amsua',     dplat(13)='n17',       dsis(13)='amsua_n17',
  dtype(14)='amsua',     dplat(14)='n18',       dsis(14)='amsua_n18',
  dtype(15)='amsua',     dplat(15)='aqua',      dsis(15)='amsua_aqua',
  dtype(16)='amsub',     dplat(16)='n15',       dsis(16)='amsub_n15',
  dtype(17)='amsub',     dplat(17)='n16',       dsis(17)='amsub_n16',
  dtype(18)='amsub',     dplat(18)='n17',       dsis(18)='amsub_n17',
  dtype(19)='mhs',       dplat(19)='n18',       dsis(19)='mhs_n18',
  dtype(20)='ssmi',      dplat(20)='f13',       dsis(20)='ssmi_f13',
  dtype(21)='ssmi',      dplat(21)='f14',       dsis(21)='ssmi_f14',
  dtype(22)='ssmi',      dplat(22)='f15',       dsis(22)='ssmi_f15',
  dtype(23)='amsre_low', dplat(23)='aqua',      dsis(23)='amsre_aqua',
  dtype(24)='amsre_mid', dplat(24)='aqua',      dsis(24)='amsre_aqua',
  dtype(25)='amsre_hig', dplat(25)='aqua',      dsis(25)='amsre_aqua',
  dtype(26)='ssmis_las', dplat(26)='f16',       dsis(26)='ssmis_f16',
  dtype(27)='ssmis_uas', dplat(27)='f16',       dsis(27)='ssmis_f16',
  dtype(28)='ssmis_img', dplat(28)='f16',       dsis(28)='ssmis_f16',
  dtype(29)='ssmis_env', dplat(29)='f16',       dsis(29)='ssmis_f16',
  dtype(30)='sndrd1',    dplat(30)='g11',       dsis(30)='sndrD1_g11',
  dtype(31)='sndrd2',    dplat(31)='g11',       dsis(31)='sndrD2_g11',
  dtype(32)='sndrd3',    dplat(32)='g11',       dsis(32)='sndrD3_g11',
  dtype(33)='sndrd4',    dplat(33)='g11',       dsis(33)='sndrD4_g11',
  dtype(34)='sndrd1',    dplat(34)='g12',       dsis(34)='sndrD1_g12',
  dtype(35)='sndrd2',    dplat(35)='g12',       dsis(35)='sndrD2_g12',
  dtype(36)='sndrd3',    dplat(36)='g12',       dsis(36)='sndrD3_g12',
  dtype(37)='sndrd4',    dplat(37)='g12',       dsis(37)='sndrD4_g12',
  dtype(38)='sndrd1',    dplat(38)='g13',       dsis(38)='sndrD1_g13',
  dtype(39)='sndrd2',    dplat(39)='g13',       dsis(39)='sndrD2_g13',
  dtype(40)='sndrd3',    dplat(40)='g13',       dsis(40)='sndrD3_g13',
  dtype(41)='sndrd4',    dplat(41)='g13',       dsis(41)='sndrD4_g13',
 /
EOF

export pgm=nam_global_angupdate
. prep_step

startmsg
$EXECnam/nam_global_angupdate < input >> $pgmout 2>errfile
export err=$?;err_chk

RADSTAT=${COMOUT}/${RUN}.t${cyc}z.radstat.${tmmark}
CNVSTAT=${COMOUT}/${RUN}.t${cyc}z.cnvstat.${tmmark}

# Compress and tar diagnostic files.
loops="01 03"
for loop in $loops; do
   nsum=0
   list="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep \ 
         sndr_g11_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 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 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 \ 
         omi_aura 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"                                                                                                                                                                            
   for type in $list; do
      if [[ "$loop" = "01" ]]; then
         string=ges
      elif [[ "$loop" = "03" ]]; then
         string=anl
      else
         string=$loop
      fi
      ntyp=`ls ${tmpdir}/diag_${type}_${string}.${SDATE} | wc -l`
      nsum=`expr $nsum + $ntyp`
      if [[ $ntyp -gt 0 ]]
      then
         compress ${tmpdir}/diag_${type}_${string}.${SDATE}
      fi
   done

   if [[ $nsum -gt 0 ]]; then
      if [ ! -s $RADSTAT ]; then
         tar -cvf $RADSTAT diag_hirs*_${string}.${SDATE}.Z diag_msu*_${string}.${SDATE}.Z \ 
                           diag_amsu*_${string}.${SDATE}.Z diag_sndr*_${string}.${SDATE}.Z \ 
                           imgr*_${string}.${SDATE}.Z diag_airs*_${string}.${SDATE}.Z \ 
                           diag_hsb*_${string}.${SDATE}.Z diag_ssmi*_${string}.${SDATE}.Z \ 
                           diag_mhs*_${string}.${SDATE}.Z diag_amsre*_${string}.${SDATE}.Z \ 
                           diag_ssmis*_${string}.${SDATE}.Z
      else
         tar -uvf $RADSTAT diag_hirs*_${string}.${SDATE}.Z diag_msu*_${string}.${SDATE}.Z \ 
                           diag_amsu*_${string}.${SDATE}.Z diag_sndr*_${string}.${SDATE}.Z \ 
                           imgr*_${string}.${SDATE}.Z diag_airs*_${string}.${SDATE}.Z \ 
                           diag_hsb*_${string}.${SDATE}.Z diag_ssmi*_${string}.${SDATE}.Z \ 
                           diag_mhs*_${string}.${SDATE}.Z diag_amsre*_${string}.${SDATE}.Z \ 
                           diag_ssmis*_${string}.${SDATE}.Z
      fi
      if [ ! -s $CNVSTAT ]; then
         tar -cvf $CNVSTAT diag_conv*_${string}.${SDATE}.Z
         chmod 750 $CNVSTAT
         chgrp rstprod $CNVSTAT
      else
         tar -uvf $CNVSTAT diag_conv*_${string}.${SDATE}.Z
         chmod 750 $CNVSTAT
         chgrp rstprod $CNVSTAT
      fi
   fi
done

cp satbias_ang.out $COMOUT/${RUN}.t${cyc}z.satang.${tmmark}
cp satbias_ang.out /nwges/${envir}/ndas.hold/satbias_angle

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

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


