Fortran学习笔记2

作者: 若缘生 | 来源:发表于2016-07-31 20:14 被阅读0次

常数的申明方式

程序中所有处理的数据,有些事固定不变的常数,如圆周率$\pi$和重力加速度$G$等。
此时,程序员可以利用parameter来定义常量。

program main
implicit none
real pi
parameter(pi=3.1415926)
write(*,"(F4.2)") sin(pi/6)
end program main

在申明变量的时候,parameter相当于一个形容词,如果将形容词和变量申明写在一起时,冒号不能省略。如:

real*8,parameter::pi=3.1425926   ! 此处冒号不能省略

除了parameter,Fortran90还有其他的形容词。


变量初始化

Fortran90中要设置变量初值时,直接把数值写在变量的后面就可以了(当然要用赋值语句!!!)。

program main
implicit none
integer::a=5
real(kind=8)::pi=3.14
complex::c=(12.6,8.01)
character(len=80)::string="good good study,day day up!"
write(*,*)a,pi,c,string(1:76)
end program main

Fortran77则要用Data命令来赋初值。data的语法是其后接所要设置的变量,并将变量用两个斜杠封装。

PROGRAM MAIN   !Fortran77的程序
IMPLICIT NONE
INTEGER A
REAL  B
COMPLEX  C
CHARACTER*(80)  string
DATA A,B,C,STRING/1,2.0,(1.0,2.0),'GOOD GOOD STUDY,DAY DAY UP!'/
WRITE(*,*)A,B,C,STRING(1:76)
END PROGRAM MAIN

等价申明EQUIALENCE

把两个以上变量,声明他们使用同一个内存地址,就是“等价声明”。使用等价声明就是给同一个房间取几个不同的名字,当其中一个变量的值发生变化时,与它等价的变量的值也相应的发生变化。

integer a,b
equivalence(a,b)   !声明a,b使用同一块内存

类型转化

在同一个表达式中,数据类型不同,会出现什么现象?答案是,编译器会自动把数据类型转化,形成统一的数据类型在进行计算。但是并不能保证自动转化完全正确。所以最好使用强制类型转换。

INT(A)    ! 将A转换成整型
real(a)   ! 将A转换成浮点型

自定义类型

先看一个例子:

type::book                    ! 定义一个名叫book的新变量类型
character(len=80)::name       !记录输的名字
character(len=80)::author     !记录作者
integer::totalpage            !记录全书的页码数
end type book                 !结束类型自定义

type::book中的冒号可以省略。在定义了新类型之后就可以使用它定义该类型的变量。

program main
implicit none

type::book                    ! 定义一个名叫book的新变量类型
character(len=80)::name       !记录输的名字
character(len=80)::author     !记录作者
integer::totalpage            !记录全书的页码数
end type book                 !结束类型自定义

type(book)::a
a=book("Gone with the wind","Margaret Munnerlyn Mitchell",1608)
write(*,*)a

end program main

KIND用法

kind主要用来声明变量所占内存的大小。变量占用内存大小,主要取决于变量的范围和他的有效位数的要求。

相关文章

  • Fortran学习笔记2

    常数的申明方式 程序中所有处理的数据,有些事固定不变的常数,如圆周率$\pi$和重力加速度$G$等。此时,程序员可...

  • Modern Fortran Explained学习笔记2

    第二章部分 Fortran95的特殊符号除了26字母,10数字,下划线,主要的代码元素还包括下表所列出的特殊符号们...

  • fortran笔记2:数组

    数组操作: where结构可以遍历全部元素,并对满足条件色的元素进行操作。 forall结构可以操作部分数组。采用...

  • Fortran学习笔记5

    数组的声明方式 数组是组织数据的一种方式。用来记录类型、性质相同的长串数据。不论定义多少维的数组,数据在内存中都是...

  • Fortran学习笔记3

    流程控制语句 if的基本用法 以上then代码块中如果只有一行程序代码,可以改写成下面的形式: if-else语句...

  • Fortran学习笔记1

    Fortran中的字符 A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W...

  • Fortran学习笔记4

    逻辑运算 if命令需要和逻辑运算表达式搭配才能起到很好的效果。下面分别列出Fortran90和Fortran77的...

  • Fortran 95快速学习笔记

    基本语法 1.Fortran对大小写不敏感。使用语句行来表示语句的开始和结束而不是分号。2.长语句需要分两行时需要...

  • VS+IVF(IMSL库5.0)的搭建环境

    关于IMSL库的其他信息(不是我的):1.【学习笔记】关于 Fortran IMSL(国际数学与统计函数库)开发环...

  • Fortran-er的生存指南:transfer()代替Unio

    编译器与通用性 我的笔记本上使用的是codeblocks完成fortran代码开发的编译器是GNU Fortran...

网友评论

    本文标题:Fortran学习笔记2

    本文链接:https://www.haomeiwen.com/subject/ehcxsttx.html