资源描述:
《vb与fortran混合编程及在管网中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VB与FORTRAN混合编程及在管网中的应用第25卷第3期2006年6月建筑热能通风空调BuildingEnergy&EnvironmentV0l-25No.3Jun.2oo6.96—99文章编号:1003.0344(2006)03.096.4VB与FORTRAN混合编程及在管网中的应用徐楠王树刚李持佳z王楠?(1大连理工大学土木水利学院;2哈尔滨T业大学市政环境工程学院)摘要:本文论述了VB和FORTRAN两种语言混合编程的方法,探讨如何在FORTRAN语言中建立动态连接库以及在VB中实现对动态连接库的调用,
2、最终实现VB语言优秀的界面开发功能与F0RTRAN语言强大计算功能的结合.基于热水管网流量调节的一个示例,给出这两种算法语言混合编程的具体实现过程.关键词:混合编程动态连接库管网调节VisualBasic/FORTRANMixed—LanguageProgrammingandItsApplicationinPipeNetworksXuNan,WangShugang.LiChijiaandWangNan(1SchoolofCivilandHydraulicEngineering,DalianUniversityofTec
3、hnology;2SchoolofMunicipalandEnvironmentalEngineering,HarbinInstituteofTechnology)Abstract:Themethodofmixed—languageprogrammingofVisualBasic(VB)andFORTRANispresented.PerfectcombinationofVB'SexcellentinterfaceandFORTRAN'Spowerfulcalculatingfunctioniscometruebystu
4、dyingonhowtocallFORTRAN'Sdynamic—linklibrary(DEE)inVisualBasic.Basedontheexampleofhotwaterpipenetworkadjusting,implementationprocedureofVB/FORTRANmixed—languageprogrammingisintroduced.Keywords:mixed—languageprogramming,DLL,pipenetwork,adjusting0引言不论是编制暖通空调管网系统的水
5、力计算程序还是开发管网水力计算软件,都将涉及到大量的数学计算,用FORTRAN算法语言很容易实现.现有的有关工程应用领域的大量计算资源大多也是用FORTRAN语言编写的.然而其不足之处在于它进行可视化编程难度较大,开发前后处理功能明显不如其他高级语言方便,实用.VisualBasic语言(以下简称为VB)以其能迅速有效地编制优良的交互界面设计性能,被越来越广泛地应用于Windows环境下系统的可视化界面设计.但VB的缺点在于运算速度慢,不适合进行大型数值计算.如果能将FORTRAN与VB语言结合起来,则可以充分发挥它们
6、的优势.这样使用混合编程的方法即可充分利用前者强大的计算功能,又能方便地设计友好的用户界面.在暖通空调管网系统的初调节和运行调节中,常常采用计算机模拟分析方法.这些模拟程序往往采用FORTRAN语言编制,远远落后于目前流行的基于Windows的可视化应用环境.本文介绍如何用FORTRAN与VB语言混和编程.结合管网系统调节的示例,提供这两种语言混合编程的具体实现过程.1VB和FORTRAN语言混合编程方法用FORTRAN语言编写计算程序通过CompaqVisualFortran6.5(CVF6.5)编译成Dynamic
7、LinkLibra(动态链接库,简写为DLL),用VB语言构造界收稿日期2005.5.23作者简介:徐楠(1980~),女,在读硕士研究生;大连理工大学暖通教研室(I16024);041卜84707684;E'mail:xunan369@yahoo?corn?cn第25卷第3期徐楠等:VB与FORTRAN混合编程及在管网中的应用.97.面,并调用FORTRAN程序的DLL文件.通过参数传递来实现它们之间的数据交换,计算结束后,最终结果显示在VB图形界面上.1.1VB和FORTRAN混合语言编程中的难点VB和FORTRA
8、N混合编程所应考虑的问题有:调用过程问题,传递参数问题和命名约定问题.对于FORTRAN基本调用约定有三种,即:STDCALL约定,C约定和FORTRAN缺省调用约定.使用这三种调用约定,在凋用子过程时,参数的传递都是按照从左到右的顺序将参数表中的变量对应的传递给子过程.值得注意的问题是,FORTRAN语言是以引用传递为缺省传递方