[ncl-talk] potential vorticity, error of " division by 0"

Kyle Griffin ksgriffin2 at wisc.edu
Tue Jun 16 13:10:37 MDT 2015


First, make sure to include ncl-talk on all of your replies. I was not the
only one helping you with this topics, and there is never a guarantee that
I can keep helping you in the future.

Second, the best way for anyone to analyze the problem will be if you can
provide the script causing the error in a form that we can run ourselves as
well as the data needed to run the script. If the data is large ( >1 MB,
too big to attach to an email for this list), then the data is best
uploaded onto NCL's ftp servers - for information on doing that, see
https://www.ncl.ucar.edu/report_bug.shtml#HowToFTP and let us know the
exact filename. No one can look at the file names on the server, so having
the exact file name is important.


Kyle

----------------------------------------
Kyle S. Griffin
Department of Atmospheric and Oceanic Sciences
University of Wisconsin - Madison
Room 1421
1225 W Dayton St, Madison, WI 53706
Email: ksgriffin2 at wisc.edu

On Tue, Jun 16, 2015 at 4:53 AM, Nafiseh Pegahfar <pegahfar at alumni.ut.ac.ir>
wrote:

> Hi Kyle,
> Thanks for your guide.
> the NCL version is 6.3.0
> my code is below.
> please note that I have extracted PV and S and theta and dthdp codes from
> contributed.ncl and put them in my script and also test their zero value.
> no zero value happened for none of them, but again previous error
> occurred.
>
> ;*************************************************
> ; PV
> ;
> ;
> ;************************************************
> ;load "/usr/share/ncarg/nclscripts/csm/gsn_code.ncl"
> ;load "/usr/share/ncarg/nclscripts/csm/gsn_csm.ncl"
> ;load "/usr/share/ncarg/nclscripts/csm/contributed.ncl"
> load "/usr/share/ncarg/nclscripts/csm/shea_util.ncl"
>
> ;************************************************
>
> ;************************************************
> begin
>
> ;************************************************
> ; add data from  file
> ;**************************
> a=
>
> addfile("/home/pegahfar/inio/haiyan/data/grb2/gfsanl_4_20131103_0000_000.grb2","r")
> ; Open the next file
>
> ;************************************************
> ; read the variable from the files
>
> ;************************************************
>
> ;************************************************
> ; 300
> ;************************************************
> U    = a->UGRD_P0_L100_GLL0(:,::-1,:) ; (time,lev,lat,lon) or (lev,lat,lon)
> V    = a->VGRD_P0_L100_GLL0(:,::-1,:)   ; (time,lev,lat,lon) or
> (lev,lat,lon)
> T    = a->TMP_P0_L100_GLL0(:,::-1,:) ; K
> P    = (a->lv_ISBL0)
> P    = (P )*100
> P @units = "Pa"
> m=dimsizes(P )
> print ("dimsizes(P )="+dimsizes(P ))
>
> L = T &lat_0
> ;"""""""""""""""""""""""""""""""""""""""""""""
> ;s           = -(t/theta)*dthdp
> ;""""""""""""""""""""""""""""""""""""""""""'
> theta_test=0.0
> theta = T *(100000./conform(T ,P ,0))^0.286
> ;print("theta ="+theta )
> theta_zero_test = where(theta.eq.0, theta_test+5, theta_test)
> print("theta_test="+theta_test)
>
> T_test=0
> T_zero_test = where(T.eq.0, T_test+5, T_test)
> print(" T_test="+ T_test)
> ;print("T ="+T )
>
> dthdp_test=0
> dthdp  = center_finite_diff_n (theta ,P ,False,0,0)
> dthdp_zero_test = where(dthdp.eq.0, dthdp_test+5, dthdp_test)
> print("dthdp_test="+dthdp_test)
> ;print("dthdp ="+dthdp )
>
> s_test=0
> s = -(T/theta)*dthdp
> s_zero_test = where(s.eq.0, s_test+5, s_test)
> print("s_test="+s_test)
>
> PV  = pot_vort_isobaric(P  ,U  ,V  ,T  ,L , 1, 0)
> printVarSummary (PV )
> PV_300 = PV  ({3000000},:,:)
> print ("PV_300"+PV_300)
>
>
>
> ;*************************************smothing***********************************************
>
>
> PV_300_smth = smth9_Wrap(PV_300, 0.50,  0.25, True) ; heavy local smoothing
>
> end
>
>
>
> > Hi Nafiseh,  I've had this issue on rare occasions before, but not for
> > some time - the division by zero that I traced down stemmed from the
> > calculation of the static stability of a layer that went to zero or very
> > close to zero, I can't remember the exact details.  Go ahead and let us
> > know if the error is still present in the 6.3.0 version of NCL with the
> > officially-supported version of pot_vort_isobaric. If so, I'll see if the
> > fix that I wrote a while back is applicable here and if Dennis would be
> > willing to implement it in the future. The good news is that the function
> > is in contributed.ncl, which means that we may be able to send you a
> fixed
> > contributed.ncl file and you can have the fix instantly. But this depends
> > on whether the issue is the same, so please let us know your version of
> > NCL and we may ask you to share your data to examine the problem a bit
> > closer.   Kyle  ---------------------------------------- Kyle S. Griffin
> > Department of Atmospheric and Oceanic Sciences University of Wisconsin -
> > Madison Room 1421 1225 W Dayton St, Madison, WI 53706 Email:
> > ksgriffin2 at wisc.edu  On Sat, Jun 13, 2015 at 8:02 AM, Dennis Shea
> wrote:
> > > I am not sure why you would get a 'zero' from the quantity. > > === > >
> > What version of NCL are you using? > > %> ncl -V > > === > Many functions
> > in the shea_util.ncl library are preceded by > > >
> >
> ;------------------------------------------------------------------------------------
> > > ;----------------------- Unsupported: DJS >
> > ----------------------------------- > >
> >
> ;-----------------------------------------------------------------------------------
> > > > This means ... that I won't support them. They are developmental. > >
> > ++++++++++++++++++++++++++++++++++++++++++++++++++ > > The 6.3.0 release
> > (March, 2015) has two  supported and documented > potential vorticity
> > functions. > >
> > http://www.ncl.ucar.edu/current_release.shtml > > [Click on
> > 'pot_vort_isobaric'] > > Can you please download the latest version of
> NCL
> > and use the appropriate > function from that library ? > > Actually, the
> > versions in shea_util.ncl was deleted. The 6.3.0 function is > located in
> > contributed.ncl > > Cheers > > > > > Can you > > > > > > On Sat, Jun 13,
> > 2015 at 3:09 AM, Nafiseh Pegahfar < > pegahfar at alumni.ut.ac.ir> wrote: >
> > >> >> I write a ncl code to calculate PV(potential vorticity) at 300 mb
> > using >> gfs data. >> after running I recievd the error of >>
> > """""""""""""""""""""""""""""""""""""""""""""""""""""""" >> fatal:divide:
> > Division by 0, Can't continue >> fatal:Div: operator failed, can't
> > continue >> fatal:["Execute.c":8575]:Execute: Error occurred at or near
> > line 3892 in >> file /usr/share/ncarg/nclscripts/csm/shea_util.ncl >> >>
> > fatal:["Execute.c":8575]:Execute: Error occurred at or near line 3909 in
> > >> file /usr/share/ncarg/nclscripts/csm/shea_util.ncl >> >>
> > fatal:["Execute.c":8575]:Execute: Error occurred at or near line 133 in
> >>
> > file PVcode_version6_3.ncl >>
> > """""""""""""""""""""""""""""""""""""""""""""""""""""""''' >> >> I
> checked
> > 3892 line in shea_util.ncl it was "con = R/(s*conform(t,p,npr))" >> while
> > s= -(t/theta)*dthdp. I checked "s","t","theta","dthdp" and >>
> > "conform(t,p,npr)". non of them was zero. >> >> please help me what to
> do.
> > >> some of my code is : >> >> U_00   = a->UGRD_P0_L100_GLL0(:,::-1,:) ;
> > (time,lev,lat,lon) or >> (lev,lat,lon) V_00   =
> > a->VGRD_P0_L100_GLL0(:,::-1,:)   ; >> (time,lev,lat,lon) or >>
> > (lev,lat,lon) >> T_00   = a->TMP_P0_L100_GLL0(:,::-1,:) ; K >> P_00   =
> > (a->lv_ISBL0) >> P_00   = (P_00)*100 >> P_00 at units = "Pa" >>
> > m=dimsizes(P_00) >> print ("dimsizes(P_00)="+dimsizes(P_00)) >> >> L =
> > T_00&lat_0 >> >> ;""""""""""""""""""""""""""""""""""""""""""""" >> ;check
> > "conform(T_00,P_00,0)" >> ;""""""""""""""""""""""""""""""""""""""""""' >>
> > conform_00=conform(T_00,P_00,0) >> test=0.0 >> conform_00_zero_test =
> > where(conform_00.eq.0, test+5, test) >> print("test="+test) >> >>
> > ;""""""""""""""""""""""""""""""""""""""""""""" >> ;check  "s=
> > -(t/theta)*dthdp" >> ;""""""""""""""""""""""""""""""""""""""""""' >>
> > theta_test=0.0 >> theta_00= T_00*(100000./conform(T_00,P_00,0))^0.286 >>
> > ;print("theta_00="+theta_00) >> theta00_zero_test = where(theta_00.eq.0,
> > theta_test+5, theta_test) >> print("theta_test="+theta_test) >> >>
> > T_test=0 >> T00_zero_test = where(T_00.eq.0, T_test+5, T_test) >> print("
> > T_test="+ T_test) >> ;print("T_00="+T_00) >> >> dthdp_test=0 >> dthdp_00
> =
> > center_finite_diff_n (theta_00,P_00,False,0,0) >> dthdp_00_zero_test =
> > where(dthdp_00.eq.0, dthdp_test+5, dthdp_test) >>
> > print("dthdp_test="+dthdp_test) >> ;print("dthdp_00="+dthdp_00) >>
> > ;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""' >> >> PV_00
> =
> > pot_vort_isobaric(P_00 ,U_00 ,V_00 ,T_00 ,L , 1, 0) >> printVarSummary
> > (PV_00) >> PV_00_300 = PV_00 ({3000000},:,:) >> print
> > ("PV_00_300"+PV_00_300) >> >> >> ================================= >>
> Best
> > Regards >> Nafiseh Pegahfar >> Assistant Professor >> Iranian National
> > Institute for Oceanography and Atmospheric Science >>
> > (http://www.inio.ac.ir) >> Phone: (0098)21- 66944873-5 Ext. 315 >> Fax:
> > (0098)21- 66944869 >> Email: (pegahfar at ut.ac.ir) >>
> > (pegahfar at inio.ac.ir) >> ================================= >> >> >> >>
> > ================================= >> Best Regards >> Nafiseh Pegahfar >>
> > Assistant Professor >> Iranian National Institute for Oceanography and
> > Atmospheric Science >> (http://www.inio.ac.ir) >> Phone: (0098)21-
> > 66944873-5 Ext. 315 >> Fax: (0098)21- 66944869 >> Email:
> > (pegahfar at ut.ac.ir) >>           (pegahfar at inio.ac.ir) >>
> > ================================= >> >>
> > _______________________________________________ >> 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 > >
>
>
> =================================
> Best Regards
> Nafiseh Pegahfar
> Assistant Professor
> Iranian National Institute for Oceanography and Atmospheric Science
> (http://www.inio.ac.ir)
> Phone: (0098)21- 66944873-5 Ext. 315
> Fax: (0098)21- 66944869
> Email: (pegahfar at ut.ac.ir)
>           (pegahfar at inio.ac.ir)
> =================================
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150616/3abe6cce/attachment.html 


More information about the ncl-talk mailing list