FLEXPART Model/FLEXPARTCompilerSettings

From mn/geo/geoit
Revision as of 16:02, 14 September 2011 by Jfb (talk | contribs)

Jump to: navigation, search

This is the README file included now with the FLEXPART distribution

Compiling FLEXPART 8.1 in a 64-bit environment

This file describes the required compiler flags for compiling FLEXPART 8.1 in a 64-bit computing environment for the gfortran compiler (version 4.2) and absoft compiler (version 10.1).

Moving from a 32-bit to a 64-bit environment brings the advantage of using >2GB main memory for FLEXPART data arrays. However, this requires certain adjustments to the compilation settings of FLEXPART and the external libraries GRIB_API and JASPER (the latter as required by GRIB_API).

The main point to be considered for running FLEXPART in a 64-bit environment is the possiblity to allocate data arrays >2GB. This requires to use the compiler flag -mcmodel=medium. Note that this memory model slows down calculations, if data arrays of less than 2GB are allocated, the use of -mcmodel=small is said to provide slightly better performance.

An additional requirement is that the external libraries must be compiled with the flag -fPIC to allow for the libraries to be located at any position in the computer's main memory. Without this flag, a 'relocation truncated to fit' error will result when linking FLEXPART.

If the compilers are not set to generate 64-bit binaries by default, the flag -m64 should be included for FLEXPART and the external libraries.

All of the required settings for FLEXPART are already made in the makefiles included in the FLEXPART 8.1 distribution.


Recommended compilation steps using the gfortran or absoft compiler


1. JASPER:


./configure CC=gcc CFLAGS='-O2 -m64 -fPIC'
make
make install

2. GRIB_API:


export CC=gcc 
export FC=gfortran/absoft
export CFLAGS='-O2 -m64 -fPIC' 
export FFLAGS='-O2 -m64 -fPIC'
./configure
make
make check
make install

3. FLEXPART:

use one of the following:


make -f makefile.ecmwf_gfortran_64
make -f makefile.gfs_gfortran_64
make -f makefile.ecmwf_absoft_64
make -f makefile.gfs_absoft_64

NOTE: Set -mcmodel=medium or -mcmodel=small in the makefiles, depending on memory allocation needs (see above).