[問題] 副程式問題

看板Fortran作者 (米漢堡)時間10年前 (2014/05/15 18:12), 10年前編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
最近在學習寫副程式遇到問題 麻煩各位幫忙檢查,謝謝 原始碼如下: 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

05/15 19:03, , 1F
If(*) then end if
05/15 19:03, 1F

05/20 15:02, , 2F
還是不行耶,是不是每行長度有上限?太長想換行要怎麼辦
05/20 15:02, 2F

05/21 00:16, , 3F
你的"還是不行耶"是怎麼個改法與怎麼個不行法XD
05/21 00:16, 3F

05/21 00:17, , 4F
另外錯誤訊息也該一併貼上來唷
05/21 00:17, 4F
修改如下: 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

05/22 11:59, , 5F
程式碼太長囉,用&符號換行接著寫吧~
05/22 11:59, 5F
文章代碼(AID): #1JT9CTS4 (Fortran)