Changes between Version 5 and Version 6 of ImplementAnalysisseek


Ignore:
Timestamp:
Sep 15, 2011, 3:26:29 PM (8 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ImplementAnalysisseek

    v5 v6  
    4646}}}
    4747with the following arguments:
    48  * [#U_collect_statecollect_state.F90 U_collect_state]: The name of the user-supplied routine that initializes a state vector from the array holding the ensemble of model states from the model fields. This is basically the inverse operation to `U_distribute_state` used in `PDAF_get_state`
    49  * [#U_init_dim_obsinit_dim_obs.F90 U_init_dim_obs]: The name of the user-supplied routine that provides the size of observation vector
    50  * [#U_obs_opobs_op.F90 U_obs_op]: The name of the user-supplied routine that acts as the observation operator on some state vector
    51  * [#U_init_obsinit_obs.F90 U_init_obs]: The name of the user-supplied routine that initializes the vector of observations
    52  * [#U_prepoststepprepoststep_seek.F90 U_prepoststep]: The name of the pre/poststep routine as in `PDAF_get_state`
    53  * [#U_prodRinvAprodrinva.F90 U_prodRinvA]: The name of the user-supplied routine that computes the product of the inverse of the observation error covariance matrix with some matrix provided to the routine by PDAF. This operation occurs during the analysis step of the SEEK filter.
    54  * [#U_init_obsvarinit_obsvar.F90 U_init_obsvar]: The name of the user-supplied routine that provides a mean observation error variance to PDAF (This routine will only be executed, if an adaptive forgetting factor is used)
     48 * [#U_collect_statecollect_state_pdaf.F90 U_collect_state]: The name of the user-supplied routine that initializes a state vector from the array holding the ensemble of model states from the model fields. This is basically the inverse operation to `U_distribute_state` used in `PDAF_get_state`
     49 * [#U_init_dim_obsinit_dim_obs_pdaf.F90 U_init_dim_obs]: The name of the user-supplied routine that provides the size of observation vector
     50 * [#U_obs_opobs_op_pdaf.F90 U_obs_op]: The name of the user-supplied routine that acts as the observation operator on some state vector
     51 * [#U_init_obsinit_obs_pdaf.F90 U_init_obs]: The name of the user-supplied routine that initializes the vector of observations
     52 * [#U_prepoststepprepoststep_seek_pdaf.F90 U_prepoststep]: The name of the pre/poststep routine as in `PDAF_get_state`
     53 * [#U_prodRinvAprodrinva_pdaf.F90 U_prodRinvA]: The name of the user-supplied routine that computes the product of the inverse of the observation error covariance matrix with some matrix provided to the routine by PDAF. This operation occurs during the analysis step of the SEEK filter.
     54 * [#U_init_obsvarinit_obsvar_pdaf.F90 U_init_obsvar]: The name of the user-supplied routine that provides a mean observation error variance to PDAF (This routine will only be executed, if an adaptive forgetting factor is used)
    5555 * `status`: The integer status flag. It is zero, if `PDAF_put_state_seek` is exited without errors.
    5656
     
    6060Here, all user-supplied routines are described that are required in the call to `PDAF_put_state_seek`. For some of the generic routines, we link to the page on [ModifyModelforEnsembleIntegration modifying the model code for the ensemble integration].
    6161
    62 To indicate user-supplied routines we use the prefix `U_`. In the template directory `templates/` these routines are provided in files with the routine's name without this prefix. In the example implementation in `testsuite/src/dummymodel_1D`, the routines exist without the prefix, but with the extension `_dummy_D.F90`. In the section titles below we provide the name of the template file in parentheses.
     62To indicate user-supplied routines we use the prefix `U_`. In the template directory `templates/` these routines are provided in files with the routine's name without this prefix. In the example implementation in `testsuite/src/dummymodel_1D`, the routines exist without the prefix, but with the extension `_pdaf.F90`. In the section titles below we provide the name of the template file in parentheses.
    6363
    6464In the subroutine interfaces some variables appear with the suffix `_p`. This suffix indicates that the variable is particular to a model sub-domain, if a domain decomposed model is used. Thus, the value(s) in the variable will be different for different model sub-domains.
    6565
    6666
    67 === `U_collect_state` (collect_state.F90) ===
     67=== `U_collect_state` (collect_state_pdaf.F90) ===
    6868
    6969This routine is independent of the filter algorithm used.
    70 See the page [ModifyModelforEnsembleIntegration#U_collect_statecollect_state.F90 modifying the model code for the ensemble integration] for the description of this routine.
    71 
    72 
    73 === `U_init_dim_obs` (init_dim_obs.F90) ===
     70See the page [ModifyModelforEnsembleIntegration#U_collect_statecollect_state_pdaf.F90 modifying the model code for the ensemble integration] for the description of this routine.
     71
     72
     73=== `U_init_dim_obs` (init_dim_obs_pdaf.F90) ===
    7474
    7575This routine is used by all global filter algorithms (SEEK, SEIK, EnKF, ETKF).
     
    8989
    9090
    91 === `U_obs_op` (obs_op.F90) ===
     91=== `U_obs_op` (obs_op_pdaf.F90) ===
    9292
    9393This routine is used by all global filter algorithms (SEEK, SEIK, EnKF, ETKF).
     
    112112
    113113
    114 === `U_init_obs` (init_obs.F90) ===
     114=== `U_init_obs` (init_obs_pdaf.F90) ===
    115115
    116116This routine is used by all global filter algorithms (SEEK, SEIK, EnKF, ETKF).
     
    131131
    132132
    133 === `U_prepoststep` (prepoststep_seek.F90) ===
    134 
    135 The routine has already been described on the [ModifyModelforEnsembleIntegration#U_prepoststepprepoststep_seik.F90 page on modifying the model code for the ensemble integration] for the SEIK filter. For the SEEK filter there are some differences, because of the fact that the covariance matrix is computed from the modes and eigenvalue matrix rather than from an ensemble of model states.
     133=== `U_prepoststep` (prepoststep_seek_pdaf.F90) ===
     134
     135The routine has already been described on the [ModifyModelforEnsembleIntegration#U_prepoststepprepoststep_seik_pdaf.F90 page on modifying the model code for the ensemble integration] for the SEIK filter. For the SEEK filter there are some differences, because of the fact that the covariance matrix is computed from the modes and eigenvalue matrix rather than from an ensemble of model states.
    136136
    137137The interface of the routine is identical for all filters, but sizes can be different. In addition, the particular operations that are performed in the routine can be specific for each filter algorithm.
     
    163163
    164164
    165 === `U_prodRinvA` (prodrinva.F90) ===
     165=== `U_prodRinvA` (prodrinva_pdaf.F90) ===
    166166
    167167This routine is used by all filter algorithms that use the inverse of the observation error covariance matrix (SEEK, SEIK, and ETKF).
     
    193193
    194194Before the analysis step is called the following routine is executed:
    195  1. [#U_collect_statecollect_state.F90 U_collect_state]
     195 1. [#U_collect_statecollect_state_pdaf.F90 U_collect_state]
    196196
    197197The analysis step is executed when the ensemble integration of the forecast is completed. During the analysis step the following routines are executed in the given order:
    198  1. [#U_prepoststepprepoststep_seek.F90 U_prepoststep] (Call to act on the forecast ensemble, called with negative value of the time step)
    199  1. [#U_init_dim_obsinit_dim_obs.F90 U_init_dim_obs]
    200  1. [#U_obs_opobs_op.F90 U_obs_op] (A single call to operate on the ensemble mean state)
    201  1. [#U_init_obsinit_obs.F90 U_init_obs]
    202  1. [#U_obs_opobs_op.F90 U_obs_op] (`dim_eof` calls: one call for each ensemble member)
    203  1. [#U_prodRinvAprodrinva.F90 U_prodRinvA]
    204  1. [#U_prepoststepprepoststep_seek.F90 U_prepoststep] (Call to act on the analysis ensemble, called with (positive) value of the time step)
     198 1. [#U_prepoststepprepoststep_seek_pdaf.F90 U_prepoststep] (Call to act on the forecast ensemble, called with negative value of the time step)
     199 1. [#U_init_dim_obsinit_dim_obs_pdaf.F90 U_init_dim_obs]
     200 1. [#U_obs_opobs_op_pdaf.F90 U_obs_op] (A single call to operate on the ensemble mean state)
     201 1. [#U_init_obsinit_obs_pdaf.F90 U_init_obs]
     202 1. [#U_obs_opobs_op_pdaf.F90 U_obs_op] (`dim_eof` calls: one call for each ensemble member)
     203 1. [#U_prodRinvAprodrinva_pdaf.F90 U_prodRinvA]
     204 1. [#U_prepoststepprepoststep_seek_pdaf.F90 U_prepoststep] (Call to act on the analysis ensemble, called with (positive) value of the time step)