温馨提示×

Ubuntu中Fortran文件读写如何操作

小樊
36
2025-11-18 19:11:07
栏目: 智能运维

在Ubuntu系统中,使用Fortran进行文件读写操作主要依赖于Fortran标准库中的I/O子程序。以下是一些基本的文件读写操作示例:

1. 打开文件

使用open语句打开一个文件。例如:

program file_io_example
    implicit none
    integer :: unit_number, iostat
    character(len=*) :: filename

    filename = 'example.txt'
    unit_number = 10  ! 选择一个未使用的单元号

    open(unit=unit_number, file=filename, status='old', action='read', iostat=iostat)
    if (iostat /= 0) then
        print *, 'Error opening file:', iostat
        stop
    end if
end program file_io_example

2. 读取文件

使用read语句从文件中读取数据。例如:

program file_io_example
    implicit none
    integer :: unit_number, iostat, num_values
    real, dimension(10) :: data
    character(len=*) :: filename

    filename = 'example.txt'
    unit_number = 10

    open(unit=unit_number, file=filename, status='old', action='read', iostat=iostat)
    if (iostat /= 0) then
        print *, 'Error opening file:', iostat
        stop
    end if

    read(unit_number, *) num_values  ! 假设文件的第一行是数据的数量
    read(unit_number, *) (data(i), i=1, num_values)

    close(unit_number)
end program file_io_example

3. 写入文件

使用write语句将数据写入文件。例如:

program file_io_example
    implicit none
    integer :: unit_number, iostat
    real, dimension(10) :: data
    character(len=*) :: filename

    filename = 'example_output.txt'
    unit_number = 20

    open(unit=unit_number, file=filename, status='replace', action='write', iostat=iostat)
    if (iostat /= 0) then
        print *, 'Error opening file:', iostat
        stop
    end if

    write(unit_number, *) 10  ! 写入数据的数量
    write(unit_number, *) (data(i), i=1, 10)

    close(unit_number)
end program file_io_example

4. 关闭文件

使用close语句关闭已打开的文件。例如:

close(unit_number)

注意:在实际编程中,建议使用deferred语句或end语句自动关闭文件,以避免资源泄漏。

注意事项:

  • 确保文件路径正确,如果文件不在当前工作目录中,需要提供完整路径。
  • 在处理文件I/O时,始终检查iostat变量以确保操作成功。
  • 根据需要调整文件打开模式(如status='new'status='replace'等)。
  • 在写入文件时,确保数据格式与预期一致,以避免数据损坏或解析错误。

0