#!/bin/csh
#set verbose

cd ${datapath2}
setenv OMP_NUM_THREADS 1
setenv MEMORY_AFFINITY MCM
setenv BIND_TASKS yes
setenv MP_PULSE 0
setenv MP_SHARED_MEMORY yes
setenv MP_BULK_MIN_MSG_SIZE 10k
setenv MP_USE_BULK_XFER yes
setenv XLSMPOPTS "parthds=1:stack=128000000"
setenv XLFRTEOPTS "nlwidth=80"
setenv MP_LABELIO yes

@ nanalsp1 = $nanals + 1
echo "nanalsp1=",$nanalsp1

echo $enkfbin

cat <<EOF1 >! enkf.nml
 &nam_enkf
  datestring="$analdate",datapath="$datapath2",random_partition=$random_partition,
  analpertwtnh=$analpertwtnh,analpertwtsh=$analpertwtsh,analpertwttr=$analpertwttr,
  simple_partition=$simple_partition,ntrac_update=$ntrac_update,
  covinflatemax=$covinflatemax,covinflatemin=$covinflatemin,pseudo_rh=$pseudo_rh,
  corrlengthnh=$corrlengthnh,corrlengthsh=$corrlengthsh,corrlengthtr=$corrlengthtr,
  obtimelnh=$obtimelnh,obtimelsh=$obtimelsh,obtimeltr=$obtimeltr,iassim_order=$iassim_order,
  lnsigcutoffnh=$lnsigcutoffnh,lnsigcutoffsh=$lnsigcutoffsh,lnsigcutofftr=$lnsigcutofftr,
  lnsigcutoffsatnh=$lnsigcutoffsatnh,lnsigcutoffsatsh=$lnsigcutoffsatsh,lnsigcutoffsattr=$lnsigcutoffsattr,
  lnsigcutoffpsnh=$lnsigcutoffpsnh,lnsigcutoffpssh=$lnsigcutoffpssh,lnsigcutoffpstr=$lnsigcutoffpstr,
  use_height=$use_height,saterrfact=$saterrfact,numiter=$numiter,
  sprd_tol=$sprd_tol,paoverpb_thresh=$paoverpb_thresh,
  npts=$npts,nlevs=$LEVS,nanals=$nanals,ntrac=$NTRAC,nvars=$nvars,deterministic=$deterministic,
  sortinc=$sortinc
 /
 &END
EOF1

cat enkf.nml
# check to see if output files already created.
set nanal=1
set filemissing='no'
while ($nanal <= $nanals)
 set charnanal="mem"`printf %03i $nanal`
 set analfile="${datapath2}/ganl_${analdate}_${charnanal}"
  if { /bin/test ! -s $analfile } set filemissing='yes'
 @ nanal = $nanal + 1
end
if { /bin/test ! -s $ABIAS } set filemissing='yes'

if ($filemissing == 'yes') then
## Run EnKF here
   poe $enkfbin

   /bin/cp ${datapath2}/satbias_out ${datapath2}/abias
   /bin/cp ${datapath2}/satbias_out $ABIAS
endif

   # compute ensemble mean analysis files.
   time ${enkfexec}/getsigensmean.x ${datapath2}/ sanl_${analdate}_ensmean sanl_${analdate} ${nanals}

   cd ${enkfscripts}
   /global/save/wx20kd/python/Python-2.5.1-32/bin/python test.py 450 $nanals >&! ${datapath2}/sigpairs.dat
   cd ${datapath2}

   if ($scalefact == 0) then
     echo "NO INFLATION NECESSARY"
   else
     echo "CALL ADDERRSPEC_NMC TO ADD NMC-BASED INFLATION TO ENSEMBLE"
     poe ${enkfexec}/adderrspec_nmcmeth.x $nanals $analdate $LONA $LATA $scalefact $addpertpath $lonscramble $runprefix

   # recenter perturbed ensemble on original mean
     time ${enkfexec}/getsigensmean.x ${datapath2}/ sanlp_${analdate}_ensmean sanl_${analdate} ${nanals}

     set filename_meanin=${datapath2}/sanlp_${analdate}_ensmean
     set filename_meanout=${datapath2}/sanl_${analdate}_ensmean
     set filenamein="${datapath2}/sanl_${analdate}"
     set filenameout="${datapath2}/sanl_${analdate}"

     poe ${enkfexec}/recentersigp.x $filenamein $filename_meanin $filename_meanout $filenameout $nanals
   endif

# check output files again.
   set nanal=1
   set filemissing='no'
   while ($nanal <= $nanals)
      set charnanal="mem"`printf %03i $nanal`
      set analfile="${datapath2}/sanl_${analdate}_${charnanal}"
      if { /bin/test ! -s $analfile } set filemissing='yes'
      @ nanal = $nanal + 1
   end


if ($filemissing == 'yes') then
    echo "there are output files missing!"
    exit 1
else
    echo "all output files seem OK"
    exit 0
endif