| | 1 | = PDAF_init = |
| | 2 | |
| | 3 | This page documents the routine PDAF_init of PDAF. |
| | 4 | In `init_pdaf` the variables for the call to `PDAF_init` are set. |
| | 5 | |
| | 6 | The call to `PDAF_init` has the following structure: |
| | 7 | {{{ |
| | 8 | CALL PDAF_init(filtertype, subtype, step_null, & |
| | 9 | filter_param_i, length_filter_param_i, & |
| | 10 | filter_param_r, length_filter_param_r, & |
| | 11 | COMM_model, COMM_filter, COMM_couple, & |
| | 12 | task_id, n_modeltasks, filterpe, & |
| | 13 | U_init_ens, screen, status_pdaf) |
| | 14 | }}} |
| | 15 | |
| | 16 | The required variables are the following: |
| | 17 | |
| | 18 | * `filtertype`: An integer defining the type of filter algorithm. Available are |
| | 19 | * 0: SEEK |
| | 20 | * 1: SEIK |
| | 21 | * 2: EnKF |
| | 22 | * 3: LSEIK |
| | 23 | * 4: ETKF |
| | 24 | * 5: LETKF |
| | 25 | * 6: ESTKF |
| | 26 | * 7: LESTKF |
| | 27 | * `subtype`: An integer defining the sub-type of the filter algorithm (see the example code in `testsuite/src/dummymodel_1D` for choices). If `PDAF_init` is called with `subtype=-1` the available options are shown for the selected filter algorithm. |
| | 28 | * `step_null`: An integer defining the initial time step. For some cases it can use useful to set `step_null` larger to 0. |
| | 29 | * `filter_param_i`: Integer array collecting several variables for PDAF. The first two variables are mandatory and equal for all filters. Further variables are optional (see example code or use `subtype=-1` to display available options.). The mandatory variables are in the following order: |
| | 30 | * The size of the local state vector for the current process. |
| | 31 | * The ensemble size for all ensemble-based filters (or the rank of the state covariance matrix for mode-based filters like SEEK) |
| | 32 | * `length_filter_param_i`: An Integer defining the length of the array `filter_param_i`. The entries in the array are parsed up to this index. |
| | 33 | * `filter_param_r`: Array of reals collecting floating point variables for PDAF. The first variable is mandatory and equal for all filters. Further variables are optional (see example code in `testsuite/src/dummymodel_1D` or use `subtype=-1` to display available options.). The mandatory variable is: |
| | 34 | * The value of the forgetting factor controlling covariance inflation (required to be larger than zero; common are values between 0.9 and 1.0. For 1.0 the ensemble is not inflated.) |
| | 35 | * `length_filter_param_r`: An Integer defining the length of the array `filter_param_r`. The entries in the array are parsed up to this index. |
| | 36 | * `COMM_model`: The communicator variable `COMM_model` as initialized by `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`) |
| | 37 | * `COMM_filter`: The communicator variable `COMM_filter` as initialized by `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`) |
| | 38 | * `COMM_couple`: The communicator variable `COMM_couple` as initialized by `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`) |
| | 39 | * `task_id`: The index of the model tasks as initialized by `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`) |
| | 40 | * `n_modeltasks`: The number of model tasks as defined before the call to `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`) |
| | 41 | * `filterpe`: A logical flag showing whether a process belongs to `COMM_filter` as initialized by `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`) |
| | 42 | * `U_init_ens`: The name of the user-supplied routine that is called by `PDAF_init` to initialize the ensemble of model states. (See '[#User-suppliedroutineU_init_ensinit_ens_pdaf.F90 User-supplied routine U_init_ens]' |
| | 43 | * `screen`: An integer defining whether information output is written to the screen (i.e. standard output). The following choices are available: |
| | 44 | * 0: quiet mode - no information is displayed. |
| | 45 | * 1: Display standard information (recommended) |
| | 46 | * 2: as 1 plus display of timing information during the assimilation process |
| | 47 | * 3: Display detailed information for debugging |
| | 48 | * `status_pdaf`: An integer used as status flag of PDAF. If `status_pdaf` is zero upon exit from `PDAF_init` the initialization was successful. An error occurred for non-zero values. (The error codes are documented in the routine `PDAF_init`.) |
| | 49 | |
| | 50 | An overview of available options for each filter an be found on the [wiki:AvailableOptionsforInitPDAF overview page on options]. |
| | 51 | |
| | 52 | It is recommended that the value of `status_pdaf` is checked in the program after PDAF_init is executed. Only if its value is 0 the initialization was successful. |
| | 53 | |
| | 54 | PDAF also has a [PdafSimplifiedInterface Simplified Interface] providing the routine `PDAF_init_si`. In the simplified interface, the name of the user-supplied routine `U_init_ens` is predefined to `init_ens_pdaf` such that it does not appear in the call to `PDAF_init_si`. More information on the pre-defined names is provided in the [PdafSimplifiedInterface documentation of PDAF's simplified interface]. |