This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Ben, >Date: Fri, 20 Nov 1998 18:25:33 -0600 (CST) >From: Ben Horner-Johnson <address@hidden> >Organization: Northwestern University >To: address@hidden >Subject: Re: 19981119, nm.log (SunOS4.1.3, netcdf-3.4, gcc2.8.1) >Keywords: 199811190734.AAA21680 In the above message, you wrote: > fort-attio.o: > U .div > U .umul > U _free > U _malloc > U _memchr > U _memcpy > U _nc_get_att_double > U _nc_get_att_float > U _nc_get_att_int > U _nc_get_att_schar > U _nc_get_att_short > U _nc_get_att_text > U _nc_put_att_double > U _nc_put_att_float > U _nc_put_att_int > U _nc_put_att_schar > U _nc_put_att_short > U _nc_put_att_text > 00000bfc T _nf_get_att_double_ > 0000056c T _nf_get_att_int1_ OK. It looks like an underscore "_" is being appended to the Fortran-callable routines by the C compiler. From your previous messages, however, the Fortran compiler is appending an additional underscore: ld: Undefined symbol _nf_put_var1_double__ _nf_put_att_text__ This behavior is consistent with the g77 compiler using the f2c compiler's naming conventions. The netCDF pacakage can accomodate this behavior by including a definition of the C macro "f2cFortran" prior to executing the configure script. Try the following: 1. Go to the top-level source directory. 2. Execute the command "make distclean". 3. Define your environment variables like the last time. 4. Include the option "-Df2cFortran" in the CPPFLAGS environment variable. For example: export CPPFLAGS="-DNDEBUG -Df2cFortran" or setenv CPPFLAGS "-DNDEBUG -Df2cFortran" 5. Execute the configure script. Redirect standard output and standard error to the file "configure.log". If an error message occurs in the output, then stop and send me the file. 6. Execute the command "make". Redirect standard output and standard error to the file "make.log". If an error occurs, then stop and send me the files "make.log" and "configure.log". 7. Execute the command "make test". Redirect standard output and standard error to the file "test.log". If an error occurs, then stop and send me the files test.log, "make.log", and "configure.log". 8. Execute the command "make install". Redirect standard output and standard error to the file "install.log". If an error occurs, then stop and send me the files "install.log", "make.log", and "configure.log". 9. Execute the command "make clean". Please let me know if this helps. -------- Steve Emmerson <http://www.unidata.ucar.edu>