Opened 7 years ago

Closed 6 years ago

#505 closed defect (fixed)

Relax tolerance on signal_amp comparison in ropp_pp

Reported by: Ian Culverwell Owned by: Ian Culverwell
Priority: normal Milestone: 9.1
Component: ropp_pp Version: 8.0
Keywords: Cc:

Description

A helpdesk enquirer (Hui Liu, UCAR) found occasional, spot differences in the signal_amp field produced by ropp_pp/tools/ropp_pp_spectra_tool, which exceed the threshold (0.19073E-05 > 0.10000E-06). Enq 351 refers. These differences are physically negligible ('spotty'), so we should just relax the threshold (eg to 10e-6) at the next release.

He was running with ifort17 on linux. Files attached.

Attachments (4)

ROanalysis_dt_L2_diff.png (11.8 KB ) - added by Ian Culverwell 7 years ago.
ROanalysis_dt_L2.nc (188.2 KB ) - added by Ian Culverwell 7 years ago.
ROanalysis_dt_L2_reference.nc (188.2 KB ) - added by Ian Culverwell 7 years ago.
diff.nc (188.3 KB ) - added by Ian Culverwell 7 years ago.

Download all attachments as: .zip

Change history (9)

by Ian Culverwell, 7 years ago

Attachment: ROanalysis_dt_L2_diff.png added

by Ian Culverwell, 7 years ago

Attachment: ROanalysis_dt_L2.nc added

by Ian Culverwell, 7 years ago

by Ian Culverwell, 7 years ago

Attachment: diff.nc added

comment:1 by Ian Culverwell, 6 years ago

I can't reproduce Hui's problem with ifort-17.0.1, which is the latest version we have. Hui used ifort-17.0.3. We both used -O2 optimisation, but even without optimisation (-O0) I find

************************** SUMMARY OF ROPP_PP TEST RESULTS ***************************
--------------------------------------------------------------------------------------
|                   Test name    |              Description       |    Run? |  PASS? |
--------------------------------------------------------------------------------------
|                  t_pp_invert_1 |     PP invert; default options |     Run |  PASS  |
|                     t_pp_occ_1 |        PP occ; default options |     Run |  PASS  |
|                      t_pp_rs_1 | PP raw sampling; default optio |     Run |  PASS  |
|                    t_pp_abel_1 |          PP Abel/Inv; def opts |     Run |  PASS  |
|                t_pp_spectra_1a |    PP spectra; def opt (L1 dt) |     Run |  PASS  |
|                t_pp_spectra_1b |    PP spectra; def opt (L2 dt) |     Run |  PASS  |
|                t_pp_spectra_1c |    PP spectra; def opt (L1 ep) |     Run |  PASS  |
|                t_pp_spectra_1d |    PP spectra; def opt (L2 ep) |     Run |  PASS  |
|                    t_pp_wopt_1 |         PP WOPT; quick options |     Run |  PASS  |
--------------------------------------------------------------------------------------

The maximum |diff| on the (non-)offending test is 9.536743164062500E-007, which is uncomfortably close to the 1.E-6 threshold. (For L1 dt this is 4.768371582031250E-007 with -O0, 1.192092895507812E-007 with -O2.)

Part of the problem is that these quantities are written as single precision variables in the file, so we are probably looking at differences in the last bit. (Note that the L2:L1 differences reported above are exactly 2:1 or 8:1.)

To avoid wasting spending any more time on this, simply increase the tolerance on the signal amplitude in ropp_io_compare_fields.f90 from 1.0e-6 to 1.0e-5 at r5587.

comment:2 by Ian Culverwell, 6 years ago

Type: enhancementdefect

The ifort17 mini-configure scripts that I wrote as part of this investigation were added to the repository at r5588.

comment:3 by Ian Culverwell, 6 years ago

I've rearranged the ropp_io_compare furniture a bit at r5589. (Also included a call to ropp_pp_preprocess_CHAMP in ropp_pp_spectra_tool.)

comment:4 by Ian Culverwell, 6 years ago

ropp_io_difference.f90 has been tidied up at r5591.

comment:5 by Ian Culverwell, 6 years ago

Resolution: fixed
Status: newclosed

Closing ticket.

Note: See TracTickets for help on using tickets.