#! /bin/bash 
#--------------------------------------------------------------------#
#                    humNphy - GDAD/CPTEC/INPE - 2017                #
#--------------------------------------------------------------------#
#BOP
#
# !DESCRIPTION:
#  Ferramenta deapoio ao  diagnostico evalu destinada para armazenar os dados do experimento 
#  desejado como dados de controle para a comparação com os outros experimentos
#
# !INTERFACE:
#    ./ArmazenaCNT.sh LABELINI LABELFIM PROTOCOLO TRC NLV GSI_system EXPE
#
#    Onde:
#         => LABELINI  : Data da analise [%y4%m2%d2%h2]
#         => LABELFIM  : Data da analise Final [%y4%m2%d2%h2]
#         => PROTOCOLO : Nome do protocolo do EVAL em que está sendo utilizado
#         => TRC       : 4 digits spectral resolution                           
#         => LV        : 3 digits vertical resolution
#         => GSI_system: Label do sistema de modelagem com o GSI: Ex. "SMG" "RMS"
#         => EXPE      : Label do experimento onde se destina os dados de saida: Ex. "TESTCASE"
#
#  !EXAMPLES:  
#    ./ArmazenaCNT.sh 2013010100 2013010218 humNphy 299 64 SMNA EXP15 
#
#
# !REVISION HISTORY:
#  10-03-2023 - Luiz Sapucci - Codigo Inicial
#
# !REMARKS:
#
# !BUGS:
#
#EOP
#--------------------------------------------------------------------#
#BOC

# Verificando se ajuda
if [ "${1}" = "ajuda" ]
  then
    echo -e ""  
    echo -e "\033[33;1m Ferramenta para armazenar os dados usados de controle para \033[m"
    echo -e "\033[33;1m os diferentes protocolos da avaliacao do GSI\033[m"
    echo -e ""
    echo -e "\033[33;1m !INTERFACE:\033[m"
    echo -e "\033[33;1m ./run_humNphy.sh LABELINI LABELFIM PROTOCOLO TRC LV GSI_system EXPE \033[m"
    echo -e ""
    echo -e ""    
    exit 
