爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13702|回复: 18

[混合编程] fortran批处理文件 读入数据出错了 求助

[复制链接]

新浪微博达人勋

发表于 2011-11-16 21:25:03 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
错误提示如下:
  forrtl:severe (64): input conversion error,unit 100,file d:\riems\pom\pomout00001
  Image                                 PC                      Routine                    Line                     Source
pom_sur.exe                 0040E369                  Unknown             Unknown              Unknown  
pom_sur.exe                  0040E369                 Unknown            Unknown          Unknown     
pom_sur.exe                  0040E369                   Unknown            Unknown              Unknown                                                          .........                                ................ .                 ............                 ........               .......
Incrementally linked image -PC correlation disabled
我的fortran程序如下:
parameter(ix=148,iy=80,iz=1,it=1456)
real t(ix,iy,iz),u(ix,iy,iz),v(ix,iy,iz),s(ix,iy,iz)
character a1*1,a2*2,a3*3,a4*4,filename*100

  open(200,file='uvts20y.grd',form='unformatted',
     &   access='direct',recl=ix*iy)
irec=0
do iday=1,it
  
  if(iday.lt.10)then
   write(a1,'(i1)')iday
    a4='000'//a1
  elseif(iday.lt.100)then
   write(a2,'(i2)')iday
    a4='00'//a2
  elseif(iday.lt.1000)then
   write(a3,'(i3)')iday
                   a4='0'//a3
                    else
                        write(a4,'(i4)')iday
              endif
  filename='pomout0'//a4
open(100,file=filename, form='formatted',status='old')
do  iii=1,2
read(100,*)
enddo

          read(100,101)t
101       format(8e12.5)
read(100,101)u
read(100,101)v
      read(100,101)s
  close(100)
   write(6,*)iday
  do k=1,iz
   irec=irec+1

   write(200,rec=irec)((t(i,j,k),i=1,ix),j=1,iy)
   
   enddo
   
   do k=1,iz
    irec=irec+1

      write(200,rec=irec)((u(i,j,k),i=1,ix),j=1,iy)
   
   enddo
       do k=1,iz
     irec=irec+1

      write(200,rec=irec)((v(i,j,k),i=1,ix),j=1,iy)
    enddo
   do k=1,iz
   irec=irec+1
    write(200,rec=irec)((s(i,j,k),i=1,ix),j=1,iy)
     
   enddo

     enddo
  
   end

360桌面截图129276609.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-11-16 21:51:04 | 显示全部楼层
这个看了会崩溃的,还得猜你程序是干嘛的。。。你自己先调试吧,找出程序卡在哪一块儿了,可以从头开始,逐步的用pause设置暂停点,直接找到出错的那个点,然后再说清楚你程序是干什么的,你的一个大概思路,这样才能更好的帮你解决问题,我实在没有信心看完你真个程序...
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-11-16 22:02:13 | 显示全部楼层

呵呵 这个程序编译的时候没有错误提示,但是就是在执行的时候出现了错误 如我最后的截图那样,你以前遇到过这种问题么 我不知道这是怎么回事。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-11-16 22:03:09 | 显示全部楼层
云大小子 发表于 2011-11-16 22:02
呵呵 这个程序编译的时候没有错误提示,但是就是在执行的时候出现了错误 如我最后的截图那样,你以前遇到 ...

我的这个程序是批量读取txt数据用的,前面
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-11-16 22:39:38 | 显示全部楼层
说实话,比较同意mofangbao 的说法,还是需要自己设断点去调。
数据不给,程序做什么的,都没说明,程序也没注释,别人看得很崩溃的哦~
另外,多点利用google输入关键词去搜索吧~~刚google了下,好像是说formatted的原因,LZ可以朝这方面查查看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-11-16 23:03:25 | 显示全部楼层
watertea 发表于 2011-11-16 22:39
说实话,比较同意mofangbao 的说法,还是需要自己设断点去调。
数据不给,程序做什么的,都没说明,程序也 ...

恩 好的 谢谢啊 我查查去
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2011-11-17 08:21:01 | 显示全部楼层
我看怎么着你的filename的文件名少写了一个“.txt”啊,既然处理txt数据,文件名没有给对,自然在read(input) 100的地方出错了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-11-17 18:56:55 | 显示全部楼层
云大小子 发表于 2011-11-16 23:03
恩 好的 谢谢啊 我查查去

不知道楼主查的怎么样了,有没有更详细的定位信息
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-11-19 00:39:12 | 显示全部楼层
本帖最后由 wsdwsd 于 2011-11-19 00:47 编辑

这是一个简单的读文件操作,问题应该是文本文件里类型和你的读取变量类型不符,例如文件里是字母,但期望的是数字,
而潜在的原因可能是文本文件的回车换行在不同OS下解读不一样,你希望跳过2行,可能没有成功。
另外还有一些建议,与open和rec语句有关:
1,对于纯粹二进制文件,如果不是模式输出话,尽可能使用form='binary',这样避免rec等与机器、编译器相关的兼容性问题。
2,对文本操作,也别整formatted之类的,即啥也别写就是文本。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-11-20 19:59:18 | 显示全部楼层
文本本来是ascci码格式的,你好像在读二进制文件!如果是二进制文件出错的原因可能是,a1='000'//.......建议你将字符a1,a2,a3定义为固定大小比如character*5 a1,a2....或者赋值完后用trim(adjustle(a1))将空字符去掉。。。这是本人的一点愚见!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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