<div dir="ltr"><div><div><div><div>The underlying &#39;write_matrix&#39; code should be able to handle byte, short, integer, float or double. <br></div>If the original variable is 16-bit integer (NCL type short), then the format you are passing to &#39;write_matrix&#39; is not correct.    <br><br>Change<br>     write_matrix (msl(it,:,:), &quot;1000f9.3&quot;, opt)    &lt;== for float or double<br></div>To<br>    write_matrix (msl(it,:,:), &quot;1000i9&quot;, opt)         &lt;== for integer<br><br></div>Note if your original data area type short *and* they have the attributes &#39;scale_factor&#39; and &#39;add_offset&#39;, it is possible thay you may wish to unpack the data prior to writing the ascii format. (&#39;short2flt&#39;)<br><br>==<br></div><div>If the above is not the case then you should include the output from printVarSummary(...) in any subsequent post to ncl-talk<br><br>    u=f-&gt;u10(:,:,:)<br></div><div>    printVarSummary(u)<br></div><div><br></div>Good luck<br></div>