|
1. 如果save的数组太大,会不会出现我这个错误 (像我的这个数组10001*2,这么大的): 不會的
2. SAVE/只讀一次, 很好的coding (於此, 效率是感受不到的)
3. 如果 datafile: 10001 lines, two REALs per line
do ix=1,10001
read(55,*)Fxm(ix,1),Fxm(ix,2)
end do
---> READ(55,*) (Fxm(ix,1),Fxm(ix,2), ix=1,10001) !---> only one "READ"
就算 datafile 不小心相鄰 two lines 合併為 4 REALs per line, 也不會讀錯 (DO/END DO 就會 runtime end-of-file during read)
4. 讀一次沒錯, CLOSE後, 再次OPEN, 讀寫頭一定在初始位置, 同一個(你要自己確定)file, 讀100次也不會有錯
5. 還有一個可能: 不是 first OPEN, 也不是 COLSE後的OPEN, 而是 Re-OPEN
[Fortran] 纯文本查看 复制代码 ! [file "qq"]
!
! 1
! 2
! 3
! 4
! 5
! 6
! 7
! 8
PROGRAM test
IMPLICIT NONE
INTEGER :: i, j
OPEN(UNIT=22, FILE='qq', STATUS='old')
READ(22,*) i, j
WRITE(*,*) i, j !---> 1, 2
call abc()
CONTAINS !-----------------------
SUBROUTINE abc()
IMPLICIT NONE
INTEGER :: i, j
OPEN(UNIT=22, FILE='qq', STATUS='old') !---> re-open
READ(22,*) i, j
WRITE(*,*) i, j !---> 3, 4 (not 1, 2)
END SUBROUTINE abc
END PROGRAM test |
|