看板 Fortran 關於我們 聯絡資訊
最近在學習寫副程式遇到問題 麻煩各位幫忙檢查,謝謝 原始碼如下: 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://www.ptt.cc/bbs/Fortran/M.1400148765.A.704.html
sin55688:If(*) then end if 05/15 19:03
MiyaKami:還是不行耶,是不是每行長度有上限?太長想換行要怎麼辦 05/20 15:02
Cypresslin:你的"還是不行耶"是怎麼個改法與怎麼個不行法XD 05/21 00:16
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
Cypresslin:程式碼太長囉,用&符號換行接著寫吧~ 05/22 11:59