24小时热门版块排行榜    

查看: 1232  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +4 dheqf6rz6n 2026-06-27 9/450 2026-06-28 11:07 by jjz01vuwzk
[考研] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +3 dheqf6rz6n 2026-06-26 9/450 2026-06-28 10:45 by jjz01vuwzk
[考研] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +3 7s8du2bt8y 2026-06-26 7/350 2026-06-28 10:08 by jjz01vuwzk
[公派出国] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +3 dheqf6rz6n 2026-06-27 4/200 2026-06-28 07:12 by jjz01vuwzk
[公派出国] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +3 dheqf6rz6n 2026-06-27 4/200 2026-06-28 06:52 by jjz01vuwzk
[论文投稿] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +3 dheqf6rz6n 2026-06-27 5/250 2026-06-28 06:32 by jjz01vuwzk
[教师之家] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 (EPI+-1)(金币-50) +3 yig756cogn 2026-06-26 5/250 2026-06-28 06:07 by jjz01vuwzk
[找工作] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +3 7s8du2bt8y 2026-06-26 3/150 2026-06-28 05:47 by jjz01vuwzk
[硕博家园] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +3 9g0rmhtq5w 2026-06-27 4/200 2026-06-28 03:29 by jjz01vuwzk
[硕博家园] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +4 dheqf6rz6n 2026-06-27 5/250 2026-06-28 03:08 by jjz01vuwzk
[博后之家] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +4 dheqf6rz6n 2026-06-27 4/200 2026-06-28 03:06 by jjz01vuwzk
[硕博家园] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +3 7s8du2bt8y 2026-06-26 6/300 2026-06-28 01:49 by jjz01vuwzk
[考研] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +4 7s8du2bt8y 2026-06-26 8/400 2026-06-28 01:29 by jjz01vuwzk
[考博] 27年博士招生信息 +5 rvnc 2026-06-26 8/400 2026-06-27 18:32 by rvnc
[考博] 售T0P一区SCI文章,我:8O5.51.O.54,科目齐全,可+急 +3 7s8du2bt8y 2026-06-26 5/250 2026-06-27 17:07 by ztgu5ulw9z
[有机交流] 求助!! 5+3 我啥都没看见 2026-06-24 4/200 2026-06-26 09:35 by 951037019
[有机交流] 反应求助 10+3 slz_1986 2026-06-24 6/300 2026-06-25 21:38 by nBu锂
[文学芳草园] 看《给阿ma的情书》有感 +6 myrtle 2026-06-21 10/500 2026-06-25 17:54 by myrtle
[基金申请] 2026年WR青拔进展 +5 chs564851482 2026-06-24 7/350 2026-06-24 18:15 by chs564851482
[基金申请] 评委有多少概率知道其他专家手中有哪些人的本子? +6 huitong441 2026-06-22 6/300 2026-06-23 15:45 by 新城子曾
信息提示
请填处理意见