PDAF_init
This page documents the routine PDAF_init of PDAF.
The routine PDAF_init
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 intemplates/online_omi/init_pdaf.F90
for choices). IfPDAF_init
is called withsubtype=-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 setstep_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 usesubtype=-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 arrayfilter_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 intemplates/online_omi/init_pdaf.F90
or usesubtype=-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 arrayfilter_param_r
. The entries in the array are parsed up to this index.COMM_model
: The communicator variableCOMM_model
as initialized byinit_parallel_pdaf
. (Usually stored in the modulemod_assimilation
)COMM_filter
: The communicator variableCOMM_filter
as initialized byinit_parallel_pdaf
. (Usually stored in the modulemod_assimilation
)COMM_couple
: The communicator variableCOMM_couple
as initialized byinit_parallel_pdaf
. (Usually stored in the modulemod_assimilation
)task_id
: The index of the model tasks as initialized byinit_parallel_pdaf
. (Usually stored in the modulemod_assimilation
)n_modeltasks
: The number of model tasks as defined before the call toinit_parallel_pdaf
. (Usually stored in the modulemod_assimilation
)filterpe
: A logical flag showing whether a process belongs toCOMM_filter
as initialized byinit_parallel_pdaf
. (Usually stored in the modulemod_assimilation
)U_init_ens
: The name of the user-supplied routine that is called byPDAF_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. Ifstatus_pdaf
is zero upon exit fromPDAF_init
the initialization was successful. An error occurred for non-zero values. (The error codes are documented in the routinePDAF_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.