| 
 | 
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] syntaxhighlighter_viewsource syntaxhighlighter_copycode ! [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                                                              |   
 
 
 
 |