在Ubuntu系统中,使用Fortran进行文件读写操作主要依赖于Fortran标准库中的I/O子程序。以下是一些基本的文件读写操作示例:
使用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
使用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
使用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
使用close语句关闭已打开的文件。例如:
close(unit_number)
注意:在实际编程中,建议使用deferred语句或end语句自动关闭文件,以避免资源泄漏。
iostat变量以确保操作成功。status='new'、status='replace'等)。