gpt4 book ai didi

fortran - gfortran错误: unexpected element '\' in format string at (1)

转载 作者:行者123 更新时间:2023-12-01 23:04:04 25 4
gpt4 key购买 nike

我有一个使用 Intel Visual Fortran 在 VS2010 中编写的项目。我有一个转储子例程将 2D 矩阵写入文件:

subroutine Dump2D(Name,Nx,Ny,Res)
implicit none
integer i,j,Nx,Ny
real(8) :: Res(Nx,Ny)
character(len=30) name,Filename
logical alive
write(filename,*) trim(Name),".dat"
Write(*,*) "Saving ",trim(Name)," Please wait..."
open (10,file=filename)
do i=1,Ny
Write(10,FMt="(D21.13\)") (Res(j,i),j=1,Nx)
Write(10,*)
end do
close(10)
Write(*,*) "Save ",trim(Name),"Complete!"
return
end subroutine Dump2D

编译运行就ok了。但是当我使用 gfortran 在 emacs 中编译时,它给出了错误:

我认为这是因为 gfortran 无法识别写入命令格式的 \ 。如何解决这个问题?

                Write(10,FMt="(D21.13\)") (Res(j,i),j=1,Nx)
1
Error: Unexpected element '\' in format string at (1)

最佳答案

编辑描述符\反斜杠编辑相关。这是一个非标准扩展 provided by the Intel compiler (也许还有其他)。 gfortran 不支持它。

这种反斜杠编辑的目的是影响回车控制。就像 this answer 中那样这种效果可以通过(标准)非前进输出来处理。1

由于您只想将矩阵的每一列输出到记录/行,因此您不必费心这样做。2 相反(正如您在许多其他问题中看到的那样):

do i=1,Ny
write(10,fmt="(*(D21.13))") Res(:,i)
end do

还有其他方法可以通过更一般的搜索找到。

<小时/>

1 英特尔编译器以相同的方式处理 \$

2 \ 有一些微妙的方面,但我假设您不关心这些。

关于fortran - gfortran错误: unexpected element '\' in format string at (1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43116912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com