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.
Karen, > cc: address@hidden > From: Karen Haskell <address@hidden> > Subject: NetCDF 3.5 on NEC SX-4 > Organization: NEC Systems, Inc. > Keywords: 200105162101.f4GL17p22490 netCDF 3.5 NEC SX-4 The above message contained the following: > I encountered problems building NetCDF 3.5.0 on our SX-4. The make > encountered fatal errors having to do with generic interfaces with > different sized integers. There were warnings in the config.log file > that "Length specification for INTEGER*2 or LOGICAL*1 is ignored." > > As specified in the "Reporting Problems" section of INSTALL.html, > I'm providing the following information. Any suggestions would be > welcomed. We don't have access to an SX-4 system. This severely limits our ability to support the netCDF package on that system and the errors you've reported will require a non-trivial investigation. If you're willing to help us, however, then we'll see what we can do (no promises, however). > A. > > 1 sx4 khaskell> uname -a > SUPER-UX unix 10.1 SX-4 > > B. > 5 sx4 khaskell> cat VERSION > 3.5.0 > > C. NQS script used to do the configure (called nqsconf) > > 6 sx4 khaskell> cat nqsconf > # > cd ~/netcdf-3.5.0/src > setenv CC 'cc -Xa' > setenv CFLAGS '-h2' > setenv FC 'f90' > setenv FFLAGS ' ' > setenv CXX ' ' > ./configure >&! configure.log > > Absolute locations of compilers > > 7 sx4 khaskell> which cc > /usr/bin/cc > 8 sx4 khaskell> which f90 > /usr/bin/f90 > 9 sx4 khaskell> which c++ > /usr/bin/c++ > > D. The resulting configure.log file > > creating cache ./config.cache > checking for top-level source-directory > /necsyl/asd3/khaskell/netcdf-3.5.0/src > checking for m4 preprocessor > checking for m4... m4 > checking m4 flags... -B10000 > checking C compiler "cc -Xa"... works > checking how to make dependencies... false > checking how to run the C preprocessor... cc -Xa -E > checking user-defined Fortran-77 compiler "f90"... works > checking for Fortran .F compiler... > checking if Fortran-77 compiler handles *.F files... yes > checking "f90" as Fortran-90 compiler... works > checking for nm utility > checking for nm... nm > checking nm flags... > checking for C-equivalent to Fortran routine "SUB"... sub_ > checking for Fortran "byte"... no > checking for Fortran "integer*1"... no > checking for Fortran "integer(kind(1))"... yes > checking for Fortran "integer*2"... yes > checking if Fortran "integer(kind(1))" is C "signed char"... no > checking if Fortran "integer(kind(1))" is C "short"... no > checking if Fortran "integer(kind(1))" is C "int"... yes > checking if Fortran "integer(kind(1))" is C "long"... no > checking if Fortran "integer*2" is C "short"... no > checking if Fortran "integer*2" is C "int"... yes > checking if Fortran "integer*2" is C "long"... no > checking if Fortran "integer" is C "int"... yes > checking if Fortran "real" is C "float"... yes > checking if Fortran "doubleprecision" is C "double"... yes > checking for Fortran-equivalent to netCDF "byte"... integer > checking for Fortran-equivalent to netCDF "short"... integer*2 Would you please tell us the characteristics of the following Fortran-90 types: integer*2 integer(kind(1)) integer(kind(2)) What sizes are they in bytes? What are their ranges? Are they padded? Etc. Additionally, would you please tell us the byte-sizes of the following C types: ssize_t ptrdiff_t > F. The make script (called nqsmake; inadvertently repeated the configure) > > > 10 sx4 khaskell> cat nqsmake > # > cd ~/netcdf-3.5.0/src > > setenv CC 'cc -Xa' > setenv CFLAGS '-h2' > setenv FC 'f90' > setenv FFLAGS ' ' > setenv CXX ' ' > ./configure > make >&! make.log > > The resulting make.log file > > > Making `all' in directory /necsyl/asd3/khaskell/netcdf-3.5.0/src/libsrc ... > cc -Xa -c -h2 -I. -DNDEBUG putget.c > "putget.c", line 138: warning: improper integer precision : op "=" The file "putget.c" is generated via the m4(1) utility from the file "putget.m4". Would you please send us sufficient context around lines 138, 8314, and 8502 of the file "putget.c" so that we may trace it back into the file "putget.m4". If the file "putget.c" doesn't exist in the "libsrc/" subdirectory, then I believe that it can be created via the command "make putget.c". > cc -Xa -c -h2 -I. -DNDEBUG v1hpg.c > "v1hpg.c", line 82: warning: improper integer precision : op "=" > "v1hpg.c", line 499: warning: improper integer precision : op "=" > "v1hpg.c", line 787: warning: improper integer precision : op "=" > "v1hpg.c", line 1043: warning: improper integer precision : op "=" The above warnings have been fixed. Apparently, a "ptrdiff_t" is more capacious than a "size_t" on the SX-4. Is there anyway to turn off the "Unvectorized loop" message? ... > Making `all' in directory /necsyl/asd3/khaskell/netcdf-3.5.0/src/fortran > > cc -Xa -c -h2 -I../libsrc -DNDEBUG fort-attio.c > "fort-attio.c", line 421: vec inf: Unvectorized loop > "fort-attio.c", line 423: vec inf: Unvectorized loop > "fort-attio.c", line 441: vec inf: Unvectorized loop > "fort-attio.c", line 453: vec inf: Unvectorized loop > "fort-attio.c", line 469: vec inf: Unvectorized loop > "fort-attio.c", line 482: vec inf: Unvectorized loop > "fort-attio.c", line 534: vec inf: Unvectorized loop > cc -Xa -c -h2 -I../libsrc -DNDEBUG fort-control.c > "fort-control.c", line 14: warning: improper pointer/integer precision : op > "CAST" > "fort-control.c", line 28: warning: improper pointer/integer precision : op > "CAST" > "fort-control.c", line 92: warning: improper pointer/integer precision : op > "CAST" > "fort-control.c", line 98: warning: improper pointer/integer precision : op > "CAST" This is another case where we will need more context. Would you please do the following: 1. Go into the "fortran/" subdirectory. 2. Execute the command "make fort-control.i". 3. From the file "fort-control.i", send me the following functions: nf__create_ nf__open_ nf__create_mp_ nf__open_mp_ That should be enough for now. Thanks. Regards, Steve Emmerson <http://www.unidata.ucar.edu>