本篇推文主要讲解Fortran中==声明与格式化输出部分==,同样也是编程的基础前期工作,好多人在阅读别人程序或者在做自己程序的时候总是奇奇怪怪的问题,一部分问题就是基础的Fortran编程知识没有掌握住或者遗忘了,所以很有必要做一个专栏,详谈编程的基础工作,使得一些语法问题,缩进问题,格式问题等等灰飞烟灭~,保证自己的精力在自己的程序算法中。
1program main
2integer a
3a=2+3
4write(*,*)a
5b=3/2
6write(*,*)b
7end
我们可以看到在程序中2+3的结果输出为5,3/2的结果输出为1,这是因为我们声明了a为整数型,计算机按照整数型来参与计算,把小数点后面的部分无条件舍去。
整型分为长整型和短整型,声明方法如下:
1integer(kind=4) a !fortran 90
2integer*4 b !fortran 77
3integer(4) c !fortran 77
4integer :: a !fortran 90
kind用法,将在下文详细说明。integer在没有声明变量的长短时,默认使用长整型(kind=4)。
声明同一类型多个变量:
1integer a,b,c
Kind表示声明整数型、浮点数型所要占用的内存字节,声明变量所占用的内存大小,主要是根据在计算时所要使用到的有效位数以及值域范围。
integer(kind=1) | -128~127 |
---|---|
integer(kind=2) | -32768~32767 |
integer(kind=4) | -2147483648~2147483647 |
real(kind=4) | |
real(kind=8) | |
1program main
2real :: a
3a=2.5+3.0/2.0
4write(*,*) A
5stop
6end
以上代码中需要注意的有,如果程序涉及浮点数运算,建议将所有数字改为.0的形式,如果程序中a=2.5+3/2,那么计算机将会得出3.5的结果。
E和D的区别
同学们在阅读子程序中常常会看到2.5D5,这是啥意思呢?
设置单精度浮点数数值时,采用科学计数法2.5e5,设置双精度浮点数数值时,采用科学计数法2.5D5。
复数用到的比较少,就简单介绍一下吧~
1complex :: a
2a=(1.0,2.0) !a=1+2i
字符串处理
1program main
2character(len=20) string !声明字符串长度为20
3string="Good Morning"
4write(*,*) string
5string(6:)="Evening" !重新设置从第6个字符之后的字符串
6write(*,*) string
7stop
8end
结果输出
1Good Morning
2Good Evening
拼接、显示字符串实际长度等一些小功能,大家感兴趣可以上网查一下~
一般情况下用不着特意声明,需要注意的是.true.和.false.
需要两边加点~别忘了