因为课程需要,今年开始学习FORTRAN语言。之前学校的计算概论用的是C,后来又学了C++和Python作为面向对象的工具,数值计算方面主要通过学校的许可证用的MATLAB。因为专业侧重数值模拟和反演问题,对于FORTRAN这一门上古的数值计算语言早有耳闻,在学习Scientific Computing的时候也经常讲到一些原本是基于FORTRAN优化的子程序和底层设计模块。上网查了一下,FORTRAN的社区非常少,而且可能是因为使用者都已经是富有经验的程序设计者,自学入门的新手不多,很多地方还是需要自己摸索,就决定索性在博客上记录一下摸索的过程。

FORTRAN,原意为Formula Translation(公式翻译器),是出现很早的一门高级语言。FORTRAN的主要面向科学计算、数值计算,虽然在FORTRAN-2003版本中逐渐引入了更加丰富的面向对象(Object Oriented)设计思维,但是其主要的功能仍然是数值计算领域;某种意义上,使用FORTRAN的人一般不需要过于复杂的面向对象策略,需要使用复杂完整的面向对象策略的人也并不会选择FORTRAN。最近还发现非常辛酸的一点,CNBlogs上的代码插入不支持Fortran的语法高亮,也没有找到支持的插件。

一. FORTRAN 编译器的安装

查了一下,目前相对常见的Fortran编译器版本是Fortran77或者Fortran90/95,进入新世纪的修正版本Fortran2003反而用的比较少。流行的免费FORTRAN编译器实现方案包括GCC的GFortran,Intel的Intel Fortran Compiler等。我这里使用的是G95,是GFortran对应Fortran95的一款编译器。Windows系统上如果已经安装了MinGW体系(如果你使用过gcc的C语言或者C++编译器,一般都已经装了),那么一个.exe文件就可以帮忙搞定安装G95的全部操作!非常方便!

G95.org提供下载g95_MinGW.exe的ftp:http://ftp.g95.org/g95-MinGW.exe;如果没有成功,加载不出来(对我来说就是这样),那么fortran company网站的g95下载也可以:https://www.fortran.com/the-fortran-company-homepage/whats-new/g95-windows-download/。下载下来解压,应该就是一个.exe文件,直接运行就可以了,程序会自动询问你安装位置(可以自己选)、是否添加到路径(PATH,选是就好)等等问题,不到两分钟整个安装就完成了!如果要验证安装是否成功,在命令行cmd中直接输入

g95 --version

然后cmd会返回一个G95的版本信息,如下所示。首先看到这个版本其实已经8年半没有更新过了;此外,G95编译器是开源的,所以“You may redistribute copies of G95 under the terms of the GNU General Public License”。

C:\Users\admin>g95 --version G95
(GCC 4.1.2 (g95 0.93!) Jun 16 2010)
Copyright (C) 2002-2008 Free Software Foundation, Inc. G95 comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of G95
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING

二. FORTRAN文件的编写的编译

本来,之前用C语言的时候,Code::Blocks是一款相当不错的IDE,而且支持C,C++和Fortran。不过后来转到C++以后,因为更快的速度,选择了Dev-C++作为写小文件的IDE,而Visual Studio作为写比较大文件的IDE。Fortran的IDE不算很多,就没有再安装,目前我用Notepad++文本编辑器写Fortran文档,然后在命令行里面编译运行。Notepad++真是神勇,作为一款文本编辑器各种高亮都有。在Notepadd++中编辑如下代码:

PROGRAM hello_world
PRINT *, 'Hello World! Welcome to FORTRAN!'
END

并且将其储存为 hello_world.f90。然后,我们在命令行中用刚刚下载的g95 compiler编译这个程序。首先,进入文件所在的文件夹,键入盘符加冒号(如 “D:”)进入某个磁盘,键入”dir”查看当前目录下的文件及文件夹,键入”cd+空格+路径”(如”cd Documents”)进入某一文件夹。使用g95,将hello_world.f90编译为可执行的对象文件hello_world.o:

D:\Personal Documents\Programming\Fortran>g95 hello_world.f90 -o hello_world.o

再使用”dir”命令,就可以看到当前目录下出现了”hello_world.o”,直接键入文件名运行:

D:\Personal Documents\Programming\Fortran>hello_world.o
Hello World! Welcome to FORTRAN!

新建一个计算两浮点数算术平均和几何平均的fortran文件,存为add_numbers.f90:

