Fortran从实数中得到复数。

时间:2013-01-03 17:48:08

标签: fortran

我正在编写一个Fortran,它必须解决平方根并导致获得一个复数,但Fortran不打印它或将其传递给另一个变量。它给出(NaN,0.000)。

这是一个虚拟代码,用于表示我正在使用的实际代码所遇到的问题。如果你们能给我任何有用的信息。谢谢。

   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

1 个答案:

答案 0 :(得分:2)

由于a,b和c都是实数,因此赋值右侧的表达式将以实数算术计算。将其分配给左侧的复杂变量不会改变它。如果您希望将计算作为复数值完成,最简单的方法是将a,b和c声明为复数。