View difference between Paste ID: CUmmdNhC and jVXDqtrP
SHOW: | | - or go back to the newest paste.
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 [email protected]
11
#PBS -m abe
12
#PBS -j oe
13
#20100805: Guardando GFS DATA Ultimo!
14
ARGS=($@)       #cadena de argumentos
15
NARGS=$#        #numero de argumentos
16
NOPREP="NO"
17
DOM="1"         #numero de dominios a computar
18
19-
TOTHST=5
19+
20-
CPUNUM=40 #2 CPU x Node
20+
21
SHAREHOST="dimarbtaweb19"
22
# WRF_PATH="/spoa/WRFV33"
23
WRF_PATH="/home/slonin/WRFV33"
24
NFS_WRF_PATH="/mnt/nfs/wrf/car"
25
NFS_WRF_EQUION="/mnt/nfs/wrf/equion"
26
PNG_WRF_PATH="/spoa/data/wrf/png/car/$TODAY"
27
WRFOUT_PATH="/spoa/data/wrf/out/car"
28
WRFOUTP=$WRF_PATH/WRFV3/run
29
WRFOUT_FNAME=$WRFOUTP/wrfout_d01_$WRFHOY'_00:00:00'
30
WRFOUT_FSIZE=7225892912
31
# WRFOUT_FSIZE=2996122160 #48Hours
32
hoy=$(date -u '+%b %e')
33
# hoy=$(date -d yesterday '+%b %e') #fecha de ayer
34
TOTHST=6
35
# TOTHST=4
36
# CPUNUM=48 #8 CPU x 6 Node (included Canete): Begin 20121109
37
# CPUNUM=40 #20130412: cruz node down for power suppy general failure!
38
CPUNUM=44 #20130925: cruz node up but with 1 Intel Xeon QuadCore Processor enabled!
39
40
# CPUNUM=24
41
# HPCHST=/home/slonin/.mpd.hosts
42
# MACHINEFILE=/home/slonin/carhosts.mpich2
43
MACHINEFILE=/home/slonin/hosts.ompi
44
45
# ayer=$(date -d '1 day ago' '+%Y%m%d')
46
# mkdir /opt/spoa/data/gfs/$ayer
47
# cp -a /opt/spoa/WRFV22/WPS/GFS_DATA/* /opt/spoa/data/gfs/$ayer
48
49
#mover salida  wrf_out netcdf file de ultima corrida a /opt/spoa/wrf/car
50
# cd /opt/spoa/WRFV22/WRFV2/run
51
# wrfout=`ls wrfout_d01_$(date -d '1 day ago' '+%Y-%m-%d')_00:00:00`
52-
mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca mpi_leave_pinned 1 --mca btl openib,self wrf.exe
52+
# mv $wrfout $WRFOUT_PATH 
53
# rm /opt/spoa/WRFV22/ARWPost/$wrfout   #wrfout_d01_ symbolic link removal
54
55
# *****************************
56
# * W R F - C A R I B B E A N *
57
# *****************************
58
cd /spoa/scripts/python
59
python gfsdown.py -type wrf #bajar datos GFS y preparar namelists 
60
61
#leer atributos-parametros:
62
for i in "${ARGS[@]}"; do
63
    if [ $i == '-noprep' ]; then
64
        NOPREP="SI"
65
    elif [ $i == '-dom=2' ]; then
66
        DOM="2"
67
    fi
68
done
69
70
cd $WRF_PATH/WRFV3/run
71
if [ $NOPREP == "NO" ]; then
72
    cd ../../WPS
73
    ./link_grib.csh GFS_DATA/
74
    ./geogrid.exe
75
    ./ungrib.exe
76
    ./metgrid.exe
77
    # arreglo con archivos metgrid generados
78
    metem=(`ls -l met_em*.nc | awk '/'"$hoy"'/ {print $9}'`)
79-
        python /spoa/scripts/python/gfsdown.py -type arwdom02  #20120127: Nuevo subdom para Cartagena y alrededores
79+
80
    for i in "${metem[@]}"; do
81
        ln -s ../../WPS/$i
82
    done
83
fi
84-
        python /spoa/scripts/python/gfsdown.py -type arwdom03  #20121019: Galerazamba
