Madagascar环境下编程
【引用】【原創】Madagascar環境下編程
(2013-07-17 04:50:34) 轉載▼標簽: 教育 | 分類:madagascar |
Madagascar是一款非常優秀的地震處理系統,在很多方面甚至超過了su。利用該處理系統主要包括兩方面,一個是如何用Python語言組織處理流程,簡潔高效的進行較復雜的地震處理;另一個是如何利用該系統自帶的函數庫,正確合理的將自己的程序融入該系統中。本文主要介紹第二個方面——如何在madagascar環境下進行編程。
一、編程的基本步驟
1.程序的主體結構
首先程序要按madagascar的架構要求進行編寫。其結構可以參考Paul Sava編寫的有限差分法正演程序http://www.reproducibility.org/RSF/book/rsf/manual/manual_html/node6.html;
2.程序命名為M*.c的形式,然后從其他的user目錄下拷貝一份SConstruct文件,將文件中變量progs的值改寫為你的程序名,此時程序名為*.c。
3.在自己的目錄下scons進行編譯;
4.回到安裝目錄,運行sconsinstall。則會形成以sf開頭的madagascar指令。
二、編程注意的問題
1.sf_error和sf_warning的用法
我們在調試過程中經常需要輸出一些變量,來檢查程序哪地方出現了問題。當然你肯定會想到用printf函數來做,但是由于運行程序是按指令的形式執行的,printf的輸出結果會直接寫入你的輸出文件,而不會打印到屏幕上。事實上,madagascar內部設計了打印到屏幕的函數,分別是sf_error和sf_warning,sf_error只能輸出一次,而sf_warning可以輸出多次。用戶可以根據自身需要進行選取。
2.程序頭文件的生成
程序頭文件是根據一定的規范自動生成,因此編寫函數時第二行必須按的格式編寫,否則無法生成正確的頭文件。如果頭文件生成錯誤,參數無法傳遞,程序運行結果也就無法預料了。
3.文件讀寫
先定義文件指針sf_file *in,*out;然后對其賦值in=sf_input("in");out=sf_output("out");中間可以從輸入文件讀入可用參數n1,d1,o1。寫文件時,先寫入數據的相關信息sf_putint(out,"n1",n1);sf_putfloat(out,"d1",d1);sf_putfloat(out,"o1",o1)...然后再寫入數據sf_floatwrite(dat,nd,out);最后關閉文件sf_fileclose(out)。
總結
以上是生活随笔為你收集整理的Madagascar环境下编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SCons命令 之 从入门到精通
- 下一篇: 机器学习 | EM 算法原理