在WINDOWS平台下水利工程计算程序的混合编程探讨

摘 要:在windows平台下使用fortran计算源程序有多种方法,而利用vb与microsoftfortran powerstation 4.0混合编程是一种简单有效的方法。利用混合语言编程,既可免去重复性的工作,又可充分利用32位windows操作系统的多种优点,提高应用程序的利用率。

关键词:fortran计算程序代码;混合编程;动态链接库

1 引 言

  在水利工程中存在着许多已经历时间的考验,成熟、稳定的fortran计算程序,至今在工程计算中仍发挥着重要作用。过去的fortran计算程序大都利用dos操作系统,采用数据文件方式提供数据,这种方式易产生数据错位和数据本身的错误,不利于检查与修改。这种操作方式相对于计算机技术的发展已很落后,无法利用32位windows操作系统的多种优点。

  为了提高程序的使用效率,提高代码的重用率,有必要对原fortran77程序进行改进,microsoft fortran powerstation 4.0改变了传统的科学计算程序漆黑单调的dos界面,代之以具有友好美观的windows风格的用户界面,mi-crosoft fortran powerstation 4.0支持for-tran 77版本,这使得原有fortran 77应用程序可在microsoft fortrn powerstation 4.0下直接调用,免去了许多重复性的工作。microsoftfortran powerstation 4.0是一种功能强大的32位的fortran集成开发环境,因为都使用了相同的平台,可实现它与vc、vb、delphi等语言的混合编程。在面向对象程序设计语言中,vb具有简单易学、功能强大的特点,被广泛应用与win-dows环境下系统的可视化界面设计。

2 混合编程的方法

  使用microsoft fortran powerstation 4.0与vb混合语言编程,就是利用vb实现友好的用户接口,用fortran编写的过程进行所有的计算工作,在程序中,必须以vb为主程序来调用fortran程序。实现混合编程的关键就是将fortran计算程序编译为动态链接库,而后在vb中调用此动态链接库,有关动态链接库的定义和使用动态链接库的好处可参见[1].在后面的例子中将给出生成和使用动态链接库的具体步骤。

2.1 建立动态链接库

  要将fortran编写的计算程序导入动态链接库,必须在fortran子程序中声明该子程序为外部子程序,其语法为:

  !ms$attributesdllexport::子程序或函数过程名

  !ms$attributesalias:'过程别名'::子程序或函数过程名

  输入参数类型.intent(in)::输入参数表输出参数类型.intent(out)::输出参数表

2.2 vb调用动态链接库的方法

  要调用fortran动态链接库子程序或函数,需在全局模块或窗体中声明,语法形式为:[pub-lic\private]declare sub<动态链接库子程序过程名>lib"动态链接库名"

  其中,动态链接库名需要指明fortran动态链接库的全路径名.

3 混合编程中应注意的问题

  使用动态链接库需要注意的问题有:命名约定、参数传递约定。

3.1 命名约定

  fortran中命名不区分大小写,但在缺省情况,fortran子程序在编译为动态链接库中,其名称的别名自动取为“_子程序名@n”,其中n=参数个数x4,在vb中,路径名用大写或第一个字母用大写。

  在vb调用动态链接库语法形式中,alias项是可选项,可不出现,可利用fortran的别名(alias)属性,改变缺省设置,直接以alias属性后的名称为动态链接库子程序过程名。

3.2 参数传递约定

  用混合语言编程存在数据类型匹配问题,两种语言之间的数据类型并非一一对应现将for-tran和vb中常用的数据类型对应关系如表1。

  在fortran和vb中应指明参数的传递方式,使用缺省方式为引用方式(byref),若对某些参数的传递方式需特别指明(注意数组只能用引用传递方式),可用fortran中的参数传递属性,如value属性,例如:

  上例中,除r1是按值传递,其余参数按引用传递。vb调用此例程时,也应注明参数的传递方式,一一对应。

  private declare sub sub1 lib"d:\zzq\ebug\zq.dll"(byval r1 as single,r2 as single,add as single,arr as single)

4 举 例

  下面举一个实际例子详细说明动态链接库的建立和使用。

4.1 建立新的工程文件

  依次选择fortran powerstation 4.0→file→new→project workspace,在new projectworkspace菜单中选择dynanic-link library,name项填入fdll,location项填入路径,选择cre

  • 在WINDOWS平台下水利工程计算程序的混合编程探讨已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计