简洁步骤搭建编写Fortran77程序示例环境 调用BLAS Fortran库函数

本来想一口气编辑一篇长文,排版意识较弱,一段一段地来吧。

一,搭建Fortran77编译环境(前文有综述,这里给出最省时方案)

(a)Win10下载并安装MinGW

                  假设安装在了D:\MinGW\,那么检查D:\MinGW\bin中是否存在gfortran.exe  make.exe   gdb.exe  gcc.exe等。如果不存在,则从类似mingw32-make.exe 复制一份并改名为  make.exe等。

(b)将D:\MinGW\bin加入环境变量path中

                  然后打开cmd控制台,执行gfortran --version,看看有没有正常反馈,类似

                                                       GNU Fortran (MinGW.org GCC-6.3.0-1) 6.3.0
                                                       Copyright (C) ... ...

(c)类似执行 gcc --version 、gdb  --version  、make --version等等

(d)如果以上可执行文件不存在,则需要打开桌面的MinGW Intaller 选择并安装。

 

二,编写编译运行blas示例程序

(a)编辑、编译一个fortran77的helloworld程序

            新建一个空文件夹,新建一个新文件:helloWorld.f,打开文件,写入如下内容,每行开头要先tab键。

            输入如下代码:

	PROGRAM EX_SDOT
	REAL VX(1:5),VY(1:5), RESULT_dot
	INTEGER I
	
	DO 10, I=1,5,1
		VX(I)=I
		VY(I)=I*10.0
10	CONTINUE
	PRINT *, VX
	PRINT *, VY
	END

在cmd 控制台里面进行编译:

>gfortran helloWorld.f -o helloWorld

>helloWorld.exe

效果如图

(b)下载blas-3.8.0.tgz          或直接浏览页面下载:http://www.netlib.org/blas/blas-3.8.0.tgz

(c)解压到一个空闲文件夹中,在cmd进入到blas源码的目录,其中有一个makefile文件。

执行make,会生成一个blas的二进制打包文件:blas_LINUX.a

>make

blas的makefile很简洁,基本就是把每个fortran源文件编译成.o文件后,用ar工具打包起来成为blas_LINUX.a

(d)将上一步的.a文件拷贝到helloWorld.f所在的源文件夹中(可省略编译时指定库文件目录)。

并且重新编辑helloworld.f文件,加入对blas函数SDOT的调用,计算两个向量的点积:

	PROGRAM EX_SDOT
	REAL VX(1:5),VY(1:5), RESULT_dot
	INTEGER I
	
	DO 10, I=1,5,1
		VX(I)=I
		VY(I)=I*10.0
10	CONTINUE
	PRINT *, 'VX = ',VX
	PRINT *, 'VY = ',VY
	PRINT *, ''
	PRINT *, 'VX DOT VY = ', SDOT(5,VX,1,VY,1)
	END

执行效果如图:

其中,SDOT函数的定义在blas源文件 sdot.f 中,原型如下:

      REAL FUNCTION SDOT(N,SX,INCX,SY,INCY)

其中:

N 是说明两个相乘向量的元素个数,本例中每个向量VX和VY分别是5个元素;

SX  是第一个向量的形参变量名,本例中实参为VX;

INCX  是下一个参与点积运算的元素的步长,本例中元素是一个挨着一个元素,所以INCX为1;

SY  是第二个向量的形参变量名,实参为VY;

INCY 是指SY中下一个元素的步长,这里也是1.

 

三,对SDOT源代码的分析

(a)从源文件sdot.f中,删掉关键注释信息,只保留程序代码,如下:

*  =====================================================================
      REAL FUNCTION SDOT(N,SX,INCX,SY,INCY)

      INTEGER INCX,INCY,N

      REAL SX(*),SY(*)

      REAL STEMP
      INTEGER I,IX,IY,M,MP1

      INTRINSIC MOD
      STEMP = 0.0e0
      SDOT = 0.0e0
      IF (N.LE.0) RETURN
      IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN

