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

20031020: read netCDF data from fortran



>From: Boyin Huang <address@hidden>
>Organization: The Center for Research on the Changing Earth System (CRCES)
>Keywords: 200310201658.h9KGwWOb009709 netCDF PGI Fortran Linux

Boyin,

>I installed netcdf in my linux computer. It looks OK
>when I used ncdump command.
>
>I tried to compile a fortran file to read a netCDF
>file, but got an error message:
>PGFTN-S-0017-Unable to open include file: netcdf.inc
>(read_nc.F: 12)
>
>I don't know why the file netcdf.inc is missing.

OK.

>Therefore, I tried to reinstore the ntCDF at a new
>directory, but failed when using "make"

The make.log file that you include below shows that the build
failed because your environment was not recognized.  This came
from not correctly/fully defining your enviornment variables.
When using the PGI Fortran compiler, you need to define CPPFLAGS
to include the '-DpgiFortran' flag.  Here is the list of example
settings when using the PGI Fortran compiler from our 'Installing netCDF'
web page:

http://my.unidata.ucar.edu/content/software/netcdf/INSTALL.html

CC=/usr/bin/gcc
CPPFLAGS='-DNDEBUG -DpgiFortran'
CFLAGS=-O
FC=/opt/pgi/linux86/bin/pgf90
FFLAGS='-O -w'
CXX=/usr/bin/g++

So, you need to do the folling steps in order:

1) define CPPFLAGS as indicated above
2) run 'make distclean'
3) rerun 'configure'
4) rerun 'make'

Please let us know if this does not solve your problem.

Cheers,

Tom Yoksas

>Here are information from step A-F:
>
>(A) Linux indus.crces.org 2.4.18-26.8.0 #1 Mon Feb 24
>10:21:42 EST 2003 i686 i686 i386 GNU/Linux
>
>(B) 3.5.0
>
>(C) 
>
>CC=/usr/bin/cc
>CFLAGS=-O
>CPPFLAGS=-DNDEBUG
>FC=/usr/pgi/linux86/5.0/bin/pgf77
>FFLAGS=-O
>CXX=/usr/bin/g++
>CXXFLAGS=-O
>F90=/usr/pgi/linux86/5.0/bin/pgf90
>F90FLAGS=-O
>
>(D) configure.log attached
>(E) config.log attached
>(F) make.log attached
>
>
>Thank you very much
>
>=====
>Boyin Huang
>The Center for Research on the Changing Earth System (CRCES)
>10211 Wincopin Circle, Suite 240
>Columbia, Maryland 21044
>Tel. 410-992-5300/819 (O), 410-737-4557(H)
>Fax. 410-992-5944, Email. address@hidden
>http://byh.crces.org


-- configure.log --
creating cache ./config.cache
checking for top-level source-directory
/home/byh/tmp/netcdf-3.5.0/src
checking for m4 preprocessor
checking for m4... m4
checking m4 flags... -B10000
checking C compiler "/usr/bin/cc"... works
checking how to make dependencies... false
checking for /usr/bin/g++... /usr/bin/g++
checking C++ compiler "/usr/bin/g++"... configure: warning: /usr/bin/g++ failed 
on test program
configure: warning: Could not find working C++ compiler
configure: warning: Setting CXX to the empty string
configure: warning: The C++ interface will not be built
checking how to run the C preprocessor... /usr/bin/cc -E
checking user-defined Fortran-77 compiler "/usr/pgi/linux86/5.0/bin/pgf77"... 
works
checking for Fortran .F compiler... 
checking if Fortran-77 compiler handles *.F files... yes
checking user-defined Fortran-90 compiler "/usr/pgi/linux86/5.0/bin/pgf90"... 
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"... yes
checking if Fortran "byte" is C "short"... no
checking if Fortran "byte" is C "int"... no
checking if Fortran "byte" is C "long"... no
checking if Fortran "integer*2" is C "short"... yes
checking if Fortran "integer*2" is C "int"... no
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"... byte
checking for Fortran-equivalent to netCDF "short"... integer*2
checking for math library
checking for tanh in -lc... no
checking for tanh in -lm... 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... ranlib
checking for stdlib.h... yes
checking for sys/types.h... yes
checking for strerror... yes
checking for working ftruncate()... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for st_blksize in struct stat... yes
checking for IEEE floating point format... yes
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... no
checking whether char is unsigned... no
checking whether byte ordering is bigendian... no
checking size of short... 2
checking size of int... 4
checking size of long... 4
checking size of float... 4
checking size of double... 8
checking size of off_t... 4
checking size of size_t... 4
checking for manual-page index command... 
checking binary distribution directory... /home/ftp/pub/binary/dummy_system
updating cache ./config.cache
creating ./config.status
creating macros.make
udcreating fortran/nfconfig.inc
creating libsrc/ncconfig.h


