#!/bin/csh  
 
# Programa para: Preparar os dados de entrada do CFS para o Modelo Eta (formato AVN binario)/ Preparar dados da SST
# Autor: Luís Felipe Alves de Carvalho

set datainit = $1

set experimento = CFS
set dirdata = /stornext/online1/eta/etaclim/felipe/scripts/solicitacoes/Chou/dados_CFS/${datainit}
set dirout_temp=/stornext/online1/eta/etaclim/felipe/scripts/solicitacoes/Chou/AVN_temp_${experimento}
set dirout=/stornext/online1/eta/etaclim/felipe/scripts/solicitacoes/Chou/AVN_${experimento}/${datainit}

set cam_sst_Eta=/scratchin/grupos/eta/home/etaclim/sazonal/worketa/data/grib
set cam_sst_CFS=/stornext/online1/eta/etaclim/felipe/scripts/solicitacoes/Chou/dados_CFS

# Define parametros para a SST
set sst_Eta=`/stornext/online1/eta/etaclim/felipe/scripts/Resources/caldate.3.0 ${datainit} - 30d 'yyyymm'` #pega o mês anterior ao mês da rodada utilizada
set data8=`/stornext/online1/eta/etaclim/felipe/scripts/Resources/caldate.3.0 ${datainit} + 0d "yyyymmdd"`
set data6=`/stornext/online1/eta/etaclim/felipe/scripts/Resources/caldate.3.0 ${datainit} + 0d "mmmyyyy"`

mkdir -p $dirout_temp $dirout

#gera ctl para o preparo da SST
foreach dado_ocnf (`find . -name `${dirdata}/ocnf*` | xargs -i -t | echo`)

set period=`echo $dado_ocnf | cut -c89-98`
set nano=`echo $period | cut -c1-4`
set nmes=`echo $period | cut -c5-6`
set ndia=`echo $period | cut -c7-8`
set nhora=`echo $period | cut -c9-10`

g2ctl ${dirdata}/ocnf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2 > ocnf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2_2.ctl

sed "s:${dirdata}/ocnf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.idx:${dirdata}/ocnf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.idx:g" ocnf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2_2.ctl > ocnf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.ctl

rm -f ocnf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2_2.ctl

gribmap -i ocnf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.ctl

mv ocnf* $dirdata

end

#cria ctl template que será utilizado para gerar a SST
/stornext/online1/eta/etaclim/felipe/scripts/solicitacoes/Chou/dados_CFS/gera_ctl_template.csh ${datainit}

#condições de entrada
foreach dado_flxf (`find . -name `${dirdata}/flxf*` | xargs -i -t | echo`)

set period=`echo $dado_flxf | cut -c89-98`
set nano=`echo $period | cut -c1-4`
set nmes=`echo $period | cut -c5-6`
set ndia=`echo $period | cut -c7-8`
set nhora=`echo $period | cut -c9-10`

g2ctl ${dirdata}/flxf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2 > flxf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2_2.ctl

sed "s:${dirdata}/flxf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.idx:${dirdata}/flxf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.idx:g" flxf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2_2.ctl > flxf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.ctl

rm -f flxf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2_2.ctl

gribmap -i flxf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.ctl

mv flxf* $dirdata
end

foreach dado_pgbf (`find . -name `${dirdata}/pgbf*` | xargs -i -t | echo`)

# Periodo para os dados 3d
set period=`echo $dado_pgbf | cut -c89-98`
set nano=`echo $period | cut -c1-4`
set nmes=`echo $period | cut -c5-6`
set ndia=`echo $period | cut -c7-8`
set nhora=`echo $period | cut -c9-10`

g2ctl ${dirdata}/pgbf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2 > pgbf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2_2.ctl

sed "s:${dirdata}/pgbf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.idx:${dirdata}/pgbf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.idx:g" pgbf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2_2.ctl > pgbf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.ctl

rm -f pgbf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2_2.ctl

gribmap -i pgbf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.ctl

mv pgbf* $dirdata

cat <<EOF> prep_data_AVN.gs
'reinit'

* HGTprs, RHprs, TMPprs, UGRDprs, VGRDprs
*'open pgbhnl.gdas.${period}.grb2.ctl'
'open ${dirdata}/pgbf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.ctl'

* Topo
'open /stornext/online4/etamc/CFSR/topo.ctl'

