我有一個運行一系列子例程的fortran程序。其中的第一個從.txt文件讀取數據的負載。所有變量都在另一個文件中定義,該文件與程序和每個子例程中的'include'一起包含。我怎樣才能最好地將變量傳入和傳出各種子例程?Fortran 08中的'全局變量'?
回答
考慮將COMMON
塊轉換爲模塊,然後只導入通過use some_module, only: var1, var3, var6
實際使用的變量。由於各種原因,include
文件是一個壞主意,尤其是因爲當您更改它們時,它們不會觸發make重建依賴它們的源文件。最好留下他們與其他可怕的F77isms ...
*「他們不會觸發make重建」*看起來你沒有使用moern buid系統,或者沒有正確設置你的依賴列表。 –
感謝您的幫助,這裏是主程序的第一部分(全部正開始後) '程序shear_3d' 隱無 !包含變量 包括「variables.f08」 通話的read_data 打印* 「讀取數據」 呼叫derive_variables(NX) 打印*, 「派生變量」 呼叫init_matrices 打印*, 「初始化矩陣」 呼叫initial_conditions' 和變量的文件是這樣的: '整數I,J ,k,t 整數NX,NY,NETA,NZ,nt下 整數read_nx,read_ny,read_nz 雙精度DX,DETA,DZ,DT' 與100行左右 – TomJ
@TomJ它是完全不可能在這裏讀取的代碼。您的問題包括任何相關信息。請確實閱讀這些鏈接。 –
- 1. Fortran中受保護的全局變量
- 2. Fortran模塊和全局變量
- 3. lotusscript中的全局變量如何全局變量IBM Notes 9
- 4. 局部變量的全局變量
- 5. java全局全局變量和用戶全局變量
- 6. 全局變量
- 7. 全局變量。
- 8. 全局變量
- 9. 全局變量
- 10. 全局變量
- 11. 全局變量
- 12. 全局變量
- 13. 全局變量
- 14. 全局變量
- 15. 全局變量
- 16. 全局變量
- 17. 全局變量
- 18. 全局變量
- 19. 全局變量
- 20. 全局變量
- 21. 全局變量
- 22. 全局變量?
- 23. 全局變量
- 24. JavaScript中的全局變量?
- 25. MySQL中的全局變量
- 26. JS中的全局變量
- 27. OpenCV中的全局變量
- 28. C#中的全局變量
- 29. Javascript中的全局變量
- 30. sqlQuery中的全局變量
通過參數列表傳遞變量,使用派生類型適當。全局變量是一個壞主意。 –
請閱讀[問]。你應該顯示你的代碼。我不清楚你到底在做什麼以及你想做什麼。另見[mcve]。 –
即我的意思是,它們是可以在子程序中改變的變量嗎?或常量?你有什麼問題?問題設計?或者如何編碼?你想看看我們的一些代碼嗎?如果是的話,我們首先需要看到你的一些代碼。同樣參加[巡演],這很有用,說實話,我不僅僅是在嘲笑每個人都是一個混蛋。 –