您的位置:首页 > 其它

fortran 002 稍微复杂一点的输入(时间序列读取)

2017-11-29 10:38 369 查看

1 从同一文件夹下读取很多文件

(1) 读取文件路径

open(10,file='Address.txt')
read(10,*)Address
close(10)


(2) 读取每一个文件

filename=trim(Address)//'******.txt'

size1=0
inquire(file=filename,exist=alive1)
if(alive1)then
open(10,file=filename,access="sequential",status="old")
# 读取每一行,并且判断文件是否结束
do while(.true.)
read(10,"(A512)",iostat=status1)buffer1
if(status1/=0)exit
size1=size1+1    # size 记录数组的长度
end do
else
write(*,*)TRIM(filename),"不存在。"
stop
end if
allocate(RS(size1))  # 设置前边定义动态数组的size
rewind(10)  #当您读完第一遍后,用REWIND回到文件头部。
!read(10,*)
do i=1,size1
read(10,*)RS(i)
end do
close(10)


(3) 输出

filename=trim(Address)//'flood_rs.txt'
open(10,file=filename)
do i=1,size(Q)
write(10,*) Q(i)
end do
close(10)


2 fortran 数据结构小结

每个变量需要定义初值

定义变量时要注意精度问题,如果精度太低,结果将出现误差

integer  整形
real       浮点型
allocatable 动态数组  size 未定
定义方法 : allocate(size)
数组初值定义 : variable(:) = 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  fortran
相关文章推荐