24小时热门版块排行榜    

查看: 2704  |  回复: 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的回帖

snoopyzhao

至尊木虫 (职业作家)

★
小木虫(金币+0.5):给个红包,谢谢回帖
能不能贴一个不带表情的代码,根本就看不出来原来是咋写的……
4楼2011-04-24 11:08:37
已阅   回复此楼   关注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的回帖

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的回帖
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 22:11 by XQNyDCa1Tk5n
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:06 by XQNyDCa1Tk5n
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:06 by XQNyDCa1Tk5n
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +3 wangyl_123 2026-10-10 6/300 2026-10-11 15:04 by Abin0406
[教师之家] 售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一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 14:13 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.5.5.1.O.54,科目齐全,可+急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:45 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文章,我:8.O55.1.O.54,科目全,可十急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:53 by VOMexwnDzOFZ
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 10:53 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 不是山谷!
[教师之家] 课题组会帮你通过考核么? +3 好运来~9527 2026-10-10 5/250 2026-10-11 09:00 by 好运来~9527
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 4/200 2026-10-11 03:14 by M0zrYVSAnxpE
[有机交流] 各位大佬,路线设计求助 +6 zapen 2026-10-08 8/400 2026-10-10 15:59 by zapen
[基金申请] 入职后第一次管课题组的专利缴费,对账才发现官费比别人多掏了一倍 +5 13108017953 2026-10-08 5/250 2026-10-10 11:15 by wdwd123
[有机交流] 我应该选哪条合成路线让实验成功率高一些? +5 jing816y 2026-10-08 9/450 2026-10-10 09:05 by zapen
信息提示
请填处理意见