24小时热门版块排行榜    

CyRhmU.jpeg
查看: 860  |  回复: 24
当前主题已经存档。

tjyl

金虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+2,VIP+0):谢谢应助! 11-18 14:36
intel的编译器应该这样可以的,不过gfortran不行,可能eof返回的类型不对的原因。
另外可以使用iostat来判断。
open(15, file='foo.txt')
do
   read(fh, iostat=stat) buf
   if (stat /= 0) exit
   ! process buf
end do
close(15)

[ Last edited by tjyl on 2009-11-18 at 13:43 ]
11楼2009-11-18 13:28:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+1,VIP+0):谢谢评论! 11-18 14:36
以前是看到有的人这样用,只是觉得这种方式不好。
引用回帖:
Originally posted by maomao1210 at 2009-11-18 13:19:

你试了嘛?呵呵,咋知道不行呢?

12楼2009-11-18 13:44:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jjdg

版主 (知名作家)

优秀版主


小木虫(金币+0.5):给个红包,谢谢回帖交流
反正程序这种东西不上机实测是不知道好用不好用的!
努力学习!以正当途径!获得需要的知识!
13楼2009-11-18 23:30:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tpp001

金虫 (著名写手)

引用回帖:
Originally posted by tjyl at 2009-11-18 13:08:
program main
implicit none
integer i, nrow ! nrow是文件的行数
character*10 atomname
open(1,file='co2.gro',status='unknown')
i=1
do while (.not. eof(1))
read(1,*) atomname,x(i),y(i),z(i)
if ...

你好,我用compad visual fortran 运行了这段,可是还是出现错误..错误信息是:
D:\rdf\gro\benz\ljinteraction.f90(14) : Error: Constants and expressions are invalid in read-only I/O lists.   [X]
read(1,*) atomname,x(i),y(i),z(i)
-------------------^
D:\rdf\gro\benz\ljinteraction.f90(14) : Error: Constants and expressions are invalid in read-only I/O lists.   [Y]
read(1,*) atomname,x(i),y(i),z(i)
------------------------^
D:\rdf\gro\benz\ljinteraction.f90(14) : Error: Constants and expressions are invalid in read-only I/O lists.   [Z]
read(1,*) atomname,x(i),y(i),z(i)
我不太清楚这个数组x(i),y(i),z(i),怎么定义好,我在program main的开头这样定义的
program main
real x, y, z
我觉得是不是这里有问题呀...就是这个数组到底应该怎么半呢?
迷茫在知识的海洋里,需要你的指导。thankyou
14楼2009-11-19 15:58:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (知名作家)

本帖仅楼主可见
15楼2009-11-19 16:07:57
已阅   申请程序强帖   回复此楼   编辑   查看我的主页

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

comments on L14

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+1,VIP+0):辛苦了! 11-19 18:12
real x,y,z 只是定义了实数而非数组。
子程序里x,y,z是数组吗?数组是必须的吗?
也许可以用动态数组,但我长时间不用了,基本都忘了。看看CVF的user manual吧。
16楼2009-11-19 16:16:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tpp001

金虫 (著名写手)

子程序里面的x,y,z,就是一个变量......
迷茫在知识的海洋里,需要你的指导。thankyou
17楼2009-11-19 16:49:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+1,VIP+0):辛苦了! 11-19 21:52
不好意思,没有注意到数组x,y,z还没有申明。
可以用一个链表来做。
或者笨一点的方法是用先那样读一次,计算出行号i。
然后再allocate(x(i),y(i),z(i))
引用回帖:
Originally posted by tpp001 at 2009-11-19 15:58:

你好,我用compad visual fortran 运行了这段,可是还是出现错误..错误信息是:
D:\rdf\gro\benz\ljinteraction.f90(14) : Error: Constants and expressions are invalid in read-only I/O lists.   [X]
read(1 ...

18楼2009-11-19 21:26:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tpp001

金虫 (著名写手)

引用回帖:
Originally posted by tjyl at 2009-11-19 21:26:
不好意思,没有注意到数组x,y,z还没有申明。
可以用一个链表来做。
或者笨一点的方法是用先那样读一次,计算出行号i。
然后再allocate(x(i),y(i),z(i))


谢谢你的回复,经过大家的指导我已经能计算出一个文件的行数了,在linux用cat -n 就可以.
可是我的程序又有其他问题了.望帮忙谢谢
我下面这个程序 compile没有错误,可是execute就不行,
我程序的主题就是,调用一个函数,计算函数值,然后累加函数数值.,输出函数数值的总和!
program main
implicit none
integer i
double precision,external :: cljinteraction !申明函数
character*5 atomname
double precision x(33972),y(33972),z(33972),line(33972)
double precision ljcc !函数输出数值
double precision vicc
    vicc=0.0
     open(1,file='co2ben.txt',status='unknown')
    do i=1, 33972
   read(1,*) line(i),atomname,x(i),y(i),z(i)
if (atomname .eq. 'Cb') then !如果原子是Cb,就调用下面函数
    ljcc=cljinteraction(x(i),y(i),z(i))
     vicc=vicc+ljcc !累加函数数值
endif
enddo
write(6,*) vicc !输出函数数值的总和
end

function cljinteraction(x,y,z)
implicit none
double precision cljinteraction
double precision x,y,z !输入变量
double precision ri2c, sr2c, sr6c, sr12c !中间使用量
    ri2c=(x-3.08)**2+(y-3.37)**2+(z-3.129)**2
   sr2c=0.32535/ri2c
   sr6c=sr2c*sr2c*sr2c
   sr12c=sr6c**2
   cljinteraction=sr12c-sr6c
return
end
迷茫在知识的海洋里,需要你的指导。thankyou
19楼2009-11-19 21:45:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tpp001

金虫 (著名写手)

这是我的输入文件 'co2ben.txt'

这是我的输入文件 'co2ben.txt' 部分数据
Oa   3.106000       3.385000       3.639000   
Cb   3.119000       3.271000       3.627000   
Oc   4.060000      -2.784000       1.788000   
Oa   2.935000       3.083000       3.510000   
Cb   2.845000       3.101000       3.577000   
Oc   2.701000       3.042000       3.654000   
Oa   3.074000       3.273000       3.460000   
Cb   3.038000       3.260000       3.569000   
Oc   2.751000       3.116000       3.642000   
Oa   3.347000       3.438000       3.404000   
Cb   3.322000       3.381000       3.501000   
Oc   3.004000       3.250000       3.678000   
Oa   3.433000       3.481000       3.513000   
Cb   3.347000       3.406000       3.515000   
Oc   3.295000       3.326000       3.598000   
Oa   3.288000       3.359000       3.679000   
Cb   3.254000       3.374000       3.571000   
Oc   3.261000       3.329000       3.513000
迷茫在知识的海洋里,需要你的指导。thankyou
20楼2009-11-19 21:47:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tpp001 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见