34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "mvsiz_p.inc"
42
43
44
45#include "param_c.inc"
46
47
48
49 INTEGER NEL,PID(MVSIZ)
50
52 .
for(nel,3),mom(nel,3),geo(npropg,*),offg(*),off(*),al(mvsiz),
53 . f1(mvsiz),f2(mvsiz),f3(mvsiz),m1(mvsiz),m2(mvsiz),m3(mvsiz),
54 . sti(mvsiz), stir(mvsiz),
55 . f11(mvsiz), f12(mvsiz), f21(mvsiz),
56 . f22(mvsiz), f31(mvsiz), f32(mvsiz),
57 . m11(mvsiz), m12(mvsiz), m21(mvsiz),
58 . m22(mvsiz), m31(mvsiz), m32(mvsiz)
59
60
61
62 INTEGER I, J, IG, IR1Y, IR1Z, IR2Y, IR2Z
63
65 . off_l
66
67 DO i=1,nel
68 f11(i)= -f1(i)
69 f21(i)= -f2(i)
70 f31(i)= -f3(i)
71
72 f12(i)=-f11(i)
73 f22(i)=-f21(i)
74 f32(i)=-f31(i)
75 ENDDO
76
77
78
79 DO i=1,nel
80 m11(i)=-m1(i)
81 m21(i)=-m2(i)+half*al(i)*f3(i)
82 m31(i)=-m3(i)-half*al(i)*f2(i)
83
84 m12(i)=-m11(i)
85 m22(i)=m2(i)+half*al(i)*f3(i)
86 m32(i)=m3(i)-half*al(i)*f2(i)
87 ENDDO
88
89
90
91 DO i=1,nel
92 ig=pid(i)
93 ir1y=nint(geo(8 ,ig))
94 ir1z=nint(geo(9 ,ig))
95 ir2y=nint(geo(10,ig))
96 ir2z=nint(geo(11,ig))
97 m21(i)=ir1y*m21(i)+(1-ir2y)*m22(i)
98 m22(i)=ir2y*m22(i)+(1-ir1y)*m21(i)
99 m31(i)=ir1z*m31(i)+(1-ir2z)*m32(i)
100 m32(i)=ir2z*m32(i)+(1-ir1z)*m31(i)
101 ENDDO
102
103 off_l = zero
104 DO i=1,nel
105 IF (off(i) < one) offg(i) = off(i)
106 off_l =
min(off_l,offg(i))
107 ENDDO
108 IF (off_l < zero) THEN
109 DO i=1,nel
110 IF (offg(i) < zero) THEN
111 f11(i)=zero
112 f21(i)=zero
113 f31(i)=zero
114 m11(i)=zero
115 m21(i)=zero
116 m31(i)=zero
117 f12(i)=zero
118 f22(i)=zero
119 f32(i)=zero
120 m12(i)=zero
121 m22(i)=zero
122 m32(i)=zero
123 sti(i)=zero
124 stir(i)=zero
125 ENDIF
126 ENDDO
127 ENDIF
128
129 RETURN
for(i8=*sizetab-1;i8 >=0;i8--)