[ncl-talk] how can I avoid dividing by zero?

Sri Nandini snandini at marum.de
Wed Aug 22 02:39:14 MDT 2018


Hello 

how can I remove the zero values to avoid dividing by zero the error I got is as the following:

 fatal:divide: Division by 0, Can't continue
 fatal:Div: operator failed, can't continue 

I have tried using   yinv = 1. / where(y.ne.0, y, y at _FillValue) but now it gives me all nan values

Heres the bit of my code

   T41    = f->Z3(:,{850},:,:)

   printVarSummary(T41)    
   T41 at _FillValue = -9.96921e+36  
 
   aveX    = dim_avg_n_Wrap(T41,0)  
   printVarSummary(aveX)                      ; (lat,lon)
   T41 at _FillValue = -9.96921e+36 

   aveX = 1. / where(aveX.ne.0, aveX, aveX at _FillValue) 

aveX1 and aveX2 below are of same type as aveX.
   XLAT = conform ( aveX2 , xlat , 0 ) 
   printVarSummary(XLAT)

   egr = eady_growth_rate(aveX2, aveX1, aveX, XLAT, 0,  1)

Output
===========================
Variable: egr
Type: double
Total Size: 110592 bytes
            13824 values
Number of Dimensions: 2
Dimensions and sizes:	[lat | 96] x [lon | 144]
Coordinates: 
            lat: [ -90..  90]
            lon: [   0..357.5]
Number Of Attributes: 3
  _FillValue :	-9.969209968386869e+36
  long_name :	maximum eady growth rate
  units :	
(0)	maximum eady growth rate : min=nan   max=nan


Any advice is much appreciated


More information about the ncl-talk mailing list