33 use element_mod , only : nixr
34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "mvsiz_p.inc"
42
43
44
45#include "impl1_c.inc"
46#include "comlock.inc"
47#include "units_c.inc"
48#include "scr17_c.inc"
49
50
51
52 INTEGER JFT, JLT
53 INTEGER NCC(NIXR,*),PID(*),NGL(*)
54
56 . x(3,*),beta(*),offg(*),off(*),
57 . r11(*),r21(*),r31(*),r12(*),r22(*),r32(*)
58
59
60
61 INTEGER I,NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ)
62
64 . x1(mvsiz), x2(mvsiz),x3(mvsiz),y1(mvsiz), y2(mvsiz),
65 . y3(mvsiz),z1(mvsiz), z2(mvsiz),z3(mvsiz),
66 . al1(mvsiz),al2(mvsiz),
norm
67
68
69 DO i=jft, jlt
70 pid(i)=ncc(1,i)
71 ngl(i)=ncc(5,i)
72 nc1(i)=ncc(2,i)
73 nc2(i)=ncc(3,i)
74 nc3(i)=ncc(4,i)
75 ENDDO
76
77
78
79 DO i=jft, jlt
80 x1(i)=x(1,nc1(i))
81 y1(i)=x(2,nc1(i))
82 z1(i)=x(3,nc1(i))
83 x2(i)=x(1,nc2(i))
84 y2(i)=x(2,nc2(i))
85 z2(i)=x(3,nc2(i))
86 x3(i)=x(1,nc3(i))
87 y3(i)=x(2,nc3(i))
88 z3(i)=x(3,nc3(i))
89 ENDDO
90
91
92
93 DO i=jft, jlt
94 r11(i)=one
95 r21(i)=zero
96 r31(i)=zero
97 r12(i)=one
98 r22(i)=zero
99 r32(i)=zero
100 ENDDO
101
102 DO i=jft, jlt
103 r11(i)=x2(i)-x1(i)
104 r21(i)=y2(i)-y1(i)
105 r31(i)=z2(i)-z1(i)
106 al1(i)=sqrt(r11(i)*r11(i)+r21(i)*r21(i)+r31(i)*r31(i))
107 al1(i)=
max(em15,al1(i))
108 ENDDO
109
110 DO i=jft, jlt
111 IF (al1(i)>em15) THEN
116 ENDIF
117 ENDDO
118
119 DO i=jft, jlt
120 r12(i)=x2(i)-x3(i)
121 r22(i)=y2(i)-y3(i)
122 r32(i)=z2(i)-z3(i)
123 al2(i)=sqrt(r12(i)*r12(i)+r22(i)*r22(i)+r32(i)*r32(i))
124 al2(i)=
max(em15,al2(i))
125 ENDDO
126
127 DO i=jft, jlt
128 IF (al2(i)>em15) THEN
133 ENDIF
134 ENDDO
135 IF (imp_chk > 0) THEN
136 DO i=jft,jlt
137 IF(offg(i)/=zero)THEN
138 IF(al1(i)<=em15)THEN
139#include "lockon.inc"
140 WRITE(iout ,2001) ngl(i)
141#include "lockoff.inc"
142 idel7nok = 1
143 imp_iw = imp_iw + 1
144 ENDIF
145 IF(al2(i)<=em15)THEN
146#include "lockon.inc"
147 WRITE(iout ,2002) ngl(i)
148#include "lockoff.inc"
149 idel7nok = 1
150 imp_iw = imp_iw + 1
151 ENDIF
152 ENDIF
153 ENDDO
154 ENDIF
155
156 DO i=jft, jlt
157 beta(i) = pi - acos(r11(i)*r12(i)+r21(i)*r22(i)+r31(i)*r32(i))
158 ENDDO
159
160 DO i=jft,jlt
161 off(i)=offg(i)
162 ENDDO
163
164 RETURN
165 2001 FORMAT(/'***WARNING :SPRING TYPE12 ZERO-LENGTH N1N2: ELE. NB:',
166 . i8/)
167 2002 FORMAT(/'***WARNING :SPRING TYPE12 ZERO-LENGTH N2N3: ELE. NB:',
168 . i8/)
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB