<div>hello all,</div>
<div>&nbsp;</div>
<div>am still facing this problem.... even after updating the patch file..</div>
<div><br><font size="1">r.terraflow December 2003<br>region size is 13593 x 15215<br>cell 960MBdata header compatible with region header<br>elevation stored as FLOAT (4B) WARNING: raster 960MBdata is of type CELL_TYPE --you should use 
r.terraflow.short</font></div>
<div>
<p><font size="1">STREAM temporary files in /var/tmp&nbsp; (THESE INTERMEDIATE STREAMS WILL NOT BE DELETED IN CASE OF ABNORMAL TERMINATION OF THE PROGRAM. TO SAVE SPACE PLEASE DELETE THESE FILES MANUALLY!)<br>SFD (D8) flow direction
<br>D8CUT=999999986991104.000000<br>memory size: 400.00M (419430400) bytes<br>Memory manager registering memory in MM_WARN_ON_MEMORY_EXCEEDED mode.<br>reading data from 960MBdata to stream /var/tmp/STREAM_kohqGU: </font></p>

<p><font size="1">total elements=206817495, nodata elements=50042031<br>largest temporary files: <br>&nbsp;&nbsp; FILL: 10.79G (11581779720) [206817495 elements, 56B each]<br>&nbsp;&nbsp; FLOW: 11.68G (12542037120) [156775464 elements, 80B each]
<br>Will need at least 23.36G (25084074240) space available in /var/tmp<br>------------------------------<br>COMPUTING FLOW DIRECTIONS<br>classifying nodata (inner &amp; boundary)<br>finding nodata<br>relabeling nodata<br>
MM warning: limit=419430400B. allocating 209608296B.&nbsp; limit exceeded by 23602B.<br>MM warning: limit=419430400B. allocating 209608296B.&nbsp; limit exceeded by 23633B.<br>merging relabeled grid<br>MM warning: limit=419430400B. allocating 209567256B.&nbsp; limit exceeded by 23558B.
<br>MM warning: limit=419430400B. allocating 209567256B.&nbsp; limit exceeded by 23589B.<br>----------<br>assigning preliminary directions<br>----------<br>finding flat areas (plateaus and depressions)<br>plateau.cc:starting memscan
<br>plateau.cc:memscan done<br>removing duplicate plateaus<br>MM warning: limit=419430400B. allocating 209567260B.&nbsp; limit exceeded by 23574B.<br><font size="1">:</font><br>MM warning: limit=419430400B. allocating 209567260B.&nbsp; limit exceeded by 23636B.
<br>relabeling plateaus<br>MM warning: limit=419430400B. allocating 209567260B.&nbsp; limit exceeded by 23570B.<br>MM warning: limit=419430400B. allocating 209567260B.&nbsp; limit exceeded by 23601B.<br>generating plateau statistics
<br>MM warning: limit=419430400B. allocating 209403100B.&nbsp; limit exceeded by 23570B.<br>MM warning: limit=419430400B. allocating 209403100B.&nbsp; limit exceeded by 23601B.<br>----------<br>assigning directions on plateaus<br>MM warning: limit=419430400B. allocating 209649312B.&nbsp; limit exceeded by 19306B.
<br><font size="1">:</font><br>MM warning: limit=419430400B. allocating 209649312B.&nbsp; limit exceeded by 19368B.<br>--------------<br>generating watersheds and watershed graph<br>creating windows<br>warning: using slower scan
<br>generateWatersheds<br>MM warning: limit=419430400B. allocating 209628776B.&nbsp; limit exceeded by 10438B.<br>:<br>:<br>:<br>:<br>:</font><font size="1"><br>MM warning: limit=419430400B. allocating 209628776B.&nbsp; limit exceeded by 11182B.
<br>file=/var/tmp/STREAM_UpisEN:cannot read!: Input/output error<br>r.terraflow: ./IOStream/include/ami_sort_impl.h:109: void makeRun_Block(AMI_STREAM&lt;T&gt;*, T*, unsigned int, Compare*) [with T = waterWindowType, Compare = priorityCmpWaterWindowType]: Assertion `err == AMI_ERROR_NO_ERROR' failed.
<br></font>&nbsp;<br>-- <br>Best Regrads<br><br>Abhay Menon<br><span class="gmail_quote"><br>On 4/28/06, <b class="gmail_sendername">Shaun Walbridge</b> &lt;<a href="mailto:walbridge@nceas.ucsb.edu">walbridge@nceas.ucsb.edu</a>
&gt; wrote:</span> </p></div>
<div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Apologies, I forgot to re-attach the patch to this list.&nbsp;&nbsp;The only<br>changes I've found necessary are those couple spots in ami_stream.h.
<br>We've successfully run Terraflow on 4GB+ datasets after the swap to<br>fseeko/ftello.<br><br>Cheers,<br>Shaun<br><br>--- ami_stream.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2004-11-09 05:29:58.000000000 -0800<br>+++ ami_stream.h.edit&nbsp;&nbsp; 2006-04-27 10:44:
48.000000000 -0700<br>@@ -394,8 +394,8 @@<br>&nbsp;&nbsp;&nbsp;&nbsp;seek_offset = offset * sizeof(T);<br>&nbsp;&nbsp;}<br><br>-&nbsp;&nbsp;if (fseek(fp, seek_offset, SEEK_SET) == -1) {<br>-&nbsp;&nbsp;&nbsp;&nbsp;cerr &lt;&lt; &quot;AMI_STREAM::seek offset=&quot; &lt;&lt; seek_offset &lt;&lt; &quot;failed.\n&quot;;
<br>+&nbsp;&nbsp;if (fseeko(fp, seek_offset, SEEK_SET) == -1) {<br>+&nbsp;&nbsp;&nbsp;&nbsp;cerr &lt;&lt; &quot;AMI_STREAM::seek offset=&quot; &lt;&lt; seek_offset &lt;&lt; &quot; failed.\n&quot;;<br>&nbsp;&nbsp;&nbsp;&nbsp;assert(0);<br>&nbsp;&nbsp;&nbsp;&nbsp;exit(1);<br>&nbsp;&nbsp;}<br>@@ -463,7 +463,7 @@
<br><br>&nbsp;&nbsp;assert(fp);<br>&nbsp;&nbsp;//if we go past substream range<br>-&nbsp;&nbsp;if ((logical_eos &gt;= 0) &amp;&amp; ftell(fp) &gt;= sizeof(T) * logical_eos) {<br>+&nbsp;&nbsp;if ((logical_eos &gt;= 0) &amp;&amp; ftello(fp) &gt;= sizeof(T) * logical_eos) {
<br>&nbsp;&nbsp;&nbsp;&nbsp;return AMI_ERROR_END_OF_STREAM;<br><br>&nbsp;&nbsp;} else {<br>@@ -489,7 +489,7 @@<br>&nbsp;&nbsp;assert(fp);<br><br>&nbsp;&nbsp;//if we go past substream range<br>-&nbsp;&nbsp;if ((logical_eos &gt;= 0) &amp;&amp; ftell(fp) &gt;= sizeof(T) * logical_eos) {
<br>+&nbsp;&nbsp;if ((logical_eos &gt;= 0) &amp;&amp; ftello(fp) &gt;= sizeof(T) * logical_eos) {<br>&nbsp;&nbsp;&nbsp;&nbsp;return AMI_ERROR_END_OF_STREAM;<br><br>&nbsp;&nbsp;} else {<br>@@ -512,7 +512,7 @@<br><br>&nbsp;&nbsp;assert(fp);<br>&nbsp;&nbsp;//if we go past substream range
<br>-&nbsp;&nbsp;if ((logical_eos &gt;= 0) &amp;&amp; ftell(fp) &gt;= sizeof(T) * logical_eos) {<br>+&nbsp;&nbsp;if ((logical_eos &gt;= 0) &amp;&amp; ftello(fp) &gt;= sizeof(T) * logical_eos) {<br>&nbsp;&nbsp;&nbsp;&nbsp;return AMI_ERROR_END_OF_STREAM;<br><br>&nbsp;&nbsp;} else {
<br>@@ -532,7 +532,7 @@<br><br>&nbsp;&nbsp;assert(fp);<br>&nbsp;&nbsp;//if we go past substream range<br>-&nbsp;&nbsp;if ((logical_eos &gt;= 0) &amp;&amp; ftell(fp) &gt;= sizeof(T) * logical_eos) {<br>+&nbsp;&nbsp;if ((logical_eos &gt;= 0) &amp;&amp; ftello(fp) &gt;= sizeof(T) * logical_eos) {
<br>&nbsp;&nbsp;&nbsp;&nbsp;return AMI_ERROR_END_OF_STREAM;<br><br>&nbsp;&nbsp;} else {<br></blockquote></div>