作者MiyaKami (米汉堡)
看板Fortran
标题[问题] 副程式问题
时间Thu May 15 18:12:42 2014
最近在学习写副程式遇到问题
麻烦各位帮忙检查,谢谢
原始码如下:
subroutine forcem(press,th1,th2,nn,n)
implicit real*8 (a-h, o-z)
dimension th1(3),th2(3),n(7)
include "C:\MSC.Software\Marc\2013.1.0\marc2013.1\common\creeps"
b=1.0d0
v=sqrt(2.0d0)
distan=v*(cptim+timinc)
xc=0.5d0*sqrt(2.0d0)*distan
yc=0.5d0*sqrt(2.0d0)*distan
xmin=xc-b/2.0d0
xmax=xc+b/2.0d0
ymin=yc-b/2.0d0
ymax=yc+b/2.0d0
press=0.0d0
if(th1(1).le.xmax.and.th1(1).ge.xmin.and.
th1(2).le.ymax.and.th1(2).ge.ymin)
^
出问题的地方
press=2.0d0
th2(1)=0.0d0
th2(2)=0.0d0
th2(3)=-1.0d0
return
end
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.5.18
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Fortran/M.1400148765.A.704.html
1F:推 sin55688:If(*) then end if 05/15 19:03
2F:→ MiyaKami:还是不行耶,是不是每行长度有上限?太长想换行要怎麽办 05/20 15:02
3F:→ Cypresslin:你的"还是不行耶"是怎麽个改法与怎麽个不行法XD 05/21 00:16
4F:→ Cypresslin:另外错误讯息也该一并贴上来唷 05/21 00:17
修改如下:
subroutine forcem(press,th1,th2,nn,n)
implicit real*8 (a-h, o-z)
dimension th1(3),th2(3),n(7)
include "C:\MSC.Software\Marc\2013.1.0\marc2013.1\common\creeps"
b=1.0d0
v=sqrt(2.0d0)
distan=v*(cptim+timinc)
xc=0.5d0*sqrt(2.0d0)*distan
yc=0.5d0*sqrt(2.0d0)*distan
xmin=xc-b/2.0d0
xmax=xc+b/2.0d0
ymin=yc-b/2.0d0
ymax=yc+b/2.0d0
press=0.0d0
if(th1(1).le.xmax.and.th1(1).ge.xmin.and.th1(2).
le.ymax.and.th1(2).ge.ymin) then (这行是一串打完)
^
错误点是标在这里
press=2.0d0
th2(1)=0.0d0
th2(2)=0.0d0
th2(3)=-1.0d0
end if
return
end
完整错误讯息:
if(th1(1).le.xmax.and.th1(1).ge.xmin.and.th1(2).le.ymax.and.th1(2
------------------------------------------------------------------------^
D:\marc_ex\0001\0001.f(23): error #6317: An ENDIF occurred without a
corresponding IF THEN or ELSE statement.
end if
-------^
compilation aborted for D:\marc_ex\0001\0001.f (code 1)
compile failed for C:\Users\Q66\0001.f
Marc 2013.1.0 Exit number 3
以上,再麻烦各位高手
※ 编辑: MiyaKami (60.248.5.18), 05/22/2014 10:41:43
5F:→ Cypresslin:程式码太长罗,用&符号换行接着写吧~ 05/22 11:59