<html dir="ltr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">P {
        MARGIN: 0px
}
</style>
<meta name="GENERATOR" content="MSHTML 8.00.7600.16535">
<style id="owaTempEditStyle"></style><style title="owaParaStyle"><!--P {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
--></style>
</head>
<body ocsi="x">
<div style="FONT-FAMILY: Tahoma; DIRECTION: ltr; COLOR: #000000; FONT-SIZE: 13px">
<div></div>
<div dir="ltr"><font color="#000000" size="2" face="Tahoma">Mark,</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font>&nbsp;</div>
<div dir="ltr"><font size="2" face="tahoma">The Windows builds use the&nbsp;Cygwin<a></a> &quot;UNIX&quot; style of paths. So, if you want to go up one directory and then down into another, use the &quot;..&quot; parent directory. The &quot;.&quot; directory is the current directory.</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font>&nbsp;</div>
<div dir="ltr"><font size="2" face="tahoma">John Huddleston, PhD</font></div>
<div style="DIRECTION: ltr" id="divRpF374583">
<hr tabindex="-1">
<font color="#000000" size="2" face="Tahoma"><b>From:</b> gradsusr-bounces@gradsusr.org [gradsusr-bounces@gradsusr.org] On Behalf Of Mark Sponsler [msponsler@comcast.net]<br>
<b>Sent:</b> Friday, April 23, 2010 9:39 AM<br>
<b>To:</b> GrADS Users Forum<br>
<b>Subject:</b> Re: [gradsusr] Pass Data via the 'Return' Expression<br>
</font><br>
</div>
<div></div>
<div>
<div style="FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: 10pt">
<p>Brian,</p>
<p>Excellent addtional examples.&nbsp; I am using gfsallow right now, and it works fine if the 'b' script is in the same directory as the 'a' script.&nbsp;</p>
<p>But now I'm kinda stuck because I want the b script to be&nbsp;in a different directory.&nbsp;I'm&nbsp;trying to set up&nbsp;a bunch&nbsp;of common scripts in a standalone directory, so they can be accessed from any grads script elswhere on the drive.&nbsp;So pathing is now the issue.</p>
<p>&nbsp;</p>
<p>I'm trying to&nbsp;locate 'script b' using gfspath.</p>
<p>&nbsp;</p>
<p>Say 'script a' is here: c:/grib/a&nbsp;&nbsp;&nbsp;(and executed from that location), &nbsp;and 'script b' (the .gsf script) is here: c:/grib/b</p>
<p>&nbsp;</p>
<p>I can't seem to figure out how to get gfspath to go 'up' one directory, then down into directory b &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
</p>
<p>I tried </p>
<p><font face="Courier New">rc = gsfpath(&quot;./b&quot;) but the scripts hangs on the gfspath command.
</font></p>
<p><font face="Courier New"></font>&nbsp;</p>
<p><font face="Courier New">I'm on a Windows build of Grads.&nbsp;</font></p>
<p><br>
</p>
<div><font size="2">Thanks,<br>
Mark</font></div>
<br>
<br>
----- Original Message -----<br>
From: &quot;Brian Doty&quot; &lt;doty@cola.iges.org&gt;<br>
To: &quot;GrADS Users Forum&quot; &lt;gradsusr@gradsusr.org&gt;<br>
Sent: Thursday, April 22, 2010 7:42:56 PM GMT -08:00 US/Canada Pacific<br>
Subject: Re: [gradsusr] Pass Data via the 'Return' Expression<br>
<br>
The &quot;gsfallow&quot; stuff is usually the better solution, but I will also note that if you have a main script that issues the run command to grads, ie:
<div><br>
</div>
<div><font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span">&quot;run myscript.gs &quot;args</span></font></div>
<div><br>
</div>
<div>and if that script returns something via the <font class="Apple-style-span" size="3" face="'Courier New'">
<span style="FONT-SIZE: 13px" class="Apple-style-span">return</span></font> statement, then that string is available to the first script in the
<font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span">result&nbsp;</span></font>variable.&nbsp;</div>
<div><br>
</div>
<div>Example:</div>
<div><br>
</div>
<div>script a:</div>
<div><font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span"><br>
</span></font></div>
<div><font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span">&quot;run b.gs testing&quot;</span></font></div>
<div><font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span">say &quot;---&gt;&quot;result&quot;&lt;---&quot;</span></font></div>
<div><br>
</div>
<div>script b:</div>
<div><font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span"><br>
</span></font></div>
<div><font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span">function b(args)</span></font></div>
<div><font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span">return(subwrd(args,1))</span></font></div>
<div><br>
</div>
<div>If you run a.gs from within grads, you should see the following line output:</div>
<div><font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span"><br>
</span></font></div>
<div><font class="Apple-style-span" size="3" face="'Courier New'"><span style="FONT-SIZE: 13px" class="Apple-style-span">----&gt;testing&lt;----</span></font></div>
<div><br>
</div>
<div>...Brian</div>
<div><br>
</div>
<div>
<div>
<div>On Apr 21, 2010, at 8:42 PM, Mark Sponsler wrote:</div>
<br>
<blockquote>
<div>Charles,<br>
It works perfectly now.&nbsp; Excellent example you provided. I had previous read the tutorial provided, but never really understood the implications of it all&nbsp;until I saw your example.&nbsp;It makes perfect sense now.&nbsp; Thanks so much for taking the time to help.&nbsp; &nbsp;Would
 have never figured it out on my own. &nbsp;&nbsp;<br>
<br>
<div>Thanks again,<br>
Mark</div>
<br>
<br>
----- Original Message -----<br>
From: Charles Seman&nbsp;<br>
To: GrADS Users Forum&nbsp;<br>
Sent: Wed, 21 Apr 2010 23:47:00 &#43;0000 (UTC)<br>
Subject: Re: [gradsusr] Pass Data via the 'Return' Expression<br>
<br>
Hi Mark,<br>
<br>
Please find attached main.gs (calling script) and add1.gsf (GrADS script&nbsp;<br>
function).<br>
<br>
***********************<br>
* Main script<br>
***********************<br>
<br>
rc = gsfallow(&quot;on&quot;)<br>
<br>
iVal = 1<br>
<br>
&nbsp;&nbsp;say 'iVal = 'iVal<br>
&nbsp;&nbsp;say 'Making Call to GrADS script function &quot;add1&quot;'<br>
<br>
oVal = add1(iVal)<br>
<br>
&nbsp;&nbsp;say 'Call Made - Checking for Answer'<br>
<br>
&nbsp;&nbsp;say 'oVal = 'oVal<br>
<br>
Try using GrADS main script as follows:<br>
<br>
ga-&gt; main.gs<br>
iVal = 1<br>
Making Call to GrADS script function &quot;add1&quot;<br>
input val = 1<br>
new val = 2<br>
Passing Variable Back to Main Script<br>
Call Made - Checking for Answer<br>
oVal = 2<br>
<br>
<br>
in main.gs, a call is made to an external user-defined script function&nbsp;<br>
&quot;add1.gsf&quot; (<a href="http://grads.iges.org/grads/gadoc/gsf.html" target="_blank">http://grads.iges.org/grads/gadoc/gsf.html</a>) and can be&nbsp;<br>
called from *outside* of main.gs because of &quot;rc = gsfallow(&quot;on&quot;)&quot; in&nbsp;<br>
main.gs and because of the suffix &quot;gsf&quot; for &quot;add1.gsf&quot;...<br>
<br>
first, if only the line &quot;rc = gsfallow(&quot;on&quot;)&quot; is commented out (add1.gsf&nbsp;<br>
exists), the result (you can try this):<br>
ga-&gt; main.gs<br>
iVal = 1<br>
Making Call to GrADS script function &quot;add1&quot;<br>
Function not found: add1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;Error occurred on line 12<br>
&nbsp;&nbsp;In file main.gs<br>
<br>
next, if the line &quot;rc = gsfallow(&quot;on&quot;)&quot; is active, but add1.gsf is&nbsp;<br>
renamed to add1.gs (you can try this):<br>
ga-&gt; main.gs<br>
iVal = 1<br>
Making Call to GrADS script function &quot;add1&quot;<br>
Function not found: add1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;Error occurred on line 12<br>
&nbsp;&nbsp;In file main.gs<br>
<br>
Hope this helps,<br>
Chuck<br>
<br>
Mark Sponsler wrote:<br>
&gt;<br>
&gt; Hi Chales,<br>
&gt; I took a look at the script you referenced and was similar to others&nbsp;<br>
&gt; I've seen where the main script and the subscripts are all encased in&nbsp;<br>
&gt; the same physical file.&nbsp;&nbsp;What I'm trying to accomplish is to have a&nbsp;<br>
&gt; main script in one directory and a bunch of scripts of comomonly used&nbsp;<br>
&gt; routines in a separate directory. The idea is to have the main script&nbsp;<br>
&gt; call one of the common routines, then have the common routine pass&nbsp;<br>
&gt; some variable data back to the main script for additional processing.&nbsp;<br>
&gt;<br>
&gt; Below is a simple example with both scripts in the same directory. The&nbsp;<br>
&gt; problem is the value&nbsp;&nbsp;_val1&nbsp;&nbsp;never gets returned to the main script.&nbsp;&nbsp;<br>
&gt; I'm using Grads 1.9 on WinXP.<br>
&gt;<br>
&gt; Any thoughts or ideas would be welcome!<br>
&gt;<br>
&gt; ***********************<br>
&gt; * Main script<br>
&gt; ***********************<br>
&gt;<br>
&gt; rc = gsfallow(&quot;on&quot;)<br>
&gt;<br>
&gt; val = 1<br>
&gt;<br>
&gt;&nbsp;&nbsp; say 'Val = 'val<br>
&gt;&nbsp;&nbsp; say 'Making Call to Test_Call'<br>
&gt;<br>
&gt; 'run test_call.gs 1'<br>
&gt;<br>
&gt;&nbsp;&nbsp; say 'Call Made - Checking for Answer'<br>
&gt;<br>
&gt;&nbsp;&nbsp; say 'New val = '_val1<br>
&gt;<br>
&gt;<br>
&gt; Here's the called script<br>
&gt; ************************<br>
&gt; * Seconadry Script<br>
&gt; ************************<br>
&gt; function main (args)<br>
&gt; if (args='')<br>
&gt;&nbsp;&nbsp; say 'No argument provided.&nbsp;&nbsp;Argument must be a value 1-10'<br>
&gt;&nbsp;&nbsp; return<br>
&gt; else<br>
&gt;&nbsp;&nbsp; val = subwrd(args,1)<br>
&gt; endif<br>
&gt;<br>
&gt;&nbsp;&nbsp;say 'Val = 'val<br>
&gt;<br>
&gt; _val1 = (val &#43; 1)<br>
&gt;<br>
&gt;&nbsp;&nbsp;say 'New Val = '_val1<br>
&gt;<br>
&gt;&nbsp;&nbsp;say 'Passing Variable Back to Main Script'<br>
&gt;<br>
&gt;&nbsp;&nbsp; return(_val1)<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Mark<br>
&gt;<br>
&gt;<br>
&gt; ----- Original Message -----<br>
&gt; From: Charles Seman<br>
&gt; To: GrADS Users Forum<br>
&gt; Sent: Tue, 20 Apr 2010 21:21:12 &#43;0000 (UTC)<br>
&gt; Subject: Re: [gradsusr] Pass Data via the 'Return' Expression<br>
&gt;<br>
&gt; Mark,<br>
&gt;<br>
&gt; Don't know if you have resolved this yet, but Bob Hart's &quot;plotskew.gs&quot;<br>
&gt; script has examples of what it appears that you want to do:<br>
&gt;&nbsp;<a href="http://www.iges.org/grads/gadoc/library" target="_blank">http://www.iges.org/grads/gadoc/library</a><br>
&gt;&nbsp;<a href="about:blank" target="_blank">ftp://grads.iges.org/grads/scripts/plotskew.gs</a><br>
&gt;<br>
&gt; Hope this helps,<br>
&gt; Chuck<br>
&gt;<br>
&gt; Mark Sponsler wrote:<br>
&gt; &gt;<br>
&gt; &gt; I have a script that calls a second script (and passes some arguments<br>
&gt; &gt; to it). That works fine. I'm trying to get the second script to return<br>
&gt; &gt; some data back to the first script, but am having difficulty.&nbsp;&nbsp;I use<br>
&gt; &gt; the 'return' command to have the second script return control back the<br>
&gt; &gt; first script, but cannot seem to get any variable data to pass with<br>
&gt; &gt; it. It seems this is possible per the Grads documentation:<br>
&gt; &gt;<br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt; &gt;<br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt; &gt;<br>
&gt; &gt; To return from a function, use the |return| command:<br>
&gt; &gt;<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; |return /expression/|<br>
&gt; &gt;<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; The |/expression/| is optional; if not provided, a NULL string<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; will be returned. (A null string is: '') The result of the<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; function is the result of the expression specified on the return<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; command.<br>
&gt; &gt;<br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt; &gt;<br>
&gt; &gt; In the second script, the last line is:<br>
&gt; &gt;<br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt; &gt;<br>
&gt; &gt; return val1<br>
&gt; &gt;<br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt; &gt;<br>
&gt; &gt; Where val1 is a variable string<br>
&gt; &gt;<br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt; &gt;<br>
&gt; &gt; Just can't seem to get the first script to read the contents of<br>
&gt; &gt; val1. Could always write the data to a file, but am looking for<br>
&gt; &gt; something a little more elegant.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt; &gt;<br>
&gt; &gt; Any help would be appreciated,<br>
&gt; &gt; Mark<br>
&gt; &gt;<br>
&gt; &gt; ------------------------------------------------------------------------<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; gradsusr mailing list<br>
&gt; &gt;&nbsp;<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a><br>
&gt; &gt;&nbsp;<a href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt;<br>
&gt; --&nbsp;<br>
&gt;<br>
&gt; Please note that&nbsp;<a href="mailto:Charles.Seman@noaa.gov">Charles.Seman@noaa.gov</a>&nbsp;should be considered my NOAA<br>
&gt; email address, not&nbsp;<a href="mailto:cjs@gfdl.noaa.gov">cjs@gfdl.noaa.gov</a>.<br>
&gt;<br>
&gt; ********************************************************************<br>
&gt; Charles Seman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:Charles.Seman@noaa.gov">Charles.Seman@noaa.gov</a><br>
&gt; U.S. Department of Commerce / NOAA / OAR<br>
&gt; Geophysical Fluid Dynamics Laboratory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; voice: (609) 452-6547<br>
&gt; 201 Forrestal Road&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fax: (609) 987-5063<br>
&gt; Princeton, NJ&nbsp;&nbsp;08540-6649&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.gfdl.noaa.gov/~cjs/" target="_blank">http://www.gfdl.noaa.gov/~cjs/</a><br>
&gt; ********************************************************************<br>
&gt;<br>
&gt; &quot;The contents of this message are mine personally and do not reflect any<br>
&gt; official or unofficial position of the United States Federal Government,<br>
&gt; the United States Department of Commerce, or NOAA.&quot;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; gradsusr mailing list<br>
&gt;&nbsp;<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a><br>
&gt;&nbsp;<a href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
&gt; ------------------------------------------------------------------------<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; gradsusr mailing list<br>
&gt;&nbsp;<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a><br>
&gt;&nbsp;<a href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
&gt;&nbsp;&nbsp;&nbsp;<br>
<br>
--&nbsp;<br>
<br>
Please note that&nbsp;<a href="mailto:Charles.Seman@noaa.gov">Charles.Seman@noaa.gov</a>&nbsp;should be considered my NOAA<br>
email address, not&nbsp;<a href="mailto:cjs@gfdl.noaa.gov">cjs@gfdl.noaa.gov</a>.<br>
<br>
********************************************************************<br>
Charles Seman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:Charles.Seman@noaa.gov">Charles.Seman@noaa.gov</a><br>
U.S. Department of Commerce / NOAA / OAR<br>
Geophysical Fluid Dynamics Laboratory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; voice: (609) 452-6547<br>
201 Forrestal Road&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fax: (609) 987-5063<br>
Princeton, NJ&nbsp;&nbsp;08540-6649&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.gfdl.noaa.gov/~cjs/" target="_blank">http://www.gfdl.noaa.gov/~cjs/</a><br>
********************************************************************<br>
<br>
&quot;The contents of this message are mine personally and do not reflect any<br>
official or unofficial position of the United States Federal Government,<br>
the United States Department of Commerce, or NOAA.&quot;<br>
<br>
_______________________________________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a><br>
http://gradsusr.org/mailman/listinfo/gradsusr<br>
</div>
</blockquote>
</div>
<br>
</div>
<br>
_______________________________________________ gradsusr mailing list gradsusr@gradsusr.org http://gradsusr.org/mailman/listinfo/gradsusr
</div>
</div>
</div>
</body>
</html>