NOAA-PMEL / Ferret

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

incorrect data slice returned for negative longitudes #738

Open karlmsmith opened 6 years ago

karlmsmith commented 6 years ago

Reported by @AndrewWittenberg on 27 Oct 2006 02:16 UTC This one's really screwy. An XY slice plotted erroneously as YT! Not new in v6.0, this bug is present in v5.81 too. Perhaps related to bug 1008? Strangely, changing the region slightly makes the problem go away.

    NOAA/PMEL TMAP
    FERRET v6  
    Linux(g77) 2.4.21-32 - 08/23/06
    26-Oct-06 22:07     

yes? use monthly_navy_winds yes? set region/x=-260:-180 yes? shade uwnd[l=1] ! displays erroneously as YT, and gives a note! NOTE: FERRET is more efficient if regions are fully specified NOTE: X axis limits are unspecified - possibly others, too yes? shade uwnd[l=2] ! YT again, and this time all data are missing!

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

karlmsmith commented 6 years ago

Comment by @AnsleyManke on 27 Oct 2006 15:51 UTC Further tests: Specifying the region in longitude units works fine!

yes? use monthly_navy_winds yes? set region/x=-260:-180 yes? show region default region: X=100E(-260):180E(-180) Y/J is unspecified Z/K is unspecified T/L is unspecified

yes? set reg/x=100e:180e yes? shade uwnd[L=1]

and, the commands as given in the original report work ok with coads_climatology

yes? use monthly_navy_winds yes? list x[gx=uwnd,x=-260:-250] **ERROR: dimensions improperly specified: X[GX=UWND,X=-260:-250] yes? use coads_climatology yes? list x[gx=uwnd,x=-260:-250] VARIABLE : X axis COADSX FILENAME : coads_climatology.cdf FILEPATH : /home/porter/tmap/ferret/linux/fer_dsets/data/ SUBSET : 5 points (LONGITUDE) 101E / -139: -259.0 103E / -138: -257.0 105E / -137: -255.0 107E / -136: -253.0 109E / -135: -251.0

karlmsmith commented 6 years ago

Comment by @AndrewWittenberg on 27 Oct 2006 16:52 UTC Bug 1465 has been marked as a duplicate of this bug.

karlmsmith commented 6 years ago

Comment by @AnsleyManke on 27 Oct 2006 17:24 UTC When translated to the index value, including modulo replications, the longitude -260 for monthly_navy_winds is -111. This gets confused with the internal flag for uninitialized integers, -111, so suddenly the I region seems to be undefined.

Try this to show the effect:

yes? use monthly_navy_winds yes? set region/x=-260-360:-180-360 !-> set reg/x=-620:-540 yes? shade uwnd[l=1] ! AOK

This -111 is computed in the routine isubscr_cx. How to correct for this...

karlmsmith commented 6 years ago

Comment by @AnsleyManke on 27 Oct 2006 18:33 UTC didn't intend to close this bug; I don't yet have a fix for it.

karlmsmith commented 6 years ago

Comment by @AnsleyManke on 17 Nov 2006 23:36 UTC The -111 was used because with some compilers, if variables were declared with indices like var(-999:-999,-999:-999,-999:-999,-999:-999), the executable would blow up when run. It turns out that we can use -999 for the uninitialized_integer flag, at least for our compilers on 32-bit and 64-bit linux. This fixes this particular bug, and is likely to cause fewer problems, though potentially these kinds of things will still show up for fine grids.

karlmsmith commented 6 years ago

Comment by @AndrewWittenberg on 31 May 2007 23:49 UTC Leaving this open, but downgrading the priority and severity. Even with the fix, this issue might reappear as we move to higher resolution.

karlmsmith commented 6 years ago

Modified by @AnsleyManke on 5 Jan 2011 20:03 UTC