-- config.log --
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:928: checking for top-level source-directory
configure:938: checking for m4 preprocessor
configure:945: checking for m4
configure:1012: checking m4 flags
configure:1085: checking C compiler "/usr/bin/cc"
configure:1094: /usr/bin/cc -c -O -DNDEBUG conftest.c 1>&5
configure:1121: checking how to make dependencies
configure:1189: checking for /usr/bin/g++
configure:1225: checking C++ compiler "/usr/bin/g++"
configure:1243: /usr/bin/g++ -o conftest -O -DNDEBUG  conftest.C  1>&5
In file included from /usr/include/c++/3.2/backward/iostream.h:31,
                 from configure:1235:
/usr/include/c++/3.2/backward/backward_warning.h:32:2: warning: #warning This 
file includes at least one deprecated or antiquated header. Please consider 
using one of the 32 headers found in section 17.4.1.2 of the C++ standard. 
Examples include substituting the <X> header for the <X.h> header for C++ 
includes, or <sstream> instead of the deprecated header <strstream.h>. To 
disable this warning use -Wno-deprecated.
In file included from /usr/include/c++/3.2/cstdlib:52,
                 from /usr/include/c++/3.2/bits/stl_algobase.h:67,
                 from /usr/include/c++/3.2/memory:54,
                 from /usr/include/c++/3.2/string:48,
                 from /usr/include/c++/3.2/bits/localefwd.h:49,
                 from /usr/include/c++/3.2/ios:48,
                 from /usr/include/c++/3.2/ostream:45,
                 from /usr/include/c++/3.2/iostream:45,
                 from /usr/include/c++/3.2/backward/iostream.h:32,
                 from configure:1235:
/usr/include/stdlib.h:612: declaration of `void exit(int) throw ()' throws 
   different exceptions
configure:1232: than previous declaration `void exit(int)'
configure: failed program was:
#line 1230 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
#endif

                                #include <iostream.h>
                                int main() {
                                    cout << "";
                                    return 0;
                                }
                            
configure:1294: checking how to run the C preprocessor
configure:1315: /usr/bin/cc -E -DNDEBUG conftest.c >/dev/null 2>conftest.out
configure:1383: checking user-defined Fortran-77 compiler 
"/usr/pgi/linux86/5.0/bin/pgf77"
configure:1389: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f
configure:1548: checking for Fortran .F compiler
configure:1558: checking if Fortran-77 compiler handles *.F files
configure:1569: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O conftest.F 
configure:1608: checking user-defined Fortran-90 compiler 
"/usr/pgi/linux86/5.0/bin/pgf90"
configure:1615: /usr/pgi/linux86/5.0/bin/pgf90 -c -O conftest.f90
configure:1751: checking for nm utility
configure:1758: checking for nm
configure:1825: checking nm flags
configure:1841: checking for C-equivalent to Fortran routine "SUB"
configure:1847: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f
configure:1876: checking for Fortran "byte"
configure:1883: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f
configure:1900: checking for Fortran "integer*2"
configure:1907: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f
configure:1933: checking if Fortran "byte" is C "signed char"
configure:1942: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:1944: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:1946: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:1948: ./conftest
configure:1981: checking if Fortran "byte" is C "short"
configure:1990: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:1992: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:1994: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:1996: ./conftest
configure:2029: checking if Fortran "byte" is C "int"
configure:2038: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:2040: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:2042: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:2044: ./conftest
configure:2077: checking if Fortran "byte" is C "long"
configure:2086: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:2088: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:2090: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:2092: ./conftest
configure:2129: checking if Fortran "integer*2" is C "short"
configure:2138: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:2140: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:2142: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:2144: ./conftest
configure:2177: checking if Fortran "integer*2" is C "int"
configure:2186: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:2188: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:2190: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:2192: ./conftest
configure:2225: checking if Fortran "integer*2" is C "long"
configure:2234: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:2236: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:2238: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:2240: ./conftest
configure:2275: checking if Fortran "integer" is C "int"
configure:2284: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:2286: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:2288: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:2290: ./conftest
configure:2323: checking if Fortran "real" is C "float"
configure:2332: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:2334: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:2336: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:2338: ./conftest
configure:2371: checking if Fortran "doubleprecision" is C "double"
configure:2380: /usr/bin/cc -c -DNDEBUG -O conftest.c
configure:2382: /usr/pgi/linux86/5.0/bin/pgf77 -O -c conftestf.f
configure:2384: /usr/pgi/linux86/5.0/bin/pgf77 -o conftest -O  conftestf.o 
conftest.o 
configure:2386: ./conftest
configure:2413: checking for Fortran-equivalent to netCDF "byte"
configure:2420: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f
configure:2435: checking for Fortran-equivalent to netCDF "short"
configure:2442: /usr/pgi/linux86/5.0/bin/pgf77 -c -O conftest.f
configure:2462: checking for math library
configure:2466: checking for tanh in -lc
configure:2485: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c -lc   1>&5
/tmp/cc87nyDa.o: In function `main':
/tmp/cc87nyDa.o(.text+0xa): undefined reference to `tanh'
collect2: ld returned 1 exit status
configure: failed program was:
#line 2474 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char tanh();

