24小时热门版块排行榜    

查看: 3893  |  回复: 11

贺仪

铁杆木虫 (著名写手)

[求助] fortran编译 read出错 完毕

错误提示
POSITION.F(31): error #6358: Constants and expressions are invalid in read-only I/O lists.   [MSP]
      read(15,*) (msp(i),i=1,10)
前面msp有定义
character msp(10)
  read(15,*) (msp(i),i=1,10)
语法有问题吗?

一下是全部程序
      program getpos
ccccccccc  12 is SPPARKS OUTPUT  cccccccc
ccccccccc 15 is the molecure  ccccccccc
ccccccccc  13 is OUTPUT   ccccccccccc
      integer mnum nsp
      real coord(2000,3)
      real species(10,3)
      integer nsp(10)
      real x y z
      character tile cellp cella cellb cellz msp(10)  
      open(12,file='POSCAR',status='old')
      open(15,file='POSCAR',status='old')
      open(13,file='CONTCAR',status='new')
ccccccccccccccccccc sys param a b c cccccccccccccc
      read(12,*) tile
      write(13,*) tile
      read(12,*) cellp
      write(13,*) cellp
      read(12,*) cella ;
      write(13,*) cella
      read(12,*) cellb ;
      write(13,*) cellb
      read(12,*) cellc ;
      write(13,*) cellc
      read(15,*);
      read(15,*);
      read(15,*);
      read(15,*);
      read(15,*);
cccccccccccccccccccc atom char ccccccccccccccccccccccc
      read(15,*) (msp(i),i=1,10)
      write(13,*) (msp(i),i=1,10)
      read(12,*);
cccccccccccccccccccc atom num  cccccccccccccccccccccccc
      read(12,*) mnum
      read(15,*) (nsp(i),i=1,10)
      DO i=1, 10
         N_anum=mnum*nsp(i)
         write(13,N_anum)
      END DO
      read(12,*)
      read(15,*)
      write(13,*) 'R'
cccccccccccccccc  read molecue coord cccccccccccc
      DO i=1, mnum
         read(12,*) (coord(i,j),j=1,13)
      ENDDO
      close(12)
cc
      DO j=1, 10                !!! species cyc !!!!!!
            DO i=1, nsp(j)          !!! the j atom cyc !!!!!!
                  read(15,*) x y z  !!!!!!!!!!!!!!!!!!!!!!!! molecure coord !!!!!!!!!!!!!
                      DO k=1, mnum
                                nx=x+coord(k,1)
                                ny=y+coord(k,2)
                                nz=z+coord(k,3)
                                write(13,*) nx ,ny ,nz
                      ENDDO
            ENDDO
      ENDDO
          close(15)
          close(13)
      END

