可以将一个软件包中所有程序的interface块写入一个模块中,该模块被软件包中的所有程序使用.这样做的优点是只需一个模块来检查interface定义,缺点是仍需对此模块和调用语句进行维护.
Fortran 90编译器可在contains语句后自动提供过程之间的interface块,这种interface块可用于使用模块的任何程序.例如模块A含有过程a,模块B含有过程b,过程a调用模块B的过程b,在A中使用模块B(use B)将自动提供过程b的接口.另一方面,若将过程b置于A中,则不需使用use语句.因此可以在contains语句中尽量将相关的代码放在同一个模块中.
建议在同一个软件包内可使用2,3的形式,而在调用软件包的入口程序时采用1或2的形式.
关于动态内存的使用
合理使用动态内存可提高效率.在Fortran90中常采用下列方法获取动态内存.
自动数组(automatic arrays):这种数组的大小在子程序中指定,其大小取决于运行时的变量,例如,可通过参数列表向子程序传递实元变量.使用自动数组的优点是运行速度快,但是如果内存分配失败会使程序出错而中断.使用方法举例:
SUBROUTINE Sub1(a,n)
REAL,DIMENSION(n)::a
可分配数组(allocatable arrays):声明为ALLOCATABLE属性的数组变量可在运行时通过ALLOCATE命令分配空间.与指针不同的是,ALLOCATABLE属性不能用于派生数据类型中.这种方法申请的空间要使用DEALLOCATE命令释放.在一个程序中,不要重复进行"ALLOCATE—DEALLOCATE-然后再ALLOCATE一个更大的空间"这样的操作,这样会导致大量不可利用的碎片空间产生.应在程序中对要开辟的动态数组空间进行连续分配,或连续释放.在使用ALLOCATE和DEALLOCATE命令之后,要利用ALLOCATE和DEALLOCATE命令参数中的返回值来判断操作是否成功.使用方法举例:
REAL, ALLOCATABLE :: a(:)
INTEGER :: Error
ALLOCATE(a(5),STAT=Error)
IF(Error /= 0 ) PRINT *,"Allocate Error"
数组指针:声明为指向一个数组的指针,然后通过ALLOCATE命令分配空间.使用方法举例:
REAL,POINTER,DIMENSION(:,:):: A
INTEGER :: Error
ALLOCATE(a(5,5),STAT=Error)
IF(Error /= 0 ) PRINT *,"Allocate Error"
Fortran 90中不建议使用的过时的特性
不要使用固定书写格式,采用Fortran 90的自由书写格式.
不要使用旧式的DO循环和CONTINUE语句.
在以前的DO循环中,关键字之后大多有一个标号,循环在该标号处结束,如:
DO 10 i = 1, 10
DO 20 j=1,20
A(i,j)=0.
20 CONTINUE
10 CONTINUE
建议采用统一的DO结构,如:
DO i = 1, 10
DO j = 1, 20
A(i, j) = 0.
END DO
END DO
不能使用实循环变量
在DO循环中若用实数作循环变量,由于截断误差的存在,会导致得不到预期的循环次数,如应将下面的DO循环
DO r = 0.1 ,0.9 ,0.1
...
END DO
改写为:
DO i = 1 , 9
r = i * 0.1
- fortran90编译器 > "十五"国家重点科技攻关计划项目2001BA607B
-
"十五"国家重点科技攻关计划项目2001BA607B
下载该文档 文档格式:DOC 更新时间:2008-12-01 下载次数:0 点击次数:1文档基本属性 文档语言: Simplified Chinese 文档格式: doc 文档作者: wuxiangjun 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: cma 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- DOC格式下载
- 更多文档...
-
上一篇:安装和使用说明
下一篇:FORTRAN语言简介
点击查看更多关于fortran90编译器的相关文档
- 您可能感兴趣的
- fortran90编译器下载 fortran编译器 win7fortran编译器 fortran6.6编译器下载 visualfortran编译器 fortran编译器下载 abaqusfortran编译器 安卓fortran编译器 fortran2003编译器
- 大家在找
-
- · 百威劲柠啤酒价格
- · 3dm2k12汉化补丁
- · 浙江省焊接培训基地
- · 瑞安市博业激光
- · blankverse
- · 大学体育课篮球教案
- · qq华夏进阶装备
- · 学生思想政治工作总结
- · 即墨大信镇招聘
- · jk罗琳官网
- · 奉节县永安镇三台小学 王婷
- · 五年级数学书苏教版
- · 鱼精蛋白生产工艺
- · 2011上海高考数学word
- · 昆明医学院公费研究生
- · 完整简历表格下载word
- · 数理逻辑课件
- · 独山子政府网
- · 男子高中生的日常
- · 新实用汉语课本5
- · 电气焊技术书库
- · zbj1.com
- · 经济管理论文8000字
- · 水利工程验收规范全书
- · 北航二系10级
- · cad2010破解教程
- · 幼儿园卫生保健计划
- · 3l英语第一册1到120
- · 西安大雁塔喷泉时间
- · 儿童歌曲mtv精选下载
- 赞助商链接