Thanks Eric. It worked out perfectly. One remaining problem is : I don&#39;t want to write rain.2 in the file that I am creating.  Because of &#39;d 24*rain.2&#39; it is also written in the output file. Is there any way to suppress rain.2, and write only the intended variable (iwc)?<br>
thanks again. <br><br><div class="gmail_quote">On Thu, Mar 12, 2009 at 3:48 PM, Eric Altshuler <span dir="ltr">&lt;<a href="mailto:ela@cola.iges.org">ela@cola.iges.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
John,<br>
<br>
One problem I immediately see is that in your if statement:<br>
<div class="im"><br>
&#39;define aa=rain.2*24&#39;<br>
if (rainlow &lt;= aa &amp; aa &lt; rainhigh)<br>
<br>
</div>you are trying to compare the script variables rainlow and rainhigh with &#39;aa&#39;, which is a GrADS defined data variable, not a script variable. This will not work. You need to assign a particular single value to the script variable aa. An example might be the following, with the dimension environment set to all dimensions fixed:<br>

<br>
...<br>
...<br>
&#39;set t &#39;t1<br>
...<br>
&#39;set z &#39;z1<br>
...<br>
&#39;set x &#39;x1<br>
&#39;set y &#39;y1<br>
&#39;d 24*rain.2&#39;<br>
aa=subwrd(result,4)<br>
<div class="im">if (rainlow &lt;= aa &amp; aa &lt; rainhigh)<br>
</div>...<br>
...<br>
<br>
where x1, y1, z1 and t1 are the values (assigned to these script variables) you want for the fixed dimensions. You already have a looping structure set up for Z, and I assume you also have one for T, but you will also need to loop over the values of X and Y so that the script variable aa is assigned a single value in each iteration of the loop.<br>

