m0n0lithic icon

caribbean.sh

m0n0lithic | PRO | 11/24/11 08:52:57 PM UTC | 0 ⭐ | 249 👁️ | Never ⏰ | []
Bash |

5.98 KB

|

None

|

0 👍

/

0 👎

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