<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.cima.fcen.uba.ar/index.php?action=history&amp;feed=atom&amp;title=Compilar_WRF_con_GCC</id>
	<title>Compilar WRF con GCC - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.cima.fcen.uba.ar/index.php?action=history&amp;feed=atom&amp;title=Compilar_WRF_con_GCC"/>
	<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=Compilar_WRF_con_GCC&amp;action=history"/>
	<updated>2026-05-10T17:22:15Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=Compilar_WRF_con_GCC&amp;diff=1154&amp;oldid=prev</id>
		<title>Gvieytes: Página creada con «= gcc compilation = &lt;hydra&gt; has by default intel C/Fortran compilers. However, &lt;hydra&gt; also has the free gcc compilers.  Here are the instructions followed to compile WRF u...»</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=Compilar_WRF_con_GCC&amp;diff=1154&amp;oldid=prev"/>
		<updated>2019-01-22T14:09:01Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «= gcc compilation = &amp;lt;hydra&amp;gt; has by default intel C/Fortran compilers. However, &amp;lt;hydra&amp;gt; also has the free gcc compilers.  Here are the instructions followed to compile WRF u...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= gcc compilation =&lt;br /&gt;
&amp;lt;hydra&amp;gt; has by default intel C/Fortran compilers. However, &amp;lt;hydra&amp;gt; also has the free gcc compilers.&lt;br /&gt;
&lt;br /&gt;
Here are the instructions followed to compile WRF using the gcc and gfortran compilers. In order to do that, one needs to compile all the required libraries (openmpi, zlib, curl, hdf5 and netcdf) using these compilers. No &amp;lt;code&amp;gt;udunits&amp;lt;/code&amp;gt; was installed due to issues with &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Required libraries ==&lt;br /&gt;
Here the steps starting from a folder where we will download all the sources called &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/share/tools/Downloads/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These compilation steps are kept inside the file &amp;lt;code&amp;gt;/share/tools/Downloads/compilation.inf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openmpi v3.0.0 ===&lt;br /&gt;
* getting source&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget https://www.open-mpi.org/software/ompi/v3.0/downloads/openmpi-3.0.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Decompressing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar xvfz openmpi-3.0.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Going there&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd openmpi-3.0.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Creation of the folder where the libraries will be installed&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir -p /share/tools/bin/openmpi/3.0.0/gcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Configuring the compilation/installation&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./configure --prefix=/share/tools/bin/openmpi/3.0.0/gcc &amp;gt;&amp;amp; run_configure.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Looking for errors in &amp;#039;&amp;#039;&amp;#039;run_configure.log&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 grep -i error run_configure.log&lt;br /&gt;
If not &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; chain (ensuring each steps goes fine)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make all &amp;gt;&amp;amp; run_make.log&lt;br /&gt;
$ make test &amp;gt;&amp;amp; run_make_test.log&lt;br /&gt;
$ make install &amp;gt;&amp;amp; run_make_install.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For all the others libraries is similar, but paying attention to provide the right installation folder and the right location of the new compiled libraries&lt;br /&gt;
&lt;br /&gt;
=== zlib-1.2.11 ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  src: https://zlib.net/zlib-1.2.11.tar.gz&lt;br /&gt;
  $ ./configure --prefix=/share/tools/bin/zlib/1.2.11/gcc &amp;gt;&amp;amp; run_configure.log&lt;br /&gt;
  $ make &amp;gt;&amp;amp; make.log&lt;br /&gt;
  $ make check &amp;gt;&amp;amp; make_check.log&lt;br /&gt;
  $ make install &amp;gt;&amp;amp; make_install.log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hdf5-1.10.1 ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  src: hdf5-1.10.1.tar.bz2&lt;br /&gt;
  $ export CPP=/usr/bin/cpp&lt;br /&gt;
  $ ./configure --enable-fortran --with-zlib=/share/tools/bin/zlib/1.2.11/gcc \ &lt;br /&gt;
    --prefix=/share/tools/bin/hdf5/1.10.1/gcc  &amp;gt;&amp;amp; run_configure.log&lt;br /&gt;
  $ make &amp;gt;&amp;amp; make.log&lt;br /&gt;
  $ make check &amp;gt;&amp;amp; make_check.log&lt;br /&gt;
  $ make install &amp;gt;&amp;amp; make_install.log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== libcurl-7.60.0 ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  src: https://curl.haxx.se/download/curl-7.60.0.tar.gz&lt;br /&gt;
  $ ./configure --prefix=/share/tools/bin/curl/7.60.0/gcc &amp;gt;&amp;amp; run_configure.log&lt;br /&gt;
  $ make &amp;gt;&amp;amp; make.log&lt;br /&gt;
  $ make check &amp;gt;&amp;amp; make_check.log&lt;br /&gt;
  $ make install &amp;gt;&amp;amp; make_install.log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== netcdf-4.5.0 ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  src: ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.5.0.tar.gz&lt;br /&gt;
  $ export LDFLAGS=&amp;#039;-L/share/tools/bin/zlib/1.2.11/gcc/lib -L/share/tools/bin/hdf5/1.10.1/gcc/lib &lt;br /&gt;
    -L/share/tools/bin/curl/7.57.0/gcc/lib&amp;#039;&lt;br /&gt;
  $ export CPPFLAGS=&amp;#039;-I/share/tools/bin/zlib/1.2.11/gcc/include -I/share/tools/bin/hdf5/1.10.1/gcc/include &lt;br /&gt;
    -I/share/tools/bin/curl/7.57.0/gcc/include&amp;#039;&lt;br /&gt;
  $ ./configure --enable-netcdf-4 --prefix=/share/tools/bin/netcdf/4.5.0/gcc &amp;gt;&amp;amp; run_configure.log&lt;br /&gt;
  $ make &amp;gt;&amp;amp; make.log&lt;br /&gt;
  $ make check &amp;gt;&amp;amp; make_check.log&lt;br /&gt;
  $ make install &amp;gt;&amp;amp; make_install.log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Fortran interface&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  src: ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-fortran-4.4.4.tar.gz&lt;br /&gt;
  $ export LD_LIBRARY_PATH=-I/share/tools/bin/netcdf/4.5.0/gcc/lib:${LD_LIBRARY_PATH}&lt;br /&gt;
  $ export LDFLAGS=&amp;#039;-L/share/tools/bin/zlib/1.2.11/gcc/lib -L/share/tools/bin/hdf5/1.10.1/gcc/lib &lt;br /&gt;
    -L/share/tools/bin/curl/7.57.0/gcc/lib -L/share/tools/bin/netcdf/4.5.0/gcc/lib&amp;#039;&lt;br /&gt;
  $ export CPPFLAGS=&amp;#039;-I/share/tools/bin/zlib/1.2.11/gcc/include -I/share/tools/bin/hdf5/1.10.1/gcc/include &lt;br /&gt;
    -I/share/tools/bin/curl/7.57.0/gcc/include -I/share/tools/bin/netcdf/4.5.0/gcc/include&amp;#039;&lt;br /&gt;
  $ ./configure --prefix=/share/tools/bin/netcdf/4.5.0/gcc &amp;gt;&amp;amp; run_configure.log&lt;br /&gt;
  $ make &amp;gt;&amp;amp; make.log&lt;br /&gt;
  $ make check &amp;gt;&amp;amp; make_check.log&lt;br /&gt;
  $ make install &amp;gt;&amp;amp; make_install.log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jasper ===&lt;br /&gt;
