wiki:PDAF_init

Version 11 (modified by lnerger, 11 days ago) ( diff )

--

PDAF_init

This page documents the routine PDAF_init of PDAF.

The routine is typically called in init_pdaf where also the variables for the call 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
    • 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_parallel_pdaf)
  • COMM_filter: The communicator variable COMM_filter as initialized by init_parallel_pdaf. (Usually stored in the module mod_parallel_pdaf)
  • COMM_couple: The communicator variable COMM_couple as initialized by init_parallel_pdaf. (Usually stored in the module mod_parallel_pdaf)
  • task_id: The index of the model tasks as initialized by init_parallel_pdaf. (Usually stored in the module mod_parallel_pdaf)
  • n_modeltasks: The number of model tasks as defined before the call to init_parallel_pdaf. (Usually stored in the module mod_parallel_pdaf)
  • filterpe: A logical flag showing whether a process belongs to COMM_filter as initialized by init_parallel_pdaf. (Usually stored in the module mod_parallel_pdaf)
  • 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:
    • 1: No valid filter type
    • 2: No valid sub type
    • 3: Invalid dim_pint
    • 4: Invalid dim_preal
    • 5: Invalid state dimension
    • 6: Invalid ensemble size
    • 7: Invalid value for forgetting factor
    • 8: Invalid other integer parameter value
    • 9: Invalid other real parameter value
    • 20: error in allocation of array at 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.

Note: See TracWiki for help on using the wiki.