本文摘於 ccos(Cheng Cosine) ccos.bbs@vlsi1.iie.ncku.edu.tw Devil(璉璉) Devil.bbs@vlsi1.iie.ncku.edu.tw ---------------------------------------------------------------------------- 發信人: ccos (Cheng Cosine), 信區: fortran 一般所見的*.exe多半可用 filename /? or filename /help 使之列出程式的使用說明,不知在fortran complier 可有此一功能否? 盼高手賜教 ... ... by Cheng Cosine ---------------------------------------------------------------------------- 發信人: Devil (璉璉), 信區: fortran 各家作法在 fortran 77 尚未統一, 用不同的編譯器會略有差異. 以 MS Fortran 為例: C --- Microsoft Fortran 5.1 fortran\include\flib.fi --------------- C Command Line Arguments C ----------------------------------------------------------------- INTERFACE TO INTEGER*4 FUNCTION NARGS() END INTERFACE TO SUBROUTINE GETARG(N, BUFFER, STATUS) INTEGER*2 N CHARACTER*(*) BUFFER INTEGER*2 STATUS END 範例: ----------------- Test.for --------------------------------------- include 'flib.fi' include 'flib.fd' ... character*80 buffer integer*4 summy integer*2 status ... summy = NARGS ( ) CALL GETARG (n, buffer, status) ... End ----------------------------------------------------------------- c:\> test /FPa /MW dir summy: 總共的引數個數加一 (執行檔名) , 以上例來說, summy=4 n: 欲取第幾個引數 buffer: 第 n個引數的字串內容 status: 第 n個引數的字串長度. 如果 n=2, 則 status=3, buffer='/MW ... ' ( buffer 總長宣告為 80 !) PowerStation 雖然相同, 但有些須注意的為: C --- Microsoft Fortran PowerStation 1.0 f32\include\flib.fi ------ C Command Line Arguments C ----------------------------------------------------------------- INTERFACE TO INTEGER*4 FUNCTION NARGS() END INTERFACE TO SUBROUTINE GETARG(N, BUFFER, STATUS) INTEGER*2 N -> 實際上為 integer*4 CHARACTER*(*) BUFFER INTEGER*2 STATUS -> 實際上為 integer*4 END ------------------------------------------------------------------- 但仍可照用. 以上述範例來說: Statement buffer status ------------------------------------------------------------------- CALL GETARG (0, buffer, status) test 4 CALL GETARG (1, buffer, status) /FPa 4 CALL GETARG (2, buffer, status) /MW 3 CALL GETARG (3, buffer, status) dir 3 CALL GETARG (4, buffer, status) undefined 1 ------------------------------------------------------------------- 附帶一提的是, 如果你在 PWB 下編寫及執行 Fortran 時, 要測試程式須將 引數加在主選單 Run下的子選單 Command Line ... 中. 在 PowerStation 所附的 VWB中則加在 Options下的 Execute/Debug ...中.