Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
Hi netcdf group: We have installed netcdf 3.5 on a Linux system running RedHat 7.3. I am using pgf90 4.0-2 to compile a small f90 code, and am getting "undefined reference" errors: (sundog) foster : gmake pgf90 -c -I/opt/local/include rdmgcm.F pgf90 -c -I/opt/local/include mkcdf.F pgf90 -c -I/opt/local/include mkncfile.F pgf90 -o mkcdf mkcdf.o mkncfile.o rdmgcm.o -L/opt/local/lib -lnetcdf mkncfile.o: In function `mkncfile_': mkncfile.o(.text+0x110): undefined reference to `nf_create_' mkncfile.o: In function `handle_ncerr_': mkncfile.o(.text+0x77a): undefined reference to `nf_strerror_' gmake: *** [mkcdf] Error 2 (sundog) foster : I am using #include "netcdf.inc" in mkncfile.F, and it is apparently finding this file in /opt/local/include. The lib libnetcdf.a is in /opt/local/lib, and it has both nf_create and nf_strerror. I will attach the Makefile and mkncfile.F. Thanks for any suggestions, --Ben ----------------------------------------------------------------------- Ben Foster High Altitude Observatory (HAO) foster@xxxxxxxx phone: 303-497-1595 fax: 303-497-1589 Nat. Center for Atmos. Res. P.O. Box 3000 Boulder CO 80307 USA -----------------------------------------------------------------------
# UNAMES = $(shell uname -s) #----------------------------------------------------------------------- ifeq ($(UNAMES),Linux) SHELL=/bin/csh EXEC = mkcdf FC = pgf90 #FFLAGS = -I/local/d/foster/netcdf-3.5.0/include #LIBS = -L/local/d/foster/netcdf-3.5.0/lib -lnetcdf FFLAGS = -I/opt/local/include LIBS = -L/opt/local/lib -lnetcdf LDFLAGS endif #----------------------------------------------------------------------- ifeq ($(UNAMES),SunOS) SHELL=/bin/csh EXEC = mkcdf FC = f90 FFLAGS = -I/opt/local/include LIBS = -L/opt/local/lib -lnetcdf LDFLAGS endif #----------------------------------------------------------------------- # .SUFFIXES: .F include Objects #OBJS = mkcdf.F rdmgcm.F mkncfile.F $(EXEC): $(OBJS) $(FC) -o $@ $(OBJS) $(LDFLAGS) $(LIBS) include Depends .f.o: $(FC) -c $(FFLAGS) $< .F.o: $(FC) -c $(FFLAGS) $<
! subroutine mkncfile(fileout) implicit none #include "netcdf.inc" ! ! Args: character(len=*),intent(in) :: fileout ! ! Local: integer,save :: ncalls=0 integer :: istat,ncid character(len=120) :: char120 ! ncalls = ncalls+1 write(6,"('mkncfile: ncalls=',i4)") ncalls if (ncalls == 1) then istat = nf_create(fileout,NF_CLOBBER,ncid) if (istat /= NF_NOERR) then write(char120,"('Error return from nf_create for netcdf ', | 'file ',a)") trim(fileout) call handle_ncerr(istat,char120) ncid = 0 else write(6,"('Created netcdf file ',a,' ncid=',i8)") | trim(fileout),ncid endif endif end subroutine mkncfile !------------------------------------------------------------------- subroutine handle_ncerr(istat,msg) implicit none #include "netcdf.inc" ! ! Handle a netcdf lib error: ! integer,intent(in) :: istat character(len=*),intent(in) :: msg ! write(6,"(/72('-'))") write(6,"('>>> Error from netcdf library:')") write(6,"(a)") trim(msg) write(6,"('istat=',i5)") istat write(6,"(a)") nf_strerror(istat) write(6,"(72('-')/)") return end subroutine handle_ncerr
netcdfgroup
archives: