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

内容发布更新时间 : 2025/7/18 15:41:59星期一 下面是文章的全部内容请认真阅读。

《Fortran95 程序设计》学习笔记 by 柳柳

一行一行,iostat那个/=0就over了。(Ruby : readline)

? 直接访问文件的操作(还是分行的操作):open的时候设置recl的大小,然后类似:

? read(id , fmt , rec = 编号, ..)XX读编号内容即可。注意:recl=6则1行为4个

字符内容(有两个是”\\n”)

? 二进制文件的操作,与上面相比,改用form = “unformatted”

★ 【重要功能】内部文件与字符串,数字转换:把unit改为 = 字符串,读入数字即可做

到数字转字符串;反之亦可。

★ 【语法】namelist:namelist /na/ a,b,c 输入输出如下 (没用的功能)

? &na ? A=1 ? B=2 ? /

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

★ 【语法与范例】指针指到变量

? integer, target :: a=1 ?声明一个可以当成目标的变量 ? integer, pointer :: p=1 ?声明一个可以指向整数的指针

? p => a ?设置指向(也可以不指,allocate(p)即可开地址,deallocate(p)干掉

地址。用起来像是个可释放的变量) ? p = 3 ?设置P位置的内存数据

★ 【语法】设置空指针:p => null() 或

? integer , pointer :: p ? nullify(p)

★ 【语法】判断指针是否已经设置内容:associated(pointer,[target]) 。这里如果有target可

以判断指针是否指向target内容。 ★ 【语法与例子】指针数组

? integer , pointer :: a( : ) 声明一维指针数组 ? integer , target :: b(5) = (/1,2,3,4,5/) ? a => b 即 a(1-5) = b(1-5)

第 11 页 共 16 页

《Fortran95 程序设计》学习笔记 by 柳柳

? a => b(1:5:2) 即a(1,2,3) = b(1,3,5)

? 同理,allocate(a(5)); a=(/1,2,3,4,5/) 注意这种和allocate的数组不同,必须手动

释放子程序霸占的内存。 ? 同理2,integer,pointer :: a( : , : )

★ 【语法】指针函数 :

? interface ?注:如果用了module就不用interface了 ? function getmin(p)

? integer, pointer :: p( : ) 输入一个指针 ? integer, pointer :: getmin 返回一个指针 ? end function ? end interface

★ 【数据结构】队列与堆寨(试误法)。举例:队列

? 定义类型

? type :: datalink ? integer :: I

? type(datalink) , pointer :: prev,next ?两个指针,可以指向datalink的type对象 ? end type datalink ? 使用

? type(datalink),target::node1,node2 ?声明两个新的类型,需要声明可做target ? node1 = datalink(1,null(),node2) ?初始化node1这个type对象,这个地方很有

特色,记住。

Visua

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi