Changes between Version 2 and Version 3 of CompilingPdaf


Ignore:
Timestamp:
Jan 9, 2022, 4:13:35 PM (3 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CompilingPdaf

    v2 v3  
    11= Compiling the PDAF library =
    22
    3 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)
     3The 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)
    44
    55The 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`).
     
    3030where `<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'''.
    3131
    32 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.
     32The compilation with generate the PDAF library file '''PDAFROOT/lib/libpdaf-var.a'''. This library also includes the ensemble filters and smoothers.
     33In 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.
     34
     35
     36== Linking the PDAF library ==
     37
     38To point to the PDAF include directory to ensure that `pdaf_interface_module` and the `PDAFomi` module are found, one should specificy
     39{{{
     40   -I${PDAFROOT}/include
     41}}}
     42Here `${PDAFROOT}` is the directory of the PDAF package. It can either be directly specified by replacing ${PDAFROOT} or one speficies PDAFROOT as a variable.
     43
     44For linking the PDAF library for the ensemble schemes use
     45{{{
     46   -L${PDAFROOT}/lib -lpdaf-d
     47}}}
     48while in case of the PDAF library supporting the 3D-Var schemes use
     49{{{
     50   -L${PDAFROOT}/lib -lpdaf-var
     51}}}
     52
     53Apart 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)