Fortran Coder

查看: 2757|回复: 4
打印 上一主题 下一主题

[Module] 关于module及subroutine

[复制链接]

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
跳转到指定楼层
楼主
发表于 2023-3-7 14:55:06 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
module EmiblockData
  use EmHMatrixData
  implicit none
  type Subblocks
    integer*4  :: row
    integer*4  :: coL
  end type Subblocks

  type blocks
    integer*4  :: row1,row2,coL1,coL2
    integer*4  :: rowm,coLm
    integer*4  :: dad
    integer*4  :: son(4)
    integer*4  :: bnum
    type(Subblocks), allocatable :: iSubblocks(:)
  end type blocks

  integer*4 :: Nblock
  type(blocks), allocatable :: iblocks(:)
  integer*4, allocatable   :: BlockInd(:, :)
!  type(Subblocks), allocatable  :: iSubblocks(:)
  integer*4, allocatable  :: iSubblocks(:), iblockInd(:, :)

contains
subroutine BlockRenumber(iSubblocks, sbmax)
  !对子矩阵块中的矩阵块进行编号
  implicit none
  integer*4  :: sbmax                
  type(Subblocks),allocatable  :: iSubblocks(:)        !最小矩阵块....
end subroutine

为什么我明明已经在module里声明了isubblocks,在编写子程序时仍然要声明isubblock(),不声明就会报错(未定义)?

望解答

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
沙发
 楼主| 发表于 2023-3-7 15:42:15 | 显示全部楼层
是subroutine(x,y,z)中的x,y,z覆盖了module中声明的变量吗?就是说subroutine()括号中不能出现module声明的变量,应使用别的单词代替的意思吗?

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
板凳
 楼主| 发表于 2023-3-7 19:57:19 | 显示全部楼层
十分感谢您的解答。很有帮助!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-7 11:58

Powered by Tencent X3.4

© 2013-2024 Tencent

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