Branchless conditional arithmetic oddities

You may have a point for FPM users - these are more progressive and modern programmers. I’m OK with making -standard-semantics the default for fpm.
But for Intel Fortran’s general population, legacy app usage far exceeds modern fortran app usage.
I would propose: set default to -standard-semantics. Other options they add on the command line will override the default behaviors. And if people report issues, you could roll it back.

3 Likes

I agree - this has bothered me for a long time. I can think of several ways Intel could fix this, but it would require inventing a new mechanism in the compiler for just this case. I’d understand if Intel didn’t feel it was worth the effort.

Similar problem ifort apparently has with file_storage_size which is reported as 8 (bits, 1 byte) regardless of used compiler options. By default, however, it uses 4-byte units of record length which makes the value of this constant just misleading.

1 Like

It’s worse than that. The standard describes this as the size of a file storage unit for both unformatted files and for stream files. With the ifort default, no one value is correct for both, as stream files are in 8-bit units regardless of options.

I like @greenrongreen 's suggestion that -standard-semantics be the default in some future version. That to me is the best way out of this mess.

Thank you @greenrongreen .

Sorry to take pride in being a broken record for the users I work with, but as you have been informed before, the Intel software team offering something out of the box (i.e., no external actions, config file, etc. which is just not possible to maintain) where -standard-semantics is the default will be really, really cool, say ifs to go with ifx. The users understand and appreciate it is not easy, so they remain patient.