我是fortran的新手,我正在尝试将以下A.dat文件更改为所需的B.dat并在A.dat上覆盖它(B.dat)(即我想从底部读取A.dat的行顶部并覆盖它(例如,在这个例子中,我想用第三行(最后一行)替换第一行,反之亦然))。谁能告诉我如何在fortran 90中做到这一点?
A.dat's contents B.dat's contents (desired)
111001 1111
110110 110110
1111 111001
到目前为止,在@High Performance Mark的帮助下,我尝试了以下内容:
program test
real, dimension(:), allocatable :: x
Integer (kind=8) :: n
integer(kind = 4) :: i
open (unit=99, file='A.dat', access='sequential', form='formatted')
open(unit=20, file='B.dat', access='sequential', form='formatted')
do i=3,1,-1
read(99,*) n
write(*,*) n
write(20, *) n
end do
close(20)
end program test
但我坚持用“以相反顺序编写新文件”部分“”(前面提到的程序只读取A.dat内容并将它们写入终端和B.dat文件中,顺序相同)。我该怎么做?
P.S。机器信息:
“Linux 3.16.6-200.fc20.x86_64(fedora 20)”
“gcc version 4.8.3 20140911(Red Hat 4.8.3-7)(GCC)”
“使用.f90”
答案 0 :(得分:2)
在Fortran中执行此操作的最简单方法将说明为什么它不是您想要在Fortran中执行的操作。
program futility
implicit none
call execute_command_line('tac A.dat > B.dat')
end program