int main() {
tanh()
; return 0; }
configure:2504: checking for tanh in -lm
configure:2523: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c -lm   1>&5
configure:2555: checking for ar utility
configure:2562: checking for ar
configure:2629: checking ar flags
configure:2638: checking for nm utility
configure:2680: checking for nm
configure:2712: checking nm flags
configure:2722: checking for ranlib
configure:2751: checking for stdlib.h
configure:2761: /usr/bin/cc -E -DNDEBUG conftest.c >/dev/null 2>conftest.out
configure:2788: checking for sys/types.h
configure:2798: /usr/bin/cc -E -DNDEBUG conftest.c >/dev/null 2>conftest.out
configure:2824: checking for strerror
configure:2852: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:2877: checking for working ftruncate()
configure:2930: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
/tmp/ccKD2ldB.o: In function `main':
/tmp/ccKD2ldB.o(.text+0x15): the use of `tmpnam' is dangerous, better use 
`mkstemp'
configure:2952: checking for working alloca.h
configure:2964: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:2985: checking for alloca
configure:3018: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:3184: checking for st_blksize in struct stat
configure:3197: /usr/bin/cc -c -O -DNDEBUG conftest.c 1>&5
configure:3219: checking for IEEE floating point format
configure:3257: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:3278: checking for ANSI C header files
configure:3291: /usr/bin/cc -E -DNDEBUG conftest.c >/dev/null 2>conftest.out
configure:3358: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:3382: checking for size_t
configure:3415: checking for off_t
configure:3448: checking for ssize_t
configure:3481: checking for ptrdiff_t
configure:3514: checking for uchar
configure:3547: checking whether char is unsigned
configure:3586: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure: failed program was:
#line 3576 "configure"
#include "confdefs.h"
/* volatile prevents gcc2 from optimizing the test away on sparcs.  */
#if !defined(__STDC__) || __STDC__ != 1
#define volatile
#endif
main() {
  volatile char c = 255; exit(c < 0);
}
configure:3610: checking whether byte ordering is bigendian
configure:3628: /usr/bin/cc -c -O -DNDEBUG conftest.c 1>&5
configure:3643: /usr/bin/cc -c -O -DNDEBUG conftest.c 1>&5
configure: In function `main':
configure:3638: `not' undeclared (first use in this function)
configure:3638: (Each undeclared identifier is reported only once
configure:3638: for each function it appears in.)
configure:3638: parse error before "big"
configure: failed program was:
#line 3632 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
int main() {

#if BYTE_ORDER != BIG_ENDIAN
 not big endian
#endif
; return 0; }
configure:3700: checking size of short
configure:3719: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:3739: checking size of int
configure:3758: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:3778: checking size of long
configure:3797: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:3817: checking size of float
configure:3836: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:3856: checking size of double
configure:3875: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:3895: checking size of off_t
configure:3918: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:3938: checking size of size_t
configure:3961: /usr/bin/cc -o conftest -O -DNDEBUG  conftest.c  1>&5
configure:4062: checking for manual-page index command
configure:4066: checking binary distribution directory


-- make.log --
make[1]: Entering directory `/home/byh/tmp/netcdf-3.5.0/src'

