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.
>To: address@hidden >cc: address@hidden >From: Ben Foster <address@hidden> >Subject: nf_get_vara_real under Linux >Organization: UCAR/Unidata >Keywords: 200406292115.i5TLFhWb013666 Hi Ben, > this is a problem regarding netcdf on a Linux box: > > I have a fairly large f90 post-processor code that reads netcdf history > files. It runs fine on IBM and SGI machines, and I am porting to Linux. > > I finally got it to compile with pgf90 under RedHat 9. Everthing goes > fine until it comes time to read a var using nf_get_vara_real. If the > nf_get_vara_real call is not commented out, the program crashes with > SIGSEGV at the first executable statement of the routine that calls > nf_get_vara_real (it does not matter what the 1st exec statement is). > If I do comment out the nf_get_vara_real call, everything works fine, > I just don't get my array! > > I have pulled the routine out of the large code, and put it in a small > test program with minor changes, and everything works fine, including > the nf_get_vara_real. The problem appears to lie in the environment > of the larger code. > > A run under pgdbg gives the following error: > > Signalled SIGSEGV at 0x401bd89e, function _int_malloc, line 463 > 401bd89e: 89 7a 04 movl %edi,4(%edx) > > And the last 6 levels of traceback is as follows: > > #6 nc_rdfld line: 463 in "nchist_mod.F" address: 0x81c3306 > ncid = 17 , name = 0x14b6b680, itime = 2 , nzp = 45 , ixfld = 0 , ier = > 0 > #5 pgf90_ptr_alloc address: 0x83bf9e1 > #4 __hpf_alloc address: 0x83bf614 > #3 __hpf_gmalloc_without_abort address: 0x83c61c1 > #2 __hpf_malloc_without_abort address: 0x83c5fe4 > #1 __malloc address: 0x401bc8a0 > => #0 _int_malloc address: 0x401bd89e > > #1-#5 not shown are in my code. Line 463 of nchist_mod.F is the first > executable statement of sub nc_rdfld (which has the nf_gat_vara_real call). > > Does this indicate a memory problem? I have tried "limit data unlimited" > and "limit stack unlimited". I can send parts of the source code if that > would be helpful. Thanks for any suggestions, There was a bug in the PG F90 compiler, version 5.1, on Linux that might be the cause of the problem you are seeing: http://my.unidata.ucar.edu/cgi-bin/getfile?file=/content/support/help/MailArchives/netcdf/msg05332.html But if you have version 5.1-5 or later, that's probably not it. We would need something that reproduces the problem here to debug it further. I hope it's the compiler error that Portland Group has provided a fix for, otherwise it will require some serious debugging. --Russ