24小时热门版块排行榜    

查看: 1352  |  回复: 24
当前主题已经存档。

nono2009

超级版主 (文学泰斗)

No gains, no pains.

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

★
小木虫(金币+0.5):给个红包,谢谢回帖交流
1. 看你的计算目的,其实就没必要用数组x,y,z。
2. compile可以后,试试单步执行查错。
21楼2009-11-19 21:55:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+2,VIP+0):谢谢!专家真是尽心尽力,对活动是不为所动。呵呵 11-19 22:10
自己用比较笨的办法来计算行号,分配空间,输出变量。
program read_data
        implicit none
        integer*4 row,i
        character(80),allocatable :: cha( : )
        row=0
        open(32,file='your_text_file')
        do while (.not. eof(32))
                row=row+1
                read(32,*)
        end do
        rewind(32)
        allocate(cha(row))
        do i=1,row
        read(32,'(A80)') cha(i)
        write(*,'(a80)') cha(i)
        end do
        close(32)
        deallocate(cha)
end program
22楼2009-11-19 21:58:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

★
nono2009(金币+1,VIP+0):谢谢应助! 11-19 22:11
计算行数是wc -l filename
用cat的话会把文件输出
引用回帖:
Originally posted by tpp001 at 2009-11-19 21:45:

谢谢你的回复,经过大家的指导我已经能计算出一个文件的行数了,在linux用cat -n 就可以.
可是我的程序又有其他问题了.望帮忙谢谢
我下面这个程序 compile没有错误,可是execute就不行,
我程序的主题就是,调用一 ...

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

tjyl

金虫 (正式写手)

★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+5,VIP+0):向你学习! 11-19 23:14
按照你的格式改写好了
用你发的数据测试了一下是可以的。
其实本来根本就不用去操心有多少行的,因为你只是为了计算总和。
直接按照前面的那样只判断到文件末没有就可以了。
这样改写只是为了随便试试而已。如果只是关心总和也不用去计算到底多少行。
使用了eof函数,intel编译器可以。CVF不大清楚,没有安装。
如果不行的话就使用前面说的read的IOSTAT来判断到行末没有。

==================
这个是会计算行数,然后再分配空间的
=================
program read_data
        implicit none
        real*8 ljcc,vicc
        real*8,external :: cljinteraction
        real*8,allocatable :: x(: ),y(: ),z(: )
        character*5,allocatable :: atomname(: )
        integer*4 row,i
        row=0
        open(32,file='co2ben.txt')
        do while (.not. eof(32))
                row=row+1
                read(32,*)
        end do
        rewind(32)
        allocate(x(row),y(row),z(row),atomname(row))
        vicc=0.0
        do i=1, row
                read(32,*) atomname(i),x(i),y(i),z(i)
                        if (atomname(i) .eq. 'Cb') then !如果原子是Cb,就调用下面函数
                                ljcc=cljinteraction(x(i),y(i),z(i))
                        vicc=vicc+ljcc !累加函数数值
                        endif
        enddo
        write(6,*) vicc !输出函数数值的总和
        deallocate(x,y,z,atomname)
end program
function cljinteraction(x,y,z)
implicit none
real*8 cljinteraction
real*8 x,y,z !输入变量
real*8 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 function
===================
这个就是只计算这个结果的版本
====================
program read_data
        implicit none
        real*8 ljcc,vicc
        real*8,external :: cljinteraction
        real*8 x,y,z
        character*5 atomname
        vicc=0.0
        open(32,file='co2ben.txt')
        do while (.not. eof(32))
                read(32,*) atomname,x,y,z
                        if (atomname .eq. 'Cb') then !如果原子是Cb,就调用下面函数
                                ljcc=cljinteraction(x,y,z)
                        vicc=vicc+ljcc !累加函数数值
                        endif
        enddo
        write(6,*) vicc !输出函数数值的总和
end program
function cljinteraction(x,y,z)
implicit none
real*8 cljinteraction
real*8 x,y,z !输入变量
real*8 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 function
引用回帖:
Originally posted by tpp001 at 2009-11-19 21:47:
这是我的输入文件 '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 ...

[ Last edited by tjyl on 2009-11-19 at 22:37 ]
24楼2009-11-19 22:25:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tpp001

金虫 (著名写手)

引用回帖:
Originally posted by tjyl at 2009-11-19 22:25:
按照你的格式改写好了
用你发的数据测试了一下是可以的。
其实本来根本就不用去操心有多少行的,因为你只是为了计算总和。
直接按照前面的那样只判断到文件末没有就可以了。
这样改写只是为了随便试试而已。如 ...

太感谢,我在编程这方面是新手,刚刚开始学习,周围没有人可以请教!谢谢帮忙,真的!
迷茫在知识的海洋里,需要你的指导。thankyou
25楼2009-11-19 23:09:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tpp001 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 极限拉扯,如何抉择 +11 Isak0320 2026-10-12 15/750 2026-10-14 21:55 by 猫鱼不是鱼
[基金申请] 申请科研项目纯靠实力能成功吗? 200+5 David1982 2026-10-13 8/400 2026-10-14 21:38 by lhw_GPA4.0
[硕博家园] 中科院海洋所招收海洋材料相关领域博士研究生及研究助理 +3 sujiner 2026-10-08 4/200 2026-10-14 20:40 by qicaiyun
[职场人生] 40+中年人失业后,还能找到好工作吗? +3 xqy2009 2026-10-13 3/150 2026-10-14 20:17 by 43358052
[论文投稿] 二审4个多月了还是Awaiting Reviewer Scores 10+3 纳斯达克ML 2026-10-11 4/200 2026-10-14 17:30 by babero
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +8 wangyl_123 2026-10-10 13/650 2026-10-14 15:12 by zuesli
[教师之家] 课题组会帮你通过考核么? +4 好运来~9527 2026-10-10 7/350 2026-10-13 08:41 by xli1984
[基金申请] 入职后第一次管课题组的专利缴费,对账才发现官费比别人多掏了一倍 +6 13108017953 2026-10-08 6/300 2026-10-12 20:07 by w3w3y3
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:34 by XQNyDCa1Tk5n
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:26 by XQNyDCa1Tk5n
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 22:26 by XQNyDCa1Tk5n
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 14:25 by VOMexwnDzOFZ
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 (EPI+-1)(金币-50) +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 14:05 by VOMexwnDzOFZ
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:51 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:54 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:34 by VOMexwnDzOFZ
[考博] 招收博士生一名 +3 mandolin 2026-10-10 3/150 2026-10-11 10:21 by 不是山谷!
[有机交流] 各位大佬,路线设计求助 +6 zapen 2026-10-08 8/400 2026-10-10 15:59 by zapen
[有机交流] 我应该选哪条合成路线让实验成功率高一些? +5 jing816y 2026-10-08 9/450 2026-10-10 09:05 by zapen
信息提示
请填处理意见