Requirements

Mandatory

Autotools
Configuring the project is done with autoconf, and automake. It configures the projects by searching for the necessary dependencies and compiling source code. autoconf should tell you if anything vital is missing.
MPI

Most of the code is in Fortran and is compiled with an MPI script (for example mpif90). A very small part is in C and is compiled likewise (for examplewith a script mpicc). This suppose you have a Fortran and C compiler which are needed for testing purposes mostly. The MPI library should support the MPI2 standard.

You should also be able to run parallel jobs. The code is configured for PBS jobs, but you can also use mpirun and edit the batch file.

Warning

Pangolin has been tested with gfortran, pgf90, ifort for the Fortran compiler and MPICH, OpenMPI, Intel MPI for the MPI library. However, we do not claim to support all implementations and all versions (even if it should eventually).

We only guarantee at the moment the following configurations :

C Fortran MPI Architecture Machine
icc 13.1.0 ifort IntelMPI 4.1.2 amd64 Neptune (CERFACS)
gcc 4.5.1 gfortran OpenMPI 1.4.3 amd64 Pannus (CERFACS, PC)
gcc 4.7.2 gfortran OpenMPI 1.4.5-1 amd64 Home PC

Table: MPI support

Perl
Needed to start the simulation (even though it can be done by hand). It should be installed by default.
HDF5
An I/O format which allows for parallel I/O. Even though Pangolin can manage ASCII data, it is the preferred I/O format.
netCDF
Input data is given in this format, which must be converted to HDF5 in a preprocessing step.

Installation help

Perl modules suite

Here, we will configure Perl to install modules without needing root privileges. All of our packages will be installed in ~/perl5 in this example. First, we install the utility cpanminus :

$ wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib

Then we set the local::lib package to use ~/perl5 from now on:

$  eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`

This can be put in .bash_profile (or the equivalent for your shell) for future sessions:

$ echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`'>> ~/.profile

Now we can install any package easily. For Pangolin, you may want to install everything :

$ cpanm TAP::Harness  Getopt::Long  File::Copy  File::Slurp  File::Find File::Which