我經常需要調試使用大型複雜數據陣列的舊Fortran代碼,並且可用的最佳選項是TotalView。我創建了自己的可視化工具來查看數據(按照TotalView的說明here),效果很好。它比默認的更靈活,並且能夠攝取和顯示覆雜的數據,但TotalView不會通過可視化管道發送複雜的數組。如何將複雜數據發送到TotalView中的可視化工具?
有沒有什麼辦法讓TotalView能夠顯示覆雜的數據,而無需使用額外的調試數組重新編譯代碼來獲取絕對值?
E.g.像下面這個簡短的示例代碼,我可以使Fortran的另一個數組,但我真的很想剛剛停下來檢查的變量my_arr
:
program main
implicit none
integer N, M, i, j
parameter (N=100, M=30)
complex my_arr(N, M)
real pi
pi = ACOS(-1.0)
do j = 1, M
do i = 1, N
my_arr(i,j) = cmplx(i*cos(j/pi), i*sin(j/pi))
end do
end do
return
end
對於小數組,我可以像逃脫這作爲一個表達式:
my_arr%Real_Part**2 + my_arr%Imaginary_Part**2
但這不會工作的東西非常大,TotalView抱怨內存。
我正在使用TotalView 8.13。