[ncl-install] NCL install with NetCDF-4 undeclared variable NC_NETCDF4

Mary Haley haley at ucar.edu
Tue Feb 17 10:04:20 MST 2009


> Mary,
>
> I am still confused on this topic.
>
> The netcdf site states the following:
>
> the netCDF-4.x releases will only build with the netCDF-4 enhanced
> features if "--enable-netcdf-4" is provided as a configure option. By
> default the distribution will build the classic netCDF-3 library. We
> believe that most users will not need the enhanced netCDF-4 features at
> this time.
>
> So when I read the above I actually did not have to specify
> --disable-netcdf-4 when configuring my netCDF install but I did it just
> in case.

That's correct. The NetCDF-4 features are not built by default.

> expected the end product to be a classic netCDF-4 without the
> new enhanced features. Then when I am configuring NCL and it asks do I
> want classic netCDF-4 support I say yes.
>
> Is there a mislabeling of what classic means between NCL and netCDF-4?
>
> I thought that classic NetCDF-4 is basically the previous netCDF-3
> format support within netCDF-4. The new enhanced netCDF-4 feature is the
> use of HDF-5 instead of HDF-4 and is enabled by the config flag
> --enable-netcdf-4
>

Yes, this is half correct, but classic NetCDF-4 and classic NetCDF-3
are *not* the same thing.

Classic NetCDF-4 is using HDF 5 under the hood, and has
compression capabilities.  What this means is that the NetCDF-3
interface is still being used to create the files, but under the hood,
an HDF-5 file is being written *and* you have access to compression.

If you don't need compression capabilities, then my recommendation
is to build NetCDF with the --disable-netcdf-4 option, and then
when you run NCL's "./Configure", answer "no" to the "do you need
classic NetCDF 4 support" question.

--Mary

> I have read the NCL installation guide front and back focusing on the
> NetCDF section and there does seem to be some confusion regarding what
> classic means:
>
> The guide states without classic netCDF-4 support configure the
> following way:
>
> ./configure --disable-f90 --prefix=/usr/local
>
> With "classic" netCDF-4 support it instructs to get HDF-5 and set the
> configure flag enable-netcdf-4, but this is in contrast to what the
> netCDF site states. It seems that NCL is misusing the term classic, to
> mean the brand new and enhanced netCDF-4.
>
> Please correct me if I am wrong.
>
> Thanks,
> Marcin
>
>
> Mary Haley wrote:
>> Hi Marcin,
>>
>> If you want classic NetCDF 4 support, then you will need to build
>> NetCDF 4.x with --enable-netcdf set, and make sure --disable-netcdf-4
>> is not set.
>> Everything else you're doing is correct.
>>
>> You may also want to look at #6 at:
>>
>> http://www.ncl.ucar.edu/Download/build_from_src.shtml#Troubleshooting
>>
>> With the newer versions of HDF, the "hdf/netcdf.h" include file
>> doesn't get installed, so you need to remove this reference from the
>> NCL code.
>>
>> --Mary
>>
>> On Mon, 16 Feb 2009 15:42:37 -0500
>>  Marcin Sliwowski <ms275 at duke.edu> wrote:
>>> Hello Everyone,
>>>
>>> I installed netCDF-4 and used the following config flags:
>>>
>>> --prefix=/usr/local/netcdf-4.0-pgi --disable-shared
>>> --enable-large-file-tests --enable-docs-install --disable-netcdf-4
>>>
>>> I installed hdf4.2r4 and used the following config flags:
>>>
>>> --prefix=/usr/local/hdf4.2r4-pgi/ --disable-netcdf
>>> --with-jpeg=/usr/local/jpeg-6b-pgi
>>>
>>>
>>> My problem is on compiling NCL v5.0.0, Two problems encountered and
>>> solved via troubleshooting guide, one last error remains.
>>>
>>> During the NCL configure I say yes to include netCDF-4 support into NCL
>>> because according to the way I understand it I am only asking for the
>>> "classic" NetCDF support not the new extended netCDF, which is why I set
>>> the flag --disable-netcdf-4 on the config for netCDF-4
>>>
>>> Error 1: PGC-F-0206-Can't find include file hdf/netcdf.h (NclHDF.c: 26)
>>> Solved by commenting out: #include <hdf/netcdf.h> in NclHDF.c and
>>> NclHDFEOS.c as suggested by troubleshooting guide
>>>
>>> Error 2: PGC-S-0039-Use of undeclared variable MAX_NC_NAME (NclHDF.c:
>>> 313)
>>> Solved by inserting the #defines as indicated in the troubleshooting
>>> guide
>>>
>>> Error 3: PGC-S-0039-Use of undeclared variable NC_NETCDF4
>>> (NclNetCdf.c: 744)
>>> PGC-S-0039-Use of undeclared variable NC_CLASSIC_MODEL (NclNetCdf.c:
>>> 744)
>>>
>>> This error does not occur when I answer "no" to the include netCDF-4
>>> support into NCL, but I want the classic NetCDF-4 support in NCL.
>>>
>>> Does anyone have any guidance or advice to get by this error?
>>>
>>> Thank You,
>>> Marcin
>>>
>>> --
>>> Marcin Sliwowski
>>> Systems Programmer
>>> Duke University - Pratt School of Engineering
>>> 919-660-8450
>>>
>>> _______________________________________________
>>> ncl-install mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-install
>>
>
>
> -- 
> Marcin Sliwowski
> Systems Programmer
> Duke University - Pratt School of Engineering
> 919-660-8450
>
>


More information about the ncl-install mailing list