[ Last edited by 贺仪 on 2011-8-23 at 14:53 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

嘟啦啦嘟啦啦嘟
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
贺仪(金币+5): 多谢指教! 2011-08-23 14:53:23
余泽成(金币+2): 谢谢参与应助! 2011-08-24 16:20:44
引用回帖:
1楼: Originally posted by 贺仪 at 2011-08-23 09:57:29:
错误提示
POSITION.F(31): error #6358: Constants and expressions are invalid in read-only I/O lists.   [MSP]
      read(15,*) (msp(i),i=1,10)
前面msp有定义
character msp(10)
  read(15,*) (msp(i ...

character 类型数据不能用 read(15, *) 这种方式来读取吧。 * 只适合于数值,而且读出来的格式只能是浮点数……

如果你的 msp 是用来存单个字符(10个?),那么你可以用下面的代码试试(没有测试,不保证正确……)
CODE:
read(15, '(a1)') (msp(i), i=1,10)

2楼2011-08-23 14:31:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
贺仪(金币+5): 多谢指教! 2011-08-23 14:53:34
余泽成(金币+2): 辛苦了! 2011-08-24 16:20:55
看来我前面的说法没有切入要点,你的问题在于
      real x y z
      character tile cellp cella cellb cellz msp(10)  
上面两行各个变量之间应该用逗号来分隔……

当然,字符的确不能用 read(15,*) 这种方式来读……
3楼2011-08-23 14:47:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

贺仪

铁杆木虫 (著名写手)


余泽成(金币+1): 谢谢参与应助! 2011-08-24 16:21:05
不是读取的原因
在定义的时候用“::”后就可以了
嘟啦啦嘟啦啦嘟
4楼2011-08-23 14:55:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

引用回帖:
4楼: Originally posted by 贺仪 at 2011-08-23 14:55:38:
不是读取的原因
在定义的时候用“::”后就可以了

不知道你这个是啥意思?

你给出的代码中太多不规范的东西,呵呵,反正我用 gfortran 会提示很多错误……
5楼2011-08-23 15:00:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

贺仪

铁杆木虫 (著名写手)

余泽成: 刚才发错了,呵呵,金币送你了,常来程序语言版! 2011-08-24 16:22:03
引用回帖:
5楼: Originally posted by snoopyzhao at 2011-08-23 15:00:35:
不知道你这个是啥意思?

你给出的代码中太多不规范的东西,呵呵,反正我用 gfortran 会提示很多错误……

是的 错误很多 这是最开始的 现在调好了,程序如下:
      program getpos
ccccccccc  12 is SPPARKS OUTPUT  cccccccc
ccccccccc 15 is the molecure  ccccccccc
ccccccccc  13 is OUTPUT   ccccccccccc
      integer mnum Nanum
      real::coord(2000,3)
      integer::nsp(4)
      real x y z
      character tile cellp
      character::msp(4)
      real::cella(3)
      real::cellb(3)
      real::cellc(3)  
      open(12,file='POSCARS',status='old')
      open(15,file='POSCARV',status='old')
      open(13,file='CONTCAR',status='new')
ccccccccccccccccccc sys param a b c cccccccccccccc
      read(12,*) tile
      write(13,"(2XA10)" tile
      read(12,*) cellp
      write(13,*) cellp
      read(12,*) (cella(i),i=1,3)
      write(13,"(3(2XF10.7))" (cella(i),i=1,3)
      read(12,*) (cellb(i),i=1,3)
      write(13,"(3(2XF10.7))" (cellb(i),i=1,3)
      read(12,*) (cellc(i),i=1,3)
      write(13,"(3(2XF10.7))" (cellc(i),i=1,3)
      read(15,*)
      read(15,*)
      read(15,*)
      read(15,*)
      read(15,*)
cccccccccccccccccccc atom char ccccccccccccccccccccccc
      read(15,*) (msp(i),i=1,4)
      write(13,"(4(2XA2))" (msp(i),i=1,4)
      read(12,*)
cccccccccccccccccccc atom num  cccccccccccccccccccccccc
      read(12,*) mnum
      read(15,*) (nsp(i),i=1,4)
      DO i=1, 4
               Nanum=mnum*nsp(i)
         write(13,10) Nanum
      END DO
      read(12,*)
      read(15,*)
      write(13,"(/,A1)" 'D'
      DO i=1, mnum
         read(12,*) (coord(i,j),j=1,3)
      END DO
      close(12)
cc
      DO j=1, 4                !!! species cyc !!!!!!
            DO i=1, nsp(j)          !!! the j species atom cyc !!!!!!
                  read(15,*) x, y, z  !!!!!!!!!!!!!!!!!!!!!!!! molecure coord !!!!!!!!!!!!!
                      DO k=1, mnum
                          write(13,100) x+coord(k,1), y+coord(k,2), z+coord(k,3)
                      END DO
            END DO
      END DO
      close(15)
      close(13)
10    FORMAT(2XI5.0,\)
100   FORMAT(3(2XF10.6))
      END
嘟啦啦嘟啦啦嘟
6楼2011-08-23 15:06:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


贺仪(金币+5): 多谢指教! 2011-08-23 15:29:55
余泽成(金币+1): 谢谢参与应助! 2011-08-24 16:22:51
至少
      integer mnum Nanum
      character tile cellp
还是不正确的吧……
另外,\ 似乎也有问题……
7楼2011-08-23 15:10:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

贺仪

铁杆木虫 (著名写手)

引用回帖:
7楼: Originally posted by snoopyzhao at 2011-08-23 15:10:46:
至少
      integer mnum Nanum
      character tile cellp
还是不正确的吧……
另外,\ 似乎也有问题……

我用ifort -O2 已经通过编译了
拿到自己想要的文件了 就不管那么多了 呵呵
嘟啦啦嘟啦啦嘟
8楼2011-08-23 15:14:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


贺仪(金币+5): 多谢指教! 2011-08-23 15:30:10
余泽成(金币+1): 谢谢应助到底,呵呵! 2011-08-24 16:23:08
引用回帖:
8楼: Originally posted by 贺仪 at 2011-08-23 15:14:08:
我用ifort -O2 已经通过编译了
拿到自己想要的文件了 就不管那么多了 呵呵

你运行一下看看得到的结果是不是你想要的,呵呵……

在 Fortran 中,像 real x y z 这样的语句,你本来声名了三个变量,但编译之后是一个变量 xyz。你或许会说,为什么没有报错,你试着在 program 那句之后加一句 implicit none 看看……
9楼2011-08-23 15:16:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

贺仪

铁杆木虫 (著名写手)

引用回帖:
9楼: Originally posted by snoopyzhao at 2011-08-23 15:16:59:
你运行一下看看得到的结果是不是你想要的,呵呵……

在 Fortran 中,像 real x y z 这样的语句,你本来声名了三个变量,但编译之后是一个变量 xyz。你或许会说,为什么没有报错,你试着在 program 那句之后加 ...

这个就不清楚了…… 我不是专业编程的
real x y z 这样的语句,你本来声名了三个变量,但编译之后是一个变量 xyz  应该怎么声明呢?


我要处理的是坐标文件,得到的文件打开是没有问题的, 我看了结构也没什么问题
嘟啦啦嘟啦啦嘟
10楼2011-08-23 15:26:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 贺仪 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 今天系统多次维护,明天很可能放榜! +5 zju2000 2026-08-16 5/250 2026-08-16 23:23 by Haru815
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] filecode=后面第一个是大写字母 +6 wangze12014 2026-08-14 7/350 2026-08-15 20:12 by gltch
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +12 Tide man 2026-08-10 13/650 2026-08-15 16:34 by 氺木
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
信息提示
请填处理意见