Changes between Version 6 and Version 7 of Implement3DVarAnalysisPDAF3Universal


Ignore:
Timestamp:
May 27, 2025, 2:02:56 PM (7 days ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Implement3DVarAnalysisPDAF3Universal

    v6 v7  
    4949== Analysis Routines ==
    5050
    51 The general aspects of the filter (or solver) specific routines `PDAF_assimilate_*` have been described on the page [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3 Modification of the model code for the ensemble integration]. The routine is used in the fully-parallel implementation variant of the data assimilation system. When the 'flexible' implementation variant is used, the routines `PDAF_put_state_*` is used as described further below. Here, we list the full interface of the routine. Subsequently, the user-supplied routines specified in the call is explained.
    52 
     51The general aspects of the filter (or solver) specific routines for the 3D-Var analysis step have been described on the page [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3 Modification of the model code for the ensemble integration]. Here, we list the full interface of the routine. Subsequently, the user-supplied routines specified in the call is explained.
    5352
    5453
     
    9998                                 prepoststep_pdaf, outflag)
    10099}}}
    101 
     100where all arguments, except the last one, are the names of call-back routines. See the description of the arguments for `PDAF3_assimilate_3dvar_all`.
    102101
    103102
     
    105104
    106105This routine exists for backward-compatibility. In implementations that were done before the release of PDAF V3.0, a 'put_state' routine was used for the ''flexible'' parallelization variant and for the offline mode.
    107 When the ''flexible'' implementation variant is chosen for the assimilation system, the routine. This routine allows to port such implementations to the PDAF3 interface with minimal changes.
     106When the ''flexible'' implementation variant is chosen for the assimilation system, this routine allows to port such implementations to the PDAF3 interface with minimal changes.
    108107The interface of the routine is identical with that of `PDAF3_assimilate_3dvar_all`, except that the user-supplied routines `distribute_state_pdaf` and `next_observation_padf` are missing.
    109108
    110109The interface is:
    111110{{{
    112   SUBROUTINE PDAF3_assimilate_3dvar_all(collect_state_pdaf, &
     111  SUBROUTINE PDAF3_put_state_3dvar_all(collect_state_pdaf, &
    113112                                 init_dim_obs_pdafomi, obs_op_pdafomi, &
    114113                                 cvt_ens_pdaf, cvt_adj_ens_pdaf, cvt_pdaf, cvt_adj_pdaf, &
     
    117116                                 prepoststep_pdaf, outflag)
    118117}}}
    119 
     118where all arguments, except the last one, are the names of call-back routines. See the description of the arguments for `PDAF3_assimilate_3dvar_all`.
    120119
    121120
     
    123122== User-supplied routines ==
    124123
    125 Here all user-supplied routines are described that are required in the call to the assimilation routines for hybrid 3D-Var. For some of the generic routines, we link to the page on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3 modifying the model code for the ensemble integration].
     124Here, all user-supplied routines are described that are required in the call to the assimilation routines for hybrid 3D-Var. For some of the generic routines, we link to the page on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3 modifying the model code for the ensemble integration].
    126125
    127126The names of the user-suppled routines routines ending on `_pdaf` relate to operations on the model state, while those ensing on `_pdafomi` handle observations using the structured appraoch guided by [wiki:PDAF_OMI_Overview PDAF-OMI]. The user-routines relating to PDAF-OMI are collected in the file `callback_obs_pdafomi.F90`. In the section titles below we provide the name of the template file in parentheses.
    128127
    129 In 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.
     128In 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. Further, the suffix `_l` indices variables that are specific for a local analysis domain in the LESTKF.
    130129
    131130
     
    238237It has to apply the adjoint control vector transformation to a state vector and return the control vector. Usually this transformation is the multiplication with transposed of the square-root of the background error covariance matrix '''B''' in its parameterized form.
    239238
    240 If the state vector is decomposed in case of parallelization one needs to take care that the application of the trasformation is complete. This usually requries a comminucation with MPI_Allreduce to obtain a global sun.
     239If the state vector is decomposed in case of parallelization one needs to take care that the application of the trasformation is complete. This usually requries a comminucation with MPI_Allreduce to obtain a global sum.
    241240
    242241
     
    356355 1. [#obs_op_lin_pdafomicallback_obs_pdafomi.F90 obs_op_lin_pdafomi]
    357356 1. [#obs_op_adj_pdafomicallback_obs_pdafomi.F90 obs_op_adj_pdafomi]
     357 1. [#cvt_adj_ens_pdafcvt_adj_ens_pdaf.F90 cvt_adj_ens_pdaf]
    358358 1. [#cvt_adj_pdafcvt_adj_pdaf.F90 cvt_adj_pdaf]
    359  1. [#cvt_adj_ens_pdafcvt_adj_ens_pdaf.F90 cvt_adj_ens_pdaf]
    360359
    361360After the iterative optimization the following routines are executes to complte the analysis step:
    362  1. [#cvt_ens_pdafcvt_pdaf.F90 cvt_pdaf] (Call to the parameterized part of the control vector transform to compute the final state vector increment)
     361 1. [#cvt_pdafcvt_pdaf.F90 cvt_pdaf] (Call to the parameterized part of the control vector transform to compute the final state vector increment)
    363362 1. [#cvt_ens_pdafcvt_ens_pdaf.F90 cvt_ens_pdaf] (Call to the eensemble-part of the control vector transform to compute the final state vector increment)
    364363 1. [#prepoststep_pdafprepoststep_ens_pdaf.F90 prepoststep_pdaf] (Call to act on the analysis ensemble, called with (positive) value of the time step)
    365364
    366 The iterative optimization abovve computes an updated ensemble mean state. Subsequently, the ensemble perturbations are updated using the LESTKF or ESTKF. The execution of the routines for these filters is described on the [wiki:ImplementAnalysisPDAF3Universal page on implementing the local filter analysis step] .
     365The iterative optimization above computes an updated ensemble mean state. Subsequently, the ensemble perturbations are updated using the LESTKF or ESTKF. The execution of the routines for these filters is described on the [wiki:ImplementAnalysisPDAF3Universal page on implementing the local filter analysis step] .
    367366
    368367In case of the routine `PDAF3_assimilate_3dvar_all`, the following routines are executed after the analysis step: