[ncl-talk] fatal:["Execute.c":8640]:Execute: Error occurred at or near line 897 in file $NCARG_ROOT/lib/ncarg/nclscripts/csm/crop.ncl

Dennis Shea shea at ucar.edu
Tue Aug 29 08:37:20 MDT 2017


THX for sending the files. I have added Example 2 for


http://www.ncl.ucar.edu/Document/Functions/Crop/refevt_hargreaves_fao56.shtml

----
Note: Given the size of the files (each > 4GB), this calculation takes some
time (about 5 minutes)

radext = radext_fao56(jday, lat2d,
radunit)                                    ; <=== 186 seconds

refevt = refevt_hargreaves_fao56( tmin, tmax, radext, (/0,0,0/) )   ; <===
113 seconds

=============
A tip when testing scripts on large files, it may be best to implement a
'TEST' option:

 TEST   = True
 ...
  if (TEST) then
      tStrt= 0
      tLast= 100
      time = fmin->time(tStrt:tLast) ; small subset
  else
      time = fmin->time                   ; entire file
  end if

...

;---Read daily min & max
  if (TEST) then
      tmin = fmin->tasmin(tStrt:tLast,:,:)
      tmax = fmax->tasmax(tStrt:tLast,:,:)
  else
      tmin = fmin->tasmin
      tmax = fmax->tasmax
  end if

====

This would provide musch faster turn around for debugging.

Good Luck




On Wed, Aug 23, 2017 at 10:30 AM, Dennis Shea <shea at ucar.edu> wrote:

> Guido's response is correct.
>
> Still, a 'trick' when encountering a malloc error is to use a small subset
> of the data
>
> Rather than:
>
>   tasmax = a->tasmax
>
>   tasmin = b->tasmin
>
>   Pr_annual_total  = c->pr
>
>   lon = a->longitude
>
>   lat = a->latitude
>   time = a->time
>
> Use
>   NT = 100                                    ; arbitrary
>
>   tasmax = a->tasmax(0:NT,:,:)
>
>   tasmin  = b->tasmin(0:NT,:,:)
>
>   Pr_annual_total  = c->pr(0:NT,:,:)
>
>   lon = a->longitude
>
>   lat = a->latitude
>
>
> Note: rather than reading the 'time' variable directly
>   time = a->time(0:NT)
> I suggest using the 'time' coordinate associated with the variable
>    time = tasmax&time
>
>
> ====
>
>
> On Wed, Aug 23, 2017 at 5:15 AM, Guido Cioni <guidocioni at gmail.com> wrote:
>
>> You have to increase the maximum memory (ws maximum size) used by ncl to
>> plot. See here (https://www.ncl.ucar.edu/Document/Graphics/hlures.shtml
>> ).
>>
>> Additionally, depending on the machine, you may need to increase the
>> maximum memory available for ncl at execution time (like ulimit in Linux).
>> Cheers
>>
>> Il 23 ago 2017 1:09 PM, "Beáta Szabó-Takács" <szabo.b at czechglobe.cz> ha
>> scritto:
>>
>>> Dear NCL Users,
>>>
>>>
>>>
>>> I would like to calculate Aridity index base on Hargreaves ETo equation.
>>> I use daily maximum and minimum temperature data from 1971 to 2000 and
>>> yearly sum precipitation (30 years). The dimension of latitude is (201x464)
>>> and the day of year is (10957) vector for radext_fao56 function. When I run
>>> the scipt I get the following error message:
>>>
>>> fatal:NclMalloc Failed:[errno=12]
>>>
>>> fatal:New: could not create new array:[errno=12]
>>>
>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 897 in
>>> file $NCARG_ROOT/lib/ncarg/nclscripts/csm/crop.ncl
>>>
>>>
>>>
>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 162 in
>>> file lambert_PET.ncl
>>>
>>>
>>>
>>> ; Main code.
>>>
>>> ;----------------------------------------------------------------------
>>>
>>> begin
>>>
>>> ;************************************************
>>>
>>> ; read in netCDF file
>>>
>>> ;************************************************
>>>
>>>   a = addfile("E-OBS_tasmax.nc","r")
>>>
>>>   b = addfile("E-OBS_tasmin.nc","r")
>>>
>>>   c = addfile("E-OBS_1971-2000_ys.nc","r")
>>>
>>>
>>>
>>>
>>>
>>>   tasmax = a->tasmax
>>>
>>>   tasmin = b->tasmin
>>>
>>>   Pr_annual_total  = c->pr
>>>
>>>   lon = a->longitude
>>>
>>>   lat = a->latitude
>>>
>>>   time = a->time
>>>
>>>   minlat             =  30                ; min lat to mask
>>>
>>>   maxlat             =  75                ; max lat to mask
>>>
>>>   minlon             = -20                ; min lon to mask
>>>
>>>   maxlon             =  40                ; max lon to mask
>>>
>>>
>>>
>>>   nlat = dimsizes(lat)
>>>
>>>   mlon = dimsizes(lon)
>>>
>>>
>>>
>>>   lat_new=conform_dims( (/nlat,mlon/), lat, 0)
>>>
>>>
>>>
>>>   time2 = calendar_decode2(time,-5)
>>>
>>>   doy = day_of_year(time2(:,0),time2(:,1),time2(:,2))
>>>
>>>    print(doy)
>>>
>>>     radext = radext_fao56(doy, lat_new, 0)
>>>
>>>     radext = where(ismissing(radext), 0, radext)
>>>
>>>
>>>
>>>     evtH_0 = refevt_hargreaves_fao56( tmin, tmax, radext, (/0,0,0/) )
>>>
>>>
>>>
>>>    print(evtH_0)
>>>
>>>    opt = True
>>>
>>>    opt at nval_crit = 12
>>>
>>>
>>>
>>>    PET_m = calculate_monthly_values (evtH_0, "sum", 0,opt)
>>>
>>>    print(PET_m)
>>>
>>>
>>>
>>>     PET_annual_total = month_to_annual(PET_m, 0)
>>>
>>> ;    Pr_annual_total = month_to_annual(Pr_m, 0)
>>>
>>>
>>>
>>>       AI = Pr_annual_total/PET_annual_total
>>>
>>>      AI2 = dim_avg_n(AI,0)
>>>
>>>   IM =  new(dimsizes(AI2),typeof(AI2))
>>>
>>>
>>>
>>>    IM = where(AI2 .lt. 0.03,1.0,IM)
>>>
>>>    IM = where(AI2 .ge. 0.03 .and. AI2 .lt. 0.2,2.0,IM)
>>>
>>>    IM = where(AI2 .ge. 0.2 .and. AI2 .lt. 0.5,3.0,IM)
>>>
>>>    IM = where(AI2 .ge. 0.5 .and. AI2 .lt. 0.65,4.0,IM)
>>>
>>>    IM = where(AI2 .ge. 0.65,5.0,IM)
>>>
>>>
>>>
>>> The error refer to the radext_fao56 in my script which is attached as
>>> well. Could someone suggest a solution?
>>>
>>>
>>>
>>> Thank you for your help in advance!
>>>
>>>
>>>
>>> Best regards,
>>>
>>> Beata
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170829/22b24308/attachment.html>


More information about the ncl-talk mailing list