Matlab 版 (精华区)
发信人: zjliu (Robusting), 信区: Matlab
标 题: 数学工具FAQ[smth]-- 6 高级语言数值数学编程
发信站: 哈工大紫丁香 (Tue Dec 17 15:08:58 2002) , 转信
>************************************************************************<
> 第六节:高级语言数值、数学编程的问题
>************************************************************************<
===================================
1).如何在Visual Fortran中画图?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/6/22.BigGreen/MathTools#
可以使用ArrayVisualizer提供的函数,非常方便,一两句话就可以绘图
,缺点是系统必须安装有ArrayVisualizer,而且只能绘制比较简单的图
形。
如果要用Windows的绘图API,请在超星阅读器上查找 巍巍,王越男
编辑的Visual Fortran编程指南一书的第八章、第九章
===================================
2).在FORTRAN中如何动态开数组
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/6/22.BigGreen/MathTools#
FORTRAN 90提供了动态开数组的功能,主要是两个函数:
Real*8, Allocatable :: My1DData(:),My2DData(:,:)
…
Allocate(My1DData(0:10),My2DData(10,20))
…
DeAllocate(My1DData,My2DData)
===================================
3).如何在Visual Fortran中使用LAPACK?
:#halifax (抗震王子), 2002/6/29. SMTH/NumComp#
这两天为了在WIN98/2K下用CVF6.6调用LAPACK函数库查了
不少资料,也请教了很多网上的牛人,现在有个初步的调用方
法,愿意写出来,希望为后来者节省些时间。但是遗憾的是目
前我当初调用它的本意还是没有达到,所以希望有大虾能再指
点一二。
(1)、CVF所包含的LAPACK函数库并不完全,在"\Microsoft
Visual Studio\DF98\CXML\DOC\Cxmlref.pdf"中的Table 8-3和
8-4中列出了大多数LAPACK DRIVER ROUTINE。但这并不表示CVF中
就能直接调用这么多routine,具体哪些能调用可以参
见
\Microsoft Visual Studio\DF98\CXML\INCLUDE\LAPACK_{S、D、
C、Z}_INCLUDE.F90 等四个文件。他们中有的就可以直接
在CVF中调用,没有的就要参见 (3)。
(2)、CVF的环境变量设置。为了调用CVF的LAPACK函数,需要
将一些*.lib函数调入库函数的搜索范围,也需要设置CVF为查找
这些库函数所需要的搜索路径。具体方法是:
Ⅰ project->setting->link->category->input->在object/library
modules 框内加入cxml.lib cxmldll.lib 两个文件名,中间以空格间隔。
Ⅱ 分别在"tools->options->directories->"下的include files和library
files加上……\Microsoft Visual Studio\DF98\CXML\Include
和……\Microsoft Visual Studio\DF98\CXML\Lib 的搜索路径。Ⅲ 如
果在做了以上两个设置之后,程序仍然会出编译或连接错误,
可以做以下两项尝试(当然也可以不管错没错事先就做好):
一、在"project->setting->fortran->libraries"中勾上->use cxml选项
二、在调用LAPACK函数的程序单元内的所有变量定义和可执
行语句之前加上: include 'cxml_include.f90' 语句。
(3)、如果你通过各种途径查到LAPACK有某个函
数,但LAPACK_{S、D、C、Z}_INCLUDE.F90四个文件中又没有
,那就请到http://www.cs.colorado.edu/~lapack/网页下,在网页
左边选择你要的是何种routine。然后依提示逐步找到你所要的
算法源程序文件。注意如果选择"with dependencies"是不能下载
的,要选择"without dependencies"。当然也可以
到http://www.cs.colorado.edu/~lapack/packages.html将所有
的LAPACK都下载下来。
然后你就可以将你下载下来的源程序
拷贝到你的程序中作为一个subroutine了。
[ACKNOWLEGEMENT]感谢hansom、lodger、nfdx、handbarrow、
beefly各位大虾提供的帮助!
===================================
4).如何在各种平台上编译含有Lapack的Fortran程序?
:#FangQ (Qianqian.Fang@dartmouth.edu), 2002/11/19. BigGreen/MathTools#
在Windows,使用Visual Fortran
df yoursource.f90 -o exename /cxml
df /optimize:5 /fast yoursource /link CXML.LIB /stack:4000000
在LINUX中,使用
-llapack 编译指令
使用Compaq Alpha Tru64的f90,使用
f90 yoursource.f90 -o exename -lcxml
在SGI IRIX上使用MIPSpro 7 f90编译器,使用
f90 yoursource.f90 -o exename -lcomplib.sgimath
Sun Solaris/IBM AIX上还没有试过
如果使用Intel Math Kernel Library(MKL),可以使用如下链接指令:
Compile and Link Flags (Pentium III/Athlon):
-L$MKL_HOME/lib/32 -lmkl_lapack32 -lmkl_p3 -lpthread (使用LAPACK)
-L$MKL_HOME/lib/32 -lmkl -lmkl_p3 -lpthread (使用BLAS)
Compile and Link Flags (Pentium 4):
-L$MKL_HOME/lib/32 -lmkl_lapack32 -lmkl_p4 -lpthread (使用LAPACK)
-L$MKL_HOME/lib/32 -lmkl -lmkl_p4 -lpthread (使用BLAS)
--
※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 202.118.229.86]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.304毫秒