Changes between Initial Version and Version 1 of OMI_error_checking_PDAF23


Ignore:
Timestamp:
Jun 3, 2025, 12:57:23 PM (7 weeks ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OMI_error_checking_PDAF23

    v1 v1  
     1= Checking Error Status of PDAF-OMI =
     2
     3{{{
     4#!html
     5<div class="wiki-toc">
     6<h4>PDAF-OMI Guide</h4>
     7<ol><li><a href="PDAF_OMI_Overview">Overview</a></li>
     8<li><a href="OMI_Callback_obs_pdafomi">callback_obs_pdafomi.F90</a></li>
     9<li><a href="OMI_observation_modules">Observation Modules</a></li>
     10<li><a href="OMI_observation_operators">Observation Operators</a></li>
     11<li>Checking error status</li>
     12<li><a href="OMI_debugging">Debugging functionality</a></li>
     13<li><a href="OMI_ImplementationofAnalysisStep">Implementing the analysis step with OMI</a></li>
     14<ol>
     15<li> <a href="ImplementFilterAnalysisOverview"> General overview for ensemble filters</a></li>
     16<ol>
     17<li><a href="ImplementAnalysisGlobal">Implementation for Global Filters</a></li>
     18<li><a href="ImplementAnalysisLocal">Implementation for Local Filters</a></li>
     19<li><a href="ImplementAnalysislenkfOmi">Implementation for LEnKF</a></li>
     20</ol>
     21<li> <a href="Implement3DVarAnalysisOverview"> General overview for 3D-Var methods</a></li>
     22<ol>
     23<li><a href="ImplementAnalysis_3DVar">Implementation for 3D-Var</a></li>
     24<li><a href="ImplementAnalysis_3DEnVar">Implementation for 3D Ensemble Var</a></li>
     25<li><a href="ImplementAnalysis_Hyb3DVar">Implementation for Hybrid 3D-Var</a></li>
     26</ol>
     27</ol>
     28<li><a href="OMI_nondiagonal_observation_error_covariance_matrices">Using nondiagonal R-matrices</a></li>
     29<li><a href="Porting_to_OMI">Porting an existing implemention to OMI</a></li>
     30<li><a href="PDAFomi_additional_functionality">Additional OMI Functionality</a></li>
     31</ol>
     32</div>
     33}}}
     34PDAF-OMI performs several consistency checks. If they fail, PDAF-OMI will print an error message, but the program is not stopped. Starting from PDAF V2.2 there OMI has an error status flag that can be checked from the user code. If an error occured, one can stop the program on the user side.
     35
     36The error flag can be checked by calling the routine `PDAFomi_check_error`, which was introduced with PDAF version 2.2. The routine is documented below. It returns the value of the PDAF-OMI error flag. Since PDAF-OMI executes internal routines in which errors could occur due to an inconsistent configuration of the observations, a direct returning an error flag as a subroutine argument is not always possible. For this reasion there is this separate routine to check for the error flag.
     37
     38A useful place to insert this routine for error-checking are the routines in callback_obs_pdafomi.F90.
     39
     40The interface is:
     41{{{
     42  SUBROUTINE PDAFomi_check_error(ierror)
     43
     44    INTEGER, INTENT(in) :: ierror          ! Value of PDAF-OMI error flag
     45                                             ! (0): no error
     46                                             ! (>0): an error occured - check screen outputs
     47}}}
     48
     49'''Notes: '''
     50 * The routine is provided through the module 'PDAFomi'. Thus one has to use-include the routine by
     51{{{
     52  USE PDAFomi, only: PDAFomi_check_error
     53}}}
     54 * The errors that are checked by PDAF-OMI relate to the configuration of the obserations, e.g. it is checked whether some dimensions are consistent.
     55 * If an error occurred PDAF-OMI also prints an error message, but it does not stop the program.