[MITgcm-devel] test with open64

Jean-Michel Campin jmc at ocean.mit.edu
Thu Dec 13 21:45:28 EST 2007


Hi Constantinos,

Just to summarize the tests I did on aces with open64 compiler:

1) problem with "-convert big_endian" :

with -trapuv & -convert big_endian : get a "Floating point exception"
and ibd locate the problem in:
> stopped at [<opaque> function ia2mips_(...) 0x0846e059]
and it happens even without -gsl ;

I tried the "hand written" version of byteswapio:
with -D_BYTESWAPIO in the DEFINES list and things are OK

I also compared the binary output file:
a) I just use "-ieee" & -O0 (no trapuv) with -convert big_endian
b) same "-ieee" & -O0 (no trapuv) with -D_BYTESWAPIO
and I found, in some files, some differences which are not very
small (~ 10^-3 of the value) and for the largest, looks like
power of 2 : 256, 128, 16, 4 ?
My conclusion is that I would not trust this "-convert big_endian"
option for now and prefer to go back to the MITgcm version with
-D_BYTESWAPIO

Note: seems that -byteswapio is identical to  -convert big_endian
and has the same problem

2) the -O3 optimization has a problem when applied to
ini_vertical_grid.F that shows up in experiment ideal_2D_oce.
-O2 is fine, and -O3 with -ffortran-bounds-check return to a lower
level of optimization and is fine too.

Since ini_vertical_grid is only called once, we could think of
putting this S/R in the NOOPTFILES list ; or we can turn down
the optimization level to -O2 for all the files.

For my test, I think I will check-in a new optfile:
"linux_ia32_open64.trapuv" and use -O0 since it gives me
better agreement with the reference output.

Jean-Michel




More information about the MITgcm-devel mailing list