Fortran入门:Windows平台的Fortran编译器安装和使用
因为课程需要,今年开始学习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中直接输入
然后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:
再使用”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编译器安装和使用的更多相关文章
- TQ2440 学习笔记—— 1、Windows平台下开发工具安装与环境建立
板子:广州天嵌公司的TQ2440,处理器为三星的S3C2440 1.开发工具的安装与环境建立 系统:win7 64位 SecureCRT软件:该软件能够取代Windows中的超级终端,是个非常好的串 ...
- Windows平台JDK8下载和安装说明
本页介绍如何安装和卸载Windows的JDK 8. 该页面包含以下主题: “系统要求” “安装说明符号” “安装说明” “卸载JDK” “已安装的目录树” “安装疑难解答” 有关安装JDK 8和JRE ...
- windows平台Perl模块离线安装
工具: Perl windows工具:ActivePerl-5.24.0.2400-MSWin32-x86-64int-300560.exe Dmake工具:https://cpan.metacpan ...
- Windows平台Hadoop编译、安装、配置与运行(转)
http://www.srccodes.com/p/article/38/build-install-configure-run-apache-hadoop-2.2.0-microsoft-windo ...
- Windows平台的JDK安装(转)
下载Java的开发包JDK JDK有好几个类型版本,我们只需要选择Java SE类型的版本就行了.进入网页:http://www.oracle.com/technetwork/java/javase/ ...
- Windows平台JDK安装
原文链接:http://android.eoe.cn/topic/android_sdk 下载Java的开发包JDK JDK有好几个类型版本,我们只需要选择Java SE类型的版本就行了.进入网页:h ...
- Node.js入门:Node.js&NPM的安装与配置
Node.js安装与配置 Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本情况了,对此,我们将在0. ...
- Django 1.6在Windows平台下的配置
Django 1.6 在Windows平台下的配置 前言 最近两天研究了下Django1.6在Windows平台中的配置安装,服务器采用Apache.期间遇到过许多新手所遇到的各种问题,也算是一种宝贵 ...
- Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE
Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...
随机推荐
- LeetCode 11 Container With Most Water(分支判断问题)
题目链接 https://leetcode.com/problems/container-with-most-water/?tab=Description Problem: 已知n条垂直于x轴的线 ...
- 【CF809D】Hitchhiking in the Baltic States Splay
[CF809D]Hitchhiking in the Baltic States 题意:给你n个区间[li,ri],让你选出从中一个子序列,然后在子序列的每个区间里都选择一个tj,满足$t_1< ...
- 理解Buffer
Buffer对象是Node.js用来处理二进制数据的一个接口.JavaScript比较擅长处理Unicode数据,对于处理二进制格式的数据(比如TCP数据流),就不太擅长.Buffer对象就是为了解决 ...
- iOS - Charles抓包数据
一.Charles Charles破解版下载地址点我 1.1 Charles主要的功能 .截取Http.Https网络请求内容 .支持修改网络请求参数,方便调试 .支持网络请求的截取 并动态修改 1. ...
- cas 单点登录 --自定义审计日记@Audit()
错误信息: org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing [An ...
- HttpClient 学习整理【转】
转自 http://www.blogjava.net/Alpha/archive/2007/01/22/95216.html HttpClient 是我最近想研究的东西,以前想过的一些应用没能有很好的 ...
- NEFU 118 - n!后面有多少个0 & NEFU 119 - 组合素数 - [n!的素因子分解]
首先给出一个性质: n!的素因子分解中的素数p的幂为:[ n / p ] + [ n / p² ] + [ n / p³ ] + …… 举例证明: 例如我们有10!,我们要求它的素因子分解中2的幂: ...
- package-info.java https://www.intertech.com/Blog/whats-package-info-java-for/
mybatis-3/src/main/java/org/apache/ibatis/cache/package-info.java What’s package-info.java for? http ...
- lamp docker apache2 supervisor monitor
sudo docker run -d -p 80:80 -p 3306:3306 -v /data/lampp/supervisormonitor:/app --name mylamp01 tutum ...
- iOS多线程编程之NSOperation的基本操作(转载)
一.NSOperation简介 1.简单说明 NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperat ...