Fortran Coder

查看: 14279|回复: 6
打印 上一主题 下一主题

[Module] 自定义类以及module里面动态数组问题

[复制链接]

6

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
33 点
跳转到指定楼层
楼主
发表于 2017-5-12 23:05:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助两个问题,望解惑,十分感谢!

1.请问定义了一个type:
[Fortran] 纯文本查看 复制代码
Type :: column
        Real :: c1,c2,c3
    end type

Type (column) :: F(3),R(3)
那么F(i)-R(i)这个操作是f(i)中的c1,c2,c3与R(i)中对应的c1,c2,c3相减吗?

2.在module里面可以定义一个动态数组作为全局变量吗?
且这个动态数组在该module里只进行了allocatable的声明,没有进行allocate操作(allocate操作将在一个子程序中进行)
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1339 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2017-5-13 08:15:29 | 只看该作者
第一,F(i)-R(i) 这个操作是非法的。编译器会报错。
第二,module里可以有动态数组。(但不是全局变量,fortran没有全局变量。)
module中的变量(含动态数组),可以在所有use了该模块的程序单元之间共享数据。
module本身只能定义(allocatable),不能执行(allocate)
如果要执行,只能在子程序(或函数)里。这些子程序(或函数),可以是外部的(需要该变量为public),也可以是contains在module下的。
视频教程详解:http://v.fcode.cn/video-module.html

6

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
33 点
板凳
 楼主| 发表于 2017-5-13 10:06:19 | 只看该作者
fcode 发表于 2017-5-13 08:15
第一,F(i)-R(i) 这个操作是非法的。编译器会报错。
第二,module里可以有动态数组。(但不是全局变量,for ...

很感谢!
F(i)-R(i)这里是我表述不清楚,抱歉...
我想表达的是假如Q,F,R都是type(column)类型的变量
那么Q=F(1)-R(1)这个操作等价于
Q%c1=R(1)%c1-F(1)%c1
Q%c2=R(1)%c2-F(1)%c2
Q%c3=R(1)%c3-F(1)%c3
吗?

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1339 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

地板
发表于 2017-5-13 17:36:55 | 只看该作者
Q=F(1)-R(1) 是非法的,编译器会报错。除非你重载了减号,使其可以对type(column)进行操作。

796

帖子

2

主题

0

精华

大宗师

F 币
3787 元
贡献
2266 点
5#
发表于 2017-5-13 22:31:24 | 只看该作者
想要实现两个结构体相减,需要对减号操作符进行重载
http://fcode.cn/guide-61-1.html

6

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
33 点
6#
 楼主| 发表于 2017-5-14 10:47:50 | 只看该作者
fcode 发表于 2017-5-13 17:36
Q=F(1)-R(1) 是非法的,编译器会报错。除非你重载了减号,使其可以对type(column)进行操作。
...

谢谢您!

6

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
33 点
7#
 楼主| 发表于 2017-5-14 10:48:18 | 只看该作者
li913 发表于 2017-5-13 22:31
想要实现两个结构体相减,需要对减号操作符进行重载
http://fcode.cn/guide-61-1.html ...

嗯,感谢!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-20 04:06

Powered by Tencent X3.4

© 2013-2024 Tencent

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