84+
# mpdprocs=`ps -efH| grep -i mpd|sed 1d|wc -l`
85
# if [ $mpdprocs -eq 0 ]; then      #no se ha iniciado anillo MPICH
86
    # mpdallexit
87
#   mpdboot -v --totalnum=$TOTHST --ncpus=8 --ifhn=10.0.1.1 -f $HPCHST
88
# fi
89
# sudo drbdadm --stacked disconnect drbd0-U
90
# sudo drbdadm disconnect drbd0
91
echo "`date +%H:%M`" > wrfstart
92
echo "Begin WRFCaribbean real.exe at `date +%H:%M:%S`"
93
# time mpiexec -machinefile $MACHINEFILE -n $CPUNUM ./real.exe      #MPICH2
94
# mpirun -np 8 --hostfile $MACHINEFILE --mca btl openib,self --mca mpi_leave_pinned 1 real.exe  #OpenMPI
95
# mpirun -np 8 --hostfile $MACHINEFILE --mca mpi_leave_pinned 0 --mca btl openib,self real.exe  #OpenMPI
96
./real.exe
97
rm rsl.*
98
echo "End of WRFCaribbean real.exe at `date +%H:%M:%S`"
99
sleep 4
100
echo "Begin WRFCaribbean wrf.exe at `date +%H:%M:%S`"
101
# time mpiexec -machinefile $MACHINEFILE -n $CPUNUM ./wrf.exe
102
# mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca btl openib,self --mca mpi_leave_pinned 1 wrf.exe
103
# mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca mpi_leave_pinned 1 --mca btl openib,self wrf.exe
104
# exit 1
105-
        python /spoa/scripts/python/smtp.py "WRF: Satisfactorio!" "Las graficas han sido enviadas al servidor web x publicacion."
105+
time mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca mpi_leave_pinned 1 --mca btl openib,self ./wrf.exe
106
echo "End of  WRFCaribbean wrf.exe at `date +%H:%M:%S`"
107
108
WRFOUT_SIZE=`stat -c%s $WRFOUT_FNAME`
109
if [ -f $WRFOUT_FNAME ] && [ $WRFOUT_SIZE -eq $WRFOUT_FSIZE ]; then
110
    echo "End WRFCaribbean wrf.exe at `date +%H:%M:%S`"
111
    echo "`date +%H:%M`" >> wrfstart
112
    sleep 10
113
    cp  rsl.out.0000 $WRFOUT_PATH/rsl.`date +%Y%m%d`.out
114
    rm rsl.*
115
    rm -f $WRF_PATH/WPS/met_em*
116
    rm -f $WRF_PATH/WPS/FILE*
117
    rm -f $WRF_PATH/WPS/GRIBFILE.AA?
118
    rm -f $WRF_PATH/WRFV3/run/met_em*
119
    rm -f $WRF_PATH/WRFV3/run/rsl*
120
    rm -f $WRF_PATH/WRFV3/run/{wrfinput_d02,wrfbdy_d01,wrfinput_d01}
121
    # hoy=$(`date '+%Y_%m_%d')
122
    # wrfout=(`ls wrfout_{d01,d02,d03}_$(date '+%Y-%m-%d')_06:00:00`)
123
    # Si quieres escoger un dia especial, ejemplo el dia de ayer:
124
    #   wrfout=(`ls wrfout_d01_$(date -d '1 day ago' '+%Y-%m-%d')_00:00:00`)
125
    if [ $DOM == "2" ]; then
126
        wrfout=(`ls wrfout_{d01,d02}_"$WRFHOY"_00:00:00`)
127
    else
128
        wrfout=(`ls wrfout_d01_"$WRFHOY"_00:00:00`)
129
    fi
130
    cd $WRF_PATH/ARWpost
131
    for i in "${wrfout[@]}"; do
132
        ln -s ../WRFV3/run/$i
133
    done
134
    python /spoa/scripts/python/gfsdown.py -type arwdom01
135
    ./ARWpost.exe
136
    if [ $DOM == "2" ]; then
137
        python /spoa/scripts/python/gfsdown.py -type arwdom02  #20120127: Nuevo subdom para Cartagena y alrededores 
138
        ./ARWpost.exe
