#!/bin/ksh -x


# VARIAVEIS
cd ${Eta_scr}

idate1=${Run_Date}
let p1endfct=${Fct}+1

dlmd=`${Eta_scr}/def_eta.scr ${Res}|awk '{print $1}'`
dphd=`${Eta_scr}/def_eta.scr ${Res}|awk '{print $2}'`
dt=`${Eta_scr}/def_eta.scr ${Res}|awk '{print $3}'`
nphs=`${Eta_scr}/def_eta.scr ${Res}|awk '{print $4}'`
ncnv=`${Eta_scr}/def_eta.scr ${Res}|awk '{print $5}'`
hydro=`${Eta_scr}/def_eta.scr ${Res}|awk '{print $6}'`
let ninit=${Fct}/${InitBC}
let ninit=${ninit}+1
dirdata=../../data
direta=../../eta
typeset -Z4 iyear
typeset -Z2 imonth
typeset -Z2 iday
typeset -Z2 ih

iyear=`echo ${Run_Date} | cut -c1-4`
imonth=`echo ${Run_Date} | cut -c5-6`
iday=`echo ${Run_Date} | cut -c7-8`
ih=`echo ${Run_Date} | cut -c9-10`

if ((${TInitBC}==0)) ; then
  Fct=00
fi

case ${FInitBC} in
  cpteta) ${Eta_scr_out}/process_grib.scr ${Run_Date} ${Fct} ${FInitBC} ${InitBC}
          extprep=.ETAwrk;;
  cpteta20) ${Eta_scr_out}/process_grib.scr ${Run_Date} ${Fct} ${FInitBC} ${InitBC}
          extprep=.ETAwrk;;
  T062L28) ${Eta_scr_out}/process_grib.scr 00 ${Fct} ${FInitBC} ${InitBC}
          extprep=.ETAwrk;;	  
   reanl) ${Eta_scr_out}/process_grib.scr ${Run_Date} ${Fct} ${FInitBC} ${InitBC}
          extprep=.NCEPre;;
       *) ${Eta_scr_out}/process_grib.scr 00 ${Fct} ${FInitBC} ${InitBC}
          extprep=.ETA_avn;;
esac

# Original com bug ---------
#err=$?
#if [ \$? -ne 0 ] ; then
# exit 1
#fi
# --------------------------

# Correcao do Bug acima ------------
err=$?
if [ ${err} -ne 0 ] ; then
  echo "ERRO NO PREPROC!!"
  echo "Finalizando a rodada...."
  exit 1
fi
# by Lamosa PAD/CPTEC/INPE 2007 ----

if [ "${TypRun}" = "forecast" ] ; then
typeset -Z4 fct
fct=0000
i=1
while ((${i}<=${ninit})) ; do
if [ "${FInitBC}" = "T062L28" ] ; then
  arq[${i}]=${Cond_Glob}_${Run_Date}E.${fct}${extprep}
  echo "  INIT_IN(${i})='${data_prep}/${arq[${i}]}'">> ${Eta_run}/ICCC
  else
  arq[${i}]=`${Eta_home1}/util/caldate.3.0 ${idate1} + ${fct}hr 'YYMMDDHH'${fct}${extprep}`
  echo "  INIT_IN(${i})='${data_prep}/${arq[${i}]}'">> ${Eta_run}/ICCC
 fi
let i=${i}+1
let fct=${fct}+${InitBC}
if ((${TInitBC}==0)) ; then
 idate1=`${Eta_home}/util/caldate.3.0 ${Run_Date} - 12hr 'yyyymmddhh'`
if ((${InitBC}==06)) ; then
 fct=18
else
 fct=15
fi
 ci
fi
done
else
typeset -Z4 fct
typeset -Z4 icn
fct=0000
icn=0000
i=1
while ((${i}<=${ninit})) ; do
if [ "${FInitBC}" = "T062L28" ] ; then
  arq[${i}]=${Cond_Glob}_${Run_Date}E.${icn}${extprep}
  echo "  INIT_IN(${i})='${data_prep}/${arq[${i}]}'">> ${Eta_run}/ICCC
  else
  arq[${i}]=`${Eta_home1}/util/caldate.3.0 ${idate1} + ${icn}hr 'yymmddhh'${fct}${extprep}`
  echo "  INIT_IN(${i})='${data_prep}/${arq[${i}]}'">> ${Eta_run}/ICCC
 fi
let i=${i}+1
let icn=${icn}+${InitBC}
if ((${TInitBC}==0)) ; then
 idate1=`${Eta_home}/util/caldate.3.0 ${Run_Date} - 12hr 'yyyymmddhh'`
if ((${InitBC}==06)) ; then
 fct=18
else
 fct=15
fi
 ci
fi
done


fi

typeset -Z6 fcthr
fcthr=0000
nfctout=0
echo "TSHDE="|awk '{printf ("%s",$1)}'> ${Eta_run}/FCTHR
while ((${fcthr}<=${Fct})) ; do
echo ${fcthr} |awk '{printf ("%s,",$1)}'>> ${Eta_run}/FCTHR
let rest=${fcthr}%10
if (((${fcthr}!=0000)  && (${rest}==0))) ; then
echo ${fcthr} |awk '{printf ("\n"," ")}'>> ${Eta_run}/FCTHR
fi
let fcthr=${fcthr}+${IntFct}
let nfctout=${nfctout}+1
done
echo ${fcthr} |awk '{printf ("\n"," ")}'>> ${Eta_run}/FCTHR


