使用教材:Fortran95程序设计【彭国伦】

第二章 编译器的使用

编译结果的好坏

1、翻译正确

2、执行文件的运行效率

3、翻译出来的执行码的长短

4、编译过程花费的时间

5、编译器提供Debug工具的完整度

Visual Fortran的使用

第三章 Fortran程序设计基础

字符集

不区分大小写

书面格式

Fixed Format(固定格式)

配合穿孔卡片输入程序发明的格式

被淘汰

Free Format(自由格式)

1、!后的文本是注释

2、每行可以编写132个字符

3、行号在每行最前面

4、&行和行连接

5、空格无意义

数据类型

数学表达式

** 乘幂

第四章 输入输出及声明

program main
...
stop !可以省略
end

write 和 print

尽量使用write

write(*,*)"hello","!"
write(UNIT=*,FMT=*)"hello"
write(UNIT=5,FMT=*)"hello"

Fortran77只能用单引号

Fortran90支持单和双

声明

整数:

integer(kind=2/4) a,b,c

未声明长度默认长

向下取整

integer :: a

浮点数

real(kind=4/8) a,b,c

real(kibd=4) :: a,b

write(,) "sin(",a,")=",sin(a)

复数

complex(kind=4/8) a,b,c

a=(x,y) !表示 a=3.2+3.5i

支持直接的复数+-*/

字符及字符串

character(len=10) a,b,c

a(6) = "you" !设置第6个字符之后的字符串

b(1:2) = "we" !最前面两个字符变we

add=first//second

Fortran 中有关字符串运行的函数:

CHAR(num)  !num在计算机所使用的字符表中所代表的字符
ICHAR(char) !返回值是整型,char字符在计算机所使用的字符表中所代表的编号
LEN(string) !声明长度
LEN_TRIM(string) !实际长度
INDEX(string,key) !key在string中第一次出现的位置
TREM(string) !返回清除尾端空格后的字符串 !更多见附录A

逻辑变量

logical(kind=2/4) a,b

a=.true.

b=.false.

用 write 函数只会显示 T or F

输入命令(READ)

read(*,*) a !在输入字符时可能因为空格出错
read(unit=5,fmt=*) a !最严谨
read(*,*) a,b,c !可输入a,b,c or a b c

格式化输入输出(FORMAT)

没怎么看懂的格式命令参考表....



看来上面这些并不重要....

常用的几个格式:"I、F、E、A、X"

好了下面来一一学习一下