*        code for both increments equal to 1
*        clean-up loop
         M = MOD(N,5)
         IF (M.NE.0) THEN
            DO I = 1,M
               STEMP = STEMP + SX(I)*SY(I)
            END DO
            IF (N.LT.5) THEN
               SDOT=STEMP
            RETURN
            END IF
         END IF
         MP1 = M + 1
         DO I = MP1,N,5
          STEMP = STEMP + SX(I)*SY(I) + SX(I+1)*SY(I+1) +
     $            SX(I+2)*SY(I+2) + SX(I+3)*SY(I+3) + SX(I+4)*SY(I+4)
         END DO
      ELSE
*
*        code for unequal increments or equal increments
*          not equal to 1
*
         IX = 1
         IY = 1
         IF (INCX.LT.0) IX = (-N+1)*INCX + 1
         IF (INCY.LT.0) IY = (-N+1)*INCY + 1
         DO I = 1,N
            STEMP = STEMP + SX(IX)*SY(IY)
            IX = IX + INCX
            IY = IY + INCY
         END DO
      END IF
      SDOT = STEMP
      RETURN
      END

由源代码可以看出来,在元素步长都为1的情况下,SDOT函数计算点积,是按五个五个一组进行累加乘积的。这应该是针对cpu计算能力和内存访问的的一种优化。

而对于元素步长不等于1的情况,则是逐个相乘累加的,针对cpu没办法优化。

 

四,DDOT 和 DCOPY示例

DDOT和DCOPY参数的含义,跟sdot中的参数一样,三者的源代码实现结构也基本相同,只是元素都是DOUBLE PRICISION型的。DDOT也是两个向量点积;DCOPY则是将第二个向量中的元素拷贝到第一个向量中去。

	PROGRAM EX_DDOT_DCOPY
	DOUBLE PRECISION VX(1:5),VY(1:5), COPY_FROM_VY(1:5)
	INTEGER I
	
	DO 10, I=1,5,1
		VX(I)=I
		VY(I)=I*10.0
