wiki:PDAF_get_state

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

--

PDAF_get_state

This page documents the routine PDAF_get_state of PDAF.

The routine PDAF_get_state has to be called once at the end of the initialization of PDAF. Usually, the call will be added to the routine init_pdaf that was discussed on the page on initializing PDAF.

The routine PDAF_get_state has the purpose to initialize the model fields to be propagates from the array holding the ensemble states. In addition, the routine can initialized the information, whether further model integrations have to be computed and how many time steps have to be performed. For the fully-parallel implementation variant, the number of time steps is used inside PDAF, while the flag on further model integrations is not used.

The interface of PDAF_get_state is the following:

  SUBROUTINE PDAF_get_state(nsteps, timenow, doexit, U_next_observation, U_distribute_state, &
                            U_prepoststep, status)

with the following arguments:

  • nsteps: An integer specifying upon exit the number of time steps to be performed
  • timenow: A real specifying upon exit the current model time. (This value is usually not used in the fully-parallel implemenation variant)
  • doexit: An integer variable defining whether the assimilation process is completed. For compatibility 1 should be used for exit, 0 for continuing. (This value is not used in the fully-parallel implemenation variant)
  • U_next_observation: The name of a user supplied routine that initializes the variables nsteps, timenow, and doexit
  • U_distribute_state: The name of a user supplied routine that initializes the model fields from the array holding the ensemble of model state vectors
  • U_prepoststep: The name of a user supplied routine that is called before and after the analysis step. Here the user has the possibility to access the state ensemble and can e.g. compute estimated variances or can write the ensemble states the state estimate into files.
  • status: The integer status flag. It is zero, if PDAF_get_state is exited without errors.

The specifications of the user-supplied routines (U_next_observation, U_distribute_state, U_prepoststep) are documented on the page on inserting the analysis step.

PDAF also has a Simplified Interface providing the routine 'PDAF_get_state_si'. In the simplified interface, the names of all user-supplied call back routines are predefined such that they not appear in the call to PDAF_get_state_si. More information on the pre-defined names is provided in the documentation of PDAF's simplified interface.