声明及数据类型
一、声明的意义
告诉编译器要预留一些存放数据的内存空间。
二、基本数据类型
数据类型 | 描述 |
---|---|
整数 | integer a |
浮点数 | real a |
字符 | character a |
逻辑变量 | logical a |
复数 | complex a |
常数 | parameter (pi=3.14159) |
- 浮点数:
单精度6位有效数字,双精度15位有效数字。
科学计数法: 单精度1E10,双精度1D10。
使用浮点数养成加小数点的习惯,如2.0。
double precision 使用双精度浮点数 - 复数:
保存成两个浮点数
可以直接做复数乘除法! - 常数:
若在程序中改变常数会报错,降低出错率。 - 字符串:
双引号和单引号都可以封装字符串,如a="hello"
或a='hello'
都可以。
双引号封装时可以使用单引号,单引号封装时用两个连续的单引号输出单引号,如a="It's good."
或a='It''s good.'
。
三、数据类型的转换
不同数据类型进行运算的之前要先转化为统一的类型。
常用:DBLE 将整数、实数、复数转化为双精度浮点数
- 取整:
a/b 两个整数相除结果是省去小数部分的整数
floor(x) 向下取整,不大于x的最大整数
round(x) 向上取整,不小于x的最小整数
四、注意事项:
- 变量名前缀必须是英文,可以添加数字或下划线。
- 变量名长度在1~31之间(Fortran 90)。
- 变量名不要和执行命令同名,不能和主程序名称同名!
- 声明有多个形容词时,双冒号表示形容完毕,不能省略。
(如 real, parameter :: pi=3.14)
在声明处给变量赋值时,冒号不能省略。
(如 integer :: a=1) - IMPLICIT 命令用来设置默认类型,即不经过声明由第一个字母来决定变量类型。例如 IMPLICIT DOUBLE PRECISION (A-H, O-Z) 表示将A-h和O-Z开头的变量都视为双精度浮点数。
建议在声明之前加 IMPLICIT NONE 命令关闭这个功能。 否则一旦在程序中写错了变量名,程序不会报错,反而会把这个变量当成0,检查的时候很难发现这种bug。
五、其他
kind 改变数据类型的长度,使用高精度类型。