Changes between Initial Version and Version 1 of PDAF_init_si


Ignore:
Timestamp:
Jan 15, 2015, 1:47:01 PM (9 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PDAF_init_si

    v1 v1  
     1= PDAF_init_si =
     2
     3This page documents the routine `PDAF_init_si` of PDAF.
     4
     5`PDAF_init_si` is the variant of [wiki:PDAF_init PDAF_init] with the [PdafSimplifiedInterface simplified interface]. The difference between both routines is that in the simplified interface the names of the call-back subroutines are not specified. Instead the routine assumes that the call-back routines have a standard name as specified at the end of this page.
     6
     7The variables for the call to `PDAF_init` are usually set in `init_pdaf`.
     8
     9The call to `PDAF_init_si` has the following structure:
     10{{{
     11CALL PDAF_init(filtertype, subtype, step_null, &
     12               filter_param_i, length_filter_param_i, &
     13               filter_param_r, length_filter_param_r, &
     14               COMM_model, COMM_filter, COMM_couple, &
     15               task_id, n_modeltasks, filterpe, &
     16               screen, status_pdaf)
     17}}}
     18
     19The required variables are the following:
     20
     21 * `filtertype`: An integer defining the type of filter algorithm. Available are
     22  * 0: SEEK
     23  * 1: SEIK
     24  * 2: EnKF
     25  * 3: LSEIK
     26  * 4: ETKF
     27  * 5: LETKF
     28  * 6: ESTKF
     29  * 7: LESTKF
     30 * `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_si` is called with `subtype=-1` the available options are shown for the selected filter algorithm.
     31 * `step_null`: An integer defining the initial time step. For some cases it can use useful to set `step_null` larger to 0.
     32 * `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:
     33  * The size of the local state vector for the current process.
     34  * The ensemble size for all ensemble-based filters (or the rank of the state covariance matrix for mode-based filters like SEEK)
     35 * `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.
     36 * `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:
     37  * 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.)
     38 * `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.
     39 * `COMM_model`: The communicator variable `COMM_model` as initialized by `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`)
     40 * `COMM_filter`: The communicator variable `COMM_filter` as initialized by `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`)
     41 * `COMM_couple`: The communicator variable `COMM_couple` as initialized by `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`)
     42 * `task_id`: The index of the model tasks  as initialized by `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`)
     43 * `n_modeltasks`: The number of model tasks as defined before the call to `init_parallel_pdaf`. (Usually stored in the module `mod_assimilation`)
     44 * `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`)
     45 * `screen`: An integer defining whether information output is written to the screen (i.e. standard output). The following choices are available:
     46  * 0: quiet mode - no information is displayed.
     47  * 1: Display standard information (recommended)
     48  * 2: as 1 plus display of timing information during the assimilation process
     49  * 3: Display detailed information for debugging
     50 * `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`.)
     51
     52An overview of available options for each filter an be found on the [wiki:AvailableOptionsforInitPDAF overview page on options].
     53
     54It is recommended that the value of `status_pdaf` is checked in the program after `PDAF_init_si` is executed. Only if its value is 0 the initialization was successful.
     55
     56The routine `PDAF_init_si` calls the user-defined call-back routine for the initialization of the ensemble array.
     57The name of this user-supplied routine `init_ens_pdaf`. An overview of the pre-defined names is provided in the [PdafSimplifiedInterface documentation of PDAF's simplified interface]. For the specification of the routine `init_ens_pdaf` see: '[InitPdaf#User-suppliedroutineU_init_ensinit_ens_pdaf.F90 User-supplied routine U_init_ens]'