Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28655 Discussions

Fortran direct access problem with linux ifort 8

zhoux
Beginner
353 Views
I found the Fortran direct access have a problem with the record length,
it should be the length in bytes but it seems linux ifort use it as the length
of 4-bytes word.
With Linux ifc 7, it work well.
Is this a problem known?
0 Kudos
3 Replies
TimP
Honored Contributor III
353 Views
As you found out, ifort 8 changed the measure to 32-bit words. In order to go back to bytes, you need to build with the option -assume byterecl This was done for compatibility with CVF. I think this was posted here a few days ago.
0 Kudos
lanzor
Beginner
353 Views

Thx a lot, I'll try it.

By the way, I used -O3 -xN for P4 optimisation, can I found some more

optimazed (even aggressive) options?

0 Kudos
TimP
Honored Contributor III
353 Views

Depending on your application, options like -O3, -ip, -ipo may or may not be beneficial. Those can get aggressive enough to lead to multi-hour compiles.

You should look at the loop level directives if you're interested in vectorization. 8.0 compilers changed recently, so that arrays are set up with 16-byte alignment when that is possible. This gave more opportunities to use the VECTOR ALIGNED directive, except that it may have been disabled in 8.0.046. That's aggressive, your code breaks, if the data aren't aligned as you said they would be.

If your loop alternates writingamong more than 4 cache lines (for Northwood, HT inactive), and this is not taken care of by partial loop vectorization splitting, the !DIR$ DISTRIBUTE POINT directives may be effective to ask the compiler to split your loop at the point where you put the directive.

0 Kudos
Reply