Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automatic array length in Fortran and Visual Studio debug

I got a question concerning the debugging of a fortran file. Thus I declared it with d(*) automaticaly. However during the debugging and the supervision of the array it just shows the first number of the according array and not the 60 others. (I use Fortran 95 compiler and Visual Studio 2010)

How can I still view all variables of the array?


Okay here comes one example for the code:

ia is a variable integer from the main routine depending on some input parameters.

subroutine abc(ia,a,b,c)
dimension d(*)

a = d(ia+1)
b = d(ia+2)
c = d(ia+3)

return 
end

However for debugging it is useful to know the endities of d(*)

like image 205
YaY Avatar asked Nov 26 '12 11:11

YaY


1 Answers

The only way I've found to do this is to use the Watch window and add a watch for the array elements. Suppose your array is called d, then I've found that watching the following expressions shows the values in the array:

d(2)      ! which just shows the 2nd element in the array
d(1:10)   ! which shows the first 10 elements of the array
d(1:12:2) ! which shows the odd numbered elements of the array from 1 to 11

And of course, for an array of length 60 such as you suggest you have, then the expression

d(61)

will show you what value is in the memory location to which that array address points.

Of course, you should really be declaring your array as d(:). If you do, then the VS debugger shows the entire array in the usual Locals window.

like image 116
High Performance Mark Avatar answered Nov 15 '22 04:11

High Performance Mark