<br>
Best regards,<br>
<br>
Eric L. Altshuler<br>
Assistant Research Scientist<br>
Center for Ocean-Land-Atmosphere Studies<br>
<div class="im">4041 Powder Mill Road, Suite 302<br>
</div>Calverton, MD 20705-3106<br>
USA<br>
<br>
E-mail: <a href="mailto:ela@cola.iges.org">ela@cola.iges.org</a><br>
Phone: (301) 902-1257<br>
Fax: (301) 595-9793<br>
<div class="im"><br>
----- Original Message -----<br>
From: &quot;John Guhin&quot; &lt;<a href="mailto:johnguhin@GMAIL.COM">johnguhin@GMAIL.COM</a>&gt;<br>
To: <a href="mailto:GRADSUSR@LIST.CINECA.IT">GRADSUSR@LIST.CINECA.IT</a><br>
</div><div><div></div><div class="h5">Sent: Thursday, March 12, 2009 12:31:00 PM GMT -05:00 US/Canada Eastern<br>
Subject: Re: if statement in grads<br>
<br>
Thanks Stephen. You are correct for more than one time step. But can we read<br>
a 2D variable at all inside the if statement? Consider the following:<br>
<br>
&#39;open /raid/pray/processed_data/IWC/iwc.ctl&#39;<br>
&#39;open /raid/pray/processed_data/AMSRE/rain-amsre_15jun06-31aug08.ctl&#39;<br>
rainlow=0 ; rainhigh=5;<br>
lon1=0 ; lon2=360<br>
lat1=-30 ; lat2=30<br>
undef=-1e+34<br>
z1=1<br>
while(z1&lt;19)<br>
&#39;set z &#39;z1<br>
&#39;define aa=rain.2*24&#39;<br>
if (rainlow &lt;= aa &amp; aa &lt; rainhigh)<br>
&#39;d aave(iwc,lon=&#39;lon1&#39;,lon=&#39;lon2&#39;,lat=&#39;lat1&#39;,lat=&#39;lat2&#39;)&#39;<br>
else<br>
&#39;d aave(iwc*0+&#39;undef&#39;,lon=&#39;lon1&#39;,lon=&#39;lon2&#39;,lat=&#39;lat1&#39;,lat=&#39;lat2&#39;)&#39;<br>
endif<br>
z1=z1+1<br>
endwhile<br>
<br>
iwc is 3D. rain.2 is actually a 2D variable, so aa is  also 2D. I think<br>
thats where the problem is.  Anybody has faced similar problem?<br>
thanks.<br>
<br>
<br>
<br>
On Thu, Mar 12, 2009 at 11:39 AM, Stephen R McMillan &lt;<br>
<a href="mailto:smcmillan@planalytics.com">smcmillan@planalytics.com</a>&gt; wrote:<br>
<br>
&gt;<br>
&gt; John,<br>
&gt; The if statement you quoted--the one that Jennifer suggested--is valid, as<br>
&gt; is the nested method that Pablo suggested.  However, your unexpected results<br>
&gt; appear to indicate the &quot;if..else&quot; conditions (in particular are not changing<br>
&gt; during the second time loop iteration.  Since your variable &#39;aa&#39; would be<br>
&gt; the same at each timestep, then I suppose &#39;iwc&#39; may be the culprit. Have you<br>
&gt; tried echo-displaying the conditional results at each timestep to confirm<br>
&gt; their values?<br>
&gt; Stephen Mc<br>
&gt;<br>
&gt;<br>
&gt; *John Guhin &lt;<a href="mailto:johnguhin@GMAIL.COM">johnguhin@GMAIL.COM</a>&gt;*<br>
&gt; Sent by: <a href="mailto:GRADSUSR@LIST.CINECA.IT">GRADSUSR@LIST.CINECA.IT</a><br>
&gt;<br>
&gt; 03/11/2009 08:03 PM<br>
&gt; Please respond to<br>
&gt; <a href="mailto:GRADSUSR@LIST.CINECA.IT">GRADSUSR@LIST.CINECA.IT</a><br>
&gt;<br>
&gt; To<br>
&gt; GRADSUSR@LIST.CINECA.ITcc<br>
&gt; Subject<br>
&gt; Re: if statement in grads<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Thanks Stephen.<br>
&gt;  I simplified the script by considering only one time (t). The problem is<br>
&gt; indeed if statement.<br>
&gt; It seems if statement like this  if (rainlow &lt;=aa &amp; aa&lt;rainhigh)<br>
&gt; does not work in grads. Is it true? or there is another way to solve my<br>
&gt; problem?<br>
&gt;<br>
&gt; thanks in advance.<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Mar 11, 2009 at 5:07 PM, Stephen R McMillan &lt;*<br>
</div></div>&gt; <a href="mailto:smcmillan@planalytics.com">smcmillan@planalytics.com</a>* &lt;<a href="mailto:smcmillan@planalytics.com">smcmillan@planalytics.com</a>&gt;&gt;wrote:<br>
<div class="im">&gt; John,<br>
&gt; Check the position of your &quot;t1=1&quot; line.  As it is, it would appear to<br>
&gt; repeat the 20 days once.  Did you intend to put &quot;t1=1&quot; before the outermost<br>
&gt; while loop?<br>
&gt; Stephen Mc<br>
&gt;<br>
&gt;<br>
</div>&gt; *John Guhin &lt;**<a href="mailto:johnguhin@GMAIL.COM">johnguhin@GMAIL.COM</a>* &lt;<a href="mailto:johnguhin@GMAIL.COM">johnguhin@GMAIL.COM</a>&gt;*&gt;*<br>
&gt; Sent by: *<a href="mailto:GRADSUSR@LIST.CINECA.IT">GRADSUSR@LIST.CINECA.IT</a>* &lt;<a href="mailto:GRADSUSR@LIST.CINECA.IT">GRADSUSR@LIST.CINECA.IT</a>&gt;<br>
<div class="im">&gt;<br>
&gt; 03/11/2009 03:48 PM<br>
&gt; Please respond to<br>
</div>&gt; *<a href="mailto:GRADSUSR@LIST.CINECA.IT">GRADSUSR@LIST.CINECA.IT</a>* &lt;<a href="mailto:GRADSUSR@LIST.CINECA.IT">GRADSUSR@LIST.CINECA.IT</a>&gt;<br>
&gt;<br>
&gt;<br>
&gt; To<br>
&gt; *<a href="mailto:GRADSUSR@LIST.CINECA.IT">GRADSUSR@LIST.CINECA.IT</a>* &lt;<a href="mailto:GRADSUSR@LIST.CINECA.IT">GRADSUSR@LIST.CINECA.IT</a>&gt;cc<br>
<div class="im">&gt; Subject<br>
&gt; Re: if statement in grads<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Hi,<br>
&gt;    I tried with<br>
&gt;  if (rainlow &lt;=aa &amp; aa&lt;rainhigh)<br>
&gt;<br>
&gt;  but didn&#39;t work. Am I mising something?<br>
&gt;<br>
&gt; thanks in advance.<br>
&gt;<br>
&gt;<br>
</div>&gt; On Wed, Mar 11, 2009 at 1:28 PM, Jennifer Adams &lt;*<a href="mailto:jma@cola.iges.org">jma@cola.iges.org</a>*&lt;<a href="mailto:jma@cola.iges.org">jma@cola.iges.org</a>&gt;<br>
<div><div></div><div class="h5">&gt; &gt;wrote:<br>
&gt; Try  changing your if statement to:<br>
&gt; if (rainlow &lt;=aa &amp; aa&lt;rainhigh)<br>
&gt; --Jennifer<br>
&gt;<br>
&gt; On Mar 11, 2009, at 1:19 PM, John Guhin wrote:<br>
&gt;<br>
&gt;<br>
&gt; Hi,<br>
&gt;     I am trying to use if statement in a grads script... which doesn&#39;t seem<br>
&gt; to work. I am<br>
&gt; attaching  the gs file. iwc is a 3D variable, and rain is 2D variable<br>
&gt; exactly in the same grids. I am trying to extract iwc when rain is within<br>
&gt; certain range. The script executes without any error, but the output repeats<br>
&gt; itself every 20 days. This means that the &quot; if&quot; statement is not working!!<br>
&gt; Any help would be appreciated.<br>
&gt;<br>
&gt;  &#39;reinit&#39;<br>
&gt; &#39;c&#39;<br>
&gt; &#39;open iwc.ctl&#39;<br>
&gt; &#39;open /rain.ctl&#39;<br>
&gt; &#39;set gxout fwrite&#39;<br>
&gt; &#39;set fwrite iwc_ppt_binned.dat&#39;<br>
&gt;<br>
&gt; lon1=40 ; lon2=180<br>
&gt; lat1=-20 ; lat2=20<br>
&gt; undef=-1e+34<br>
&gt; rainlow=0 ; rainhigh=5;<br>
&gt;<br>
&gt; while(rainhigh&lt;11)<br>
&gt; t1=1<br>
&gt; while(t1&lt;21)<br>
&gt; &#39;set t &#39;t1<br>
&gt; z1=1<br>
&gt; while(z1&lt;19)<br>
&gt; &#39;set z &#39;z1<br>
&gt; &#39;define aa=24*rain.2(z=1)&#39;<br>
&gt; if (rainlow &lt;= aa &lt; rainhigh)<br>
&gt; &#39;d aave(iwc,lon=&#39;lon1&#39;,lon=&#39;lon2&#39;,lat=&#39;lat1&#39;,lat=&#39;lat2&#39;)&#39;<br>
&gt; else<br>
&gt; &#39;d aave(iwc*0+&#39;undef&#39;,lon=&#39;lon1&#39;,lon=&#39;lon2&#39;,lat=&#39;lat1&#39;,lat=&#39;lat2&#39;)&#39;<br>
&gt; endif<br>
&gt; z1=z1+1<br>
&gt; endwhile<br>
&gt; t1=t1+1<br>
&gt; endwhile<br>
&gt; rainlow=rainlow+5<br>
&gt; rainhigh=rainhigh+5<br>
&gt; endwhile<br>
&gt;<br>
&gt; &#39;close 2&#39;<br>
&gt; &#39;close 1&#39;<br>
&gt; &#39;disable fwrite&#39;<br>
&gt;<br>
&gt; --<br>
&gt; John Guhin<br>
&gt; --<br>
&gt; Jennifer M. Adams<br>
&gt; IGES/COLA<br>
&gt; 4041 Powder Mill Road, Suite 302<br>
&gt; Calverton, MD 20705<br>
</div></div>&gt; *<a href="mailto:jma@cola.iges.org">jma@cola.iges.org</a>* &lt;<a href="mailto:jma@cola.iges.org">jma@cola.iges.org</a>&gt;<br>
<div><div></div><div class="h5">&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; John Guhin<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ***************************************************<br>
&gt; The information contained in this e-mail message is intended only for the<br>
&gt; use of the recipient(s) named above and may contain information that is<br>
&gt; privileged, confidential, and/or proprietary.  If you are not the intended<br>
&gt; recipient, you may not review, copy or distribute this message.  If you have<br>
&gt; received this communication in error, please notify the sender immediately<br>
&gt; by e-mail, and delete the original message.<br>
&gt; ***************************************************<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; John Guhin<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ***************************************************<br>
&gt; The information contained in this e-mail message is intended only for the<br>
&gt; use of the recipient(s) named above and may contain information that is<br>
&gt; privileged, confidential, and/or proprietary. If you are not the intended<br>
&gt; recipient, you may not review, copy or distribute this message. If you have<br>
&gt; received this communication in error, please notify the sender immediately<br>
&gt; by e-mail, and delete the original message.<br>
&gt; ***************************************************<br>
&gt;<br>
<br>
<br>
<br>
--<br>
John Guhin<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>John Guhin<br>