Changes between Version 3 and Version 4 of AuxiliaryRoutines


Ignore:
Timestamp:
May 3, 2013, 8:06:04 PM (11 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AuxiliaryRoutines

    v3 v4  
    44
    55PDAF provide a number of auxiliary routines. They serve to access PDAF-internal data, which is not available through the regular interface of PDAF.
     6
     7== PDAF_interfaces_module.F90 ==
     8
     9This file contains the module `PDAF_interfaces_module`. It provides interface definitions for the routines of PDAF. If you like to use explicit Fortran interfaces, or if you have to use then in case of the smoother, you have to include the following line in the header you the calling routine:
     10
     11{{{
     12  use PDAF_interfaces_module
     13}}}
    614
    715== PDAF-D_get_smootherens.F90 ==
     
    5563 * `PDAF_set_smootherens` is typically called in the initialization phase of PDAF. It was to be called after the basic initialization of PDAF in `PDAF_init`. A possible location is to call `PDAF_set_smootherens` is the ensemble initialization routine `U_init_ens`.
    5664 * The first two indices of `sens_pointer` are identical to those in the ensemble array `ens_p`. Thus, the array contains state vectors in its columns. The second index is the ensemble index. The third index is the lag. Thus, if the value of the third index is fixed one can use the array `sens_pointer` analogous to the ensemble array `ens_p`.
     65
     66
     67== PDAF-D_get_memberid.F90 ==
     68
     69This routine can be called from the model during an ensemble integration. It provides access to the number (id) of the ensemble member that is currently intrated.
     70
     71{{{
     72CALL PDAF_get_memberid(memberid)
     73}}}
     74
     75The only argument is:
     76 * `memberid`: In integer providing on output the id the ensemble member
     77
     78Note:
     79 * Using `PDAF_get_memberid` is obviously only useful if more than one ensemble member is integrated by a model task. If there are as many model tasks as ensemble members, `memberid` is always 1. In this case one can use `task_id` from the module `mod_parallel` to distinguish the ensemble members.
     80
     81
     82== PDAF-D_incremental.F90 ==
     83
     84When incremental updating is used, this routine is called during the forecast phase to add a fraction of the analysis increment to an ensemble member.
     85
     86{{{
     87CALL PDAF_incremental(steps, U_dist_stateinc)
     88}}}
     89
     90The arguments are:
     91 * `steps`: The number of time steps over which the increment should be distributed
     92 * `U_dist_stateinc`: The name of the user supplied call-back function that performs the actual addition of the state vector increment to the individual model fields.
     93
     94
     95== PDAF-D_add_increment.F90 ==
     96
     97When incremental updating is used, the state increment of the analysis step is not directly added to the forecast state. To add the increment to some state vector `PDAF_add_increment` is called:
     98
     99{{{
     100CALL PDAF_add_increment(dim_p, state_p)
     101}}}
     102
     103The arguments are
     104 * `dim_p`: An integer giving the state dimension of `state_p`
     105 * `state_p`: A real array of size `dim_p` holding the on input the state vector and on output the state vector plus increment.
     106
     107Note:
     108 * the routine can be used in the prepoststep routine when the analysis state should be analized.
     109