Re: [netcdfgroup] which netCDF for MacOS?

We build netcdf on a number of platforms using the Intel compilers. We use
-DpgiFortran to get correct symbol mangling from cfortran.h.

On the f77/f90/f95 issue, all modern commercial compilers support backwards
compatibility.  You may have to set a few flags, but it will work.  No
compiler maker is ever going to abandon f77 support.  There is too much old
working code that none of us care to rewrite.  It would be a terrible
business decision to support only f95.

Regards,
Roy Dennington

-----Original Message-----
From: netcdfgroup-bounces@xxxxxxxxxxxxxxxx
[mailto:netcdfgroup-bounces@xxxxxxxxxxxxxxxx] On Behalf Of michael bane
Sent: Thursday, December 20, 2007 4:25 AM
To: netcdfgroup@xxxxxxxxxxxxxxxx
Subject: Re: [netcdfgroup] which netCDF for MacOS?


On 20 Dec 2007, at 00:12, Roy Mendelssohn wrote:

> If I understand the message correctly, Netcdf creates it's Fortran  
> bindings to C using cfortran.h to define how things are passed, see  
> http://www-zeus.desy.de/~burow/cfortran/cfortran.html.  The error  
> suggests that the intel compiler isn't included.
>
> To be certain, find the cfortran.h file in he Fortran folder and  
> see if it defines the intel compiler. If it does, include in the  
> Fortran flags -Dwhateverthenames
>
> If you can't find the Intel compiler, I believe there is one for  
> AbsoftProUnix so adding -DAbsoftProUnix or whatever the name is  
> might work.
>
> Also, I believe cfortran.h is only used for f77, not for F90.  So  
> if you only need F90. exclude in the configure.  I forget the exact  
> option for this, but do ./configure --help and it should tell you  
> how to do that.
>
> HTH,
>
> -Roy M.

Yes it appears Intel compiler isn't in the cfortran.h but surely I'm  
missing something???
I've now installed 'f2c' and it seems that affects things since now  
there is no problem with "can't find your environment". It now  
appears to build some parts (not sure where to look to see what is  
built) and passes some tests but then fails in nf_test (see below) -  
anybody seen this before? Thanks, M

Making check in nf_test
make  nf_test tst_f77_v2   ftest tst_f90
/opt/intel/fc/10.1.006/bin/ifort -DHAVE_CONFIG_H -I. -I. -I.. -I../ 
fortran   -Df2cFortran   -I../libsrc -I../f90 -g -c -o test_get.o  
test_get.F
/opt/intel/fc/10.1.006/bin/ifort -DHAVE_CONFIG_H -I. -I. -I.. -I../ 
fortran   -Df2cFortran   -I../libsrc -I../f90 -g -c -o test_put.o  
test_put.F
/opt/intel/fc/10.1.006/bin/ifort -DHAVE_CONFIG_H -I. -I. -I.. -I../ 
fortran   -Df2cFortran   -I../libsrc -I../f90 -g -c -o nf_error.o  
nf_error.F
/opt/intel/fc/10.1.006/bin/ifort -DHAVE_CONFIG_H -I. -I. -I.. -I../ 
fortran   -Df2cFortran   -I../libsrc -I../f90 -g -c -o nf_test.o  
nf_test.F
/opt/intel/fc/10.1.006/bin/ifort -DHAVE_CONFIG_H -I. -I. -I.. -I../ 
fortran   -Df2cFortran   -I../libsrc -I../f90 -g -c -o test_read.o  
test_read.F
/opt/intel/fc/10.1.006/bin/ifort -DHAVE_CONFIG_H -I. -I. -I.. -I../ 
fortran   -Df2cFortran   -I../libsrc -I../f90 -g -c -o test_write.o  
test_write.F
/opt/intel/fc/10.1.006/bin/ifort -DHAVE_CONFIG_H -I. -I. -I.. -I../ 
fortran   -Df2cFortran   -I../libsrc -I../f90 -g -c -o util.o util.F
depbase=`echo fortlib.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; \
if cc -DHAVE_CONFIG_H -I. -I. -I.. -I../fortran   -Df2cFortran  -g - 
O2 -MT fortlib.o -MD -MP -MF "$depbase.Tpo" -c -o fortlib.o fortlib.c; \
then mv -f "$depbase.Tpo" "$depbase.Po"; else rm -f "$depbase.Tpo";  
exit 1; fi
/bin/sh ../libtool --tag=F77 --mode=link /opt/intel/fc/10.1.006/bin/ 
ifort   -I../libsrc -I../f90 -g   -o nf_test  test_get.o test_put.o  
nf_error.o nf_test.o test_read.o test_write.o util.o fortlib.o   ../ 
libsrc/libnetcdf.la
libtool: link: /opt/intel/fc/10.1.006/bin/ifort -I../libsrc -I../f90 - 
g -o nf_test test_get.o test_put.o nf_error.o nf_test.o test_read.o  
test_write.o util.o fortlib.o  ../libsrc/.libs/libnetcdf.a
ld: Undefined symbols:
_nf_open_
_nf_get_var1_text_
_nf_close_
_nf_get_var1_int1_
_nf_get_var1_int2_
_nf_get_var1_int_
_nf_get_var1_real_
_nf_get_var1_double_
{many more _nf symbols}
_nf_rename_att_
_nf_del_att_
_nf_set_fill_
_nf_set_default_format_
_min_schar_
_min_short_
_min_int_
_max_float_
_max_double_
_max_schar_
_max_short_
_max_int_
make[2]: *** [nf_test] Error 1
make[1]: *** [check-am] Error 2
make: *** [check-recursive] Error 1


_______________________________________________
netcdfgroup mailing list
netcdfgroup@xxxxxxxxxxxxxxxx
For list information or to unsubscribe,  visit:
http://www.unidata.ucar.edu/mailing_lists/