基于VC~++与Fortran混合编程的地质统计学反演算法实现
- 格式:pdf
- 大小:610.62 KB
- 文档页数:3
TECHNOLOGY AND INFORMATION80 科学与信息化2023年10月下基于Python和Fortran程序实现瞬变电磁法一维反演软件的设计与开发孙大利 李方舟 费靖淇中国地震局第一监测中心 天津 300171摘 要 瞬变电磁方法可以有效地识别地下水分布情况,从而为地下城市空间科学安全的开发利用提供有力的帮助。
为了降低瞬变电磁法数据处理分析的使用门槛,使非专业人员能够快速分析瞬变电磁探测数据,本文基于Python和Fortran语言实现瞬变电磁法中心回线系统一维Occam反演软件核心算法和交互界面的设计开发,简化了专业处理流程,更高效地发挥了瞬变电磁法探测在城市地下空间开发中的辅助作用。
关键词 Occam反演;应用软件;地下空间Design and Development of One-Dimensional Inversion Software for Implementing Transient Electromagnetic Method Based on Python and Fortran Programs Sun Da-li, Li Fang-zhou, Fei Jing-qiThe First Monitoring and Application Center of China Earthquake Administration, Tianjin 300171, ChinaAbstract Transient electromagnetic method can effectively identify the distribution of groundwater, so as to provide powerful help for the scientific and safe development and utilization of underground urban space. In order to reduce the threshold of use of transient electromagnetic data processing and analysis, and enable non-professionals to quickly analyze transient electromagnetic detection data, this paper implements the design and development of the core algorithm and interactive interface of the one-dimensional Occam inversion software for implementing transient electromagnetic method central loop system based on Python and Fortran language, simplifies the professional processing process, and plays the auxiliary role of transient electromagnetic detection in the development of urban underground space more efficiently.Key words Occam inversion; application software; underground space引言近年来随着城市化的不断发展,城市规模的不断扩大,地上有限的空间资源难以满足人们日常生活、工作的需求。
C++与Fortran混合编程在多点地质统计建模中的应用冯文杰,尹艳树,毛 锐,石书缘(长江大学地球科学学院,湖北荆州 434000) 摘 要:本文结合For tran强大的科学计算能力的特点和C++良好的人机交互功能,首次利用C+ +为石油领域最新的多点地质统计学方法(Snesim)开发出界面友好、操作方便的界面,并将Fo rtran语言编写的Snesim封装为动态库(DLL),利用界面直接调用动态库,完成C++与Fortran的混合编程,使得Snesim方法人机交互简单易行,克服了Snesim方法人机交互方面的弱点,同时弥补了目前商用软件没有Snesim的缺陷。
方便了Snesim在石油行业的普及应用。
关键词:多点地质统计学;Snesim;动态链接库;混合编程 中图分类号:P628+.5 文献标识码:A 文章编号:1006—7981(2010)18—0001—03 多点地质统计学是石油行业最新发展的地质建模方法,它使用训练图像进行模拟,克服了基于象元的方法难于对地质体进行参数化的问题,同时采取序贯算法,克服了基于目标的方法(采取迭代算法)过多占用机时的问题,备受地质统计学家的青睐。
成为目前世界石油地质统计建模的中心[1-4]。
国内有不少学者对其进行了研究[5-8]。
但由于其界面仍然为DOS界面,界面不友好,参数解释困难。
而现有的商用软件虽然有成熟的人机交互界面,但受制于多点统计方法的复杂性,并没有包括多点地质统计模块。
这极大地阻碍了多点地质统计学的普及和应用。
本文首次利用C++为石油领域最新的多点地质统计学方法(Snesim)开发出界面友好、操作方便的界面,并将Fo rtran语言编写的Snesim封装为动态库(DLL),利用界面直接调用动态库,实现了多点地质统计方法界面化,使得Snesim方法人机交互简单易行,克服了Snesim方法人机交互方面的弱点,同时弥补了目前商用软件没有Snesim的缺陷。
第 29 卷 第 9 期 计算机工程与设计Computer Engi neering and Design2008 年 5 月 May 2008Vol . 2 9No . 9Linux 环境中 Fortran 与 C 混合编程方法研究亓雪冬 1, 仝兆岐 1, 何潮观 2(1. 中国石油大学 地球资源与信息学院,山东 东营 257062;2. 胜利油田物探研究院,山东 东营 257022)摘 要:在 Linux 系统中存在大量优秀的 Fortran 和 C 的源代码和程序库,为有效的利用这些软件资源,发挥不同语言各自的优势,探讨了 4 种混合编程方法— — 基于外部数据混编、基于 CORBA 混编、基于 f2c 混编、基于 cfortran 混编,并论述了各方法 的基本原理、实现步骤,比较了各方法的优缺点和适用范围。
关键词:混合编程; 编程语言; 源码转换工具; 组件; 通用对象请求代理 中图法分类号:TP311.52文献标识码:A文章编号:1000-7024 (2008) 09-2378-03Study on mixed Fortran and C programming in LinuxQI Xue-dong 1, TONG Zhao-qi 1, HE Chao-guan 2(1. College of Geo-resources and Information, China University of Petroleum, Dongying 257062, China;2. Geophysical Prospecting Research Institute of Shengli Oilfield, Dongying 257022, China ) Abstract :There are many good Fortran, C source code and libraries in Linux. In order to reuse these software resources an d make use of the two languages together effectively, four methods of mixed Fortran and C language programming in Linux system are discussedwhich are external data, CORBA, f2c and cfortran. Then the principle, the processes, the merit and flaw of these methods are analy sed and contrasted.Key words :mixed-pro grammin g; programming lan guage; source code converter; component; CORBA的 Fortran PowerStation 和 VB, VC, Delphi, C++ Builder 之间的混合编程研究。
第33卷第3期2021年6月岩性油气藏LITHOLOGIC RESERVOIRSV ol.33No.3Jun.2021收稿日期:2020-03-04;修回日期:2020-08-17;网络发表日期:2020-11-11基金项目:中国石油天然气股份有限公司勘探与生产分公司项目“消除强波阻抗地震响应对围岩反射特征影响的方法研究”(编号:kt2020-10-04)资助作者简介:贺东阳(1991—),男,硕士,主要从事地震储层预测和软件开发方面的研究工作。
地址:(730020)甘肃省兰州市城关区雁儿湾路535号。
Email :********************.cn 。
文章编号:1673-8926(2021)03-0113-07DOI :10.12108/yxyqc.20210311引用:贺东阳,李海山,何润,等.基于混合高斯先验分布的地质统计学反演.岩性油气藏,2021,33(3):113-119.Cite :HE D Y ,LI H S ,HE R ,et al.Geostatistical inversion based on Gaussian mixture prior distribution.Lithologic Reservoirs ,2021,33(3):113-119.基于混合高斯先验分布的地质统计学反演贺东阳,李海山,何润,王伟(中国石油勘探开发研究院西北分院,兰州730020)摘要:传统的地质统计学反演利用地质统计学模拟算法来构建模型参数的先验信息,然后在地震数据的约束下利用优化算法来获得模型参数的后验解,通常忽视了岩性对模型参数的影响并且在优化过程中计算量大。
为此,将模型参数的先验分布表示为受离散岩性影响的混合高斯分布,将线性混合高斯反演理论与地质统计学的序贯模拟相结合,最后通过序贯采样的方法直接获得模型参数和离散岩性的后验解,避免了优化求解过程,且反演结果具有较好的空间连续性和稳定性。
VC 与Fortran 混合语言编程 肖晓玲,卢正鼎 (华中理工大学计算机科学与技术学院,湖北武汉430074) 张 翔 (江汉石油学院地球物理勘探系,湖北荆州434102)[摘要]V C 与Fortran 混合语言编程时,按调用方式与实现的不同,调用约定主要采用C 与STDCALL 属性的调用约定。
命名约定一般使符号名表现为纯大写的名称、纯小写的名称或混合书写形式名称。
不同语言之间参数数据的传递主要通过:①调用变量参数列表;②数据、过程模块结构;③将变量声明为公用、外部和全局类型这3种方式来实现。
采用V C 与Fortran 混合语言编程设计了大地电磁测深一维交互式解释系统。
[关键词]程序设计方法;Fortran ;V C 混合语言[中图分类号]T P 311111[文献标识码]A [文章编号]10009752(2000)02007104混合语言编程是采用2种或2种以上的编程语言组合编程,彼此相互调用,进行参数传递,共享数据结构及数据信息,从而形成一种程序实体的过程,也称为程序接口。
在软件编制和开发工作中,如果开发的软件规模较小,具有较简单的科学计算或数据处理,那么,只选择一种高级语言或者数据库语言来编程是可行的;然而,对于要开发功能很强、规模很大的大型应用软件,并且软件中既具有大量数据处理,又具有大量科学计算,甚至具有较强的实时功能的系统来说,采用单一的高级语言很难完成预期的计划和功能,而且在编程中也遇到很大的麻烦。
因为各种语言都有其长处,也有其局限性,一种语言鞭长莫及之处,正是另一种语言的驾轻就熟之区。
集各语言之精华,扬长避短,就可以大大提高系统的效率、功能和灵活性。
Fortran 语言是流行较广的适用于科学计算的高级语言,其标准化程度高,便于程序交换,较易优化,拥有高精度的数据结构与运算结构。
而V isual C ++与硬件底层打交道具有强大优势,便于图形系统的开发,已成为W indow s 系统平台上最强大的应用程序开发系统之一。
基于VS2008和IVF11的C/C++和Fortran混合编程By X.C. Li(lxc1975@)调用时,先将有Fortran写出来的函数建立成动态库,然后在C++程序中连接这个动态库,连接的方式有显示和隐式两种。
本文提及的仅限于隐式连接。
C/C++编译器:MSVS2008(VC9),对VS2005也适用。
Fortran编译器:Intel Visual Fortran Compiler 11.0,IVF的其它版本也适用。
操作系统:Win7。
1. 建立Fortran动态库1.1 用IVF建立一个dynamic-link library项目,比如项目名为FortranDLL。
在项目中新建f90代码文件,比如文件名为FortranSrc.f90。
在FortranSrc.f90中写下如下代码:double precision function addF(x, y)!DEC$ ATTRIBUTES DLLEXPORT, STDCALL:: addF!DEC$ ATTRIBUTES VALUE::x, yimplicit nonedouble precision x, yaddF = x + yreturnend function addF1.2 说明:1)Fortran不区分大小写,代码的大小写纯粹是为了可读性。
2)!DEC$ ATTRIBUTES DLLEXPORT, STDCALL::addF。
首先,这一行中的“!”并非注释的意思。
行中的STDCALL(它被叫做调用约定)不能少,否则C++程序(这里说的是C++调用时)编译时,会报错为:无法连接addf函数。
之所以提醒这一点,是因为在早期的版本中缺省就是STDCALL,所有可有可无。
如果你按照早前的资料去做的话就不行了。
不同的编译器以及在不同的操作系统上其缺省的值不一样,为了稳妥或程序的可读性,将调用约定显式写出来比较好。
3)对!DEC$ ATTRIBUTES VALUE::x, y的解释。
基于MATCOM 平台的VC++与MATLAB混合编程地震正演模拟摘要:正演模拟是地震勘探的重要方法之一。
为解决基于Matcom4.5的VC++与Matlab接口程序的地震正演模拟问题,通过用Matcom4.5与VC++结合编程的新方法实现EDA介质中的地震波正演模拟的实例,结果显示通过Matcom实现VC++与Matlab混合编程的可行性并提高了编程效率。
关键词: Matcom;VC++; Matlab;混合编程;正演模拟MIXED PROGRAMMING OF SEISMIC FORW ARD MODELING BETWEEN VC++Abstract: Forward modeling is one of the important means in seismic exploration. This paper in order to solve the interface program of seismic forward modeling between Matlab and VC++ based on Matcom4.5,by using an example which achieved the results of simulate the wave equation in EDA media by a new method which is mixed programming between Matcom4.5 and VC++,the results show the advantage of efficiency by mixed programming between Matlab and VC++ based on Matcom4.5.Keywords: Matcom;VC++;Matlab;Mixed programming;Forward modeling0引言近年来,随着勘探程度深入化和勘探目标的复杂化,地震勘探无论在采集、处理还是解释技术方面都面临越来越多的挑战。