paralell-netcdf-1.1.1 installation problem

Gerald Creager gerry.creager at tamu.edu
Wed Feb 3 11:28:01 CST 2010


Looks like he's got g77 and not gfortran. I'd say it's time for a system 
update.  The other possibility is that mpich2 wasn't compiled properly 
with F90 enabled.

gerry

Wei-keng Liao wrote:
> Opps, did not see Rob's post.
> My response was exact what Rob pointed out.
> 
> Wei-keng
> 
> On Feb 3, 2010, at 11:18 AM, Wei-keng Liao wrote:
> 
>> Shawn,
>>
>> From you configure standard out, I can see these lines:
>>> checking mpi Fortran 77 compiler ... configure: WARNING: mpif77 
>>> either does not exist or is not executable: falling back to mpif77
>>> using mpif77
>>> checking mpi Fortran 90 compiler ... configure: WARNING: mpif90 
>>> either does not exist or is not executable: falling back to mpif77
>>> using mpif77
>>
>> Please check if your mpif77 and mpif90 are working (by compile a small 
>> test f77 and f90 programs).
>>
>> From your macros.make, if you check variable F90, it points to mpif77, 
>> not mpif90 it should be. Other compiler variables ( CC FC ) also 
>> indicate you are not using the mpi compiler under 
>> /home/mdl/yuazhang/IOTracing/mpich2-1.0.8
>>
>>
>> Wei-keng
>>
>> On Feb 3, 2010, at 10:40 AM, Shawn Kim wrote:
>>
>>> Hi,
>>>
>>> I did autoreconf before "configure". I attached the output from 
>>> configure and macros.make.
>>> Thank you.
>>>
>>> - Shawn
>>>
>>>
>>> $ ./configure 
>>> --prefix=/home/mdl/yuazhang/IOTracing/benchmark/parallel-netcdf-1.1.1/install 
>>> --with-mpi=/home/mdl/yuazhang/IOTracing/mpich2-1.0.8 --enable-fortran 
>>> | & tee c.txt
>>> checking for top-level source-directory... 
>>> /home/mdl/yuazhang/IOTracing/benchmark/parallel-netcdf-1.1.1
>>> checking for gcc... mpicc
>>> checking for C compiler default output file name... a.out
>>> checking whether the C compiler works... yes
>>> checking whether we are cross compiling... no
>>> checking for suffix of executables...
>>> checking for suffix of object files... o
>>> checking whether we are using the GNU C compiler... yes
>>> checking whether mpicc accepts -g... yes
>>> checking for mpicc option to accept ISO C89... none needed
>>> checking how to run the C preprocessor... mpicc -E
>>> checking for grep that handles long lines and -e... /bin/grep
>>> checking for egrep... /bin/grep -E
>>> checking for ANSI C header files... yes
>>> checking for a BSD-compatible install... /usr/bin/install -c
>>> checking for bison... bison -y
>>> checking for flex... flex
>>> checking for yywrap in -lfl... yes
>>> checking lex output file root... lex.yy
>>> checking whether yytext is a pointer... yes
>>> configure: checking for m4 preprocessor...
>>> checking for m4... m4
>>> checking m4 flags... -B10000
>>> checking for gcc... (cached) mpicc
>>> checking whether we are using the GNU C compiler... (cached) yes
>>> checking whether mpicc accepts -g... (cached) yes
>>> checking for mpicc option to accept ISO C89... (cached) none needed
>>> checking user-defined Fortran-77 compiler "mpif77"... works
>>> checking for Fortran .F compiler...
>>> checking if Fortran-77 compiler handles *.F files... yes
>>> checking how to make dependencies... false
>>> configure: checking for nm utility...
>>> checking for nm... nm
>>> checking nm flags...
>>> checking for C-equivalent to Fortran routine "SUB"... sub_
>>> configure: checking for math library...
>>> checking for tanh in -lc... no
>>> checking for tanh in -lm... yes
>>> configure: checking for ar utility...
>>> checking for ar... ar
>>> checking ar flags... cru
>>> configure: checking for nm utility...
>>> checking for nm... (cached) nm
>>> checking nm flags...
>>> checking for ranlib... ranlib
>>> checking for C-equivalent to Fortran routine "SUB_A"... sub_a__
>>> checking mpi C compiler ... configure: WARNING: mpicc either does not 
>>> exist or is not executable: falling back to mpicc
>>> using mpicc
>>> checking mpi C++ compiler ... using 
>>> /home/mdl/yuazhang/IOTracing/mpich2-1.0.8/bin/mpicxx
>>> checking mpi Fortran 77 compiler ... configure: WARNING: mpif77 
>>> either does not exist or is not executable: falling back to mpif77
>>> using mpif77
>>> checking mpi Fortran 90 compiler ... configure: WARNING: mpif90 
>>> either does not exist or is not executable: falling back to mpif77
>>> using mpif77
>>> checking MPI-IO support in MPI implementation... yes
>>> checking for sys/types.h... yes
>>> checking for sys/stat.h... yes
>>> checking for stdlib.h... yes
>>> checking for string.h... yes
>>> checking for memory.h... yes
>>> checking for strings.h... yes
>>> checking for inttypes.h... yes
>>> checking for stdint.h... yes
>>> checking for unistd.h... yes
>>> checking for stdlib.h... (cached) yes
>>> checking for sys/types.h... (cached) yes
>>> checking for strerror... yes
>>> checking for working alloca.h... yes
>>> checking for alloca... yes
>>> checking for struct stat.st_blksize... yes
>>> checking for IEEE floating point format... yes
>>> checking for size_t... yes
>>> checking if MPI_Offset is size 8... yes
>>> checking for MPI_Request_get_status... yes
>>> checking for MPI_Type_dup... yes
>>> checking for MPI_Info_dup... yes
>>> checking if MPI includes MPI_COMBINER_DUP... yes
>>> checking if MPI includes MPI_COMBINER_HVECTOR_INTEGER... yes
>>> checking if MPI includes MPI_COMBINER_HINDEXED_INTEGER... yes
>>> checking if MPI includes MPI_COMBINER_SUBARRAY... yes
>>> checking if MPI includes MPI_COMBINER_DARRAY... yes
>>> checking if MPI includes MPI_COMBINER_RESIZED... yes
>>> checking if MPI includes MPI_COMBINER_STRUCT_INTEGER... yes
>>> checking if MPI includes MPI_COMBINER_INDEXED_BLOCK... yes
>>> checking if MPI includes MPI_COMBINER_F90_REAL... yes
>>> checking if MPI includes MPI_COMBINER_F90_INTEGER... yes
>>> checking if MPI includes MPI_COMBINER_F90_COMPLEX... yes
>>> checking if MPI includes MPI_CHARACTER... yes
>>> checking if MPI includes MPI_REAL... yes
>>> checking if MPI includes MPI_INTEGER... yes
>>> checking if MPI includes MPI_DOUBLE_PRECISION... yes
>>> checking if MPI includes MPI_INTEGER1... yes
>>> checking if MPI includes MPI_INTEGER2... yes
>>> checking if MPI includes MPI_INTEGER4... yes
>>> checking if MPI includes MPI_INTEGER8... yes
>>> checking if MPI includes MPI_INTEGER16... yes
>>> checking if MPI includes MPI_REAL4... yes
>>> checking if MPI includes MPI_REAL8... yes
>>> checking if MPI includes MPI_REAL16... yes
>>> checking if MPI includes MPI_COMPLEX8... yes
>>> checking if MPI includes MPI_COMPLEX16... yes
>>> checking if MPI includes MPI_COMPLEX32... yes
>>> checking if MPI includes MPI_UB... yes
>>> checking if MPI includes MPI_LB... 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 for short... yes
>>> checking size of short... 2
>>> checking for int... yes
>>> checking size of int... 4
>>> checking for long... yes
>>> checking size of long... 4
>>> checking for float... yes
>>> checking size of float... 4
>>> checking for double... yes
>>> checking size of double... 8
>>> checking for size_t... (cached) yes
>>> checking size of size_t... 4
>>> checking sizeof MPI_Offset... (cached) 8
>>> 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 Fortran "integer*8"... yes
>>> checking for manual-page index command...
>>> checking for special C compiler options needed for large files... no
>>> checking for _FILE_OFFSET_BITS value needed for large files... 64
>>> checking for _LARGE_FILES value needed for large files... no
>>> checking for library containing MPI_File_sync... none required
>>> checking for off_t... (cached) yes
>>> checking size of off_t... 8
>>> configure: creating ./config.status
>>> config.status: creating macros.make
>>> config.status: creating Makefile
>>> config.status: creating src/Makefile
>>> config.status: creating test/Makefile
>>> config.status: creating src/lib/Makefile
>>> config.status: creating src/lib/pnetcdf.h
>>> config.status: creating src/libf/Makefile
>>> config.status: creating test/common/Makefile
>>> config.status: creating test/test_double/Makefile
>>> config.status: creating test/test_double_int/Makefile
>>> config.status: creating test/test_float/Makefile
>>> config.status: creating test/test_int/Makefile
>>> config.status: creating test/test_dtype/Makefile
>>> config.status: creating test/nc_test/Makefile
>>> config.status: creating test/nf_test/Makefile
>>> config.status: creating test/fandc/Makefile
>>> config.status: creating src/utils/Makefile
>>> config.status: creating src/utils/ncdump/Makefile
>>> config.status: creating src/utils/ncgen/Makefile
>>> config.status: creating test/testcases/Makefile
>>> config.status: creating test/C/Makefile
>>> config.status: creating test/mcoll_perf/Makefile
>>> config.status: creating test/test_check_header/Makefile
>>> config.status: creating test/largefile/Makefile
>>> config.status: creating test/mcoll_fortran/Makefile
>>> config.status: creating src/lib/ncconfig.h
>>> config.status: src/lib/ncconfig.h is unchanged
>>> config.status: creating src/libf/pnetcdf.inc
>>> config.status: creating src/libf/nfconfig.inc
>>>
>>> parallel-netCDF version 1.1.1pre1 features:
>>> . parallel-netcdf configured WITH support for large files
>>> . parallel-netcdf configured WITH fortran bindings
>>> . parallel-netcdf configured WITH nonblocking routines
>>> . parallel-netcdf configured WITH giant variable support
>>>
>>>
>>>
>>> macros.make
>>>
>>> # $Id: macros.make.in 771 2010-01-22 21:00:23Z robl $
>>>
>>> # The purpose of this file is to contain common make(1) macros.
>>> # It should be processed by every execution of that utility.
>>>
>>>
>>> # POSIX shell.  Shouldn't be necessary -- but is under IRIX 5.3.
>>> SHELL           = /bin/sh
>>>
>>>
>>> # Installation Directories:
>>> SRCDIR          = 
>>> /home/mdl/yuazhang/IOTracing/benchmark/parallel-netcdf-1.1.1
>>> prefix          = 
>>> /home/mdl/yuazhang/IOTracing/benchmark/parallel-netcdf-1.1.1/install
>>> exec_prefix     = $(prefix)
>>> INCDIR          = $(exec_prefix)/include
>>> LIBDIR          = $(exec_prefix)/lib
>>> BINDIR          = $(exec_prefix)/bin
>>> MANDIR          = $(prefix)/man
>>>
>>>
>>> # Preprocessing:
>>> M4              = m4
>>> M4FLAGS         = -B10000
>>> CPP             = mpicc -E
>>> CPPFLAGS        = $(INCLUDES) $(DEFINES)
>>> FPP             =
>>> FPPFLAGS        = $(CPPFLAGS)
>>> CXXCPPFLAGS     = $(CPPFLAGS)
>>>
>>>
>>> # Compilation:
>>> CC              = mpicc
>>> CXX             = /home/mdl/yuazhang/IOTracing/mpich2-1.0.8/bin/mpicxx
>>> FC              = mpif77
>>> F90             = mpif77
>>> CFLAGS          = -g -O2
>>> CXXFLAGS        = -g -O2
>>> FFLAGS          =
>>> F90FLAGS        =
>>> NETCDF.MOD      = @NETCDF_MOD@
>>> CC_MAKEDEPEND   = false
>>> COMPILE.c       = $(CC) -c $(CFLAGS) $(CPPFLAGS)
>>> COMPILE.cxx     = $(CXX) -c $(CXXFLAGS) $(CXXCPPFLAGS)
>>> COMPILE.f       = $(FC) -c $(FFLAGS)
>>> COMPILE.F90     = $(F90) -c $(F90FLAGS)
>>> # The following command isn't available on some systems; therefore, the
>>> # `.F.o' rule is relatively complicated.
>>> COMPILE.F       = $(COMPILE.f) $(FPPFLAGS)
>>>
>>>
>>> # Linking:
>>> MATHLIB         = -lm
>>> FLIBS           =
>>> F90LIBS         = @F90LIBS@
>>> LIBS            =
>>> F90LDFLAGS      = $(LDFLAGS)
>>> LINK.c          = $(CC) -o $@ $(CFLAGS) $(LDFLAGS)
>>> LINK.cxx        = $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS)
>>> LINK.F          = $(FC) -o $@ $(FFLAGS) $(FLDFLAGS)
>>> LINK.f          = $(FC) -o $@ $(FFLAGS) $(FLDFLAGS)
>>> LINK.F90        = $(F90) -o $@ $(F90FLAGS) $(F90LDFLAGS)
>>>
>>>
>>> # Manual pages:
>>> WHATIS          = whatis
>>> # The following macro should be empty on systems that don't
>>> # allow users to create their own manual-page indexes.
>>> MAKEWHATIS_CMD  =
>>>
>>>
>>> # Misc. Utilities:
>>> AR              = ar
>>> ARFLAGS         = cru
>>> RANLIB          = ranlib
>>> TARFLAGS        = -chf
>>>
>>>
>>> # Dummy macros: used only as placeholders to silence GNU make.  They are
>>> # redefined, as necessary, in subdirectory makefiles.
>>> HEADER          = dummy_header
>>> HEADER1         = dummy_header1
>>> HEADER2         = dummy_header2
>>> HEADER3         = dummy_header3
>>> LIBRARY         = dummy_library.a
>>> MANUAL          = dummy_manual
>>> PROGRAM         = dummy_program
>>>
>>>
>>> # Distribution macros:
>>> FTPDIR          = /home/ftp/pub/$(PACKAGE)
>>> FTPBINDIR       = @FTPBINDIR@
>>> VERSION         = dummy_version
>>>
>>>
>>>
>>>
>>> On Wed, Feb 3, 2010 at 2:09 AM, Wei-keng Liao 
>>> <wkliao at ece.northwestern.edu> wrote:
>>> Hi, Shawn
>>>
>>> Did you run "autoreconf" before "configure"?
>>>
>>> Can you send us the standard output from you configure run
>>> and the file macros.make?
>>>
>>> Wei-keng
>>>
>>>
>>>
>>> On Feb 2, 2010, at 11:30 PM, Shawn Kim wrote:
>>>
>>> Hi, all
>>>
>>> I recently installed the newest parallel-netcdf-1.1.1 on two 
>>> different machines with different (MPICH2 + PVFS2)'s.
>>> I succeeded it on one machine but I failed it on the other machine. 
>>> (I slighly modified MPI_IO function calls but I believed it didn't 
>>> affect the compilation.)
>>> Both are in the same clusters. Error occurred while compiling libf.
>>>
>>> /bin/rm -f pnetcdf.F90
>>> echo "module pnetcdf" > pnetcdf.F90
>>> /bin/cat pnetcdf.inc >> pnetcdf.F90
>>> echo "end module pnetcdf" >> pnetcdf.F90
>>> mpif77 -c  -c pnetcdf.F90
>>> g77: pnetcdf.F90: linker input file unused because linking not done
>>> /usr/bin/install -c -d -m 755 
>>> /home/mdl/yuazhang/IOTracing/benchmark/parallel-netcdf-1.1.1/install/include 
>>>
>>> /usr/bin/install -c -m 644 pnetcdf.inc pnetcdf.mod 
>>> /home/mdl/yuazhang/IOTracing/benchmark/parallel-netcdf-1.1.1/install/include 
>>>
>>> /usr/bin/install: cannot stat `pnetcdf.mod': No such file or directory
>>> make: *** 
>>> [/home/mdl/yuazhang/IOTracing/benchmark/parallel-netcdf-1.1.1/install/include/pnetcdf.inc] 
>>> Error 1
>>>
>>> The error part is:
>>> mpif77 -c  -c pnetcdf.F90
>>> g77: pnetcdf.F90: linker input file unused because linking not done
>>>
>>> It seems to me like fortran compiler mismatch, but in the other 
>>> machine it works without any error or warning. I did set environment 
>>> variable correctly like:
>>>
>>> CC=mpicc
>>> FC=mpif77
>>> F90=mpif90
>>> MPICC=mpicc
>>> MPIF77=mpif77
>>> MPIF90=mpif90
>>>
>>> What else can I do?
>>>
>>> Thank you in advance.
>>>
>>> - Shawn
>>>
>>>
>>
> 

-- 
Gerry Creager -- gerry.creager at tamu.edu
Texas Mesonet -- AATLT, Texas A&M University
Cell: 979.229.5301 Office: 979.458.4020 FAX: 979.862.3983
Office: 1700 Research Parkway Ste 160, TAMU, College Station, TX 77843


More information about the parallel-netcdf mailing list