Fortran Coder

楼主: lookbook
打印 上一主题 下一主题

[派生类型] 参数化类型如何绑定

[复制链接]

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

5#
发表于 2018-11-9 00:55:34 | 只看该作者
kind的参数必须要编译时确定,不能假定
len的参数可以假定。
所以,多个kind,就要写多个函数。

[Fortran] 纯文本查看 复制代码
module m_a
  implicit none
  type :: bar(p, q)
    integer, kind :: p=4
    integer, len  :: q=10
    real(kind=p),dimension(q) :: x
  contains
    procedure:: barsub => barsub4 , barsub8
  end type bar

contains

  subroutine barsub4(this)
    type(bar(p=4,q=*)), intent(in) :: this
    write (*,*) this%q , this%p
  end subroutine barsub4
  
  subroutine barsub8(this)
    type(bar(p=8,q=*)), intent(in) :: this
    write (*,*) this%q , this%p
  end subroutine barsub8
  
end module

Program Main
  use m_a
  type(bar(4,30)) :: x4_30
  type(bar(4,20)) :: x4_20
  type(bar(8,30)) :: x8_30
  type(bar(8,20)) :: x8_20
  call x4_30%barsub()
  call x4_20%barsub()
  call x8_30%barsub()
  call x8_20%barsub()
End Program Main  

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
地板
发表于 2018-11-8 16:42:22 | 只看该作者
lookbook 发表于 2018-11-8 16:38
感觉你就是大佬呀。。。

你看我的级别积分什么的就知道不是啊……
和你一样的萌新菜鸟……

79

帖子

17

主题

0

精华

专家

齊天大聖

F 币
433 元
贡献
266 点
板凳
 楼主| 发表于 2018-11-8 16:38:35 | 只看该作者
liudy02 发表于 2018-11-8 14:43
参数化派生类型是个坑,
目前还不知道有哪个编译器能很好的支持所有参数化派生类型的标准,
我反正是放弃找 ...

感觉你就是大佬呀。。。

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
沙发
发表于 2018-11-8 14:43:41 | 只看该作者
参数化派生类型是个坑,
目前还不知道有哪个编译器能很好的支持所有参数化派生类型的标准,
我反正是放弃找别的路子
我也坐等大佬看有什么办法没有……
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-6-2 20:26

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表