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.

VS 2010 Integration does not work well

jirina
New Contributor I
2,476 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
Steven_L_Intel1
Employee
652 Views

Escalated as issue DPD200363709. The symptoms seem to vary depending on exactly how the variable is declared, and fixed-form is not relevant here.

0 Kudos
jirina
New Contributor I
652 Views

Is there a way to find out the status of a specific issue? I am using Update 2 now and the issue does not seem to be resolved in it, so I am curious if I can get an idea when I can expect a fix. Thank you.

0 Kudos
Steven_L_Intel1
Employee
652 Views

You would find out by my updating the thread here. I have asked the developers for an update but have not yet heard from them.

0 Kudos
jirina
New Contributor I
652 Views

I have just installed Parallel Studio XE 2016 Composer Edition onto freshly installed Windows 10 Professional 64-bit.

I am still experiencing some of the integration problems that I have already reported above, so I would like to ask about their status.

These is the overview of problems I still have:

Problem 1: typing the keyword use shows 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 have not been able to create a simple example showing this behavior, so I will get back here after I succeed.

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. This should be issue DPD200363709.

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. This should be issue DPD200361714.

I have one more question related to integration. I use functions in my code, e.g. real(4) function getValue ( ). To use this function in a subroutine, I have

       subroutine listValues ( )
       real(4) :: getValue, value
       ...
       value = GetValue( )
       ...
       end

If I select the function call and press F12 to go to definition, the local declaration is used. What should I change to go to the real definition of the function. i.e. to the line with real(4) function getValue() ? Move the function to a module and use that module in the subroutine?

0 Kudos
Kevin_D_Intel
Employee
652 Views

My findings:

Problem 1: It does not appear this was reported to Development earlier in the absence of a reproducer. Let us know when you have something to reproduce this and we will report it to Development. I included this in my inquiry noted below.
Problems 2 and 3: DPD200363709 - No new updates. I pinged the assigned developer for status.
Problem 5: DPD200361714 - No new updates. I pinged the assigned developer for status.

I inquired with the Developers about the new question on go to definition (F12) for the function and will pass along their feedback.

0 Kudos
jirina
New Contributor I
652 Views

I succeeded creating a simple example showing Problem 1, see it attached. The problem is obviously caused by behavior described in Problems 2 and 3. Once a module is created and it contains variables that are real(X) or logical (X), following happens:

  • Typing "use" does not offer the module in the list of all modules and only blank space is offered instead of the module's name.
  • Typing "call" does not offer subroutines from the problematic module.
  • Pressing F12 to go to definition while call to any of the module's subroutines is selected does not work.

Using real instead of real(4), logical instead of logical(4) and double precision instead of real(8) makes everything work as exepected. I think correcting the problem how e.g. real(8) is understood will resolve all subsequent issues.

0 Kudos
Reply