了解fortran语言
最近看了一些文献,发现用了Fortran语言编程,并且还是近几年的,了解了之后才知道,其实Fortran已经慢慢没有人再用了,之所有还有一批人在用,极大可能是历史遗留问题吧。而这,也得从Fortran语言的历史说起,Fortran语言是上个世纪50年代IBM的工程师开发出来的,主要目的就是帮助计算,并且Fortran是第一个开发的高级语言,而我们常常用到的语言要小的多呢,比如C语言是1972年被开发的,C++在1983年有了第一个程序,java是在1995年诞生的。所以,对于老一辈的科研工作者,最早接触的语言就是Fortran了,并且一般情况下,通过Fortran可以很好的解决问题,并且如果要转到其他语言上,代码的重写是要花费大量时间的,所以他们也就不再愿意学习新的语言,这样,Fortran语言才用到了现在。又比如说,为什么腾讯后台用的是c++,阿里用的是java呢?主要原因也是历史遗留问题,公司业务代码已经写了数十万行,如果要用其他语言写,就要重新来写,会花费巨大的代价,并且一旦他们使用了原有的语言,那么他们就会不断在周边优化,很多我们认为的弊端在他们那里很有可能已经解决了,所以就没有切换语言的必要性了。
Fotran语言主要支持数值分析与科学计算、结构化程序设计、数组编程、模块化编程、泛型编程、超级计算机高性能计算、面向对象编程、并行编程等等。之前提到,Fortran语言是又IBM的约翰带领一个团队创建的,开始就是为科学计算开发额,之后才不断延伸和扩展为了一个高层次语言,最常用的版本是Fortran 77, Fortran 90 和 Fortran95。在Fortran77中添加了字符串作为一个独立的类型,Fortran 90添加了形形色色的线程,并支持数组处理。
如下是一个简单的Fortran程序:
program addNumbers ! This simple program adds two numbers
implicit none ! Type declarations
real :: a, b, result ! Executable statements
a = 12.0
b = 15.0
result = a + b
print *, 'The total is ', result end program addNumbers
如上所示,就是一段求解两数字之和的Fortran代码,结果如下:
The total is 27.0000000
可以看到,Fortran要以program开头,并且以end关键字结尾,另外,注释使用!,print可以在屏幕上输出数据, 代码行缩进,且Fortran是区分大写小的。
其他的语法其实都大同小异了。
参考文章:Fortran教程
了解fortran语言的更多相关文章
- 什么是fortran语言之fortran语言入门
Fortran源自于“公式翻译”(英语:FormulaTranslation)的缩写,是一种编程语言.它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域.FORTRAN语言以其特 ...
- fortran语言调用fortran写的dll
环境:vs2013+IVF 2011 有时候想把fortran写的常用的函数编译为DLL,以供不同的fortran exe调用,这时候应该怎样做呢?[参考 彭国伦老师 fortran95 程序设计 书 ...
- 第一周—Fortran语言学习
使用教材:Fortran95程序设计[彭国伦] 第二章 编译器的使用 编译结果的好坏 1.翻译正确 2.执行文件的运行效率 3.翻译出来的执行码的长短 4.编译过程花费的时间 5.编译器提供Debug ...
- Fortran调用C语言小计
先简单记录下问题,以后再给续解决方案 1,关于fortran中module的使用 2,没有参数可以正常调用,当需要传递参数时,由于两者语言的差异,字符串结束符号不同,应该注意 3,关于调用C函数时,调 ...
- [转载:]C#与Fortran混合编程之本地调用Fortran动态链接库
前言 C#发展到现在,已是一门相当完善的语言,他基于C语言风格,演化于C++.并依靠强大的.NET底层框架.C#可以用来快速构建桌面及Web应用.然而在我们的实际工作中,尽管C#已经非常完善,但还是不 ...
- 【C语言】C语言简介
目录: 1. [什么是C语言?] 2. [C语言历史] 3. [C语言标准] 4. [C语言特点] 1. 什么事C语言? · C语言是一门高级编程语言,用于人与计算机之间的沟通,就如同人与人之间沟通时 ...
- C/C++学习----C语言简介
[开发环境] 物理机版本:Win 7 旗舰版(64位) IDE版本:Visual Studio 2013简体中文旗舰版(cn_visual_studio_ultimate_2013_with_upda ...
- 要心中有“数”——C语言初学者代码中的常见错误与瑕疵(8)
在 C语言初学者代码中的常见错误与瑕疵(7) 中,我给出的重构代码中存在BUG.这个BUG是在飞鸟_Asuka网友指出“是不是时间复杂度比较大”,并说他“第一眼看到我就想把它当成一个数学问题来做”之后 ...
- C语言与MATLAB接口 编程与实例 李传军编着
罗列一下以前自己学习C语言与MATLAB混编的笔记,顺便复习一遍. <C语言与MATLAB接口 编程与实例 李传军编着>(未看完,目前看到P106) 目录P4-8 ************ ...
随机推荐
- CodeForces 235E Number Challenge (莫比乌斯反演)
题意:求,其中d(x) 表示 x 的约数个数. 析:其实是一个公式题,要知道一个结论 知道这个结论就好办了. 然后就可以解决这个问题了,优化就是记忆化gcd. 代码如下: #pragma commen ...
- 用户权限,pymysql
单表查询的完整语法 select [distinct] [*|字段|聚合函数|表达式] from tablewhere group byhaving distinctorder bylimit mys ...
- 20171126-handler消息机制理解
1.handler消息机制的理解 http://www.jianshu.com/p/8343a39b8a2c?s_q_s_h_a_r_e_1MTAzNTIwODAxNTExNTg5NTkwMzE0Nz ...
- leetcode - [4]Sort List
Sort a linked list in O(n log n) time using constant space complexity. 思路:采用归并排序或者快速排序 #include < ...
- (BestCoder Round #64 (div.2))Array
BestCoder Round #64 (div.2) Array 问题描述 Vicky是个热爱数学的魔法师,拥有复制创造的能力. 一开始他拥有一个数列{1}.每过一天,他将他当天的数列复制一遍,放在 ...
- AngularJS $scope 继承性 作用 生命周期
一.基本概念 作用域是一个指向应用模型的对象,相当于MVVM中的ViewModel,能绑定数据(属性)和行为(方法),能监控表达式和传递事件,是实现双向绑定的基础,是应用在 HTML (视图) 和 J ...
- Android-Java-synchronized静态方法&字节码文件对象
上一篇博客 Android-Java-同步方法-synchronized,中讲解了普通方法加入synchronized修饰符,此synchronized的同步锁是this,还介绍方法的封装性,这篇博客 ...
- 解决XCode7.1 上无法安装 Alcatraz PackageManager
补记: 升级XCode后都会出现这样的问题,各版本解决方案相同 有时还需要先删除原插件 rm -rf ~/Library/Application\ Support/Developer/Shared/X ...
- nginx 访问频率控制
Nginx访问频率控制 HTTP服务器的吞吐率(单位时间吞吐量)通常有一个上限,尤其是普通配置的机器,在带宽够的情况下,用压测工具经常能把服务器压出翔,为了线上环境稳定性,防止恶意攻击影响到其他用户, ...
- idea创建第一个maven web项目
一.打开idea,File->New->Project.选择Mavne,勾选Create from archtype,选择org.apache.maven.archtypes:maven- ...