一些 Fortran 的小技巧
把數字轉成純文字格式
在繪圖時我們偶爾有需要把數據直接列印到圖面上,而一般繪圖軟體都會支援的是把文字(字串)列印到圖面上。雖然有其他的方法可以達成這個目的,但用 write 指令就可以簡單地達成,以下例子介紹一個好用的技巧:
program write_text
c This program test a fortran trick to convert numeircal value to text.
real x
character*80 string
x = 123.4567write (*,*) 'Test 1:'
write (string,'(F8.3)') x
write (*,*) stringwrite (*,*) 'Test 2:'
write (string,'(F8.4)') x
write (*,*) stringwrite (*,*) 'Test 3:'
write (string,'(F9.5)') x
write (*,*) stringend
此程式執行後的結果是:
從執行的 fortran 程式中發動一個作業系統的指令或另一個程式
CALL SYSTEM()
CALL EXECUTE_COMMAND_LINE( )
輸出後游標不換行
以輸入 N 的來算 1 加到 N 為例,對螢幕提示後不換行直接輸入
方法一:在 FORMAT 中用 $
program io_stay_same_line
write(*,1000)1000 format(1x,'Type in N:',$)
read(*,*) n
m=0
do i=1,nm=m+i
end do
write(*,*)'1+2+..+N=',m
end
方法二: 在 WRITE 括號中的參數加 ADVANCE='NO'
program io_stay_same_line
write(*,1002,advance='no')'Type in N:'1002 format(1x)
read(*,*) n
m=0
do i=1,nm=m+i
end do
write(*,*)'1+2+..+N=',m
end
結果