file-io - 将数据按列写入文件(Fortran)

标签 file-io formatting fortran fortran90

我需要在 Fortran 90 中将一些数据写入文件。我应该如何使用 WRITE (*,*) input 将值分组到 columns 中? WRITE 每次调用后总是放一个 new line,这就是问题所在。

代码示例:

open (unit = 4, file = 'generated_trajectories1.dat', form='formatted')

do time_nr=0, N
   write (4,*) dble(time_nr)*dt, initial_traj(time_nr)
end do

现在的重点是将其写在单独的列中。

最佳答案

您可以使用隐含的 DO 循环将值写入单个记录。比较以下两个例子:

integer :: i

do i=1,10
   write(*,'(2I4)') i, 2*i
end do

它产生:

1   2
2   4
3   6
...

使用隐含的 DO 循环,它可以重写为:

integer :: i

write(*, '(10(2I4))') (i, 2*i, i=1,10)

这个产生:

1   2   2   4   3   6   ...

如果元素的数量在编译时不固定,您可以使用 <n>扩展名(gfortran 不支持):

write(*, '(<n>(2I4))') (i, 2*i, i=1,n)

它需要(2I4)的重复次数根据变量 n 的值编辑描述符.在 GNU Fortran 中,您可以首先使用内部文件创建适当的编辑描述符:

character(len=20) :: myfmt

write(myfmt, '("(",I0,"(2I4))")') n
write(*, fmt=myfmt) (i, 2*i, i=1,n)

当然,它也适用于列表定向输出(即格式为 * 的输出):

write(*, *) (i, 2*i, i=1,10)

关于file-io - 将数据按列写入文件(Fortran),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12002620/

相关文章:

gcc - 以非编译器特定的方式更改 Fortran 中的目录

c - 用 C 解析 wtmp 日志

regex - Powershell Parsing Help - 如何将文件夹名称列表输出到文本文件中

python - 使用标准 json 模块格式化 float

arrays - 如何有效地设计一个迭代数组并在一组子例程中分配相应条目的 Fortran 程序?

c++ - C++ 中的 std::complex<double> 与具有链接时优化的 gcc 6 下 Fortran 中的 complex*16 之间的类型不匹配

java - Android 中的 file.renameTo(file) 会出什么问题

file-io - Windows 8 Metro应用程序访问任意文件路径

python - 何时以二进制模式打开文件 (b)?

python - 如何保留最新值并删除列中的所有其他值( Pandas )