m0n0lithic

caribbean.sh

Nov 24th, 2011
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.98 KB | None | 0 0
  1. #!/bin/bash
  2. #funcion para obtener la diferencia de tiempo para aplicarlo a tiempo dormido de un proceso
  3. dateDiff (){
  4. case $1 in
  5.     -s)   sec=1;      shift;;
  6.     -m)   sec=60;     shift;;
  7.     -h)   sec=3600;   shift;;
  8.     -d)   sec=86400;  shift;;
  9.     *)    sec=86400;;
  10. esac
  11. dte1=$(date --date "$1" +%s)
  12. dte2=$(date --date "$2" +%s)
  13. diffSec=$((dte2-dte1))
  14. if ((diffSec < 0)); then abs=-1; else abs=1; fi
  15. echo $((diffSec/sec*abs))
  16. }
  17.  
  18. WRFHOY=$(date '+%Y-%m-%d')
  19. WRFPATH=/spoa/WRFV33
  20. GFSDATA=$WRFPATH/WPS/GFS_DATA
  21. SWANPATH=/spoa/swan
  22. #BYASPATH=/opt/spoa/data/swan/boyas
  23. WRFOUTP=/spoa/WRFV33/WRFV3/run
  24. WRFOUT_FNAME=$WRFOUTP'/wrfout_d01_'$WRFHOY'_00:00:00'
  25. WRFOUT_FSIZE=7225892912
  26. WRFOUT_PATH="/spoa/data/wrf/out/car"
  27. OUTPAC_FNAME=
  28. SHAREHOST=dimarbtaweb19
  29. TOTHST=5
  30. SWNCPU=40
  31.  
  32. #Datos del Pacifico
  33. WRFOUTPAC_FNAME=/spoa/WRFV33PAC/WRFV3/run/wrfout_d01_$2_00:00:00
  34. WRFPAC_FSIZE=1086884724
  35. SWANPNG=/spoa/data/swan.png
  36. # SWNCPU=32
  37. # HPCHST=/home/slonin/.mpd.hosts
  38. export DISPLAY=:0.0 #localhost
  39. # ~/swan4051/mpiclean.sh
  40. # echo "Cleaning old MPI process >>>"
  41. # mpirun -pernode -hostfile ~/hosts.ompi orte-clean
  42. cd /spoa/scripts/bash
  43. echo "Loading wrf.sh script for CARIBBEAN using 40 CPUs >>>"
  44. # ./wrf.sh < /dev/null 2>&1 | tee ~/wrf.out
  45. ./wrf.sh < /dev/null 2>&1
  46.  
  47. # cd $WRFOUTP
  48. WRFOUT_SIZE=`stat -c%s $WRFOUT_FNAME`
  49. if [ -f $WRFOUT_FNAME ] && [ $WRFOUT_SIZE -eq $WRFOUT_FSIZE ]       #si el archivo no esta completado en su totalidad no puede ejecutar el resto
  50. then
  51.     # 20111210: Anemografos Locales, out to wind3p
  52.     cd ../matlab/anemografos
  53.     matlab -nosplash < sl_anvir.m
  54.     # rm temp.png archtmp.ps
  55.     val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%"`   #verify webserver is alive
  56.     if [ -n "${val_}" ]; then
  57.         cp -p *.png /mnt/nfs/wind3p/png
  58.     fi
  59.  
  60.     echo "ukmo: interwind & winds at `date +%H:%M:%S`"
  61.     cd $WRFOUTP
  62.     ./read_wrf_nc $WRFOUT_FNAME -w U10
  63.     ./read_wrf_nc $WRFOUT_FNAME -w V10
  64.     # cp -p /opt/spoa/ukmo_data/V*.DAT /home/ftpsite/ukmo/wind3p
  65.     # echo "ukmo: leer_ukmo y ukmo_pac at `date +%H:%M:%S`"
  66.     #/opt/spoa/ukmo_data/leer_ukmo && /opt/spoa/ukmo_data/ukmo_pac
  67.     cd ~/nedwam  # cambiar de homepath hacia nedwam
  68.     ./wrfwind
  69.     echo "Starting CaribWAM Model at `date +%H:%M:%S`"
  70.     ./caribwam
  71.     echo "Finishing CaribWAM Model at `date +%H:%M:%S`"
  72.     # echo "Move virt_*.dat & run matlb at `date +%H:%M:%S`"
  73.     # mv -f virt_*.dat $SWANPATH
  74.     ./matlb
  75.     cd /spoa/data/caribwam
  76.     ./vientos
  77.     echo "Generating MatLab CaribWAM Model Output Graphics at `date +%H:%M:%S`"
  78.     # export DISPLAY=m0n0:0     #Enviando salidas graficas a Xming Server at m0n0
  79.     matlab -nosplash < grafica02_spoa.m
  80.     # matlab -nosplash -nodesktop < grafica02_spoamod.m >& script.out   #using -zbuffer
  81.     # unset DISPLAY
  82.     rm temp.png temp.ps
  83.     dpath=/spoa/data/caribwam
  84.     cloud=/mnt/nfs/nedwam
  85.     year=$(date +%Y)
  86.     if [ ! -d "$dpath/data/$year" ] && [ ! -d "$dpath/graph/$year" ]; then
  87.         mkdir -p $dpath/{data,graph}/$year
  88.     fi
  89.     hoy=$(date '+%b %e')    #gentoo date format
  90.     graph=(`ls -l *.png | awk '/'"$hoy"'/ {print $9}'`)
  91.     num=${#graph[@]}
  92.     echo "Copying matlab output graphics of CaribWAM Model en Webserver y backup local at `date +%H:%M:%S`"
  93.     # val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%" > /dev/null 2>&1`    #verify webserver is alive
  94.     val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%"`   #verify webserver is alive
  95.     if [ -n "${val_}" ]; then
  96.         for i in "${graph[@]}"; do
  97.             cp -fp $i $cloud        #copia PNGs recientes en nube del webserver
  98.             echo "caribwam: cp -fp $i to $cloud"
  99.             mv -f $i $dpath/graph/$year #mueve archivos PNGs recientes a estructura local de backup
  100.         done
  101.     fi
  102.     datname=crb$year$(date +%m%d).dat
  103.     echo "Move $datname to $dpath/data/$year at `date +%H:%M:%S`"
  104.     mv $datname $dpath/data/$year       #mueve el ultimo .dat a la carpeta de backup
  105.     #20100824: Move wrfout data
  106.     cd $WRFPATH/WRFV3/run
  107.     wrfout=`ls wrfout_d01_$(date '+%Y-%m-%d')_00:00:00`
  108.     mv $wrfout $WRFOUT_PATH
  109. else
  110.     echo "$WRFOUT_FNAME no es correcto!"
  111.     exit 1
  112. fi
  113.  
  114. # SWAN Model - Locales
  115. cd $SWANPATH
  116. # Cartagena
  117. cp -a virt_b5.dat virt_b5n.dat;cp -a virt_b5.dat virt_b5w.dat;cp -a virt_b5.dat virt_b5s.dat
  118. ./swanrun -input cp05 -mpi $SWNCPU
  119. # CP03 - BARRANQUILLA Y SANTA MARTA (real    2m30.172s)
  120. cp virt_b6.dat virt_b6n.dat;cp virt_b6.dat virt_b6w.dat;cp virt_b6.dat virt_b6e.dat
  121. echo "Distribute Computing Over 5 nodes for Caribbeam SWAN Model at `date +%H:%M:%S`"
  122. ./swanrun -input cp03 -mpi $SWNCPU
  123. # COVENHAS (1m8.106s)
  124. cp virt_b4.dat virt_b4n.dat;cp virt_b4.dat virt_b4w.dat
  125. ./swanrun -input cp09 -mpi $SWNCPU
  126. # CP07 - SAI (0m41.269s)
  127. 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
  128. ./swanrun -input cp07 -mpi 8
  129. # CP12 - PROVIDENCIA (0m23.646s)
  130. 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
  131. ./swanrun -input cp12 -mpi $SWNCPU
  132. #CP08 - URABA (6m54.726s)
  133. cp virt_b3.dat virt_b3n.dat;cp virt_b3.dat virt_b3w.dat;cp virt_b3.dat virt_b3e.dat
  134. ./swanrun -input cp08 -mpi $SWNCPU
  135. #CP06 - RIOHACHA (1m47.945s)
  136. cp virt_b7.dat virt_b7n.dat;cp virt_b7.dat virt_b7w.dat;cp virt_b7.dat virt_b7e.dat
  137. ./swanrun -input cp06 -mpi $SWNCPU
  138. #CP14 - P. Bolivar (2m51.942s)
  139. cp virt_b8.dat virt_b8n.dat;cp virt_b8.dat virt_b8w.dat;cp virt_b8.dat virt_b8e.dat
  140. ./swanrun -input cp14 -mpi $SWNCPU
  141. # Fin de ejecución para locales swn
  142. cd ../data/swan
  143. ./outtodo
  144. matlab -nosplash < grafica_locales.m
  145. SWNDATAPATH=$SWANPNG/$(date '+%Y%m%d')/car
  146. if [ ! -d "$SWNDATAPATH" ]; then
  147.     mkdir -p $SWNDATAPATH
  148. fi
  149. val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%"`   #verify webserver is alive
  150. for fichero in cp*.png;
  151. do
  152.     newarchivo=($(ls -lt --full-time $fichero))
  153.     fecha=${newarchivo[5]:0:4}${newarchivo[5]:5:2}${newarchivo[5]:8:2}
  154.     nombre=${fichero:0:4}
  155.     newarchivo=$nombre$fecha.png
  156.     echo $newarchivo
  157.     if [ -n "${val_}" ]; then
  158.         cp -a $fichero /mnt/nfs/swan/carib/${newarchivo}
  159.         echo "SWAN: cp -a $fichero to /mnt/nfs/swan/carib/${newarchivo}"
  160.     fi
  161.     mv $fichero $SWNDATAPATH
  162. done
  163. echo "End of SPOA Caribbean at `date +%H:%M`"
  164. exit 1
Advertisement
Add Comment
Please, Sign In to add comment