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

20020226: Intel Fortran ifc test failure: missing getarg_, iargc_



Adrian,

>Date: Tue, 26 Feb 2002 15:20:55 -0500
>From: Adrian Burd <address@hidden>
>Organization: ?
>To: Steve Emmerson <address@hidden>
>Subject: Re: 20020226: Intel Fortran ifc test failure: missing getarg_, iargc_
>Keywords: 200202261610.g1QGACx26736

The above message contained the following:

> Many thanks for the reply. I missed that it was a known problem - my
> apologies. Anyway, I've gotten the testing phase to compile, but all
> (I think) of the fortran test fail. 
> 
> Here's how I got the compile to work:
> 
>  a) define environment variables
> 
>     F90="/opt/intel/compiler50/ia32/bin/ifx"; export F90
>     CPPFLAGS="-DINTEL_COMPILER -DFLIB -DFPORT"; export CPPFLAGS
>     F90FLAGS="-Vaxlib"; export F90FLAGS
>     FLIBS="-L/opt/intel/compiler50/ia32/lib -lPEPCF90"; export FLIBS
> 
>  b) then ./configure --prefix=/usr/local
>          make 
>          make test
> 
> The Intel Compiler provides some "compatibility libraries", and that's
> where getarg and iargc are hidden (libPEPCF90). Now, the compile flag
> -Vaxlib SHOULD make these known to the compiler, but I found that I
> needed to ALSO explicity set the FLIBS flag as well - using one or the
> other on their own doesn't seem to work.
> 
> Now, in reading the manual for the IFC libraries, I came across
> something about the interface between the code and the portability
> library. There's an include file that one can include, but there's the
> hint that extra things need to be done as well. This might be the
> cause of the present failure of the testing phase; I need to spend
> time and look at this further.
> 
> Anway, for the record, here's the output from the configure, make and
> make test etc. If the errors seem familiar to you, can you let me know
> since it would help me track down what's going wrong. It maybe that
> all that is needed is a simple include statement, but it may be more
> complex than that.
> 
> Thanks,
> 
> Adrian

