爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6718|回复: 0

[求助] FORTRAN数据文件的读取问题

[复制链接]

新浪微博达人勋

发表于 2021-10-15 11:27:33 | 显示全部楼层 |阅读模式

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

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

x
我在Linux上跑气候模式时,想从历史数据文件中读取数据做为初始条件运行模式,有一个输入和输出历史文件,程序如下:
      ior=0

      DATA  INHST/61/,OUTHST/62/

      irec=tfind+.51
c     irec=tfind+.51-120.
      NS=NSEG+1

      READ(INHST,rec=irec) TD,NT,NXP,NYP,NSEG,NX,NY,HEQUIV,TZERO,
     A TENDD,DTD,XWD,XED,YSD,YND,TDECAY,TPLMIN,TSTPRT,CHKSUM,
     A NPRINT,MASKW,MWNDGF,WMXW,WMXE,WMYS,WMYN,PERIOD,YNORTH,
     A YSOUTH,XWEST,NSEG,NTAPE,NREWND,NATM,
     A HEADER,(AKB(I),I=1,NXP),((UB(J,I),
     A J=1,NYP),I=1,NXP),((HB(J,I),J=1,NYP),I=1,NXP),(ABC(K),
     A ROSS(K),TR(K),K=1,NS),((V(J,I),J=1, NYP),I=1,NXP),((UBNDY(J,K),
     A J=1,NYP),K=1,NS),((HBNDY(J,K),J=1,NYP),K=1,NS),
     A Q0O,UO,VO,DO,TO,U1,V1,H1,TM,HTAU

      GO TO 110
99    WRITE(6,98)
98    FORMAT(1X,'READ ERROR ON INPUT HISTORY FILE')
      GO TO 110
100   WRITE(6,101)
101   FORMAT(1X,'END-OF-FILE ON HISTORY INPUT')
110   WRITE(6,111) TFIND,TD,NT
111   FORMAT(1X,'RDHST SOUGHT TIME:',1X,F10.3,5X,'FOUND TIME:'1X,
     A F10.3,5X,'TIMESTEP:',1X,I6/)
      RETURN
C
C
      ENTRY WRHIST
C
C      WRITES HISTORY TAPES

        ior=ior+1
        ns=nseg+1

      WRITE(OUTHST,rec=ior) TD,NT,NXP,NYP,NSEG,NX,NY,HEQUIV,
     A TZERO,TENDD,DTD,XWD,XED,YSD,YND,TDECAY,TPLMIN,TSTPRT,
     A CHKSUM,NPRINT,MASKW,MWNDGF,WMXW,WMXE,WMYS,WMYN,PERIOD,
     A YNORTH,YSOUTH,XWEST,NSEG,NTAPE,NREWND,NATM,
     A HEADER,(AKB(I),I=1,NXP),((UB(J,I),
     A J=1,NYP),I=1,NXP),((HB(J,I),J=1,NYP),I=1,NXP),(ABC(K),
     A ROSS(K),TR(K),K=1,NS),((V(J,I),J=1, NYP),I=1,NXP),((UBNDY(J,K),
     A J=1,NYP),K=1,NS),((HBNDY(J,K),J=1,NYP),K=1,NS),
     A Q0O,UO,VO,DO,TO,U1,V1,H1,TM,HTAU

205   WRITE(6,201) TD,NT,ior


201   FORMAT(1X,' TIME ',F10.3, ' TIMESTEP ',I6, ' WRITTEN ', 'rec=',i3)

      RETURN
      END

想要读取时候用的语句:
      READ(5,111) FN61
111  FORMAT(A65)
      OPEN(UNIT=61, FILE=FN61, FORM='UNFORMATTED',ACCESS='direct',
c     1 recl=39375)
     1 recl=157500)
      REWIND 61
      READ(5,111) FN62
      OPEN(UNIT=62, FILE=FN62, FORM='UNFORMATTED',ACCESS='direct',
c     1 recl=39375)
     1 recl=157500)
      REWIND 62

编译没有出错,但是运行时候报错At line 12 of file openfl3.f (unit = 61, file = 'inhst') Fortran runtime error: Cannot REWIND a file opened for DIRECT access
如果ACCESS='direct',改为默认格式,还是报错At line 40 of file nrdhist.f (unit = 61, file = 'inhst') Fortran runtime error: Record number not allowed for sequential access data transfer
本人Fortran小白,一直没有搞定,求大佬指教!!万分感谢!!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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