[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
20020507: netcdf on UNICOS: non-support of primitive types
- Subject: 20020507: netcdf on UNICOS: non-support of primitive types
- Date: Tue, 07 May 2002 10:45:41 -0600
Verena,
>Date: Tue, 07 May 2002 10:26:24 +0200
>From: Verena Cals <address@hidden>
>Organization: Stratosphäre / Forschungszentrum Jülich GmbH
>To: Steve Emmerson <address@hidden>
>Subject: Re: netcdf / unicos
>Keywords: 200204250907.g3P97sa28336
The above message contained the following:
> I've tried your two solutions, but it doesn't work. Now I will sent you
> the log-files from both attempts.
>
> netcdf-3.5.0 without ..._OneByteInt and ..._TwoByteInt in
> src/f90/netcdf_overloads.f90:
>
> A. uname -a
> sn3401 zam409 10.0.1.0 zam.6 CRAY SV1
>
> B. more VERSION
> 3.5.0
>
> C. which cc
> /opt/ctl/bin/cc
> which CC
> /opt/ctl/bin/CC
> which f90
> /opt/ctl/bin/f90
>
>
> D.
>
> >more configure.log
> creating cache ./config.cache
> checking for top-level source-directory
> /usr_FZJ/jicg11/jicg1113/netcdf-3.5.0/src
> checking for m4 preprocessor
> checking for m4... m4
> checking m4 flags... -B10000
> checking C compiler "/opt/ctl/bin/cc"... works
> checking how to make dependencies... false
> checking for /opt/ctl/bin/CC... /opt/ctl/bin/CC
> checking C++ compiler "/opt/ctl/bin/CC"... works
> checking how to run the C preprocessor... /opt/ctl/bin/cc -E
> checking user-defined Fortran-77 compiler "/opt/ctl/bin/f90"... works
> checking for Fortran .F compiler...
> checking if Fortran-77 compiler handles *.F files... yes
> checking user-defined Fortran-90 compiler "/opt/ctl/bin/f90"... 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"... yes
> checking for Fortran "integer*2"... yes
> checking if Fortran "byte" is C "signed char"... no
> checking if Fortran "byte" is C "short"... yes
> checking if Fortran "byte" is C "int"... yes
> checking if Fortran "byte" is C "long"... yes
> checking if Fortran "integer*2" is C "short"... yes
> checking if Fortran "integer*2" is C "int"... yes
> checking if Fortran "integer*2" is C "long"... yes
> 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"... byte
> checking for Fortran-equivalent to netCDF "short"... integer*2
> checking for math library
> checking for tanh in -lc... yes
> checking for ar utility
> checking for ar... ar
> checking ar flags... cru
> checking for nm utility
> checking for nm... (cached) nm
> checking nm flags...
> checking for ranlib... :
> checking for stdlib.h... yes
> checking for sys/types.h... yes
> checking for strerror... yes
> checking for working ftruncate()... no
> checking for working alloca.h... no
> checking for alloca... no
> checking whether alloca needs Cray hooks... yes
> checking for _getb67... yes
> checking stack direction for C alloca... 1
> checking for st_blksize in struct stat... yes
> checking for IEEE floating point format... no
> checking for ANSI C header files... yes
> checking for size_t... yes
> checking for off_t... yes
> checking for ssize_t... yes
> checking for ptrdiff_t... yes
> checking for uchar... yes
> checking whether char is unsigned... yes
> checking whether byte ordering is bigendian... yes
> checking size of short... 8
> checking size of int... 8
> checking size of long... 8
> checking size of float... 8
> checking size of double... 8
> checking size of off_t... 8
> checking size of size_t... 8
Judging from the above type-sizes and the previously determined equality
of REAL and "float" and DOUBLEPRECISION and "double", I think that you
should also remove all "FourByteInt" and "FourByteReal" references
from the file "f90/netcdf_overloads.f90". Because those type-kinds are
indistiguishable from the type-kinds "EightByteInt" and "EightByteReal",
respectively, the compiler won't know which specific routine to invoke.
Hopefully, this will solve your current problem:
> Making `test' in directory /usr_FZJ/jicg11/jicg1113/netcdf-3.5.0/src/f90
>
> /opt/ctl/bin/f90 -o netcdf_test netcdf_test.f90 netcdf.o
> typeSizes.o ../libsrc/libnetcdf.a
>
> call check(nf90_put_var(ncFileID, lonVarId, (/ -180, -175, -170
> /) ) )
> ^
>
> f90-389 f90: ERROR NETCDFTEST, File = netcdf_test.f90, Line = 78, Column
> = 14
> No specific match can be found for the generic subprogram call
> "NF90_PUT_VAR".
> call check(nf90_put_var(ncFileID, frTimeVarId, (/ 12, 18
> /) ) )
> ^
>
> f90-389 f90: ERROR NETCDFTEST, File = netcdf_test.f90, Line = 79, Column
> = 14
> No specific match can be found for the generic subprogram call
> "NF90_PUT_VAR".
> call check(nf90_put_var(ncFileID, scalarVarID, 10))
> ^
> f90-389 f90: ERROR NETCDFTEST, File = netcdf_test.f90, Line = 88, Column
> = 14
> No specific match can be found for the generic subprogram call
> "NF90_PUT_VAR".
> Cray Fortran: Version 3.5.0.3.1 (u15f51p42119g41107a17)
> Cray Fortran: Tue May 7, 2002 09:16:02
> Cray Fortran: Compile time: 0.1659 seconds
> Cray Fortran: 101 source lines
> Cray Fortran: 3 errors, 0 warnings, 0 other messages, 0 ansi
> Cray Fortran: "explain f90-message number" gives more information about
> each message
> Make: "/opt/ctl/bin/f90 -o netcdf_test netcdf_test.f90 netcdf.o
> typeSizes.o ../libsrc/libnetcdf.a ": Error code 1
> cmd-2436 make: Stop.
> Make: "cd f90 && \
> echo "Making \`test' in directory `pwd`" && \
> echo "" && \
> make test || exit 1": Error code 1
> Make: "case "/opt/ctl/bin/f90" in \
> '') echo 1>&2 "Not making \`f90/test' because no FORTRAN-90
> compiler"; \
> ;; \
> *) subdir=`echo f90/test | sed 's,/.*,,'`; \
> target=`echo f90/test | sed 's,.*/,,'`; \
> make SUBDIR=$subdir TGET=$target subdir_target; \
> ;; \
> esac": Error code 1
> cmd-2436 make: Stop.
Please let me know if this helps.
Regards,
Steve Emmerson <http://www.unidata.ucar.edu>