Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran DCMPLX的现代等价物?_Fortran - Fatal编程技术网

Fortran DCMPLX的现代等价物?

Fortran DCMPLX的现代等价物?,fortran,Fortran,使用众所周知的内在函数,gfortran-g-std=f2008-Wall-Wextra-O2返回警告:所选标准中不包括(1)处的内在“dcmplx”,但GNU Fortran扩展和“dcmplx”将被视为声明为外部。使用适当的-std=*选项或define-fall intrinsics来允许此内在。有没有一种处理双精度复数的现代交叉编译器方法?您可以使用: CMPLX(X, Y, kind=REAL64) 要使用REAL64,您需要导入模块ISO\u FORTRAN\u ENV Fortr

使用众所周知的内在函数,
gfortran-g-std=f2008-Wall-Wextra-O2
返回
警告:所选标准中不包括(1)处的内在“dcmplx”,但GNU Fortran扩展和“dcmplx”将被视为声明为外部。使用适当的-std=*选项或define-fall intrinsics来允许此内在
。有没有一种处理双精度复数的现代交叉编译器方法?

您可以使用:

CMPLX(X, Y, kind=REAL64)
要使用
REAL64
,您需要导入模块
ISO\u FORTRAN\u ENV


Fortran 2008标准(草案)第13.7.36节对其进行了定义。

如果要转换为双精度类型,无论其具有何种类型的编号,请使用

cmplx(real_part, imaginary_part, kind=kind(1.0d0))

通常,您应该将种类号存储在命名常量中。如果您实际上不需要双精度,而是需要固定的存储大小,请使用模块
iso\u fortran\u env
中的命名常量,或使用
选定的\u real\u kind()指定精度的旧方法

否!请不要使用
kind=8
!使用
ISO\u Fortran\u env
REAL64
等参数,或类似于
selected\u real\u kind()。。。否则,您的代码将无法移植。@AlexanderVogt谢谢您提醒我。。。我的大脑处于快速编码模式。