Changes between Version 18 and Version 19 of PDAF3_new_functionality


Ignore:
Timestamp:
Apr 17, 2026, 11:32:00 AM (14 hours ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PDAF3_new_functionality

    v18 v19  
    33[[PageOutline(2-3,Contents of this page)]]
    44
    5 PDAF V3.0 comes with several new features. Here we provide an overview of them and provide links to more detailed descriptions:
     5PDAF V3 comes with several new features compared to PDAF2.x. Here we provide an overview of them and provide links to more detailed descriptions:
    66
    77=== Incremental analysis updates (IAU) ===
     
    5252=== Simplified parallelization with PDAF 3 interface ===
    5353
    54 The PDAF3 interface provides the routines `PDAF3_set_parallel` and `PDAF3_init` to separate the initialization of parallelization variables from the actual initialization of PDAF.
     54The PDAF3 interface provides the routines `PDAF3_init_parallel`, `PDAF3_set_parallel` and `PDAF3_init` to separate the initialization of parallelization variables from the actual initialization of PDAF. This approach simplifies the code.
    5555
    56 The routine `PDAF3_set_parallel` provides the parallelization variables to PDAF. It is called at the end of the routine `init_parallel_pdaf`, where the parallelization variables are set in the user code. The routine `PDAF3_init` replaces the previous routine `PDAF_init` and has a shorted interface not including parallelization variables. This approach simplifies the code.
     56''For PDAF V3.1 and later'': The routine `PDAF3_init_parallel` performs the configuration of the parallelization. It is called in the routine `init_parallel_pdaf`, where the parallelization variables are set.
    5757
    58 The tutorial examples, e.g. the files `init_parallel_pdaf.F90` and `init_pdaf.F90` in `tutorial/offline_2D_serial/`, show the implementation. Documentation is provided at [wiki:PDAF3_set_parallel] and [wiki:PDAF3_init].
     58''For PDAF V3.0'': The routine `PDAF3_set_parallel` provides the parallelization variables to PDAF. It is called at the end of the routine `init_parallel_pdaf`, where the parallelization variables are set in the user code.
     59
     60The routine `PDAF3_init` replaces the previous routine `PDAF_init` and has a shorted interface not including parallelization variables.
     61
     62The tutorial examples, e.g. the files `init_parallel_pdaf.F90` and `init_pdaf.F90` in `tutorial/offline_2D_parallel/`, show the implementation. Documentation is provided at [wiki:PDAF3_init_parallel], [wiki:PDAF3_set_parallel] and [wiki:PDAF3_init].
    5963
    6064=== Possbility to implement without MPI in the user code ===
    6165
    62 This aspect is particularly relevant for the offline-coupled mode: If the program is only intended to be used with OpenMP parallelization, but not using a decomposition with MPI, one can omit the call to `init_parallel_pdaf` if `PDAF3_init` is used for the PDAF initialization and if `PDAF_deallocatez is called at the end of the program (usually in `finalize_pdaf`). In this approach, the user code includes no indication of parallelization, which simplifies the code. The program still has to be compiled with an MPI library, but all parallelization aspects are handled by PDAF.
     66This aspect is relevant for the offline-coupled mode: If the program is only intended to be used with OpenMP parallelization, but not using a decomposition with MPI, one can omit the call to `init_parallel_pdaf` if `PDAF3_init` is used for the PDAF initialization and if `PDAF_deallocate` is called at the end of the program (usually in `finalize_pdaf`). In this approach, the user code includes no indication of parallelization, which simplifies the code. The program still has to be compiled with an MPI library, but all parallelization aspects are handled by PDAF.
    6367
    6468=== Using `PDAF3_assimilate` in flexible parallelization mode ===