《FORTRAN 95程序设计》学习笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《FORTRAN 95程序设计》学习笔记

66RPG gg

★目录★

《FORTRAN 95程序设计》学习笔记 (1)

基础知识(基础、字符串、FORMAT、隐式、TYPE) (1)

流程与控制(if、select、do) (4)

数组(声明、隐式循环、整体操作、可变数组) (5)

函数与子程序(子程序、函数、全局变量) (6)

MODULE与面向对象(重载操作符、虚函数) (9)

文件相关(OPEN、WRITE、READ) (10)

指针(指向变量、数组、函数) (11)

Visual Fortran 编译器(DLL,VB调用) (12)

数值算法与IMSL(数值算法插件) (14)

常用库函数(数学、数组、零碎、子程序) (15)

基础知识(基础、字符串、FORMAT、隐式、TYPE)

★【小玩意】二进制观察器:装在M.. Visual Studio\DF98\bin,有一个Bitviewer,可以观察变量储存方式

★【语法】续行:行结尾或行开头使用& 符号;注释:使用! 符号

★【语法】数学表达式:+ ;- ;* ;/ ;( ;) ;**乘幂

★【语法】程序结束:STOP (Ruby的exit)

★【语法】输出:write(*,*),完整写法:write(unit=*,fmt=*)

⏹建议:少用print,尽量用write

★【语法】声明

⏹整型:integer(kind=4) a ;其中kind是使用的bytes数,4 or 2

◆其他写法:integer*4 a; integer(4) a

⏹浮点:real(kind=4) a ;有效数位6位(12345678存为1.234567E7),如果是kind8

则为15位有效数字

◆此外:1E10:单精10^10,1D10:双精10^10

⏹复数:complex :: a=(2,3)

◆实部:real(a) ;虚部:imag(a)

⏹布尔型:Logical,.true. 和.false.

★【语法与函数】字符串:character(20) string

⏹注意理解,fortran的弱智字符串就是一个长度不能变的一维的东西,极其猥琐,和

Java、Ruby不能相提并论的

⏹string(13:13) = “a”:对第13个字节的读、存

⏹string(2:3) = “go”

⏹string(6) = “我的妈呀”:从第6个位置开始设置为“我的妈呀”

⏹ a = string_a // string_b:用“//”连接两个字符串

⏹【常用函数】char(num),ichar(char):ASCII码的转换相关功能

⏹【常用函数】len(string),len_trim(string):长度,去掉尾部空格后的长度

⏹【常用函数】index(string,key):找key在string首出现的位置

⏹【常用函数】trim(string):返回去掉尾部空格的字符串(用途不大)

⏹【函数】repeat(char,int):返回一个重复int次的char串

⏹character(len=20) string 普通声明;character(len=*) string 接收的时候可自动长度★【规范格式】FORMA T格式化

⏹ e.g.

◆write (*,100) A

◆100 format(I4) ←这里是100号标识调用的格式

⏹参数控制符(前面加数字为重复次数,如4I6或I6。(其中a为一个int))

◆A5 :输入/出5个字符←常用功能

◆I5[.4] :输5位整数,最少4位←常用功能

◆BN,BZ :定义空格为无东西或为0

◆F5.4,D5.4 :5位浮点数,小数占4位←其中前面一个常用

◆E5.1[E2] :5位浮点,小数占1位,指数占2位

◆4X :4个空格←常用功能

◆/ 与\:/为中止本行,\为强制不换行←强制不换行常用

◆Tn,TLn,TRn :移动到第n列/ 左移n列/ 右移n列

⏹Write(*,”(2X,I5)”) a ;一般使用这种方法进行格式化即可,推荐。

◆注意,complex要用两个浮点数来输出

★IMPLICIT命令(隐式表达)

⏹默认:I、J、K、L、M、N为整数,其余浮点(不好)

⏹隐式声明:

◆implicit integer(A,B,C) :A、B、C开头的自动为整型,无需单独声明

◆implicit integer(A-F,I,K) :A-F、I、K开头的自动为整型

◆implicit real(M-P) :M-P开头自动视为浮点数

◆implicit none :无隐式声明,最常用,但个人认为在自己有把握的情况下还

是可以自定义一些隐式来方便程序书写

★【语法】常数parameter的声明

⏹方法1:real,parameter :: pi=3.14

⏹方法2:

◆real pi

◆parameter(pi = 3.14)

★【常用功能】类型转换(real ←→ integer)

⏹real (int_a) :返回int_a的浮点数

⏹int(real_a) :返回real_a的整型

★【语法】设初值:integer :: a=1

★【语法】等价声明:equivalence(array(1,1,5) , A)

⏹两者使用同一块内存,如上,调用A就是调用array(1,1,5),但是调用A比较快

★【语法】type,自定义数据类型,可组合integer,real,char等,类似一个只有公开变量的类

◆type :: person

◆character(20) :: name

◆integer::age

◆end type person

⏹声明:type(person) :: a

⏹使用:a%name, (Ruby:一个全是attr_accessor的class)

★【用途不大的函数】kind的使用:select_ind_kind(n):返回记录n位整数所需的kind;

select_real_kind(n,e)n位有效,指数e位所需的kind

相关文档
最新文档