主题:CLASS关键字和INTENT关键字 格式如何写?
heizaoniangao
[专家分:310] 发布于 2011-07-25 15:10:00
在编程的时候遇到用ABSTRACT INTERFACE去定义某个类中抽象的函数,但是又想让这个函数是ELEMENTAL的,这样的话,函数中的每个参数都要用INTENT修饰,但是在把CLASS和INTENT写在一起的时候报错。
想问下各位大虾,正确格式该如何写,另外,每个类的对象还需要INTENT修饰吗?
我再继续调试下。。。
例子如下
Module A
Implicit none
Type, abstract, public :: D
Real :: ....
Contains
Procedure(ComputationX), private, deferred :: Computation
End type D
Abstract interface
Elemental real function ComputationX (this, T) RESULT(p)
class(D), intent(in) :: this !!!!这一行格式该怎么写?
real, intent(in) :: T
End function ComputationX
End interface
最后更新于:2011-07-25 15:12:00
回复列表 (共9个回复)
沙发
liangrong [专家分:2090] 发布于 2011-07-25 17:01:00
在聲明 class(D) 前應先加上 import 語句
Elemental real function ComputationX (this, T) RESULT (p)
import :: D
class(D), intent(in) :: this
real, intent(in) :: T
End function ComputationX
板凳
heizaoniangao [专家分:310] 发布于 2011-07-26 00:15:00
[quote]在聲明 class(D) 前應先加上 import 語句
Elemental real function ComputationX (this, T) RESULT (p)
import :: D
class(D), intent(in) :: this
real, intent(in) :: T
End function ComputationX[/quote]
多谢了,能解释一下吗?Import在这里什么作用?在网上搜了好多,资料很少。哪本书上有相关的内容呢?
3 楼
heizaoniangao [专家分:310] 发布于 2011-07-26 00:21:00
唉,
我的win7是英文的,上论坛老是有乱码。。。
多谢一楼,能解释一下吗?IMPORT在这里起什么作用?在网上搜了,资料很少,那本书上有相关的内容啊?
4 楼
heizaoniangao [专家分:310] 发布于 2011-07-26 07:28:00
哦,在FOTRAN95,2003上看到了,IMPORT是用来把类型输入到INTERFACE里面的,谢谢
另外,备注一点,IVF 11.0.06是不能使用IMPORT STATEMENT,刚下载了一个试用版的IVF XE 11,可以使用IMPORT。
看了看正版的报价600多刀,伤不起啊。
大家知道其他编译器可以实现FORTRAN2003的面对对象的特性吗?没用过GFORTRAN和其他编译器,不知道其他编译器发展的怎样了,应该是IVF目前最强大吧?
5 楼
cgl_lgs [专家分:21040] 发布于 2011-07-26 10:39:00
gfortran最新版本实现了不少,三角函数及IO的性能不行,其他与IVF不分伯仲:)
PGI-Fortran很牛,但也一样很贵:)
6 楼
dongyuanxun [专家分:7180] 发布于 2011-07-26 18:08:00
[quote]gfortran最新版本实现了不少,三角函数及IO的性能不行,其他与IVF不分伯仲:)
PGI-Fortran很牛,但也一样很贵:)[/quote]
三角函数及IO属于各自平台的CRT实现,编译器不管。
他们不是一个项目组。
为什么慢,答案是授权。
7 楼
heizaoniangao [专家分:310] 发布于 2011-07-27 08:08:00
在电驴上看到,有PGI FORTRAN的V11.1的版本,不过是不是不支持FORTRAN2003呢?大家有没有用过的?
PGI Visual Fortran包括最新版的PGI本机OpenMP,以及支持FORTRAN77和Fortran95编程语言的自动并行化编译器,主要特性包括一整套:由面向Fortran的文本编辑器、Fortran本征函数提示和选择关键字组成的Visual Studio Fortran项目系统; 。。。
8 楼
cgl_lgs [专家分:21040] 发布于 2011-07-27 10:35:00
最新的PGI支持到最新的FORTRAN标准,并实现了部分草案(他们这么说的)
只是PGI不支持,也不准备支持CoArray。
PGI可以对AMD平台及INTEL平台同时优化,IVF不行。
9 楼
dongyuanxun [专家分:7180] 发布于 2011-07-27 11:06:00
[quote]最新的PGI支持到最新的FORTRAN标准,并实现了部分草案(他们这么说的)
只是PGI不支持,也不准备支持CoArray。
PGI可以对AMD平台及INTEL平台同时优化,IVF不行。[/quote]
我觉得multiarch的做法并不好
虽然每个编译器都能弄出来……
一旦指令检测稍有失误,整个就挂掉了
我来回复