wiki:PDAF_init_si

PDAF_init_si

This page documents the routine PDAF_init_si of PDAF.

PDAF_init_si is the variant of PDAF_init with the 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.

The routine PDAF_init is typically called in init_pdaf where also the variables for the call are set.

The call to PDAF_init_si 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, &
               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
    • 8: LEnKF
    • 9: NETF
    • 10: LNETF
    • 12: PF
    • 100: GENOBS (generate synthetic observations)
    • 200: 3D-Var
  • subtype: An integer defining the sub-type of the filter algorithm (see the example code in templates/online_omi/init_pdaf.F90 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 templates/online_omi/init_pdaf.F90 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)
  • 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
  • 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_si is executed. Only if its value is 0 the initialization was successful.

The routine PDAF_init_si calls the user-defined call-back routine for the initialization of the ensemble array. The name of this user-supplied routine init_ens_pdaf. An overview of the pre-defined names is provided in the documentation of PDAF's simplified interface. For the specification of the routine init_ens_pdaf see: 'User-supplied routine U_init_ens'

Last modified 21 months ago Last modified on Feb 22, 2023, 2:26:52 PM