<html><head><style> body {height: 100%; color:#000000; font-size:10pt; font-family:Arial;}</style></head><body><P>Hi Chales,<br>I took a look at the script you referenced and was similar to others I've seen where the main script and the subscripts are all encased in the same physical file.&nbsp; What I'm trying to&nbsp;accomplish is to have a main script in one directory and a&nbsp;bunch of&nbsp;scripts of comomonly used routines&nbsp;in a separate directory.&nbsp;The idea is to have the main script call one of the common routines, then have the common routine pass some variable data back to the main script for additional processing.&nbsp; <br><br>Below is&nbsp;a simple example with both scripts in the same directory.&nbsp;The problem is the value&nbsp; _val1&nbsp; never gets returned to the main script.&nbsp; I'm using Grads 1.9 on WinXP.<br><br>Any thoughts or ideas would be welcome!<br><br>***********************<br>* Main script<br>***********************<br><br>rc = gsfallow("on")</P>
<P>val = 1</P>
<P>&nbsp;&nbsp;say 'Val = 'val<br>&nbsp; say 'Making Call to Test_Call'</P>
<P>'run test_call.gs 1'</P>
<P>&nbsp; say 'Call Made - Checking for Answer'</P>
<P>&nbsp;&nbsp;say 'New val = '_val1<br><br><br>Here's the called script<br>************************<br>* Seconadry Script<br>************************<br>function main (args)<br>if (args='')<br>&nbsp; say 'No argument provided.&nbsp; Argument must be a value 1-10'<br>&nbsp; return<br>else<br>&nbsp; val = subwrd(args,1)<br>endif</P>
<P>&nbsp;say 'Val = 'val</P>
<P>_val1 = (val + 1)</P>
<P>&nbsp;say 'New Val = '_val1</P>
<P>&nbsp;say 'Passing Variable Back to Main Script'</P>
<P>&nbsp;&nbsp;return(_val1)<br></P>
<DIV><font size=2>Thanks,<br>Mark</font></DIV><br><br>----- Original Message -----<br>From: Charles Seman <CHARLES.SEMAN@NOAA.GOV><br>To: GrADS Users Forum <GRADSUSR@GRADSUSR.ORG><br>Sent: Tue, 20 Apr 2010 21:21:12 +0000 (UTC)<br>Subject: Re: [gradsusr] Pass Data via the 'Return' Expression<br><br>Mark,<br><br>Don't know if you have resolved this yet, but Bob Hart's "plotskew.gs" <br>script has examples of what it appears that you want to do:<br>http://www.iges.org/grads/gadoc/library<br>ftp://grads.iges.org/grads/scripts/plotskew.gs<br><br>Hope this helps,<br>Chuck<br><br>Mark Sponsler wrote:<br>&gt;<br>&gt; I have a script that calls a second script (and passes some arguments <br>&gt; to it). That works fine. I'm trying to get the second script to return <br>&gt; some data back to the first script, but am having difficulty.&nbsp;&nbsp;I use <br>&gt; the 'return' command to have the second script return control back the <br>&gt; first script, but cannot seem to get any variable data to pass with <br>&gt; it. It seems this is possible per the Grads documentation:<br>&gt;<br>&gt;&nbsp;&nbsp;<br>&gt;<br>&gt;&nbsp;&nbsp;<br>&gt;<br>&gt; To return from a function, use the |return| command:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; |return /expression/|<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; The |/expression/| is optional; if not provided, a NULL string<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; will be returned. (A null string is: '') The result of the<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; function is the result of the expression specified on the return<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; command.<br>&gt;<br>&gt;&nbsp;&nbsp;<br>&gt;<br>&gt; In the second script, the last line is:<br>&gt;<br>&gt;&nbsp;&nbsp;<br>&gt;<br>&gt; return val1<br>&gt;<br>&gt;&nbsp;&nbsp;<br>&gt;<br>&gt; Where val1 is a variable string<br>&gt;<br>&gt;&nbsp;&nbsp;<br>&gt;<br>&gt; Just can't seem to get the first script to read the contents of <br>&gt; val1. Could always write the data to a file, but am looking for <br>&gt; something a little more elegant.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;<br>&gt;<br>&gt; Any help would be appreciated,<br>&gt; Mark<br>&gt;<br>&gt; ------------------------------------------------------------------------<br>&gt;<br>&gt; _______________________________________________<br>&gt; gradsusr mailing list<br>&gt; gradsusr@gradsusr.org<br>&gt; http://gradsusr.org/mailman/listinfo/gradsusr<br>&gt;&nbsp;&nbsp; <br><br>-- <br><br>Please note that Charles.Seman@noaa.gov should be considered my NOAA<br>email address, not cjs@gfdl.noaa.gov.<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;Charles.Seman@noaa.gov<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;http://www.gfdl.noaa.gov/~cjs/<br>********************************************************************<br><br>"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."<br><br>_______________________________________________<br>gradsusr mailing list<br>gradsusr@gradsusr.org<br>http://gradsusr.org/mailman/listinfo/gradsusr<br></body></html>