Changes between Version 1 and Version 2 of PDAF_OMI_Overview_PDAF3
- Timestamp:
- May 27, 2025, 2:39:20 PM (5 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
PDAF_OMI_Overview_PDAF3
v1 v2 1 = PDAF-OMI, the Observation Module Infrastructure =1 = PDAF-OMI, the Observation Module Infrastructure in PDAF3 = 2 2 3 3 {{{ … … 36 36 [[PageOutline(2-3,Contents of this page)]] 37 37 38 PDAF-OMI (Observation Module Infrastructure) provides a structured and modularized approach to implement the observation handling for PDAF. It was introduced with PDAF V1.16 and is now the recommended standard for implementations. However, one can also [wiki:ImplementationofAnalysisStep_noOMI implement the assimilation without using PDAF-OMI], but using the full interface routines requires significantly more programming.38 PDAF-OMI (Observation Module Infrastructure) provides a structured and modularized approach to implement the observation handling for PDAF. Here we describe OMI in the context of the PDAF3 assimilation routines. 39 39 40 PDAF-OMI permits to implement the observation handling with limited number of user-provided routines. In addition, each observation type is encapsulated in a Fortran module (referred to as 'observation module'). With this, the implementations of different observation types cannot interfere which each other. The code strucutre is motivated from object-oriented programming, but we avoid here the abstract level of object-orientation in Fortran. 40 || The documention on PDAF-OMI for PDAF2 is still available: [wiki:PDAF_OMI_Overview PDAF-OMI in PDAF2] || 41 42 However, one can also [wiki:ImplementationofAnalysisStep_noOMI implement the assimilation without using PDAF-OMI], but using the full interface routines requires significantly more programming. 43 44 PDAF-OMI permits to implement the observation handling with a low number of user-provided routines. Each observation type is encapsulated in a Fortran module (referred to as 'observation module'). With this, the implementations of different observation types cannot interfere which each other. The code structure is motivated from object-oriented programming, but we avoid here the abstract level of object-orientation in Fortran. 41 45 42 46 To guarantee that each observation type (like sea surface temperature data from some satellite sensor, or altimetry data) is handled independently from the others one implements with OMI one Fortran module for each observation type. Thus, different developers can implement observation types without interfering with the implementations by others. … … 50 54 - '''init_dim_obs_l''' [[br]] 51 55 Calls a generic routine to initialize local observations 52 For the localized EnKF, instead of `init_dim_obs_l` the following routine is used:53 - '''localize_covar'''[[br]]54 Calls a generic routine to apply covariance localization55 56 Only in the case of '''3D-Var''', two more routines are required: 56 57 - '''obs_op_lin'''[[br]] … … 76 77 Figure 1 shows the call structure for the analysis step with PDAF-OMI. For the analysis step, the core routines of PDAF (green) call different user-provided call-back functions. Some of these routines, like those performing state localization, that are not related to observations (blue). PDAF-OMI is concerned with the routines related to observations (red and purple). 77 78 78 [[Image(//pics/PDAFstructure_PDAF-OMI_PDAF 2.3.png)]]79 [[Image(//pics/PDAFstructure_PDAF-OMI_PDAF3.png)]] 79 80 [[BR]]'''Figure 1:''' Call-structure of PDAF with OMI: (green) PDAF library with core and omi; (blue) call-back routines; (red) OMI call-back routines; (purple) observation-specific modules. If [wiki:PDAFlocal_overview PDAFlocal] is not used, there will be two additional routines `g2l_state` and `l2g_state` relating to localization. 80 81