Open karlmsmith opened 6 years ago
Comment by steven.c.hankin on 16 Apr 2015 00:53 UTC If we do the same but omit the /nohead we get a little further insight
use coads_climatology
let yval = y[gy=sst]
let y0 = yval[y=0]
list y0
VARIABLE : YVAL[Y=0]
FILENAME : coads_climatology.cdf
FILEPATH : /home/users/tmap/ferret/linux/fer_dsets/data/
LATITUDE : 1S
-1.000
yes? set mode interp
yes? list y0
VARIABLE : YVAL[Y=0]
FILENAME : coads_climatology.cdf
FILEPATH : /home/users/tmap/ferret/linux/fer_dsets/data/
LATITUDE : 1S
-1.000
Note that the LIST command when mode interpolate is active indicates that the latitude is 1S, instead of the interpolated location, 0.0.
The problem seems to be that when a cache hit occurs (FIND_MEM_VAR), it causes Ferret to bypass the STRIP of @ITP
. It is all laid bare by running this script:
set mode diag
use coads_climatology
let yval = y[gy=sst]
let y0 = yval[y=0]
load y0
set mode interp
! see how it finds y0 in cache
list y0
cancel memory/all
list y0
Reported by @AndrewWittenberg on 15 Apr 2015 20:30 UTC
Note how the value didn't update. If we simply redefine the variable (with an identical definition), we get the update:
And then we see a similar issue when canceling the mode:
Presumably this is because Ferret is re-using cached results, without checking whether the mode has changed.
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2272