<div>You have uniform grid size. So what about using the binary .vti file for instance as follow:</div>
<div>&nbsp;</div>
<div>I have number of grid points: nx,ny</div>
<div>Coordinates of origin: ox,oy</div>
<div>Grid spacing: dx, dy&nbsp;</div>
<div>Scalar variable: treal[nx*ny]</div>
<div>&nbsp;</div>
<div>nvar=1; /* Plot only one variable set */<br>off[0]=0;<br>for (i=0; i&lt;nvar; i++){<br>&nbsp;bytes[i]=(nx*ny)*sizeof(float);<br>&nbsp;if(i&lt;nvar-1)off[i+1]=off[i]+sizeof(int)+bytes[i];<br>&nbsp;bytes[i]=bytes[i]+sizeof(int);<br>
}</div>
<div>&nbsp;</div>
<div>outf_tfield=fopen(&quot;arrival_time_field.vti&quot;,&quot;w&quot;);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;?xml version=\&quot;1.0\&quot;?&gt;\n&quot;);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;VTKFile type=\&quot;ImageData\&quot; version=\&quot;0.1\&quot; byte_order=\&quot;LittleEndian\&quot;&gt;\n&quot;);<br>
&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;ImageData WholeExtent=\&quot;%d %d %d %d %d %d\&quot; Origin=\&quot;%f %f %f\&quot; Spacing=\&quot;%f %f %f\&quot;&gt;\n&quot;,0,nx-1,0,ny-1,0,0<br>&nbsp;&nbsp;&nbsp;,ox,oy,0.<br>&nbsp;&nbsp;&nbsp;,dx,dy,0.);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;Piece Extent=\&quot;%d %d %d %d %d %d\&quot;&gt;\n&quot;,0,nx-1,0,ny-1,0,0);<br>
&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;PointData Scalars=\&quot;Arrival time (s)\&quot;&gt;\n&quot;);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;DataArray type=\&quot;Float32\&quot; Name=\&quot;Arrival time (s)\&quot; format=\&quot;appended\&quot; offset=\&quot;%d\&quot; /&gt;\n&quot;,off[0]);&nbsp;&nbsp;<br>
&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;/PointData&gt;\n&quot;);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;CellData&gt;\n&quot;);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;/CellData&gt;\n&quot;);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;/Piece&gt;\n&quot;);<br>
&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;/ImageData&gt;\n&quot;);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;AppendedData encoding=\&quot;raw\&quot;&gt;\n&quot;);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;_&quot;);<br>&nbsp;&nbsp;/* Write arrival time field */<br>
&nbsp;&nbsp;fwrite(&amp;bytes[0],sizeof(int),1,outf_tfield);<br>&nbsp;&nbsp;for(i=0; i&lt;nx*ny; i++){<br>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(&amp;treal[i],sizeof(float),1,outf_tfield);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;\n&quot;);<br>&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;/AppendedData&gt;\n&quot;);<br>
&nbsp;&nbsp;fprintf(outf_tfield,&quot;&lt;/VTKFile&gt;\n&quot;);<br>&nbsp;&nbsp;fclose(outf_tfield);</div>
<div>&nbsp;</div>
<div>Good luck!</div>
<div>Hom Nath</div>