33
34
35
36#include "implicit_f.inc"
37
38
39
40#include "mvsiz_p.inc"
41
42
43
44 INTEGER JFT, JLT ,ISMSTR
45 INTEGER NCC(6,*),PID(*),MAT(*),NGL(*)
47 . x(3,*),offg(*),al(*),ali(*),als(*),
48 . r11(*),r12(*),r13(*),
49 . r21(*),r22(*),r23(*),
50 . r31(*),r32(*),r33(*),rloc(3,*),off(*)
51
52
53
54 INTEGER :: I, NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ)
55 my_real :: x1(mvsiz), x2(mvsiz), x3(mvsiz),
56 . y1(mvsiz), y2(mvsiz), y3(mvsiz),
57 . z1(mvsiz), z2(mvsiz), z3(mvsiz),
norm
58
59 DO i=jft, jlt
60 mat(i)=ncc(1,i)
61 pid(i)=ncc(5,i)
62 ngl(i)=ncc(6,i)
63 nc1(i)=ncc(2,i)
64 nc2(i)=ncc(3,i)
65 nc3(i)=ncc(4,i)
66 ENDDO
67
68
69
70 DO i=jft, jlt
71 x1(i)=x(1,nc1(i))
72 y1(i)=x(2,nc1(i))
73 z1(i)=x(3,nc1(i))
74 x2(i)=x(1,nc2(i))
75 y2(i)=x(2,nc2(i))
76 z2(i)=x(3,nc2(i))
77 x3(i)=x(1,nc3(i))
78 y3(i)=x(2,nc3(i))
79 z3(i)=x(3,nc3(i))
80 ENDDO
81
82
83
84 DO i=jft, jlt
85 r12(i)=rloc(1,i)
86 r22(i)=rloc(2,i)
87 r32(i)=rloc(3,i)
88 r11(i)=x2(i)-x1(i)
89 r21(i)=y2(i)-y1(i)
90 r31(i)=z2(i)-z1(i)
91 ENDDO
92
93 IF (ismstr/=0) THEN
94 DO i=jft, jlt
95 al(i)=als(i)
96 ENDDO
97 ELSE
98 DO i=jft, jlt
99 al(i)=sqrt(r11(i)*r11(i)+r21(i)*r21(i)+r31(i)*r31(i))
100 ENDDO
101 ENDIF
102 DO i=jft, jlt
103 IF (al(i)<em20) offg(i)=zero
104 ali(i)=one/
max(em20,al(i))
105 ENDDO
106
107 DO i=jft, jlt
108 r11(i)=r11(i)*ali(i)
109 r21(i)=r21(i)*ali(i)
110 r31(i)=r31(i)*ali(i)
111 ENDDO
112 DO i=jft, jlt
113 r13(i)=r21(i)*r32(i)-r31(i)*r22(i)
114 r23(i)=r31(i)*r12(i)-r11(i)*r32(i)
115 r33(i)=r11(i)*r22(i)-r21(i)*r12(i)
116 ENDDO
117
118 DO i=jft, jlt
119 norm=sqrt(r13(i)*r13(i)+r23(i)*r23(i)+r33(i)*r33(i))
123 ENDDO
124 DO i=jft, jlt
125 r12(i)=r23(i)*r31(i)-r33(i)*r21(i)
126 r22(i)=r33(i)*r11(i)-r13(i)*r31(i)
127 r32(i)=r13(i)*r21(i)-r23(i)*r11(i)
128 ENDDO
129
130 DO i=jft,jlt
131 off(i)=offg(i)
132 ENDDO
133
134 RETURN
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB