Subject | : Re: SAD Update. V1.0.10.5a. WakeFunction in TrackParticles. |
Date | : 2009/08/20(Thu) 11:03:04 |
Contributor | : Akio Morita |
1.0.10.4a - 1.0.10.5a間の変更で、src/tcav.fでループ内の定数項を ループ外に括り出す refactoringらしきもの(Rev. 1.25 - 1.26)が 行われています。この変更では、変数fw0に拘束されている値は、 e*pbunch*anbunch/amass/np0ですが、ループ定数括り出し最適化で あるなら、e*pbunch*anbunch/amass/p0であるべきだと思われます (np0は、COMMONブロック内にある粒子数を示す変数) commitlogに変更の意図(refactoring or bug-fix)が記述されていない& コンポーネントレベルのRegression testが無いために断言出来ませんが、 enbugした可能性が高いと思います。 Index: src/tcav.f =================================================================== RCS file: /SAD/cvsroot/oldsad/src/tcav.f,v retrieving revision 1.25 retrieving revision 1.26 diff -d -u -r1.25 -r1.26 --- src/tcav.f12 Jul 2009 02:38:01 -00001.25 +++ src/tcav.f13 Aug 2009 00:25:01 -00001.26 @@ -16,7 +16,7 @@ $ v20a,v11a,v02a,phis,r,wl,r1,ws1,we,wsn,phic, $ dphis,offset,offset1,tlim,sv,a,dpz,al1,h2,p2, $ dp2,pr2,dvn,dzn,dp1r,p1r,p1,h1,dp2r,p2r,av,dpx,fw, - $ alx,dpepe,xi,pxi, + $ alx,dpepe,xi,pxi,fw0, $ asinh,t,ph,dh,dpr,dpy,dp,dp1,pr1,pe,vcorr logical*4 fringe if(harm .eq. 0.d0)then @@ -94,6 +94,7 @@ call tcavfrin(np,x,px,y,py,z,g,dv,al,v,w,p0,h0, $ dphis,offset) endif + fw0=(e*pbunch*anbunch/amass)/np0 sv=0.d0 do 110 n=1,ndiv wsn=ws(n) @@ -155,7 +156,7 @@ z(i)=-t*p2r*p0/h2-dzn 20 continue if(lwake .or. twake)then - fw=e*pbunch*anbunch/p0/amass*wsn + fw=fw0*wsn call txwake(np,x,px,y,py,z,g,dv,int(anbunch), $ fw,lwl,wakel,lwt,waket,p0,h0,itab,izs,n .eq. 1) endif