PROGRAM add_numbers
REAL :: a, b, av1, av2
PRINT *, 'Input 2 numbers:'
READ (*,*) a, b
av1 = (a + b)/2; av2 = (a*b)**0.5
PRINT *, 'Arithmetic mean: ', av1
PRINT *, 'Geometric mean: ', av2
END

同样编译运行:

D:\Personal Documents\Programming\Fortran>add_numbers.o
Input 2 numbers:
2.0 8.0
Arithmetic mean: 5.
Geometric mean: 4.

 

Fortran入门:Windows平台的Fortran编译器安装和使用的更多相关文章

  1. TQ2440 学习笔记—— 1、Windows平台下开发工具安装与环境建立

    板子:广州天嵌公司的TQ2440,处理器为三星的S3C2440 1.开发工具的安装与环境建立 系统:win7  64位 SecureCRT软件:该软件能够取代Windows中的超级终端,是个非常好的串 ...

  2. Windows平台JDK8下载和安装说明

    本页介绍如何安装和卸载Windows的JDK 8. 该页面包含以下主题: “系统要求” “安装说明符号” “安装说明” “卸载JDK” “已安装的目录树” “安装疑难解答” 有关安装JDK 8和JRE ...

  3. windows平台Perl模块离线安装

    工具: Perl windows工具:ActivePerl-5.24.0.2400-MSWin32-x86-64int-300560.exe Dmake工具:https://cpan.metacpan ...

  4. Windows平台Hadoop编译、安装、配置与运行(转)

    http://www.srccodes.com/p/article/38/build-install-configure-run-apache-hadoop-2.2.0-microsoft-windo ...

  5. Windows平台的JDK安装(转)

    下载Java的开发包JDK JDK有好几个类型版本,我们只需要选择Java SE类型的版本就行了.进入网页:http://www.oracle.com/technetwork/java/javase/ ...

  6. Windows平台JDK安装

    原文链接:http://android.eoe.cn/topic/android_sdk 下载Java的开发包JDK JDK有好几个类型版本,我们只需要选择Java SE类型的版本就行了.进入网页:h ...

  7. Node.js入门:Node.js&NPM的安装与配置

    Node.js安装与配置      Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本情况了,对此,我们将在0. ...

  8. Django 1.6在Windows平台下的配置

    Django 1.6 在Windows平台下的配置 前言 最近两天研究了下Django1.6在Windows平台中的配置安装,服务器采用Apache.期间遇到过许多新手所遇到的各种问题,也算是一种宝贵 ...

  9. Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE

    Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...

随机推荐

  1. Eclipse中如何在指定工程中搜索指定的字符串

    1.点击Search: 2.在下拉框中先择Search. 3. 4. 5.选择Java 6.

  2. laravel读取memcached缓存并做条件查询

    public function onlineplayersource() { $res = $_POST['aoData']; $sEcho = 0; $iDisplayStart = 0; // 起 ...

  3. Autojump:一个可以在 Linux 文件系统快速导航的高级 cd 命令

    相关博客:https://linux.cn/article-3401-1.html 对于那些主要通过控制台或终端使用 Linux 命令行来工作的 Linux 用户来说,他们真切地感受到了 Linux ...

  4. 服务器部署nginx报错 nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored

    nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 修改nginx配置参数后,使用ng ...

  5. 【转】.Net+MySQL组合开发 乱码篇

    所用工具MySQL5.022VS2005 Team SuiteMySQL Connector Net 5.0.3EMS SQL Manage 2005 For MySQL使用过MySQL的朋友都知道有 ...

  6. The request associated with the AsyncContext has already completed processing

    Some time ago there was a problem with the servlet3.0, is in servlet in asynchronous processing data ...

  7. 为什么局域网里有ip为10.10.10.1

    10.0.0.1 是私有地址,用来给局域网络分配主机地址的. A类地址 (1)A类地址第1字节为网络地址,其它3个字节为主机地址.它的第1个字节的第一位固定为0. (2)A类地址网络号范围:1.0.0 ...

  8. position fixed 居中

    1.水平居中.footer { height: 10%; text-align: center; position: relative; left: 50%; transform: translate ...

  9. 交换机多VLAN访问同一网络

    一.前言 经常有需求通过交换机改变IP地址或者实现在同一个交换机中建立多个VLAN访问外部网络(VLAN之间独立),在折腾了多次后,稍有心得,现记录之. 二.实现方案 何为VLAN就不在此赘述.实现起 ...

  10. 判断强联通图中每条边是否只在一个环上(hdu3594)

    hdu3594 Cactus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...