Changes between Version 4 and Version 5 of Implement3DVarAnalysisPDAF3Universal


Ignore:
Timestamp:
May 27, 2025, 1:10:13 PM (5 days ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Implement3DVarAnalysisPDAF3Universal

    v4 v5  
    8787=== `PDAF3_assim_offline_3dvar_all` ===
    8888
    89 This routine is used to perform the analysi step for the offline mode of PDAF.
    90 The interface of the routine is identical with that of `PDAF3_assimilate_3dvar_all`, except that the user-supplied routines `U_distribute_state`, `U_collect_state` and `U_next_observation` are missing.
     89This routine is used to perform the analysis step for the offline mode of PDAF.
     90The interface of the routine is identical with that of `PDAF3_assimilate_3dvar_all`, except that the user-supplied routines `distribute_state_pdaf`, `collect_state` and `next_observation_pdaf` are missing.
    9191
    9292The interface is:
    9393{{{
    94   SUBROUTINE PDAF3_assim_offline_3dvar_all(&
    95                                  U_init_dim_obs_pdafomi, U_obs_op_pdafomi, &
    96                                  U_cvt_ens, U_cvt_adj_ens, U_cvt, U_cvt_adj, &
    97                                  U_obs_op_lin_pdafomi, U_obs_op_adj_pdafomi, &
    98                                  U_init_n_domains_p, U_init_dim_l, U_init_dim_obs_l_pdafomi, &
    99                                  U_prepoststep, outflag)
     94  SUBROUTINE PDAF3_assim_offline_3dvar_all( &
     95                                 init_dim_obs_pdafomi, obs_op_pdafomi, &
     96                                 cvt_ens_pdaf, cvt_adj_ens_pdaf, cvt_pdaf, cvt_adj_pdaf, &
     97                                 obs_op_lin_pdafomi, obs_op_adj_pdafomi, &
     98                                 init_n_domains_p_pdaf, init_dim_l_pdaf, init_dim_obs_l_pdafomi, &
     99                                 prepoststep_pdaf, outflag)
    100100}}}
    101101
     
    104104=== `PDAF3_put_state_3dvar_all` ===
    105105
    106 This 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. The routine `PDAF3_put_state_3dvar_all` allows to port such implementations to the PDAF3 interface with minimal changes.
    108 The interface of the routine is identical with that of `PDAF3_assimilate_3dvar_all`, except that the user-supplied routines `U_distribute_state` and `U_next_observation` are missing.
     106This 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.
     107When 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.
     108The 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.
    109109
    110110The interface is:
    111111{{{
    112   SUBROUTINE PDAF3_put_state_3dvar_all(U_collect_state, &
    113                                  U_init_dim_obs_pdafomi, U_obs_op_pdafomi, &
    114                                  U_cvt_ens, U_cvt_adj_ens, U_cvt, U_cvt_adj, &
    115                                  U_obs_op_lin_pdafomi, U_obs_op_adj_pdafomi, &
    116                                  U_init_n_domains_p, U_init_dim_l, U_init_dim_obs_l_pdafomi, &
    117                                  U_prepoststep, outflag)
     112  SUBROUTINE PDAF3_assimilate_3dvar_all(collect_state_pdaf, &
     113                                 init_dim_obs_pdafomi, obs_op_pdafomi, &
     114                                 cvt_ens_pdaf, cvt_adj_ens_pdaf, cvt_pdaf, cvt_adj_pdaf, &
     115                                 obs_op_lin_pdafomi, obs_op_adj_pdafomi, &
     116                                 init_n_domains_p_pdaf, init_dim_l_pdaf, init_dim_obs_l_pdafomi, &
     117                                 prepoststep_pdaf, outflag)
    118118}}}
    119119
     
    125125Here 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].
    126126
    127 To indicate user-supplied routines we use the prefix `U_`. In the template directory `templates/` as well as in the tutorial implementations in `tutorial/` these routines exist without the prefix, but with the extension `_pdaf.F90`. The user-routines relating to 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.
     127The user-supplied routines we use the prefix `U_`. In the template directory `templates/` as well as in the tutorial implementations in `tutorial/` these routines exist without the prefix, but with the extension `_pdaf.F90`. The user-routines relating to 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.
    128128
    129129In 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.
     
    134134This routine is independent of the filter algorithm used.
    135135
    136 See the page on [ModifyModelforEnsembleIntegration#collect_state_pdafcollect_state_pdaf.F90 modifying the model code for the ensemble integration] for the description of this routine.
     136See the page on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3#collect_state_pdafcollect_state_pdaf.F90 modifying the model code for the ensemble integration] for the description of this routine.
    137137
    138138=== `distribute_state_pdaf` (distribute_state_pdaf.F90) ===
     
    140140This routine is independent of the filter algorithm used.
    141141
    142 See the page on [ModifyModelforEnsembleIntegration#distribute_state_pdafdistribute_state_pdaf.F90 modifying the model code for the ensemble integration] for the description of this routine.
     142See the page on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3#distribute_state_pdafdistribute_state_pdaf.F90 modifying the model code for the ensemble integration] for the description of this routine.
    143143
    144144
     
    330330The routine has already been described for modifying the model for the ensemble integration and for inserting the analysis step.
    331331
    332 See the page on [ModifyModelforEnsembleIntegration#distribute_state_pdafdistribute_state_pdaf.F90 modifying the model code for the ensemble integration] for the description of this routine.
     332See the page on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3#distribute_state_pdafdistribute_state_pdaf.F90 modifying the model code for the ensemble integration] for the description of this routine.
    333333
    334334
     
    337337This routine is independent of the filter algorithm used.
    338338
    339 See the page on [ModifyModelforEnsembleIntegration#distribute_state_pdafdistribute_state_pdaf.F90 modifying the model code for the ensemble integration] for the description of this routine.
     339See the page on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3#distribute_state_pdafdistribute_state_pdaf.F90 modifying the model code for the ensemble integration] for the description of this routine.
    340340
    341341== Execution order of user-supplied routines ==