Fortran Coder

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

[指针] allocatable和pointer区别

[复制链接]

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
跳转到指定楼层
楼主
发表于 2023-5-10 21:22:28 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
想问问前辈们,在type时,allocatable和pointer区别。我这里的type下,把SUMatrix注释掉,就能跑,加上这个SUMatrix就报错,是什么原因呢?
[Fortran] 纯文本查看 复制代码
type Subblocks
    integer*4  :: row
    integer*4  :: coL
    complex*16, dimension(:,:), pointer :: far
    complex*16, dimension(:,:), pointer :: nar
    complex*16, dimension(:,:), pointer :: nra
    complex*16, dimension(:,:), pointer :: nrb
    complex*16, dimension(:,:), pointer :: fr
  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, begin, sbnum
    type(Subblocks), allocatable :: Subblocks(:)
    complex*16, allocatable :: invMatrix(:,:)
    complex*16, allocatable :: offMatrix(:,:)
    complex*16, allocatable :: Matrix(:,:)
    complex*16, allocatable :: SUMatrix(:,:)
 !   complex*16, allocatable :: SVMatrix(:,:)
  end type blocks


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

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
沙发
 楼主| 发表于 2023-5-11 10:59:18 | 显示全部楼层
li913 发表于 2023-5-10 22:45
type(Subblocks), allocatable :: Subblocks(:)
这里Subblocks重名了,其他没问题。

这地方的重名会有影响吗?我的原意是写一个iblocks(i)%subblocks(j)%nr(a1:b1,a2:b2)。我需要修改一下嘛?谢谢前辈的解答!

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
板凳
 楼主| 发表于 2023-5-11 11:02:36 | 显示全部楼层
楚香饭 发表于 2023-5-11 08:39
allocatable 在生命周期结束时,编译器会自动释放。而 pointer 不会。

谢谢前辈的回答,但是我还有疑问,能够自动释放的话,那deallocate是干啥的?

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
地板
 楼主| 发表于 2023-5-11 11:28:19 | 显示全部楼层
li913 发表于 2023-5-11 11:03
编译可以通过,但是容易混乱。例如 fortran允许定义一个变量 叫 real,但没人这么干。 ...

以上代码里,将21行的SUMatrix注释掉程序可运行,为什么不注释程序就跑不了了呢?在某行加个write程序又能跑,但是之前没问题的地方又报错(比如矩阵求逆,注释掉矩阵求逆没问题,不注释矩阵就求逆错误),这个大概是什么问题呢?求解答

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
5#
 楼主| 发表于 2023-5-11 11:51:15 | 显示全部楼层
本帖最后由 caimaxwell 于 2023-5-11 11:53 编辑


111是不注释的报错,222是不注释,且在某行加个write的报错。原来矩阵求逆是没问题的

222.png (10.78 KB, 下载次数: 199)

222.png

111.png (129.26 KB, 下载次数: 191)

111.png

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
6#
 楼主| 发表于 2023-5-11 16:55:20 | 显示全部楼层
问题没解决,但是run起来了,只是在某行加了个write.....所以算解决了..   谢谢前辈们!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-3 06:37

Powered by Tencent X3.4

© 2013-2024 Tencent

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