24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1278  |  回复: 4
当前主题已经存档。
【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 sandf 的 2 个金币 ,回帖就立即获得 2 个金币,每人有 1 次机会

sandf

木虫 (正式写手)

[交流] 【求助】fortran 二维数组片段的赋值

在程序可执行段,我想把下面的赋值代码(为使代码简洁)
NGTO = 1
GTOPARA(1:5, NGTO) = (/AtomPARA(1:3,1), 3.4252509D0, 0.15432897D0/)
NGTO = NGTO + 1
GTOPARA(1:5, NGTO) = (/AtomPARA(1:3, 1), 0.6239137D0, 0.53532814D0/)
NGTO = NGTO + 1
GTOPARA(1:5, NGTO) = (/AtomPARA(1:3, 1), 0.1688554D0, 0.44463454D0/)
简化如下
NGTO = 1
GTOPARA(1:5, NGTO:NGTO + 2) = (/AtomPARA(1:3,1), 3.4252509D0, 0.15432897D0, AtomPARA(1:3, 1), 0.6239137D0, 0.53532814D0,  AtomPARA(1:3, 1), 0.1688554D0, 0.44463454D0/)
结果编译错误:
GTOPARA(1:5, NGTO:NGTO + 2) = (/AtomPARA(1:3, I), 3.4252509D0
                  1
Error: Incompatible ranks 2 and 1 in assignment at (1)
注:编译器为:gcc4.5gfortran(20090421)
请问有没有解决办法。

[ Last edited by jjdg on 2010-3-9 at 23:46 ]
回复此楼
努力呀努力,不要成为奴隶。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hakekill

木虫 (小有名气)

★ ★
sandf(金币+2):谢谢参与
senlia(金币+1):感谢应助 2010-03-10 12:40
sandf(金币+4):非常感谢 2010-03-10 13:17
这个错误是说将一维数组赋给二维,我想了一个变通的方法,通过引入一个数组来完成,代码在下面,希望能对你有所帮助
program main
real :: const( 3, 5 )
real :: atompara( 3, 2)
integer :: r, c
data((const(r, c), c = 4, 5), r = 1, 3)/3.42, 0.15, 0.62, 0.53, 0.16, 0.44/

do r = 1, 3
  do c = 1, 2
    atompara(r, c) = r + c
  end do
end do

do r = 1, 3
  const( r, 1 : 3 ) = atompara( 1 : 3, 1)
end do

print "(5(f6.2,1x))", ((const(r,c),c=1,5),r=1,3)
end program
2楼2010-03-10 12:33:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ftp0000

木虫 (小有名气)

★ ★
sandf(金币+2):谢谢参与
余泽成(金币+1):谢谢应助! 2010-03-11 19:31
经过我的运行,发现下面这样是可以的:

NGTO = 1
DATA GTOPARA(1:5, NGTO:NGTO + 2)   /AtomPARA(1:3,1), 3.4252509D0, 0.15432897D0, AtomPARA(1:3, 1), 0.6239137D0, 0.53532814D0,  AtomPARA(1:3, 1), 0.1688554D0, 0.44463454D0/

这样就直接可以赋值了
3楼2010-03-11 12:37:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sandf

木虫 (正式写手)

jjdg:感谢交流 2010-03-11 23:16
引用回帖:
Originally posted by ftp0000 at 2010-03-11 12:37:46:
经过我的运行,发现下面这样是可以的:

NGTO = 1
DATA GTOPARA(1:5, NGTO:NGTO + 2)   /AtomPARA(1:3,1), 3.4252509D0, 0.15432897D0, AtomPARA(1:3, 1), 0.6239137D0, 0.53532814D0,  AtomPARA(1:3, 1), 0.1 ...

你是放在程序运行段吧,看来是编译器中Fortran版本的支持问题了。我用的是gfortran
提示:
DATA GTOPARA(1:5, NGTO:NGTO + 2)/AtomPARA(1:3,1), 3.4252509D0
                      1
Error: Cannot change attributes of USE-associated symbol gtopara at (1)
请问你是用的什么编译器的?

[ Last edited by sandf on 2010-3-12 at 07:54 ]
努力呀努力,不要成为奴隶。
4楼2010-03-11 21:25:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hakekill

木虫 (小有名气)


余泽成(金币+1):谢谢参与讨论! 2010-03-12 14:28
我觉得把DATA放到程序运行段的写法不可取。由于这种用法不属于fortran语言的标准,只是单一编译器提供的功能。这样会使得程序的移植性大大降低。
5楼2010-03-12 08:35:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sandf 的主题更新
提示: 如果您在30分钟内回复过其他散金贴,则可能无法领取此贴金币
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 321求调剂 +6 璞玉~~ 2026-03-25 7/350 2026-03-28 17:48 by 璞玉~~
[考研] 283求调剂 +3 A child 2026-03-28 3/150 2026-03-28 15:41 by ms629
[考研] 一志愿中南大学化学0703总分337求调剂 +5 niko- 2026-03-27 5/250 2026-03-28 14:25 by 唐沐儿
[考研] 材料求调剂一志愿哈工大324 +7 闫旭东 2026-03-28 9/450 2026-03-28 08:51 by Xu de nuo
[考研] 315分求调剂 +7 26考研上岸版26 2026-03-26 7/350 2026-03-28 04:05 by fmesaito
[考研] 化学调剂 +4 爱吃番茄的旭 2026-03-24 5/250 2026-03-27 17:50 by kiokin
[考研] 279 分 求调剂 +4 睡个好觉_16 2026-03-24 4/200 2026-03-27 15:05 by 醉在风里
[考研] 考研调剂 +9 小蜡新笔 2026-03-26 9/450 2026-03-27 11:10 by 不吃魚的貓
[考研] 一志愿吉大071010,316分求调剂 +3 xgbiknn 2026-03-27 3/150 2026-03-27 10:36 by guoweigw
[硕博家园] 招收生物学/细胞生物学调剂 +3 IceGuo 2026-03-26 4/200 2026-03-27 05:35 by user003
[考研] 321求调剂 +6 wasdssaa 2026-03-26 6/300 2026-03-26 20:57 by sanrepian
[考研] 334分 一志愿武理 材料求调剂 +4 李李不服输 2026-03-26 4/200 2026-03-26 16:00 by 不吃魚的貓
[考研] 081700 调剂 267分 +11 迷人的哈哈 2026-03-23 11/550 2026-03-26 15:41 by zzll406
[考研] 085600 材料与化工 329分求调剂 +9 Mr. Z 2026-03-25 9/450 2026-03-26 10:36 by baoball
[考研] 打过很多竞赛,085406控制工程300分,求调剂 +3 askeladz 2026-03-26 3/150 2026-03-26 09:08 by 给你你注意休息
[考研] 340求调剂 +5 话梅糖111 2026-03-24 5/250 2026-03-25 06:53 by ilovexiaobin
[考研] 求调剂 +6 研研,接电话 2026-03-24 7/350 2026-03-24 17:01 by barlinike
[考研] 277分求调剂,跨调材料 +3 考研调剂lxh 2026-03-24 3/150 2026-03-24 13:52 by JourneyLucky
[考研] 269求调剂 +4 我想读研11 2026-03-23 4/200 2026-03-23 21:25 by pswait
[考研] 一志愿北京化工大学070300 学硕336求调剂 +5 vv迷 2026-03-21 8/400 2026-03-22 14:20 by ColorlessPI
信息提示
请填处理意见