wiki:PDAF_init

Version 1 (modified by lnerger, 10 years ago) (diff)

--

PDAF_init

This page documents the routine PDAF_init of PDAF. In init_pdaf the variables for the call to PDAF_init are set.

The call to PDAF_init has the following structure:

CALL PDAF_init(filtertype, subtype, step_null, &
               filter_param_i, length_filter_param_i, &
               filter_param_r, length_filter_param_r, &
               COMM_model, COMM_filter, COMM_couple, &
               task_id, n_modeltasks, filterpe, &
               U_init_ens, screen, status_pdaf)

The required variables are the following:

  • filtertype: An integer defining the type of filter algorithm. Available are
    • 0: SEEK
    • 1: SEIK
    • 2: EnKF
    • 3: LSEIK
    • 4: ETKF
    • 5: LETKF
    • 6: ESTKF
    • 7: LESTKF
  • 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.
  • step_null: An integer defining the initial time step. For some cases it can use useful to set step_null larger to 0.
  • 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:
    • The size of the local state vector for the current process.
    • The ensemble size for all ensemble-based filters (or the rank of the state covariance matrix for mode-based filters like SEEK)
  • 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.
  • 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:
    • 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.)
  • 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.
  • COMM_model: The communicator variable COMM_model as initialized by init_parallel_pdaf. (Usually stored in the module mod_assimilation)
  • COMM_filter: The communicator variable COMM_filter as initialized by init_parallel_pdaf. (Usually stored in the module mod_assimilation)
  • COMM_couple: The communicator variable COMM_couple as initialized by init_parallel_pdaf. (Usually stored in the module mod_assimilation)
  • task_id: The index of the model tasks as initialized by init_parallel_pdaf. (Usually stored in the module mod_assimilation)
  • n_modeltasks: The number of model tasks as defined before the call to init_parallel_pdaf. (Usually stored in the module mod_assimilation)
  • 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)
  • 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-supplied routine U_init_ens'
  • screen: An integer defining whether information output is written to the screen (i.e. standard output). The following choices are available:
    • 0: quiet mode - no information is displayed.
    • 1: Display standard information (recommended)
    • 2: as 1 plus display of timing information during the assimilation process
    • 3: Display detailed information for debugging
  • 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.)

An overview of available options for each filter an be found on the overview page on options.

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.

PDAF also has a 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 documentation of PDAF's simplified interface.