[Thread Prev][Thread Next][Index]

Re: [ferret_users] FERRET v5.81: return=xaxis needs huge memory



Hi Martin,
Thank you for reporting this, and for taking the time to make an example. This is a bug. What is happening is that the variable pvapour has a slightly different grid from the variable tatm.
yes? show grid tatm
GRID GIF1
name axis # pts start end
ETOPO60X LONGITUDE 360mr 20.5E 19.5E(379.5)
ETOPO60Y LATITUDE 180 r 89.5S 89.5N
normal Z
TAX TIME 3000 r 01-JAN-2000 00:00 18-MAR-2008 00:00


yes? show grid pvapour
GRID (G002)
name axis # pts start end
ETOPO60X LONGITUDE 360mr 20.5E 19.5E(379.5)
ETOPO60Y LATITUDE 180 r 89.5S 89.5N
ABSTRACT Z 9999999 r 1 9999999
TAX TIME 3000 r 01-JAN-2000 00:00 18-MAR-2008 00:00

In the code which decodes the string `pvapour,return=xaxis`, Ferret looks to see if the context is known for the variable pvapour, and if not, it loads the variable to get its full context. The abstract Z axis of pvapour is triggering this in your example. Of course, the context isn't needed just to get the name of the x axis of the variable, so we should be able to fix it without too much trouble.

Ansley

Martin Schmidt wrote:

Hi all,
I am confronted with the following:

I am computing specific humidity from dew point temperature.
Trying to cancel the modulo flag of the output data, ferret
complains about missing memory.

To demonstrate the problem, I have written some test
procedure from public files:

use etopo60

define axis/t=0:3000:1/t0=1-jan-2000/unit=days tax
define grid/x=rose[d=1]/y=rose[d=1]/t=tax tg
let tatm = rose + 0*t[gt=tg]

sp rm tatm*
repeat/l=1:3000 save/file=tatm.nc/append tatm
q

Now restart ferret

use tatm.nc
let ahumi = 1
let a1 = 6.1078
let a2 = 17.2693882
let a3 = 0.01
let a4 = 237.29
let pvapour = ahumi*a1*exp(a2*(tatm-a3)/(tatm+a4))
can axis/modulo `pvapour,return=xaxis`
**ERROR: insufficient memory: 194400000 words were requested.

I only wanted to change an axis attribute ....
Surprisingly the following helps:
set region/l=1
can axis/modulo `pvapour,return=xaxis`
can region
Also the following works
let pvapour = 1*exp(2*(tatm-3)/(tatm+4))
yes? can axis/modulo `pvapour,return=xaxis`
!-> can axis/modulo ETOPO60X

Something is wrong here, which I consider worth to be reported.

Best,
Martin Schmidt


[Thread Prev][Thread Next][Index]

Dept of Commerce / NOAA / OAR / PMEL / TMAP

Contact Us | Privacy Policy | Disclaimer | Accessibility Statement