Changes between Initial Version and Version 1 of U_next_observation


Ignore:
Timestamp:
Jan 19, 2015, 9:54:56 PM (9 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • U_next_observation

    v1 v1  
     1= U_next_observation =
     2
     3The page document the user-supplied call-back routine `U_next_observation`.
     4
     5The routine `U_next_observation` is a call-back routine that has to be provided by the user. In the simplified interface the predefined name of the routine is `next_observation_pdaf`, but in the full interface, the user can choose the name of the routine. At the beginning of a forecast phase, `U_next_observation` is called once by either `PDAF_get_state` ot `PDAF_assimilate_X` (with X being the name of a filter algorithm) to get the number of time steps to be computed in the forecast phase.
     6
     7The interface is the following:
     8{{{
     9SUBROUTINE U_next_observation(stepnow, nsteps, doexit, timenow)
     10}}}
     11with
     12 * `stepnow` : `integer, intent(in)`[[BR]] Number of the current time step
     13 * `nsteps` : `integer, intent(out)`[[BR]] Number of time steps until next observations are available
     14 * `doexit` : `integer, intent(out)`[[BR]] Whether to exit forecasting (1 for exit); only relevant for the 'flexible' implementation variant.
     15 * `timenow` : `real, intent(out)`[[BR]] Current model (physical) time at the beginning of the current forecast phase; only relevant for the 'flexible' implementation variant.
     16
     17Notes:
     18 * The routine is called by all processes in a parallel program
     19 * The variable `timenow` is only passed through PDAF to other user-supplied routines. It can be useful, e.g. to reset model forcing, which is time-specific
     20
     21Some hints:
     22 * If the time interval between successive observations is known, `nsteps` can be simply initialized by dividing the time interval by the size of the time step
     23 * At the first call to `U_next_observation` the variable `timenow` can be initialized with the current model time. At the next call a forecast phase has been completed. Thus, the new value of `timenow` follows from the time interval for the previous forecast phase.