139
        # ../../scripts/bash/./arwpost120.sh -dom=2
140
        /spoa/scripts/bash/./arwpost120.sh -dom=2
141
142
        #EQUION WRF II Domain Generation
143
        python /spoa/scripts/python/gfsdown.py -type arwdom03  #20121019: Galerazamba 
144
        ./ARWpost.exe
145
        /spoa/scripts/bash/./arwpost120equion.sh
146
    else
147
        # ../../scripts/bash/./arwpost120.sh
148
        /spoa/scripts/bash/./arwpost120.sh
149
    fi
150
# Jan-07-10: Comment about GRADS & ARWPOST
151
    grads -l -b -c arwpst.gs
152
    hoy=$(date -u '+%b %e')
153
    grdspng=(`ls -l *.png | awk '/'"$hoy"'/ {print $9}'`)
154
    val_=`ping -c 3 $SHAREHOST 2> /dev/null | grep " 0%"`   #verify webserver is alive
155
    if [ ! -d $PNG_WRF_PATH ]; then
156
        mkdir $PNG_WRF_PATH
157
    fi
158
    if [ -n "${val_}" ]; then
159
        for j in "${grdspng[@]}"; do
160
            cp -a $j $NFS_WRF_PATH
161
            echo "cp -a $j to $NFS_WRF_PATH"
162
            cp -a $j $PNG_WRF_PATH
163
            rm -f $j
164
        done
165
        python /spoa/scripts/python/smtp.py "WRF: Satisfactorio!. http://www.cioh.org.co/meteorologia/wrf.php" "Las graficas han sido enviadas al servidor web x publicacion."
166
    else
167
        echo "WRF:" "Las graficas son enviadas localmente."
168
        for j in "${grdspng[@]}"; do
169
            echo "cp -a $j to $PNG_WRF_PATH"
170
            cp -a $j $PNG_WRF_PATH
171
            rm -f $j
172
        done
173
    fi
174
    #20121019: EQUION Graphs
175
    grads -l -b -c arwpst_equion.gs
176
    tar cf - `ls *.png` | 7zr a -si /spoa/data/wrf/equion.png/$TODAY.png.tar.7z
177
    val_=`ping -c 3 $SHAREHOST 2> /dev/null | grep " 0%"`   #verify webserver is alive
178
    if [ -n "${val_}" ]; then
179
        ANHO=$(date -u '+%Y')
180
        MES=$(date -u '+%m')
181
        DIA=$(date -u '+%d')
182
        NFS_PNG=$NFS_WRF_EQUION/$ANHO/$MES/$DIA
183
        if [ ! -d $NFS_PNG ]; then
184
            mkdir -p $NFS_PNG
185
        fi
186
        echo "Graficos GRZ: presion_vientos, nubes_*, precipitacion_* a Webserver"
187
        cp -p `ls presion_vientos_grz*.png | egrep '(presion_vientos_grz_[0-9]{4}-[0-9]{2}-[0-9]{2}_(22|01|04|07|10|13|16|19)00R\.png$)'` $NFS_PNG
188
        cp -p `ls nubes_*_grz*.png | egrep '(nubes_(bajas|medias|altas)_grz_[0-9]{4}-[0-9]{2}-[0-9]{2}_(22|01|04|07|10|13|16|19)00R\.png$)'` $NFS_PNG
189
        cp -p `ls precipitacion_*.png` $NFS_PNG
190
        cp -p `ls *.png | egrep '*_(aerop|mapale1|mapale2)\.png$'` $NFS_PNG
191
    fi
192
193
    #eliminar ctl y dat generados por ARWPost
194
    grdsctl=(`ls -l *.ctl | awk '/'"$hoy"'/ {print substr($9,-4,9)}'| grep [[:digit:]]`)
195
    for k in "${grdsctl[@]}"; do
196
        rm -f $k.ctl $k.dat
197
    done
198
    rm -f *.png
199
    rm ${wrfout[0]}  #elimina el link simbolico a wrfout del dia!
200
    if [ $DOM == "2" ]; then
201
        rm ${wrfout[1]}
202
    fi
203
fi
204
# sudo drbdadm connect drbd0
205
# sudo drbdadm --stacked connect drbd0-U
206
exit 1