33 2 FSAV ,LJOINT,MS,IN,IADCJ,
34 3 FR_CJ ,CJWORK,TAG_LNK_SMS,DIAG_SMS,ITASK)
38#include "implicit_f.inc"
42 INTEGER LJOINT(*), FR_CJ(*), IADCJ(NSPMD+1,*),
43 . TAG_LNK_SMS(*), ITASK
45 . a(3,numnod), ar(3,numnod), v(3,numnod), vr(3,numnod), x(3,numnod), fsav(nthvki,*),
46 . ms(*), in(*), cjwork(18,*), diag_sms(*)
57 INTEGER K, N, NN, KIND(NJOINT), ICSIZE
70 IF(tag_lnk_sms(n)==0) cycle
72 nn=ninter+nrwall+nrbody+nsect+n
73 CALL sms_telesc_0(a,ar,v,vr,x,fsav(1,nn),ljoint(k),ms,in,
74 . cjwork(1,n),diag_sms)
88 . icsize=icsize+iadcj(nspmd+1,n)-iadcj(1,n)
91 2 iadcj,icsize,tag_lnk_sms)
107 . CJWORK,IDOWN,TAG_LNK_SMS,ITASK)
111#include "implicit_f.inc"
115 INTEGER LJOINT(*), FR_CJ(*), IADCJ(NSPMD+1,*), IDOWN,
116 . TAG_LNK_SMS(*), ITASK
119 . a(3,*), ms(*), cjwork(18,*)
123#include "com01_c.inc"
124#include "com04_c.inc"
129 INTEGER K, N, KIND(NJOINT), ICSIZE
142 IF(tag_lnk_sms(n)==0) cycle
157 IF(tag_lnk_sms(n)/=0)
158 . icsize=icsize+iadcj(nspmd+1,n)-iadcj(1,n)
160 CALL spmd_sd_cj_1(a,ljoint,fr_cj,iadcj,icsize,tag_lnk_sms)
176 2 LJOINT,MS,IN,IADCJ,FR_CJ,
177 3 CJWORK,TAG_LNK_SMS,ITASK)
181#include "implicit_f.inc"
185 INTEGER LJOINT(*), FR_CJ(*), IADCJ(NSPMD+1,*),
186 . TAG_LNK_SMS(*), ITASK
189 . A(3,*), (3,*), V(3,*), VR(3,*), X(3,*),
190 . ms(*), in(*), cjwork(18,*)
194#include "com01_c.inc"
195#include "com04_c.inc"
200 INTEGER K, N, KIND(NJOINT), ICSIZE
213 IF(tag_lnk_sms(n)==0) cycle
229 IF(tag_lnk_sms(n)/=0)
230 . icsize=icsize+iadcj(nspmd+1,n)-iadcj(1,n)
232 CALL spmd_sd_cj_1(a,ljoint,fr_cj,iadcj,icsize,tag_lnk_sms)
248#include "implicit_f.inc"
252 INTEGER NOD(0:*), IFLAG
255 . A(3,*), AR(3,*), V(3,*), VR(3,*), X(3,*), FS(*), MS(*),
256 . IN(*), CJWORK(*), DIAG_SMS(*)
261#include "com08_c.inc"
265 INTEGER NSN, NA, NB, I, N
268 . MASSE, INER, N1, N2, N3, S, AX, AY, AZ, AXX, AYY, AZZ, VX,
269 . VY, VZ, VXX, VYY, VZZ, XCDG, YCDG, ZCDG, XX, YY, ZZ, RR, A0,
270 . DMASSE, VG(3), USDT, V0, DT05
281 s=sqrt(n1**2+n2**2+n3**2
306 xcdg=xcdg+x(1,n)*ms(n)
307 ycdg=ycdg+x(2,n)*ms(n)
308 zcdg=zcdg+x(3,n)*ms(n)
331 iner=iner+rr**2*diag_sms(n)+in(n)
340 axx= axx+ar(1,n)+yy*a(3,n)-zz*a(2,n)
341 ayy= ayy+ar(2,n)+zz*a(1,n)-xx*a(3,n)
342 azz= azz+ar(3,n)+xx*a(2,n)-yy*a(1,n)
350 a0=n1*axx+n2*ayy+n3*azz
418 xx=x(1,n)-xcdg-(v(1,n)-vx)*dt05
419 yy=x(2,n)-ycdg-(v(2,n)-vy)*dt05
420 zz=x(3,n)-zcdg-(v(3,n)-vz)*dt05
427 vxx= vxx+vr(1,n)*in(n)+yy*v(3,n)*ms(n)-zz*v(2,n)*ms(n)
428 vyy= vyy+vr(2,n)*in(n)+zz*v(1,n)*ms(n)-xx*v(3,n)*ms(n)
429 vzz= vzz+vr(3,n)*in(n)+xx*v(2,n)*ms(n)-yy*v(1,n)*ms(n)
433 a0=n1*vxx+n2*vyy+n3*vzz
448 dmasse= dmasse+diag_sms(n)
472 a0=n1*ar(1,n)+n2*ar(2,n)+n3*ar(3,n)
473 v0=n1*vr(1,n)+n2*vr(2,n)+n3*vr(3,n)
474 ar(1,n)= in(n)*(vg(1)-(vr(1,n)-n1*v0)) * usdt + n1*a0
475 ar(2,n)= in(n)*(vg(2)-(vr(2,n)-n2*v0)) * usdt + n2*a0
476 ar(3,n)= in(n)*(vg(3)-(vr(3,n)-n3*v0)) * usdt + n3*a0
491#include "implicit_f.inc"
495 INTEGER NOD(0:*), IDOWN
496 my_real A(3,*), DMS(*), CJWORK(*)
500 INTEGER NSN, NA, , I, N
501 my_real ax, ay, az, a0, n1, n2, n3, dmasse
538 a0=n1*a(1,n)+n2*a(2,n)+n3*a(3,n)
544 a0=n1*a(1,n)+n2*a(2,n)+n3*a(3,n)
558 a0=n1*a(1,n)+n2*a(2,n)+n3*a(3,n)
559 ax= dms(n)*(a(1,n)-n1*a0)
560 ay= dms(n)*(a(2,n)-n2*a0)
561 az= dms(n)*(a(3,n)-n3*a0)
563 IF (dmasse>zero)
THEN
572 a0=n1*a(1,n)+n2*a(2,n)+n3*a(3,n)
592#include "implicit_f.inc"
597 my_real A(3,*), AR(3,*), V(3,*), VR(3,*), X(3,*), MS(*),IN(*), CJWORK(*)
601#include
"com08_c.inc"
605 INTEGER NSN, NA, NB, I, N
607 . N1, N2, N3, AX, AY, AZ, AXX, AYY, AZZ,
608 . XCDG, YCDG, ZCDG, XX, YY, ZZ, RR, A0,
609 . VX, VY, VZ, VXX, VYY, VZZ, V0,
610 . VG(3), V1X2, V2X1, V2X3, V3X2, V3X1, V1X3, USDT, VX1, VX2, VX3
643 a0=n1*a(1,n)+n2*a(2,n)+n3*a(3,n)
675 a0=n1*a(1,n)+n2*a(2,n)+n3*a(3,n)
676 v0=n1*v(1,n)+n2*v(2,n)+n3*v(3,n)
678 . +(vx+vx1+half*dt2*(vg(2)*vx3-vg(3)*vx2)-(v(1,n)-n1*v0))*usdt
681 . +(vy+vx2+half*dt2*(vg(3)*vx1-vg(1)*vx3)-(v(2,n)-n2*v0))*usdt
684 . +(vz+vx3+half*dt2*(vg(1)*vx2-vg(2)*vx1)-(v(3,n)-n3*v0))*usdt
subroutine sms_cjoint_0(a, ar, v, vr, x, fsav, ljoint, ms, in, iadcj, fr_cj, cjwork, tag_lnk_sms, diag_sms, itask)
subroutine sms_cjoint_2(a, ar, v, vr, x, ljoint, ms, in, iadcj, fr_cj, cjwork, tag_lnk_sms, itask)