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)。


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值