[Mitgcm-support] RE: testscript FAIL

mitgcm-support at dev.mitgcm.org mitgcm-support at dev.mitgcm.org
Wed Jul 9 15:48:10 EDT 2003


for general info.

we need to use _d in part because g77 has no -r8 option.
a useful test is for machine x (which has -r8 option)
run with -r8 and without -r8 (but with _d set to use D
and #define REAL4_IS_SLOW set in CPP_EEOPTIONS).
there should be absolutely no difference in the results.
this test can be run on any platform and will help make sure
that code is robust to the compiler options.

chris

-----Original Message-----
From: Dimitris Menemenlis [mailto:menemenlis at jpl.nasa.gov]
Sent: Monday, November 25, 2002 10:32 PM
To: Alistair Adcroft
Cc: MITgcm support
Subject: Re: testscript FAIL



Alistair thanks for suggestion.  IEEE compliance for SGI f77 is specified
using "-OPT:IEEE_arithmetic=1" and is on by default.  Adding this option
and/or turning off all optimizations, "-O0", does not change the results on
the origin 2000.  The only option that seems to make the test results closer
to those of g77 is the removal of "-r8", which forces REAL*8 as the default
for real variables.  Here is a partial list of test results:

default release1_p8 on sgi origin 2000 (castor):
FFLAGS = (
'-extend_source -mp -mpio -bytereclen -r10000 -mips4 -r8 -static' )
FOPTIM = ( '-O3' )
Y Y Y Y  5  5  7  7  7  8 10  9  6  6  6  6  7  5  7  5  7 FAIL  lab_sea

FFLAGS = (
'-extend_source -mp -mpio -bytereclen -r10000 -mips4 -r8 -static' )
FOPTIM = ( '-O0 -OPT:IEEE_arithmetic=1' )
Y Y Y Y  5  5  7  7  7  8 10  9  6  6  6  6  7  5  7  5  7 FAIL  lab_sea

FFLAGS = ( '-extend_source -mp -mpio -bytereclen -r10000 -mips4 -static' )
FOPTIM = ( '-O3' )
Y Y Y Y  7  9  7  9  8  8 10 11  8  8  7  7  8  7  7  7  8 FAIL  lab_sea

D.


>> It's probably optimization that's breaking the results.
>>
>> It would be helpful to add an IEEE compliant option to genmake
>> for the SGIs. Don't know what the option is but look under
>> case Linux*: for lines of the form
>>    if ($IEEE) set FFLAGS = ($FFLAGS option)
>> to see how to add it to genmake. The option should limit optimization
>> where it will change the numerical results. It shouldn't be the
>> default (i.e. with $IEEE unset) since it normally slows the code
>> down a lot.




More information about the MITgcm-support mailing list