24小时热门版块排行榜    

查看: 2649  |  回复: 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 snoopyzhao at 2011-04-24 15:02:25:
我是指 5 楼的,很明显很显的语法错误……

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

人生自古多险阻,勤者自得天酬助。试问否泰何所依,枯藤老枝待新抽。临渊踌躇终迈步,振翅鹏起云霄冲。似是前程甚堪忧,他日振臂揽苍穹。
10楼2011-04-24 15:32:13
已阅   回复此楼   关注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的回帖

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的回帖

snoopyzhao

至尊木虫 (职业作家)


小木虫(金币+0.5):给个红包,谢谢回帖
能不能贴一个不带表情的代码,根本就看不出来原来是咋写的……
4楼2011-04-24 11:08:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[文学芳草园] 梦想 +5 myrtle 2026-08-26 5/250 2026-08-31 14:40 by hahaboy
[基金申请] 中青基了要发朋友圈吗? +7 349506619 2026-08-28 7/350 2026-08-31 13:39 by 冼亮淀粉酶
[基金申请] 国社科又开始会评了,不知道这次命运如何 +6 雨打竹帘 2026-08-30 10/500 2026-08-31 09:29 by huixian257
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[基金申请] 有没有仍没收到信息的 +7 德尚中行 2026-08-27 8/400 2026-08-30 20:52 by purplejack
[考博] 找导师 +6 yuanjiabao 2026-08-29 7/350 2026-08-30 14:40 by 生科新手
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +6 gdd2018 2026-08-28 11/550 2026-08-30 08:58 by 超级无敌华子
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +12 Kittylucky 2026-08-27 13/650 2026-08-29 00:04 by superceng
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 基金未中,这种答复是模板吗? +5 zhaosm1982 2026-08-27 6/300 2026-08-27 16:00 by lfy8008
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
信息提示
请填处理意见