cat << EOF > ${Eta_run}/slope.nml
 &SLOPENML
  SLOPE=${slope}
 &END
EOF

dt1=`echo ${dt} | cut -f1 -d.`
let insst=86400/${dt1}
cat << EOF > ${Eta_run}/SSTFLAG
 &FLGSST
   LSST=${sstflg}
   nsst=${insst}
 &END
EOF

cat << EOF4 >> ${Eta_run}/SOILMOIST
 &DANMOIST
  moistdan=${soilmoist}
 &END
EOF4

cat << EOF6 >> ${Eta_run}/TYPSOLO
${qtdtypsolo}
EOF6

let PTINP=${PT}*100
cat << EOF > ${Eta_run}/ETAIN
 &MODEL_GRIDS
  TLM0D=${Lon}
  TPH0D=${Lat}
  IM=${IM}
  JM=${JM}
  LM=${LM}
  PTINP=${PTINP}.
  DLMD=${dlmd}
  DPHD=${dphd}
  DT=${dt}
  IDTAD=2
  IMONTH=${imonth}
  IDATE=${iday}
  IYEAR=${iyear}
  ISTRTIM=${ih}
  NSOIL=4
  NINIT=${ninit}
  TBOCO=${InitBC}
EOF
cat ${Eta_run}/ICCC >> ${Eta_run}/ETAIN 
cat << EOF1 >> ${Eta_run}/ETAIN
  INIT_GDSDIR='${data_prep}/gdsinfo${extprep}'
  INIT_OUT='${Eta_run}'
 &END

 &SFC_INIT
  TOPO_IN='${data_topo}/'
  TOPO_OUT='${Eta_wrk_fix}/etatopo.dat'
  SEARES=30.
  FRACLK=0.3
  GRIBSOIL=.TRUE.
  SIGMA=.FALSE.
  REAN=.FALSE.
  REAN_SFC='${data_grib}/grb2d93031200'
 &END
EOF1

cat << EOF2 > ${Eta_run}/VEGETATION
 &VEG
  vegflag=${vegflag}
 &END
EOF2

#cat ${Eta_ucl}/fcstdata.meso_${IntFct}h_template|sed s:ENDFCT:${Fct}:|sed s:P1ENDFCT:${p1endfct}:|sed s:NTSPPHS:${nphs}:|sed s:NTSCNVC:${ncnv}:|sed s:APHYDRO:${hydro}: >${Eta_run}/fcstdata.meso


cat << EOF > ${Eta_run}/fcstdata.meso
 &FCSTDATA                                                           
 TSTART=00.0,TEND=${Fct}.00,TCP=${p1endfct},RESTRT=.FALSE.,SINGLRST=.TRUE.,SUBPOST=.FALSE.,
 NMAP=${nfctout},
EOF

cat ${Eta_run}/FCTHR >> ${Eta_run}/fcstdata.meso

cat ${Eta_ucl}/PressLevel >> ${Eta_run}/fcstdata.meso

#ANTIGO NPHS=${nphs},NCNVC=${ncnv},NRADSH=1,NRADLH=2,NTDDMP=1,
cat << EOF >> ${Eta_run}/fcstdata.meso
 NPHS=${nphs},NCNVC=${ncnv},NRADSH=1,NRADLH=1,NTDDMP=1,                       
 TPREC=${IntPhisAcum},THEAT=${IntPhisAcum},TCLOD=${IntPhisAcum},
 TRDSW=${IntPhisAcum},TRDLW=${IntPhisAcum},TSRFC=${IntPhisAcum},
 NEST=.FALSE.,HYDRO=${hydro},SPLINE=.TRUE.
 &END
 &POSTLIST
  SUBMIT='qsub ${Eta_run}/#'
 &END                                                             
EOF

rm -f ${Eta_run}/FCTHR
rm -f ${Eta_run}/ICCC
# SST INDEX snowdepth hires_sst
cp ${Eta_fix}/sstgrb.index ${Eta_datain}/sstgrb.index 
cp ${Eta_fix}/snowdepth.grb ${Eta_datain}/snowdepth.grb
cp ${Eta_fix}/hires_sst ${Eta_datain}/hires_sst

# SST CLIM 
 
#cp ${Eta_fix}/sstoi200010a200010p.1x1_Eta ${Eta_datain}/sstoi200010a200010p.1x1_Eta 

# NEW SST
#cp ${data_grib}/gdas1.T00Z.sstgrb.${iyear}${imonth}${iday}00 ${Eta_datain}/sstgrb
#

cat << EOF > ${Eta_run}/run.preproc.nqs
#!/bin/ksh
#
#PBS -N SPre${Run_Date}
#PBS -lselect=1:ncpus=1
#PBS -A CPTEC
#PBS -o ${Eta_run}/Etapreproc${Res}${Run_Date}
#PBS -j oe
#PBS -q pesq.q

. /opt/modules/default/etc/modules.sh
module load stat/1.1.3

cd ${Eta_run}
${Eta_run}/new_prep.sh

export PBS_SERVER=eslogin13
qsub ${Eta_run}/run.com_real_mpi
exit
EOF

export PBS_SERVER=aux20-eth4
chmod 755 ${Eta_run}/run.preproc.nqs
qsub ${Eta_run}/run.preproc.nqs
