View difference between Paste ID: EHqQZ0AS and 6XV8MUCj
SHOW: | | - or go back to the newest paste.
1-
#!/bin/env bash
1+
#!/bin/bash
2-
# Automatizacion corrida WRF en area51
2+
# Corrida diaria Modelos y rutinas SPOA
3-
# export DISPLAY=":0.0"
3+
#
4
CLOGFILE=/opt/spoa/log/caribbean.log
5-
# 20100608: Incorporando PBS/Torque Resource Manager con Maui Scheduler para manejar recursos computacionales para las tareas en SPOA
5+
GFS_NFILES=21
6-
#PBS -N SPOA_WRF_Daily
6+
#Cantidad de archivos a descargar
7-
#PBS -l nodes=1:mainNode,walltime=8:00:00
7+
# GFS_DATAP=/spoa/WRFV33/WPS/GFS_DATA
8-
#PBS -k o
8+
GFS_DATAP=/home/slonin/WRFV33/WPS/GFS_DATA
9-
#PBS -q batch
9+
GFS_FTP=/spoa/data/gfs/$(date '+%Y%m%d')
10-
#PBS -M [email protected]
10+
LOGFILE=/opt/spoa/log/caribbean.log
11-
#PBS -m abe
11+
# WRF_PATH=/spoa/WRFV33/WRFV3/run
12-
#PBS -j oe
12+
WRF_PATH=/home/slonin/WRFV33/WRFV3/run
13-
#20100805: Guardando GFS DATA Ultimo!
13+
GFSFTPP=gfs.$(date '+%Y%m%d')00         # "gfs.2011121600"
14-
ARGS=($@)       #cadena de argumentos
14+
DOM="1"
15-
NARGS=$#        #numero de argumentos
15+
HOST=1
16-
NOPREP="NO"
16+
# 201208278: Eliminar log anterior si existe!
17-
DOM="1"         #numero de dominios a computar
17+
# if [ -f "$CLOGFILE" ]; then
18
#   rm $CLOGFILE
19-
WRFHOY=$(date -u '+%Y-%m-%d')
19+
20-
TODAY=$(date -u '+%Y%m%d')
20+
#2012: leer la cantidad de dominios a procesar
21-
SHAREHOST="dimarbtaweb19"
21+
for i in "$@"; do
22-
WRF_PATH="/spoa/WRFV33"
22+
    if [ $i == '-dom=2' ]; then
23-
NFS_WRF_PATH="/mnt/nfs/wrf/car"
23+
24-
PNG_WRF_PATH="/spoa/data/wrf/png/car/$TODAY"
24+
25-
WRFOUT_PATH="/spoa/data/wrf/out/car"
25+
    if [ $i == '-host=2' ]; then
26-
WRFOUTP=$WRF_PATH/WRFV3/run
26+
        HOST=2
27-
WRFOUT_FNAME=$WRFOUTP/wrfout_d01_$WRFHOY'_00:00:00'
27+
28-
WRFOUT_FSIZE=7225892912
28+
29-
# WRFOUT_FSIZE=7225892368
29+
ftpstat=`ncftpget -r1  ftpprd.ncep.noaa.gov . /pub/data/nccf/com/gfs/prod/$GFSFTPP 2>&1 > /dev/null | grep 'Connection timed out'`
30-
hoy=$(date -u '+%b %e')
30+
# ftpstat=`ncftpget -r1  ftpprd.ncep.noaa.gov . /pub/data/nccf/com/gfs/prod/$GFSFTPP 2>&1 > /dev/null | grep 'Not a regular file'`
31-
# hoy=$(date -d yesterday '+%b %e') #fecha de ayer
31+
# if [ $ftpstat == "Connection timed out" ]; then exit 1; fi
32-
TOTHST=5
32+
if [ -n "${ftpstat}" ]; then
33-
# TOTHST=4
33+
    echo "No hay acceso al servidor FTP en este momento!, Finalizando script!!!"
34-
CPUNUM=40 #2 CPU x Node
34+
    exit 1
35-
# CPUNUM=24
35+
36-
# HPCHST=/home/slonin/.mpd.hosts
36+
# echo "Disabling DRBD Peers on Canete & Copiapo"
37-
# MACHINEFILE=/home/slonin/carhosts.mpich2
37+
# sudo /sbin/drbdadm --stacked disconnect drbd0-U
38-
MACHINEFILE=/home/slonin/hosts.ompi
38+
# sudo /sbin/drbdadm -- disconnect drbd0
39
echo "Now is time for Download GFS data `date +%H:%M:%S`"
40-
# ayer=$(date -d '1 day ago' '+%Y%m%d')
40+
cd /spoa/scripts/python
41-
# mkdir /opt/spoa/data/gfs/$ayer
41+
if [ $HOST -eq 1 ]; then
42-
# cp -a /opt/spoa/WRFV22/WPS/GFS_DATA/* /opt/spoa/data/gfs/$ayer
42+
    # python gfsdown.py -type wrf  #bajar datos GFS y preparar namelists WRFCaribbean
