NOAA-PMEL / Ferret

The Ferret program from NOAA/PMEL
https://ferret.pmel.noaa.gov/Ferret/
The Unlicense
55 stars 20 forks source link

PPLUS error handling isn't consistent with Ferret's #347

Open karlmsmith opened 7 years ago

karlmsmith commented 7 years ago

Reported by @AnsleyManke on 11 Dec 2003 18:31 UTC Here is a syntax error reported by a PPLUS command

yes? use levitus_climatology yes? shade/lev=(-2:35:1) temp[k=2] Syntax error LEV,()(-2:35:1)

But here is a Ferret error

yes? shade temp[k:1,8} **ERROR: command syntax: unpaired quotation marks, grave accent or brackets

And in particular, LAS does not see the PPLUS errors. Note that these PPLUS errors do not necessarily stop execution of the command (in the above example, a plot IS made) so they are not on the same level as those which get an **ERROR message from Ferret, but more like the warnings from Ferret that output the string *** NOTE. What does LAS do with warnings?

In addition, PPLUS has a number of points where there is a STOP in the code, e.g. in taxis0.F IF(ITIME(9:10).NE.'00)STOP ',1' These are cases that are outside the normal operation of commands, or we'd be hearing reports of this happening, but should they be treated in a more modern way?

Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/746

karlmsmith commented 7 years ago

Comment by joe.mclean on 11 Dec 2003 19:23 UTC It turns out that LAS does not trap Ferret error strings containing 'ERROR'.
LAS traps warning strings containing '
NOTE'. Some specific error strings are handled and LAS spits out a transcript of the Ferret session for error messages not handled. In the case of the PPLUS error message above, LAS spit out the session transcript except for the error message -- not sure why.

karlmsmith commented 7 years ago

Comment by jonathan.s.callahan on 11 Dec 2003 19:57 UTC We need to define what is an ERROR, what is a NOTE and whether there are any more categories. As a general rule, anything that causes Ferret to halt execution is an ERROR, should appear on STDERROR and should have the error indicator string prepended. All other messages should appear on STDOUT and have the note indicator string prepended. If there is another category, then it should be identified, given a name, sent to either STDOUT or STDERR and prepended with an appropriate string.

Consistency is the key if Ferret is to interact with other software.

If I had my druthers, I'd go so far as to make ' * NOTE: ' and ' ERROR: ' more consistent with eachother. An example:

yes? define axis/t=1:12/unit=month t_month * NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days ERROR: improper grid or axis definition: error in start,end,delta

karlmsmith commented 7 years ago

Comment by jonathan.s.callahan on 16 May 2005 16:44 UTC Removing Joe Mclean from the CC list after Joe's departure.