* Condicoes de solo Erainterim
'open /stornext/online4/etamc/CFSR/solo/Soil_Moisture_Temperature_Jan.ctl'

'set t last'
'q dims'
linha=sublin(result,5)
tempofinal=subwrd(linha,9)
say 'tempofinal= ' tempofinal

tempo=1
while (tempo<=tempofinal)

'set t 'tempo

'q time'
data=subwrd(result,3)
hora=substr(data,1,2)
dia=substr(data,4,2)
mes=substr(data,6,3)
ano=substr(data,11,2)

if (mes=JAN); mm=01; endif
if (mes=FEB); mm=02; endif
if (mes=MAR); mm=03; endif
if (mes=APR); mm=04; endif
if (mes=MAY); mm=05; endif
if (mes=JUN); mm=06; endif
if (mes=JUL); mm=07; endif
if (mes=AUG); mm=08; endif
if (mes=SEP); mm=09; endif
if (mes=OCT); mm=10; endif
if (mes=NOV); mm=11; endif
if (mes=DEC); mm=12; endif

if (mm=01)
'open /stornext/online4/etamc/CFSR/solo/Soil_Moisture_Temperature_Jan.ctl' 
endif

#if (mm=10)
#'open /stornext/online4/etamc/CFSR/solo/Soil_Moisture_Temperature_Out.ctl' 
#endif

* PRESsfc --- GSM
'open ${dirdata}/flxf${nano}${nmes}${ndia}${nhora}.01.${datainit}.grb2.ctl'

say hora' 'dia' 'mm' 'ano

* Valores capturados do topo.ctl 
'set x 1 360'
'set y 1 181' 

'set fwrite 'ano%mm%dia%hora'0000.ETA_avn'
'set gxout fwrite'

nivel=1
while (nivel<=37)
'set z 'nivel
'd UGRDprs'
nivel=nivel+1
endwhile

nivel=1
while (nivel<=37)
'set z 'nivel
'd VGRDprs'
nivel=nivel+1
endwhile

nivel=1
while (nivel<=37)
'set z 'nivel
'd HGTprs'
nivel=nivel+1
endwhile

nivel=1
while (nivel<=37)
'set z 'nivel
'd SPFHprs'
nivel=nivel+1
endwhile

nivel=1
while (nivel<=37)
'set z 'nivel
'd TMPprs'
nivel=nivel+1
endwhile

'set z 1'

'd lterp(topo.2(t=1),UGRDprs(t=1))'

'd PRMSLmsl'

*'d PRESsfc.4'

****'d PRES2pv'
'd lterp(PRESsfc.4,UGRDprs(t=1))'

'd lterp(topo.2(t=1),UGRDprs(t=1))'

* Condicoes do solo:

'd lterp(STL10_7cm.3(t=1),UGRDprs(t=1))'

'd lterp(SWVL10_7cm.3(t=1),UGRDprs(t=1))'

'd lterp(STL27_28cm.3(t=1),UGRDprs(t=1))'

'd lterp(SWVL27_28cm.3(t=1),UGRDprs(t=1))'

'd lterp(STL328_100cm.3(t=1),UGRDprs(t=1))'

'd lterp(SWVL328_100cm.3(t=1),UGRDprs(t=1))'

'd lterp(STL4100_255cm.3(t=1),UGRDprs(t=1))'

'd lterp(SWVL4100_255cm.3(t=1),UGRDprs(t=1))'

'disable fwrite'

tempo=tempo+1

endwhile

'quit'
EOF

grads -bpc "run prep_data_AVN.gs"
rm -rf prep_data_AVN.gs

foreach arq (*0000.ETA_avn) 
cp $arq entrada
mv $arq ${dirout_temp}
set arq2=`echo $arq | cut -c1-20`
echo Convertendo o arquivo $arq2
./bin_AVN_CLUSTER.x
mv saida ${dirout}/$arq2
rm -rf entrada
end
end #end for each

grads -bpc "run /stornext/online1/eta/etaclim/felipe/scripts/solicitacoes/Chou/gera_sst_media.gs ${cam_sst_Eta}/sstoi${sst_Eta}a${sst_Eta}.ctl ${cam_sst_CFS}/${datainit}/ocnf${datainit}.ctl ${data8} ${data6}"

cp gdsinfo.ETA_avn ${dirout}/gdsinfo.ETA_avn
mv sstoi_1x1_${data8}_Eta ${cam_sst_Eta}

exit
