[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