Fortran输入输出与声明--xdd

1.建议程序总体格式: 

1  program ex1.1
2  ...
3  end progr

 2.想要打出 My name is "xdd".

 write(*,*)" My name is "xdd"."

3.声明类型 标识符 字符串处理

  • 默认为长整形 单精度浮点数(kind=4)
  • Fortran中不区分大小写,所以变量名A、a表示同一变量
  • 返回字符串长度:len(str)
  • 返回字符串去处空格后的长度:trim(str)
  • 连接两个字符串:c=str1//str2  !使用两个/即可连接字符串
  • index(str1,str2) !返回str2在str1中首次出现的位置
1 integer a 或 integer::a
2 real b 或 real::b
3 real(kind=8) creal(kind=8)::c
4 complex a 或 complex::a 或 complex(kind=8)::a
5 a=(1.0,2.0) !a=1+2
6 character ::a (a是一个字符) 或 character(len=10)::a 或 character(10)::a !所有::均可省略
7 a="xieshg" !fortran90 对于字符串,单双引号均可
8 logical::a
9 a=.true.  !注意有两个点

 4.输入输出(write,read)

  • 如用format,一定要放好位置
program ex
integer::a
real::b
a=100 
write(*,100) a 
write(*,200) b
100 format (I4)       !用4列显示整数a
200 format(F10.6)     !输出数据占10列,小数部分占6列
end program 

!write(*,"(1X,I5)") a
!write(*,"3(1X,I5)") a,
b,c
!write(*,"(I5)") b
!write(*,"(A5)") str   !以5个字符宽度输出字符串
!write(*,"(E10.6)") a  !以指数格式输出,一共占10位,小数部分占6位
/              !换行
program ex0622
character(len=80) str
read(*,"(A80)"),str   !有长度这样可以避免逗号使机器读取数据结束
write(*,"(A80)"),str
end program

5.变量先声明后使用,虽然麻烦一些,但可避免许多错误,尤其是输入错误,而且还不会报错!所以取消默认很重要。

implicit none     !关闭默认类型功能,所有变量的使用都要事先定义
  •  声明常量,能减少编写错误的机会,增加计算机执行速度
  • 变量赋初值时冒号也不能省略
  • Fortran77赋初值时,只能用DATA
  • 所有的变量声明都要在执行语句的前面,一旦开始执行就不能再有声明
real,parameter::pi=3.1415926    !此处冒号不能省略
real::c=2.1    !此处冒号不能省略

!Fortran77
integer a
real b
complex c
character(len=10) d
data a,b c d /1,2.0,(1.0,2.0),'xiedd'/ !Fortran77字符串要用单引号

6.变量类型自定义(a%name) 见《Fortran 95 程序设计》P65 彭国伦老师著

7.kind的使用

kind的使用
integer(kind=2) -32768~32767
integer(kind=4) -2147483648~2147483647
real(kind=4) ±1.18*10-38-±3.40*1038
real(kind=8) ±2.23*10-308-±1.79*10308

 

1 !判断可以记录9个位数的整数的kind值
2 integer,parameter::long_int=selected_int_kind(9)
3 !判断可以有10个有效位数,指数可以记录到50的浮点数kind值
4 integer,parameter::long_real=selected_real_kind(10,50)
5 
6 integer(kind=long_int)::a=12345678
7 real(kind=long_real)::b=1.23456789D45

write by xdd  2019-09-19  15:48:15


 


转载仅为学习,不会商用。
欢迎转载原创,附文链接。
原文地址:https://www.cnblogs.com/xdd1997/p/11547807.html