如何让totalview提供访问我的代码中的所有变量?totalview只能识别一些变量,可执行的行
我正在尝试使用totalview来调试Fortran90程序。我使用“-g”标志编译并链接到了英特尔的ifort。 totalview可以通过我的程序,但只提供“潜水”我的子程序中的四个变量,许多可执行的源代码行没有框,我可以检查设置一个行动点。在下面声明的所有变量中,只有cell_EW,cell_NS,area和pct可用于稍后在子例程中进行查找。
164 REAL, allocatable, DIMENSION(:), INTENT(in) :: lon, lat
165 REAL, ALLOCATABLE, DIMENSION(:, :, :, :) :: area, pct
166 REAL, ALLOCATABLE, DIMENSION(:, :, :), INTENT(in) :: in_flux
167 REAL, ALLOCATABLE, DIMENSION(:, :, :), INTENT(inout) :: out_flux
168 REAL :: cell_EW, cell_NS
169 INTEGER status, ierr, dimid, nlon, nlat, ntimes
170 INTEGER i, j, k, LOGDEV, this_var, this_t
171 INTEGER jdate, jtime, this_date, this_time
另一个例子:190行不允许我设置一个动作点,而ntimes不能被识别为一个变量。
189 CALL calc_land_area(pct, cell_EW, cell_NS, lon, lat, area)
190 ntimes = SIZE(in_flux, 1) ! first dimension is time
191 do i = 1, ntimes
除了'-g'你指定了什么编译器标志?我没有使用totalview,但常见问题[here](https://computing.llnl.gov/tutorials/totalview/#Compiling)表示不使用优化标志。默认情况下,我认为'ifort'将使用'-O2',所以你可能想要明确地声明'-O0'或类似的。 (实际上'-g'可能暗示'-O0',但它可以被覆盖) –
哇,@ d_1999,你钉了它。我曾经看过这个FAQ,并删除了一个明确的'-O2'标志(并设置了'-g')进行调试,但我没有想到使用明确的'-O0'。我用'-O0 -g'重新编译,我的所有变量现在都可用。非常感谢!如果您将评论添加为答案,我会很乐意接受。 –