Making `all' in directory /home/byh/tmp/netcdf-3.5.0/src/libsrc

make[2]: Entering directory `/home/byh/tmp/netcdf-3.5.0/src/libsrc'
/usr/bin/cc -c -O -I.  -DNDEBUG attr.c
/usr/bin/cc -c -O -I.  -DNDEBUG dim.c
/usr/bin/cc -c -O -I.  -DNDEBUG error.c
/usr/bin/cc -c -O -I.  -DNDEBUG -DVERSION=`cat ../VERSION` libvers.c
/usr/bin/cc -c -O -I.  -DNDEBUG nc.c
/usr/bin/cc -c -O -I.  -DNDEBUG ncio.c
/usr/bin/cc -c -O -I.  -DNDEBUG ncx.c
/usr/bin/cc -c -O -I.  -DNDEBUG putget.c
/usr/bin/cc -c -O -I.  -DNDEBUG string.c
/usr/bin/cc -c -O -I.  -DNDEBUG v1hpg.c
/usr/bin/cc -c -O -I.  -DNDEBUG v2i.c
/usr/bin/cc -c -O -I.  -DNDEBUG var.c
ar cru libnetcdf.a attr.o dim.o error.o libvers.o nc.o ncio.o ncx.o putget.o 
string.o v1hpg.o v2i.o var.o
ranlib libnetcdf.a
make[2]: Leaving directory `/home/byh/tmp/netcdf-3.5.0/src/libsrc'

Returning to directory /home/byh/tmp/netcdf-3.5.0/src

make[1]: Leaving directory `/home/byh/tmp/netcdf-3.5.0/src'
make[1]: Entering directory `/home/byh/tmp/netcdf-3.5.0/src'

Making `all' in directory /home/byh/tmp/netcdf-3.5.0/src/fortran

make[2]: Entering directory `/home/byh/tmp/netcdf-3.5.0/src/fortran'
/usr/bin/cc -c -O -I../libsrc  -DNDEBUG fort-attio.c
In file included from ncfortran.h:13,
                 from fort-attio.c:6:
cfortran.h:134:3: #error "cfortran.h:  Can't find your environment among:    - 
MIPS cc and f77 2.0. (e.g. Silicon Graphics, DECstations, ...)         - IBM 
AIX XL C and FORTRAN Compiler/6000 Version 01.01.0000.0000         - VAX   VMS 
CC 3.1 and FORTRAN 5.4.                                      - Alpha VMS DEC C 
1.3 and DEC FORTRAN 6.0.                               - Alpha OSF DEC C and 
DEC Fortran for OSF/1 AXP Version 1.2              - Apollo DomainOS 10.2 
(sys5.3) with f77 10.7 and cc 6.7.                - CRAY                        
                                           - NEC SX-4 SUPER-UX                  
                                    - CONVEX                                    
                             - Sun                                              
                      - PowerStation Fortran with Visual C++                    
               - HP9000s300/s700/s800 Latest test with: HP-UX A.08.07 A 
9000/730        - LynxOS: cc or gcc with f2c.                                   
         - VAXUltrix: vcc,cc or gcc with f2c. gcc or cc with f77.               
  -            f77 with vcc works; but missing link magic for f77 I/O.     -    
        NO fort. None of gcc, cc or vcc generate required names.    - f2c    : 
Use #define    f2cFortran, or cc -Df2cFortran                 - NAG f90: Use 
#define NAGf90Fortran, or cc -DNAGf90Fortran              - Absoft UNIX F77: 
Use #define AbsoftUNIXFortran or cc -DAbsoftUNIXFortran     - Absoft Pro 
Fortran: Use #define AbsoftProFortran     - Portland Group Fortran: Use #define 
pgiFortran"
make[2]: *** [fort-attio.o] Error 1
make[2]: Leaving directory `/home/byh/tmp/netcdf-3.5.0/src/fortran'
make[1]: *** [subdir_target] Error 1
make[1]: Leaving directory `/home/byh/tmp/netcdf-3.5.0/src'
make: *** [fortran/all] Error 2

Tom Yoksas