|  | 
 
| 程序可以迭代200次,但是子程序运行一次后,程序就停止了,subroutine SWMS_3D_sub(xm,ym,zm,xstar,ystar,zstar,px,py,pz,funcval)一共10个参数,其中前九个参数是主程序传递来的变量,第十个参数是目标函数funcval。subroutine SetSnk(NumNP,NMat,MatNum,hNew,TPot,Sink,P0,POptm,P2H,P2L,P3,r2H,r2L,xm,ym,zm,xstar,ystar,zstar,px,py,pz,x,y,z,Beta,Length)是SWMS_3D_sub的子程序。 subroutine SWMS_3D_sub运行正常,结果没有问题,但是主程序却只能运行一次,并没有进行迭代。
 
 [Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode       if (abs(t-tMax).le.0.001*dt) then
         call getdat(i,i,iday)
         call gettim(ihours,mins,isecs,i)
         Rtime2=iday*24.*60.*60.+ihours*60.*60.+mins*60.+isecs
         write(70,*)
         write(70,*) 'Real time [sec]',Rtime2-RTime1
         write( *,*) 'Real time [sec]',Rtime2-RTime1
         stop
       end if在SWMS_3D有一段代码如上所示,运行到这个stop处,子程序就停止运行了,而我需要计算的funcval,
 funcval=sfenzi/sqrt(sfenmu1*sfenmu2)
 在stop的后面,跳出当前语句,并进行下面代码的运行,应该是用什么?子程序貌似不应用stop?
 
 | 
 |