<div dir="ltr">Dave,<div><br></div><div>With 6.3.0 on both yellowstone and my desktop linux box, I get</div><div><div><br></div><div> Copyright (C) 1995-2015 - All Rights Reserved</div><div> University Corporation for Atmospheric Research</div><div> NCAR Command Language Version 6.3.0</div><div> The use of this software is governed by a License Agreement.</div><div> See <a href="http://www.ncl.ucar.edu/" target="_blank">http://www.ncl.ucar.edu/</a> for more details.</div><div>netcdf file_var_metadata_clobber {</div><div>variables:</div><div><span style="white-space:pre-wrap">        </span>float testvar ;</div><div><span style="white-space:pre-wrap">                </span>testvar:long_name = &quot;long_name&quot; ;</div><div><span style="white-space:pre-wrap">                </span>testvar:units = &quot;units&quot; ;</div><div>}</div><div>netcdf file_var_metadata_clobber {</div><div>variables:</div><div><span style="white-space:pre-wrap">        </span>float testvar ;</div><div><span style="white-space:pre-wrap">                </span>testvar:_FillValue = -99.f ;</div><div>}</div></div><div><br></div><div>Based on your output, it seems like this behavior is fixed in 6.3.1.</div><div><br></div><div>Keith</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 3, 2015 at 12:14 AM, David Brown <span dir="ltr">&lt;<a href="mailto:dbrown@ucar.edu" target="_blank">dbrown@ucar.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Well yes that would definitely be a bug, But that is not what I was<br>
seeing with your script (I ran it only on my Mac with my 6.3.1<br>
development version).<br>
<br>
Here is the output of your test script on my system:<br>
<br>
 ncl file_var_metadata_clobber.ncl<br>
 Copyright (C) 1995-2015 - All Rights Reserved<br>
 University Corporation for Atmospheric Research<br>
 NCAR Command Language Version 6.3.1<br>
 The use of this software is governed by a License Agreement.<br>
 See <a href="http://www.ncl.ucar.edu/" rel="noreferrer" target="_blank">http://www.ncl.ucar.edu/</a> for more details.<br>
<br>
netcdf file_var_metadata_clobber {<br>
variables:<br>
float testvar ;<br>
testvar:long_name = &quot;long_name&quot; ;<br>
testvar:units = &quot;units&quot; ;<br>
}<br>
<br>
netcdf file_var_metadata_clobber {<br>
variables:<br>
float testvar ;<br>
testvar:long_name = &quot;long_name&quot; ;<br>
testvar:units = &quot;units&quot; ;<br>
testvar:_FillValue = -99.f ;<br>
}<br>
<br>
The copy &amp; paste seems to have removed the indentation, but otherwise<br>
this seems like the expected output to me.<br>
<br>
Is the script giving different results somewhere else?<br>
 -dave<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Mon, Nov 2, 2015 at 7:28 PM, Keith Lindsay &lt;<a href="mailto:klindsay@ucar.edu">klindsay@ucar.edu</a>&gt; wrote:<br>
