在fortran77中如何将一个.DAT文件读入一个二维数组
在fortran77程序中,如何将一个.DAT的文件存入一个二维数组中,我试了好多办法,都不可行,哪位朋友给指点一下,谢谢啦。一下是程序代码,由于不知道如何传入二进制文件...
在fortran77程序中,如何将一个.DAT的文件存入一个二维数组中,我试了好多办法,都不可行,哪位朋友给指点一下,谢谢啦。一下是程序代码,由于不知道如何传入二进制文件,所以这个问题有一点麻烦。要是能和高人QQ的话,不甚感激。
PROGRAM MAIN
PARAMETER (sz = 5.0) !depth of source
PARAMETER (dx = 25.0) !trace interval
PARAMETER (dep=32) !water depth
PARAMETER (vel=1500 ) !velocity
C daotou and reel information
PARAMETER (nt=3072,NUM=294) !numbers of shot !time sample number
PARAMETER ( nx=115) !every shot's trace numbers
C definite 1D array
DIMENSION SHOT(NX,NT)
real shot1(nt)
integer ntr_r(num) !different shot trace numbers
C prameter file information
CHARACTER*256 FN2,FN3
FN2='nx1.dat' !every shot's trace number
FN3='shot.dat' !open raw data
C find every shot min offset position
C CALL READ_NX(FN2,NUM,NTR_R) !READ ALL OFFSET
OPEN(19,FILE=FN2,FORM='FORMATTED',STATUS='OLD')
DO I=1,NUM
READ(19,*) NTR_R(I)
END DO
print*, 'TRACE= %d '
print*, NTR_R(1)
OPEN(20,FILE=FN3,FORM='UNFORMATTED',STATUS='OLD')
DO K=1,NX
READ(20)(SHOT1(j),J=1,NT)
DO J=1,NT
SHOT(K,J)=SHOT1(J)
END DO
ENDDO
print*, 'DATA= %d '
print*, SHOT(2500,25)
END PROGRAM MAIN
我的QQ:1559495489 展开
PROGRAM MAIN
PARAMETER (sz = 5.0) !depth of source
PARAMETER (dx = 25.0) !trace interval
PARAMETER (dep=32) !water depth
PARAMETER (vel=1500 ) !velocity
C daotou and reel information
PARAMETER (nt=3072,NUM=294) !numbers of shot !time sample number
PARAMETER ( nx=115) !every shot's trace numbers
C definite 1D array
DIMENSION SHOT(NX,NT)
real shot1(nt)
integer ntr_r(num) !different shot trace numbers
C prameter file information
CHARACTER*256 FN2,FN3
FN2='nx1.dat' !every shot's trace number
FN3='shot.dat' !open raw data
C find every shot min offset position
C CALL READ_NX(FN2,NUM,NTR_R) !READ ALL OFFSET
OPEN(19,FILE=FN2,FORM='FORMATTED',STATUS='OLD')
DO I=1,NUM
READ(19,*) NTR_R(I)
END DO
print*, 'TRACE= %d '
print*, NTR_R(1)
OPEN(20,FILE=FN3,FORM='UNFORMATTED',STATUS='OLD')
DO K=1,NX
READ(20)(SHOT1(j),J=1,NT)
DO J=1,NT
SHOT(K,J)=SHOT1(J)
END DO
ENDDO
print*, 'DATA= %d '
print*, SHOT(2500,25)
END PROGRAM MAIN
我的QQ:1559495489 展开
1个回答
展开全部
你为什么要要求 Fortran77 呢?要知道,现在 F90 的编译器到处都是。
根据你的描述来看,dat 文件是二进制文件。(注意,dat并不是一个广泛使用的格式,它只是一个扩展名,它可能是各种格式)
关于二进制文件,你可参考 fcode.cn/guide-4-1.html
二进制文件的读写,不仅仅是代码问题,还需要你对二进制的格式有一定了解。
如果你还是有问题,请访问 bbs.fcode.cn 发帖,给出你的代码,和二进制文件(很重要)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询