我正在將幾個模擬代碼耦合在一起。目前,有3個代碼,但未來可能會更多。您可以在下圖中考慮信息交換:Fortran命名空間衝突
sim1 <====> sim_main <=====> sim2
信息交換是通過每邊有限的接口完成的。
我最近診斷出一個問題,其中sim1中的常見塊與sim2中引起段錯誤的子例程具有相同的名稱。簡單的解決方案是在sim1中更改公共塊的名稱,但這並不理想,因爲如果sim1的開發者使用sim1-2.0,那麼我將不得不再次修改該公共塊的名稱。由於接口相對有限,我想知道有沒有更好的解決辦法是寫一個簡單的模塊:
module sim2_mod
contains
include "sim2.f90"
end
由於這應該把所有的程序在SIM2到sim2_mod命名空間可能是一個use
d有限的基礎。這是一個好主意嗎?一個壞主意?有沒有情況下,這不會工作?在sim2中使用的通用塊仍然具有全球範圍?
謝謝 - 雖然我不認爲我會說服任何開發人員使他們的代碼現代化。我認爲學習像廚師這樣一個晦澀難懂的語言會更容易,將'sim1'翻譯成廚師,然後再將它們耦合起來::-p – mgilson 2012-07-13 19:14:14