Dav*_* MZ 6 fortran linked-list fortran90 data-structures
我需要在fortran 2003/2008中为我的分子动力学代码实现链接列表数据结构我正在使用最新的fortran编译器(英特尔).
我如何以尽可能最好的方式实现链表,如果可能的话,我希望在Fortran中实现无锁无等待实现.
谢谢.
如果使用数据项和指向下一项的指针创建用户定义类型,则最简单.这是假设一个单链表.例如,
type MyList_type
integer :: FirstItem
real :: SecondItem
etc
type (MyList_type), pointer :: next_ptr => null ()
end type MyList_type
Run Code Online (Sandbox Code Playgroud)
然后使用"allocate"创建第一个成员.此后,您编写代码来遍历列表,使用next_ptr逐步执行列表.使用"关联"内在函数来测试next_ptr是否已定义,或者您已到达列表的末尾.
如果您正在编写一个普通的顺序Fortran程序,那么无锁/无等待不是问题.如果您正在编写多线程/并行程序,那么对变量的一致访问是一个问题.
以下是一些例子:http://fortranwiki.org/fortran/show/Linked+list.更好的是,Fortranf和Reid在"Fortran 90/95 Explained"一书中清楚地解释了Fortran中的链接列表.
| 归档时间: |
|
| 查看次数: |
5348 次 |
| 最近记录: |