Changes between Version 1 and Version 2 of distribute_state_pdaf


Ignore:
Timestamp:
Jan 21, 2015, 11:47:09 AM (6 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • distribute_state_pdaf

    v1 v2  
    33The page document the user-supplied call-back routine `distribute_state_pdaf`.
    44
    5 The routine `distribute_state_pdaf` (called `U_distribute_state` in the PDAF core routines) is a call-back routine that has to be provided by the user. `distribute_state_pdaf` is called by `PDAF_get_state` and `PDAF_assimilate_X` with 'X' being the name of a filter method.
     5The routine `distribute_state_pdaf` (called `U_distribute_state` in the PDAF core routines) is a call-back routine that has to be provided by the user. `distribute_state_pdaf` is called by `PDAF_get_state` and `PDAF_assimilate_X` with 'X' being the name of a filter method. The routine is called at the beginning of a forecast phase once for each ensemble member and as many times as there are states to be integrated by a model task. The purpose of the routine is to fill the model fields from the state information contained in the provided state vector.
    66
    77The interface is the following:
     8{{{
     9SUBROUTINE distribute_state_pdaf(dim_p, state_p)
     10}}}
     11with
     12 * `dim_p` : `integer, intent(in)`[[BR]] Size of the provided state vector
     13 * `state_p`: `real, intent(inout), dimension(dim_p)`[[BR]] State vector for process-local model sub-domain
     14
     15Notes:
     16 * When the routine is called a state vector `state_p` and its size `dim_p` are provided. As the user has defined how the model fields are stored in the state vector, one can initialize the model fields from this information.
     17 * If the model is not parallelized, `state_p` will contain a full state vector. If the model is parallelized using domain decomposition, `state_p` will contain the part of the state vector that corresponds to the model sub-domain for the calling process.
     18 * The operations performed in `distribute_state_pdaf` and `collect_state_pdaf` are the inverse operations of each other.
     19 * The routine is executed by all processes that belong to model tasks.
     20
     21Some hints:
     22 * If the state vector does not include all model fields, it can be useful to keep a separate array to store those additional fields. This array has to be kept separate from PDAF, but can be defined using a module like `mod_assimilation`.
     23