2013-01-03 33 views
0

我正在編寫一個Fortran,它必須解決平方根,並且會導致複雜的數字,但Fortran不打印它或將其傳遞給另一個變量。它給出(NaN,0.000)。Fortran從實數中獲取複數。

這是一個虛擬代碼,用於表示我正在處理的實際代碼所存在的問題。如果你們可以給我任何有用的信息。謝謝。

program test 
     IMPLICIT NONE 
     COMPLEX X 
     REAL a, b, c 
     a = 1 
     b = 1 
     c = 1 
     X = sqrt(b - 4*a*c) 
     print *, REAL(X), ' - j',-AIMAG(X) 
    end program test 

回答

2

由於a,b和c都是實數,所以賦值右邊的表達式將以真正的算術計算。將其分配給左側的複雜變量不會改變這一點。如果你想把計算做成一個複雜的值,最簡單的方法是將a,b和c聲明爲複雜的。

+0

謝謝。這解決了我的問題。謝謝。 – Hiren