
徐华宁 符溪 梁蓓雯 高红芳
摘要 结合盆地模拟中的回剥技术,本文介绍了在工作站的0SF/Motif环境中(Unix *** 作系统)实现这一技术的整个过程,其中重点介绍了实现回剥技术的参数输入、界面中汉字的显示问题并结合万安盆地实际资料说明完成回剥技术计算方法的整个过程。
关键词 程序设计 *** 作系统 界面 回剥 计算方法
1 前言
计算机技术,特别是PC机技术的飞速发展,使其应用领域更为广泛, *** 作使用更为简单。这也使各领域的科技工作者能够较容易掌握这一辅助工具表达其研究思想成为可能。基于Windows9.x(或更高级) *** 作系统、面向对象、可视化、所见即所得的程序开发环境,如VB、VC、VFP等使得程序设计,特别是界面设计成为一件轻松的事情,并且在设计此类程序时,有很多的可利用资源。而在诸如地质、气象等涉及大数据量处理,对 *** 作系统稳定性、运算能力要求较高的科技领域,UNIX *** 作系统占有统治地位。特别是在地球物理领域,大多数处理软件都是以UNIX *** 作系统的OSF/Motif平台作为开发环境(OSF/Motif是开放软件基金会以C语言为基础开发的一套交互图形库)。这种程序开发环境一般在 *** 作系统的底层或接近底层,这使程序设计特别是图形界面的设计变得相当繁琐,并且可利用的资源很少。本文结合盆地模拟中的回剥技术,以万安盆地资料为例详细说明实现这一地质反演过程的界面设计及所用算法。
2 界面组成及其功能、汉字显示
程序主界面如图1所示,其中按钮“数据准备”与“回剥显示”分别对应另外二个界面窗口。其中由图2所示的窗口输入计算所需的数据,每输入一组数据后通过“确定”按钮来确认所输入的数据是否正确,如果输入的参数相互矛盾,程序就会d出一个消息框进行提示,以便检查数据输入,如图3所示。当所有的数据输入完成后,可以通过“计算”按钮完成回剥计算。计算的结果可以通过主界面的“回剥显示”按钮来显示,结果如图4所示。
图1 程序主界面 Fig.1 Main interface of program
数据准备 此功能键主要用于输入计算所需要的数据,点击此键d出数据准备窗口(图2)。以表1及表2、式(5)所提供的参数为例:
地层总数框中输入“5”;
地层底部埋深框中输入“416 610 950 1830 3167”;
砂岩岩性含量框中输入“1.0 0.96 0.87 0.6 0.55”;
泥岩岩性含量框中输入“0.0 0.04 0.13 0.4 0.45”;
碳酸岩岩性含量框中输入“0 0 0 0 0”;
剥蚀量框中输入“0 0 300 0 0”;
底界年代框中输入“5.2 10.4 23.2 38.6 65”;
深度区间框中输入“0 610 99999”;
初始孔隙度框中输入“0.61 0.47”;
初始压缩系数框中输入“0.0005 0.00047”;
当砂、泥、碳酸岩的孔隙度方程不能用一个方程确定时,先选中岩性按钮,然后分别输入。
当输入正确完成后,可以通过计算按钮计算并将结果保存于文件中。
回剥显示 此功能键完成对计算结果的显示,以柱状图的形式表现整个回剥过程,通过地质年代与地层埋深的对应关系再现整个沉积史(从老到新)和去压实(从新到老)的过程。
界面中汉字的显示首先需要系统支持汉字,因此程序的运行对 *** 作系统平台的最低要求为Solaries2.5(高版本更好)。由于程序窗口并不是系统的标准输出设备,汉字的显示还需要一个转换程序。众所周知,汉字编码是双字节的,每个字节的高位为1,如果直接将汉字作为一个字符串处理,系统会将每个汉字分作二个负数处理,得到一个乱码。在程序中可以通过位运算的方式解决。假定一个字符串指针*Str,首先判断(*Str&0x80)&&(*(Str+1)&0x80)是否为1。如果为1,则表明此字符为汉字,此时可以通过字符指针与0x7f作与运算后得到的结果代替字符的值,这样就可以得到正确的汉字显示。具体程序China( )实现如下:
图2 数据准备窗口 Fig.2 Window of data inputting
图3 数据输入错误提示图口 Fig.3 Error message window of data input
图4 回剥结果显示 Fig.4 Result display of back stripping
XmString China(ch)
char cn[30]
{char out_ch[100]
char i7f=0x7f
XmString btn_text
int i,j
j=-1
i=0
while(ch[i]!=0)
{j++
if(ch[i]>=32)
{
out_ch[j]=35
j++
out_ch[j]=ch[i]
}
else
out_ch[j]=ch[i]&i7f
i++
}
out_ch[j+1]=0
btn_text=XmStringCreate(out_ch,font)
return(btn_text)
)
3 回剥过程算法设计
回剥技术属反演,根据沉积压实原理,从已知的单井分层参数出发,按地质年代逐层剥去,并考虑沉积间断、沉积压实、剥蚀、古水深等地质现象,直至全部地层剥完为止。最终得到的结果是该井各地层的埋深与地质年代相互关系的历史。其原理是:随着埋藏深度的增加,地层的上覆盖负载也增加,导致孔隙度变小,体积也变小。可以假定地层的横向位置在沉降过程中保持不变,仅出现纵向变化。因此,地层体积变小就归结为地层厚度变小,此外地层的骨架厚度(即实心厚度)始终不变(除非发生剥蚀和断层等事件)。
假定某一井的地层包含三种岩性:砂岩、泥岩和碳酸岩,某一地层的岩性含量分别为:Ps、Pm、Pc,显然Ps+Pm+Pc=1;地层的顶、底埋深为z1,z2;地层各岩性的孔隙度—深度曲线分别为Φs、Φm、Φc,表达式形如下式:
南海地质研究.12
式中Φ0为某种岩性的初始孔隙度,c为对应的压缩系数。
地层的孔隙度—深度曲线的一般表达式为:
南海地质研究.12
地层的骨架厚度就可以按下式计算:
南海地质研究.12
图5 计算流程框图 Fig.5 Frame of calculating flow
回剥结果的计算是以下式进行迭代而求得:
南海地质研究.12
值得一提的是,(3)和(4)式所描述的地层的孔隙度—深度曲线是从地表开始沉积一直沉降到今天的单个孔隙度—深度函数,如果某一地层的顶、底界穿过了以不同孔隙度—深度函数所描述的深度区间,那么上面二式就需要以地层穿过的不同区间参数来分段计算,此时程序变得相当复杂。此外,在考虑剥蚀事件时,特别是对于大剥蚀量情况,此时骨架必须重新计算,并且在有大剥量之前的地层的回剥结果也要求重新计算,设计时必须注意。程序流程中,骨架计算、迭代计算设计为二个子程序,可以使整个程序结构化、清晰化。计算流程如图5所示。
4 实例试算
在数据准备窗口中输入地层参数如表1、表2:
表1 地层各岩性含量参数 Table1 Parameter of lithology content
表2 地层底界埋深、年代及对应剥蚀量 Table2 Depth,age and erosion of stratum
由于数据是根据地震资料而不是通过测井获得,因此在试算过程中,各种岩性的孔隙度—深度曲线无法精确获得,只能由一个统一的方程确定。试算所用的孔隙度—深度方程为:
南海地质研究.12
计算结果如图4所示,通过回剥计算就得到地震剖面上某一井(模拟井)各地层的埋深与地质年代的相互关系,对这一结果进行一系列校正后,可以得到地层的总沉降量和构造沉降量。
5 结论
(1)从严格意义上讲,前面所述的地史模拟基本属于沉积史的模拟,并且是基于垂直沉降的假设而没有考虑构造史的模拟,在820-03-03-02子课题中对此有专门研究,由于篇幅限制,此处不便一一阐述。
(2)本文将Unix OSF/Motif环境下的界面设计与回剥技术这一地质反演过程相结合,通过实例计算,得到了正确的结果。界面的设计也较合理,符合OSF/Motif编程风格,算法的完成过程也考虑到众多的地质事件(如大、小剥蚀量、沉积间断等),这使程序有较强的实用性和较宽的应用范围。但鉴于作者水平和时间限制,界面设计中尚有待完善之处,算法实现中还没有能考虑某些地质事件的处理(例如断层、连续剥蚀使沉积间断等尚无统一解决办法、难度较高的地质事件)。
参考文献
1.张学工、刘业新,1998,X Window/Motif编程速成,清华大学出版社。
2.郭秋麟等,1998,盆地模拟原理方法,石油工业出版社。
3.谭浩强,1994,C程序设计,清华大学出版社。
4.龚雨、曾田等,1994,Motif实用编程大全,学苑出版社。
Design and implement of inversion of back Stripping approach in OSF/Motif enviroment
Xu Huaning Fu Xi Liang Beiwen Gao Hongfang
Abstract
In accordance with the technique of backstripping-one of methods of basin simulation,this paper introduced the approach of accomplishing the course in the UNIX environment,discussed the parameters inputting,display of Chinese characters on the interface and calculating method of backstripping using the data of Wan'an Basin on emphases.
Key words:program design,operating system,interface,backstripe,calculating method
开放式系统是在计算机体系结构、计算机系统、计算机软件和通信系统等领域广泛使用的一种术语。开放式系统鼓励开发兼容的厂商产品。顾客可以从开放式系统中获益,这是因为他们可以在很广范围的、可与系统一起工作的产品中进行选择,更为重要的是,易于和其它厂商的产品互联。一个开放环境提供标准通信设施和协议,或提供一条使用不同协议的途径。计算机社会给要开放的厂商施加了更多的压力,这是因为他们在销售产品时必须公开承诺这些设备将能和现有的系统一起工作。开放式系统是由厂商、厂商的国际联盟、政府部门和世界范围的标准化组织进行定义的。典型情况是,发起厂商、国际联盟或标准化机构控制规范,但是他们是在公共会议上,与其它厂商和用户一起来定义规范的。最近的趋势已经开始偏离了拼命地追求完全的开放,而转向了接受正在使用的标准。例如,传输控制协议/因特网协议(TCP/IP)被证明比开放式系统互联(OSI)协议更加流行,这是因为Internet将永远把TCP/IP协议作为它的基本协议。大多数厂商现在支持TCP/IP,然而还有少数厂商支持OSI协议。
如下所述,一些机构加入了标准化进程,包括一些支持使用和集成正在使用的标准,如开放软件基金会。
开放式系统互联(OSI)模型 是由国际标准化组织在八十年代初开发的。它为计算机和网络设备的互联定义标准和协议。
开放软件基金会(OSF)是一个会员式机构,它从其它厂商处获得技术来建立计算环境。OSF实际创造的技术仅仅是那些获得技术的组合。OSF开放式系统软件环境是一组开放式系统技术的集合,这些技术使用户能够在虚拟无缝环境,对来自多厂商的软便件进行融合和匹配。它的环境包括分布式计算环境(DCE),可以简化在异构环境的产品的开发;它还包括开放软件基金/1(OSF/1),一种为开放环境的UNIX *** 作系统,它支持对称多处理机工作、增强的安全性特征和动态配制。它是围绕Carnegie Mellon大学的Mach内核建造的。另外还有OSF/Motif,一种图形化的用户接口,它具有Microsoft Windows和Apple Macintosh的特征,提供一种通用的外观和感觉,它在IBM系统上广泛使用,并且和IBM的公用用户访问(CUA)有关系。
公用开放软件环境(COSE)是一些厂商组成的国际联盟,这些厂商包括IBM、Hewlett-Packard、SunSoft,Novell,他们共同合作以开发一种可以和Microsoft Windows竞争的UNIX通用台式系统环境(CDE)。
对象管理组织(OMG)开发了一组厂商可以用于开发在多厂商环境 *** 作应用的面向对象语言、接口和协议标准。OMG验证根据标准设计的产品的可接受性。
SQL访问组(SAG)SAG是一个数据库管理系统(DBMS)厂商小组,他们的目标是,建立互 *** 作的结构化查询语言(SQL)数据库标准。SAG和ISO,以及ANSI(美国国家标准局)协商以达到这一目标。
X/Open公司 一个为建立互 *** 作应用而倡导开放的、多厂商环境的厂商构成的小组。它出版信息并提供确认服务。
计算机厂商,如IBM、DEC、Hewlett-Packard,以及其它厂商,现在已经开始偏离他们在七十年代和八十年代提倡的专用结构和系统,而开始提供新的开放式环境。例如,IBM支持它的现有的用户对系统应用体系结构(SAA)、高级对等联网(APPN)和其它标准的需求,同时,通过定义联网方案支持新的顾客对开放环境的需求,它具有如下特征:
隐藏下面的联网部件,因而顾客可以有选择地使用应用产品。它是通过使用OSFDCE和OSI标准来达到目的的。
允许使用多种通信协议,例如APPN、TCP/IP和OSI。为通信使用高带宽技术。
数字设备公司在1987年宣布的DEDnet阶段V中支持OSI协议。它提供对OSI模型的完全兼容和对阶段IV的向后兼容。然而,在1991年,DEC宣布了ADVANTAGE-NETWORKS,这是一种增加对其它协议支持的策略,如支持TCP/IP。为此,DEC从它在阶段V中对OSI的全部接受中退出。更重要的是,DEC提供对TCP/IP的支持,并且有能力建立多种协议支持,它们可以传输DECnet、 TCP/IP和OSI数据。例如,用户使用OSI运输协议可以在TCP/IP应用之间传送数据,或使用TCP 协议在OSI应用之间传输数据。
在过去的十年里,OSI协议就象是对开放式系统设计的模型,虽然对这个协议的一般性接受还是很慢的。甚至使用TCP/IP协议的因特网,也已经开始为集成OSI协议而工作。在缓慢地接受OSI的同时,厂商们开始设计专用的产品,并致力于他们自己的联网体系结构。然而,最近, TCP/IP已经成为通向互 *** 作的一个驱动力量,这主要是因为它有能力处理网络互联,以及它在因特网中被广泛使用。
开放式系统的运动已经从需要开发一种承认协议模型,如OSI,转移到接受多种不同协议。在公司进入到将他们的部门级计算机集成为企业级系统的时期,需要将IPX、TCP/IP、AppleTalk、NetBIOS和许多其它协议集成到将所有东西都能紧密相连的网络平台中。处理能力、多协议路由器和中间件的发展,使得这种多协议支持是可行的。
这里的中间件是一个基本术语,它指对应用程序隐藏下面系统,允许应用程序和其它应用程序进行接口的软件平台。例如,一个在 Novell网络Windows应用运行的用户,可以访问一个传统上不兼容的和TCP/IP网络相连的UNIX计算机系统上的数据库。中间件产品处理所有的通信和接口需求。
对多种不同协议的接受和处理这些协议的产品的可获得性,导致了互 *** 作产品市场的扩展。现在,网络管理人员和用户具有更大的选择权,并且可以在他们的网络上使用更多的可用资源。另外,产品的生产商可以将精力集中于设计独特产品,并且对兼容性很少关心。
相关条目:Distributed Computing Environment 分布式计算环境;Enterprise Networks 企业级网络;Government OSI Profile政府OSI描述;IBM Networking Blueprint IBM联网方案;Interoperability互 *** 作性;Middleware 中间件;Open Systems Interconnection Model 开放软件基金会;Open Systems Interconnection Model 开放式系统互联模型;Windows Open System Architecture Windows开放式系统体系结构。
现有的大多数可重构系统都是由微处理器和可重构硬件构成的,基本思想是利用前者的灵活性是系统对大多数应用都具有较高的性能,利用可重构硬件实现面向应用的专用电路。可重构系统既能获得数倍于微处理器的性能,又可以针对不同性质的应用定制不同的专用计算功能,并根据应用需求动态地将之配置到可重构硬件上,能够比ASIC实现更加灵活,同时能够降低系统的代价。
可重构系统设计成功的关键是:特定领域的灵活性,尤其是对于可重构片上系统来说。目前,嵌入式系统的应用领域广泛,基于可重构系统的开发者不必使用一种芯片来满足所有要求,居大多数都满足某一特殊的领域。
主要特点:
1 系统中包含基于RAM的可重构硬件,可根据需要动态地配置为相应的专用电路;
2 打破了传统冯氏模型的限制,性能比较高;
3 可重构硬件的动态部分重构能力使:“小硬件”能够完成“大任务”,拓宽了系统应用范围;
4 能为特定的应用领域提供灵活高效的解决方案,便于系统的升级和错误修复;
5 系统功耗比较低,生产规模小时具有较高的性能价格比;
故障错误丢失修复方法
一、如果在运行某软件或编译程序时提示缺少、找不到osf.dll等类似提示,您可将从软件学堂下载来的osf.dll拷贝到指定目录即可(一般是system系统目录或放到软件同级目录里面),或者重新添加文件引用。
二、您从我们网站下载下来文件之后,先将其解压(一般都是rar压缩包), 然后根据您系统的情况选择X86/X64,X86为32位电脑,X64为64位电脑。默认都是支持32位系统的, 如果您不知道是X86还是X64,您可以看这篇文章。
三、根据软件情况选择文件版本。此步骤比较复杂,如果是Windows的dll文件,
版本号以5.0开头的或含有 nt 一般是windows2000的文件。
版本号以5.1开头的或含有 xp、xpsp1、xpsp2、xpsp3 信息的一般是windowsXP的文件。
版本号以6.0开头的或含有 longhorn、vista 信息的一般是windowsVista的文件。
版本号以6.1开头的或含有 win7 信息的一般是windows7的文件。 如果不是windows的dll文件,则需要灵活查看版本号、描述、网友提供的信息、以及相关dll的版本号去判断。
四、直接拷贝该文件到系统目录里:
1、Windows 95/98/Me系统,将osf.dll复制到C:\Windows\System目录下。
2、Windows NT/2000系统,将osf.dll复制到C:\WINNT\System32目录下。
3、Windows XP/WIN7/win10系统(64位系统对应64位dll文件,32位系统对应32位dll文件),将osf.dll复制到C:\Windows\System32目录下。
4、如果您的系统是64位的请将32位的dll文件复制到C:\Windows\SysWOW64目录,具体的方法可以参考这篇文章:win7 64位旗舰版系统运行regsvr32.exe提示版本不兼容。
五、打开"开始-运行-输入regsvr32 osf.dll,回车即可解决。
osf.dll 32/64位
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)