以下内容转载本人公众号:易木木响叮当

Fortran是一门上世纪古老的科学计算语言,具有强大的计算能力,虽然没有现在的主流语言热门,但对于想从事有限元二次开发的童鞋来言,是一个不得不跨过去的槛儿,Fortran语言用于自己领域进行开发计算时,往往不需要高深的算法,只需了解简单的语法规则及循环之类结构即可。木木在刚开始学习Fortran时,遇到疑惑会问一问身边的同学有没有用过Fortran,大多数情况是,Fortran?那是啥语言?我......现如今使用的人确实很少,若不是自己对二次开发感兴趣,我也不会去触碰它~

本文先向大家简单介绍一个二分法的fortran程序,然后推荐大家使用一些轻便的编译器,最后推荐一下学习的书籍、论坛。


Fortran程序分为自由格式固定格式,固定格式太太太难看了,阅读起来也很费力,但大多数遗留下来的有限元程序是按照固定格式来编译的(木得办法),自由格式阅读起来就比较友好了,接下来就用自由格式来编写一个二分法程序,固定格式相关的将会在以后的推文中涉及。


! 二分法求解
module numericalimplicit nonereal,parameter :: zero=0.00001
contains
!   二分法求解程序real function bisect(A,B,func)implicit nonereal A,B    !输入的值real C     !用来算(A+B)/2real FA    !记录F(A)real FB   !记录F(B)real FC   !记录F(C)real,external :: func  !求解的函数
!  先求出C,F(C)的值C=(A+B)/2.0FC=func(C)
!  FC小于zero时,就视F(C)=0,结束循环do while(abs(fc)>zero)FA=func(A)FB=func(B)if(FA*FC<0) then!  f(a)*f(c)<0, 以a,c为新的区间B=CC=(A+B)/2.0else!  不然就是以b,c为新的区间A=CC=(A+B)/2.0end if!  求出新的f(c)的值FC=func(c)end dobisect = Creturnend function!  求解用的函数 real function f(x)implicit nonereal xf=(x+3)*(x-3)returnend function
end module numericalprogram mainuse numericalimplicit nonereal A,B   !两个猜测值real ANS   !算出do while(.true.)write(*,*) '输入两个猜测值'read(*,*) A,B!  f(a)*f(b)<0 的猜测值才是有效的猜测值if(f(a)*f(b)<0)exitwrite(*,*) "不正确的猜测值"end do!   调用二分法求根的函数ANS=bisect(A,B,f)!   显示结果write(*,"('x=',F6.3)")ansstop
end program main

本程序采用Module将代码块进行封装,程序中用到的变量、function、subroutine,整理到Module中,用的时候只需要Use一下就可,如行48。程序中一些语法、注意的细节将会在以后专门设立一个Fortran的栏目中进行讲解。

木木最开始用的编译器是VS+IVF,后来发现VS占用系统资源很多,卸载也很麻烦,用起来不顺手,现在我用的是Simply Fortran编译器,小巧轻便(100M左右),很很很好用,Simply Fortran安装包及简单的说明手册在文末获取。界面大致长这个样子:

B站有的教学视频也用的是这个编译器,大家有兴趣可以看一下。还有一个有意思的在线编译FORTRAN网站:http://fortran.jsrun.net/ 。界面大致长介个样子:

接下来就是推荐书籍和论坛了。书籍毫无疑问当然是台湾大学彭国伦先生的《Fortran 95 程序设计》,书里面有自由格式的程序,也有对应固定格式的程序,双管齐下,大家有兴趣可以点击了解一下。国内论坛的话推荐:http://fcode.cn/guide-61-1.html 很不错的Fortran交流论坛,里面有大量的资料,代码,工具免费使用,国外的话,大家都懂得(Github)。

Simply Fortran获取方式:后台回复Simply即可

