作者YCTzeng (DMRG)
看板Fortran
標題[問題] 如何在執行時同時外加變數?
時間Sun Nov 29 14:17:48 2009
我的程式中有個整數變數 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
推 laa7352:如果在程式一開始用 read(*,*)d 去輸入d的值呢? 11/29 14:39
推 mantour:搜尋 iargc() 、 getarg() 11/29 18:23
→ mantour:或是用pipe送參數到stdin去用read(*,*)讀取 11/29 18:24
→ YCTzeng:成功了!我用fortran 2003的get_command_argument,謝謝 11/29 23:54
※ 編輯: YCTzeng 來自: 140.114.94.166 (12/29 12:16)