错误:复数常量中的预期PARAMETER符号(1)

时间:2013-11-19 14:57:52

标签: fortran

我正在编写一小段Fortran 90代码来使用复杂变量计算一些数量。

我有一个子程序,其中包含以下说明:

complex, dimension(3) :: v
integer :: i
real:: tmp


do i = 1,3
  tmp = vg(i)
  v(i) = (tmp, 0.0) 
enddo

v是一个长度为3的复杂数组。vg是一个长度为3的数组,其元素也是实数。

当我用gfortran 4.7.3编译上面的代码时,我收到以下错误:

v(i) =   (tmp,0.0) 

Error: Expected PARAMETER symbol in complex constant at (1)

我不明白这是什么问题。

1 个答案:

答案 0 :(得分:3)

你必须使用

v(i) = cmplx(tmp, 0.0)

您的语法(re, im)仅适用于常量表达式,即当reim为实数或整数常量时。

这意味着你不能从实变量和实常数中得到复数常数。您必须使用内部函数cmplxreal变量转换为complex个变量,或者从complex个变量(或整数)对构建real个变量。