Jasper requiere librerías de JPEG. Si el make devuelve error de JPEG,  instalar lo siguiente (o pedir a soporte que lo instale)&lt;br /&gt;
  $ aptitude install libjpeg62-turbo-dev &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  src: http://www.ece.uvic.ca/~frodo/jasper/software/jasper-1.900.29.tar.gz&lt;br /&gt;
  $ ./configure --prefix=/share/tools/bin/jasper/1.900.29/gcc CFLAGS=-fPIC&lt;br /&gt;
  $ make &amp;gt;&amp;amp; make.log&lt;br /&gt;
  $ make check &amp;gt;&amp;amp; make_check.log&lt;br /&gt;
  $ make install &amp;gt;&amp;amp; make_install.log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grib ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  src: https://software.ecmwf.int/wiki/download/attachments/3473437/grib_api-1.27.0-Source.tar.gz&lt;br /&gt;
  $ ./configure --prefix=/share/tools/bin/grib/1.13.1/gcc CFLAGS=-fPIC --with-netcdf=/share/tools/bin/netcdf/4.6.1/gcc --with-jasper=/share/tools/bin/jasper/1.900.29/gcc&lt;br /&gt;
  $ make &amp;gt;&amp;amp; make.log&lt;br /&gt;
  $ make check &amp;gt;&amp;amp; make_check.log&lt;br /&gt;
  $ make install &amp;gt;&amp;amp; make_install.log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WRF ==&lt;br /&gt;
