开启辅助访问 切换到窄版
搜索

Fortran Coder

 找回密码
 极速注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

[复制链接]

关于批处理文件

[文件读写]
wxy 发表于 2017-4-13 18:17:58 查看49 回复2 阅读模式
我用群里的批处理代码出现图片中错误,找不到哪里出的问题
[Fortran] 纯文本查看 复制代码
program main
    implicit none
    integer i , m
    integer , allocatable :: site(:) , lat(:) , lon(:) ,height(:) , year(:) , month(:) , day(:) , rain1(:) , rain2(:) , rain3(:)
    character(len=37) :: line , filename
!=================================================
!批量读取文件
!=================================================
    open(11,file='1.dat')
    do
        read(11,*) filename

        open(10,file=filename)
!=================================================
!获取文件行数
!=================================================
        i = 0
        Do
          Read (10, *, End=100) line
          i = i + 1
        End Do
        100 m = i
        Rewind (10)
!=================================================
!数据写入test.txt
!=================================================
        allocate(site(m) , lat(m) , lon(m) ,height(m) , year(m) , month(m) , day(m) , rain1(m) , rain2(m) , rain3(m) )
        open (7,file="test.txt")
        do i=1,m
             read (10,*)site(i) , lat(i) , lon(i) ,height(i) , year(i) , month(i) ,day(i) , rain1(i) , rain2(i) , rain3(i)
             write(7,*) site(i),lat(i),lon(i) , year(i) , month(i) , day(i) , rain3(i)
        end do
    end do
end program

QQ截图20170413181816.png
回复

使用道具 举报

fcode 发表于 2017-4-13 19:19:18
你忘了写 deallocate,所以第二次循环的时候,site 等数组已经分配过了。
wxy  楼主 发表于 2017-4-13 21:01:01
本帖最后由 wxy 于 2017-4-13 21:17 编辑
fcode 发表于 2017-4-13 19:19
你忘了写 deallocate,所以第二次循环的时候,site 等数组已经分配过了。

谢谢 现在已经成功批量读取但还是显示 end of life 的错误,因为文件较大暂时还没看出问题,想请教一下,在读取成功的情况下出现这个提示,一般是什麽原因呢
QQ截图20170413205916.png
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则 长代码粘贴

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表