<div dir="ltr"><div>Hi Jayant,</div><div><br></div><div>My apologies if I'm still not clear.  You say "It takes a lot of time to read a variable and generate a 
plot."  Are you trying to read 24 files and generate 24 plots? Or read 
24 files and perform analysis and generate plots from the composite?</div><div><br></div><div>It sounds like the latter -- are you trying to use subprocesses to read 24 files and end up with one array in memory composed from all 24 of them, so that you can perform analysis and/or plots on that array?  Then no -- subprocesses won't do the job and NCL in general does not have a way to perform concurrent reads into a shared memory space. The parent NCL script executing other programs via the subprocess() function has no communication with those programs.  <br></div><div><br></div><div>The "addfile<span style="color:rgb(255,0,0)">s</span>" function is the NCL way of reading multiple files into a common array; it is not concurrent to the best of my knowledge, but it does the job.<br></div><div><br></div><div>Rick<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 20, 2021 at 9:04 PM Jayant <<a href="mailto:jayantkp2979@gmail.com" target="_blank">jayantkp2979@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Thanks Rick,</div><div>I want to use task parallelism. I have hourly files spanning a few months from a high resolution simulation. It takes a lot of time to read a variable and generate a plot. I have come across task parallelism (example 3) and want to modify the example such that I can use 24 processors to read 24 files at a time and save the desired variable in a parent array. And once the reading is complete, I can perform calculations (daily/monthly stats) on the parent array. I hope this helps understand what I intend to do.</div><div>You mentioned a file based approach...and perhaps the example 3 does save individual plots and later combine frames. I wonder if it's good idea in my case????</div><div>Best regards,</div><div>Jayant<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 20, 2021 at 11:50 PM Rick Brownrigg <<a href="mailto:brownrig@ucar.edu" target="_blank">brownrig@ucar.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi,</div><div><br></div><div>If I understand you correctly, you are trying to get the second script to update the array in the first script?  If so, that would not be possible, as the two scripts execute as independent processes, operating in independent memory spaces. They would need some other mechanism to communicate results between each other, perhaps something like a file-based approach. </div><div><br></div><div>Perhaps explain in more detail what you are trying to do and why there are two scripts involved, and others might be able to offer suggestions.<br></div><div><br></div><div>Rick</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 20, 2021 at 8:26 PM Jayant via ncl-talk <<a href="mailto:ncl-talk@mailman.ucar.edu" target="_blank">ncl-talk@mailman.ucar.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi,</div><div>I want to call one ncl script (test_second.ncl) from within another ncl script (test_prime.ncl) using <span style="font-family:monospace">system</span> command (in fact <span style="font-family:monospace">subprocess</span> command). In doing so, I want to update an array (defined in test_prime.ncl) in the second call. I am getting zeros (unchanged!!). How to proceed? Is there something like global variables that can be defined? Below are the working example scripts:</div><div>;==================================================</div><div><b>test_prime.ncl</b></div><div><span style="font-family:monospace">begin<br> ninp=10<br> <span style="color:rgb(255,0,0)">inparr</span>=new(ninp,float)<br> inparr=0.0<br><br> do i=0,ninp-1<br>  command="ncl -Q test_second.ncl "+str_get_sq()+"ip="+i+str_get_sq()+" "+str_get_sq()+"tmparr="+<span style="color:rgb(255,0,0)">inparr(i)</span>+str_get_sq()<br>  system(command)<br> end do<br>print(<span style="color:rgb(255,0,0)">inparr</span>)<br>end</span></div><div>;==================================================<br></div><div><b>test_second.ncl</b></div><div><span style="font-family:monospace">begin<br></span><div style="margin-left:40px"><span style="font-family:monospace">tmparr=ip ; intend to perform some calculation and update<br></span></div><span style="font-family:monospace">end</span></div></div>
_______________________________________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@mailman.ucar.edu" target="_blank">ncl-talk@mailman.ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="https://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">https://mailman.ucar.edu/mailman/listinfo/ncl-talk</a></blockquote></div>
</blockquote></div>
</blockquote></div>