[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 970507: netCDF

This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.


  • Subject: Re: 970507: netCDF
  • Date: Wed, 07 May 1997 13:23:18 -0600

>To: address@hidden
>cc: carrie@pemrac
>From: address@hidden (Carrie Gonzalez)
>Organization: .
>Keywords: 199705071848.MAA04257

Hi Carrie,

> I have a question.  I have a float variable and am trying to define an
> attribute (_FillValue) for this variable.  I read in the netCDF users
> guide on page 127 that a flag type can hold values between -3.4+38 and
> 3.4e+38  I need to hold the value -1.0e-31 (minus 31).  What data type
> can I use?  At first, I thought it was because I was printing the value
> %.2e so I changed it to %.0f, but ncgen still gives an error code.

Just guessing, but did you by any chance just specify the attribute as
something like

              x:_FillValue = -1.0e-31;

and get the ncgen error 

    ncgen: ... variable x: _FillValue type mismatch

If so, then the problem is that the type of the _FillValue attribute
must match the type of its variable.  The constant "-1.0e-31" is a
double constant, not a float constant (following the C convention that
floating-point constants are double by default).

To specify a float constant, you actually need to append an "f":

                x:_FillValue = -1.e-31f ;

I believe this is documented in the User's Guide chapter on Utilities,
in the section on syntax for constants in CDL, but perhaps it should be
noted more prominently, since users often think "-1.0d-31" is a double
constant (it is), but "-1.0e-31" is a float constant (it isn't).

--Russ

_____________________________________________________________________

Russ Rew                                         UCAR Unidata Program
address@hidden                     http://www.unidata.ucar.edu