#!/bin/bash
#funcion para obtener la diferencia de tiempo para aplicarlo a tiempo dormido de un proceso
dateDiff (){
case $1 in
-s) sec=1; shift;;
-m) sec=60; shift;;
-h) sec=3600; shift;;
-d) sec=86400; shift;;
*) sec=86400;;
esac
dte1=$(date --date "$1" +%s)
dte2=$(date --date "$2" +%s)
diffSec=$((dte2-dte1))
if ((diffSec < 0)); then abs=-1; else abs=1; fi
echo $((diffSec/sec*abs))
}
WRFHOY=$(date '+%Y-%m-%d')
WRFPATH=/spoa/WRFV33
GFSDATA=$WRFPATH/WPS/GFS_DATA
SWANPATH=/spoa/swan
#BYASPATH=/opt/spoa/data/swan/boyas
WRFOUTP=/spoa/WRFV33/WRFV3/run
WRFOUT_FNAME=$WRFOUTP'/wrfout_d01_'$WRFHOY'_00:00:00'
WRFOUT_FSIZE=7225892912
WRFOUT_PATH="/spoa/data/wrf/out/car"
OUTPAC_FNAME=
SHAREHOST=dimarbtaweb19
TOTHST=5
SWNCPU=40
#Datos del Pacifico
WRFOUTPAC_FNAME=/spoa/WRFV33PAC/WRFV3/run/wrfout_d01_$2_00:00:00
WRFPAC_FSIZE=1086884724
SWANPNG=/spoa/data/swan.png
# SWNCPU=32
# HPCHST=/home/slonin/.mpd.hosts
export DISPLAY=:0.0 #localhost
# ~/swan4051/mpiclean.sh
# echo "Cleaning old MPI process >>>"
# mpirun -pernode -hostfile ~/hosts.ompi orte-clean
cd /spoa/scripts/bash
echo "Loading wrf.sh script for CARIBBEAN using 40 CPUs >>>"
# ./wrf.sh < /dev/null 2>&1 | tee ~/wrf.out
./wrf.sh < /dev/null 2>&1
# cd $WRFOUTP
WRFOUT_SIZE=`stat -c%s $WRFOUT_FNAME`
if [ -f $WRFOUT_FNAME ] && [ $WRFOUT_SIZE -eq $WRFOUT_FSIZE ] #si el archivo no esta completado en su totalidad no puede ejecutar el resto
then
# 20111210: Anemografos Locales, out to wind3p
cd ../matlab/anemografos
matlab -nosplash < sl_anvir.m
# rm temp.png archtmp.ps
val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%"` #verify webserver is alive
if [ -n "${val_}" ]; then
cp -p *.png /mnt/nfs/wind3p/png
fi
echo "ukmo: interwind & winds at `date +%H:%M:%S`"
cd $WRFOUTP
./read_wrf_nc $WRFOUT_FNAME -w U10
./read_wrf_nc $WRFOUT_FNAME -w V10
# cp -p /opt/spoa/ukmo_data/V*.DAT /home/ftpsite/ukmo/wind3p
# echo "ukmo: leer_ukmo y ukmo_pac at `date +%H:%M:%S`"
#/opt/spoa/ukmo_data/leer_ukmo && /opt/spoa/ukmo_data/ukmo_pac
cd ~/nedwam # cambiar de homepath hacia nedwam
./wrfwind
echo "Starting CaribWAM Model at `date +%H:%M:%S`"
./caribwam
echo "Finishing CaribWAM Model at `date +%H:%M:%S`"
# echo "Move virt_*.dat & run matlb at `date +%H:%M:%S`"
# mv -f virt_*.dat $SWANPATH
./matlb
cd /spoa/data/caribwam
./vientos
echo "Generating MatLab CaribWAM Model Output Graphics at `date +%H:%M:%S`"
# export DISPLAY=m0n0:0 #Enviando salidas graficas a Xming Server at m0n0
matlab -nosplash < grafica02_spoa.m
# matlab -nosplash -nodesktop < grafica02_spoamod.m >& script.out #using -zbuffer
# unset DISPLAY
rm temp.png temp.ps
dpath=/spoa/data/caribwam
cloud=/mnt/nfs/nedwam
year=$(date +%Y)
if [ ! -d "$dpath/data/$year" ] && [ ! -d "$dpath/graph/$year" ]; then
mkdir -p $dpath/{data,graph}/$year
fi
hoy=$(date '+%b %e') #gentoo date format
graph=(`ls -l *.png | awk '/'"$hoy"'/ {print $9}'`)
num=${#graph[@]}
echo "Copying matlab output graphics of CaribWAM Model en Webserver y backup local at `date +%H:%M:%S`"
# val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%" > /dev/null 2>&1` #verify webserver is alive
val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%"` #verify webserver is alive
if [ -n "${val_}" ]; then
for i in "${graph[@]}"; do
cp -fp $i $cloud #copia PNGs recientes en nube del webserver
echo "caribwam: cp -fp $i to $cloud"
mv -f $i $dpath/graph/$year #mueve archivos PNGs recientes a estructura local de backup
done
fi
datname=crb$year$(date +%m%d).dat
echo "Move $datname to $dpath/data/$year at `date +%H:%M:%S`"
mv $datname $dpath/data/$year #mueve el ultimo .dat a la carpeta de backup
#20100824: Move wrfout data
cd $WRFPATH/WRFV3/run
wrfout=`ls wrfout_d01_$(date '+%Y-%m-%d')_00:00:00`
mv $wrfout $WRFOUT_PATH
else
echo "$WRFOUT_FNAME no es correcto!"
exit 1
fi
# SWAN Model - Locales
cd $SWANPATH
# Cartagena
cp -a virt_b5.dat virt_b5n.dat;cp -a virt_b5.dat virt_b5w.dat;cp -a virt_b5.dat virt_b5s.dat
./swanrun -input cp05 -mpi $SWNCPU
# CP03 - BARRANQUILLA Y SANTA MARTA (real 2m30.172s)
cp virt_b6.dat virt_b6n.dat;cp virt_b6.dat virt_b6w.dat;cp virt_b6.dat virt_b6e.dat
echo "Distribute Computing Over 5 nodes for Caribbeam SWAN Model at `date +%H:%M:%S`"
./swanrun -input cp03 -mpi $SWNCPU
# COVENHAS (1m8.106s)
cp virt_b4.dat virt_b4n.dat;cp virt_b4.dat virt_b4w.dat
./swanrun -input cp09 -mpi $SWNCPU
# CP07 - SAI (0m41.269s)
cp virt_b1.dat virt_b1n.dat;cp virt_b1.dat virt_b1w.dat;cp virt_b1.dat virt_b1s.dat;cp virt_b1.dat virt_b1e.dat
./swanrun -input cp07 -mpi 8
# CP12 - PROVIDENCIA (0m23.646s)
cp virt_b2.dat virt_b2n.dat;cp virt_b2.dat virt_b2w.dat;cp virt_b2.dat virt_b2s.dat;cp virt_b2.dat virt_b2e.dat
./swanrun -input cp12 -mpi $SWNCPU
#CP08 - URABA (6m54.726s)
cp virt_b3.dat virt_b3n.dat;cp virt_b3.dat virt_b3w.dat;cp virt_b3.dat virt_b3e.dat
./swanrun -input cp08 -mpi $SWNCPU
#CP06 - RIOHACHA (1m47.945s)
cp virt_b7.dat virt_b7n.dat;cp virt_b7.dat virt_b7w.dat;cp virt_b7.dat virt_b7e.dat
./swanrun -input cp06 -mpi $SWNCPU
#CP14 - P. Bolivar (2m51.942s)
cp virt_b8.dat virt_b8n.dat;cp virt_b8.dat virt_b8w.dat;cp virt_b8.dat virt_b8e.dat
./swanrun -input cp14 -mpi $SWNCPU
# Fin de ejecución para locales swn
cd ../data/swan
./outtodo
matlab -nosplash < grafica_locales.m
SWNDATAPATH=$SWANPNG/$(date '+%Y%m%d')/car
if [ ! -d "$SWNDATAPATH" ]; then
mkdir -p $SWNDATAPATH
fi
val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%"` #verify webserver is alive
for fichero in cp*.png;
do
newarchivo=($(ls -lt --full-time $fichero))
fecha=${newarchivo[5]:0:4}${newarchivo[5]:5:2}${newarchivo[5]:8:2}
nombre=${fichero:0:4}
newarchivo=$nombre$fecha.png
echo $newarchivo
if [ -n "${val_}" ]; then
cp -a $fichero /mnt/nfs/swan/carib/${newarchivo}
echo "SWAN: cp -a $fichero to /mnt/nfs/swan/carib/${newarchivo}"
fi
mv $fichero $SWNDATAPATH
done
echo "End of SPOA Caribbean at `date +%H:%M`"
exit 1
Comments