else

  if [ -z "${1}" ]
  then
    export LABELI=2020010106
  else
    export LABELI=${1}
  fi
  if [ -z "${2}" ]
  then
    export LABELF=2020010218
  else
    export LABELF=${2} 
  fi

  if [ -z "${3}"  ]
  then
    export PROTO="humNphy"
  else
    export PROTO=${3} 
  fi
  if [ -z "${4}" ]
  then
    export TRC=299
  else
    export TRC=${4}
  fi
  if [ -z "${5}" ]
  then
    export NLV=64
  else
    export NLV=${5}
  fi
  if [ -z "${6}" ]
  then
    export nome_sys="SMNA"
  else
    export nome_sys=${6}
  fi
  if [ -z "${7}" ]
  then
    export EXPE="EXPE"
  else
    export EXPE=${7}
  fi

  if [ $# -eq 0 ]
   then
     echo -e ""
     echo -e "\033[31;1m  Nenhum parametro informado!! \033[m"
     echo -e ""
     echo -e "\033[33;1m !INTERFACE:\033[m"
     echo -e "\033[33;1m ./ArmazenaCNT.sh LABELINI LABELFIM PROTOCOLO TRC LV GSI_system EXPE \033[m"     
     echo -e ""
     echo -e "\033[31;1m Nao ha testcase para essa ferramenta  GSI_system \033[m"
     echo ""
     exit
    fi

  # Exportando variaveis do eval
  echo ""
  source  ~/evalu/config_eval.sh vars_export ${nome_sys} ${EXPE}

  if test ! -d ${eval_work}/; 
  then
    echo ""; echo "Rodada cancelada. nome_sys e Expe não existe!!!"  ${eval_work} ;
    exit; 
  fi
fi

export MRES=`echo ${TRC} ${NLV} | awk '{printf("TQ%4.4dL%3.3d\n",$1,$2)}'`

echo -e ""
echo -e "\033[34;1m > ArmazenaCNT: Ferramenta para armazenar os dados usados de controle para \033[m"
echo -e "\033[34;1m >          os diferentes protocolos da avaliacao do GSI \033[m"
echo -e ""
echo -e "\033[34;1m CONFIGURACAO DA RODADA \033[m"
echo -e ""
echo -e "\033[34;1m > Data Inicial      : \033[m \033[31;1m${LABELI}\033[m"
echo -e "\033[34;1m > Data Final        : \033[m \033[31;1m${LABELF}\033[m"
echo -e "\033[34;1m > Protocolo desejado: \033[m \033[31;1m${PROTO}\033[m"
echo -e "\033[34;1m > Resolucao         : \033[m \033[31;1m${MRES} \033[m"
echo -e "\033[34;1m > Sistema hospedeiro: \033[m \033[31;1m${nome_sys}\033[m"
echo -e "\033[34;1m > Experimento label : \033[m \033[31;1m${EXPE}\033[m"
echo -e ""
echo -ne "\033[31;1m > Deseja continuar? (S/N) \033[m"
echo -e ""
read resposta

if [[ ${resposta} != "S" && ${resposta} != "s" ]]
then
  echo ""
  echo -e "\033[34;1m  Saindo da ferramenta ArmazenaCNT!!! \033[m"
  echo ""
  exit
else
  echo -e ""
  echo -ne "\033[31;1m > Deseja informar algum detalhes sobre os dados agora considerados como controle?  \033[m"
  echo -ne "\033[31;1m > Essas informacoes serao armazenadas no README do DataCNT do evalu. \033[m"
  echo -e ""
  read obser
fi

if [ "${PROTO}" = "humNphy" ]
then

  echo "Armazenando os dados da rodada " ${EXPE} " do protocolo humNphy no dataCNT do eval"

  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URnegC_BAM.anl_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URnegC_BAM.anl_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URnegC_BAM.fct_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URnegC_BAM.fct_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URnegV_BAM.anl_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URnegV_BAM.anl_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URnegV_BAM.fct_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URnegV_BAM.fct_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URntH_BAM.anl_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URntH_BAM.anl_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URntH_BAM.fct_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URntH_BAM.fct_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URsatC_BAM.anl_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URsatC_BAM.anl_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URsatC_BAM.fct_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URsatC_BAM.fct_${LABELI}${LABELF}.txt 
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URsatV_BAM.anl_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URsatV_BAM.anl_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URsatV_BAM.fct_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URsatV_BAM.fct_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URstH_BAM.anl_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URstH_BAM.anl_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/dataout/tabela/URstH_BAM.fct_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/${MRES}/CNT_URstH_BAM.fct_${LABELI}${LABELF}.txt


fi

if [ "${PROTO}" = "minFcos" ]
then
  echo "Armazenando os dados da rodada " ${EXPE} " do protocolo minFcos no dataCNT do eval"

  cp ${eval_work}/diag/${PROTO}/tabela/EXP_cost_gradient_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/CNT_cost_gradient_${LABELI}${LABELF}.txt
  cp ${eval_work}/diag/${PROTO}/tabela/EXP_cost_terms_${LABELI}${LABELF}.txt ${eval_CNT}/diag/${PROTO}/CNT_cost_terms_${LABELI}${LABELF}.txt
  echo "Arquivos copiados"
  ls  ${eval_CNT}/diag/${PROTO}/*${LABELI}${LABELF}.txt
fi

if [ "${PROTO}" = "dryMcon " ]
then
  echo "estou no dryMcon mas sem fazer nada"
fi

if [ "${PROTO}" = "adjBerr" ]
then
  echo "estou no adjBerr mas sem fazer nada"
fi

#Armazenando informações no README do protocolo no DataCNT

readme=${eval_CNT}/diag/${PROTO}/README

echo -e "" >> ${readme}
echo -e "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ${readme}
echo -e "> ArmazenaCNT: Ferramenta para armazenar os dados usados de controle para" >> ${readme}
echo -e ">          os diferentes protocolos da avaliacao do GSI " >> ${readme}
echo -e "" >> ${readme}
echo -e " Dados do processo que substitui os dados de controle " >> ${readme}
echo -e "" >> ${readme}
echo -e "> Data do procedimento: " `date` >> ${readme}
echo -e "" >> ${readme}
echo -e " > Data Inicial      : ${LABELI}" >> ${readme}
echo -e " > Data Final        : ${LABELF}" >> ${readme}
echo -e " > Protocolo desejado: ${PROTO}" >> ${readme}
echo -e " > Resolucao         : ${MRES}" >> ${readme}
echo -e " > Sistema hospedeiro: ${nome_sys}" >> ${readme}
echo -e " > Experimento label : ${EXPE}" >> ${readme}
echo -e "" >> ${readme}
echo -e " > Observações sobre os dados consiredados agora controle: ${EXPE}" >> ${readme}
echo -e "" >> ${readme}
echo $obser >> ${readme}
echo -e "" >> ${readme}
echo -e "!!!!!!!!!!! FINAL !!!!!!!!!!!!!!!!!!!" >> ${readme}
echo -e "" >> ${readme}
