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

20031203: Problem with Absoft8.0 on Mac OS



Stephen,

>Date: Wed, 03 Dec 2003 09:18:07 -0800
>From: Stephen Leroy <address@hidden>
>Organization: NASA/JPL
>To: Steve Emmerson <address@hidden>
>Subject: Re: 20031202: Problem with Absoft8.0 on Mac OS

The above message contained the following:

> Thanks for the suggestions (as usual). I executed the "make" and "make
> test" but still have problems in the make test. I've attached the
> outputs of make (make_20021203.log), make test (test_20021203.log),
> and the current cfortran.h.
...

> Making `test' in directory /Users/ssl/Packages/netcdf-3.5.0/src/fortran
> 
> + /Applications/Absoft/bin/f90 -c -YEXT_SFX=_ -YCFRL=1 ftest.F
> ar cru ../libsrc/libnetcdf.a fort-attio.o fort-control.o fort-dim.o 
> fort-genatt.
> o fort-geninq.o fort-genvar.o fort-lib.o fort-misc.o fort-v2compat.o 
> fort-vario.
> o fort-var1io.o fort-varaio.o fort-varmio.o fort-varsio.o
> ranlib ../libsrc/libnetcdf.a
> /Applications/Absoft/bin/f90 -o ftest -YEXT_SFX=_ -YCFRL=1  ftest.o 
> ../libsrc/li
> bnetcdf.a 
> ./ftest
> *** Testing nccre ...
> *** Testing ncddef ...
> *** Testing ncvdef ...
> *** Testing ncapt, ncaptc ...
> *** Testing ncclos ...
> *** Testing ncvpt1 ...
> *** Testing ncvgt1 ...
> *** Testing ncvpt ...
> *** Testing ncopn, ncinq, ncdinq, ncvinq, ncanam, ncainq ...
> *** Testing ncvgt, ncvgtc ...
> *** Testing ncagt, ncagtc ...
> *** Testing ncredf, ncdren, ncvren, ncaren, ncendf ...
> *** Testing ncacpy ...
> *** Testing ncadel ...
> *** Testing fill values ...

Well, that's better.  The linker was able to find the netCDF-2 Fortran
symbols, so it appears that version 8 of the MacOS X Absoft Fortran
compiler doesn't use the same naming convention as version 7 (at least
when "-YEXT_SFX=_" and "-YCFRL=1" are used).

What do the "-YEXT_SFX=_" and "-YCFRL=1" options do?

...
> Making `test' in directory /Users/ssl/Packages/netcdf-3.5.0/src/nf_test
> 
> + /Applications/Absoft/bin/f90 -c -YEXT_SFX=_ -YCFRL=1 test_get.F
> 
> !/*      EXTERNAL       ATT_NAME */
>                         ^           
> cf90-1643 f90fe: WARNING TEST_NF_GET_VAR1_TEXT, File = tests.inc, Line = 199, 
> Co
> lumn = 25 
>   local variable VARID never referenced. 
> 
> 
>                         ^
> cf90-1643 f90fe: WARNING TEST_NF_GET_VAR1_TEXT, File = tests.inc, Line = 200, 
> Co
> lumn = 25 
>   local variable NATTS never referenced. 
> 
>       INTEGER           VARID

A Fortran compiler option might turn off ignorable warnings like the
above.

...
> Making `test' in directory /Users/ssl/Packages/netcdf-3.5.0/src/f90
> 
> /Applications/Absoft/bin/f90 -o netcdf_test -YEXT_NAMES=LCS -YEXT_SFX=_ 
> -YCFRL=1
>   netcdf_test.f90 netcdf.o typeSizes.o ../libsrc/libnetcdf.a 
> ld: Undefined symbols:
> _nf__create_
> _nf__create_mp_
> _nf__enddef_
> _nf__open_
> _nf__open_mp_
> _nf_abort_
> _nf_close_

I notice that the Absoft Fortran option "-YEXT_NAMES=LCS" was used when 
Fortran-90 code was compiled but not when Fortran-77 code was compiled,
i.e.,

    Making `test' in directory /Users/ssl/Packages/netcdf-3.5.0/src/fortran

    + /Applications/Absoft/bin/f90 -c -YEXT_SFX=_ -YCFRL=1 ftest.F

versus

    Making `test' in directory /Users/ssl/Packages/netcdf-3.5.0/src/f90

    /Applications/Absoft/bin/f90 -o netcdf_test -YEXT_NAMES=LCS -YEXT_SFX=_ \
    -YCFRL=1 netcdf_test.f90 netcdf.o typeSizes.o ../libsrc/libnetcdf.a 

I suspect that this is the reason that the Fortran-90 test routines 
can't find the Fortran-77 routines.  It could be that the makefile
"f90/Makefile" has the "-YEXT_NAMES=LCS" option hard-coded into it.

What does the "-YEXT_NAMES=LCS" option do?

Regards,
Steve Emmerson