- Fortran 教程
- Fortran - 首页
- Fortran - 概述
- Fortran - 环境设置
- Fortran - 基本语法
- Fortran - 数据类型
- Fortran - 变量
- Fortran - 常量
- Fortran - 运算符
- Fortran - 决策语句
- Fortran - 循环语句
- Fortran - 数字
- Fortran - 字符
- Fortran - 字符串
- Fortran - 数组
- Fortran - 动态数组
- Fortran - 派生数据类型
- Fortran - 指针
- Fortran - 基本输入输出
- Fortran - 文件输入输出
- Fortran - 过程
- Fortran - 模块
- Fortran - 内置函数
- Fortran - 数值精度
- Fortran - 程序库
- Fortran - 编程风格
- Fortran - 程序调试
- Fortran 资源
- Fortran - 快速指南
- Fortran - 有用资源
- Fortran - 讨论
Fortran - 数据类型
Fortran 提供五种内建数据类型,但是您也可以派生自己的数据类型。这五种内建类型是:
- 整数类型
- 实数类型
- 复数类型
- 逻辑类型
- 字符类型
整数类型
整数类型只能保存整数值。下面的例子提取了通常的四字节整数中可以保存的最大值:
program testingInt implicit none integer :: largeval print *, huge(largeval) end program testingInt
编译并执行上述程序后,将产生以下结果:
2147483647
请注意,**huge()** 函数给出特定整数数据类型可以保存的最大数字。您也可以使用 **kind** 说明符指定字节数。下面的例子演示了这一点:
program testingInt implicit none !two byte integer integer(kind = 2) :: shortval !four byte integer integer(kind = 4) :: longval !eight byte integer integer(kind = 8) :: verylongval !sixteen byte integer integer(kind = 16) :: veryverylongval !default integer integer :: defval print *, huge(shortval) print *, huge(longval) print *, huge(verylongval) print *, huge(veryverylongval) print *, huge(defval) end program testingInt
编译并执行上述程序后,将产生以下结果:
32767 2147483647 9223372036854775807 170141183460469231731687303715884105727 2147483647
实数类型
它存储浮点数,例如 2.0、3.1415、-100.876 等。
传统上,有两种不同的实数类型,默认的 **real** 类型和 **double precision** 类型。
然而,Fortran 90/95 通过 **kind** 说明符提供了对实数和整数数据类型精度的更多控制,我们将在“数字”一章中学习。
下面的例子展示了实数类型的用法:
program division implicit none ! Define real variables real :: p, q, realRes ! Define integer variables integer :: i, j, intRes ! Assigning values p = 2.0 q = 3.0 i = 2 j = 3 ! floating point division realRes = p/q intRes = i/j print *, realRes print *, intRes end program division
编译并执行上述程序后,将产生以下结果:
0.666666687 0
复数类型
这用于存储复数。复数有两个部分,实部和虚部。两个连续的数值存储单元存储这两个部分。
例如,复数 (3.0, -5.0) 等于 3.0 – 5.0i
我们将在“数字”一章中更详细地讨论复数类型。
逻辑类型
只有两个逻辑值:**.true.** 和 **.false.**
字符类型
字符类型存储字符和字符串。字符串的长度可以通过 len 说明符指定。如果未指定长度,则为 1。
例如:
character (len = 40) :: name name = “Zara Ali”
表达式 **name(1:4)** 将给出子字符串“Zara”。
隐式类型声明
较旧版本的 Fortran 允许一种称为隐式类型声明的功能,即您不必在使用变量之前声明它们。如果未声明变量,则其名称的第一个字母将决定其类型。
以 i、j、k、l、m 或 n 开头的变量名被认为是整数变量,其他变量是实数变量。但是,您必须声明所有变量,因为这是良好的编程习惯。为此,您需要在程序开头使用以下语句:
implicit none
此语句关闭隐式类型声明。