43
    python gfsdown.py -type wrf -dom=$DOM
44-
#mover salida  wrf_out netcdf file de ultima corrida a /opt/spoa/wrf/car
44+
else
45-
# cd /opt/spoa/WRFV22/WRFV2/run
45+
    python gfsdown.py -type wrf -dom=$DOM -host=$HOST
46-
# wrfout=`ls wrfout_d01_$(date -d '1 day ago' '+%Y-%m-%d')_00:00:00`
46+
47-
# mv $wrfout $WRFOUT_PATH 
47+
#20120210: bajar datos GFS y preparar namelists WRFCaribbean para dominio y subdom Cartagena
48-
# rm /opt/spoa/WRFV22/ARWPost/$wrfout   #wrfout_d01_ symbolic link removal
48+
# python gfsdown.py -type wrf >> $LOGFILE #bajar datos GFS y preparar namelists WRFCaribbean
49
50
# 20100930: VALIDACION DE TAMANO PROMEDIO ACEPTABLE DE LOS DATOS GFS DESCARGADOS
51-
# *****************************
51+
# DE ELLO DEPENDERA SI LOS MODELOS SE EJECUTARAN
52-
# * W R F - C A R I B B E A N *
52+
cd $GFS_DATAP
53-
# *****************************
53+
countgfs=`ls -l|awk '/'"$(date '+%b %e')"'/ {print $9}'|wc -l`
54-
# cd /opt/spoa/scripts/python
54+
#Cuenta la cantidad de ficheros descargados a la fecha, deben ser igual a GFS_NFILES
55-
# python gfsdown.py -type wrf   #bajar datos GFS y preparar namelists 
55+
if [ $countgfs -eq $GFS_NFILES ]; then
56
        mkdir $GFS_FTP # crea folder para guardar GFS data del dia
57-
#leer atributos-parametros:
57+
        ## 20130920: Disable GFS file size validation
58-
for i in "${ARGS[@]}"; do
58+
        ## 20131030: Enable GFS file local copy
59-
    if [ $i == '-noprep' ]; then
59+
        gfsvectr=(`ls -l|awk '/'"$(date '+%b %e')"'/ {print $9}'`)
60-
        NOPREP="SI"
60+
        # gfsintgr=1
61-
    elif [ $i == '-dom=2' ]; then
61+
        for gfsf in "${gfsvectr[@]}"; do
62
        #       gfsze=`stat -c%s $gfsf`
63
        #       echo -e "$gfsf\\t$gfsze" >> $LOGFILE
64
        #       if [ $gfsf = "gfs.t00z.pgrb2f00" ]; then
65
        #               if [ $gfsze -gt 43000000 ]; then
66-
cd $WRF_PATH/WRFV3/run
66+
                                cp -a $gfsf $GFS_FTP
67-
if [ $NOPREP == "NO" ]; then
67+
        #                       continue
68-
    cd ../../WPS
68+
        #               else
69-
    ./link_grib.csh GFS_DATA/
69+
        #                       gfsintgr=0
70-
    ./geogrid.exe
70+
        #                       break
71-
    ./ungrib.exe
71+
        #               fi
72-
    ./metgrid.exe
72+
        #       else
73-
    # arreglo con archivos metgrid generados
73+
        #               if [ $gfsze -gt 47000000 ]; then
74-
    metem=(`ls -l met_em*.nc | awk '/'"$hoy"'/ {print $9}'`)
74+
        #                       cp -a $gfsf $GFS_FTP
75-
    cd ../WRFV3/run
75+
        #                       continue
76-
    for i in "${metem[@]}"; do
76+
        #               else
77-
        ln -s ../../WPS/$i
77+
        #                       gfsintgr=0
78-
    done
78+
        #                       break
79
        #                       fi
80-
# mpdprocs=`ps -efH| grep -i mpd|sed 1d|wc -l`
80+
        #       fi
81-
# if [ $mpdprocs -eq 0 ]; then      #no se ha iniciado anillo MPICH
81+
82-
    # mpdallexit
82+
        #if [ $gfsintgr -eq 1 ]; then
83-
#   mpdboot -v --totalnum=$TOTHST --ncpus=8 --ifhn=10.0.1.1 -f $HPCHST
83+
                echo "Ejecutando SPOA Caribbean"