...
> Making `test' in directory 
> /home/adrian/Software/NetCDF/netcdf-3.5.0/src/nc_test
> 
> make[2]: Entering directory 
> `/home/adrian/Software/NetCDF/netcdf-3.5.0/src/nc_test'
> cc -c -O -I../libsrc  -DINTEL_COMPILER -DFLIB -DFPORT nc_test.c
> cc -c -O -I../libsrc  -DINTEL_COMPILER -DFLIB -DFPORT error.c
> cc -c -O -I../libsrc  -DINTEL_COMPILER -DFLIB -DFPORT test_get.c
> cc -c -O -I../libsrc  -DINTEL_COMPILER -DFLIB -DFPORT test_put.c
> cc -c -O -I../libsrc  -DINTEL_COMPILER -DFLIB -DFPORT test_read.c
> cc -c -O -I../libsrc  -DINTEL_COMPILER -DFLIB -DFPORT test_write.c
> cc -c -O -I../libsrc  -DINTEL_COMPILER -DFLIB -DFPORT util.c
> cc -o nc_test -O  nc_test.o error.o test_get.o test_put.o test_read.o 
> test_write.o util.o -L../libsrc -lnetcdf -lm 
> ./nc_test -c
> ./nc_test
> *** Testing nc_strerror ... ok
> *** Testing nc_open ... ok
> *** Testing nc_close ... ok
> *** Testing nc_inq ... ok
> *** Testing nc_inq_dimid ... ok
> *** Testing nc_inq_dim ... ok
> *** Testing nc_inq_dimlen ... ok
> *** Testing nc_inq_dimname ... ok
> *** Testing nc_inq_varid ... ok
> *** Testing nc_inq_var ... ok
> *** Testing nc_inq_natts ... ok
> *** Testing nc_inq_ndims ... ok
> *** Testing nc_inq_nvars ... ok
> *** Testing nc_inq_unlimdim ... ok
> *** Testing nc_inq_vardimid ... ok
> *** Testing nc_inq_varname ... ok
> *** Testing nc_inq_varnatts ... ok
> *** Testing nc_inq_varndims ... ok
> *** Testing nc_inq_vartype ... ok
> *** Testing nc_get_var_text ...  179 good comparisons. ok
> *** Testing nc_get_var_uchar ...  264 good comparisons. ok
> *** Testing nc_get_var_schar ...  269 good comparisons. ok
> *** Testing nc_get_var_short ...  682 good comparisons. ok
> *** Testing nc_get_var_int ...  1189 good comparisons. ok
> *** Testing nc_get_var_long ...  1189 good comparisons. ok
> *** Testing nc_get_var_float ...  1194 good comparisons. ok
> *** Testing nc_get_var_double ...  1207 good comparisons. ok
> *** Testing nc_get_var1_text ...  179 good comparisons. ok
> *** Testing nc_get_var1_uchar ...  264 good comparisons. ok
> *** Testing nc_get_var1_schar ...  269 good comparisons. ok
> *** Testing nc_get_var1_short ...  682 good comparisons. ok
> *** Testing nc_get_var1_int ...  1189 good comparisons. ok
> *** Testing nc_get_var1_long ...  1189 good comparisons. ok
> *** Testing nc_get_var1_float ...  1194 good comparisons. ok
> *** Testing nc_get_var1_double ...  1207 good comparisons. ok
> *** Testing nc_get_vara_text ...  179 good comparisons. ok
> *** Testing nc_get_vara_uchar ...  264 good comparisons. ok
> *** Testing nc_get_vara_schar ...  269 good comparisons. ok
> *** Testing nc_get_vara_short ...  682 good comparisons. ok
> *** Testing nc_get_vara_int ...  1189 good comparisons. ok
> *** Testing nc_get_vara_long ...  1189 good comparisons. ok
> *** Testing nc_get_vara_float ...  1194 good comparisons. ok
> *** Testing nc_get_vara_double ...  1207 good comparisons. ok
> *** Testing nc_get_vars_text ...  179 good comparisons. ok
> *** Testing nc_get_vars_uchar ...  264 good comparisons. ok
> *** Testing nc_get_vars_schar ...  269 good comparisons. ok
> *** Testing nc_get_vars_short ...  682 good comparisons. ok
> *** Testing nc_get_vars_int ...  1189 good comparisons. ok
> *** Testing nc_get_vars_long ...  1189 good comparisons. ok
> *** Testing nc_get_vars_float ...  1194 good comparisons. ok
> *** Testing nc_get_vars_double ...  1207 good comparisons. ok
> *** Testing nc_get_varm_text ...  179 good comparisons. ok
> *** Testing nc_get_varm_uchar ...  264 good comparisons. ok
> *** Testing nc_get_varm_schar ...  269 good comparisons. ok
> *** Testing nc_get_varm_short ...  682 good comparisons. ok
> *** Testing nc_get_varm_int ...  1189 good comparisons. ok
> *** Testing nc_get_varm_long ...  1189 good comparisons. ok
> *** Testing nc_get_varm_float ...  1194 good comparisons. ok
> *** Testing nc_get_varm_double ...  1207 good comparisons. ok
> *** Testing nc_get_att_text ...  7 good comparisons. ok
> *** Testing nc_get_att_uchar ...  5 good comparisons. ok
> *** Testing nc_get_att_schar ...  7 good comparisons. ok
> *** Testing nc_get_att_short ...  15 good comparisons. ok
> *** Testing nc_get_att_int ...  19 good comparisons. ok
> *** Testing nc_get_att_long ...  19 good comparisons. ok
> *** Testing nc_get_att_float ...  21 good comparisons. ok
> *** Testing nc_get_att_double ...  27 good comparisons. ok
> *** Testing nc_inq_att ... ok
> *** Testing nc_inq_attname ... ok
> *** Testing nc_inq_attid ... ok
> *** Testing nc_inq_attlen ... ok
> *** Testing nc_inq_atttype ... ok
> *** Testing nc_create ... ok
> *** Testing nc_redef ...  1386 good comparisons.  34 good comparisons. ok
> *** Testing nc_sync ...  34 good comparisons.  1386 good comparisons. ok
> *** Testing nc_abort ...  1386 good comparisons.  34 good comparisons. ok
> *** Testing nc_def_dim ... ok
> *** Testing nc_rename_dim ... ok
> *** Testing nc_def_var ... ok
> *** Testing nc_put_var_text ...  179 good comparisons. ok
> *** Testing nc_put_var_uchar ...  264 good comparisons. ok
> *** Testing nc_put_var_schar ...  269 good comparisons. ok
> *** Testing nc_put_var_short ...  682 good comparisons. ok
> *** Testing nc_put_var_int ...  1189 good comparisons. ok
> *** Testing nc_put_var_long ...  1189 good comparisons. ok
> *** Testing nc_put_var_float ...  1194 good comparisons. ok
> *** Testing nc_put_var_double ...  1207 good comparisons. ok
> *** Testing nc_put_var1_text ...  179 good comparisons. ok
> *** Testing nc_put_var1_uchar ...  264 good comparisons. ok
> *** Testing nc_put_var1_schar ...  269 good comparisons. ok
> *** Testing nc_put_var1_short ...  682 good comparisons. ok
> *** Testing nc_put_var1_int ...  1189 good comparisons. ok
> *** Testing nc_put_var1_long ...  1189 good comparisons. ok
> *** Testing nc_put_var1_float ...  1194 good comparisons. ok
> *** Testing nc_put_var1_double ...  1207 good comparisons. ok
> *** Testing nc_put_vara_text ...  179 good comparisons. ok
> *** Testing nc_put_vara_uchar ...  264 good comparisons. ok
> *** Testing nc_put_vara_schar ...  269 good comparisons. ok
> *** Testing nc_put_vara_short ...  682 good comparisons. ok
> *** Testing nc_put_vara_int ...  1189 good comparisons. ok
> *** Testing nc_put_vara_long ...  1189 good comparisons. ok
> *** Testing nc_put_vara_float ...  1194 good comparisons. ok
> *** Testing nc_put_vara_double ...  1207 good comparisons. ok
> *** Testing nc_put_vars_text ...  179 good comparisons. ok
> *** Testing nc_put_vars_uchar ...  264 good comparisons. ok
> *** Testing nc_put_vars_schar ...  269 good comparisons. ok
> *** Testing nc_put_vars_short ...  682 good comparisons. ok
> *** Testing nc_put_vars_int ...  1189 good comparisons. ok
> *** Testing nc_put_vars_long ...  1189 good comparisons. ok
> *** Testing nc_put_vars_float ...  1194 good comparisons. ok
> *** Testing nc_put_vars_double ...  1207 good comparisons. ok
> *** Testing nc_put_varm_text ...  179 good comparisons. ok
> *** Testing nc_put_varm_uchar ...  264 good comparisons. ok
> *** Testing nc_put_varm_schar ...  269 good comparisons. ok
> *** Testing nc_put_varm_short ...  682 good comparisons. ok
> *** Testing nc_put_varm_int ...  1189 good comparisons. ok
> *** Testing nc_put_varm_long ...  1189 good comparisons. ok
> *** Testing nc_put_varm_float ...  1194 good comparisons. ok
> *** Testing nc_put_varm_double ...  1207 good comparisons. ok
> *** Testing nc_rename_var ...  1386 good comparisons. ok
> *** Testing nc_put_att_text ...  7 good comparisons. ok
> *** Testing nc_put_att_uchar ...  5 good comparisons. ok
> *** Testing nc_put_att_schar ...  7 good comparisons. ok
> *** Testing nc_put_att_short ...  15 good comparisons. ok
> *** Testing nc_put_att_int ...  19 good comparisons. ok
> *** Testing nc_put_att_long ...  19 good comparisons. ok
> *** Testing nc_put_att_float ...  21 good comparisons. ok
> *** Testing nc_put_att_double ...  27 good comparisons. ok
> *** Testing nc_copy_att ...  34 good comparisons. ok
> *** Testing nc_rename_att ...  34 good comparisons. ok
> *** Testing nc_del_att ... ok
> *** Testing nc_set_fill ...  2796 good comparisons. ok
> 
> Total number of failures: 0
> *** Success ***
> make[2]: Leaving directory 
> `/home/adrian/Software/NetCDF/netcdf-3.5.0/src/nc_test'
...

> Making `test' in directory 
> /home/adrian/Software/NetCDF/netcdf-3.5.0/src/nf_test
> 
> make[2]: Entering directory 
> `/home/adrian/Software/NetCDF/netcdf-3.5.0/src/nf_test'
> + /opt/intel/compiler50/ia32/bin/ifc -c test_get.F
>    external subroutine TEST_NF_GET_VAR1_TEXT
> 
>       parameter (nf_fill_float = 9.9692099683868690e+36)
                                 ^
> Warning 101 at (47:./../fortran/netcdf.inc) : Constant truncated -- precision 
> too great
> 
>       parameter (nf_fill_double = 9.9692099683868690e+36)
>                                   ^
> Warning 101 at (49:./../fortran/netcdf.inc) : Constant truncated -- precision 
> too great
> 
>       character*80   nf_inq_libvers
>                ^
> Comment 15 at (178:./../fortran/netcdf.inc) : This feature is obsolescent in 
> Fortran 95
...

Lots of warning messages.  You might see if there's a compiler option to
disable them.

> 55944 Lines Compiled
> cc -c -O   -DINTEL_COMPILER -DFLIB -DFPORT fortlib.c
> /opt/intel/compiler50/ia32/bin/ifc -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.a -L/opt/intel/compiler50/ia32/lib -lPEPCF90 -lm 
> ./nf_test -c
> ./nf_test
> *** Testing nf_strerror ... 
> *** Testing nf_open ... 
> *** Testing nf_close ... 
> *** Testing nf_inq ... 
> *** Testing nf_inq_dimid ... 
> *** Testing nf_inq_dim ... 
> *** Testing nf_inq_dimlen ... 
> *** Testing nf_inq_dimname ... 
> *** Testing nf_inq_varid ... 
> *** Testing nf_inq_var ... 
> *** Testing nf_inq_natts ... 
> *** Testing nf_inq_ndims ... 
> *** Testing nf_inq_nvars ... 
> *** Testing nf_inq_unlimdim ... 
> *** Testing nf_inq_vardimid ... 
> *** Testing nf_inq_varname ... 
> *** Testing nf_inq_varnatts ... 
> *** Testing nf_inq_varndims ... 
> *** Testing nf_inq_vartype ... 
> *** Testing nf_get_var1_text ... 
> *** Testing nf_get_var1_int1 ... 
> *** Testing nf_get_var1_int2 ... 
> *** Testing nf_get_var1_int ... 
> *** Testing nf_get_var1_real ... 
> *** Testing nf_get_var1_double ... 
> *** Testing nf_get_var_text ... 
> *** Testing nf_get_var_int1 ... 
> *** Testing nf_get_var_int2 ... 
> *** Testing nf_get_var_int ... 
> *** Testing nf_get_var_real ... 
> *** Testing nf_get_var_double ... 
> *** Testing nf_get_vara_text ... 
> *** Testing nf_get_vara_int1 ... 
> *** Testing nf_get_vara_int2 ... 
> *** Testing nf_get_vara_int ... 
> *** Testing nf_get_vara_real ... 
> *** Testing nf_get_vara_double ... 
> *** Testing nf_get_vars_text ... 
> *** Testing nf_get_vars_int1 ... 
> *** Testing nf_get_vars_int2 ... 
> *** Testing nf_get_vars_int ... 
> *** Testing nf_get_vars_real ... 
> *** Testing nf_get_vars_double ... 
> *** Testing nf_get_varm_text ... 
> *** Testing nf_get_varm_int1 ... 
> *** Testing nf_get_varm_int2 ... 
> *** Testing nf_get_varm_int ... 
> *** Testing nf_get_varm_real ... 
> *** Testing nf_get_varm_double ... 
> *** Testing nf_get_att_text ... 
> *** Testing nf_get_att_int1 ... 
> *** Testing nf_get_att_int2 ... 
> *** Testing nf_get_att_int ... 
> *** Testing nf_get_att_real ... 
> *** Testing nf_get_att_double ... 
> *** Testing nf_inq_att ... 
> *** Testing nf_inq_attname ... 
*** Testing nf_inq_attid ... 
> *** Testing nf_inq_attlen ... 
> *** Testing nf_inq_atttype ... 
> *** Testing nf_create ... 
> *** Testing nf_redef ... 
> *** Testing nf_enddef ... 
> *** Testing nf_sync ... 
> *** Testing nf_abort ... 
> *** Testing nf_def_dim ... 
> *** Testing nf_rename_dim ... 
> *** Testing nf_def_var ... 
> *** Testing nf_put_var1_text ... 
> *** Testing nf_put_var1_int1 ... 
> *** Testing nf_put_var1_int2 ... 
> *** Testing nf_put_var1_int ... 
> *** Testing nf_put_var1_real ... 
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>   
>   
>    ###            4  FAILURES TESTING nf_put_var1_real! ###
> *** Testing nf_put_var1_double ... 
> *** Testing nf_put_var_text ... 
> *** Testing nf_put_var_int1 ... 
> *** Testing nf_put_var_int2 ... 
> *** Testing nf_put_var_int ... 
> *** Testing nf_put_var_real ... 
>  Numeric conversion not representable                                         
>   
>   
>  Numeric conversion not representable                                         
>   
>   
>  Numeric conversion not representable                                         
>   
>   
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>   
>   
>    ###            7  FAILURES TESTING nf_put_var_real! ###
> *** Testing nf_put_var_double ... 
> *** Testing nf_put_vara_text ... 
> *** Testing nf_put_vara_int1 ... 
> *** Testing nf_put_vara_int2 ... 
> *** Testing nf_put_vara_int ... 
> *** Testing nf_put_vara_real ... 
>  Numeric conversion not representable                                         
>   
>   
>  Numeric conversion not representable                                         
>   
>   
>  Numeric conversion not representable                                         
>   
>   
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>   
>   
>    ###            7  FAILURES TESTING nf_put_vara_real! ###
> *** Testing nf_put_vara_double ... 
> *** Testing nf_put_vars_text ... 
> *** Testing nf_put_vars_int1 ... 
> *** Testing nf_put_vars_int2 ... 
> *** Testing nf_put_vars_int ... 
> *** Testing nf_put_vars_real ... 
>  Numeric conversion not representable                                         
>   
>   
>  Numeric conversion not representable                                         
>   
>   
>  Numeric conversion not representable                                         
>   
>   
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>   
>   
>    ###            7  FAILURES TESTING nf_put_vars_real! ###
> *** Testing nf_put_vars_double ... 
> *** Testing nf_put_varm_text ... 
> *** Testing nf_put_varm_int1 ... 
> *** Testing nf_put_varm_int2 ... 
> *** Testing nf_put_varm_int ... 
> *** Testing nf_put_varm_real ... 
>  Numeric conversion not representable                                         
>   
>   
>  Numeric conversion not representable                                         
>   
>   
>  Numeric conversion not representable                                         
>   
>   
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>  Var value read not that expected
>   
>   
>    ###            7  FAILURES TESTING nf_put_varm_real! ###
> *** Testing nf_put_varm_double ... 
> *** Testing nf_rename_var ... 
> *** Testing nf_put_att_text ... 
> *** Testing nf_put_att_int1 ... 
> *** Testing nf_put_att_int2 ... 
> *** Testing nf_put_att_int ... 
> *** Testing nf_put_att_real ... 
>  Numeric conversion not representable                                         
>   
>   
>  att. value read not that expected
>  att. value read not that expected
>   
>   
>    ###            3  FAILURES TESTING nf_put_att_real! ###
> *** Testing nf_put_att_double ... 
> *** Testing nf_copy_att ... 
> *** Testing nf_rename_att ... 
> *** Testing nf_del_att ... 
> *** Testing nf_set_fill ... 
>  Total number of failures:           35
> make[2]: *** [test] Error 1
> make[2]: Leaving directory 
> `/home/adrian/Software/NetCDF/netcdf-3.5.0/src/nf_test'
> make[1]: *** [subdir_target] Error 1
> make[1]: Leaving directory `/home/adrian/Software/NetCDF/netcdf-3.5.0/src'
> make: *** [nf_test/test] Error 2

I'm not sure what the problem is. We've tested the netCDF Fortran
interface on numerous systems with 4-byte reals and never seen this
problem.  I suspect that the problem has more to do with a bug in the
code designed to test the netCDF Fortran API than with the code of the
Fortran API, itself.

I suggest that you go ahead and install the netCDF package.  I strongly
suggest, however, that you test the package yourself.  You can do this
by invoking the "ncdump" utility on some netCDF files that contain real
values.  See if the output makes sense.  If it does, then the package is
probably OK and the problem probably lies with the testing code.

Regards,
Steve Emmerson   <http://www.unidata.ucar.edu>