32 SUBROUTINE fxbodvp1(FXBRPM, FXBGLM, FXBLM , MVN , MCD ,
33 . SE , SV , FXBVIT, FXBACC, NME ,
34 . NMOD , ISH , DMT , FSAV , FXBFC,
39#include "implicit_f.inc"
47 INTEGER NME, NMOD, ISH, DMT, IBLO
49 . FXBRPM(*), FXBGLM(*), FXBLM(*), MVN(*), MCD(NME,*),
50 . se(*), sv(*), fxbvit(*), fxbacc(*), fsav(*),
57 . CR(6,NME), SR(6), MT(DMT,DMT), ST(DMT), ALPHA, FAC,
58 . dt05, vitn(nme+nmod), glm(nme,nme), ecin, dwdamp
69 CALL fxlink(cr , sr, dt1, dt2, fxbrpm,
77 mt(nme+ii,i)=-cr(ii,i)
78 mt(i,nme+ii)=-cr(ii,i)
88 IF (ish>0)
CALL splink(mt, st, dt1, fxbrpm, fxbvit,
100 fac=one+half*dt2*alpha
109 fxbacc(nme+ii)=fxbacc(nme+ii)-mvn(iad+ii
117 vitn(i)=fxbvit(i)+dt05*fxbacc(i)
118 fxbvit(i)=fxbvit(i)+dt12*fxbacc(i)
124 glm(i,ii)=fxbglm(iad)
125 IF (i/=ii) glm(ii,i)=glm(i,ii)
131 ecin=ecin+half*vitn(i)*glm(i,ii)*vitn(ii)
135 ecin=ecin+half*vitn(i)
136 . *mvn(iad+ii)*fxblm(ii)*vitn(nme+ii)
142 ecin=ecin+half*vitn(nme+i)
143 . *fxblm(i)*mvn(nmod*(ii-1)+i)*vitn
145 ecin=ecin+half*vitn(nme+i)*fxblm(i)*vitn(nme+i)
146 dwdamp=dwdamp+vitn(nme+i)*
147 . (fxbfc(i)+alpha*fxblm(i)*vitn(nme+i))
149 fxbedp=fxbedp+dwdamp*dt12
150 fxbrpm(11)=fxbrpm(11)+fxbedp
164 SUBROUTINE fxbodvp2(FXBRPM, FXBNOD , FXBMOD , FXBVIT , FXBACC,
165 . NME , NMOD , V , VR , A ,
166 . AR , MS , IN , NSN , IDMAST,
167 . ISH , LMOD , NSNT , IFILE , NSNI ,
168 . IRCM , PMAIN, IAD_ELEM, FR_ELEM)
172#include "implicit_f.inc"
176#include "com01_c.inc"
177#include "com04_c.inc"
178#include
"com08_c.inc"
179#include "units_c.inc"
184 INTEGER FXBNOD(*), NME, NMOD, NSN, IDMAST, ISH, LMOD, NSNT,
185 . IFILE, NSNI, IRCM, PMAIN, IAD_ELEM(2,*), FR_ELEM(*)
187 . FXBRPM(*), FXBMOD(*), FXBVIT(*), FXBACC(*), V(3,*),
188 . VR(3,*), A(3,*), AR(3,*), MS(*), IN(*)
192 INTEGER I, IAD, II, N, J, IFAC(NUMNOD), JJ
194 . spin(3), r12(9), vt(3,nsn), vtr(3,nsn), vmod(nsnt*6),
195 . usdt, ecbidt, ecbidr, vv(6), dt05, vx, vy, vz, vrx, vry,
200 CALL fxspin(fxbrpm, fxbvit, spin, r12, dt2)
219 vmod(ii)=fxbmod(iad+ii)
221 IF (ifile==1.AND.nsn>nsni)
THEN
225 READ(ifxm,rec=ircm) (vv(j),j=1,6)
234 vt(1,ii)=vt(1,ii)+fxbvit(i)*vmod(iad+1)
235 vt(2,ii)=vt(2,ii)+fxbvit(i)*vmod(iad+2)
236 vt(3,ii)=vt(3,ii)+fxbvit(i)*vmod(iad+3)
244 vmod(ii)=fxbmod(iad+ii)
246 IF (ifile==1.AND.nsn>nsni)
THEN
250 READ(ifxm,rec=ircm) (vv(j),j=1,6)
259 vtr(1,ii)=vtr(1,ii)+fxbvit(i)*vmod(iad+4)
260 vtr(2,ii)=vtr(2,ii)+fxbvit(i)*vmod(iad+5)
261 vtr(3,ii)=vtr(3,ii)+fxbvit(i)*vmod(iad+6)
271 vmod(ii)=fxbmod(iad+ii)
273 IF (ifile==1.AND.nsn>nsni)
THEN
277 READ(ifxm,rec=ircm) (vv(j),j=1,6)
286 vt(1,ii)=vt(1,ii)+fxbvit(nme+i)*
287 . (r12(1)*vmod(iad+1)+r12(2)*vmod(iad+2)+
288 . r12(3)*vmod(iad+3))
289 vt(2,ii)=vt(2,ii)+fxbvit(nme+i)*
290 . (r12(4)*vmod(iad+1)+r12(5)*vmod(iad+2)+
291 . r12(6)*vmod(iad+3))
292 vt(3,ii)=vt(3,ii)+fxbvit(nme+i)*
293 . (r12(7)*vmod(iad+1)+r12(8)*vmod(iad+2)+
294 . r12(9)*vmod(iad+3))
295 vtr(1,ii)=vtr(1,ii)+fxbvit(nme+i)*
296 . (r12(1)*vmod(iad+4)+r12(2)*vmod(iad+5)+
297 . r12(3)*vmod(iad+6))
298 vtr(2,ii)=vtr(2,ii)+fxbvit(nme+i)*
299 . (r12(4)*vmod(iad+4)+r12(5)*vmod(iad+5)+
300 . r12(6)*vmod(iad+6))
301 vtr(3,ii)=vtr(3,ii)+fxbvit(nme+i)*
302 . (r12(7)*vmod(iad+4)+r12(8)*vmod(iad+5)+
303 . r12(9)*vmod(iad+6))
318 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
327 a(1,n)=(vt(1,i)-v(1,n))*usdt
328 a(2,n)=(vt(2,i)-v(2,n))*usdt
329 a(3,n)=(vt(3,i)-v(3,n))*usdt
330 ar(1,n)=(vtr(1,i)-vr(1,n))*usdt
331 ar(2,n)=(vtr(2,i)-vr(2,n))*usdt
332 ar(3,n)=(vtr(3,i)-vr(3,n))*usdt
333 vx=v(1,n)+dt05*a(1,n)
334 vy=v(2,n)+dt05*a(2,n)
335 vz=v(3,n)+dt05*a(3,n)
337 vry=vr(2,n)+dt05*ar(2,n)
338 vrz=vr(3,n)+dt05*ar(3,n)
339 ecbidt=ecbidt+half*ms(n)*(vx*vx+vy*vy+vz*vz)/ifac(n)
340 ecbidr=ecbidr+half*in(n)*(vrx*vrx+vry*vry+vrz*vrz)/ifac(n)
356 ecbidt=ecbidt+half*ms(n)*(vx*vx+vy*vy+vz*vz)/ifac(n)
357 ecbidr=ecbidr+half*in(n)*(vrx*vrx+vry*vry+vrz*vrz)/ifac(n)
359 IF (pmain/=ispmd) fxbrpm(12)=zero
360 fxbrpm(12)=fxbrpm(12)-ecbidt-ecbidr
365 a(1,idmast)=fxbacc(10)
366 a(2,idmast)=fxbacc(11)
367 a(3,idmast)=fxbacc(12)
368 ar(1,idmast)=(spin(1)-vr(1,idmast))*usdt
369 ar(2,idmast)=(spin(2)-vr(2,idmast))*usdt
370 ar(3,idmast)=(spin(3)-vr(3,idmast))*usdt
subroutine fxbodvp2(fxbrpm, fxbnod, fxbmod, fxbvit, fxbacc, nme, nmod, v, vr, a, ar, ms, in, nsn, idmast, ish, lmod, nsnt, ifile, nsni, ircm, pmain, iad_elem, fr_elem)