= 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 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= }}} where `` is the filename of the computer-specific settings from the directory `PDAFROOT/make.arch/` without `.h`. A common choice is '''=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= }}} where `` is the filename of the computer-specific settings from the directory `PDAFROOT/make.arch/` without `.h`. A common choice is '''=linux_gfortran_openmpi'''. The compilation with generate the PDAF library file '''PDAFROOT/lib/libpdaf-var.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.