Thanks Robert.  Can I ask a further question, I tried, but why I have different output with yours?<br><br>In [65]: def day_length(L,J):<br>   ....:         #D = daylength<br>   ....:     #L = latitude (in degree, north positive and south negative)<br>
   ....:     #J = day of the year<br>   ....: <br>   ....:     P = np.arcsin(0.39795*np.cos(0.2163108 + 2*np.arctan(0.9671396*np.tan(0.00860*(J-186)))))<br>   ....:     x1=np.sin(0.8333*np.pi/180) + np.sin(L*np.pi/180)*np.sin(P) <br>
   ....:     x2=np.cos(L*np.pi/180)*np.cos(P)<br>   ....:     D = 24 - (24/np.pi)*np.arccos(x1/x2)<br>   ....:     return D<br>   ....: <br><br><br>In [69]: import pdb<br><br>In [70]: pdb.runcall(day_length,89.5,180)<br>&gt; &lt;ipython console&gt;(6)day_length()<br>
(Pdb) n<br>&gt; &lt;ipython console&gt;(7)day_length()<br>(Pdb) n<br>&gt; &lt;ipython console&gt;(8)day_length()<br>(Pdb) n<br>&gt; &lt;ipython console&gt;(9)day_length()<br>(Pdb) n<br>&gt; &lt;ipython console&gt;(10)day_length()<br>
(Pdb) n<br>--Return--<br>&gt; &lt;ipython console&gt;(10)day_length()-&gt;nan<br>(Pdb) n<br>Out[70]: nan<br><br>I guess I missed something somewhere?<br><br>thanks et cheers,<br><br>Chao<br><br><div class="gmail_quote">2012/4/11 Robert Kern <span dir="ltr">&lt;<a href="mailto:robert.kern@gmail.com">robert.kern@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 4/11/12 12:32 PM, Chao YUE wrote:<br>
&gt; Dear all,<br>
&gt;<br>
&gt; suppose I have a function defined within ipython interactive session:<br>
&gt;<br>
&gt; In [19]: %psource day_length<br>
&gt; def day_length(L,J):<br>
&gt;      #D = daylength<br>
&gt;      #L = latitude (in degree, north positive and south negative)<br>
&gt;      #J = day of the year<br>
&gt;<br>
&gt;      P = np.arcsin(0.39795*np.cos(0.2163108 +<br>
&gt; 2*np.arctan(0.9671396*np.tan(0.00860*(J-186)))))<br>
&gt;      x1=np.sin(0.8333*np.pi/180) + np.sin(L*np.pi/180)*np.sin(P)<br>
&gt;      x2=np.cos(L*np.pi/180)*np.cos(P)<br>
&gt;      D = 24 - (24/np.pi)*np.arccos(x1/x2)<br>
&gt;      return D<br>
&gt;<br>
&gt; Now I want to see explicitly the process of variables when I call the function with<br>
&gt;<br>
&gt; In [18]: day_length(89.5,180)<br>
&gt; Out[18]: nan<br>
&gt;<br>
&gt; Is there some way to do this?<br>
<br>
</div>Use the Python debugger pdb:<br>
<br>
   <a href="http://docs.python.org/library/pdb" target="_blank">http://docs.python.org/library/pdb</a><br>
<br>
[~]<br>
|1&gt; def day_length(L,J):<br>
..&gt;         #D = daylength<br>
..&gt;         #L = latitude (in degree, north positive and south negative)<br>
..&gt;         #J = day of the year<br>
..&gt;<br>
..&gt;         P = np.arcsin(0.39795*np.cos(0.2163108 +<br>
2*np.arctan(0.9671396*np.tan(0.00860*(J-186)))))<br>
..&gt;         x1=np.sin(0.8333*np.pi/180) + np.sin(L*np.pi/180)*np.sin(P)<br>
..&gt;         x2=np.cos(L*np.pi/180)*np.cos(P)<br>
..&gt;         D = 24 - (24/np.pi)*np.arccos(x1/x2)<br>
..&gt;         return D<br>
..&gt;<br>
<br>
[~]<br>
|2&gt; import pdb<br>
<br>
[~]<br>
|3&gt; pdb.runcall(day_length, 89.5,180)<br>
 &gt; &lt;ipython-input-1-32a5e1a00879&gt;(6)day_length()<br>
-&gt; P = np.arcsin(0.39795*np.cos(0.2163108 +<br>
2*np.arctan(0.9671396*np.tan(0.00860*(J-186)))))<br>
(Pdb) n<br>
 &gt; &lt;ipython-input-1-32a5e1a00879&gt;(7)day_length()<br>
-&gt; x1=np.sin(0.8333*np.pi/180) + np.sin(L*np.pi/180)*np.sin(P)<br>
(Pdb) p P<br>
0.40634292151355766<br>
(Pdb) n<br>
 &gt; &lt;ipython-input-1-32a5e1a00879&gt;(8)day_length()<br>
-&gt; x2=np.cos(L*np.pi/180)*np.cos(P)<br>
(Pdb) p x1<br>
0.40978095301341172<br>
(Pdb) n<br>
 &gt; &lt;ipython-input-1-32a5e1a00879&gt;(9)day_length()<br>
-&gt; D = 24 - (24/np.pi)*np.arccos(x1/x2)<br>
(Pdb) p x2<br>
0.0080159549381427515<br>
(Pdb) n<br>
 &gt; &lt;ipython-input-1-32a5e1a00879&gt;(10)day_length()<br>
-&gt; return D<br>
(Pdb) p D<br>
nan<br>
(Pdb) p np.arccos(x1 / x2)<br>
/Library/Frameworks/Python.framework/Versions/Current/bin/ipython:1:<br>
RuntimeWarning: invalid value encountered in arccos<br>
<br>
#!/Library/Frameworks/Python.framework/Versions/7.1/Resources/Python.app/Contents/MacOS/Python<br>
nan<br>
(Pdb) p x1 / x2<br>
51.12066574420583<br>
(Pdb)<br>
<br>
<br>
x1 / x2 is well out of range for arccos.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Robert Kern<br>
<br>
&quot;I have come to believe that the whole world is an enigma, a harmless enigma<br>
  that is made terrible by our own mad attempt to interpret it as though it had<br>
  an underlying truth.&quot;<br>
   -- Umberto Eco<br>
<br>
_______________________________________________<br>
IPython-User mailing list<br>
<a href="mailto:IPython-User@scipy.org">IPython-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><div>***********************************************************************************</div>
<div>Chao YUE<br>Laboratoire des Sciences du Climat et de l&#39;Environnement (LSCE-IPSL)<br>UMR 1572 CEA-CNRS-UVSQ<br>Batiment 712 - Pe 119<br>91191 GIF Sur YVETTE Cedex</div>
<div>Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16<br></div>

<div>************************************************************************************</div><br>