- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Fortran 16-Byte Real optimization error
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-11-2012 02:07 PM
01-11-2012 02:07 PM
Fortran 16-Byte Real optimization error
The HP IA64 Fortran v8.1 compiler gives a "Compiler intenal error" with 16-Byte Reals.
If anyone can verify this behavior on new versions, it should be submited as a Problem Report.
I whittled the offending program down to this test subroutine:
Subroutine test( C )
Double Precision A, B, C
Common / te1 / A, B
if( C .le. 0. ) then
A = 0.
else
A = A - B
endif
Return
End
Compiling with $Fortran /real=64 /int=64 /opt crashes the compiler.
Compiling with /opt=lev=1 works OK.
Commenting out any single executable line works OK also.
For comparison, compiling on AXP Fortran v7.6 gives no error even with opt=lev=5.
I use 16-Byte Double Precision frequently, so any comments on possible causes of this
oddity would be appreciated.
C. Fred Driscoll
UCSD Physics
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-11-2012 02:30 PM
01-11-2012 02:30 PM
Re: Fortran 16-Byte Real optimization error
Compiles cleanly under HP Fortran V8.2-104939 with the command you give.
(Itanium 8.3-1h1)
fwiw,
Hein
listing snippets.
:
VARIABLES
Address Type Name Address Type Name Address Type Name
2-00000000 R*8 A 2-00000008 R*8 B ** R*8 C
TEST Source Listing 11-JAN-2012 17:22:45 HP Fortran V8.2-104939 Page 2
11-JAN-2012 17:22:19 SYS$SYSDEVICE:[HEIN]TMP.FOR;3
:
/OPTIMIZE=(INLINE=SPEED,LEVEL=4,NOLOOPS,PIPELINE,TUNE=GENERIC,UNROLL=0)
:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-11-2012 04:28 PM
01-11-2012 04:28 PM
Re: Fortran 16-Byte Real optimization error
If only all reproducers were as good as yours!
A compiler crashing is always a bug, please make a formal report to HP.
Always test compiler problems against the latest version of the compiler. This is easy to do and non-privileged. Most compilers these days have mechanisms to allow you to maintain multiple versions. Even if the specific product doesn't have the feature, it's fairly easy to do yourself using logical names. Extract a later compiler from a kit, place it in your private directory and point to it by logical name logical name.
Hein's evidence shows that the bug may have been fixed in a later compiler, however, it's not possible to say if that's by design or by accident, so it's better if the compiler team see your excellent example. They can also add it to the regression suite to make sure the bug doesn't reappear.