Changes between Version 4 and Version 5 of Implement3DVarAnalysisPDAF3Universal
- Timestamp:
- May 27, 2025, 1:10:13 PM (5 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Implement3DVarAnalysisPDAF3Universal
v4 v5 87 87 === `PDAF3_assim_offline_3dvar_all` === 88 88 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.89 This routine is used to perform the analysis 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 `distribute_state_pdaf`, `collect_state` and `next_observation_pdaf` are missing. 91 91 92 92 The interface is: 93 93 {{{ 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) 100 100 }}} 101 101 … … 104 104 === `PDAF3_put_state_3dvar_all` === 105 105 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.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. This routine 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 `distribute_state_pdaf` and `next_observation_padf` are missing. 109 109 110 110 The interface is: 111 111 {{{ 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) 118 118 }}} 119 119 … … 125 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]. 126 126 127 T o 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.127 The 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. 128 128 129 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. … … 134 134 This routine is independent of the filter algorithm used. 135 135 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.136 See 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. 137 137 138 138 === `distribute_state_pdaf` (distribute_state_pdaf.F90) === … … 140 140 This routine is independent of the filter algorithm used. 141 141 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.142 See 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. 143 143 144 144 … … 330 330 The routine has already been described for modifying the model for the ensemble integration and for inserting the analysis step. 331 331 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.332 See 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. 333 333 334 334 … … 337 337 This routine is independent of the filter algorithm used. 338 338 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.339 See 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. 340 340 341 341 == Execution order of user-supplied routines ==