Version 3 (modified by 3 years ago) (diff) | ,
---|
Compiling the PDAF library
The tutorial implementations in the directory PDAFROOT/tutorial/
and the models implemented with PDAF in PDAFROOT/models/
are setup to compile the PDAF library when the application is compiled. (Here PDAFROOT/
is the root directory of the PDAF package)
The PDAF library, thus the core routines of PDAF and PDAF-OMI, can also be compiled separately. This is the common approach when one implements PDAF with some models in the online-coupled setup (see e.g. the directory modelbindings
).
Compiling PDAF for ensemble filters and smoothers
To compile PDAF for ensemble filters and smoothers, do the following:
cd src/ make PDAF_ARCH=<ARCH>
where <ARCH>
is the filename of the computer-specific settings from the directory PDAFROOT/make.arch/
without .h
. A common choice is <ARCH>=linux_gfortran_openmpi.
The compilation with generate the PDAF library file PDAFROOT/lib/libpdaf-d.a. In addition several Fortran module files *.mod
are generated in the directory PDAFROOT/include/
. These will be used when compiling the application program coupled to PDAF.
Compiling PDAF for 3D-Var methods
The 3D-Var methods implemented in PDAF use solver algorithms from external libraries (from the directory external/
).
To compile PDAF with full support for the analysis with 3D-Var schemes do the following:
cd src/ make pdaf-var PDAF_ARCH=<ARCH>
where <ARCH>
is the filename of the computer-specific settings from the directory PDAFROOT/make.arch/
without .h
. A common choice is <ARCH>=linux_gfortran_openmpi.
The compilation with generate the PDAF library file PDAFROOT/lib/libpdaf-var.a. This library also includes the ensemble filters and smoothers.
In addition several Fortran module files *.mod
are generated in the directory PDAFROOT/include/
. These will be used when compiling the application program coupled to PDAF.
Linking the PDAF library
To point to the PDAF include directory to ensure that pdaf_interface_module
and the PDAFomi
module are found, one should specificy
-I${PDAFROOT}/include
Here ${PDAFROOT}
is the directory of the PDAF package. It can either be directly specified by replacing ${PDAFROOT} or one speficies PDAFROOT as a variable.
For linking the PDAF library for the ensemble schemes use
-L${PDAFROOT}/lib -lpdaf-d
while in case of the PDAF library supporting the 3D-Var schemes use
-L${PDAFROOT}/lib -lpdaf-var
Apart from the PDAF library, one also needs to specify the location of the BLAS and LAPACK libraries (for example by setting -lblas -llapack
if the libraries are installed in standard directories)