<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">with regard to accessing the time. <div class=""><br class=""></div><div class=""><div class=""><br class=""></div><div class="">initial_time = cd_inv_string( slp@initial_time, "%N/%D/%Y (%H:%M)”)</div><div class="">print(cd_calendar(initial_time, 0)) ;; make sure nothing went wrong. </div></div><div class=""><br class=""></div><div class="">forecast_time = initial_time + slp@forecast_time ;; assumes units are hours for both variables and that forecast_time is numeric not string</div><div class="">forecast_time@units = initial_time@units</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><a href="http://www.ncl.ucar.edu/Document/Functions/User_contributed/cd_inv_string.shtml" class="">http://www.ncl.ucar.edu/Document/Functions/User_contributed/cd_inv_string.shtml</a></div><div class="">n.b. cd_inv_string is 6.4.0+ and needs to be loaded at the top of the script. </div><div class=""><br class=""></div><div class="">I can’t access bitbucket on the network I’m on at the moment but I think this was my latest version of the function before it was adopted by ncl. Using 6.4.0 would be recommended though. </div><div class=""><pre style="background-color: rgb(255, 255, 255);" class=""><a href="https://bitbucket.org/a1brammer/ncl_functions/raw/78dea35d95946425e9054cdc9286ae3db88d9585/cd_inv_string.ncl" class="">https://bitbucket.org/a1brammer/ncl_functions/raw/78dea35d95946425e9054cdc9286ae3db88d9585/cd_inv_string.ncl</a></pre><div class=""><br class=""></div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 19, 2017, at 11:02 AM, Barry Lynn <<a href="mailto:barry.h.lynn@gmail.com" class="">barry.h.lynn@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Hi Mary:<div class=""><br class=""></div><div class="">Thank you for the pointers:</div><div class=""><br class=""></div><div class="">I assign strings in both res1_list and res2_list. The first prints the variable type at the top of the map, while the latter does not.</div><div class=""><br class=""></div><div class="">in res1_list</div><div class=""><p class="gmail-p1"><span class="gmail-s1"><span class="gmail-Apple-converted-space"> </span>res@gsnLeftString<span class="Apple-converted-space"> </span><span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>= "GEFS Temp (C), MSLP (mb)"</span></p><p class="gmail-p1"><span class="gmail-s1"><span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>res@gsnRightString<span class="Apple-converted-space"> </span><span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>= ""</span></p><p class="gmail-p1"><span class="gmail-s1"><br class=""></span></p><p class="gmail-p1">in res2_list, it does not.</p><p class="gmail-p1"><span class="gmail-s1">res@gsnLeftString<span class="Apple-converted-space"> </span><span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>= "GEFS Hum (%), SLP (mb)"</span></p><div class=""><br class="webkit-block-placeholder"></div><p class="gmail-p1"><span class="gmail-s1"><span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>res@gsnRightString<span class="Apple-converted-space"> </span><span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>= ""</span></p><p class="gmail-p1">even though I copy: <span style="font-variant-ligatures: no-common-ligatures; font-family: 'Courier New'; font-size: 14px;" class="">copy_VarCoords(rh,rh_ave)</span></p><p class="gmail-p1">So, this is a bit of a mystery.</p><p class="gmail-p1">Getting back to my time question:</p><p class="gmail-p1">I think I can do it by reading the initial time from any of the initial variables, and then adding the forecast time.</p><p class="gmail-p1">However, I need some help on how to read the variable information </p><p class="gmail-p1"><span class="gmail-s1"><span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>forecast_time :<span class="Apple-converted-space"> </span><span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>12</span></p><div class=""><br class="webkit-block-placeholder"></div><p class="gmail-p1"><span class="gmail-s1"><span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>initial_time :<span class="gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>07/19/2017 (00:00)</span></p><p class="gmail-p1"><span class="gmail-s1">from printVarSummary(slp). </span></p><p class="gmail-p1"><span class="gmail-s1"><br class=""></span></p><p class="gmail-p1"><span class="gmail-s1">I need the string initial_time and forecast_time. <i class="">I am not sure how to access these variables within the printVarSummary.</i></span></p><p class="gmail-p1">Thanks,</p><p class="gmail-p1">P.S. If we solve this problem, I "promise" to create a function!</p><p class="gmail-p1"><span class="gmail-s1"><br class=""></span></p><p class="gmail-p1"><span class="gmail-s1"><br class=""></span></p><p class="gmail-p1"><span class="gmail-s1"><br class=""></span></p><p class="gmail-p1"><span class="gmail-s1"><br class=""></span></p><p class="gmail-p1"><br class=""></p><p class="gmail-p1"><br class=""></p><p class="gmail-p1"><br class=""></p></div></div><div class="gmail_extra" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=""><div class="gmail_quote">On Wed, Jul 19, 2017 at 5:43 PM, Mary Haley<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:haley@ucar.edu" target="_blank" class="">haley@ucar.edu</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class="gmail_default" style="font-size: small;">Hi Barry,</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">Good work on the script!</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">If you don't get long_name and units subtitles on your plot, it's likely because your variable doesn't have any metadata attached to it.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">You should do a printVarSummary of the variable, which I assume is "rh_ave". This will tell you if you have any metadata. </div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">If the metadata is not there, then you need to look at the variables being used to do the calculation. I do see that you have:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"> rh_ave = rh</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">so you would need to check if "rh" has metadata, because if it does, it should have been copied to "rh_ave".</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">Calculations cause metadata to *not* be copied to the variable on the left of the "=", but they won't remove any metadata that already exists.</div><div class="gmail_default" style="font-size: small;"><br class=""></div>I can't answer your question about the times, because I don't know what your gefs_time.file<div class="gmail_default" style="font-size: small; display: inline;"><span class="Apple-converted-space"> </span>ASCII file looks like, but I don't see any harm in what you're doing if it works. Maybe Bill can weigh in about how to calculate forecast time off a WRF file.</div><div class=""><div class="gmail_default" style="font-size: small; display: inline;"></div></div><div class=""><div class="gmail_default" style="font-size: small;">However, I think you can turn all the code that is used to calculate the new time array into a function, and move the function call to outside the do loop.</div><span class="HOEnZb"><font color="#888888" class=""><br class=""><div class="gmail_default" style="font-size: small;">--Mary</div><div class="gmail_default" style="font-size: small;"><br class=""></div></font></span></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, Jul 19, 2017 at 7:39 AM, Barry Lynn<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:barry.h.lynn@gmail.com" target="_blank" class="">barry.h.lynn@gmail.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class="">Hello:<div class=""><br class=""></div><div class="">My code still runs out of memory, but not nearly as fast. This is helpful by itself.</div><div class=""><br class=""></div><div class="">I have included two version of the code for users who desire to make GEFS mean map plots. You have to create GEFS/GEFS_XX directories where XX is the GEFS member.</div><div class=""><br class=""></div><div class="">1) Plotting sea level values of mean GEFS temperatures, humidity, winds, and sea-level pressure.</div><div class=""><br class=""></div><div class="">2) 700 mb mean GEFS temperatures, humidity, winds, and height.</div><div class=""><br class=""></div><div class="">I have modified the code sent by Mary to skip over missing files. This step goes way back to a previous ncl-talk (thanks to Guido who gave a suggestion how to skip over missing files). Without it, the code can fail if a file is missing.</div><div class=""><br class=""></div><div class="">I am not sure why the second map does not show a variable title, like the first. I haven't had a chance to check timings, yet.</div><div class=""><br class=""></div><div class="">I don't see an easy way to take the initial time in the forecast variable "summary," include the forecast time in hours, and get the real time. So, I still calculate times externally. I have included "variable.file" in case someone has a suggestion. We would need to grab the actual time, and then find the new time by adding the number of hours.</div><span class="m_5249870887675939839HOEnZb"><font color="#888888" class=""><div class=""><br class=""></div><div class="">Barry</div></font></span></div><div class="m_5249870887675939839HOEnZb"><div class="m_5249870887675939839h5"><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Jul 18, 2017 at 6:28 PM, Mary Haley<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:haley@ucar.edu" target="_blank" class="">haley@ucar.edu</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class="gmail_default" style="font-size: small;">Hi Barry,</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">We could provide you with a profiling version of NCL, in which you run your script like normal, but then ncl produces a supplemental file with information about how long certain code segments are taking. It breaks it down by percentage of time spent in various sections.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">This profiling information is a bit clunky because you have to run a script on it and then view it from a browser, but these extra steps may be worth it in order to find out where the code is slow.<br class=""></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"><div class="gmail_default">To see a sample of how the profiler works, go to:</div><div class="gmail_default"><br class=""></div></div><div class="gmail_default"><a href="http://www.ncl.ucar.edu/Document/Tools/Profiler/multiple_plots/" target="_blank" class="">http://www.ncl.ucar.edu/Docume<wbr class="">nt/Tools/Profiler/multiple_plo<wbr class="">ts/<br class=""></a></div><div class="gmail_default"><br class=""></div>and click on any one of the *.xml (the "<a href="http://www.ncl.ucar.edu/Document/Tools/Profiler/multiple_plots/multiple_plots_ncl__multiple_plots.xml" target="_blank" class="">multiple_plots_ncl__multiple_<wbr class="">plots.xml</a>" is the main one and a good place to start)<div class="gmail_default" style="font-size: small; display: inline;">. Look for lines that are colored </div><div class="gmail_default" style="font-size: small; display: inline;">in red, as these indicate where more time is being spent.</div><div class=""><div class="gmail_default" style="font-size: small; display: inline;"></div><div class=""><div class="gmail_default" style="font-size: small;">You can also use "get_cpu_time()" to track the timings yourself. For example, if you want to time how long it takes to create each set of panel plots, then you would have code that looks like this:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>start_time = get_cpu_time()</font></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>plot(0) = gsn_csm_contour_map(wks,t_ave,<wbr class="">res1)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>plot(1) = gsn_csm_contour_map(wks,rh_ave<wbr class="">,res2)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>plotB = gsn_csm_vector(wks,u_ave_new(:<wbr class="">:4,::4), \</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>v_ave_new(::4,::4),vecres)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>plotD = gsn_csm_contour(wks,z_ave_new,<wbr class="">res3)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>overlay(plot(0),plotB)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>overlay(plot(1),plotD)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>gsn_panel(wks,plot,(/2,1/),res<wbr class="">P) ; now draw as one plot</font></div></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>end_time = get_cpu_time()</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print("Elapsed time for plotting = " + (end_time-start_time)</font></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">If you plan to do a lot of these timings, then I recommend a function. :-)</div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""><br class=""></font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class="">procedure print_elapsed_time(stime,etime<wbr class="">,title)</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class="">begin</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print("</font><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">===<wbr class="">==</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====")</span></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> print("Elapsed time for " + title + ": " + (etime-stime))</font></div><div class="gmail_default" style="font-size: small;"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print("</font><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">===<wbr class="">==</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====</span><span style="font-family: monospace, monospace;" class="">=====")</span></div></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class="">end</font></div><div class="gmail_default" style="font-size: small;"><span style="font-family: monospace, monospace;" class=""><br class=""></span></div><div class="gmail_default" style="font-size: small;">Then your code would be:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>start_plot_time = get_cpu_time()</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>plot(0) = gsn_csm_contour_map(wks,t_ave,<wbr class="">res1)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>plot(1) = gsn_csm_contour_map(wks,rh_ave<wbr class="">,res2)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>plotB = gsn_csm_vector(wks,u_ave_new(:<wbr class="">:4,::4), \</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>v_ave_new(::4,::4),vecres)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>plotD = gsn_csm_contour(wks,z_ave_new,<wbr class="">res3)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>overlay(plot(0),plotB)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>overlay(plot(1),plotD)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>gsn_panel(wks,plot,(/2,1/),res<wbr class="">P) ; now draw as one plot</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>end_plot_time = get_cpu_time()</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print_elapsed time(start_plot_time,end_plot_<wbr class="">time,"Plotting")</font></div><div class="gmail_default"><br class=""></div><div class="gmail_default">Note that I changed the name from "start_time/end_time to start_plot_time/end_plot_time. This is in case you do a bunch of these, then you can print all the timings at the end, and it also helps keep track of what timings these are associated with.</div><div class="gmail_default"><br class=""></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>start_read_time = get_cpu_time()</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>.... Code that calls addfile and reads data</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>end_read_time = get_cpu_time()</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>...</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>start_ave_time = get_cpu_time()</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>.... code that calls average_subset function a bunch of times</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>end_ave_time = get_cpu_time()</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>...</font></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>start_plot_time = get_cpu_time()</font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>,,, code that creates and draws plots ...</font></div><div class=""><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>end_plot_time = get_cpu_time()</font></div></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print_elapsed time(start_read_time,end_read_<wbr class="">time,"Reading data")</font></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print_elapsed time(start_ave_time,end_ave_ti<wbr class="">me,"Averages")</font></div><div class=""></div></div><div class=""><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print_elapsed time(start_plot_time,end_plot_<wbr class="">time,"Plotting")</font></div></div><div class=""><br class=""></div></div><div class="gmail_default">Of course, you don't have to put all the elapsed timing prints at the end. You can print them out right when the code is done, so you immediately have the information. It just depends on what you are interested in.</div></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">As a side, and Dave or Rick may want to correct me on my understanding on this, but I think one thing that can make your code slow is that you have a lot of print statements. Every time you do something like this:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"> print("x = " + x)</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">versus this:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">print(x)</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">I believe a string gets stored somewhere in memory. If you have a lot of these, then NCL will get noticeably slower and slower, especially if you are doing this inside do loops with a lot of iterations. I don't know if you really have enough print statements for this to be a problem, but it's worth making a mental note of this issue.</div><span class="m_5249870887675939839m_-3214439972971981513HOEnZb"><font color="#888888" class=""><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">--Mary</div><div class="gmail_default" style="font-size: small;"><br class=""></div></font></span></div></div></div><div class="m_5249870887675939839m_-3214439972971981513HOEnZb"><div class="m_5249870887675939839m_-3214439972971981513h5"><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Jul 17, 2017 at 8:06 PM, Barry Lynn<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:barry.h.lynn@gmail.com" target="_blank" class="">barry.h.lynn@gmail.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class="">Dear Mary:<div class=""><br class=""></div><div class="">Thank you. Very helpful!</div><div class=""><br class=""></div><div class="">I had noticed that my code was running very, very slowly, but being relatively "new" to NCL programming was not sure why. (Also, it was, as you noted, running out of memory since I "dialed back" the RAM on my account.)</div><div class=""><br class=""></div><div class="">I will try your code and compare, and get back to the list about the timing differences.</div><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575HOEnZb"><font color="#888888" class=""><div class=""><br class=""></div><div class="">Barry</div></font></span></div><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575HOEnZb"><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575h5"><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Jul 18, 2017 at 12:26 AM, Mary Haley<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:haley@ucar.edu" target="_blank" class="">haley@ucar.edu</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class="gmail_default" style="font-size: small;">Hi Barry,</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">Rick is out this afternoon.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">Part of what Rick is suggesting is that if you are done with a variable, then you should delete it in order to free up memory for later calculations. </div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">If I may provide some honest comments about your script overall: if you use some simple "clean coding practices", this will make it *much* easier for you to debug your own code, and it will certainly make it easier for other people to debug it. It will also help you see where you might have some memory issues.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">Here are some suggestions for improving your script:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"><b class="">[1] Use "delete" to remove variables you don't need any more:</b></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default"><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""><span style="white-space: pre-wrap;" class="">        </span>t_ave=t_ave-273.16 ; convert to C </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>z_ave=z_ave/10. ; convert to dam </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>printMinMax(z_ave,False)</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>u = u * 3.6</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>v = v * 3.6</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(u,u_ave) ; copy coord vars to speed </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(v,v_ave) ; copy coord vars to speed </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(z,z_ave) ; copy coord vars to speed </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(t,t_ave) ; copy coord vars to speed </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(rh,rh_ave) ; copy coord vars to speed </font></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">If you no longer need the "u", "v", "z", etc variables, then delete them:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default"><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""><span style="white-space: pre-wrap;" class="">        </span>t_ave=t_ave-273.16 ; convert to C </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>z_ave=z_ave/10. ; convert to dam </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>printMinMax(z_ave,False)</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>u = u * 3.6</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>v = v * 3.6</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(u,u_ave) ; copy coord vars to speed </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(v,v_ave) ; copy coord vars to speed </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(z,z_ave) ; copy coord vars to speed </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(t,t_ave) </font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(rh,rh_ave)</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>delete([/u,v,z,t,rh/]) ; no longer needed</font></div><div class="gmail_default" style="font-size: small;"> </div><div class="gmail_default" style="font-size: small;"><b class="">[2] You are reading several variables and not doing anything with them but printing them out. Reading them in uses memory. </b></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">If all you need to do is print them, then print them directly. An example:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>lv0 = fin->lv_ISBL0</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print("lv0 = " + lv0)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>lv8 = fin->lv_ISBL8</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print("lv8 = " + lv8)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>lv10 = fin->lv_ISBL10</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print("lv10 = " + lv10)</font></div></div><div class="gmail_default"><br class=""></div><div class="gmail_default">Do this instead, to save memory:</div><div class="gmail_default"><br class=""></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print("lv0 = " + fin->lv_ISBL0)</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print("lv8 = " + fin->lv_ISBL8)<br class=""></font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>print("lv10 = " + fin->lv_ISBL10)</font><br class=""></div><div class="gmail_default"><br class=""></div></div><div class="gmail_default"><br class=""></div><b class="">[3] Avoid putting unchanged code inside do loops.</b></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">Your script has two do loops with a bunch of code inside of them that doesn't change.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">Do loops can be slow, so it's important to keep as much code *outside* of a do loop as possible.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">As an example, these are your two outside do loops:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>do n=0,n_files -1,1</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>do i_dir = 0,n_dirWRF-1</font><br class=""></div><div class="gmail_default"><br class=""></div><div class="gmail_default">Inside these two loops, you have code that looks like this:</div><div class="gmail_default"><br class=""></div><div class="gmail_default"><div class="gmail_default"> <font face="monospace, monospace" class=""><span class="Apple-converted-space"> </span> res1 = True</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res1@mpDataBaseVersion = "Ncarg4_1" ; choose more recent database </font></div><div class="gmail_default"><span style="font-family: monospace, monospace;" class=""> <span class="Apple-converted-space"> </span>. . .<br class=""> <span class="Apple-converted-space"> </span>res1@mpNationalLineThicknessF = 3.0</span><br class=""></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res1@mpGeophysicalLineThicknes<wbr class="">sF = 2.0</font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>. . .</font></div></div></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""><br class=""></font></div><div class="gmail_default" style="font-size: small;"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res1@tiMainString = time_var</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res1@gsnDraw = False ; don't draw </font><span style="font-family: monospace, monospace;" class=""> </span><span style="font-family: monospace, monospace;" class="">res1@cnLevelSelectionMode = "ExplicitLevels" ; set explicit contour levels </span></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>. . .</font></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res1@cnInfoLabelOn = False ; turn off contour info label <span class="Apple-converted-space"> </span></font><span style="font-family: monospace, monospace;" class="">res1@lbAutoManage = False ; control label bar </span><span style="font-family: monospace, monospace;" class="">res1@lbOrientation = "Vertical"</span></div><div class="gmail_default"><span style="font-family: monospace, monospace;" class=""> <span class="Apple-converted-space"> </span>. . . </span><br class=""></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res1@lbTopMarginF = 0.001</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2 = True</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2 = True</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>. . .</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2@mpNationalLineThicknessF = 3.0</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2@mpGeophysicalLineThicknes<wbr class="">sF = 2.0</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2@tiMainString = time_var</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2@gsnDraw = False ; don't draw </font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>. . .</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2@lbOrientation = "Vertical"</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2@pmLabelBarSide = "Right"</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2@lbLabelAutoStride = True</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2@pmLabelBarWidthF = 0.20</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>res2@pmLabelBarHeightF = 0.7</font></div><div class="gmail_default"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>. . .</font></div></div></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">None of this code changes inside the do loops, but yet it is getting set again and again for every iteration of the two do loops. In order to speed things up, move as much code as you can to outside the do loop, and only keep things that actually change inside the do loop.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">I recommend creating functions to set the various resource lists: set_res1_list, set_res2_list, etc. This may not necessarily save memory, but it makes your code much cleaner.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"><b class="">[4] Use functions for cleaner code.</b></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">You have code that is repeated in multiple locations. This can cause extra memory usage. If you turn these repeated code segments into NCL functions, then this can save some memory.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">An example, you have:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default"><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>i_loc = 1</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>j_loc = 1</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>GET_IJ::get_ij(lat2d,lon2d,lat<wbr class="">_beg,lon_beg,i_loc,j_loc,nj,ni<wbr class="">)</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>x_start = i_loc</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>y_start = j_loc</font></div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">Granted, this doesn't use a lot of memory, but every time you copy these 5 lines, it makes your script harder to read, and you will slowly use more memory if you do this kind of thing frequently.</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;">Turn the above five lines into a function:</div><div class="gmail_default" style="font-size: small;"><br class=""></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class="">function get_ij_ncl(lat2d,lon2d,lat_beg<wbr class="">,lon_beg)</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class="">local nj, ni</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class="">begin<br class=""></font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>i_loc = 1</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>j_loc = 1</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>nj = dimsizes(lat2d(:,0))</font></div><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>ni = dimsizes(lat2d(0,:))</font></div><div class="gmail_default"><div class="gmail_default" style="font-size: small;"><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>GET_IJ::get_ij(lat2d,lon2d,lat<wbr class="">_beg,lon_beg,i_loc,j_loc,nj,ni<wbr class="">)</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> return([/i_loc,j_loc/])</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class="">end</font></div><div style="font-size: small;" class=""><br class=""></div><div style="font-size: small;" class="">and then call the function with:</div><div style="font-size: small;" class=""><br class=""></div><div style="font-size: small;" class=""><font face="monospace, monospace" class="">xy_start = get_ij_ncl(lat2d,lon2d,lat_beg<wbr class="">,lon_beg)</font></div><div style="font-size: small;" class=""><br class=""></div><div style="font-size: small;" class="">You will then need to change "x_start" to xy_start(0) and "y_start" to xy_start(1)</div><div style="font-size: small;" class=""><br class=""></div><div style="font-size: small;" class=""><b class="">[5] Another place where a function would be helpful:</b></div><div style="font-size: small;" class=""><br class=""></div><div class=""><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>u_ave_new = u_ave(xy_start(1):xy_end(1),xy<wbr class="">_start(0):xy_end(0))</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>v_ave_new = v_ave(xy_start(1):xy_end(1),xy<wbr class="">_start(0):xy_end(0))</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>lat2d_new = lat2d(xy_start(1):xy_end(1),xy<wbr class="">_start(0):xy_end(0))</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>lon2d_new = lon2d(xy_start(1):xy_end(1),xy<wbr class="">_start(0):xy_end(0))</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class="">; plotB = gsn_csm_vector(wks,u_ave_new,v<wbr class="">_ave_new,vecres) </font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class="">;;;opy_VarCoords(dumb_ave,u_av<wbr class="">e_new) </font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class="">; copy_VarCoords(dumb_ave,v_ave_<wbr class="">new) </font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> u_ave_new!0 = "lat"</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> u_ave_new!1 = "lon"</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> u_ave_new&lat= lat(xy_start(1):xy_end(1))</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> u_ave_new&lon= lon(xy_start(0):xy_end(0))</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> v_ave_new!0 = "lat"</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> v_ave_new!1 = "lon"</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> v_ave_new&lat= lat(xy_start(1):xy_end(1))</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> v_ave_new&lon= lon(xy_start(0):xy_end(0))</font></div><div style="font-size: small;" class=""><br class=""></div><div style="font-size: small;" class="">Create a function to do the subsetting and attaching of the metadata:</div><div style="font-size: small;" class=""><br class=""></div><div style="font-size: small;" class=""><font face="monospace, monospace" class="">function average_subset(x,lat,lon,xy_st<wbr class="">art,xy_end)</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class="">begin</font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>x_ave_new = x(xy_start(1):xy_end(1),xy_sta<wbr class="">rt(0):xy_end(0))</font></div><div class=""><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>x_ave_new!0 = "lat"</font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>x_ave_new!1 = "lon"</font></div></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""><div class=""> <span class="Apple-converted-space"> </span>x_ave_new&lat= lat(xy_start(1):xy_end(1))</div><div class=""> <span class="Apple-converted-space"> </span>x_ave_new&lon= lon(xy_start(0):xy_end(0))</div><div class=""> <span class="Apple-converted-space"> </span>return(x_ave_new)</div></font></div><div style="font-size: small;" class=""><font face="monospace, monospace" class="">end</font></div><div style="font-size: small;" class=""><br class=""></div></div><div style="font-size: small;" class="">so now you can replace the above code with two lines:</div><div style="font-size: small;" class=""><br class=""></div><div style="font-size: small;" class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>u_ave_new = average_subset(u_ave,lat,lon,x<wbr class="">y_start,xy_end)</font></div><div style="font-size: small;" class=""><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>v_ave_new = average_subset(v_ave,lat,lon,x<wbr class="">y_start,xy_end)</font></div><div class=""><br class=""></div><div class=""><b class="">[6] You created "lat2d_new" and "lon2d_new" but never use them. Again, this is using up memory for no purpose. Remove those two lines.</b></div><div class=""><br class=""></div></div><div style="font-size: small;" class=""><b class="">[7] If you are propagating a smaller array to a larger array, as is the case here:</b></div><div style="font-size: small;" class=""><br class=""></div><div style="font-size: small;" class=""><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>lat2d = z</font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>lon2d = z</font></div></div><div class=""><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>do j = 0,nj-1</font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>do i = 0,ni-1</font></div><div class=""><font face="monospace, monospace" class=""> lat2d(j,i)=lat(j)</font></div><div class=""><font face="monospace, monospace" class=""> lon2d(j,i)=lon(i)</font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>end do</font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>end do</font></div></div><div class=""><br class=""></div><div class="">then use conform_dims instead of a do loop:</div><div class=""><br class=""></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>lat2d = conform_dims(dims2d,lat,0) </font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>lon2d = conform_dims(dims2d,lon,1)</font></div><div class=""><font face="monospace, monospace" class=""><br class=""></font></div><div class=""><font face="arial, helvetica, sans-serif" class="">Note that I no longer need the "lat2d = z" or "lon2d = z" code.</font></div><div class=""><font face="arial, helvetica, sans-serif" class=""><br class=""></font></div><div class=""><font face="arial, helvetica, sans-serif" class="">[8] You have this code, and I'm not sure why:</font></div><div class=""><font face="arial, helvetica, sans-serif" class=""><br class=""></font></div><div class=""><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>a = addfile(filename,"r")</font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>fin = a</font></div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class="">This seems like an unnecessary copy of "a". Why not simply do:</div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>fin = addfile(filename,"r")</font></div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class=""><b class="">[9] The "gsn_define_colormap" call should not be inside the do loop. Call this right after you call gsn_open_wks.</b></div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class=""><b class="">[10] There's some random code I don't understand. For example:</b></div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div class=""><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(z,lat2d)</font></div><div class=""><font face="monospace, monospace" class=""> <span class="Apple-converted-space"> </span>copy_VarCoords(z,lon2d)</font></div></div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class="">lat2d and lon2d don't need to have z's coordinate arrays attached to them for any reason that I can see, so I think you can remove those two lines.</div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class=""><b class="">[11] Every time you have a do loop or an if statement, indent all the code inside *consistently* so you can more easily see what part of the code you're in.</b></div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class=""><b class="">[12] Don't make extra copies of variables unless you really need to.</b></div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class="">For example, you have:</div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class=""><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619gmail-s1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619gmail-Apple-converted-space"> </span>filename = all_files(n)</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619gmail-p1">There's really no need to create "filename" since you can just use "all_files(n)".</p></div><div style="font-family: arial, helvetica, sans-serif;" class="">I've tried to clean up your code to show you what I'm talking about. The attached script likely won't run because I don't have your data to test it. But, hopefully you can see what I'm doing and mimic this in your code.</div><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785HOEnZb"><font color="#888888" class=""><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class="">--Mary</div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div><div style="font-family: arial, helvetica, sans-serif;" class=""><br class=""></div></font></span></div></div></div></div></div></div><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785HOEnZb"><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785h5"><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Jul 17, 2017 at 11:40 AM, Barry Lynn<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:barry.h.lynn@gmail.com" target="_blank" class="">barry.h.lynn@gmail.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class="">Hi Rick:<div class=""><br class=""></div><div class="">Thank you for your suggestion.</div><div class=""><br class=""></div><div class="">Could you please give me some guidelines on how to delete resources.</div><div class=""><br class=""></div><div class="">I have included the script. If you can provide an example, I can take it from there.</div><div class=""><br class=""></div><div class="">Thank you,</div><div class=""><br class=""></div><div class="">Barry</div></div><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619HOEnZb"><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619h5"><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Jul 17, 2017 at 5:22 PM, Rick Brownrigg<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:brownrig@ucar.edu" target="_blank" class="">brownrig@ucar.edu</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div class=""><div class=""><div class="">Hi Barry,<br class=""><br class=""></div>On Linux, an errno=12 is an "out of memory" error. I doubt that its related directly to the systemfunc() call, but rather due to memory being consumed by your script in previous iterations of the loop. You might check if there are variables that can be freed (i.e., deleted()) after each iteration.<br class=""><br class=""></div>HTH...<br class=""></div>Rick<br class=""></div><div class="gmail_extra"><br class=""><div class="gmail_quote"><div class=""><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367h5">On Sun, Jul 16, 2017 at 8:56 PM, Barry Lynn<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:barry.h.lynn@gmail.com" target="_blank" class="">barry.h.lynn@gmail.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""></div></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367h5"><div dir="ltr" class="">Hi:<div class=""><br class=""></div><div class="">I have a program that does multiple loops.</div><div class=""><br class=""></div><div class="">I had this error:</div><div class=""><br class=""></div><div class=""><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">0)<span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-Apple-tab-span">        </span>i_dir = 6</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">fatal:systemfunc: cannot create child process:[errno=12]</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">fatal:["Execute.c":8640]:Execu<wbr class="">te: Error occurred at or near line 84 in file ./plot_loop_700mb.ncl</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><br class=""></span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">This occurred when reading the file from the sixth directory of 20.</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><br class=""></span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">Here was the read from the 5th directory:</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">(0)<span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-Apple-tab-span">        </span>i_dir = 5</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">(0)<span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-Apple-tab-span">        </span>all_files(n) = /home/cust100021_vol1/barry/cu<wbr class="">st100021_vol2/GEFS/GEFS_05/gep<wbr class="">05.t00z.pgrb2b.0p50.f084.grb</span></p><div class=""><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"></span><br class="webkit-block-placeholder"></div><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1">Here is a listing of both files:</p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1">They are both present, but the second attempted allocation/definition of the file fails with the read that follows:</p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><br class=""></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">[barry@cust100021-login1 GEFS]$ ls -ltr /home/cust100021_vol1/barry/cu<wbr class="">st100021_vol2/GEFS/GEFS_05/gep<wbr class="">05.t00z.pgrb2b.0p50.f084.grb</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">-rw-r--r-- 1 barry cust100021 78985320 Jul 16 04:58 /home/cust100021_vol1/barry/cu<wbr class="">st100021_vol2/GEFS/GEFS_05/gep<wbr class="">05.t00z.pgrb2b.0p50.f084.grb</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">[barry@cust100021-login1 GEFS]$ ls -ltr /home/cust100021_vol1/barry/cu<wbr class="">st100021_vol2/GEFS/GEFS_06/gep<wbr class="">06.t00z.pgrb2b.0p50.f084.grb</span></p><div class=""><br class="webkit-block-placeholder"></div><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">-rw-r--r-- 1 barry cust100021 80466702 Jul 16 04:58 /home/cust100021_vol1/barry/cu<wbr class="">st100021_vol2/GEFS/GEFS_06/gep<wbr class="">06.t00z.pgrb2b.0p50.f084.grb</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">Here is the read:</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><br class=""></span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>print("i_dir = " + i_dir)</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>diri = dirWRF(i_dir) + "/"</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">; define individual file read</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>all_files = systemfunc("ls " + diri + "ge*pgrb2b*grb")</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>print("all_files(n) = " + all_files(n))</span></p><div class=""><br class="webkit-block-placeholder"></div><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-Apple-converted-space"> <span class="Apple-converted-space"> </span></span>filename = all_files(n)</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><br class=""></span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">Is the problem that I make this allocation multiple times, each directory, each file? Perhaps I should read all files at once into a two dimensional filename array?</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><br class=""></span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1">Thanks</span></p><p class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-p1"><span class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail-s1"><br class=""></span></p><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367m_-1244925744970829752m_-5735885267463024187gmail_signature"><div dir="ltr" class="">Barry H. Lynn, Ph.D<div class=""><div class="">Senior Lecturer,</div><div class=""><div class=""><span style="color: rgb(136, 136, 136);" class="">The Institute of the Earth Science, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">The Hebrew University of Jerusalem, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Givat Ram, Jerusalem 91904, Israel </span><br style="color: rgb(136, 136, 136);" class=""></div><span style="color: rgb(136, 136, 136);" class="">Tel: 972 547 231 170</span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Fax: (972)-25662581</span></div></div><div class=""><span style="color: rgb(136, 136, 136);" class=""><br class=""></span></div><div class="">C.E.O, Weather It Is, LTD<br class="">Weather and Climate Focus<br class=""><a href="http://weather-it-is.com/" target="_blank" class="">http://weather-it-is.com</a><br class="">Jerusalem, Israel<br class="">Local: 02 930 9525<br class="">Cell: 054 7 231 170<br class="">Int-IS: x972 2 930 9525<br class="">US<span class="Apple-converted-space"> </span><a href="tel:(914)%20432-3108" value="+19144323108" target="_blank" class="">914 432 3108</a><br class=""></div></div></div></div></div><br class=""></div></div>______________________________<wbr class="">_________________<br class="">ncl-talk mailing list<br class=""><a href="mailto:ncl-talk@ucar.edu" target="_blank" class="">ncl-talk@ucar.edu</a><br class="">List instructions, subscriber options, unsubscribe:<br class=""><a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank" class="">http://mailman.ucar.edu/mailma<wbr class="">n/listinfo/ncl-talk</a><br class=""><br class=""></blockquote></div><br class=""></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785m_5532582317255059619m_-390945913059712367gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class="">Barry H. Lynn, Ph.D<div class=""><div class="">Senior Lecturer,</div><div class=""><div class=""><span style="color: rgb(136, 136, 136);" class="">The Institute of the Earth Science, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">The Hebrew University of Jerusalem, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Givat Ram, Jerusalem 91904, Israel </span><br style="color: rgb(136, 136, 136);" class=""></div><span style="color: rgb(136, 136, 136);" class="">Tel: 972 547 231 170</span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Fax: (972)-25662581</span></div></div><div class=""><span style="color: rgb(136, 136, 136);" class=""><br class=""></span></div><div class="">C.E.O, Weather It Is, LTD<br class="">Weather and Climate Focus<br class=""><a href="http://weather-it-is.com/" target="_blank" class="">http://weather-it-is.com</a><br class="">Jerusalem, Israel<br class="">Local: 02 930 9525<br class="">Cell: 054 7 231 170<br class="">Int-IS: x972 2 930 9525<br class="">US<span class="Apple-converted-space"> </span><a href="tel:(914)%20432-3108" value="+19144323108" target="_blank" class="">914 432 3108</a><br class=""></div></div></div></div></div></div><br class="">______________________________<wbr class="">_________________<br class="">ncl-talk mailing list<br class=""><a href="mailto:ncl-talk@ucar.edu" target="_blank" class="">ncl-talk@ucar.edu</a><br class="">List instructions, subscriber options, unsubscribe:<br class=""><a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank" class="">http://mailman.ucar.edu/mailma<wbr class="">n/listinfo/ncl-talk</a><br class=""><br class=""></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="m_5249870887675939839m_-3214439972971981513m_-5610480789294355575m_-359832157629598785gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class="">Barry H. Lynn, Ph.D<div class=""><div class="">Senior Lecturer,</div><div class=""><div class=""><span style="color: rgb(136, 136, 136);" class="">The Institute of the Earth Science, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">The Hebrew University of Jerusalem, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Givat Ram, Jerusalem 91904, Israel </span><br style="color: rgb(136, 136, 136);" class=""></div><span style="color: rgb(136, 136, 136);" class="">Tel: 972 547 231 170</span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Fax: (972)-25662581</span></div></div><div class=""><span style="color: rgb(136, 136, 136);" class=""><br class=""></span></div><div class="">C.E.O, Weather It Is, LTD<br class="">Weather and Climate Focus<br class=""><a href="http://weather-it-is.com/" target="_blank" class="">http://weather-it-is.com</a><br class="">Jerusalem, Israel<br class="">Local: 02 930 9525<br class="">Cell: 054 7 231 170<br class="">Int-IS: x972 2 930 9525<br class="">US<span class="Apple-converted-space"> </span><a href="tel:(914)%20432-3108" value="+19144323108" target="_blank" class="">914 432 3108</a><br class=""></div></div></div></div></div></div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="m_5249870887675939839m_-3214439972971981513gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class="">Barry H. Lynn, Ph.D<div class=""><div class="">Senior Lecturer,</div><div class=""><div class=""><span style="color: rgb(136, 136, 136);" class="">The Institute of the Earth Science, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">The Hebrew University of Jerusalem, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Givat Ram, Jerusalem 91904, Israel </span><br style="color: rgb(136, 136, 136);" class=""></div><span style="color: rgb(136, 136, 136);" class="">Tel: 972 547 231 170</span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Fax: (972)-25662581</span></div></div><div class=""><span style="color: rgb(136, 136, 136);" class=""><br class=""></span></div><div class="">C.E.O, Weather It Is, LTD<br class="">Weather and Climate Focus<br class=""><a href="http://weather-it-is.com/" target="_blank" class="">http://weather-it-is.com</a><br class="">Jerusalem, Israel<br class="">Local: 02 930 9525<br class="">Cell: 054 7 231 170<br class="">Int-IS: x972 2 930 9525<br class="">US<span class="Apple-converted-space"> </span><a href="tel:(914)%20432-3108" value="+19144323108" target="_blank" class="">914 432 3108</a><br class=""></div></div></div></div></div></div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class="">Barry H. Lynn, Ph.D<div class=""><div class="">Senior Lecturer,</div><div class=""><div class=""><span style="color: rgb(136, 136, 136);" class="">The Institute of the Earth Science, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">The Hebrew University of Jerusalem, </span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Givat Ram, Jerusalem 91904, Israel </span><br style="color: rgb(136, 136, 136);" class=""></div><span style="color: rgb(136, 136, 136);" class="">Tel: 972 547 231 170</span><br style="color: rgb(136, 136, 136);" class=""><span style="color: rgb(136, 136, 136);" class="">Fax: (972)-25662581</span></div></div><div class=""><span style="color: rgb(136, 136, 136);" class=""><br class=""></span></div><div class="">C.E.O, Weather It Is, LTD<br class="">Weather and Climate Focus<br class=""><a href="http://weather-it-is.com/" target="_blank" class="">http://weather-it-is.com</a><br class="">Jerusalem, Israel<br class="">Local: 02 930 9525<br class="">Cell: 054 7 231 170<br class="">Int-IS: x972 2 930 9525<br class="">US 914 432 3108<br class=""></div></div></div></div><span id="cid:10A5E636-87B3-402C-AED8-6AABF9AD0A9D"><variable.file></span><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">ncl-talk mailing list</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:ncl-talk@ucar.edu" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">ncl-talk@ucar.edu</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">List instructions, subscriber options, unsubscribe:</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a></div></blockquote></div><br class=""></div></body></html>