WRFgcc

De Wikicima
Revisión a fecha de 13:16 6 dic 2017; Lluis.fita (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

gcc compilation

<hydra> has by default intel C/Fortran compilers. However, <hydra> also has the free gcc compilers.

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 udunits was installed due to issues with cmake

Required libraries

Here the steps starting from a folder where we will download all the sources called

/share/tools/Downloads/

These compilation steps are kept inside the file /share/tools/Downloads/compilation.inf

1.- Compiling openmpi v3.0.0.

  • getting source
$ wget https://www.open-mpi.org/software/ompi/v3.0/downloads/openmpi-3.0.0.tar.gz
  • Decompressing
$ tar xvfz openmpi-3.0.0.tar.gz
  • Going there
$ cd openmpi-3.0.0
  • Creation of the folder where the libraries will be installed
$ mkdir -p /share/tools/bin/openmpi/3.0.0/gcc
  • Configuring the compilation/installation
$ ./configure --prefix=/share/tools/bin/openmpi/3.0.0/gcc >& run_configure.log
  • Looking for errors in run_configure.log. If not </code>make</code> chain (ensuring each steps goes fine)
$ make all >& run_make.log
$ make test >& run_make_test.log
$ make install >& run_make_install.log

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

1.- zlib-1.2.11

 src: https://zlib.net/zlib-1.2.11.tar.gz
 $ ./configure --prefix=/share/tools/bin/zlib/1.2.8/gcc >& run_configure.log
 $ make >& make.log
 $ make check >& make_check.log
 $ make install >& make_install.log

1.- hdf5-1.10.1

 src: hdf5-1.10.1.tar.bz2
 $ export CPP=/usr/bin/cpp
 $ apt-get install g++
 $ ./configure --enable-fortran --with-zlib=/share/tools/bin/zlib/1.2.8/gcc/lib 
   --prefix=/share/tools/bin/hdf5/1.10.1/gcc  >& run_configure.log
 $ make >& make.log
 $ make check >& make_check.log
 $ make install >& make_install.log

1.- libcurl-7.57.0

 src: https://curl.haxx.se/download/curl-7.57.0.tar.gz
 $ ./configure --prefix=/share/tools/bin/curl/7.57.0/gcc >& run_configure.log
 $ make >& make.log
 $ make check >& make_check.log
 $ make install >& make_install.log

2.- netcdf-4.5.0

 src: ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.5.0.tar.gz
 $ apt-get install curl
 $ export LDFLAGS='-L/share/tools/bin/zlib/1.2.8/gcc/lib -L/share/tools/bin/hdf5/1.10.1/gcc/lib 
   -L/share/tools/bin/curl/7.57.0/gcc/lib'
 $ export CPPFLAGS='-I/share/tools/bin/zlib/1.2.8/gcc/include -I/share/tools/bin/hdf5/1.10.1/gcc/include 
   -I/share/tools/bin/curl/7.57.0/gcc/include'
 $ ./configure --enable-netcdf-4 --prefix=/share/tools/bin/netcdf/4.5.0/gcc >& run_configure.log
 $ make >& make.log
 $ make check >& make_check.log
 $ make install >& make_install.log

Fortran interdace

 src: ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-fortran-4.4.4.tar.gz
 $ export LD_LIBRARY_PATH=-I/share/tools/bin/netcdf/4.5.0/gcc/lib:${LD_LIBRARY_PATH}
 $ export LDFLAGS='-L/share/tools/bin/zlib/1.2.8/gcc/lib -L/share/tools/bin/hdf5/1.10.1/gcc/lib 
   -L/share/tools/bin/curl/7.57.0/gcc/lib -L/share/tools/bin/netcdf/4.5.0/gcc/lib'
 $ export CPPFLAGS='-I/share/tools/bin/zlib/1.2.8/gcc/include -I/share/tools/bin/hdf5/1.10.1/gcc/include 
   -I/share/tools/bin/curl/7.57.0/gcc/include -I/share/tools/bin/netcdf/4.5.0/gcc/include'
 $ ./configure --prefix=/share/tools/bin/netcdf/4.5.0/gcc >& run_configure.log
 $ make >& make.log
 $ make check >& make_check.log
 $ make install >& make_install.log

WRF

Herramientas personales