Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.
29305 Discussions

VS 2010 Integration does not work well

jirina
New Contributor I
2,381 Views

I am using Intel Parallel Studio XE 2015 in Visual Studio 2010 Professional on Windows 7 64-bit Professional. I uninstalled all version of Intel products and installed just Parallel Studio XE 2015 today, but I am still having problems with the VS integration.

I have a console application and the source code is in fixed form .for files. There are several minor problem I am experiencing:

Problem 1:

I have a .for file that contains several simple modules, let's say:

      module Fields
      
      integer(kind=4), allocatable, dimension(:,:) :: fieldInt2D
      real(kind=8), allocatable, dimension(:,:) :: fieldDouble2D

      end module Fields
      
      module Properties
      
      real(kind=8) :: propertyDouble
      
      end module Properties

If I start typing "use" anywhere in the code, a list pops up, but it only contains the name of the first module (Fields) and other items in the list that probably correspond to the other modules, but these other items have empty names, so it is not possible to know which one should be selected from the list.

Problem 2:

It often happens that if I hove the mouse pointer over a subroutine call, the list of this subroutine's arguments contains "NONE :: argument1" even though the argument type is specified in the subroutine. It is difficult to give an example as I was not able to find any rule for situations with this problem, but one example would be:

      subroutine write_2D_field_double ( x, iunx, finame )
      
      use ifport
      use ifwin
      
      include 'frequent.inc' ! contains nx, ny declared as integer(4)

      real(8), dimension(nx,ny) :: x
      integer(4) :: iunx
      character(20) :: finame
      ...
      return
      end

Hovering over the subroutine or its call shows "NONE :: x"; the other arguments are OK.

Problem 3:

Local variables declared as "logical(4) :: logVar" do not show any tool tip when the mouse pointer hovers over their names in the code. The statement "logical" is shown as the intrinsic function in the tooltip, but the compiler understands it is a declaration of a logical variable. Changing the declaration to "logical(kind=4) :: logVar" does not help.

0 Kudos
26 Replies
Johannes_Rieke
New Contributor III
1,751 Views

Hi Jirina,

for problem 1 I can only comment, that it seems to be a good idea to write only one module into one file in general. Because if you maybe will switch to Linux one day ;-) and want to use Eclipse as IDE, your project will only build, if each file contains only one module. Newer versions of Eclipse maybe have not this issue but with Indigo up to Kepler I could not resolve this problem.

Regards,

Johannes

ps. I may add another problem:

Problem 4: brace matching (the courser triggered one not the CTRL+somekey) is confused by strings seperated by '...' or "..." as well within format statements.

0 Kudos
jirina
New Contributor I
1,751 Views

I tried distributing the modules into individual files, but the problem that I don't see their names after I type "use " persists. I think it must be something in the integration.

Let me add one more problem:

Problem 5:

I sometimes need to continue a statement on a new line, so I place "+" in the 6th column of the new line of my fixed form code. If I select a block of code that contains such continuation and press Ctrl+K, Ctrl+C to comment the block, it is done incorrectly - "!" is placed to the 6th column in all lines of the block and the result is not understood as comment by the compiler.

0 Kudos
Steven_L_Intel1
Employee
1,751 Views

Thanks, we'll check this out.

0 Kudos
jirina
New Contributor I
1,751 Views

Thank you.

Also, would you please comment on the fact that typing something in the editor causes that parsing the corresponding file is started? Is this expected behavior and if it is, would be possible to make it an option in settings? Parsing a file uses CPU time and reduces time I am able to work on my laptop if I am not connected to AC power and I use the battery.

0 Kudos
Steven_L_Intel1
Employee
1,751 Views

Yes, the parsing is automatic when the file changes. MSVC does the same thing. The parsing doesn't take much time but you can disable parsing entirely in the Text Editor > Fortran > Advanced options. I will suggest an added setting to parse only on file open or save - would that work for you?

0 Kudos
jirina
New Contributor I
1,751 Views

That would be great - file open and file save are optimal moments for parsing, at least in my case. Thank you again, I appreciate your effort.

0 Kudos
IanH
Honored Contributor III
1,751 Views

I find that VS2010 becomes very sluggish after a few minutes of working with the ifort 15.0 integration - I can typically be a word or so ahead in typing than what is displayed.  I still see the status bar flickering as I type with "Parsing file" or whatever, even after setting all the relevant options to stop parsing.  See attached.  Have I missed one?

fortran text editor advanced properties.png

 

