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

20020507: netcdf on UNICOS: non-support of primitive types



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>