m0n0lithic

wrf.sh

Nov 24th, 2011
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 6.19 KB | None | 0 0
  1. #!/bin/env bash
  2. # Automatizacion corrida WRF en area51
  3. # export DISPLAY=":0.0"
  4.  
  5. # 20100608: Incorporando PBS/Torque Resource Manager con Maui Scheduler para manejar recursos computacionales para las tareas en SPOA
  6. #PBS -N SPOA_WRF_Daily
  7. #PBS -l nodes=1:mainNode,walltime=8:00:00
  8. #PBS -k o
  9. #PBS -q batch
  10. #PBS -m abe
  11. #PBS -j oe
  12. #20100805: Guardando GFS DATA Ultimo!
  13. ARGS=($@)       #cadena de argumentos
  14. NARGS=$#        #numero de argumentos
  15. NOPREP="NO"
  16. DOM="1"         #numero de dominios a computar
  17.  
  18. WRFHOY=$(date -u '+%Y-%m-%d')
  19. TODAY=$(date -u '+%Y%m%d')
  20. SHAREHOST="dimarbtaweb19"
  21. WRF_PATH="/spoa/WRFV33"
  22. NFS_WRF_PATH="/mnt/nfs/wrf/car"
  23. PNG_WRF_PATH="/spoa/data/wrf/png/car/$TODAY"
  24. WRFOUT_PATH="/spoa/data/wrf/out/car"
  25. WRFOUTP=$WRF_PATH/WRFV3/run
  26. WRFOUT_FNAME=$WRFOUTP/wrfout_d01_$WRFHOY'_00:00:00'
  27. WRFOUT_FSIZE=7225892912
  28. # WRFOUT_FSIZE=7225892368
  29. hoy=$(date -u '+%b %e')
  30. # hoy=$(date -d yesterday '+%b %e') #fecha de ayer
  31. TOTHST=5
  32. # TOTHST=4
  33. CPUNUM=40 #2 CPU x Node
  34. # CPUNUM=24
  35. # HPCHST=/home/slonin/.mpd.hosts
  36. # MACHINEFILE=/home/slonin/carhosts.mpich2
  37. MACHINEFILE=/home/slonin/hosts.ompi
  38.  
  39. # ayer=$(date -d '1 day ago' '+%Y%m%d')
  40. # mkdir /opt/spoa/data/gfs/$ayer
  41. # cp -a /opt/spoa/WRFV22/WPS/GFS_DATA/* /opt/spoa/data/gfs/$ayer
  42.  
  43. #mover salida  wrf_out netcdf file de ultima corrida a /opt/spoa/wrf/car
  44. # cd /opt/spoa/WRFV22/WRFV2/run
  45. # wrfout=`ls wrfout_d01_$(date -d '1 day ago' '+%Y-%m-%d')_00:00:00`
  46. # mv $wrfout $WRFOUT_PATH
  47. # rm /opt/spoa/WRFV22/ARWPost/$wrfout   #wrfout_d01_ symbolic link removal
  48.  
  49.  
  50. # *****************************
  51. # * W R F - C A R I B B E A N *
  52. # *****************************
  53. # cd /opt/spoa/scripts/python
  54. # python gfsdown.py -type wrf   #bajar datos GFS y preparar namelists
  55.  
  56. #leer atributos-parametros:
  57. for i in "${ARGS[@]}"; do
  58.     if [ $i == '-noprep' ]; then
  59.         NOPREP="SI"
  60.     elif [ $i == '-dom=2' ]; then
  61.         DOM="2"
  62.     fi
  63. done
  64.  
  65. cd $WRF_PATH/WRFV3/run
  66. if [ $NOPREP == "NO" ]; then
  67.     cd ../../WPS
  68.     ./link_grib.csh GFS_DATA/
  69.     ./geogrid.exe
  70.     ./ungrib.exe
  71.     ./metgrid.exe
  72.     # arreglo con archivos metgrid generados
  73.     metem=(`ls -l met_em*.nc | awk '/'"$hoy"'/ {print $9}'`)
  74.     cd ../WRFV3/run
  75.     for i in "${metem[@]}"; do
  76.         ln -s ../../WPS/$i
  77.     done
  78. fi
  79. # mpdprocs=`ps -efH| grep -i mpd|sed 1d|wc -l`
  80. # if [ $mpdprocs -eq 0 ]; then      #no se ha iniciado anillo MPICH
  81.     # mpdallexit
  82. #   mpdboot -v --totalnum=$TOTHST --ncpus=8 --ifhn=10.0.1.1 -f $HPCHST
  83. # fi
  84. # sudo drbdadm --stacked disconnect drbd0-U
  85. # sudo drbdadm disconnect drbd0
  86. echo "`date +%H:%M`" > wrfstart
  87. echo "Begin WRFCaribbean real.exe at `date +%H:%M:%S`"
  88. # time mpiexec -machinefile $MACHINEFILE -n $CPUNUM ./real.exe      #MPICH2
  89. # mpirun -np 8 --hostfile $MACHINEFILE --mca btl openib,self --mca mpi_leave_pinned 1 real.exe  #OpenMPI
  90. # mpirun -np 8 --hostfile $MACHINEFILE --mca mpi_leave_pinned 0 --mca btl openib,self real.exe  #OpenMPI
  91. ./real.exe
  92. rm rsl.*
  93. echo "End of WRFCaribbean real.exe at `date +%H:%M:%S`"
  94. sleep 4
  95. echo "Begin WRFCaribbean wrf.exe at `date +%H:%M:%S`"
  96. # time mpiexec -machinefile $MACHINEFILE -n $CPUNUM ./wrf.exe
  97. # mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca btl openib,self --mca mpi_leave_pinned 1 wrf.exe
  98. # mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca mpi_leave_pinned 1 --mca btl openib,self wrf.exe
  99. # exit 1
  100. mpirun -np 5 --hostfile $MACHINEFILE --mca mpi_leave_pinned 0 --mca btl openib,self wrf.exe
  101.  
  102. WRFOUT_SIZE=`stat -c%s $WRFOUT_FNAME`
  103. if [ -f $WRFOUT_FNAME ] && [ $WRFOUT_SIZE -eq $WRFOUT_FSIZE ]; then
  104.     echo "End WRFCaribbean wrf.exe at `date +%H:%M:%S`"
  105.     echo "`date +%H:%M`" >> wrfstart
  106.     sleep 10
  107.     rm rsl.*
  108.     rm -f $WRF_PATH/WPS/met_em*
  109.     rm -f $WRF_PATH/WPS/FILE*
  110.     rm -f $WRF_PATH/WPS/GRIBFILE.AA?
  111.     rm -f $WRF_PATH/WRFV3/run/met_em*
  112.     rm -f $WRF_PATH/WRFV3/run/rsl*
  113.     rm -f $WRF_PATH/WRFV3/run/{wrfinput_d02,wrfbdy_d01,wrfinput_d01}
  114.     # hoy=$(`date '+%Y_%m_%d')
  115.     # wrfout=(`ls wrfout_{d01,d02,d03}_$(date '+%Y-%m-%d')_06:00:00`)
  116.     # Si quieres escoger un dia especial, ejemplo el dia de ayer:
  117.     #   wrfout=(`ls wrfout_d01_$(date -d '1 day ago' '+%Y-%m-%d')_00:00:00`)
  118.     if [ $DOM == "2" ]; then
  119.         wrfout=(`ls wrfout_{d01,d02}_"$WRFHOY"_00:00:00`)
  120.     else
  121.         wrfout=(`ls wrfout_d01_"$WRFHOY"_00:00:00`)
  122.     fi
  123.     cd $WRF_PATH/ARWpost
  124.     for i in "${wrfout[@]}"; do
  125.         ln -s ../WRFV3/run/$i
  126.     done
  127.     python /spoa/scripts/python/gfsdown.py -type arwdom01
  128.     ./ARWpost.exe
  129.     if [ $DOM == "2" ]; then
  130.         python /spoa/scripts/python/gfsdown.py -type arwdom02  #20120127: Nuevo subdom para Cartagena y alrededores
  131.         ./ARWpost.exe
  132.         ../../scripts/bash/./arwpost120.sh -dom=2
  133.     else
  134.         ../../scripts/bash/./arwpost120.sh
  135.     fi
  136. # Jan-07-10: Comment about GRADS & ARWPOST
  137.     grads -l -b -c arwpst.gs
  138.     hoy=$(date -u '+%b %e')
  139.     grdspng=(`ls -l *.png | awk '/'"$hoy"'/ {print $9}'`)
  140.     val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%"`   #verify webserver is alive
  141.     if [ ! -d $PNG_WRF_PATH ]; then
  142.         mkdir $PNG_WRF_PATH
  143.     fi
  144.     if [ -n "${val_}" ]; then
  145.         for j in "${grdspng[@]}"; do
  146.             cp -a $j $NFS_WRF_PATH
  147.             echo "cp -a $j to $NFS_WRF_PATH"
  148.             cp -a $j $PNG_WRF_PATH
  149.         done
  150.         python /spoa/scripts/python/smtp.py "WRF: Satisfactorio!" "Las graficas han sido enviadas al servidor web x publicacion."
  151.     else
  152.         echo "WRF:" "Las graficas son enviadas localmente."
  153.         for j in "${grdspng[@]}"; do
  154.             echo "cp -a $j to $PNG_WRF_PATH"
  155.             cp -a $j $PNG_WRF_PATH
  156.         done
  157.     fi
  158.     #eliminar ctl y dat generados por ARWPost
  159.     grdsctl=(`ls -l *.ctl | awk '/'"$hoy"'/ {print substr($9,-4,9)}'| grep [[:digit:]]`)
  160.     for k in "${grdsctl[@]}"; do
  161.         rm -f $k.ctl $k.dat
  162.     done
  163.     rm -f *.png
  164.     rm ${wrfout[0]}  #elimina el link simbolico a wrfout del dia!
  165.     if [ $DOM == "2" ]; then
  166.         rm ${wrfout[1]}
  167.     fi
  168.     #20100824: Move wrfout data
  169.     # cd /opt/spoa/WRFV22/WRFV2/run
  170.     # wrfout=`ls wrfout_d01_$(date '+%Y-%m-%d')_00:00:00`
  171.     # mv $wrfout $WRFOUT_PATH
  172. fi
  173. # sudo drbdadm connect drbd0
  174. # sudo drbdadm --stacked connect drbd0-U
  175. exit 1
Advertisement
Add Comment
Please, Sign In to add comment