[ncl-talk] passing args within ncl scripts

Jayant jayantkp2979 at gmail.com
Tue Jul 20 21:03:58 MDT 2021


Thanks Rick,
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.
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????
Best regards,
Jayant

On Tue, Jul 20, 2021 at 11:50 PM Rick Brownrigg <brownrig at ucar.edu> wrote:

> Hi,
>
> 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.
>
> 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.
>
> Rick
>
>
> On Tue, Jul 20, 2021 at 8:26 PM Jayant via ncl-talk <
> ncl-talk at mailman.ucar.edu> wrote:
>
>> Hi,
>> I want to call one ncl script (test_second.ncl) from within another ncl
>> script (test_prime.ncl) using system command (in fact subprocess
>> 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:
>> ;==================================================
>> *test_prime.ncl*
>> begin
>>  ninp=10
>>  inparr=new(ninp,float)
>>  inparr=0.0
>>
>>  do i=0,ninp-1
>>   command="ncl -Q test_second.ncl "+str_get_sq()+"ip="+i+str_get_sq()+"
>> "+str_get_sq()+"tmparr="+inparr(i)+str_get_sq()
>>   system(command)
>>  end do
>> print(inparr)
>> end
>> ;==================================================
>> *test_second.ncl*
>> begin
>> tmparr=ip ; intend to perform some calculation and update
>> end
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at mailman.ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210721/91ec8d2e/attachment-0001.html>


More information about the ncl-talk mailing list