Opened 11 years ago
Closed 11 years ago
#350 closed defect (fixed)
eum2bufr stdout/stderr anomalies
Reported by: | Ian Culverwell | Owned by: | Ian Culverwell |
---|---|---|---|
Priority: | normal | Milestone: | 7.1 |
Component: | ropp_io | Version: | 7.0 |
Keywords: | ropp_message | Cc: |
Description
Axel von Engeln (EUM) passed on a problem reported by ROPP user Leonid Butenko:
Hi Ian, Leonid just discovered that the eum2bufr always produces some error output when it shouldn't. We traced the error down to the fact that our eum2ropp was working without an environment variable BUFR_TABLES set. Funny enough it still produced the bufr file, but gave out a warning: --------------------------------------------------------------------- EUMETSAT to BUFR Encoder --------------------------------------------------------------------- INFO (from eum2bufr): Reading EUM data from /tcc1/proj/ro/studies/adhoc/20131202_repro_201101/data/level1b /2011/01/01/GRAS_1B_M02_20110101004532Z_20110101004803Z_R_O_20 131209081738Z_G15_NN.nc INFO (from eum2bufr): Encoding profile 1 : OC_20110101004532_META_G015_EUME WARNING (from ConvertCodes): ROPP-BUFR codes NAMELIST file roppbufrcodes.nl could not be found. Using default look-up tables ECMWF BUFR ENCODING SOFTWARE VERSION - 7.2 1 April 2007. Your path for bufr tables is : /tcc1/home/mettools/linux/12.1/intel/lib//bufrt BUFR TABLES TO BE LOADED B0000000000000012000.TXT,D0000000000000012000.TXT INFO (from eum2bufr): Total of 10466 bytes written to test.bufr INFO (from eum2bufr): Generated 1 BUFR message to test.bufr -------------------------------------------------------------- ----------- The WARNING above seems to also write a blank and a line feed to standard error, this is how Leonid found it. I would argue that this is a bug in ROPP (rather minor one). I am also not sure how this environment lookup works, the ROPP output on the path for bufr tables seems to miss the last few letters (some 80 character issue?). We use the /tcc1/home/mettools/linux/12.1/intel/lib/bufrtables, where this path has the roppbufrcodes.nl file as well. Is that also set during installation, thus it falls back to that path if no BUFR_TABLES is found? I looked at the release notes, user guide and there it seems you need either BUFR_LIBRARY (for MO) or BUFR_TABLES (ECMWF).
I think the problem lies in lines 359-363 of ropp_io/ropp_messages/message.f90:
case(msg_warn) IF (msg_MODE >= NormalMode) THEN write(stderr, '(a)') ' ' write(stdout, '(a)') 'WARNING' // trim(post) // ' ' // trim(xstring) ENDIF
so that a blank space is written to stderr, rather than stdout.
When this is replaced by
case(msg_warn) IF (msg_MODE >= NormalMode) THEN write(stdout, '(a)') ' ' write(stdout, '(a)') 'WARNING' // trim(post) // ' ' // trim(xstring) ENDIF
Leonid's problem disappears - stderr is empty.
Change history (1)
comment:1 by , 11 years ago
Milestone: | 8.0 → 7.1 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
This was included in ROPP7.1, in fact. Changing milestone and closing ticket.