- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Fortran problem
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
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
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
тАО12-18-2007 11:47 AM
тАО12-18-2007 11:47 AM
The documentation is not clear about specifying STRUCTURE in an INTERFACE block.
What worries me most is that the strcucure isn't recognized at all. If I remove the Interface block or use INTEGER*4 and CHARACTER*(*), it's no problem at all.
What did I miss?
OpenVMS Developer & System Manager
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО12-18-2007 01:15 PM
тАО12-18-2007 01:15 PM
Solution- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО12-18-2007 03:20 PM
тАО12-18-2007 03:20 PM
Re: Fortran problem
You could just make function Y an internal procedure by defining it after a CONTAINS statement and moving the END PROGRAM to after END FUNCTION Y. You would then not need the INCLUDE statement inside the Y function definition.
Or you could define function Y in a MODULE. You would then add a "USE module_name" statement right after the PROGRAM X line.
For either of these alternatives remove the interface block from the include file.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО12-18-2007 10:36 PM
тАО12-18-2007 10:36 PM
Re: Fortran problem
I must have overlooked that sentence, so that explaines why the strcuture isn't recognized in the INTERFACE block. I _think_ I found a way to get around it.
Jess:
This is just the reproducer, and in that context you are right, and I would have followed your suggestion anyway. In real, the problem occurs where the called routine ("Y" in the reproducer) is one of many in a library, called by many others. So your solution doesn't work here.
OpenVMS Developer & System Manager
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО12-18-2007 10:41 PM
тАО12-18-2007 10:41 PM
Re: Fortran problem
Overlooked the second alternative :) That might work, if that allows "PRESENT" as a check whether an argument has been passed or not (IARGCOUNT may be sufficient in some cases and ├Г┬нs used where possible. But in some cases, this is not enough)
OpenVMS Developer & System Manager
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО12-20-2007 12:21 PM
тАО12-20-2007 12:21 PM
Re: Fortran problem
OpenVMS Developer & System Manager