Opened 17 years ago

Closed 17 years ago

Last modified 16 years ago

#127 closed defect (fixed)

Problem thinning GRAS BAs with v1.1

Reported by: Dave Offiler Owned by: Dave Offiler
Priority: major Milestone: 1.1
Component: ropp_io Version: 1.1
Keywords: thinner Cc:

Description

Following telecon on 8 May, Axel has downloaded ROPP v1.1 from GARF tarballs and installed at EUMETSAT.

Axel reported a problem on 9 May in which the thinned output netCDF file not containing any valid BA values (only missing data), whereas v1.0 was OK. He provided a sample source file, Problems.nc

Change history (4)

comment:1 by Dave Offiler, 17 years ago

Analysis of Axel's Problem.nc file (with ncdump) shows that there were no valid L2 or Lc values, only L1. Further, there are many missing values present for impact_L1 at the start & end of the profile array.

The reported problem was reproduceable in local working code.

Tracing the data through ropp2ropp and called, range check and thinner codes, a typo bug was found in rop_io_rangecheck.f90 in the Level 1b (BA) section which is designed to filter out missing IP values.

    IF ( nidx == 0 ) THEN
      ROdata%Lev1b%Npoints = 0
    ELSE IF ( nidx < ROdata%Lev2b%Npoints ) THEN         <<-- should be Lev1b%Npoints
      ROdata%Lev2b%Npoints                   = nidx
    ...

Since Lev2b%Npoints - for EUM GRAS files - is zero, this test is false and any missing levels are not being removed prior to the thinner.

Making the trivial edit noted allows the test to correctly detect the missing IP values and remove them; the thinner then performs nominally, and the problem seen in the final output file is corrected.

Bug and it's fix noted to Axel and Martin at DMI, although DMi do not see Axel's problem (Later martin confirmed that DMI pre-screen for missing data before calling the BUFR encoder, so while the test may still fail, there are no missing IP values to remove at this point).

comment:2 by Dave Offiler, 17 years ago

Resolution: fixed
Status: newclosed

14 May: Huw found a similar typo bug in the Level 2b section (corrected)

15 May : Martin found a one in Level 1a section (corrected)

Neither of these sections actually impact the data in use at EUM or DMI, so no sample files to formally test this two edits. Given the known results of the original typo correction, and the trivial nature of similar edits in the other sections, the code is considered fixed for all 3 of these bugs. Code scanned to confirm that no other sections are likewise faulty.

Code also included in ropp_io_rangecheck.f90 to reject whole profile if no valid observable data (all SNR and Phase for L1a; all BA for L1b; Ref. for L2a; T,Q,P for L2b; Lev2c and Lev2d already had comparable test in place).

Code recompiled and run though standard ropp_io tests.

Code lodged as [1522] & [1525] (latter fixing Martin's last reported bug)

Axel & Martin informed of required edits to their local version. This rangecheck() fixed version will be referred to as v1.1.1

comment:3 by (none), 16 years ago

Milestone: 1.1

Milestone 1.1 deleted

comment:4 by Huw Lewis, 16 years ago

Milestone: 1.1
Note: See TracTickets for help on using tickets.