({}和[]里的内容可以省略

Iw[.m]

Iw[.m]
以w个字符的宽度来输出整数,至少输出m个数字
如果不足会输出* write(*,"(I5.3)") 10
010 !前面有两个空格

Fw.d

Fw.d
以w个字符文本宽度来输出浮点数,小数部分d
不足一样是*
write(*,"(F9.3)")123.45
123.450

Ew.d[Ee]

Ew.d[Ee]
用科学计数法,以w个字符宽度来输出浮点数,小数部分占d个字符宽,字数部分最少输出e个数字 write(*,"(E9.2E3)") 12.34
0.12E002

Dw.d

Dw.d
同Ew.d
代表指数的字母由E换成D

Aw

Aw
以w宽输出字符串
write(*,"(A10)")"Hello"
Hello 不足超过部分会被省略

Lw

Lw
w个字符输出 T or F 的真假值
write(*,"(L4)") .true.
T !输出3个空格和一个T

Gw.d[Ee]

Gw.d[Ee]
G可以用来输出所有类型的数据,固定使用w个字符宽来输出,d不一定会使用但是不能省略

/

/
write(*,*(I3//I3)) 10,10
10 10 !中间有两行空格是从“/"得到的

Tc

Tc
把输出位置移动到本行的第c个字节

声明的其他事项

IMPLICIT命令

开头字母决定变量类型

implicit integer(A-F,I,K)
implicit none !关闭,都要先声明 放在PROGRAM的下一行,不能放在其他位置

常数的声明方法(PARAMETER)

parameter(pi=3,14159)

设置变量的初值

integer :: a = 1

等价声明(EQUIVALENCE)

equivaluence(a,b) !声明a、b这两个变量用同一块内存

1、节省内存

2、精简代码

声明在程序中的结构

混合运算

1、

2、

3、

Fortran 90 的自定义数据类型

type :: person
character(len=30) :: name
integer :: age
...
end type person type(person) :: a write (*,*) "NEME:"
read(*,*) a%name

KIND 的使用

SELECTED_INT_KIND(n)   !返回如果想要记录N位整数时,所要声明的kind值。
!返回-1时表示无法提供
SELECTED_READ_KIND(n,e) !记录具有n位有效数,指数达到e位的浮点数需要的kind值
!返回-1 有效位无法满足,-2指数范围无法满足,-3均无法满足

第一周—Fortran语言学习的更多相关文章

  1. Python第一周基本语句学习整理

    目录 Python第一周基本语句学习整理 一.字符串切割 二.体重单位转换 三.计算器的实现 四.猜年龄游戏 Python第一周基本语句学习整理 一.字符串切割 代码实现: s = 'luowenxi ...

  2. 吴恩达《深度学习》-第二门课 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)-第一周:深度学习的实践层面 (Practical aspects of Deep Learning) -课程笔记

    第一周:深度学习的实践层面 (Practical aspects of Deep Learning) 1.1 训练,验证,测试集(Train / Dev / Test sets) 创建新应用的过程中, ...

  3. 吴恩达《深度学习》-课后测验-第二门课 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)-Week 1 - Practical aspects of deep learning(第一周测验 - 深度学习的实践)

    Week 1 Quiz - Practical aspects of deep learning(第一周测验 - 深度学习的实践) \1. If you have 10,000,000 example ...

  4. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  5. 【新生学习】第一周:深度学习及pytorch基础

    DEADLINE: 2020-07-25 22:00 写在最前面: 本课程的主要思路还是要求大家大量练习 pytorch 代码,在写代码的过程中掌握深度学习的各类算法,希望大家能够坚持练习,相信经度过 ...

  6. 大数据spark学习第一周Scala语言基础

    Scala简单介绍 Scala(Scala Language的简称)语言是一种能够执行于JVM和.Net平台之上的通用编程语言.既可用于大规模应用程序开发,也可用于脚本编程,它由由Martin Ode ...

  7. 第一周C语言作业

    一.PTA实验作业 题目1.温度转换 1.实验代码 int main() { int fahr = 150,celsius; celsius = 5 * (fahr - 32) / 9; printf ...

  8. 第一周 IP通信基础学习回顾

    这周的课程首先让我们学习了计算机网络概述,了解计算机网络的定义和功能分别是:资源共享,信息传输与集中处理,负载均衡与分布处理,综合信息服务.同时也对计算机网络的演进,计算机网络的分类,计算机网络的性能 ...

  9. 6月28日至7月6日第一周小学期学习c++编程收获

    6.28日开始,进入小学期,也就是在10天十天时间内集中练习,以提高编程能力.此次小学期的作业共有十道题,其中分为四大类,系统类,数学类,游戏类,链表类. 我开始的时候面对第一,二题,系统类,因为当时 ...

随机推荐

  1. JavaScript中Array的正确使用方式

    在 JavaScript 中正确使用地使用 Array 的方法如下: 用 Array.includes 代替 Array.indexOf “如果你要在数组中查找元素,请使用 Array.indexOf ...

  2. MySQL---事务、函数

    事务 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. delimiter \\ create PROCEDURE p1( OUT ...

  3. JavaScript深入之参数按值传递

    在<JavaScript高级程序设计>第三版 4.1.3,讲到传递参数: ECMAscript中所有函数的参数都是按值传递 按值传递 也就是,把函数外部的值复制给函数内部的参数,就和把值从 ...

  4. PHP 中根据 IP 获取地址

    这里使用的是淘宝 IP 地址库提供的 API 接口. 淘宝 IP 地址库:http://ip.taobao.com/instructions.html API 文档说明:  使用事例: /** * 调 ...

  5. [Doctrine Migrations] 数据库迁移组件的深入解析一:安装与使用

    场景分析 团队开发中,每个开发人员对于数据库都修改都必须手动记录,上线时需要人工整理,运维成本极高.而且在多个开发者之间数据结构同步也是很大的问题.Doctrine Migrations组件把数据库变 ...

  6. 如何分析Mysql慢SQL

    内容摘要: 开启慢查询日志捕获慢SQL 使用explain分析慢SQL 使用show profile查询SQL执行细节 常见的SQL语句优化 一.开启慢查询日志捕获慢SQL ① 查询mysql是否开启 ...

  7. 虚拟机的三种联网模式(桥接模式、NAT 模式、仅主机模式)

    虚拟机的网络连接方式分为三种,分别是桥接模式.NAT 模式.和仅主机模式,三种连接模式存在着一定的差异,那么我们该如何选择适合自己的连接模式呢? 1.桥接模式:在此模式下,虚拟机相当于一台独立的电脑, ...

  8. STM32 时钟配置的坑

    今天在调试公司的一款产品的时候发现8M的晶振用完了,于是找了一个16M的替代 坑爹的就在这里,明明已经把时钟按照时钟树配置好了,但是串口等外设一直无法正常工作 折腾了一下午,终于发现这位老兄的文章ht ...

  9. Go语言的接口与反射

    美女图片没啥用,就是为了好看 本文还在完善中... go总体而言是一门比较好入门的语言,许多特性都很精简易懂,但是接口与反射除外.他们真的让人头疼,不知道是自身资质问题还是怎么着,总是觉得很多书上写的 ...

  10. 【blockly教程】第四章 Blockly之选择结构

    今天,我们通过一个游戏来学习选择结构,游戏的地址如下:https://blockly-games.appspot.com/bird?lang=en本游戏分为10关:主要游戏规则如下:①主界面是游戏的运 ...