Folloing the same folder structure, compilation will be at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/share/WRF/WRFV3.9.1/gfortran/[type]/WRFV3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case there are already two versions:&lt;br /&gt;
* &amp;lt;code&amp;gt;[dmpar]&amp;lt;/code&amp;gt;: distributed memory only&lt;br /&gt;
* &amp;lt;code&amp;gt;[dm+sm]&amp;lt;/code&amp;gt;: distributed and shared memory&lt;br /&gt;
&lt;br /&gt;
The procedure is similar as in the intel case (here for &amp;lt;code&amp;gt;dmpar&amp;lt;/code&amp;gt;)&lt;br /&gt;
Declaring environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ export NETCDF=&amp;#039;/share/tools/bin/netcdf/4.5.0/gcc&amp;#039;&lt;br /&gt;
$ export WRFIO_NCD_LARGE_FILE_SUPPORT=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Decompressing code and renaming&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar xvfz /share/WRF/WRFV3.9.1.1.TAR.gz&lt;br /&gt;
$ mv WRF WRFV3&lt;br /&gt;
$ cd WRFV3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;. There might be an issue with the netcdfs. In order to do not miss the code, just remove writing permits before running configure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ chmod -R -w *&lt;br /&gt;
$ configure [choose 34: 32. (serial)  33. (smpar)  34. (dmpar)  35. (dm+sm)   GNU (gfortran/gcc)]&lt;br /&gt;
$ chmod -R +w *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One needs to introduce some modifications in the resultant configure.wrf. It is already done, so have a look&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp /share/WRF/WRFV3.9.1/gfortran/dmpar/WRFV3/configure.ifort.dmpar.wrf configure.wrf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ compile em_real &amp;gt;&amp;amp; compile.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As usual look for errors, but should be fine&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep Error compile.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Descarga de DATA para ERA-Interim ==&lt;br /&gt;
&lt;br /&gt;
Para poder descargar la DATA necesaria para correr con el modelo hay que acceder a: https://apps.ecmwf.int/registration/ y registrarse.&lt;br /&gt;
&lt;br /&gt;
Luego de realizar la confirmación y activar la cuenta es necesario ingresar y descargar una key para el usuario con el que nos registramos&lt;br /&gt;
&lt;br /&gt;
=== Install ECMWF KEY ===&lt;br /&gt;
&lt;br /&gt;
    If you don&amp;#039;t have an account, please self register at https://apps.ecmwf.int/registration/ and then go to the steps below.&lt;br /&gt;
&lt;br /&gt;
    Login https://apps.ecmwf.int/auth/login/&lt;br /&gt;
&lt;br /&gt;
    Retrieve you key at https://api.ecmwf.int/v1/key/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;    Note that the key expires in 1 year. You will receive an email to the registered email address 1 month before the expiration date with the renewal instructions. To check the expiry date of your current key log into www.ecmwf.int, then click here.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
   Copy the information in this page and paste it in the file $HOME/.ecmwfapirc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
contents of $HOME/.ecmwfapirc (Unix/Linux) or %USERPROFILE%\.ecmwfapirc (Windows)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;url&amp;quot;   : &amp;quot;https://api.ecmwf.int/v1&amp;quot;,&lt;br /&gt;
    &amp;quot;key&amp;quot;   : &amp;quot;XXXXXXXXXXXXXXXXXXXXXX&amp;quot;,&lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;john.smith@example.com&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install client libraries ===&lt;br /&gt;
&lt;br /&gt;
You can install the ecmwfapi python library by running on Unix/Linux:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install https://software.ecmwf.int/wiki/download/attachments/56664858/ecmwf-api-client-python.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descargar data necesaria ===&lt;br /&gt;
&lt;br /&gt;
Para descargar la data necesaria ejecutar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
soporte@nimbus:/share/DATA/re-analysis/ERA-Interim$ sudo python ERAI_ECMWF_api_pl-sfc.py -y 2005 -m 03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
modificando el año y el mes que se utilizan como parámetro&lt;/div&gt;</summary>
		<author><name>Gvieytes</name></author>
	</entry>
</feed>