Changes between Version 35 and Version 36 of SoftwarePackage

Jan 9, 2022, 4:26:02 PM (2 years ago)



  • SoftwarePackage

    v35 v36  
    3939The library file of PDAF can be compiled on its own or in connection with an example implementation from `tutorial/`, `models/`, or `testsuite/`. Here, we describe the stand-alone compilation. In order to build the library file, you need a Fortran-2003 compatible compiler and 'make'. In addition, the libraries 'BLAS', 'LAPACK', and 'MPI' are required.
    41 Compiling the PDAF library is conduction in the following steps:
    42  1. Choose a suitable include file for the make process and/or edit one. In the directory `make.arch/` several include files are provided. There are include files for compilation with and without MPI. The name of the include files as well as the header comment in the file described the intended architecture. The choice  `linux_gfortran_openmpi.h` is a quite generic choice that should work on a wide range of computers.
    44  2. The environment variable PDAF_ARCH specifies for which architecture you compile PDAF according to your choice in step 1. You need to specify the file name without '.h'. You can specify PDAF_ARCH in the make command line like `make PDAF_ARCH=NAME`. Alternatively, you can set the environment variable $PDAF_ARCH in the shell to the name of the include file (without ending .h), e.g. by `setenv PDAF_ARCH NAME` in case of a (t)csh or `export PDAF_ARCH=NAME` in case of bash.
    46  3. Execute `cd src` and type 'make' at the prompt. This will compile the sources. The library file is generated in the directory `lib/`, while Fortran module files (*.mod) are generated in the directory `include/`.
    48  * '''Note on parallelization:''' PDAF is generally intended for parallel computing using MPI. Before PDAF V2.0 it was also possible to compile PDAF without MPI by using a stub library that simulated the behavior for MPI for a single process that we provided with PDAF. With PDAF V2., we revised the MPI implementation and removed this option. Given that it is today extremely easy to install an MPI library (it is virtually always available as a package in any Linux distribution and standard on cluster computers) we prefer not to invest in maintaining and upgrading the MPI stub library.
    50  * '''Note on precision of floating point variables:''' PDAF is designed to use floating point variables of double precision. However, for flexibility the variables are decared in the source code without a 'KIND' specification. Thus, for the compilation one has to specify that the compiler treats all 'real' variables with double precision accuracy. This is done, e.g. for gfortran by setting `-fdefault-real-8` or for ifort by setting `-r8`. In the provided include files in `make.arch/` these specifications are included. (Starting from version 1.8 of PDAF also single precision is supported. To enable it in PDAF, one has to use the preprocessor definition `-DSNGLPREC`.)
     41The compilation itself is described on the [wiki:CompilingPdaf pages on compiling PDAF].