30 SUBROUTINE movfra1(XFRAME,IFRAME ,X, V ,A ,AR)
34#include "implicit_f.inc"
46 INTEGER,
intent(IN) :: IFRAME(LISKN,NUMFRAM+1)
47 my_real,
intent(INOUT) :: xframe(nxframe,numfram+1)
48 my_real,
intent(IN) :: x(3,numnod), v(3,numnod), a(3,numnod), ar(3,numnod)
52 INTEGER N, N1, N2, N3, K, IMOV, IDIR
53 my_real o(3), p(9), pp1, pp3, pp2, pold(9),
57 . xpi, cs, r, sn, rs2, drx, dry, drz, vrx, vry, vrz, dtinv
72 IF(n1+n2+n3 == 0)
THEN
74 ELSEIF (n2+n3 == 0)
THEN
76 xframe(16,n+1)=ar(1,n1)
77 xframe(17,n+1)=ar(2,n1)
78 xframe(18,n+1)=ar(3,n1)
80 xframe(28,n+1)=a(1,n1)
81 xframe(29,n+1)=a(2,n1)
82 xframe(30,n+1)=a(3,n1)
97 o(1)=x(1,n1)+dt2*(v(1,n1)+dt12*a(1,n1))
98 o(2)=x(2,n1)+dt2*(v(2,n1)+dt12*a(2,n1))
99 o(3)=x(3,n1)+dt2*(v(3,n1)+dt12*a(3,n1))
104 p(1)=x(1,n2)+dt2*(v(1,n2)+dt12*a(1,n2))-o(1)
105 p(2)=x(2,n2)+dt2*(v(2,n2)+dt12*a(2,n2))-o(2)
106 p(3)=x(3,n2)+dt2*(v(3,n2)+dt12*a(3,n2))-o(3)
107 ELSEIF (idir == 2)
THEN
108 p(4)=x(1,n2)+dt2*(v(1,n2)+dt12*a(1,n2))-o(1)
109 p(5)=x(2,n2)+dt2*(v(2,n2)+dt12*a(2,n2))-o(2)
110 p(6)=x(3,n2)+dt2*(v(3,n2)+dt12*a(3,n2))-o(3)
111 ELSEIF (idir == 3)
THEN
112 p(7)=x(1,n2)+dt2*(v(1,n2)+dt12*a(1,n2))-o(1)
113 p(8)=x(2,n2)+dt2*(v(2,n2)+dt12*a(2,n2))-o(2)
114 p(9)=x(3,n2)+dt2*(v(3,n2)+dt12*a(3,n2))-o(3)
118 p(4)=x(1,n3)+dt2*(v(1,n3)+dt12*a(1,n3))-o(1)
119 p(5)=x(2,n3)+dt2*(v(2,n3)+dt12*a(2,n3))-o(2)
120 p(6)=x(3,n3)+dt2*(v(3,n3)+dt12*a(3,n3))-o(3)
121 ELSEIF (idir == 2)
THEN
122 p(7)=x(1,n3)+dt2*(v(1,n3)+dt12*a(1,n3))-o(1)
123 p(8)=x(2,n3)+dt2*(v(2,n3)+dt12*a(2,n3))-o(2)
124 p(9)=x(3,n3)+dt2*(v(3,n3)+dt12*a(3,n3))-o(3)
125 ELSEIF (idir == 3)
THEN
126 p(1)=x(1,n3)+dt2*(v(1,n3)+dt12*a(1,n3))-o(1)
127 p(2)=x(2,n3)+dt2*(v(2,n3)+dt12*a(2,n3))-o(2)
128 p(3)=x(3,n3)+dt2*(v(3,n3)+dt12*a(3,n3))-o(3)
134 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
141 ELSEIF (idir == 2)
THEN
142 pp1=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
149 ELSEIF (idir == 3)
THEN
150 pp1=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
160 p(7)=p(2)*p(6)-p(3)*p(5)
161 p(8)=p(3)*p(4)-p(1)*p(6)
162 p(9)=p(1)*p(5)-p(2)*p(4)
163 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
164 ELSEIF (idir == 2)
THEN
165 p(1)=p(5)*p(9)-p(6)*p(8)
166 p(2)=p(6)*p(7)-p(4)*p(9)
167 p(3)=p(4)*p(8)-p(5)*p(7)
168 pp3=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
169 ELSEIF (idir == 3)
THEN
170 p(4)=p(8)*p(3)-p(9)*p(2)
171 p(5)=p(9)*p(1)-p(7)*p(3)
172 p(6)=p(7)*p(2)-p(8)*p(1)
173 pp3=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
188 p(7)=p(2)*p(6)-p(3)*p(5)
189 p(8)=p(3)*p(4)-p(1)*p(6)
190 p(9)=p(1)*p(5)-p(2)*p(4)
191 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
193 ELSEIF (idir == 2)
THEN
203 p(1)=p(5)*p(9)-p(6)*p(8)
204 p(2)=p(6)*p(7)-p(4)*p(9)
205 p(3)=p(4)*p(8)-p(5)*p(7)
206 pp3=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
208 ELSEIF (idir == 3)
THEN
218 p(4)=p(8)*p(3)-p(9)*p(2)
219 p(5)=p(9)*p(1)-p(7)*p(3)
220 p(6)=p(7)*p(2)-p(8)*p(1)
221 pp3=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
226 p(4)=p(8)*p(3)-p(9)*p(2)
227 p(5)=p(9)*p(1)-p(7)*p(3)
228 p(6)=p(7)*p(2)-p(8)*p(1)
229 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
230 ELSEIF (idir == 2)
THEN
231 p(7)=p(2)*p(6)-p(3)*p(5)
232 p(8)=p(3)*p(4)-p(1)*p(6)
233 p(9)=p(1)*p(5)-p(2)*p(4)
234 pp2=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
235 ELSEIF (idir == 3)
THEN
236 p(1)=p(5)*p(9)-p(6)*p(8)
237 p(2)=p(6)*p(7)-p(4)*p(9)
238 p(3)=p(4)*p(8)-p(5)*p(7)
239 pp2=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
242 ELSEIF (imov == 2)
THEN
244 p(1)=x(1,n3)+dt2*(v(1,n3)+dt12*a(1,n3))-o(1)
245 p(2)=x(2,n3)+dt2*(v(2,n3)+dt12*a(2,n3))-o(2)
246 p(3)=x(3,n3)+dt2*(v(3,n3)+dt12*a(3,n3))-o(3)
248 p(7)=x(1,n2)+dt2*(v(1,n2)+dt12*a(1,n2))-o(1)
249 p(8)=x(2,n2)+dt2*(v(2,n2)+dt12*a(2,n2))-o(2)
250 p(9)=x(3,n2)+dt2*(v(3,n2)+dt12*a(3,n2))-o(3)
252 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
260 p(4)=p(8)*p(3)-p(9)*p(2)
261 p(5)=p(9)*p(1)-p(7)*p(3)
262 p(6)=p(7)*p(2)-p(8)*p(1)
263 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
274 p(4)=p(8)*p(3)-p(9)*p(2)
275 p(5)=p(9)*p(1)-p(7)*p(3)
276 p(6)=p(7)*p(2)-p(8)*p(1)
277 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
280 p(1)=p(5)*p(9)-p(6)*p(8)
281 p(2)=p(6)*p(7)-p(4)*p(9)
282 p(3)=p(4)*p(8)-p(5)*p(7)
283 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
297 dr11=p(1)*pold(1)+p(4)*pold(4)+p(7)*pold(7)
298 dr21=p(1)*pold(2)+p(4)*pold(5)+p(7)*pold(8)
299 dr31=p(1)*pold(3)+p(4)*pold(6)+p(7)*pold(9)
300 dr12=p(2)*pold(1)+p(5)*pold(4)+p(8)*pold(7)
301 dr22=p(2)*pold(2)+p(5)*pold(5)+p(8)*pold(8)
302 dr32=p(2)*pold(3)+p(5)*pold(6)+p(8)*pold(9)
303 dr13=p(3)*pold(1)+p(6)*pold(4)+p(9)*pold(7)
304 dr23=p(3)*pold(2)+p(6)*pold(5)+p(9)*pold(8)
305 dr33=p(3)*pold(3)+p(6)*pold(6)+p(9)*pold(9)
307 cs=(dr11+dr22+dr33-one)*half
312 ELSEIF (cs <= -one)
THEN
313 drx=xpi*sqrt((dr11+one)*half)
314 dry=xpi*sqrt((dr22+one)*half)
315 drz=xpi*sqrt((dr33+one)*half)
316 IF (dr12 < zero .AND. dr23 < zero)
THEN
318 ELSEIF (dr23 < zero .AND. dr31 < zero)
THEN
320 ELSEIF (dr31 < zero .AND. dr12 < zero)
THEN
322 ELSEIF (dr12 < zero)
THEN
324 ELSEIF (dr23 < zero)
THEN
326 ELSEIF (dr31 < zero)
THEN
337 vrx=drx/
max(em20,dt2)
338 vry=dry/
max(em20,dt2)
339 vrz=drz/
max(em20,dt2)
342 xframe(16,n+1)=(vrx-xframe(13,n+1))*dtinv
343 xframe(17,n+1)=(vry-xframe(14,n+1))*dtinv
344 xframe(18,n+1)=(vrz-xframe(15,n+1))*dtinv
345 IF(nxframe >= 36)
THEN
346 xframe(28,n+1)=a(1,n1)
347 xframe(29,n+1)=a(2,n1)
348 xframe(30,n+1)=a(3,n1)
356 IF(nspmd > 1)
CALL spmd_rbcast(xframe,xframe,nxframe,numfram+1,0,2)
370 SUBROUTINE movfra2(XFRAME ,IFRAME ,X ,V ,VR , D)
374#include "implicit_f.inc"
378#include "com01_c.inc"
379#include "com04_c.inc"
380#include "com08_c.inc"
381#include "param_c.inc"
386 INTEGER,
intent(IN) :: IFRAME(LISKN,NUMFRAM+1)
387 my_real,
intent(INOUT) :: xframe(nxframe,numfram+1)
388 my_real,
intent(IN) :: x(3,numnod), v(3,numnod), vr(3,numnod), d(3,numnod)
392 INTEGER N, N1, N2, N3, K, IMOV, IDIR
393 my_real o(3), p(9), pp1, pp3, pp2, pold(9),pt(9),vrn(3),
397 . xpi, cs, r, sn, rs2, drx, dry, drz, vrx, vry, vrz
415 pold(1)=xframe(1,n+1)
416 pold(2)=xframe(2,n+1)
417 pold(3)=xframe(3,n+1)
418 pold(4)=xframe(4,n+1)
419 pold(5)=xframe(5,n+1)
420 pold(6)=xframe(6,n+1)
421 pold(7)=xframe(7,n+1)
422 pold(8)=xframe(8,n+1)
423 pold(9)=xframe(9,n+1)
426 vrn(1)=pold(1)*vr(1,n1)+pold(2)*vr(2,n1)+pold(3)*vr(3,n1)
427 vrn(2)=pold(4)*vr(1,n1)+pold(5)*vr(2,n1)+pold(6)*vr(3,n1)
428 vrn(3)=pold(7)*vr(1,n1)+pold(8)*vr(2,n1)+pold(9)*vr(3,n1)
429 CALL rotbmr (vrn ,pold ,dt2)
431 xframe(k,n+1)=pold(k)
433 xframe(10,n+1)=x(1,n1)
434 xframe(11,n+1)=x(2,n1)
435 xframe(12,n+1)=x(3,n1)
436 xframe(13,n+1)=vr(1,n1)
437 xframe(14,n+1)=vr(2,n1)
438 xframe(15,n+1)=vr(3,n1)
440 xframe(31,n+1)=v(1,n1)
441 xframe(32,n+1)=v(2,n1)
442 xframe(33,n+1)=v(3,n1)
443 xframe(34,n+1)=d(1,n1)
444 xframe(35,n+1)=d(2,n1)
445 xframe(36,n+1)=d(3,n1)
460 ELSEIF (idir == 2)
THEN
464 ELSEIF (idir == 3)
THEN
474 ELSEIF (idir == 2)
THEN
478 ELSEIF (idir == 3)
THEN
487 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
494 ELSEIF (idir == 2)
THEN
495 pp1=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
502 ELSEIF (idir == 3)
THEN
503 pp1=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
513 p(7)=p(2)*p(6)-p(3)*p(5)
514 p(8)=p(3)*p(4)-p(1)*p(6)
515 p(9)=p(1)*p(5)-p(2)*p(4)
516 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
517 ELSEIF (idir == 2)
THEN
518 p(1)=p(5)*p(9)-p(6)*p(8)
519 p(2)=p(6)*p(7)-p(4)*p(9)
521 pp3=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
522 ELSEIF (idir == 3)
THEN
523 p(4)=p(8)*p(3)-p(9)*p(2)
524 p(5)=p(9)*p(1)-p(7)*p(3)
525 p(6)=p(7)*p(2)-p(8)*p(1)
526 pp3=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
541 p(7)=p(2)*p(6)-p(3)*p(5)
542 p(8)=p(3)*p(4)-p(1)*p(6)
543 p(9)=p(1)*p(5)-p(2)*p(4)
544 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
546 ELSEIF (idir == 2)
THEN
556 p(1)=p(5)*p(9)-p(6)*p(8)
557 p(2)=p(6)*p(7)-p(4)*p(9)
558 p(3)=p(4)*p(8)-p(5)*p(7)
559 pp3=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
561 ELSEIF (idir == 3)
THEN
571 p(4)=p(8)*p(3)-p(9)*p(2)
572 p(5)=p(9)*p(1)-p(7)*p(3)
573 p(6)=p(7)*p(2)-p(8)*p(1)
574 pp3=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
579 p(4)=p(8)*p(3)-p(9)*p(2)
580 p(5)=p(9)*p(1)-p(7)*p(3)
581 p(6)=p(7)*p(2)-p(8)*p(1)
582 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
583 ELSEIF (idir == 2)
THEN
584 p(7)=p(2)*p(6)-p(3)*p(5)
585 p(8)=p(3)*p(4)-p(1)*p(6)
586 p(9)=p(1)*p(5)-p(2)*p(4)
587 pp2=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p
588 ELSEIF (idir == 3)
THEN
589 p(1)=p(5)*p(9)-p(6)*p(8)
590 p(2)=p(6)*p(7)-p(4)*p(9)
591 p(3)=p(4)*p(8)-p(5)*p(7)
592 pp2=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
595 ELSEIF (imov == 2)
THEN
605 PP3=SQRT(P(7)*P(7)+P(8)*P(8)+P(9)*P(9))
612 ! calculation of Y' = z
' x X0'
613 p(4)=p(8)*p(3)-p(9)*p(2)
614 p(5)=p(9)*p(1)-p(7)*p(3)
615 p(6)=p(7)*p(2)-p(8)*p(1)
616 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
627 p(4)=p(8)*p(3)-p(9)*p(2)
628 p(5)=p(9)*p(1)-p(7)*p(3)
629 p(6)=p(7)*p(2)-p(8)*p(1)
630 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
633 p(1)=p(5)*p(9)-p(6)*p(8)
634 p(2)=p(6)*p(7)-p(4)*p(9)
635 p(3)=p(4)*p(8)-p(5)*p(7)
636 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
654 IF(nxframe >= 36)
THEN
655 xframe(31,n+1)=v(1,n1)
656 xframe(32,n+1)=v(2,n1)
657 xframe(33,n+1)=v(3,n1)
658 xframe(34,n+1)=d(1,n1)
659 xframe(35,n+1)=d(2,n1)
660 xframe(36,n+1)=d(3,n1)
663 vrx=xframe(13,n+1)+dt12*xframe(16,n+1)
664 vry=xframe(14,n+1)+dt12*xframe(17,n+1)
665 vrz=xframe(15,n+1)+dt12*xframe(18,n+1)
674 IF(nspmd > 1)
CALL spmd_rbcast(xframe,xframe,nxframe,numfram+1,0,2)
691#include "implicit_f.inc"
695#include "com01_c.inc"
696#include "com04_c.inc"
697#include "com08_c.inc"
698#include "param_c.inc"
700#include "impl1_c.inc"
704 INTEGER,
intent(in) :: IFRAME(LISKN,NUMFRAM+1)
705 my_real,
intent(INOUT) :: xframe(nxframe,numfram+1)
706 my_real,
intent(IN) :: x(3,numnod), v(3,numnod), a(3,numnod), vr(3,numnod), ar(3,numnod), d(3,numnod)
710 INTEGER N, N1, N2, N3, K, IMOV
711 my_real o(3), p(9), pp1, pp3, pp2, pold(9),
715 . xpi, cs, r, sn, rs2, drx, dry, drz, vrx, vry, vrz, dtinv, vrn(3)
730 IF(n1+n2+n3 == 0)
THEN
732 ELSEIF (n2+n3 == 0)
THEN
734 IF (inconv == 1)
THEN
735 pold(1)=xframe(1,n+1)
736 pold(2)=xframe(2,n+1)
737 pold(3)=xframe(3,n+1)
738 pold(4)=xframe(4,n+1)
739 pold(5)=xframe(5,n+1)
740 pold(6)=xframe(6,n+1)
741 pold(7)=xframe(7,n+1)
742 pold(8)=xframe(8,n+1)
743 pold(9)=xframe(9,n+1)
744 vrn(1)=pold(1)*vr(1,n1)+pold(2)*vr(2,n1)+pold(3)*vr(3,n1)
745 vrn(2)=pold(4)*vr(1,n1)+pold(5)*vr(2,n1)+pold(6)*vr(3,n1)
746 vrn(3)=pold(7)*vr(1,n1)+pold(8)*vr(2,n1)+pold(9)*vr(3,n1)
747 CALL rotbmr (vrn ,pold ,dt2)
749 xframe(k,n+1)=pold(k)
752 xframe(10,n+1)=x(1,n1)
753 xframe(11,n+1)=x(2,n1)
754 xframe(12,n+1)=x(3,n1)
755 xframe(13,n+1)=vr(1,n1)
756 xframe(14,n+1)=vr(2,n1)
757 xframe(15,n+1)=vr(3,n1)
758 xframe(16,n+1)=ar(1,n1)
759 xframe(17,n+1)=ar(2,n1)
760 xframe(18,n+1)=ar(3,n1)
761 IF(nxframe >= 36)
THEN
762 xframe(28,n+1)=a(1,n1)
763 xframe(29,n+1)=a(2,n1)
764 xframe(30,n+1)=a(3,n1)
765 xframe(31,n+1)=v(1,n1)
766 xframe(32,n+1)=v(2,n1)
767 xframe(33,n+1)=v(3,n1)
768 xframe(34,n+1)=d(1,n1)
769 xframe(35,n+1)=d(2,n1)
770 xframe(36,n+1)=d(3,n1)
775 pold(1)=xframe(1,n+1)
776 pold(2)=xframe(2,n+1)
777 pold(3)=xframe(3,n+1)
778 pold(4)=xframe(4,n+1)
779 pold(5)=xframe(5,n+1)
780 pold(6)=xframe(6,n+1)
781 pold(7)=xframe(7,n+1)
782 pold(8)=xframe(8,n+1)
783 pold(9)=xframe(9,n+1)
798 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
806 p(7)=p(2)*p(6)-p(3)*p(5)
807 p(8)=p(3)*p(4)-p(1)*p(6)
808 p(9)=p(1)*p(5)-p(2)*p(4)
809 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
820 p(7)=p(2)*p(6)-p(3)*p(5)
821 p(8)=p(3)*p(4)-p(1)*p(6)
822 p(9)=p(1)*p(5)-p(2)*p(4)
823 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
826 p(4)=p(8)*p(3)-p(9)*p(2)
827 p(5)=p(9)*p(1)-p(7)*p(3)
828 p(6)=p(7)*p(2)-p(8)*p(1)
829 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
831 ELSEIF (imov == 2)
THEN
841 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
849 p(4)=p(8)*p(3)-p(9)*p(2)
850 p(5)=p(9)*p(1)-p(7)*p(3)
851 p(6)=p(7)*p(2)-p(8)*p(1)
852 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
863 p(4)=p(8)*p(3)-p(9)*p(2)
865 p(6)=p(7)*p(2)-p(8)*p(1)
866 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
869 p(1)=p(5)*p(9)-p(6)*p(8)
870 p(2)=p(6)*p(7)-p(4)*p(9)
871 p(3)=p(4)*p(8)-p(5)*p(7)
872 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
884 IF (inconv == 1)
THEN
885 xframe(10,n+1)=x(1,n1)
886 xframe(11,n+1)=x(2,n1)
887 xframe(12,n+1)=x(3,n1)
894 dr11=p(1)*pold(1)+p(4)*pold(4)+p(7)*pold(7)
895 dr21=p(1)*pold(2)+p(4)*pold(5)+p(7)*pold(8)
896 dr31=p(1)*pold(3)+p(4)*pold(6)+p(7)*pold(9)
897 dr12=p(2)*pold(1)+p(5)*pold(4)+p(8)*pold(7)
898 dr22=p(2)*pold(2)+p(5)*pold(5)+p(8)*pold(8)
899 dr32=p(2)*pold(3)+p(5)*pold(6)+p(8)*pold(9)
900 dr13=p(3)*pold(1)+p(6)*pold(4)+p(9)*pold(7)
901 dr23=p(3)*pold(2)+p(6)*pold(5)+p(9)*pold(8)
902 dr33=p(3)*pold(3)+p(6)*pold(6)+p(9)*pold(9)
904 cs=(dr11+dr22+dr33-one)*half
909 ELSEIF (cs <= -one)
THEN
910 drx=xpi*sqrt((dr11+one)*half)
911 dry=xpi*sqrt((dr22+one)*half)
912 drz=xpi*sqrt((dr33+one)*half)
913 IF (dr12 < zero .AND. dr23 < zero)
THEN
915 ELSEIF (dr23<zero.AND.dr31 < zero)
THEN
917 ELSEIF (dr31 < zero .AND. dr12 < zero)
THEN
919 ELSEIF (dr12 < zero)
THEN
921 ELSEIF (dr23 < zero)
THEN
923 ELSEIF (dr31 < zero)
THEN
935 vrx=drx/
max(em20,dt2)
936 vry=dry/
max(em20,dt2)
937 vrz=drz/
max(em20,dt2)
945 xframe(16,n+1)=(vrx-xframe(13,n+1))*dtinv
946 xframe(17,n+1)=(vry-xframe(14,n+1))*dtinv
947 xframe(18,n+1)=(vrz-xframe(15,n+1))*dtinv
948 IF(nxframe >= 36)
THEN
949 xframe(28,n+1)=a(1,n1)
950 xframe(29,n+1)=a(2,n1)
951 xframe(30,n+1)=a(3,n1)
952 xframe(31,n+1)=v(1,n1)
953 xframe(32,n+1)=v(2,n1)
954 xframe(33,n+1)=v(3,n1)
955 xframe(34,n+1)=d(1,n1)
956 xframe(35,n+1)=d(2,n1)
957 xframe(36,n+1)=d(3,n1)
965 IF(nspmd > 1)
CALL spmd_rbcast(xframe,xframe,nxframe,numfram+1,0,2)