Está en la página 1de 6

Cómo instalar el modelo WRF (Weather Research and Forecasting Model)

versión 3.7 en sistemas Ubuntu 14 (o superior) o similares

Documento versión 1. Jueves 14 de mayo de 2015.


Consultas a davaguilera@udec.cl
Basado en la publicación en el blog Tux Coder
(https://tuxcoder.wordpress.com/2015/01/07/install-wrf-model-in-ubuntu-linux/)

Esta instalación fue probada con éxito en un equipo con Elementary OS 0.3 (Freya), equivalente a
Ubuntu 14.04 LTS de 64 bits casi limpia (formateado ayer). Por otra parte, es una forma un poco
“poco transparente” de instalarlo, debido a que usaremos sofware precompilado para realizar la
instalación. De momento así funciona bien, pero se sugiere probar compilando todas las
dependencias necesarias. Una referencia es
http://www.aoddy.com/2014/09/09/how-to-install-wrf-3-6-1-on-ubuntu-14-10-server/.

Requisitos: Una conexión a Internet intensiva (se necesitará descargar una gran cantidad de datos),
acceso a una terminal. Al menos 5 GB de espacio libre en disco (para instalación mínima) y 40 GB de
espacio libre (para instalación semi con datos de alta resolución). La instalación totalmente
completa necesita la no despreciable suma de 200 GB libres en el sistema.

Previos: Se recomienda tener las últimas actualizaciones del sistema. Esto se puede hacer en una
terminal usando el comando sudo apt-get update && sudo apt-get upgrade. A continuación les
sugiero hacer la siguiente ejecución de comandos que deben tener antes de instalar/compilar.
1. Abrir el terminal. A continuación escriban (seguidos de Enter en cada línea). Signo $ al inicio es
el símbolo del terminal, por tanto NO LO ESCRIBA:
2. $ sudo apt-get install -y m4 csh netcdf-bin netcdf-dev hdf4-tools hdf5-tools zlib*
libjasper libpng-dev build-essential ncl-ncarg mpich cmake make gcc gfortran
libjasper-dev libjasper-runtime openjdk-7-jre
3. $ cd /
4. $ sudo mkdir /atmos
5. $ sudo chown mi_usuario /atmos ( mi_usuario es el nombre de usuario o login del PC)
6. $ sudo chgrp mi_usuario /atmos
7. $ cd /atmos && mkdir WRF/ && cd WRF/
De esta manera la carpeta /atmos (en el sistema de archivos o raíz “/”) quedará con permisos de
lectura-escritura para el usuario mi_usuario, y no se necesitará usar sudo cada vez que queramos
hacer algo en ella.

Antes de empezar la compilación se debe escribir unas líneas en el archivo .bashrc personal (.bashrc
es el programa que controla el software intérprete de comandos BASH). Esto se realiza abriendo un
editor de texto como gedit1, con la órden en terminal gedit ~/.bashrc (cola-de-chancho barra punto
bashrc), que abrirá el documento. Poner esto en las últimas líneas del programa:
## WRF
export NETCDF=/usr
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export JASPERLIB=/usr/lib/x86_64-linux-gnu
export JASPERINC=/usr/include/jasper
export FC=gfortran
export CC=gcc

1
Si no tienes gedit, puedes usar nano, vi, emacs, kate, etc.
Grabe el archivo y escriba en el terminal exec bash (o reinicie el terminal) para asimilar las variables
de entorno nuevas.

Compilación: Descarga WRF (WRF-ARW, WRF-Chem) y WPS versión 3.7 desde el sitio web
http://www2.mmm.ucar.edu/wrf/users/download/get_sources.html, y pon los extraibles en la
carpeta /atmos/WRF. Extráelos con tar -xvzf archivo.TAR.gz (donde archivo es cada uno de los
paquetes recién descargados). WRF-Chem es una subcarpeta que debe moverse hacia dentro de la
carpeta /atmos/WRF/WRFV3/.
Ahora bien debemos compilar el código del WRF, ya que viene este programa en código fuente, y el
computador solo corre código objeto (binarios ejecutables). Por lo tanto abrimos el terminal en la
carpeta /atmos/WRF/WRFV3 (cd /atmos/WRF/WRFV3) y escribimos

$ ./configure

Y esta es la salida

checking for perl5... no


checking for perl... found /usr/bin/perl (perl)
Will use NETCDF in dir: /usr
PHDF5 not set in environment. Will configure WRF for use without.
Will use 'time' to report timing information

If you REALLY want Grib2 output from WRF, modify the arch/Config_new.pl script.
Right now you are not getting the Jasper lib, from the environment, compiled into WRF.

------------------------------------------------------------------------
Please select from among the following Linux x86_64 options:

1. (serial) 2. (smpar) 3. (dmpar) 4. (dm+sm) PGI (pgf90/gcc)


5. (serial) 6. (smpar) 7. (dmpar) 8. (dm+sm) PGI (pgf90/pgcc): SGI MPT
9. (serial) 10. (smpar) 11. (dmpar) 12. (dm+sm) PGI (pgf90/gcc): PGI accelerator
13. (serial) 14. (smpar) 15. (dmpar) 16. (dm+sm) INTEL (ifort/icc)
17. (dm+sm) INTEL (ifort/icc): Xeon Phi (MIC
architecture)
18. (serial) 19. (smpar) 20. (dmpar) 21. (dm+sm) INTEL (ifort/icc): Xeon (SNB with AVX
mods)
22. (serial) 23. (smpar) 24. (dmpar) 25. (dm+sm) INTEL (ifort/icc): SGI MPT
26. (serial) 27. (smpar) 28. (dmpar) 29. (dm+sm) INTEL (ifort/icc): IBM POE
30. (serial) 31. (dmpar) PATHSCALE (pathf90/pathcc)
32. (serial) 33. (smpar) 34. (dmpar) 35. (dm+sm) GNU (gfortran/gcc)
36. (serial) 37. (smpar) 38. (dmpar) 39. (dm+sm) IBM (xlf90_r/cc_r)
40. (serial) 41. (smpar) 42. (dmpar) 43. (dm+sm) PGI (ftn/gcc): Cray XC CLE
44. (serial) 45. (smpar) 46. (dmpar) 47. (dm+sm) CRAY CCE (ftn/gcc): Cray XE and XC
48. (serial) 49. (smpar) 50. (dmpar) 51. (dm+sm) INTEL (ftn/icc): Cray XC
52. (serial) 53. (smpar) 54. (dmpar) 55. (dm+sm) PGI (pgf90/pgcc)
56. (serial) 57. (smpar) 58. (dmpar) 59. (dm+sm) PGI (pgf90/gcc): -f90=pgf90
60. (serial) 61. (smpar) 62. (dmpar) 63. (dm+sm) PGI (pgf90/pgcc): -f90=pgf90

Enter selection [1-63] : 33 [Comentario: yo compilé con 33, que es GFORTRAN de 64 bits, con
paralelización primitiva de procesador, esto es uso los 4 núcleos de mi máquina para ejecutar
WRF. Puedes elegir entre 32 a 35 a menos que descargues un compilador privativo (como el
Intel Fortran Compiler)]
------------------------------------------------------------------------
Compile for nesting? (1=basic, 2=preset moves, 3=vortex following) [default 1]: 1 [por defecto]

(...)

Al finalizar esto mostrará mensajes de configuración correcta. Para compilar escribimos

$ ./compile em_real

Y esperamos un rato la compilación. Cuando termine, aparecerá un mensaje similar a éste:

==========================================================================
build started: jue may 14 23:07:41 CLT 2015
build completed: jue may 14 23:21:16 CLT 2015

---> Executables successfully built <---

-rwxrwxr-x 1 david david 37724549 may 14 23:21 main/ndown.exe


-rwxrwxr-x 1 david david 37589367 may 14 23:21 main/real.exe
-rwxrwxr-x 1 david david 37172169 may 14 23:21 main/tc.exe
-rwxrwxr-x 1 david david 42145965 may 14 23:20 main/wrf.exe

==========================================================================

Con esto podemos proceder a compilar el Sistema de Preprocesamiento de WRF (o WPS). Para ello
vamos a la carpeta WPS (cd /atmos/WRF/WPS) y escribimos:

$ ./configure

La salida en pantalla es similar:

Will use NETCDF in dir: /usr


Found Jasper environment variables for GRIB2 support...
$JASPERLIB = /usr/lib/x86_64-linux-gnu/
$JASPERINC = /usr/include/jasper/
------------------------------------------------------------------------
Please select from among the following supported platforms.

1. Linux x86_64, gfortran (serial)


2. Linux x86_64, gfortran (serial_NO_GRIB2)
3. Linux x86_64, gfortran (dmpar)
4. Linux x86_64, gfortran (dmpar_NO_GRIB2)
5. Linux x86_64, PGI compiler (serial)
6. Linux x86_64, PGI compiler (serial_NO_GRIB2)
7. Linux x86_64, PGI compiler (dmpar)
8. Linux x86_64, PGI compiler (dmpar_NO_GRIB2)
9. Linux x86_64, PGI compiler, SGI MPT (serial)
10. Linux x86_64, PGI compiler, SGI MPT (serial_NO_GRIB2)
11. Linux x86_64, PGI compiler, SGI MPT (dmpar)
12. Linux x86_64, PGI compiler, SGI MPT (dmpar_NO_GRIB2)
13. Linux x86_64, IA64 and Opteron (serial)
14. Linux x86_64, IA64 and Opteron (serial_NO_GRIB2)
15. Linux x86_64, IA64 and Opteron (dmpar)
16. Linux x86_64, IA64 and Opteron (dmpar_NO_GRIB2)
17. Linux x86_64, Intel compiler (serial)
18. Linux x86_64, Intel compiler (serial_NO_GRIB2)
19. Linux x86_64, Intel compiler (dmpar)
20. Linux x86_64, Intel compiler (dmpar_NO_GRIB2)
21. Linux x86_64, Intel compiler, SGI MPT (serial)
22. Linux x86_64, Intel compiler, SGI MPT (serial_NO_GRIB2)
23. Linux x86_64, Intel compiler, SGI MPT (dmpar)
24. Linux x86_64, Intel compiler, SGI MPT (dmpar_NO_GRIB2)
25. Linux x86_64, Intel compiler, IBM POE (serial)
26. Linux x86_64, Intel compiler, IBM POE (serial_NO_GRIB2)
27. Linux x86_64, Intel compiler, IBM POE (dmpar)
28. Linux x86_64, Intel compiler, IBM POE (dmpar_NO_GRIB2)
29. Linux x86_64 g95 compiler (serial)
30. Linux x86_64 g95 compiler (serial_NO_GRIB2)
31. Linux x86_64 g95 compiler (dmpar)
32. Linux x86_64 g95 compiler (dmpar_NO_GRIB2)
33. Cray XE/XC CLE/Linux x86_64, Cray compiler (serial)
34. Cray XE/XC CLE/Linux x86_64, Cray compiler (serial_NO_GRIB2)
35. Cray XE/XC CLE/Linux x86_64, Cray compiler (dmpar)
36. Cray XE/XC CLE/Linux x86_64, Cray compiler (dmpar_NO_GRIB2)
37. Cray XC CLE/Linux x86_64, Intel compiler (serial)
38. Cray XC CLE/Linux x86_64, Intel compiler (serial_NO_GRIB2)
39. Cray XC CLE/Linux x86_64, Intel compiler (dmpar)
40. Cray XC CLE/Linux x86_64, Intel compiler (dmpar_NO_GRIB2)

Enter selection [1-40] : 3 [opción que utilicé]

Ahora, al finalizar, debemos compilar con el siguiente comando:

$ ./compile

El mensaje de salida de la compilación es algo confuso. Sugiero listar con “ls” la carpeta WPS, y si
ven geogrid.exe, ungrib.exe y metgrid.exe en ella, su compilador hizo bien su trabajo.

Ahora tenemos compilado el programa.

Posterior a la compilación: Antes de correr WPS necesitarán datos de geografía de WPS, que se
descargan desde http://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html. Si
la conexión es lenta, debes descargar Download Lowest Resolution of Each Mandatory Field, que
son datos de baja resolución, además de Download New Static Data Released With v3.7, los que
son datos de altísima resolución . No obstante puedes descargar Download Complete Dataset (un
archivo muy pesado) para tener todos los datos para WPS, en todas las resoluciones. Se debe crear
una carpeta geog en /atmos/WRF (con mkdir geog/ && cd geog/) y entrar alli.
Al descargarlo, debes extraerlo con el comando

$ tar -xjf ../geog_minimum.tar.bz2

Tener paciencia debido a que son bastantes datos los de la descompresión.

Ahora bajamos y descomprimimos el Asistente de Dominios WRF (WRF Domain Wizard) desde el
sitio web http://esrl.noaa.gov/gsd/wrfportal/DomainWizard.html, el cual lo desempacamos en
/atmos/WRF.

Por último debemos crear una carpeta Dominios en /atmos/WRF, y configurar el


run_DomainWizard2

Imagen 1: Configuración de WRF Domain Wizard

Y listo! Tenemos el WRF 3.7 instalado en nuestro computador. La gran alegría que tendrán será
porque el desempeño de WRF será drámaticamente aumentado, logrando simulaciones
extremadamente rápidas.

Incidencias que reporto: los botones Geogrid, ungrib y metgrid no funcionaban en mi computador.
Si ejecutas ../../WPS/geogrid.exe .. hasta metgrid.exe, funciona bastante bien desde el terminal.

2
Si el run_DomainWizard no corre, debe usted cambiar los permisos de ejecución así: en
/atmos/WRF/WRFDomainWizard debe ejecutar chmod +x run_DomainWizard
Imagen 2: WRF Domain Wizard corriendo en Elementary OS 0.3

Imagen 3: WRF corriendo en Elementary OS 0.3

También podría gustarte