10	CONTINUE
	PRINT *, 'VX = ',VX
	PRINT *, 'VY = ',VY
	PRINT *, ''
	PRINT *, 'VX DOT VY = ', DDOT(5,VX,1,VY,1)
	VX = 2.0*VX
	PRINT *, 'VX DOT VY = ', DDOT(5,VX,1,VY,1)
	CALL DCOPY(5,VY,1,COPY_FROM_VY,1)
	PRINT *, 'VY = ',VY
	PRINT *, 'COPY_FROM_VY = ',COPY_FROM_VY
	END

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Fortran77是一种编程语言,用于科学计算和数值分析。要在计算机上安装Fortran77,你需要跟随以下步骤: 1.选择适合你操作系统的Fortran77编译器。Fortran77编译器有多种选择,例如GFortran、Intel Fortran等。根据你的操作系统,选择适合的编译器版本。 2.下载并安装所选的Fortran77编译器。你可以从编译器的官方网站上下载安装程序。下载完成后,运行安装程序并按照提示完成安装过程。确保将编译器安装在你想要的位置。 3.配置编译环境。将Fortran77编译器的安装路径添加到系统的环境变量中,以便可以在任何位置使用该编译器。这可以通过编辑操作系统的环境变量设置来完成。添加编译器的路径后,保存并关闭设置窗口。 4.验证安装。打开终端或命令提示符,并输入以下命令来验证Fortran77编译器是否正确安装: gfortran --version (如果你选择了GFortran编译器) ifort --version (如果你选择了Intel Fortran编译器) 如果正确安装,你将看到编译器的版本号和其他相关信息。 5.编写编译Fortran77程序。使用任何文本编辑器编写Fortran77程序,并将其保存为以“.f”或“.for”为扩展名的文件。然后,在命令提示符或终端中,导航到保存程序的文件夹,并使用以下命令编译程序: gfortran program.f -o program (如果你选择了GFortran编译器) ifort program.f -o program (如果你选择了Intel Fortran编译器) 编译成功后,将生成一个可执行文件。 6.运行程序。在命令提示符或终端中,输入以下命令来运行程序: ./program 程序将开始运行,并显示输出结果。 这些是在计算机上安装Fortran77的基本步骤。根据不同的操作系统和编译器,具体的安装过程可能会有所不同。你可以参考所选编译器的官方文档或在线教程,以获取更详细的安装指南。 ### 回答2: Fortran77是一种古老的编程语言,虽然现在使用较少,但仍然有一些特定的应用场合需要使用它。若要在计算机上安装Fortran77编译器,可以按照以下步骤进行操作: 1. 在互联网上搜索Fortran77编译器的下载链接,找到一个可信的下载源,如官方网站或其他可靠的软件下载网站。 2. 点击下载链接,选择适用于你计算机操作系统的Fortran77编译器安装包进行下载。通常会提供多个版本的安装包,选择与你的操作系统相匹配的版本。 3. 下载完成后,打开安装包并按照安装向导的指示进行安装。通常安装过程包括选择安装目录、接受许可协议和设置一些其他选项。 4. 安装完成后,打开一个命令行终端窗口,输入命令“f77”或“gfortran”(根据你安装的编译器不同)以确保编译器已经正确安装并可以使用。 5. 接下来,可以使用任何文本编辑器打开Fortran77源代码文件(通常以“.f”或“.f77”为扩展名),编写你的Fortran77程序。 6. 在终端窗口中,切换到你的Fortran77源代码文件所在的路径,并使用编译器命令编译你的程序。例如,如果使用gfortran编译器,可以使用命令“gfortran my_program.f”来编译名为“my_program.f”的程序。 7. 如果编译成功,将生成一个可执行文件。你可以在终端窗口中输入该文件的名称来运行程序,例如“./a.out”。 以上是在计算机上安装Fortran77编译器的一般步骤。具体的安装过程可能因编译器版本、操作系统和个人设置而有所不同。在进行安装前,建议阅读安装文档和用户手册,以确保正确安装和使用Fortran77编译器。 ### 回答3: Fortran 77是一种编程语言,用于科学和工程计算。要安装Fortran 77,您需要按照以下步骤进行操作: 1. 首先,您需要获得Fortran 77编译器。目前较常用的Fortran 77编译器有GNU Fortran(GFortran)和Intel Fortran(IFORT)。您可以在它们的官方网站上下载适用于您的操作系统的编译器。 2. 下载完编译器之后,双击运行安装程序,并按照提示点击“下一步”等按钮进行安装。确保您选择了正确的安装路径,并记下安装路径以备后续使用。 3. 完成安装后,您需要配置编译器的环境变量。在Windows系统中,您可以通过右键点击“计算机”(或“我的电脑”)图标,选择“属性”,然后点击“高级系统设置”,再点击“环境变量”来打开环境变量设置窗口。在该窗口中,找到“系统变量”部分的“PATH”变量,点击编辑,然后将编译器安装路径添加到变量值中,以分号分隔。最后,点击确定保存更改。 4. 安装完成后,您可以打开一个文本编辑器,编写Fortran 77的代码,并将其保存为以.f或.f77为扩展名的文件。 5. 编写完代码后,您可以使用编译编译和运行代码。在命令行窗口中,导航到您保存代码的目录,并运行以下命令:`gfortran yourcode.f -o yourcode.exe`(如果您使用的是GFortran编译器)或者`ifort yourcode.f -o yourcode.exe`(如果您使用的是IFORT编译器)。这将编译您的代码并生成可执行文件。 6. 最后,您可以运行可执行文件以执行您的Fortran 77代码。在命令行窗口中,导航到您保存代码的目录,并运行以下命令:`yourcode.exe`。 以上是安装和使用Fortran 77的基本步骤。请注意,具体的安装步骤可能因操作系统和编译器版本而有所不同,所以建议您参考相应的软件文档来获取更详细的安装指南。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值