<div dir="ltr">Hi Joe,<div>I think what is happening is that when you use this coding:</div><div>  wrfpost = addfile(dir_out+file_out,"c")    ;create new netCDF file</div><div><div>do n = 0, nTime-1<br>     print(n)<br>     wrfpost->slp(n,:,:)=(/wrf_user_getvar(wrfout,"slp",n)/)    <- Errors out<br> end do</div></div><div><br></div><div>the slp array is not preallocated space on the output .nc file, so NCL doesn't know to write the entire 3D slp array the first time you write to the slp array. The possible way around this is to create the .nc file the efficient way in NCL, where arrays are preallocated. See method #2 here:</div><div><a href="http://www.ncl.ucar.edu/Applications/write_netcdf.shtml">http://www.ncl.ucar.edu/Applications/write_netcdf.shtml<br></a></div><div><a href="http://www.ncl.ucar.edu/Applications/write_netcdf.shtml"><br></a></div><div>I have not created a .nc file this way, writing partially to an array like what I am proposing you do, but I do not see any reason why it wouldn't work. As your script is rather long, I would recommend trying a write and run a short test script attempting to do this offline, before implementing it into your script.</div><div>Hope that helps!</div><div>Adam</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 21, 2021 at 12:55 PM Joseph Zambon via ncl-talk <<a href="mailto:ncl-talk@mailman.ucar.edu">ncl-talk@mailman.ucar.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><div>NCL-Talk,</div><div><br></div>I'm attempting to modify the <a href="https://sundowner.colorado.edu/wrfout_to_cf/release_notes.html" target="_blank">wrfout_to_cf.ncl</a> script by Matt Higgins to loop over time.  The existing script calculates variables like SLP by ingesting the entire dataset and then spitting out the result.  For smaller domains / fewer frames per outfile, this works fine.  For my outfile, I have 601 timesteps and a domain of 1664x1544x50 meaning each 4-D variable takes up ~288GB, which is way too much to work with efficiently in memory.<div><br></div><div>I'm trying to re-structure the code so that it loops over time.  E.g. at each timestep for SLP it will calculate SLP from 3-D fields (x,y,z) and then output a 2-D array (x,y) to save to a NetCDF.  The problem comes when I try to save to NetCDF, I get an error...</div><div>fatal:["Execute.c":8637]:Execute: Error occurred at or near line 461 in file wrfout_to_cf_timefix.ncl</div><div><br></div><div>when code is executed as...</div><div><span style="color:rgb(0,0,0)">        do n = 0, nTime-1</span><br style="color:rgb(0,0,0)"><span style="color:rgb(0,0,0)">          </span><span style="color:rgb(0,0,0)">print(n)</span><br style="color:rgb(0,0,0)"><span style="color:rgb(0,0,0)">          ;</span><span style="color:rgb(0,0,0)">slp(n,:,:)=(/wrf_user_getvar(wrfout,"slp",n)/)</span><br style="color:rgb(0,0,0)"><span style="color:rgb(0,0,0)">          </span><span style="color:rgb(0,0,0)">wrfpost->slp(n,:,:)=(/wrf_user_getvar(wrfout,"slp",n)/)    <- Errors out</span><br style="color:rgb(0,0,0)"><span style="color:rgb(0,0,0)">        </span><span style="color:rgb(0,0,0)">end do</span><br style="color:rgb(0,0,0)"><span style="color:rgb(0,0,0)">        ;</span><span style="color:rgb(0,0,0)">wrfpost->slp =slp</span><br style="color:rgb(0,0,0)"></div><div><span style="color:rgb(0,0,0)"><br></span></div><div>wrfpost = output file.</div><div>slp = netcdf variable (601,1664,1544)</div><div>n = timestep</div><div><br></div><div>However, when I (less efficiently) run over the loop of 601 timesteps and save them to a 3-D SLP variable, then dump them into the NetCDF file, it works fine...</div><div>        do n = 0, nTime-1<br>          print(n)<br>          slp(n,:,:)=(/wrf_user_getvar(wrfout,"slp",n)/)<br>          ;wrfpost->slp(n,:,:)=(/wrf_user_getvar(wrfout,"slp",n)/)<br>        end do<br>        wrfpost->slp =slp   <- Works fine<br><br></div><div>AFAIK, the dimsizes are lined up correctly.  Ideally, I would execute this code over each timestep, save the result to the NetCDF file, then rerun so at any point I only have 3-D/2-D and not 4-D/3-D arrays to handle to save memory.  I know I could ncks the wrfout file into smaller chunks but I'd rather figure out what's going on than work around it.</div><div><br></div><div>The entire script is attached, for the sake of simplicity ignore the other 4-D variables.  Once I have SLP figured out, the others should fall into place.</div><div><br></div><div>Please let me know what I'm doing that's stupid.</div><div><br></div><div>Thanks!</div><div><br></div><div>-Joe</div><div><br></div><div></div></div><div style="overflow-wrap: break-word;"><div></div><br><br>
<br><div>
<div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div><div><div><font face="News Gothic MT"><span style="font-size:14px">Joseph B. Zambon, Ph.D.</span></font></div><div><font face="News Gothic MT"><span style="font-size:14px">Research Assistant Professor</span></font></div><div><font face="News Gothic MT"><span style="font-size:14px"><br></span></font></div><div><font face="News Gothic MT"><span style="font-size:14px">Ocean Observing and Modeling Group</span></font></div><div><font face="News Gothic MT"><span style="font-size:14px">Department of Marine, Earth and Atmospheric Sciences</span></font></div><div><font face="News Gothic MT"><span style="font-size:14px">North Carolina State University</span></font></div><div><font face="News Gothic MT"><span style="font-size:14px">Jordan Hall rm 4140</span></font></div></div><div><font face="News Gothic MT"><span style="font-size:14px">919.515.7928</span></font></div><div><a href="mailto:jbzambon@ncsu.edu" style="font-size:14px" target="_blank"><font face="News Gothic MT">jbzambon@ncsu.edu</font></a></div><div><a href="http://www.joezambon.com" style="font-size:14px" target="_blank"><font face="News Gothic MT">www.joezambon.com</font></a></div></div></div></div></div></div></div></div>
</div>
<br></div>_______________________________________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@mailman.ucar.edu" target="_blank">ncl-talk@mailman.ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="https://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">https://mailman.ucar.edu/mailman/listinfo/ncl-talk</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div><div><span><font color="#888888">Adam Phillips <br></font></span></div><span><font color="#888888">Associate Scientist,  </font></span><span><font color="#888888">Climate and Global Dynamics Laboratory, NCAR<br></font></span></div></div><div><span><font color="#888888"><a href="http://www.cgd.ucar.edu/staff/asphilli/" target="_blank">www.cgd.ucar.edu/staff/asphilli/</a>   </font></span><span><font color="#888888">303-497-1726 </font></span></div><span><font color="#888888"></font></span><div><div><span><font color="#888888"><br></font></span><div><span><font color="#888888"><a href="http://www.cgd.ucar.edu/staff/asphilli" target="_blank"></a></font></span></div></div></div></div></div></div></div></div></div></div></div>