#!/bin/ksh

# true: Prepara os dados para serem feitas as figuras - false: Pula esta etapa
export fazstat=true
# true: Gera as figuras - false: Pula esta etapa
export fazfig=false
export erroConfig=0

# Diretorios para leitura/escrita das estatiticas, diagnosticos e figuras.
export GSI_stat=${stat_home}                      # Diretorio raiz
export GStatRun=${stat_run}                       # Diretorio de execucao, onde encontra-se o script principal (runGSI_STAT)
export GStatBin=${stat_bin}                       # Diretorio com o binarios
export GStatSrc=${stat_src}                       # Diretorio com fontes dos programas para ler os arquivos de diagnostico

export GStatLog=${stat_run}/log                   # Diretorio com os logs de execucao

export GStatScp=${stat_util}/scripts              # Diretorio com scripts auxiliares
export GStatCfg=${stat_util}/conf                 # Diretorio com este arquivo de configuracao e namelists
export GStatLib=${stat_util}/lib                  # Diretorio com bibliotecas

export GStatOut=${stat_bina}                      # Diretorio de saida dos txt da estatistica
export GStatInp=${stat_tabe}                      # Diretorio de saida do GSI (input do GSI_STAT)
export GStatFig=${stat_figu}                      # Diretorio com as figuras geradas

# Area da figura
export llati=-90.    # Latitude Inicial
export llatf=90.     # Latitude Final
export lloni=-180.   # Longitude Inicial
export llonf=180.    # Longitude Final

env | grep GStat | while read line; do
   dir=`echo ${line}| awk -F"=" '{print $2}'`
   if [ ! -e ${dir} ]; then
      echo "criou o dir: " ${dir}
      mkdir -p ${dir}
   fi
done

# Configuracoes
export horarios=(00 06 12 18) # Horarios em que existe analise do GSI
export incr=06                # Incremento em horas entre cada analise
export NProc=72               # Numero de Processadores que o GSI roda no tupa colocar 12 para o testcase do RMS
export NTime=16               # Numero de tempos em que verifica se os
                              # arquivos de estatistica e as figuras foram geradas
export NFiguras=17            # Numero de figuras que serao geradas por data
export obspross="conv rad"    # Tipo de observacao a ser processada
                              # "conv rad" = convencional e radiancias; "conv" = convencional; "rad" = radiancias

# Niveis dos arquivos de diagnostigo
lev[1]=1000
lev[2]=900
lev[3]=800
lev[4]=700
lev[5]=600
lev[6]=500
lev[7]=400
lev[8]=300
lev[9]=250
lev[10]=200
lev[11]=150
lev[12]=100
lev[13]=50
lev[14]=0

# funcoes

mostraHelice() {
    for i in / - \\ \|
    do
       echo -ne "\033[31;1m"
       echo -ne "\033[1D$i"
       echo -ne "\033[m"
       sleep .1
    done
}


IndexOf()    {
    local i=1 S=$1; shift
    while [ $S != $1 ]
    do    ((i++)); shift
        [ -z "$1" ] && { i=0; break; }
    done
    return $i
}


writedconf() {

#--------------------------------------------------------------------------------------------#
#                  Group on Data Assimilation Development - GDAD/CPTEC/INPE                  #
#--------------------------------------------------------------------------------------------#

# Segue o mesmo padrao de template do GrADS acrescentando os seguintes tipos:
#
# %obstype = tipo de observacao : ps, uv, pw, t, gps [seguem as nomenclaturas dadas pelo GSI].
# %type    = tipo de informacao : entrada 01,02 : saida fgs, anl
# %stat    = informacao estatistica. Os arquivos terao os seguintes rotulos:
#            * ttobs: Total de observacoes
#            * tused: numero de dados utilizados
#            * nused: numero de dados nao utilizados
#            * rejec: numero de dados rejeitados
#            * monit: numero de dados monitorados
# %RepType = Report Type

cat << EOF > ${1}/diag_gsi.conf

Numero de Processadores:  $2  
Diretorio de Entrada:     ${GSIout}/%y4%m2%d2%h2/diag
Diretorio de Saida:       ${GStatOut}/%y4%m2/%d2%h2/conv
Arquivo pe GSI:           pe%e.conv_%type
Arquivo Espacial Binario: sso_%obstype.%y4%m2%d2%h2.%type.gs4r
Arquivo Espacial ASCII:   sso_%obstype.%y4%m2%d2%h2.%type.dat
Arquivo OMF/OMA ASCII:    ${GStatOut}/temporal/conv/om%type_%obstype.%RepType_%h2.dat
Tabela Contagem Total:    soc.%y4%m2%d2%h2.%type.dat
Tabela Contagem Nivel:    socl.%stat.%y4%m2%d2%h2.%type.dat

EOF
#--------------------------------------------------------------------------------------------#
}

diffdate() {
 di=${1}
 df=${2}

 si=$(date --date "${di:0:8} ${di:8:2}:${di:10:2}:${di:12:2}" +%s)
 sf=$(date --date "${df:0:8} ${df:8:2}:${df:10:2}:${df:12:2}" +%s)

 (( dias = (sf - si )/86400 ))
 (( horas = dias*24 ))
 (( minutos = horas*60 ))
 (( segundos = minutos*60 ))

export dias=$dias
export horas=$horas
export minutos=$minutos
export segundos=$segundos

}
