<div dir="ltr"><div>Thanks, Yuqiang and Kyle, for your quick responses. You are probably right that it is an issue of RAM. I test deleting the variable [delete(dat)] at the end of each loop. But it seems that the RAM doesn&#39;t respond fast enough to improve the run.</div><div><br></div><div>Ruping</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 12, 2014 at 2:12 PM, Yuqiang Zhang <span dir="ltr">&lt;<a href="mailto:yuqiangzhang.thu@gmail.com" target="_blank">yuqiangzhang.thu@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" vlink="purple" link="blue"><div><p class="MsoNormal"><span style="color:rgb(31,73,125)">Maybe try to delete the variables using “delete” command after each loop. <u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)">Regards,<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)">Yuqiang<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><b><span style="font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;font-size:10pt">From:</span></b><span style="font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;font-size:10pt"> <a href="mailto:ncl-talk-bounces@ucar.edu" target="_blank">ncl-talk-bounces@ucar.edu</a> [mailto:<a href="mailto:ncl-talk-bounces@ucar.edu" target="_blank">ncl-talk-bounces@ucar.edu</a>] <b>On Behalf Of </b>Ruping Mo<br><b>Sent:</b> Friday, September 12, 2014 4:31 PM<br><b>To:</b> ncl-talk<br><b>Subject:</b> [ncl-talk] The slow down when addfile is used in do loop<u></u><u></u></span></p><div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">Hi NCLers,<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I have an archive of large grib files. Each grib file contains a month of multiple daily global variables. I use the following script to extract a small part of one variable. The script, which uses addfile in a large loop, runs very fast for the first few months, then begins to slow down substantially. I let it run for a few years, then terminate the job (Ctrl-Z) and re-run the same script. Surprisingly, the new job runs very fast to the month when the previous job was terminated. I wonder why it behaves this way, and what I can do to avoid the slow down problem.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Have a nice day!<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Ruping<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">The script:<u></u><u></u></p></div><div><p class="MsoNormal">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<u></u><u></u></p></div><div><p class="MsoNormal">begin<u></u><u></u></p></div><div><p class="MsoNormal"> nday = 12784     ; number of days from Jan 1979 to Dec 2013<u></u><u></u></p></div><div><p class="MsoNormal"> temp = new((/nday, 9, 9/), float)<u></u><u></u></p></div><div><p class="MsoNormal">;;;;<u></u><u></u></p></div><div><p class="MsoNormal"> t0 = 0<u></u><u></u></p></div><div><p class="MsoNormal"> do yr = 1979, 2013<u></u><u></u></p></div><div><p class="MsoNormal">   syr = tostring(yr)<u></u><u></u></p></div><div><p class="MsoNormal">   do mo = 1, 12<u></u><u></u></p></div><div><p class="MsoNormal">    smo = tostring(mo)<u></u><u></u></p></div><div><p class="MsoNormal">    print(syr + &quot;-&quot; + smo)<u></u><u></u></p></div><div><p class="MsoNormal">    fname = syr + &quot;/&quot; + syr + &quot;-&quot; + smo + &quot;.grib&quot;<u></u><u></u></p></div><div><p class="MsoNormal">    dat = addfile(fname, &quot;r&quot;)<u></u><u></u></p></div><div><p class="MsoNormal">    mday = getfilevardimsizes(dat, &quot;initial_time0&quot;) - 1<u></u><u></u></p></div><div><p class="MsoNormal">    i1 = i0 + mday<u></u><u></u></p></div><div><p class="MsoNormal">    temp(i0:i1, :, :) = (/ dat-&gt;2T_GDS0_SFC(:, 80:88, 146:154) /)<u></u><u></u></p></div><div><p class="MsoNormal">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2T_GDS0_SFC(mday, 241, 480)<u></u><u></u></p></div><div><p class="MsoNormal">    i0 = i1 + 1<u></u><u></u></p></div><div><p class="MsoNormal">   end do<u></u><u></u></p></div><div><p class="MsoNormal"> end do<u></u><u></u></p></div><div><p class="MsoNormal">end<u></u><u></u></p></div><div><p class="MsoNormal">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<u></u><u></u></p></div></div></div></div></div></div></blockquote></div><br></div>