Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/env bash
- # Automatizacion corrida WRF en area51
- # export DISPLAY=":0.0"
- # 20100608: Incorporando PBS/Torque Resource Manager con Maui Scheduler para manejar recursos computacionales para las tareas en SPOA
- #PBS -N SPOA_WRF_Daily
- #PBS -l nodes=1:mainNode,walltime=8:00:00
- #PBS -k o
- #PBS -q batch
- #PBS -M [email protected]
- #PBS -m abe
- #PBS -j oe
- #20100805: Guardando GFS DATA Ultimo!
- ARGS=($@) #cadena de argumentos
- NARGS=$# #numero de argumentos
- NOPREP="NO"
- DOM="1" #numero de dominios a computar
- WRFHOY=$(date -u '+%Y-%m-%d')
- TODAY=$(date -u '+%Y%m%d')
- SHAREHOST="dimarbtaweb19"
- WRF_PATH="/spoa/WRFV33"
- NFS_WRF_PATH="/mnt/nfs/wrf/car"
- PNG_WRF_PATH="/spoa/data/wrf/png/car/$TODAY"
- WRFOUT_PATH="/spoa/data/wrf/out/car"
- WRFOUTP=$WRF_PATH/WRFV3/run
- WRFOUT_FNAME=$WRFOUTP/wrfout_d01_$WRFHOY'_00:00:00'
- WRFOUT_FSIZE=7225892912
- # WRFOUT_FSIZE=7225892368
- hoy=$(date -u '+%b %e')
- # hoy=$(date -d yesterday '+%b %e') #fecha de ayer
- TOTHST=5
- # TOTHST=4
- CPUNUM=40 #2 CPU x Node
- # CPUNUM=24
- # HPCHST=/home/slonin/.mpd.hosts
- # MACHINEFILE=/home/slonin/carhosts.mpich2
- MACHINEFILE=/home/slonin/hosts.ompi
- # ayer=$(date -d '1 day ago' '+%Y%m%d')
- # mkdir /opt/spoa/data/gfs/$ayer
- # cp -a /opt/spoa/WRFV22/WPS/GFS_DATA/* /opt/spoa/data/gfs/$ayer
- #mover salida wrf_out netcdf file de ultima corrida a /opt/spoa/wrf/car
- # cd /opt/spoa/WRFV22/WRFV2/run
- # wrfout=`ls wrfout_d01_$(date -d '1 day ago' '+%Y-%m-%d')_00:00:00`
- # mv $wrfout $WRFOUT_PATH
- # rm /opt/spoa/WRFV22/ARWPost/$wrfout #wrfout_d01_ symbolic link removal
- # *****************************
- # * W R F - C A R I B B E A N *
- # *****************************
- # cd /opt/spoa/scripts/python
- # python gfsdown.py -type wrf #bajar datos GFS y preparar namelists
- #leer atributos-parametros:
- for i in "${ARGS[@]}"; do
- if [ $i == '-noprep' ]; then
- NOPREP="SI"
- elif [ $i == '-dom=2' ]; then
- DOM="2"
- fi
- done
- cd $WRF_PATH/WRFV3/run
- if [ $NOPREP == "NO" ]; then
- cd ../../WPS
- ./link_grib.csh GFS_DATA/
- ./geogrid.exe
- ./ungrib.exe
- ./metgrid.exe
- # arreglo con archivos metgrid generados
- metem=(`ls -l met_em*.nc | awk '/'"$hoy"'/ {print $9}'`)
- cd ../WRFV3/run
- for i in "${metem[@]}"; do
- ln -s ../../WPS/$i
- done
- fi
- # mpdprocs=`ps -efH| grep -i mpd|sed 1d|wc -l`
- # if [ $mpdprocs -eq 0 ]; then #no se ha iniciado anillo MPICH
- # mpdallexit
- # mpdboot -v --totalnum=$TOTHST --ncpus=8 --ifhn=10.0.1.1 -f $HPCHST
- # fi
- # sudo drbdadm --stacked disconnect drbd0-U
- # sudo drbdadm disconnect drbd0
- echo "`date +%H:%M`" > wrfstart
- echo "Begin WRFCaribbean real.exe at `date +%H:%M:%S`"
- # time mpiexec -machinefile $MACHINEFILE -n $CPUNUM ./real.exe #MPICH2
- # mpirun -np 8 --hostfile $MACHINEFILE --mca btl openib,self --mca mpi_leave_pinned 1 real.exe #OpenMPI
- # mpirun -np 8 --hostfile $MACHINEFILE --mca mpi_leave_pinned 0 --mca btl openib,self real.exe #OpenMPI
- ./real.exe
- rm rsl.*
- echo "End of WRFCaribbean real.exe at `date +%H:%M:%S`"
- sleep 4
- echo "Begin WRFCaribbean wrf.exe at `date +%H:%M:%S`"
- # time mpiexec -machinefile $MACHINEFILE -n $CPUNUM ./wrf.exe
- # mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca btl openib,self --mca mpi_leave_pinned 1 wrf.exe
- # mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca mpi_leave_pinned 1 --mca btl openib,self wrf.exe
- # exit 1
- mpirun -np 5 --hostfile $MACHINEFILE --mca mpi_leave_pinned 0 --mca btl openib,self wrf.exe
- WRFOUT_SIZE=`stat -c%s $WRFOUT_FNAME`
- if [ -f $WRFOUT_FNAME ] && [ $WRFOUT_SIZE -eq $WRFOUT_FSIZE ]; then
- echo "End WRFCaribbean wrf.exe at `date +%H:%M:%S`"
- echo "`date +%H:%M`" >> wrfstart
- sleep 10
- rm rsl.*
- rm -f $WRF_PATH/WPS/met_em*
- rm -f $WRF_PATH/WPS/FILE*
- rm -f $WRF_PATH/WPS/GRIBFILE.AA?
- rm -f $WRF_PATH/WRFV3/run/met_em*
- rm -f $WRF_PATH/WRFV3/run/rsl*
- rm -f $WRF_PATH/WRFV3/run/{wrfinput_d02,wrfbdy_d01,wrfinput_d01}
- # hoy=$(`date '+%Y_%m_%d')
- # wrfout=(`ls wrfout_{d01,d02,d03}_$(date '+%Y-%m-%d')_06:00:00`)
- # Si quieres escoger un dia especial, ejemplo el dia de ayer:
- # wrfout=(`ls wrfout_d01_$(date -d '1 day ago' '+%Y-%m-%d')_00:00:00`)
- if [ $DOM == "2" ]; then
- wrfout=(`ls wrfout_{d01,d02}_"$WRFHOY"_00:00:00`)
- else
- wrfout=(`ls wrfout_d01_"$WRFHOY"_00:00:00`)
- fi
- cd $WRF_PATH/ARWpost
- for i in "${wrfout[@]}"; do
- ln -s ../WRFV3/run/$i
- done
- python /spoa/scripts/python/gfsdown.py -type arwdom01
- ./ARWpost.exe
- if [ $DOM == "2" ]; then
- python /spoa/scripts/python/gfsdown.py -type arwdom02 #20120127: Nuevo subdom para Cartagena y alrededores
- ./ARWpost.exe
- ../../scripts/bash/./arwpost120.sh -dom=2
- else
- ../../scripts/bash/./arwpost120.sh
- fi
- # Jan-07-10: Comment about GRADS & ARWPOST
- grads -l -b -c arwpst.gs
- hoy=$(date -u '+%b %e')
- grdspng=(`ls -l *.png | awk '/'"$hoy"'/ {print $9}'`)
- val_=`ping -c 2 $SHAREHOST 2> /dev/null | grep " 0%"` #verify webserver is alive
- if [ ! -d $PNG_WRF_PATH ]; then
- mkdir $PNG_WRF_PATH
- fi
- if [ -n "${val_}" ]; then
- for j in "${grdspng[@]}"; do
- cp -a $j $NFS_WRF_PATH
- echo "cp -a $j to $NFS_WRF_PATH"
- cp -a $j $PNG_WRF_PATH
- done
- python /spoa/scripts/python/smtp.py "WRF: Satisfactorio!" "Las graficas han sido enviadas al servidor web x publicacion."
- else
- echo "WRF:" "Las graficas son enviadas localmente."
- for j in "${grdspng[@]}"; do
- echo "cp -a $j to $PNG_WRF_PATH"
- cp -a $j $PNG_WRF_PATH
- done
- fi
- #eliminar ctl y dat generados por ARWPost
- grdsctl=(`ls -l *.ctl | awk '/'"$hoy"'/ {print substr($9,-4,9)}'| grep [[:digit:]]`)
- for k in "${grdsctl[@]}"; do
- rm -f $k.ctl $k.dat
- done
- rm -f *.png
- rm ${wrfout[0]} #elimina el link simbolico a wrfout del dia!
- if [ $DOM == "2" ]; then
- rm ${wrfout[1]}
- fi
- #20100824: Move wrfout data
- # cd /opt/spoa/WRFV22/WRFV2/run
- # wrfout=`ls wrfout_d01_$(date '+%Y-%m-%d')_00:00:00`
- # mv $wrfout $WRFOUT_PATH
- fi
- # sudo drbdadm connect drbd0
- # sudo drbdadm --stacked connect drbd0-U
- exit 1
Advertisement
Add Comment
Please, Sign In to add comment