Fortran Coder

查看: 15575|回复: 8
打印 上一主题 下一主题

[求助] 逻辑数组如何赋值

[复制链接]

22

帖子

6

主题

0

精华

入门

StarkLee

F 币
96 元
贡献
52 点
跳转到指定楼层
楼主
发表于 2014-11-27 21:59:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
数组构造器好像不能赋值,求大神指点!
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

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

沙发
发表于 2014-11-27 23:13:02 | 只看该作者
logical :: fcode(3) = (/.true.,.false.,.true./)

如果你觉得不好看,或者 .true. 和 .false. 写起来麻烦,还可以这样写

logical :: fcode(4) = ((/1,0,1,0/)==1) !// 我喜欢这样写

22

帖子

6

主题

0

精华

入门

StarkLee

F 币
96 元
贡献
52 点
板凳
 楼主| 发表于 2014-11-28 00:04:22 来自移动端 | 只看该作者
fcode 发表于 2014-11-27 23:13
logical :: fcode(3) = (/.true.,.false.,.true./)

如果你觉得不好看,或者 .true. 和 .false. 写起来麻烦 ...

太感谢啦~不过二维数组怎么不行啊-_-#

image.jpg (81.52 KB, 下载次数: 348)

image.jpg

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

地板
发表于 2014-11-28 08:33:10 | 只看该作者
二维数组需要用 reshape 进行重塑外形。

[Fortran] 纯文本查看 复制代码
logical :: fcode(2,2) = reshape( ((/1,0,1,0/)==1) , (/2,2/) )

22

帖子

6

主题

0

精华

入门

StarkLee

F 币
96 元
贡献
52 点
5#
 楼主| 发表于 2014-11-28 15:12:43 来自移动端 | 只看该作者
楚香饭 发表于 2014-11-28 08:33
二维数组需要用 reshape 进行重塑外形。

[mw_shl_code=fortran,true]logical :: fcode(2,2) = reshape( (( ...

嗯嗯,多谢!!我试试

22

帖子

6

主题

0

精华

入门

StarkLee

F 币
96 元
贡献
52 点
6#
 楼主| 发表于 2014-11-28 16:32:14 | 只看该作者
306908677 发表于 2014-11-28 15:12
嗯嗯,多谢!!我试试


1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1/)
                                                                           1
错误: (1)处表达式中需要右括号
/Volumes/JARVISR/sae/seaq.f90:7.3:
写法
logical :: lg(7,7) = reshape( ((/0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1/)==1) , (/7,7/) )

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

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

7#
发表于 2014-11-28 17:00:18 | 只看该作者
标准编译器可能会出错。因为你这一行超过了132,续个行就行了。

某些编译器允许超过132行,例如ivf

22

帖子

6

主题

0

精华

入门

StarkLee

F 币
96 元
贡献
52 点
8#
 楼主| 发表于 2014-11-28 17:37:19 | 只看该作者
fcode 发表于 2014-11-28 17:00
标准编译器可能会出错。因为你这一行超过了132,续个行就行了。

某些编译器允许超过132行,例如ivf ...

太感谢各位了! 问题解决了!!

100

帖子

0

主题

0

精华

专家

F 币
550 元
贡献
291 点

规矩勋章元老勋章

QQ
9#
发表于 2014-11-29 10:38:36 | 只看该作者
逻辑数组如果量大,可以考虑用位存储。一个integer可以存32个逻辑值。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-23 23:03

Powered by Tencent X3.4

© 2013-2024 Tencent

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