Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28630 Discussions

Missed module dependencies: parser error?

Federico_M_
Beginner
545 Views

Hi everyone,

I'm having a strange issue with Intel fortran (2013 XE update2, latest release) under VS2010.

The dependency tracking for f90 modules appears to be broken for some particular formatting of the source code. This suggests a parser error.


In the attached example solutions, my dependencies are as follows:

aaa.f90, includes KINDS and PARMS
kinds.f90
parms.f90, includes KINDS

If parms.f90 is declared as follows:

MODULE parms; USE KINDS; IMPLICIT NONE

INTEGER(KIND=in4), PARAMETER :: NPRINT = 1

END MODULE parms


The dependency tracking fails and the application keeps rebuilding without necessity.
Also, the first compilation fails unless the user builds kinds.f90 first manually.


If on the other hand the formatting is as follows:
MODULE parms
USE KINDS
IMPLICIT NONE

INTEGER(KIND=in4), PARAMETER :: NPRINT = 1

END MODULE parms


Then everything works as expected.

Please note the first line of the module: when using newlines it works but it doesn't when the declaration is on one single line.


Attaching 2 VS2010 solutions, one with the formatting that works ("Right") and one with the defective one ("Wrong"),
When debugging the "Wrong" solution the compiler keeps rebuilding without changing the files, while the other solution works as expected.

I have opened a Premier Support ticket about this, but thought this may be of general interest to explain unexpected behavior.


Regards,
Federico

0 Kudos
3 Replies
Steven_L_Intel1
Employee
545 Views

What's the Premier Support ticket number? I think I have seen this issue before.

0 Kudos
Federico_M_
Beginner
545 Views
Steve, the issue number is 694534 Regards, Federico
0 Kudos
Steven_L_Intel1
Employee
545 Views

It looks as if this is being handled by our support team. I remember an earlier issue where if you used :: in a USE, it didn't see it.

0 Kudos
Reply