<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div>THX for the suggestion. However, the addfiles function was developed to allow<br></div>a heterogeneous (non-uniform) set of files to be accomodated. EG: netCDF/GRIB/HDF<br></div>could all be accessed. The CMIP files are all CF compliant so there is some consistency.<br></div>Other file formats (HDF) may or may not have a units attribute.<br><br></div>You could develop your own function [ untested ]<br><br></div>undef(&quot;check_units_att&quot;)<br></div>function check_units_att(f:list, varName[1]:string)<br></div><div>local nfils, units, nf, units_0, same_units, units_nf<br></div>begin<br></div>    nfils = ListCount(f)<br></div><div>   ;units= new(nfils,&quot;string&quot;)   ; optional<br><br></div><div>    nf = 0<br></div><div>    if (isfilevaratt(f[nf], varName, &quot;units&quot;)) then<br></div><div>        units_0   = f[nf]-&gt;$varName$@units       ; initial units<br></div><div>       ;units(nf) = units_0<br></div><div>    else<br></div><div>         print(&quot;check_units_att: no units attribute: &quot;+varName+&quot;: FATAL&quot;)<br></div><div>         exit<br></div><div>    end if<br><br></div><div>    same_units = True<br><br></div>    do nf=1,nfils-1<br>         if (isfilevaratt(f[nf], varName, &quot;units&quot;)) then<br><div>             units_nf = f[nf]-&gt;$varName$@units <br></div><div>            ;units(nf) = units_nf </div><div>     <br></div><div>             if (units_nf .ne. units_0) then<br></div><div>                ;print(&quot;units_0=&quot;+units_0+&quot;   : units_nf=&quot;+units_nf)</div><div>                 same_units = False<br></div><div>             end if<br></div><div>       else<br>            print(&quot;check_units_att: no units attribute: nf=&quot;+nf)  </div><div>       end if<br></div>    <br></div>    end do<br><br></div><div>   ;same_units@var_units = units<br></div><div>    return(same_units)<br><br></div>end<br><div><div><div><div><div><div><div><div><div><div><br><br></div></div></div></div></div></div></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 7, 2014 at 5:47 PM, Ping Huang <span dir="ltr">&lt;<a href="mailto:ph0007@ustc.edu" target="_blank">ph0007@ustc.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear NCL developers,<br>
<br>
I have a suggestion for reading variable from multiply files with different units, like xxx = infile[:]-&gt;yyy.<br>
<br>
Because of the constraint that one variable only has one unit, the unit in the first file is read in as the unit of input variable when reading multiply files.<br>
<br>
Usually, there is no problem because the multiply files from same source often have same unit. However, when the units in the files are different, for example the units of time in some CMIP5 model outputs, the input unit does not match with the data in other files.<br>
<br>
So, I suggest when reading multiply files the identity of all units should be checked. If the units are not identical, a warning should be given.<br>
<br>
Best,<br>
<br>
Ping Huang<br>
<br>
<br>
_______________________________________________<br>
ncl-talk mailing list<br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
</blockquote></div><br></div>