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

Visual Studio IDE question: members drop-down blank for some Fortran source files - why?

FortranFan
Honored Contributor II
468 Views

I'm using Intel Fortran Compiler 14 (build 14.0.0.103) and its IDE integration with Visual Studio 2012 as well as Visual Studio 2010.

All my Fortran source files are free-form with F90 extension, they mostly have one Fortran module per file, and they usually include one or more procedures in the CONTAINS section of the module.  For many of these files, the members drop-down in Visual Studio will list all the module procedures that are contained in the file.  This is a handy feature that allows one to navigate quickly to various procedures contained within the module.  Here is a sample:

http://imgur.com/gallery/xIod9r6

However this members drop-down box in Visual Studio is blank for some of my Fortran files.  I've looked closely but I don't find anything different in the files where the list is blank.  I've tried various things such as removing the file from the project and readding them, etc.  But the problem persists.

Anyone else running into this problem, know why this occurs, and how to resolve it?

Thanks,

 

0 Kudos
1 Solution
Steven_L_Intel1
Employee
468 Views

Thanks for sending me the source. The culprit is any line within a TYPE declaration that begins with CLASS. In the source you sent, line 57 is the problem.  I have reported this to the developers as issue DPD200250386 - they're usually pretty good about fixing such problems quickly, and there's probably time to get it in for Update 2. I could not find an obvious workaround for the issue.

View solution in original post

0 Kudos
8 Replies
Steven_L_Intel1
Employee
468 Views

Try Update 1. If the problem persists, please provide us with a source file that shows the problem. We've seen issues in the past where the parser we use for this feature gets confused by some valid Fortran syntax.

0 Kudos
FortranFan
Honored Contributor II
468 Views

Steve,

The support terms on our license is currently expired, so unfortunately I can't get Update 1.

Also, due to IP policy, I can't upload the source file here; instead, can I send it to you privately and you can see if the issue has been fixed in Update 1?  Or, you can check if there is anything untoward in this file that prevents the parser from working correctly?

Separately, I thought I read in one of your posts that the next compiler update will only be released in May of 2014?  Is that correct?  I ask because the management here might allow an additional year of support license and if they do so, I'm wondering whether to renew now or wait until May, 2014.

Thanks,

0 Kudos
DavidWhite
Valued Contributor II
468 Views

The new terms of the Intel license mean that it is normally cheaper to keep up to date with your support license.  If you are more than 1 year out of date before you renew, I think it is cheaper to buy a new license from scratch than pay the support updates for the intervening period. So I would not suggest waiting until May to update your support.

Regards,

David

0 Kudos
Steven_L_Intel1
Employee
468 Views

The next update is planned for January. You can send me the file privately using "Send Author a Message" and attaching it there, or send by email to steve.lionel at intel dot com.

Visit http://software.intel.com/en-us/articles/price-reduction-on-renewals-for-intel-tools to see what the price would be for license renewal. We made changes to the renewal pricing a few months ago that allow for a smaller discount if you're out of date, but not as bad as buying a whole new license.

0 Kudos
Steven_L_Intel1
Employee
469 Views

Thanks for sending me the source. The culprit is any line within a TYPE declaration that begins with CLASS. In the source you sent, line 57 is the problem.  I have reported this to the developers as issue DPD200250386 - they're usually pretty good about fixing such problems quickly, and there's probably time to get it in for Update 2. I could not find an obvious workaround for the issue.

0 Kudos
FortranFan
Honored Contributor II
468 Views

Thanks Steve.  It's amazing how you found the source of the problem - don't know how you do it!

Note, though, the culprit seems to be an unlimited polymorphic CLASS(*) declaration within a derived type.  Limited polymorphic declarations [CLASS(xxx) :: yyy] within types do not seem to cause any parser issues in 14.0 SP1 Update 1.

Re: the parser, a question: as you know, what Microsoft offers in Visual Studio IDE for source files is quite extensive and their parser (assuming they use such a thing) can identify multiple "objects" within the source including methods, fields, enumerators, etc.  Any plans by Intel to extend the Fortran parser beyond procedures (subroutines and functions)?  If not, is it possible for you to add it to Intel's (wish) list of possible future development items for IDE integration?  Note these little, little things go a long way toward establishing as a modern Fortran being a first-class language and having first-class tools and IDEs to program in!  Otherwise, it'll remain difficult for newer and younger folks to stick with Fortran.  I assume that's something you care about in your "evangelist" role! :-)

0 Kudos
Steven_L_Intel1
Employee
468 Views

Finding it was pretty easy. I just started commenting out large blocks of code (CTRL-K, CTRL-C) until the problem went away. I then narrowed it down to the offending line. In my tests, just typing CLASS inside a TYPE was enough to trigger the problem. Having a variable declared with CLASS wasn't an issue.

The parser already knows about variables, named constants and more. You have to enable this explicitly, though. See the documentation on using the advanced features of the Visual Studio source editor in the Fortran documentation. (In the 2011 version, it's in the release notes.)

0 Kudos
Steven_L_Intel1
Employee
468 Views

This has been fixed for a future update, probably Update 2.

0 Kudos
Reply