《FORTRAN 95程序设计》学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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