#!/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