24小时热门版块排行榜    

查看: 2633  |  回复: 14
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xk6891

至尊木虫 (著名写手)

[交流] 【求助】读文本数据出现段错误[fortran] 已有2人参与

写的一段程序出现“段错误”,还请高手指点
code:
program main
implicit none
real a,b,c,a1,b1,c1,alpha,beta,gamma
character(len=10) today,now
integer i,j
character ele(768)
real pos1(256,3)
real pos2(256,3)
real ala(256,3)
character(len=20) rub1,rub2,rub3,rub4
pos1=1
pos2=1
ala=1


open(17,file='inname.dat')
read(17,"(A6,3(3XF6.3),3(2XF5.2),A16)"rub1,a1,b1,c1,alpha,beta,gamma,rub2

do i=1,768
read(17,"(A30,3(F8.3),A23,A1)"rub3,(pos1(i,j),j=1,3),rub4,ele(i)
ala(i,1)=pos1(i,1)/a1
ala(i,2)=pos1(i,2)/b1
ala(i,3)=pos1(i,3)/c1
end do
close(17)

open(23,file='OH_diople.car')
write(23,"(A17)""!BIOSYM archive 3"
write(23,"(A6)""PBC=ON"
write(23,"(A35)""Materials Studio Generated CAR File"

CALL DATE_AND_TIME(date=today,time=now)
write(23,"(A5,2XA8,2XA10)""!DATE",today,now

write(*,*)"Input the value of lattice parameters:"
write(*,*)"a="
read(*,*)a
write(*,*)"b="
read(*,*)b
write(*,*)"c="
read(*,*)c
write(23,"(A3,6(2XF8.4),1XA4)""PBC",a,b,c,alpha,beta,gamma,"(P1)"

do i=1,768
if(mod(i,3)/=0)then
pos2(i,1)=ala(i,1)*a
pos2(i,2)=ala(i,2)*b
pos2(i,3)=ala(i,3)*c
if(mod(i,2)/=0)then
write(23,"(A1,3(F15.9),1XA4,1XI1,7XA1,A1)"ele(i),pos2(i,j),"XXXX",1,ele(i),"+"
else
write(23,"(A1,3(F15.9),1XA4,1XI1,7XA1,A1)"ele(i),pos2(i,j),"XXXX",1,ele(i),"-"
end if
end if
end do
write(23,"(A3)""end"
write(23,"(A3)""end"
close(23)

stop

end program
要读的文件:
CRYST1   20.700   20.700   20.700  90.00  90.00  90.00 P 1           1
ATOM      1  OH2 TIP3W   5       3.668  10.082  15.904  1.00  0.00      WT1  O
ATOM      2  H1  TIP3W   5       3.224  10.451  15.101  1.00  0.00      WT1  H
ATOM      3  H2  TIP3W   5       3.092  10.379  16.627  1.00  0.00      WT1  H
ATOM      4  OH2 TIP3W  21       5.186  16.696  12.072  1.00  0.00      WT1  O
ATOM      5  H1  TIP3W  21       6.083  16.979  11.816  1.00  0.00      WT1  H
ATOM      6  H2  TIP3W  21       5.337  15.832  12.490  1.00  0.00      WT1  H
ATOM      7  OH2 TIP3W  44       3.786  16.318   1.310  1.00  0.00      WT1  O
ATOM      8  H1  TIP3W  44       3.781  15.388   1.196  1.00  0.00      WT1  H
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………
只有一个提示“段错误”,一天了没找到错误原因
回复此楼
人生自古多险阻,勤者自得天酬助。试问否泰何所依,枯藤老枝待新抽。临渊踌躇终迈步,振翅鹏起云霄冲。似是前程甚堪忧,他日振臂揽苍穹。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xk6891

至尊木虫 (著名写手)

引用回帖:
Originally posted by whl2dxl at 2011-04-24 01:09:04:
您好,你的这几行是给变量付初值吗?
pos1=1
pos2=1
ala=1
如果是的话,这个程序就有点问题了
因为上面几个变量你定义的都是数组,要给数组付初值的话,就要把所有的都付一遍 ,  例如:
do  i=1,256
do   ...

pos1=1
pos2=1
ala=1
恩,还好,我记得这个格式在哪里看过,好像是彭的fortran95中,是通过的程序
人生自古多险阻,勤者自得天酬助。试问否泰何所依,枯藤老枝待新抽。临渊踌躇终迈步,振翅鹏起云霄冲。似是前程甚堪忧,他日振臂揽苍穹。
3楼2011-04-24 09:20:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

whl2dxl

木虫 (小有名气)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+2): 谢谢回复! 2011-04-24 18:00:46
您好,你的这几行是给变量付初值吗?
pos1=1
pos2=1
ala=1
如果是的话,这个程序就有点问题了
因为上面几个变量你定义的都是数组,要给数组付初值的话,就要把所有的都付一遍 ,  例如:
do  i=1,256
do  j=1,3
pos1(i,j)=1
pos2(i,j)=1
ala(i,j)=1
end do
end do
还有, 你读入文件时的格式都正确吗?

[ Last edited by whl2dxl on 2011-4-24 at 01:10 ]
2楼2011-04-24 01:09:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


小木虫(金币+0.5):给个红包,谢谢回帖
能不能贴一个不带表情的代码,根本就看不出来原来是咋写的……
4楼2011-04-24 11:08:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xk6891

至尊木虫 (著名写手)

引用回帖:
Originally posted by snoopyzhao at 2011-04-24 11:08:37:
能不能贴一个不带表情的代码,根本就看不出来原来是咋写的……

CODE:
program main
implicit none
real a,b,c,a1,b1,c1,alpha,beta,gamma
character(len=10) today,now
integer i,j
character ele(768)
real pos1(256,3)
real pos2(256,3)
real ala(256,3)
character(len=20) rub1,rub2,rub3,rub4
pos1=1
pos2=1
ala=1


open(17,file='inname.dat')
read(17,"(A6,3(3XF6.3),3(2XF5.2),A16)"rub1,a1,b1,c1,alpha,beta,gamma,rub2

do i=1,768
read(17,"(A30,3(F8.3),A23,A1)"rub3,(pos1(i,j),j=1,3),rub4,ele(i)
ala(i,1)=pos1(i,1)/a1
ala(i,2)=pos1(i,2)/b1
ala(i,3)=pos1(i,3)/c1
end do
close(17)

open(23,file='OH_diople.car')
write(23,"(A17)""!BIOSYM archive 3"
write(23,"(A6)""PBC=ON"
write(23,"(A35)""Materials Studio Generated CAR File"

CALL DATE_AND_TIME(date=today,time=now)
write(23,"(A5,2XA8,2XA10)""!DATE",today,now

write(*,*)"Input the value of lattice parameters:"
write(*,*)"a="
read(*,*)a
write(*,*)"b="
read(*,*)b
write(*,*)"c="
read(*,*)c
write(23,"(A3,6(2XF8.4),1XA4)""PBC",a,b,c,alpha,beta,gamma,"(P1)"

do i=1,768
if(mod(i,3)/=0)then
pos2(i,1)=ala(i,1)*a
pos2(i,2)=ala(i,2)*b
pos2(i,3)=ala(i,3)*c
if(mod(i,2)/=0)then
write(23,"(A1,3(F15.9),1XA4,1XI1,7XA1,A1)"ele(i),pos2(i,j),"XXXX",1,ele(i),"+"
else
write(23,"(A1,3(F15.9),1XA4,1XI1,7XA1,A1)"ele(i),pos2(i,j),"XXXX",1,ele(i),"-"
end if
end if
end do
write(23,"(A3)""end"
write(23,"(A3)""end"
close(23)

stop

end program

人生自古多险阻,勤者自得天酬助。试问否泰何所依,枯藤老枝待新抽。临渊踌躇终迈步,振翅鹏起云霄冲。似是前程甚堪忧,他日振臂揽苍穹。
5楼2011-04-24 12:42:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 范进中举一文的中心思想 +8 炎黄贵胄 2026-08-22 9/450 2026-08-26 07:47 by WASM
[基金申请] 2026国自然函评费到账 +21 羊腰板 2026-08-21 24/1200 2026-08-26 07:20 by finnigan
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 Qj98d49dHFb9 2026-08-25 5/250 2026-08-26 04:57 by cNXvBfCpiZOM
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 7K1CJE38xLG4 2026-08-25 4/200 2026-08-26 02:04 by cNXvBfCpiZOM
[基金申请] 今天务委会开完了,明天出结果吗 +18 angus9576 2026-08-25 22/1100 2026-08-26 00:41 by merchancy
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 有没有大神帮我看看基金代码 28+4 1234567wang 2026-08-24 10/500 2026-08-25 19:15 by lfy8008
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +17 医学老男孩 2026-08-20 22/1100 2026-08-25 15:36 by 医学老男孩
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
[基金申请] 人气不行了 +11 fansofjerry 2026-08-21 11/550 2026-08-25 11:04 by 孤独的英雄6
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +3 苏东坡二世 2026-08-23 3/150 2026-08-25 10:35 by shisan1313
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +5 process2012 2026-08-23 7/350 2026-08-25 09:42 by huixian257
[基金申请] 今天基金会出结果吗?20260819 +17 kkkl_v 2026-08-19 18/900 2026-08-25 09:41 by windflowerwy
[基金申请] 我面上完蛋了 +13 且听虎啸 2026-08-20 14/700 2026-08-25 09:10 by mrkang
[基金申请] 只有每年这种时候来逛逛小木虫 +25 yaoyewhu2008 2026-08-20 27/1350 2026-08-25 08:01 by Equinoxhua
[基金申请] 今天放榜吗? +15 布布和一二 2026-08-19 16/800 2026-08-23 09:55 by 张春生
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
信息提示
请填处理意见