- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I compile the program below, I get the following message:
1>------ Build started: Project: Code3Test, Configuration: Debug Win32 ------
1>Compiling with Intel Fortran 9.1 C:Program FilesIntelCompilerFortran9.1IA32...
1>Code3Test.f90
1>compilation aborted for D:ProjectsMUTSModelObservedDLLCode3TestCode3TestCode3Test.f90 (code 3)
1>
1>Build log written to "file://D:ProjectsMUTSModelObservedDLLCode3TestCode3TestDebugBuildLog.htm"
1>Code3Test build failed.
1>
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
When I compile the same program in CVF6.6b it copiles OK. Can anybody please help me to solve this problem?
Frank Tap
I am using Intel Fortran Compiler Integration for Microsoft Visual Studio 2005, Version 9.1.3192.2005.
program
Code3Testpointer
(testPtr, test)contains
subroutine test end subroutineend
program Code3TestLink Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I compile the following version of the program it works fine:
program
Code3Testpointer
(testPtr, test)end
program Code3Testsubroutine
testend subroutine
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I can reproduce this - it goes away if you turn off debugging. I'll pass it on to development to be fixed.
However, the program is incorrect. You're specifying that test is both a pointee routine and an actual routine. You have to choose one or the other.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Cray pointers are an extension to Fortran 77. CONTAINed subroutines are exclusive to Fortran 90, and don't have visibility external to the containing function. I am not surprised the Cray pointer to the CONTAINed subroutine didn't work.
Examples I can find of Cray pointer to a subroutine show the pointee declared EXTERNAL. Then, the pointer has to be initialized by loc() (another extension to Fortran 77). It looks doubtful that the address of a CONTAINed subroutine could be relied upon. Attempting to make an analogy relevant to Fortran 77, I wouldn't expect to see Cray pointer used to point to a statement function, certainly not until I see it done successfully.
The people who set up the error diagnostic reporting may not have envisioned this category of problem. If you are interested, you could file a request on premier.intel.com to have better diagnostics issued.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page