我有一个关于fortran文件调试的问题。因此我用d(*)自动声明它。但是在调试和监视数组期间,它只显示相应数组的第一个数字而不是其他60个数字。 (我使用Fortran 95编译器和Visual Studio 2010)
我怎样才能查看数组的所有变量?
这里有一个代码示例:
ia是主程序中的变量整数,具体取决于某些输入参数。
subroutine abc(ia,a,b,c)
dimension d(*)
a = d(ia+1)
b = d(ia+2)
c = d(ia+3)
return
end
然而,对于调试,了解d(*)
的有效性很有用答案 0 :(得分:1)
我发现这样做的唯一方法是使用Watch
窗口并为数组元素添加监视。假设您的数组被称为d
,那么我发现观察以下表达式会显示数组中的值:
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
当然,对于一个长度为60的数组,如你所建议的,那么表达式
d(61)
将显示该阵列地址指向的内存位置的值。
当然,您应该将您的数组声明为d(:)
。如果这样做,那么VS调试器会在通常的Locals
窗口中显示整个数组。