基本用法
取实部
用DBLE函数,不需要指定kind
取虚部
用AIMAG函数,不需要指定kind
赋值
cmplx
fortran
RESULT = CMPLX(X [, Y [, KIND]])
要指定kind,如果没有使用kind这个参数,即使X和Y的精度是双精度,最后也会变成单精度。
complex
fortran
RESULT = COMPLEX(X, Y)
不需要指定kind
在array constructor中
fortran
COMPLEX(KIND=DPC),DIMENSION(3)::c1
c1=[cmplx(1.0_dp,2.0_dp,kind=dpc), cmplx(1.0_dp,2.0_dp,kind=dpc), cmplx(1.0_dp,2.0_dp, kind=dpc)]
使用双精度得指定kind。
fortran
COMPLEX(KIND=DPC),DIMENSION(3)::c1
c1=[complex(1.0_dp,2.0_dp), complex(1.0_dp,2.0_dp), complex(1.0_dp,2.0_dp)]
上面的这种情况会报错,因为complex本身还可以是array constructor里面申明类型的语句,所以应该这样写:
fortran
COMPLEX(KIND=DPC),DIMENSION(3)::c1
c1=[complex(kind=dpc)::complex(1.0_dp,2.0_dp), complex(1.0_dp,2.0_dp), complex(1.0_dp,2.0_dp)]