一些 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.4567

write (*,*) 'Test 1:'
write (string,'(F8.3)') x
write (*,*) string

write (*,*) 'Test 2:'
write (string,'(F8.4)') x
write (*,*) string

write (*,*) 'Test 3:'
write (string,'(F9.5)') x
write (*,*) string

end

此程式執行後的結果是:

 

 

從執行的 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,n

m=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,n

m=m+i

end do
write(*,*)'1+2+..+N=',m
end

 

結果