(My editor windows still have the drop down navigation bars to select modules and subroutines present in the current file, which suggests to me I have missed something.  Also, sometimes (I've not worked out the pattern when typing comments the integration decides to "help" me by autocompleting a source code constructs (oh - you typed "type" in a comment - let me author a type declaration construct for you!) - what's the go with that?)

0 Kudos
Steven_L_Intel1
Employee
1,751 Views

You need to restart VS to have those settings take effect.

I think if you press tab after some "snippet" prefix it fills it in. It doesn't seem to know if you're in a comment.

0 Kudos
IanH
Honored Contributor III
1,751 Views

I've restarted multiple times (in fact VS has been helpfully restarting for me whenever I hit a breakpoint or exception in a certain file while debugging, which is starting to drive me around the twist..).
 

0 Kudos
jirina
New Contributor I
1,751 Views

I can confirm IanH's observation. I used the same settings like shown in his screenshot, clicked OK, restarted VS (I got a message that the restart is needed for changes to take effect; I got the same message twice for an unknown reason), I even restarted my computer; and yet, I can see the message "Parsing file ..." flickering in the status bar, making the CPU busy for a short period of time.

Edit: I decided to uninstall XE 2015 and go back to XE 2013 Update 4. The problem is the same there, but it does not feel so bad - in XE 2015, there is a very laggy response of the editor to any typing, copy/paste and generally any changes; it quite often happens that the cursor disappears and the editor starts responding after several seconds! This behavior gets slightly better if integration options are disabled, but as they are something I use and need frequently, it is better to keep them enabled in XE 2013.

0 Kudos
jirina
New Contributor I
1,751 Views

I have just installed Parallel Studio XE 2015 Composer Edition Update 1 Integration for Microsoft Visual Studio 2010, Version 15.0.0115.2010, after uninstalling all Intel Fortran related products before that.

I am still experiencing integration problems that I have already reported above, so I would like to ask if those problem were planned to be fixed in Update 1 or if I need to wait for next updates.

These is the overview of problems I have:

Problem 1 (different now) : typing use show a list of all available modules, however, there are empty names on the top of the list, and their number is different from the number of available modules. I am not sure if this can be caused by the fact I still have multiple modules in the same source file.

Problems 2 and 3: Dummy and local variables declared as real(4), real(8) or logical(4) have their type statements formatted as intrinsic functions, so marking local variable in the code does not highlight them in the declaration part and hovering over the subroutine name shows the type of corresponding dummy arguments as NONE.

Problem 5: Indenting code that contains "+" in the 6th column as continuation indication, places exclamation mark in the 6th column, so the code is not understood as commented out.

Problem 6: Parsing is done after typing every single character, making the editor response sluggish after some time.

It seems no problems were resolved in this update, so either this is the expected state, or I did something wrong during the installation.

I even don't see any help topics in Microsoft Help Viewer, I tried e.g. SLEEPQQ, REAL, etc. I can open help in Chrome, so the question is whether this is also expected.

0 Kudos
jirina
New Contributor I
1,751 Views

Could someone from Intel comment on my previous post? Or is there any place where I could find out myself what is going to be fixed and when? Thank you and sorry for being so impatient.

0 Kudos
Steven_L_Intel1
Employee
1,751 Views

For the empty names of modules, we'll need to see a sample source that shows that problem as it's not typical.

I'll take a look at the other issues you reported.

0 Kudos
Steven_L_Intel1
Employee
1,751 Views

I can't reproduce problems 1, 2 and 3. Please supply a source file that demonstrates these issues.

Problem 5 is an existing issue, ID  DPD200361714, reported here.

I haven't been able to reproduce problem 6. I suppose it might happen for a very large source file.

0 Kudos
jirina
New Contributor I
1,751 Views

I created a project that demonstrates problems 2 and 3. I created the project as free form and there were no problems, but after using the same compiler and linker settings like in my original project problems 2 and 3 emerged. I suspect the fixed form might be a potential cause.

I do not see problem 1 in the simple project; I will keep trying.

Regarding problem 6, you suggested adding an option to do parsing only at file load/save. Is this going to happen? My largest source files are up to 2000-2500 lines, is that too much?

0 Kudos
Steven_L_Intel1
Employee
1,751 Views

No, 2000-2500 lines is not too much. 25000 lines might start to be an issue. I did submit the suggestion to defer parsing.

Thanks for the sample - I'll look at it tomorrow. Yes, fixed-form source might be relevant, (Could I convince you to switch to free-form source for new code?)

0 Kudos
jirina
New Contributor I
1,751 Views

Thank you. I would be more than happy to switch to the free form source; unfortunately, the project contains hundreds of thousands of source code lines, so rewriting it manually would take too much time. If there was an automatic converter, I would definitely give it a try. I found some references on Internet, but they seem old and corresponding converters functioning not that well; I guess if there is something reasonable you would know about it...

0 Kudos
Steven_L_Intel1
Employee
1,751 Views

Thanks - the issue seems to be variables whose names contain typenames, such as ArrayReal or ArrayDouble. It isn't the type itself that is the issue. ArrayInt works because "Int" isn't a type name. I don't see the problem with the declarations "formatted as intrinsics", though I know if you're typing "real" the editor will give you hints as if you're referring to the intrinsic. I consider that harmless.

I'll send this one along to the developers.

0 Kudos
jirina
New Contributor I
1,751 Views

Variables containing type names were only used in the example; I use such names in my project that they do not contain any type name. I changed array names to arrayA, arrayB and arrayC, and the problem persists. I still think the problem is related to the fact that real(n) and logical(n) are marked as functions converting their arguments, while integer(n) is marked as variable type. In spite of this marking, the compiler understands that all of them are variable declarations.

0 Kudos
Steven_L_Intel1
Employee
1,693 Views

Ok, I see that now. Thanks.

0 Kudos
Reply