按照你上一篇文章的程式碼,fortran 90的語法大概像這樣:
program hello
!this program will ask name and say hello
character(25) :: u
WRITE(*,*) 'What is your name?(no more than 25 characters)'
READ(*,*) u
WRITE(*,*) 'Hello! ',trim(u),'. How are you?'
end program hello
1.主程式名稱是hello,結束時最好用end program hello,明確表示hello結束了。
檔名結尾.f 表示程式是fortran 77格式,.f90表示fortran 90格式。
end program hello是fortran 90的語法,end是fortran 77語法。
如果你的檔名和實際程式的語法不同的話,照理說應該會向下相容,
但無法向上相容。結果你的錯誤訊息看起來是編譯器找不到程式的結尾。
2.註解請用!,不要用C。
3.宣告的 :: 意思是,::的左邊是變數的型態和屬性,::的右邊是變數名稱。
4.NAME在fortran有別的用途,或許應該避免把變數名稱叫做NAME。
5.trim是內建函數,會把傳入的字串有空格的尾巴刪除。
6.putty只是連線程式,就好像PCMan一樣可以用來連批踢踢,你也可以用putty連
上批踢踢,只要把連線通訊協定選為Telnet,主機ptt.cc就可以了。
所以你在putty上用vi寫程式,這句話聽起來很奇怪。應該說用putty連上某台主機,
或是說透過ssh或telnet連上某台主機,其實可以不用說,因為跟fortran沒關係。
7.Fortran是很棒的程式語言,最好從fortran 90開始學,放棄fortran 77。
最後會發現Fortran可能是最快最有效率的,最容易平行化的程式語言。不需要mpi,
不用openmp,Fortran本身語法就能做平行處理,它叫做coarray,語法使用中跨號[*]
※ 引述《takaoclass (高雄級)》之銘言:
: 我是重拾fortran不久的新手,
: 我在putty上用vi編輯器寫了一隻f90檔,
: 用gfortran hello.f90和gfortran -o k.exe hello.f90編譯時,
: 都得到以下錯誤訊息:
: Error: Unexcepted end of file in 'hello.f90'
: 可是我用gfortran指令編譯f檔卻毫無問題,
: 請哪位高手給我指點一下,感謝!