【引用】【原创】Madagascar环境下编程

(2013-07-17 04:50:34)

转载
标签:

教育

分类:madagascar
本文转载自seismig《【原创】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环境下编程相关推荐

  1. SAP BTP 平台 CloudFoundry 环境下编程概述

    SAP BTP,Cloud Foundry 环境是一个面向微服务开发和编排的开放平台即服务 (PaaS). 开发多语言应用程序 使用 SAP Java.Node.js 和 Python 构建包构建开放 ...

  2. linux 中rpc 服务器,实现Linux环境下编程RPC通信之个人经验总结(转)

    #include #include "trans.h" char * readfile(char *); static char * retcode; char ** readfi ...

  3. Linux环境下编程有哪些优势?

    ★Linux系统它是一种开源的,并且有很多可用的软件支持,再者它大多数都是免费使用的:例如我们的手机的安卓系统底层就是基于Linux系统开发的:Linux最广泛的应用是在服务区和嵌入式系统中,一些知名 ...

  4. 在DOS环境下win7系统与win10系统的编程、链接及运行步骤(非常适合第一次学习DOS的小萌新入手)

    文中如有不足或错误之处,欢迎大家指正! 任务:编写一个简单的汇编程序(在屏幕上打印 Hello World!),使该程序能够链接.运行,最终得到正确结果. win7和win10编程时对应的资料放在以下 ...

  5. 18、Linux下编程风格

    在前面曾总结过微软环境下编程的规范[1],但是在linux下,没有自动补起,以及没有像VS那样高级好用的可视化开发工具,如果变量,函数定义太复杂,敲的也累,下面总结linux下编程风格,资料来源于网络 ...

  6. Linux环境下的网络编程

    本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代  码实例.要理解本文所谈的技术问题需要读者 ...

  7. Windows环境下Unicode编程总结和将ANSI转换到Unicode 将Unicode转换到ANSI

    Windows环境下Unicode编程总结 UNICODE环境设置 在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下. UN ...

  8. 成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入

    成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入 目录 解决问题 解决思路 解决方法 解决问题 .pyx格式文件,在window ...

  9. matlab usb cam,Matlab环境下使用USB2.0摄像头编程image acquisition tools(读书笔记) | 学步园...

    (1)Matlab环境下使用USB2.0摄像头编程 Matlab中的图像获取工具箱给我们提供了必要的函数,我们直接调用就可以了,主要就是简单的介绍如何使用该工具箱进行对USB2.0摄像头的编程. TA ...

最新文章

  1. 色彩空间DCI XYZ转RGB
  2. USACO SECTION 1.1.2 Transformations 爆搜
  3. 下拉导航中绝对定位与相对定位问题
  4. 使用代码获得Hybris Commerce里显示的产品图片
  5. ubuntu mysql修改字符集后不能启动mysql_解决ubuntu下修改my.cnf设置字符集导致mysql无法启动...
  6. 2020 年最厉害的 10 门编程语言
  7. R语言学习笔记(八)判别分析
  8. Oracle的BI解决方案
  9. 源码文件编码问题,导致编译的程序运行错误
  10. android桌面快捷网页,Android向桌面添加快捷方式,使其指向特定的网页
  11. Python学习笔记大总结(我把我所有python笔记做了总结和学习顺序,点击即可进入相关博客。希望可以便于你们阅读)
  12. cdrx8如何批量导出jpg_Coreldraw 8插件下载|Coreldraw x8高版本文件(保存为coreldraw 8.0版)最新插件_ - 极光下载站...
  13. 矩阵快速幂(推导+模板+例题详解)
  14. 2008年度世界五百强
  15. 平板电脑安装软件_哪个便签可以横屏?平板电脑横屏便签软件推荐
  16. 互斥量、临界区、信号量、事件标志组和消息邮箱
  17. 西部之旅之------相机的选择
  18. WEB前端网页设计 HTML网页代码 - 表单参数
  19. APIView 怎么写?
  20. 英语单词记忆 词源法-思维导图(09)词源bar/bal/ban-41

热门文章

  1. cleanmymac能够很方便的清理mac上面没用的软件,尤其是这个清理大文件的功能
  2. Visual Studio 2019 正式发布
  3. Android 5.0+高级动画开发 矢量图动画 轨迹动画 路径变换
  4. 直接拿来用!最火的Android开源项目(完结篇)(转)
  5. Font Awesome 完美的图标字体
  6. VIM配置ActionScript
  7. NetBeans 时事通讯(刊号 # 43 - Feb 03, 2009)
  8. hdu -4284 Travel(状态压缩)
  9. StatisticalOutlierRemoval:离群点移除
  10. Visual Studio Styles