[問題] 如何在執行時同時外加變數?

看板Fortran作者 (DMRG)時間15年前 (2009/11/29 14:17), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
我的程式中有個整數變數 d,我需要計算d=0,3,7,11,...等等的情形, 我目前的做法是修改程式中的 d=0 ,然後編譯成執行檔 d0.exe, 再修改程式讓 d=3,然後編譯成執行檔 d3.exe, 再修改程式讓 d=7,然後再編譯程執行檔 d7.exe,以此類堆,... 我有很多電腦作業系統是 Linux,把這些執行檔都存到這些電腦裡, 然後到第一台機器執行 ./d0.exe 到第二台電腦執行 ./d3.exe 第三台電腦執行 ./d7.exe,以此類推... 但是這樣覺得很麻煩,因為我就必須編譯幾百個執行檔,其實程式內容都一樣, 只有變數d不同,有沒有甚麼辦法不用MPI,然後只編譯一個執行檔,就可以 在不同電腦執行不同d? 例如程式中並沒有給定d的數值,然後編譯初執行檔 a.exe, 然後執行的時候只要在shell下 ./a.exe 3 這樣就可以執行d=3的情形? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.69.127

11/29 14:39, , 1F
如果在程式一開始用 read(*,*)d 去輸入d的值呢?
11/29 14:39, 1F

11/29 18:23, , 2F
搜尋 iargc() 、 getarg()
11/29 18:23, 2F

11/29 18:24, , 3F
或是用pipe送參數到stdin去用read(*,*)讀取
11/29 18:24, 3F

11/29 23:54, , 4F
成功了!我用fortran 2003的get_command_argument,謝謝
11/29 23:54, 4F
※ 編輯: YCTzeng 來自: 140.114.94.166 (12/29 12:16)
文章代碼(AID): #1B4X8FPW (Fortran)
文章代碼(AID): #1B4X8FPW (Fortran)