54
55
56
60
61
62
63#include "implicit_f.inc"
64
65
66
67#include "mvsiz_p.inc"
68
69
70
71#include "sms_c.inc"
72#include "com04_c.inc"
73
74
75
76 INTEGER IRECT(4,*), NSV(*), CAND_E(*), CAND_N(*),KINET(*),KINI(*),
77 . JLT,IDT, NOINT ,NDDIM, NSN, ITY, , IGSTI,NRTSE,
78 . NVOISIN(8,*), NODNX_SMS(*), CAND_T(*),IRTLM(2,*),NPT,
79 . IEDG4,INTFRIC,INTNITSCHE ,IORTHFRIC
80 INTEGER IXX(MVSIZ,13), NSVG(MVSIZ), NSMS(MVSIZ),ITRIV(4,MVSIZ),
81 . IRTSE(5,*),IS2SE(2,*),IS2PT(*),ISEGPT(*),NSNE,ISPT2(NSN),
82 * ISPT2_LOC(MVSIZ),IPARTFRICS(*),IPARTFRICSI(MVSIZ),IPARTFRICM(*),
83 . IPARTFRICMI(MVSIZ),IREP_FRICM(*),IREP_FRICMI(MVSIZ),
84 . IXX3(MVSIZ),IXX4(MVSIZ)
85 INTEGER , INTENT(IN) :: NINLOADP
86 INTEGER , INTENT(IN) ::
87 INTEGER , INTENT(IN) :: NRTM
88
90 . x(3,*), stf(*), stfn(*),
91 . ms(*), v(3,*),gaps(mvsiz),gap_s(*)
92
94 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
95 . xx0(mvsiz,17),yy0(mvsiz,17),zz0(mvsiz,17),
96 . vx(mvsiz,17),vy(mvsiz,17),vz(mvsiz,17),
97 . vxi(mvsiz), vyi(mvsiz), vzi(mvsiz), msi(mvsiz),
98 . kmin, kmax,xfic(3,*),vfic(3,*),msf(*), forneqs(3,*),forneqsi(mvsiz,3),
99 . dir_fricm(2,*) ,dir_fricmi(mvsiz,2) ,
100 . xx1(mvsiz), xx2(mvsiz), xx3(mvsiz), xx4(mvsiz),
101 . yy1(mvsiz), yy2(mvsiz), yy3(mvsiz), yy4(mvsiz),
102 . zz1(mvsiz), zz2(mvsiz), zz3(mvsiz), zz4(mvsiz),
103 . stif_msdt(mvsiz)
104 my_real ,
INTENT(INOUT) :: dist(mvsiz)
106 my_real ,
INTENT(IN) :: stifmsdt_s(nsn) ,stifmsdt_m(nrtm)
107 TYPE (PARAMETERS_) ,INTENT(IN):: PARAMETERS
108
109
110
111 INTEGER I ,J ,IL, L, NN, IG,JFT, IX, NI,IGF,IPT,IE,NS1,NS2,
112 . ICONT1,ICONT2,NSI,IPT2,NS
114 . sx1, sy1, sz1, sx2, sy2, sz2,
norm, dts
115
116
117 DO i=1,jlt
118 DO j=1,13
119 ixx(i,j) = 0
120 ENDDO
121 ENDDO
122
123 IF (iedg4 > 0) THEN
124 DO i=1,jlt
125 ni = cand_n(i)
126 IF(ni<=nsn)THEN
127 ispt2_loc(i) = ispt2(ni)
128 ELSE
129 nn = ni - nsn
131 ENDIF
132 ENDDO
133 ELSE
134 DO i=1,jlt
135 ispt2_loc(i) = 0
136 ENDDO
137
138 END IF
139
140 DO i=1,jlt
141 ni = cand_n(i)
142 l = cand_e(i)
143 IF(ni<=nsn)THEN
144 ig = nsv(ni)
145 nsvg(i) = ig
146
147 IF (ig <= numnod) THEN
148 kini(i) = kinet(ig)
149 xi(i) = x(1,ig)
150 yi(i) = x(2,ig)
151 zi(i) = x(3,ig)
152 vxi(i) = v(1,ig)
153 vyi(i) = v(2,ig)
154 vzi(i) = v(3,ig)
155 msi(i)= ms(ig)
156 ELSE
157 igf = ig-numnod
158
159
160 xi(i) = xfic(1,igf)
161 yi(i) = xfic(2,igf)
162 zi(i) = xfic(3,igf)
163 vxi(i) = vfic(1,igf)
164 vyi(i) = vfic(2,igf)
165 vzi(i) = vfic(3,igf)
166 msi(i)= msf(igf)
167 END IF
168 gaps(i) = gap_s(ni)
169 ELSE
170 nn = ni - nsn
171 nsvg(i) = -nn
172 kini(i) =
kinfi(nin)%P(nn)
173 xi(i) =
xfi(nin)%P(1,nn)
174 yi(i) =
xfi(nin)%P(2,nn)
175 zi(i) =
xfi(nin)%P(3,nn)
176 vxi(i)=
vfi(nin)%P(1,nn)
177 vyi(i)=
vfi(nin)%P(2,nn)
178 vzi(i)=
vfi(nin)%P(3,nn)
179 msi(i)=
msfi(nin)%P(nn)
180 gaps(i) =
gapfi(nin)%P(nn)
181 END IF
182
183 ix=irect(1,l)
184 ixx(i,1)=ix
185 xx0(i,1)=x(1,ix)
186 yy0(i,1)=x(2,ix)
187 zz0(i,1)=x(3,ix)
188 vx(i,1)=v(1,ix)
189 vy(i,1)=v(2,ix)
190 vz(i,1)=v(3,ix)
191
192 ix=irect(2,l)
193 ixx(i,2)=ix
194 xx0(i,2)=x(1,ix)
195 yy0(i,2)=x(2,ix)
196 zz0(i,2)=x(3,ix)
197 vx(i,2)=v(1,ix)
198 vy(i,2)=v(2,ix)
199 vz(i,2)=v(3,ix)
200
201 ix=irect(3,l)
202 ixx(i,3)=ix
203 xx0(i,3)=x(1,ix)
204 yy0(i,3)=x(2,ix)
205 zz0(i,3)=x(3,ix)
206 vx(i,3)=v(1,ix)
207 vy(i,3)=v(2,ix)
208 vz(i,3)=v(3,ix)
209
210 ix=irect(4,l)
211 ixx(i,4)=ix
212 xx0(i,4)=x(1,ix)
213 yy0(i,4)=x(2,ix)
214 zz0(i,4)=x(3,ix)
215 vx(i,4)=v(1,ix)
216 vy(i,4)=v(2,ix)
217 vz(i,4)=v(3,ix)
218
219 IF(ixx(i,3) /= ixx(i,4))THEN
220 xx0(i,5) = fourth*(xx0(i,1)+xx0(i,2)+xx0(i,3)+xx0(i,4))
221 yy0(i,5) = fourth*(yy0(i,1)+yy0(i,2)+yy0(i,3)+yy0(i,4))
222 zz0(i,5) = fourth*(zz0(i,1)+zz0(i,2)+zz0(i,3)+zz0(i,4))
223 vx(i,5) = fourth*(vx(i,1)+vx(i,2)+vx(i,3)+vx(i,4))
224 vy(i,5) = fourth*(vy(i,1)+vy(i,2)+vy(i,3)+vy(i,4))
225 vz(i,5) = fourth*(vz(i,1)+vz(i,2)+vz(i,3)+vz(i,4))
226 ELSE
227 xx0(i,5) = xx0(i,3)
228 yy0(i,5) = yy0(i,3)
229 zz0(i,5) = zz0(i,3)
230 vx(i,5) = vx(i,3)
231 vy(i,5) = vy(i,3)
232 vz(i,5) = vz(i,3)
233 ENDIF
234
235 ix=iabs(nvoisin(1,l))
236 ixx(i,6)=ix
237 IF(ix /= 0)THEN
238 xx0(i,6)=x(1,ix)
239 yy0(i,6)=x(2,ix)
240 zz0(i,6)=x(3,ix)
241 vx(i,6) =v(1,ix)
242 vy(i,6) =v(2,ix)
243 vz(i,6) =v(3,ix)
244 ELSE
245 xx0(i,6)=xx0(i,1)
246 yy0(i,6)=yy0(i,1)
247 zz0(i,6)=zz0(i,1)
248 vx(i,6) =vx(i,1)
249 vy(i,6) =vy(i,1)
250 vz(i,6) =vz(i,1)
251 ENDIF
252
253 IF(nvoisin(2,l)/=0)ix=iabs(nvoisin(2,l))
254 ixx(i,7)=ix
255 IF(ix /= 0)THEN
256 xx0(i,7)=x(1,ix)
257 yy0(i,7)=x(2,ix)
258 zz0(i,7)=x(3,ix)
259 vx(i,7)=v(1,ix)
260 vy(i,7)=v(2,ix)
261 vz(i,7)=v(3,ix)
262 ELSE
263 xx0(i,7)=xx0(i,2)
264 yy0(i,7)=yy0(i,2)
265 zz0(i,7)=zz0(i,2)
266 vx(i,7) =vx(i,2)
267 vy(i,7) =vy(i,2)
268 vz(i,7) =vz(i,2)
269 ENDIF
270
271 IF(nvoisin(1,l)<0)THEN
272 IF(nvoisin(2,l)<0)THEN
273 itriv(1,i)=4
274 ELSE
275 itriv(1,i)=2
276 ENDIF
277 ELSEIF(nvoisin(2,l)<0)THEN
278 itriv(1,i)=3
279 ELSE
280 itriv(1,i)=1
281 ENDIF
282
283 ix=iabs(nvoisin(3,l))
284 ixx(i,8)=ix
285 IF(ix /= 0)THEN
286 xx0(i,8)=x(1,ix)
287 yy0(i,8)=x(2,ix)
288 zz0(i,8)=x(3,ix)
289 vx(i,8)=v(1,ix)
290 vy(i,8)=v(2,ix)
291 vz(i,8)=v(3,ix)
292 ELSE
293 xx0(i,8)=xx0(i,2)
294 yy0(i,8)=yy0(i,2)
295 zz0(i,8)=zz0(i,2)
296 vx(i,8) =vx(i,2)
297 vy(i,8) =vy(i,2)
298 vz(i,8) =vz(i,2)
299 ENDIF
300
301 IF(nvoisin(4,l)/=0)ix=iabs(nvoisin(4,l))
302 ixx(i,9)=ix
303 IF(ix /= 0)THEN
304 xx0(i,9)=x(1,ix)
305 yy0(i,9)=x(2,ix)
306 zz0(i,9)=x(3,ix)
307 vx(i,9)=v(1,ix)
308 vy(i,9)=v(2,ix)
309 vz(i,9)=v(3,ix)
310 ELSE
311 xx0(i,9)=xx0(i,3)
312 yy0(i,9)=yy0(i,3)
313 zz0(i,9)=zz0(i,3)
314 vx(i,9) =vx(i,3)
315 vy(i,9) =vy(i,3)
316 vz(i,9) =vz(i,3)
317 ENDIF
318
319 IF(nvoisin(3,l)<0)THEN
320 IF(nvoisin(4,l)<0)THEN
321 itriv(2,i)=4
322 ELSE
323 itriv(2,i)=2
324 ENDIF
325 ELSEIF(nvoisin(4,l)<0)THEN
326 itriv(2,i)=3
327 ELSE
328 itriv(2,i)=1
329 ENDIF
330
331
332 ix=iabs(nvoisin(5,l))
333 ixx(i,10)=ix
334 IF(ix /= 0)THEN
335 xx0(i,10)=x(1,ix)
336 yy0(i,10)=x(2,ix)
337 zz0(i,10)=x(3,ix)
338 vx(i,10)=v(1,ix)
339 vy(i,10)=v(2,ix)
340 vz(i,10)=v(3,ix)
341 ELSE
342 xx0(i,10)=xx0(i,3)
343 yy0(i,10)=yy0(i,3)
344 zz0(i,10)=zz0(i,3)
345 vx(i,10) =vx(i,3)
346 vy(i,10) =vy(i,3)
347 vz(i,10) =vz(i,3)
348 ENDIF
349
350 IF(nvoisin(6,l)/=0)ix=iabs(nvoisin(6,l))
351 ixx(i,11)=ix
352 IF(ix /= 0)THEN
353 xx0(i,11)=x(1,ix)
354 yy0(i,11)=x(2,ix)
355 zz0(i,11)=x(3,ix)
356 vx(i,11)=v(1,ix)
357 vy(i,11)=v(2,ix)
358 vz(i,11)=v(3,ix)
359 ELSE
360 xx0(i,11)=xx0(i,4)
361 yy0(i,11)=yy0(i,4)
362 zz0(i,11)=zz0(i,4)
363 vx(i,11) =vx(i,4)
364 vy(i,11) =vy(i,4)
365 vz(i,11) =vz(i,4)
366 ENDIF
367
368
369 IF(nvoisin(5,l)<0)THEN
370 IF(nvoisin(6,l)<0)THEN
371 itriv(3,i)=4
372 ELSE
373 itriv(3,i)=2
374 ENDIF
375 ELSEIF(nvoisin(6,l)<0)THEN
376 itriv(3,i)=3
377 ELSE
378 itriv(3,i)=1
379 ENDIF
380
381 ix=iabs(nvoisin(7,l))
382 ixx(i,12)=ix
383 IF(ix /= 0)THEN
384 xx0(i,12)=x(1,ix)
385 yy0(i,12)=x(2,ix)
386 zz0(i,12)=x(3,ix)
387 vx(i,12)=v(1,ix)
388 vy(i,12)=v(2,ix)
389 vz(i,12)=v(3,ix)
390 ELSE
391 xx0(i,12)=xx0(i,4)
392 yy0(i,12)=yy0(i,4)
393 zz0(i,12)=zz0(i,4)
394 vx(i,12) =vx(i,4)
395 vy(i,12) =vy(i,4)
396 vz(i,12) =vz(i,4)
397 ENDIF
398
399 IF(nvoisin(8,l)/=0)ix=iabs(nvoisin(8,l))
400 ixx(i,13)=ix
401 IF(ix /= 0)THEN
402 xx0(i,13)=x(1,ix)
403 yy0(i,13)=x(2,ix)
404 zz0(i,13)=x(3,ix)
405 vx(i,13)=v(1,ix)
406 vy(i,13)=v(2,ix)
407 vz(i,13)=v(3,ix)
408 ELSE
409 xx0(i,13)=xx0(i,1)
410 yy0(i,13)=yy0(i,1)
411 zz0(i,13)=zz0(i,1)
412 vx(i,13) =vx(i,1)
413 vy(i,13) =vy(i,1)
414 vz(i,13) =vz(i,1)
415 ENDIF
416
417 IF(nvoisin(7,l)<0)THEN
418 IF(nvoisin(8,l)<0)THEN
419 itriv(4,i)=4
420 ELSE
421 itriv(4,i)=2
422 ENDIF
423 ELSEIF(nvoisin(8,l)<0)THEN
424 itriv(4,i)=3
425 ELSE
426 itriv(4,i)=1
427 ENDIF
428
429 IF(ixx(i,6)==ixx(i,7))THEN
430 xx0(i,14) = xx0(i,6)
431 yy0(i,14) = yy0(i,6)
432 zz0(i,14) = zz0(i,6)
433 vx(i,14) = vx(i,6)
434 vy(i,14) = vy(i,6)
435 vz(i,14) = vz(i,6)
436 ELSE
437 xx0(i,14) = fourth*(xx0(i,2)+xx0(i,1)+xx0(i,6)+xx0(i,7))
438 yy0(i,14) = fourth*(yy0(i,2)+yy0(i,1)+yy0(i,6)+yy0(i,7))
439 zz0(i,14) = fourth*(zz0(i,2)+zz0(i,1)+zz0(i,6)+zz0(i,7))
440 vx(i,14) = fourth*(vx(i,2)+vx(i,1)+vx(i,6)+vx(i,7))
441 vy(i,14) = fourth*(vy(i,2)+vy(i,1)+vy(i,6)+vy(i,7))
442 vz(i,14) = fourth*(vz(i,2)+vz(i,1)+vz(i,6)+vz(i,7))
443 ENDIF
444 IF(ixx(i, 8)==ixx(i, 9))THEN
445 xx0(i,15) = xx0(i,8)
446 yy0(i,15) = yy0(i,8)
447 zz0(i,15) = zz0(i,8)
448 vx(i,15) = vx(i,8)
449 vy(i,15) = vy(i,8)
450 vz(i,15) = vz(i,8)
451 ELSE
452 xx0(i,15) = fourth*(xx0(i,3)+xx0(i,2)+xx0(i,8)+xx0(i,9))
453 yy0(i,15) = fourth*(yy0(i,3)+yy0(i,2)+yy0(i,8)+yy0(i,9))
454 zz0(i,15) = fourth*(zz0(i,3)+zz0(i,2)+zz0(i,8)+zz0(i,9))
455 vx(i,15) = fourth*(vx(i,3)+vx(i,2)+vx(i,8)+vx(i,9))
456 vy(i,15) = fourth*(vy(i,3)+vy(i,2)+vy(i,8)+vy(i,9))
457 vz(i,15) = fourth*(vz(i,3)+vz(i,2)+vz(i,8)+vz(i,9))
458 ENDIF
459 IF(ixx(i,10)==ixx(i,11))THEN
460 xx0(i,16) = xx0(i,10)
461 yy0(i,16) = yy0(i,10)
462 zz0(i,16) = zz0(i,10)
463 vx(i,16) = vx(i,10)
464 vy(i,16) = vy(i,10)
465 vz(i,16) = vz(i,10)
466 ELSE
467 xx0(i,16) = fourth*(xx0(i,4)+xx0(i,3)+xx0(i,10)+xx0(i,11))
468 yy0(i,16) = fourth*(yy0(i,4)+yy0(i,3)+yy0(i,10)+yy0(i,11))
469 zz0(i,16) = fourth*(zz0(i,4)+zz0(i,3)+zz0(i,10)+zz0(i,11))
470 vx(i,16) = fourth*(vx(i,4)+vx(i,3)+vx(i,10)+vx(i,11))
471 vy(i,16) = fourth*(vy(i,4)+vy(i,3)+vy(i,10)+vy(i,11))
472 vz(i,16) = fourth*(vz(i,4)+vz(i,3)+vz(i,10)+vz(i,11))
473 ENDIF
474 IF(ixx(i,12)==ixx(i,13))THEN
475 xx0(i,17) = xx0(i,12)
476 yy0(i,17) = yy0(i,12)
477 zz0(i,17) = zz0(i,12)
478 vx(i,17) = vx(i,12)
479 vy(i,17) = vy(i,12)
480 vz(i,17) = vz(i,12)
481 ELSE
482 xx0(i,17) = fourth*(xx0(i,1)+xx0(i,4)+xx0(i,12)+xx0(i,13))
483 yy0(i,17) = fourth*(yy0(i,1)+yy0(i,4)+yy0(i,12)+yy0(i,13))
484 zz0(i,17) = fourth*(zz0(i,1)+zz0(i,4)+zz0(i,12)+zz0(i,13))
485 vx(i,17) = fourth*(vx(i,1)+vx(i,4)+vx(i,12)+vx(i,13))
486 vy(i,17) = fourth*(vy(i,1)+vy(i,4)+vy(i,12)+vy(i,13))
487 vz(i,17) = fourth*(vz(i,1)+vz(i,4)+vz(i,12)+vz(i,13))
488 ENDIF
489
490 END DO
491
492 IF(igsti<=1)THEN
493 DO i=1,jlt
494 l = cand_e(i)
495 ni = cand_n(i)
496 IF(ni<=nsn)THEN
497 stif(i)=stf(l)*abs(stfn(ni))
498 ELSE
499 nn = ni - nsn
500 stif(i)=stf(l)*abs(
stifi(nin)%P(nn))
501 END IF
502 ENDDO
503 ELSEIF(igsti==2)THEN
504 DO i=1,jlt
505 l = cand_e(i)
506 ni = cand_n(i)
507 IF(ni<=nsn)THEN
508 stif(i)=abs(stfn(ni))
509 ELSE
510 nn = ni - nsn
511 stif(i)=abs(
stifi(nin)%P(nn))
512 END IF
513 stif(i)=half*(stf(l)+stif(i))
514
515 ENDDO
516 ELSEIF(igsti==3)THEN
517 DO i=1,jlt
518 l = cand_e(i)
519 ni = cand_n(i)
520 IF(ni<=nsn)THEN
521 stif(i)=abs(stfn(ni))
522 ELSE
523 nn = ni - nsn
524 stif(i)=abs(
stifi(nin)%P(nn))
525 END IF
526 stif(i)=
max(stf(l),stif(i))
527
528 ENDDO
529 ELSEIF(igsti==4.OR.igsti==6)THEN
530 DO i=1,jlt
531 l = cand_e(i)
532 ni = cand_n(i)
533 IF(ni<=nsn)THEN
534 stif(i)=abs(stfn(ni))
535 ELSE
536 nn = ni - nsn
537 stif(i)=abs(
stifi(nin)%P(nn))
538 END IF
539 stif(i)=
min(stf(l),stif(i))
540
541 ENDDO
542 ELSEIF(igsti==5)THEN
543 DO i=1,jlt
544 l = cand_e(i)
545 ni = cand_n(i)
546 IF(ni<=nsn)THEN
547 stif(i)=abs(stfn(ni))
548 ELSE
549 nn = ni - nsn
550 stif(i)=abs(
stifi(nin)%P(nn))
551 END IF
552 stif(i)=stf(l)*stif(i)/
553 .
max(em30,(stf(l)+stif(i)))
554
555 ENDDO
556 ELSEIF(igsti==7)THEN
557 DO i=1,jlt
558 stif(i)=zero
559 ENDDO
560 ENDIF
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577 IF(istif_msdt > 0) THEN
578 IF(dtstif > zero) THEN
579 dts = dtstif
580 ELSE
581 dts = parameters%DT_STIFINT
582 ENDIF
583 DO i=1,jlt
584 l = cand_e(i)
585 ni = cand_n(i)
586 IF(ni<=nsn)THEN
587 stif_msdt(i) = stifmsdt_s(ni)
588 ELSE
589 nn = ni - nsn
591 ENDIF
592 stif_msdt(i) = stifmsdt_m(l)*stif_msdt(i)/(stifmsdt_m(l)+stif_msdt(i))
593 stif_msdt(i) = stif_msdt(i)/(dts*dts)
594 stif(i)=
max(stif(i),stif_msdt(i))
595 ENDDO
596 ENDIF
597
598 DO i=1,jlt
599 stif(i)=
max(kmin,
min(stif(i),kmax))
600 ENDDO
601
602
603
604
605
606 IF(idtmins==2)THEN
607 DO i=1,jlt
608 IF(nsvg(i)>0)THEN
609 IF (nsvg(i) <= numnod) THEN
610 nn = nodnx_sms(nsvg(i))
611 ELSE
612 nn = nsvg(i)-numnod
614 + ns2 )
615 nn =
max(nodnx_sms(ns1),nodnx_sms(ns2))
616 END IF
617 nsms(i)= nn
618 . +nodnx_sms(ixx(i,1))+nodnx_sms(ixx(i,2))
619 . +nodnx_sms(ixx(i,3))+nodnx_sms(ixx(i,4))
620 ELSE
621 nn=-nsvg(i)
623 . +nodnx_sms(ixx(i,1))+nodnx_sms(ixx(i,2))
624 . +nodnx_sms(ixx(i,3))+nodnx_sms(ixx(i,4))
625 END IF
626 ENDDO
627 IF(idtmins_int/=0)THEN
628 DO i=1,jlt
629 IF(nsms(i)==0)nsms(i)=-1
630 ENDDO
631 END IF
632 ELSEIF(idtmins_int/=0)THEN
633 DO i=1,jlt
634 nsms(i)=-1
635 ENDDO
636 ENDIF
637
638
639 IF(intfric > 0) THEN
640 DO i=1,jlt
641 ni = cand_n(i)
642 l = cand_e(i)
643 IF(ni<=nsn)THEN
644 ipartfricsi(i)= ipartfrics(ni)
645 ELSE
646 nn = ni - nsn
648 END IF
649
650 ipartfricmi(i) = ipartfricm(l)
651
652 IF(iorthfric > 0) THEN
653 irep_fricmi(i) =irep_fricm(l)
654 dir_fricmi(i,1:2)=dir_fricm(1:2,l)
655 ixx3(i) = ixx(i,3)
656 ixx4(i) = ixx(i,4)
657 xx1(i) = xx0(i,1)
658 xx2(i) = xx0(i,2)
659 xx3(i) = xx0(i,3)
660 xx4(i) = xx0(i,4)
661 yy1(i) = yy0(i,1)
662 yy2(i) = yy0(i,2)
663 yy3(i) = yy0(i,3)
664 yy4(i) = yy0(i,4)
665 zz1(i) = zz0(i,1)
666 zz2(i) = zz0(i,2)
667 zz3(i) = zz0(i,3)
668 zz4(i) = zz0(i,4)
669 ENDIF
670 ENDDO
671 ENDIF
672
673
674 IF(intnitsche > 0) THEN
675 DO i=1,jlt
676 ni = cand_n(i)
677 IF(ni<=nsn)THEN
678 ig = nsvg(i)
679 forneqsi(i,1)= forneqs(1,ig)
680 forneqsi(i,2)= forneqs(2,ig)
681 forneqsi(i,3)= forneqs(3,ig)
682 ELSE
683 nn = ni - nsn
687 END IF
688 ENDDO
689 ENDIF
690
691 IF(ninloadp > 0) THEN
692
693
694
695
696 DO i=1,jlt
697
698 sx1=(yy0(i,1)-yy0(i,3))*(zz0(i,2)-zz0(i,4)) - (zz0(i,1)-zz0(i,3))*(yy0(i,2)-yy0(i,4))
699 sy1=(zz0(i,1)-zz0(i,3))*(xx0(i,2)-xx0(i,4)) - (xx0(i,1)-xx0(i,3))*(zz0(i,2)-zz0(i,4))
700 sz1=(xx0(i,1)-xx0(i,3))*(yy0(i,2)-yy0(i,4)) - (yy0(i,1)-yy0(i,3))*(xx0(i
701
702 norm = sqrt(sx1**2 + sy1**2 + sz1**2)
703
704 IF(ixx(i,4)/=ixx(i,3))THEN
705 sx2 = fourth*(xx0(i,1) + xx0(i,2) + xx0(i,3) + xx0(i,4)) - xi(i)
706 sy2 = fourth*(yy0(i,1) + yy0(i,2) + yy0(i,3) + yy0(i,4)) - yi(i)
707 sz2 = fourth*(zz0(i,1) + zz0(i,2) + zz0(i,3) + zz0(i,4)) - zi(i)
708 ELSE
709 sx2 = third*(xx0(i,1) + xx0(i,2) + xx0(i,3)) - xi(i)
710 sy2 = third*(yy0(i,1) + yy0(i,2) + yy0(i,3)) - yi(i)
711 sz2 = third*(zz0(i,1) + zz0(i,2) + zz0(i,3)) - zi(i)
712 END IF
713 dist(i) = (sx2*sx1+sy2*sy1+sz2*sz1) /
max(em15,
norm)
714 dist(i) = abs(dist(i))
715
716 ENDDO
717
718 ENDIF
719 RETURN
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine i24fic_getn(ns, irtse, is2se, ie, ns1, ns2)
type(int_pointer), dimension(:), allocatable ispt2_fi
type(real_pointer), dimension(:), allocatable stif_msdt_fi
type(real_pointer2), dimension(:), allocatable forneqsfi
type(real_pointer2), dimension(:), allocatable vfi
type(real_pointer), dimension(:), allocatable stifi
type(real_pointer), dimension(:), allocatable gapfi
type(int_pointer), dimension(:), allocatable nodnxfi
type(real_pointer), dimension(:), allocatable msfi
type(int_pointer), dimension(:), allocatable ipartfricsfi
type(real_pointer2), dimension(:), allocatable xfi
type(int_pointer), dimension(:), allocatable kinfi