Fortran基础编程(入门简介篇)相关推荐

  1. Fortran基础编程(3)——格式化输出

    Fortran基础编程(3)--格式化输出 本篇推文将进一步讲解Fortran基础语法中格式化输出与声明部分,让我们的代码更加美观起来吧~ 概论 program maininteger aa =100 ...

  2. FORTRAN基础编程(1)——基本格式及读入输出

    FORTRAN基础编程(1)--基本格式及输出.读入 文章目录 FORTRAN基础编程(1)--基本格式及输出.读入 书面格式 一.Fixed Format(固定格式) 二.Free Format(自 ...

  3. r matlab spss,特别放送 | 零基础编程入门:Python、Matlab、R、SPSS资料大放送

    原标题:特别放送 | 零基础编程入门:Python.Matlab.R.SPSS资料大放送 我们一直相信: 一切不能实实在在帮助到同学的资料 都是耍流氓 小助手的目标是: 做一次又一次真正有价值.愉悦感 ...

  4. linux 脚本编写 -eq,关于shell脚本基础编程第四篇

    shell脚本基础编程第四篇 本章主要内容:函数 函数 function: function 名称 { 命令 ; } 或 name () { 命令 ; } 定义 shell 函数. 创建一个以 NAM ...

  5. 计算机编程入门课件,PPT课件大学计算机基础编程入门.ppt

    PPT课件大学计算机基础编程入门 大学计算机基础B 主讲教师:赵晓安 讲 课 内 容 一.程序设计的基本概念 1.程序设计语言 2.程序设计的方法 二.计算机算法基本知识 1.算法的概念 2.流程图? ...

  6. Python基础编程入门实例:恺撒密码

    文章目录 Python基础编程入门实例:恺撒密码 一.什么是恺撒密码 二.程序运行环境 三.恺撒密码:加密 3.1.恺撒密码加密实例程序 3.2.恺撒密码加密实例程序运行结果 四.恺撒密码:解密 4. ...

  7. 零基础编程入门python视频-编程零基础应当如何开始学习 Python?

    Python很适好入门,尤其对于零基础,但是有些前置知识必须要清楚,不是程序代码计算机之类的认知,但泛舟认为比那些更重要的东西. 首先,为什么要程序?不管是为了完成任务还是为了炫耀技术还是为了什么,它 ...

  8. 基础编程入门题目-Fortran

    毕业设计 -> 量子化学计算的FORTRAN程序设计分节解释和参考: https://blog.csdn.net/sinat_38863494/article/details/80242788 ...

  9. 零基础编程入门python视频-Python编程零基础小白快速入门完整全系列精品课

    1. 课程咨询加老师助理微信:助理1微信: chenjinglei88 ,助理2微信: omf6757 2. 决定购买并想得到陈敬雷老师亲自指导(课程或自己项目难题均可)加老师微信: chenjing ...

最新文章

  1. python怎么重新开始_人人都是数据科学家从新开始用Python学习数据科学的完整教程P3...
  2. Hive数据导入——数据存储在Hadoop分布式文件系统中,往Hive表里面导入数据只是简单的将数据移动到表所在的目录中!...
  3. lvs的调度算法有几种_LVS:三种负载均衡方式比较
  4. AutoCAD VBA对齐对象
  5. XGBoost对比RandomForest、GBDT、决策树、SVM,XGB+LR精度还能提升
  6. php 万分之一几率,那万分之一的概率啊……
  7. bfv同态加密_五分钟了解同态加密及三种常见方案
  8. WordPress社会化评论插件多说、有言、灯鹭、评论啦
  9. javascript -- 变量
  10. idea取消vim模式
  11. 机器学习 —— 概率图模型(CPD)
  12. Servlet的面试题
  13. 5分钟快速安装ASP.NET Core 网站运行环境
  14. Nacos——Distro一致性协议(架构篇)
  15. FPGAASIC开发流程
  16. 使用python创建NBA Shotchart
  17. Flutter 适配安卓异形屏幕
  18. 使用 HTML、CSS 和 JavaScript 的简单模拟时钟
  19. 人民币即期汇率近六年首次跌破6.70 对国际消费影响几何
  20. 一直以来使用div menu下拉时flash总是覆盖div menu菜单,当时就很老火了。

热门文章

  1. Study JQuery《zTree自动点击第一个节点》
  2. V18345-1027420001双作用阀门定位器的工作原理
  3. 浅析EasyCVR安防视频能力在智慧小区建设场景中的应用及意义
  4. zset获取指定score_redis zset更新score redis学习笔记5 - Redis - 服务器之家
  5. 宠物游戏代码 java
  6. 2022年9月奥鹏网络教育大学英语B统考题库试题
  7. 学英语每日一句 On the house. 免费赠送
  8. SAP 采购合同案例教程数量合同前台
  9. SAP S4 MM前台操作讲解-采购合同创建
  10. 比较multiprocessing和subprocess模块