Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

Error in compiling submodule tree.

Trent_Hawkins
Beginner
159 Views

Good day everyone.

I have a problem in compiling a module-submodule tree where submodules include other submodules. For instance the following snippet fails to compile with ifort 17.1:

module leader
end module leader
submodule(leader) officer
end submodule         officer
submodule(officer) member
end submodule          member

giving the following error message:

error #8765: Error in opening the compiled ancestor module file.   [OFFICER]
      submodule(officer) member
----------------^

Am I missing something here? Or is this a bug?

Thanks in advance!

0 Kudos
1 Solution
FortranFan
Honored Contributor II
159 Views

Oh, I didn't immediately notice but you're missing a part of the submodule identification, the inclusion of the ancestor and its parent:

module leader
end module leader

submodule (leader) officer
end submodule officer

submodule (leader:officer) member
! note the above ancestor:parent identification
end submodule member

 

View solution in original post

4 Replies
FortranFan
Honored Contributor II
159 Views

I think your problem is the empty CONTAINS section in the 'officer' submodule; try a case where module procedures are present at each level.

Trent_Hawkins
Beginner
159 Views

My full code is full of procedures at every level. Also notice that the submodule officer  that extends the primary module compiles fine. It's the second submodule that extends the first one that gives the error, i.e. having a submodule as parent is the only problem. Based on the error, it seems that the parent smod is either generated after lookup by the compiler or the look up name it expects ends in .mod instead of .smod (i.e. bug).

FortranFan
Honored Contributor II
160 Views

Oh, I didn't immediately notice but you're missing a part of the submodule identification, the inclusion of the ancestor and its parent:

module leader
end module leader

submodule (leader) officer
end submodule officer

submodule (leader:officer) member
! note the above ancestor:parent identification
end submodule member

 

View solution in original post

Trent_Hawkins
Beginner
159 Views

That does it, thanks you.

Reply