84
                echo "1" > ~/gfsready
85-
# sudo drbdadm --stacked disconnect drbd0-U
85+
                # enviando 1 a ~/gfsready para ejecutar WRFPacific!
86-
# sudo drbdadm disconnect drbd0
86+
87-
echo "`date +%H:%M`" > wrfstart
87+
                cd /spoa/scripts/bash
88-
echo "Begin WRFCaribbean real.exe at `date +%H:%M:%S`"
88+
                echo "Time for SPOA Caribbean at `date +%H:%M:%S`"
89-
# time mpiexec -machinefile $MACHINEFILE -n $CPUNUM ./real.exe      #MPICH2
89+
                # ./caribbean.sh < /dev/null 2>&1       #1 domain
90-
# mpirun -np 8 --hostfile $MACHINEFILE --mca btl openib,self --mca mpi_leave_pinned 1 real.exe  #OpenMPI
90+
                ./caribbean.sh -dom=$DOM < /dev/null 2>&1
91-
# mpirun -np 8 --hostfile $MACHINEFILE --mca mpi_leave_pinned 0 --mca btl openib,self real.exe  #OpenMPI
91+
                # 20120830: resetear estado de gfsready a 0
92-
./real.exe
92+
                # echo "0" > ~/gfsready
93-
rm rsl.*
93+
94-
echo "End of WRFCaribbean real.exe at `date +%H:%M:%S`"
94+
                # echo "Copia de Ficheros GFS a ODESSA:$GFS_DATAP"
95-
sleep 4
95+
                # scp -p $GFS_DATAP/* root@odessa:$GFS_DATAP
96-
echo "Begin WRFCaribbean wrf.exe at `date +%H:%M:%S`"
96+
                # echo "Lanzando tarea remota caribbean.sh en ODESSA!"
97-
# time mpiexec -machinefile $MACHINEFILE -n $CPUNUM ./wrf.exe
97+
                # pdsh -w root@odessa "/spoa/scripts/bash/caribbean.sh -dom=2 < /dev/null 2>&1 > /tmp/caribbean.out&"& 
98-
# mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca btl openib,self --mca mpi_leave_pinned 1 wrf.exe
98+
                # ./caribbean02.sh -dom=2 < /dev/null 2>&1  #SPOA for generate domain & subdomain
99-
# mpirun -np $CPUNUM --hostfile $MACHINEFILE --mca mpi_leave_pinned 1 --mca btl openib,self wrf.exe
99+
                # echo "Time for SPOA Pacific at `date +%H:%M:%S`"
100-
# exit 1
100+
                #./pacific.sh
101-
mpirun -np 5 --hostfile $MACHINEFILE --mca mpi_leave_pinned 0 --mca btl openib,self wrf.exe
101+
        #else
102
        ##      echo "0" > ~/gfsready
103-
WRFOUT_SIZE=`stat -c%s $WRFOUT_FNAME`
103+
        ##      # enviando 0 a ~/gfsready NO ejecutara WRFPacific!
104-
if [ -f $WRFOUT_FNAME ] && [ $WRFOUT_SIZE -eq $WRFOUT_FSIZE ]; then
104+
        ##      echo "La descarga de datos GFS no es correcta, reintente manualmente mas tarde!"
105-
    echo "End WRFCaribbean wrf.exe at `date +%H:%M:%S`"
105+
        ##      # 20120828: Enviar un correo notificando la novedad!
106-
    echo "`date +%H:%M`" >> wrfstart
106+
        ##      python /spoa/scripts/python/smtp.py "GFS Download Failed" "La descarga de datos GFS no es correcta, reintente mas tarde!"
107-
    sleep 10
107+
        #fi
108-
    rm rsl.*
108+
else
109-
    rm -f $WRF_PATH/WPS/met_em*
109+
        echo "0" > ~/gfsready
110-
    rm -f $WRF_PATH/WPS/FILE*
110+
        # enviando 0 a ~/gfsready NO ejecutara WRFPacific!
111-
    rm -f $WRF_PATH/WPS/GRIBFILE.AA?
111+
        echo " No cumple con los $GFS_NFILES necesarios!, reintente mas tarde"
112-
    rm -f $WRF_PATH/WRFV3/run/met_em*
112+
        python /spoa/scripts/python/smtp.py "GFS Download Failed" "No cumple con los $GFS_NFILES necesarios! reintente mas tarde"
113-
    rm -f $WRF_PATH/WRFV3/run/rsl*
113+
114-
    rm -f $WRF_PATH/WRFV3/run/{wrfinput_d02,wrfbdy_d01,wrfinput_d01}
114+