#! /bin/ksh -x
# Script....: Eta_PosDec
# Shell.....: Korn Shell
# Objetivo..: Gerar arquivos *.bin, *.ctl, *.gs automaticamente a partir dos parametros passsados
#             e startar outros processos para completar o pos-processamento
# Sintaxe...: Eta_PosDec DATA
# Parametros: DATA......Data da rodada do mglobal padrao YYMMDDHH
# Autor.....: Jose Roberto Motta Garcia
# e-mail....: garcia@cptec.inpe.br

# Verifica se foi passado pelo menos um parametro
if (($#<1)) ; then
echo "Eta_PosDec: Sintaxe Incorreta"
echo "Uso: Eta_PosDec  YYMMAAHH" 
exit 1
fi
DIR_ROOT=`pwd`/..
## Seta as variaveis de acordo com o parametro passado
EDATE=$1
Res=$2
LabRod=$3
Conf=$4
INI=$5
FIM=$6
INTER=$7
DIR_GRBCTL=${8}/${Res}km/${EDATE}
DIR_BINCTLIND=${9}/${Res}km/${EDATE}
DIR_EXEC=${DIR_ROOT}/scripts
DIR_OUTPUT=${DIR_EXEC}/output
DIR_TEMP=${DIR_ROOT}/temp
DIR_GMP=${DIR_ROOT}/gmp
DIR_GIF=${DIR_ROOT}/gif

export DIR_GRBCTL
export DIR_EXEC
export DIR_TEMP
export DIR_GMP
export DIR_GIF
export DIR_SKT

## Variaveis que definem rotinas a serem executadas (usadas para testes tornando o processamento mais rapido)
## Todas deverao estar com o valor 1 na rodada operacional do modelo
#read serv_pub fserv_pub 
#read GIFS
serv_pub=pcpesq10.ipmet.unesp.br
fserv_pub=0
GIFS=1
export serv_pub 
export fserv_pub 
export GIFS 

cd ${DIR_EXEC}

typeset -Z4 YY
typeset -Z2 MM 
typeset -Z2 DD 
typeset -Z2 HH 

YY=`echo ${EDATE}  | cut -c1-4`
MM=`echo ${EDATE}  | cut -c5-6`
DD=`echo ${EDATE}  | cut -c7-8` 
HH=`echo ${EDATE}  | cut -c9-10`

YEAR=${YY}
MONTH=${MM}
DAY=${DD}
HOUR=${HH}


OUTPUT_FILE=${DIR_OUTPUT}/ntht$fexp

# Seta variaveis com valores iniciais
typeset -Z4 FHR
FHR=$INI

echo Inicio da geracao de binarios e ctls: 

while (($FHR<=$FIM)) ; do

if (($GIFS==1)) ; then

 dtle=`${Eta_home}/util/caldate.3.0 ${EDATE} + ${FHR}hr 'dd/mm/yyyy, hh'`
 gstime=`${Eta_home}/util/caldate.3.0 ${EDATE} + ${FHR}hr 'hhZddmmmyyyy'`
 LARQ=`echo "${LabRod}${Res}km${EDATE}"|awk '{print tolower($1)}'`
 ARQTMPL=${DIR_GRBCTL}/${LARQ}
 labw=`${Eta_home}/util/caldate.3.0 ${EDATE} + ${FHR}hr "sd"`
 cat ${DIR_EXEC}/templ_4x4.gs|sed "s:DIRWRK:${DIR_EXEC}/..:g"|sed "s:ARQCTL:${ARQTMPL}:g"|sed "s/SSS/${labw}/g"|sed "s/FIGINT/${INTER}/g" > ${DIR_EXEC}/4x4.gs 
 cat ${DIR_EXEC}/4x4.gs|sed "s/ZZ/${gstime}/g"|sed "s/DATE/$EDATE/g"|sed "s/TT/${FHR}/g"|sed "s:DTLE:${dtle}:g" > ${DIR_TEMP}/${EDATE}_4x4_$FHR.gs 
  /usr/bin/grads -bpc 'run '${DIR_TEMP}'/'${EDATE}'_4x4_'$FHR'.gs' 

TMPLIND=${DIR_BINCTLIND}/Indices${EDATE}
 cat ${DIR_EXEC}/Indices_templ.gs|sed "s:DIRWRK:${DIR_EXEC}/..:g"|sed "s:ARQCTL:${TMPLIND}:g"|sed "s/SSS/${labw}/g"|sed "s/FIGINT/${INTER}/g" > ${DIR_EXEC}/4x4.gs 
 cat ${DIR_EXEC}/4x4.gs|sed "s/ZZ/${gstime}/g"|sed "s/DATE/$EDATE/g"|sed "s/TT/${FHR}/g"|sed "s:DTLE:${dtle}:g" > ${DIR_TEMP}/${EDATE}_Indices_$FHR.gs 
  /usr/bin/grads -bpc 'run '${DIR_TEMP}'/'${EDATE}'_Indices_'$FHR'.gs' 
  
fi  
let rdiv=${FHR}%12

if (($GIFS==1))  && ((${FHR}>=24))  && ((${rdiv}==0)) ; then
 let TII=${FHR}/${INTER}+1
 let DTM=24/${INTER}-1
 let TFI=${TII}-${DTM}

 cat ${DIR_EXEC}/templ_precip.gs|sed "s:DIRWRK:${DIR_ROOT}:g"|sed "s:ARQCTL:${ARQTMPL}:g" \
 |sed "s/DATE/$EDATE/g"|sed "s/HP/${FHR}/g"|sed "s/TII/${TII}/g" \
 |sed "s/TFI/${TFI}/g"|sed "s:DTLE:${dtle}:g" > ${DIR_TEMP}/precip1.gs
 /usr/bin/grads -bpc  'run '${DIR_TEMP}'/precip1.gs'

fi


# fim do gera GIFS

let FHR=$FHR+$INTER
done

exit

