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.
Unidata Support <address@hidden> writes: > ------- Forwarded Message > > >To: address@hidden > >cc: address@hidden, > >cc: address@hidden > >From: address@hidden > >Subject: netcdf-3.6.0 Altix ifort/icc/icpc > >Organization: CSIRO > >Keywords: 200412200441.iBK4fjlI019427 netCDF 3.6.0 SGI Altix > > Hello netcdf people, > As a starter, I have successfully built and tested netcdf-3.6.0 > on an SGI Altix (Itanium2) running redhat-release-3AS-2 > Linux 2.4.21-sgi303r2 using Intel compilers (ifort,icc,icpc) version 8.1 > with the following environment variables, working from similar 3.5.1 > recommendations on your "other platforms" web page: > CPPFLAGS="-DNDEBUG -DpgiFortran" > CC=icc > CFLAGS="-O -mp" > CXX=icpc > CXXFLAGS="-O -mp -cxxlib-gcc" > > FC=ifort > FFLAGS="-O -mp -integer_size 32 -real_size 32 -double_size 64" Thanks, I've copied the above to the other-builds page. > also > FFLAGS="-O -mp -integer_size 64 -real_size 64 -double_size 64" > (non-standard Fortran usage, but matches old Cray Unicos f90 -dp setting) > F90="" I would be very surprised if this actually worked. Did you run make test? Unfortunately the F90 tests are not very complete. But the underlying C interface is called for all fortran and fortran 90 calls, and it will not correctly handle 64 bit integers, no matter what fortran 90 thinks. > > Notes:1. Fortran90 still can't cope. (Or rather C/C++ can't cope with 128 bit > objects). > Using F90=ifort,F90FLAGS="-O -mp -integer_size 64 -real_size 64 > -double_size 128" compiled OK but compile during testing failed: > make[2]: Entering directory `/usr/local/pkgs/netcdf-3.6.0/src/nf_test' > + ifort -c -O -mp -integer_size 64 -real_size 64 -double_size 128 test_get.F > + ifort -c -O -mp -integer_size 64 -real_size 64 -double_size 128 test_put.F > + ifort -c -O -mp -integer_size 64 -real_size 64 -double_size 128 nf_error.F > + ifort -c -O -mp -integer_size 64 -real_size 64 -double_size 128 nf_test.F > + ifort -c -O -mp -integer_size 64 -real_size 64 -double_size 128 test_read.F > + ifort -c -O -mp -integer_size 64 -real_size 64 -double_size 128 test_write.F > + ifort -c -O -mp -integer_size 64 -real_size 64 -double_size 128 util.F > util.F(1178): #error: can't find include file: No C equivalent to Fortran > DOUBLE > util.F(1246): #error: can't find include file: No C equivalent to Fortran > DOUBLE > make[2]: *** [util.o] Error 2 > > also failed during execution with FFLAGS=F90FLAGS=-integer_size 64 -real_size > 64 -double_size 64 > or > FFLAGS=F90FLAGS="-O -mp -integer_size 32 -real_size 32 -double_size 64" > > so disabled F90 interface as before (F90=""). Sorry, I'm confused. The F90 interface is not working for you under any conditions? As every fortran call relies on the C library, it's not going to work to use int and float sizes that the C library can't handle. As far as netcdf is concerned, an int is 32 bits and a double is 64, and that's that. NetCDF-4, to be released sometime this summer, will handle additional types, including 64 bit ints. > 2. Testing BUG: Testing large file operations using the example given, > partially failed due to assuming existence of a trailing slash on the > directory name. Defining (e.g.) > TEMP_LARGE=/work/mydir/ > enabled all tests to work OK. Either the documentation "INSTALL" or the test > should be fixed. Probably more logical from a user's point of view to > fix the test. Error occurred as: > ------------------------------------------------ > ./quick_large_files -f /work/mydirexample.nc > Creating /work/mydirexample.nc for 64-bit offset large file test... > Bailing out in file quick_large_files.c, line 102, error:Permission denied. > ..... > Permission denied because I don't have permission to create in /work, but do > in /work/mydir > Other tests OK. > Hope this is useful. Thanks, I have fixed that in the makefile as you suggested. Ed