我通常使用这种形式在Fortran代码中获得双精度:
use, intrinsic :: ISO_FORTRAN_ENV
real(kind=real64) :: a = 5d0
Run Code Online (Sandbox Code Playgroud)
但是,当连续定义多个变量时,real(kind=real64)将变得非常重复。real*8尽管我避免这样做,但却很诱人,因为我被告知,尽管不太可能,但它有可能使程序不可移植。
从另一个关于该主题的问题中,我发现它是real(real64)有效的,但是我不知道这是否是一种好习惯;似乎与使用相同,real(8)因为至少在我的系统上,real64 =8。有没有比real(kind=real64)在变量声明中指定种类短的方法?甚至有real*8引起问题的现实机会吗?
如何将Fortran中的复杂(nXn)矩阵写入文件?例如:
DO I=1,N
write(14,'(100g15.5)') ( M(i,j), j=1,n )
ENDDO
Run Code Online (Sandbox Code Playgroud)
在这个例子中,一个2nXn元素被写入文件,即真实和虚构.而不是两个元素,Re(a11)Im(a11),我怎么能把它写成一个元素Re(a11)+ iIm(a11)?
Julia有两种方法可以将变量限制在数字范围内:clamp和clamp!。带有点符号,clamp.也可以用于相同的功能。
clamp 将标量限制为由两个值定义的间隔。
clamp.在数组上逐个元素地操作以将每个值限制为该间隔。它也适用于不在数组中的整数和浮点数。
clamp! 对整个数组进行运算以将每个值限制为间隔。
为什么要用三个功能来做同一件事?有什么理由使用clamp!或clamp,何时clamp.将同时处理标量和数组?