我想用輸入和輸出文本文件運行我的項目文件。編譯完成後,我得到一個錯誤,說它無法打開輸入文本文件,但它與編譯腳本位於相同的文件夾/路徑中。順便說一句,它正在開發Windows 7就像一個魅力!gfortran在ubuntu中的文件打開問題
如何運行FORTRAN 90打開文本文件作爲它在Ubuntu 16.04上的輸入和輸出而沒有任何錯誤?
這裏是我的代碼
!Seyed Ahmad Abtahi
!1396/04/14
PROGRAM ROKNI_PERSIAN_GULF
REAL::BATH(60,104)
INTEGER::X,nobu,nobv,nobu_start,nobu_end,nobv_start,nobv_end
CHARACTER*60::FILE1,FILE2
CHARACTER(8)::STR
! Give the path to the input and output file names
FILE1 = "BATH4.TXT"
FILE2 = "BATHYOUT.DAT"
! Number of Open Boundaries of Horizontal vector V
nobv_start = 24
nobv_end = 103
nobv = nobv_end - nobv_start + 1
! Number of Open Boundaries of Vertical vector U
nobu_start = 1
nobu_end = 5
nobu = nobu_end - nobu_start + 1
! Reading raw data from input file and change the simple bathymetry to scientific numebers
OPEN (1, FILE = FILE1, FORM = 'FORMATTED', STATUS = 'OLD')
DO I = 1 , 60
READ(1,*)(BATH(I,J),J=1,103)
WRITE(*,*)(BATH(I,J),J=1,103)
ENDDO
CLOSE (1)
! Writing the calculated bathymetry to the output file
OPEN (2 , FILE = FILE2 , FORM = 'FORMATTED', STATUS = 'REPLACE', ACTION = 'WRITE' , RECL = 12*60*103)
WRITE (2 , '(104(1P,E15.7E2))')((BATH(I,J) , J = 1 , 104) , I = 1 , 60)
! Writing NOBU coordinations
WRITE (2 , '(A5,I3)')'nobu:',nobu
DO X = nobu_start , nobu_end
WRITE (STR , '(I4)') X
WRITE (2,'(2(A4))') ' 103', STR
END DO
! Writing NOBV coordinations
WRITE (2 , '(A5,I3)')'nobv:',nobv
DO X = nobv_start , nobv_end
WRITE (STR , '(I4)') X
WRITE (2,'(2(A4))') STR , ' 1'
END DO
END PROGRAM
再次檢查文件的存在。 Linix是**區分大小寫**,因此即使使用大寫字母,也要檢查文件名是否正確**。我建議你不要使用低於10的單位數,因爲它們通常被保留用於特殊目的。大多數情況下,0,5和6是保留的,但1和2對於某些編譯器也是如此。 –
下一次,請向我們顯示* exact *錯誤消息。不要說*「錯誤,說它無法打開輸入文本文件」*,但顯示錯誤!請參加[遊覽]並閱讀[問]。 –
注意默認目錄不是可執行文件所在的目錄,它是執行該命令的目錄。 – agentp