&gt; Dave,<br>
&gt;<br>
&gt; Thanks for your description of the subtleties of _FillValue and the<br>
&gt; value-only assignment. Please note though that not only is the _FillValue<br>
&gt; attribute getting added, the variable&#39;s pre-existing attributes are getting<br>
&gt; lost. Do you consider this latter aspect a bug or feature? It is this that I<br>
&gt; am more concerned about. Also, this removal of the pre-existing attributes<br>
&gt; happens with NetCDF4 (for ncl version 6.3.0, but not 6.2.1) and not with<br>
&gt; NetCDF3.<br>
&gt;<br>
&gt; Keith<br>
&gt;<br>
&gt; On Mon, Nov 2, 2015 at 5:13 PM, David Brown &lt;<a href="mailto:dbrown@ucar.edu">dbrown@ucar.edu</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Keith,<br>
&gt;&gt; I think that what you are seeing is actually documented (although<br>
&gt;&gt; poorly apparently) behavior. At least, if, as I am assuming from your<br>
&gt;&gt; test script, the only attribute that gets passed through the<br>
&gt;&gt; value-only assignment is the _FillValue. The NCL Reference Manual says<br>
&gt;&gt; this about value-only assignment:<br>
&gt;&gt;<br>
&gt;&gt; &quot;No dimension names, coordinate variables or attributes other than<br>
&gt;&gt; _FillValue are assigned. &quot;<br>
&gt;&gt;<br>
&gt;&gt; In fact the _FillValue is a special attribute that even values (as<br>
&gt;&gt; opposed to variables) in NCL carry around. And it is propagated even<br>
&gt;&gt; through value-only assignment. That is because it is considered an<br>
&gt;&gt; essential component of the value.<br>
&gt;&gt;<br>
&gt;&gt; If in fact you are seeing other attributes get propagated let us know.<br>
&gt;&gt; Your test script only showed the _FillValue propagation as far as I<br>
&gt;&gt; could tell.<br>
&gt;&gt;  -dave<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Nov 2, 2015 at 9:03 AM, Keith Lindsay &lt;<a href="mailto:klindsay@ucar.edu">klindsay@ucar.edu</a>&gt; wrote:<br>
&gt;&gt; &gt; Hi,<br>
&gt;&gt; &gt; Thanks Dennis. For other users that run into this behavior, a workaround<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; avoid it is to ensure that the variable on the rhs of the problematic<br>
&gt;&gt; &gt; assignment does not have the _FillValue attribute. I.e.<br>
&gt;&gt; &gt;       if (isatt(tmpvar, &quot;_FillValue&quot;)) then<br>
&gt;&gt; &gt;         delete(tmpvar@_FillValue)<br>
&gt;&gt; &gt;       end if<br>
&gt;&gt; &gt; Keith<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Mon, Nov 2, 2015 at 8:44 AM, Dennis Shea &lt;<a href="mailto:shea@ucar.edu">shea@ucar.edu</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; A JIRA ticket [  NCL-2302 ] has been opened.  THX<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On Mon, Nov 2, 2015 at 8:06 AM, Keith Lindsay &lt;<a href="mailto:klindsay@ucar.edu">klindsay@ucar.edu</a>&gt;<br>
&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt; Hi,<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; I have come across an instance where I&#39;m writing a variable to a file<br>
&gt;&gt; &gt;&gt; &gt; and<br>
&gt;&gt; &gt;&gt; &gt; the variable metadata in the file is getting overwritten, even though<br>
&gt;&gt; &gt;&gt; &gt; I&#39;m<br>
&gt;&gt; &gt;&gt; &gt; using (/ ... /) on the right-hand side of the write to file<br>
&gt;&gt; &gt;&gt; &gt; statement.<br>
&gt;&gt; &gt;&gt; &gt; That<br>
&gt;&gt; &gt;&gt; &gt; is, the statement<br>
&gt;&gt; &gt;&gt; &gt; f-&gt;$varname$ = (/ tmpvar /)<br>
&gt;&gt; &gt;&gt; &gt; is overwriting the metadata for the file variable $varname$ in the<br>
&gt;&gt; &gt;&gt; &gt; file<br>
&gt;&gt; &gt;&gt; &gt; pointed to by f. The attached script demonstrates the problem. This<br>
&gt;&gt; &gt;&gt; &gt; seems<br>
&gt;&gt; &gt;&gt; &gt; like an ncl bug to me.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Details of my script that seem to matter are:<br>
&gt;&gt; &gt;&gt; &gt; 1) the file is NetCDF4<br>
&gt;&gt; &gt;&gt; &gt; 2) the file variable whose metadata is getting overwritten has been<br>
&gt;&gt; &gt;&gt; &gt; defined<br>
&gt;&gt; &gt;&gt; &gt; in the file but not written to yet<br>
&gt;&gt; &gt;&gt; &gt; 3) the file variable whose metadata is getting overwritten does not<br>
&gt;&gt; &gt;&gt; &gt; have<br>
&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt; _FillValue attribute<br>
&gt;&gt; &gt;&gt; &gt; 4) the variable on rhs of write to file statement has _FillValue<br>
&gt;&gt; &gt;&gt; &gt; attribute<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; The problem happens with ncl 6.3.0 on yellowstone. It does not happen<br>
&gt;&gt; &gt;&gt; &gt; with<br>
&gt;&gt; &gt;&gt; &gt; ncl 6.2.1, though with 6.2.1 the _FillValue gets added to the file<br>
&gt;&gt; &gt;&gt; &gt; variable&#39;s metadata, which is unexpected to me.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Keith<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt; ncl-talk mailing list<br>
&gt;&gt; &gt;&gt; &gt; <a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a><br>
&gt;&gt; &gt;&gt; &gt; List instructions, subscriber options, unsubscribe:<br>
&gt;&gt; &gt;&gt; &gt; <a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; ncl-talk mailing list<br>
&gt;&gt; &gt; <a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a><br>
&gt;&gt; &gt; List instructions, subscriber options, unsubscribe:<br>
&gt;&gt; &gt; <a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div>