40 USE format_mod, ONLY : fmw_a_i_a, fmw_10i
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "com04_c.inc"
49#include "kincod_c.inc"
50#include "lagmult.inc"
51#include "param_c.inc"
52#include "scr17_c.inc"
53#include "scr03_c.inc"
54#include "units_c.inc"
55
56
57
58 INTEGER NOM_OPT(LNOPT1,*),PTR_NOPT_RWALL,PTR_NOPT_RBE2,
59 . PTR_NOPT_RBE3
60 INTEGER IKINE(*),NPRW(*), LPRW(*),ITAB(*),KINET(*),
61 . NPBY(NNPBY,*), LPBY(*),IRBE2(NRBE2L,*),LRBE2(*),
62 . IRBE3(NRBE3L,*),LRBE3(*),
63 . INOPT_RWALL,INOPT_RBE2,INOPT_RBE3,ITAGCYC(*)
65 . rwl(nrwlp,*)
66
67
68
69 INTEGER I, J, K, L, N, KK, IKK, IKK2, NK, JWARN, ITYP, NE, NSL,
70 . IK(10), RBWARN, RB2WARN, KRB, NSLRB,
71 . MARQUEUR(8192),
72 . MARQUEURDOUBLE(13),J1,FLAG_IKCOND,MARQ2,MARQM2,
73 . NS,NM,M,IAD,NUN,JJ,NIKRW,IPEN
74 INTEGER, DIMENSION(:), ALLOCATABLE :: NKINDOUBLE,NKIN,IKRW
75 INTEGER ID
76 CHARACTER(LEN=NCHARTITLE) :: TITR
77
78 ALLOCATE(nkindouble(numnod),nkin(numnod),ikrw(numnod))
79 marq2 = 0
80 marqm2 = 0
81
82
83
84 k=0
85 kk=0
86 rbwarn = 0
87 rb2warn = 0
88 DO n=1,nrwall
89
90 jwarn = 0
91 nsl=nprw(n)
92 ityp=nprw(n+3*nrwall)
93 j=0
94 DO l=1,nsl
95 i=lprw(k+l)
96 ikk=iabs(ikine(i))
97 IF(irb(ikk)/=0.OR.itf(ikk)/=0)THEN
98 rbwarn = rbwarn + 1
99 jwarn = jwarn+1
100 IF(irb(ikk)/=0 .AND. marq2 == 0) marq2 = 1
101 IF(itf(ikk)/=0 .AND. marqm2 == 0) marqm2 = 1
102 IF(iwl(ikine(i))==1)ikine(i) = ikine(i) - 4
103
104 ELSE
105 IF (irb2(ikk)/=0) rb2warn = rb2warn + 1
106 j=j+1
107 lprw(kk+j)=lprw(k+l)
108 ENDIF
109 ENDDO
110 k = k+nsl
111 nsl=j
112 kk = kk+nsl
113 nprw(n)=nsl
114 IF(ityp<0)THEN
115 ne=nint(rwl(8,n))
116 DO i=1,ne
117 lprw(kk+i)=lprw(k+i)
118 ENDDO
119 k = k+ne
120 kk = kk+ne
121 ENDIF
122 IF (jwarn>0) THEN
123 id=nom_opt(1,ptr_nopt_rwall+n)
125 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rwall+n),ltitr)
127 . msgtype=msgwarning,
128 . anmode=aninfo_blind_2,
130 . c1=titr,
131 . i2=jwarn)
132 ENDIF
133 ENDDO
134
135
136
137
138
139
140 nun=0
141 DO i=1,nrbe3
142 iad = irbe3(1,i)
143 ipen= irbe3(9,i)
144 IF (ipen>0) cycle
145 nm = irbe3(5,i)
146 DO j =1,nm
147 m = lrbe3(iad+j)
148 id=nom_opt(1,ptr_nopt_rbe3+i)
150 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rbe3+i),ltitr)
151 IF (ikrbe2(ikine(m))==1) THEN
152 IF (ipen<0) THEN
154 . msgtype=msgerror,
155 . anmode=aninfo_blind_1,
157 . c1=titr,
158 . i2=itab(m))
159 RETURN
160 ELSE
162 . msgtype=msgwarning,
163 . anmode=aninfo_blind_1,
165 . c1=titr,
166 . i2=itab(m))
167 irbe3(9,i) = 1
168 END IF
169 ENDIF
170 IF (itf(ikine(m))==1) THEN
171 IF (ipen<0) THEN
173 . msgtype=msgerror,
174 . anmode=aninfo_blind_1,
176 . c1=titr,
177 . i2=itab(m))
178 RETURN
179 ELSE
181 . msgtype=msgwarning,
182 . anmode=aninfo_blind_1,
184 . c1=titr,
185 . i2=itab(m))
186 irbe3(9,i) = 1
187 END IF
188 ENDIF
189 ENDDO
190 ENDDO
191
192
193
194 DO i=1,nrbe2
195 m = irbe2(3,i)
196 id=nom_opt(1,ptr_nopt_rbe2+i)
198 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rbe2+i),ltitr)
199 IF (itf(ikine(m))==1) THEN
201 . msgtype=msgerror,
202 . anmode=aninfo_blind_1,
204 . c1=titr,
205 . i2=itab(m))
206 RETURN
207 ENDIF
208 ENDDO
209
210
211
212 DO i=1,nrbody
213 m=npby(1,i)
214 IF (ikrbe2(ikine(m))==1) THEN
215
216
219 . nom_opt(lnopt1-ltitr+1,i),ltitr)
221 . msgtype=msgerror,
222 . anmode=aninfo_blind_1,
224 . c1=titr,
225 . i2=itab(m))
226 RETURN
227 ENDIF
228 ENDDO
229
230
231
232 DO i=1,nrbody
233 m=npby(1,i)
234 IF (ikrbe3(ikine(m))==1) THEN
235 DO n=1,nrbe3
236 nsl= irbe3(3,n)
237 ipen= irbe3(9,n)
238 IF (ipen>0) cycle
239 IF (nsl==m) THEN
240 IF (ipen<0) THEN
243 . nom_opt(lnopt1-ltitr+1,i),ltitr)
245 . msgtype=msgerror,
246 . anmode=aninfo_blind_1,
248 . c1=titr,
249 . i2=itab(m))
250 RETURN
251 ELSE
254 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rbe3+n),ltitr)
256 . msgtype=msgwarning,
257 . anmode=aninfo_blind_1,
259 . c1=titr,
260 . i2=itab(m))
261 irbe3(9,n) = 1
262 END IF
263 END IF
264 END DO
265 END IF
266 ENDDO
267
268
269
270 DO i=1,nrbe2
271 m = irbe2(3,i)
272 DO j =1,nrbody
273 IF(npby(1,j)==m)THEN
274 id=nom_opt(1,ptr_nopt_rbe2+i)
276 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rbe2+i),ltitr)
278 . msgtype=msgerror,
279 . anmode=aninfo_blind_1,
281 . c1=titr,
282 . i2=itab(m))
283 RETURN
284 ENDIF
285 ENDDO
286 ENDDO
287
288
289
290 krb = 0
291 DO n=1,nrbykin
292 nslrb = npby(2,n)
293 krb= krb+nslrb
294 ENDDO
295 DO n=1,nrbylag
296 nslrb = npby(2,n)
297 krb= krb+3*nslrb
298 ENDDO
299 DO n=1,nrbykin
301 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,n),ltitr)
302 DO i=1,krb
303 IF(npby(1,n)==lpby(i))THEN
305 . msgtype=msgwarning
306 . anmode=aninfo_blind_2,
308 . c1=titr,
309 . i2=itab(npby(1,n)))
310 ENDIF
311 ENDDO
312 ENDDO
313
314
315
316 IF (nbcscyc>0) THEN
317 DO i=1,numnod
318 IF (itagcyc(i)==0 .OR. ikine(i)==0) cycle
319
320 IF (irb(ikine(i))/=0 ) THEN
321 k=0
322 DO n=1,nrbykin
323 nsl=npby(2,n)
324
325 IF(npby(7,n)/=0)THEN
327 DO j=1,nsl
328 IF (lpby(j+k)==i) THEN
329 CALL ancmsg(msgid=1754,anmode=aninfo,msgtype=msgerror,
330 . i1=itagcyc(i),i2=itab(i),i3=
id)
331 END IF
332 ENDDO
333 ENDIF
334 k=k+nsl
335 ENDDO
336 END IF
337
338 IF (ikrbe2(ikine(i))/=0 ) THEN
339 DO n=1,nrbe2
340 k = irbe2(1,n)
341 nsl= irbe2(5,n)
343 DO j=1,nsl
344 IF (lrbe2(j+k)==i) THEN
345 CALL ancmsg(msgid=1755,anmode=aninfo,msgtype=msgerror,
346 . i1=itagcyc(i),i2=itab(i),i3=
id)
347 END IF
348 ENDDO
349 ENDDO
350 END IF
351
352 IF (ikrbe3(ikine(i))/=0 ) THEN
353 DO n=1,nrbe3
354 nsl= irbe3(3,n)
356 IF (nsl==i) THEN
357 CALL ancmsg(msgid=1756,anmode=aninfo,msgtype=msgerror,
358 . i1=itagcyc(i),i2=itab(i),i3=
id)
359 END IF
360 ENDDO
361 END IF
362
363 IF (irlk(ikine(i))/=0 ) THEN
364 CALL ancmsg(msgid=1757,anmode=aninfo,msgtype=msgerror,
365 . i1=itagcyc(i),i2=itab(i))
366 END IF
367 ENDDO
368 END IF
369
370 IF(ipri>=6)THEN
371 WRITE(iout,*)' NODES WITH KINEMATIC CONDITIONS:'
372 WRITE(iout,*)' --------------------------------'
373 k = 0
374 DO i=1,numnod
375 IF(ikine(i)/=0)THEN
376 k = k + 1
377 ik(k) = itab(i)
378 IF(k==10)THEN
379 WRITE(iout,fmt=fmw_10i)(ik(j),j=1,k)
380 k = 0
381 ENDIF
382 ENDIF
383 ENDDO
384 IF(k/=10) WRITE(iout,fmt=fmw_10i)(ik(j),j=1,k)
385 ENDIF
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401 DO i=1,numnod
402 nkin(i) = 0
403 nkindouble(i) = 0
404 ENDDO
405 DO i=1,numnod
406 nkin(i) = ibc(ikine(i))+itf(ikine(i))+iwl(ikine(i))+
407 . irb(ikine(i))+irb2(ikine(i))+
408 . ivf(ikine(i))+irv(ikine(i))+ijo(ikine(i))+
409 . irbm(ikine(i))+ilmult(ikine(i))+irlk(ikine(i))+
410 . ikrbe2(ikine(i))+ikrbe3(ikine(i))+
411 . ibc(ikine(i+3*numnod))+itf(ikine(i+3*numnod))+
412 . iwl(ikine(i+3*numnod))+irb(ikine(i+3*numnod))+
413 . irb2(ikine(i+3*numnod))+ivf(ikine(i+3*numnod))+
414 . irv(ikine(i+3*numnod))+ijo(ikine(i+3*numnod))+
415 . irbm(ikine(i+3*numnod))+ilmult(ikine(i+3*numnod))+
416 . irlk(ikine(i+3*numnod))+ikrbe2(ikine(i+3*numnod))+
417 . ikrbe3(ikine(i+3*numnod))
418 ENDDO
419
420 flag_ikcond = 0
421 DO i=1,8192
422 marqueur(i) = 0
423 ENDDO
424 DO i=1,13
425 marqueurdouble(i) = 0
426 ENDDO
427 DO i=1,numnod
428 IF(nkin(i)>=2)THEN
429 IF (ibc(ikine(i))== 1
430 . .AND. ibc(ikine(i+3*numnod))== 1) THEN
431 marqueurdouble(1) = 1
432 flag_ikcond = 1
433 ENDIF
434 IF (itf(ikine(i))== 1
435 . .AND. itf(ikine(i+3*numnod))== 1) THEN
436 marqueurdouble(2) = 1
437 flag_ikcond = 1
438 ENDIF
439 IF (iwl(ikine(i))== 1
440 . .AND. iwl(ikine(i+3*numnod))== 1) THEN
441 marqueurdouble(3) = 1
442 flag_ikcond = 1
443 ENDIF
444 IF (irb(ikine(i))== 1
445 . .AND. irb(ikine(i+3*numnod))== 1) THEN
446 marqueurdouble(4) = 1
447 flag_ikcond = 1
448 ENDIF
449 IF (irb2(ikine(i))== 1
450 . .AND. irb2(ikine(i+3*numnod))== 1) THEN
451 marqueurdouble(5) = 1
452 flag_ikcond = 1
453 ENDIF
454 IF (ivf(ikine(i))== 1
455 . .AND. ivf(ikine(i+3*numnod))== 1) THEN
456 marqueurdouble(6) = 1
457 flag_ikcond = 1
458 ENDIF
459 IF (irv(ikine(i))== 1
460 . .AND. irv(ikine(i+3*numnod))== 1) THEN
461 marqueurdouble(7) = 1
462 flag_ikcond = 1
463 ENDIF
464 IF (ijo(ikine(i))== 1
465 . .AND. ijo(ikine(i+3*numnod))== 1) THEN
466 marqueurdouble(8) = 1
467 flag_ikcond = 1
468 ENDIF
469 IF (irbm(ikine(i))== 1
470 . .AND. irbm(ikine(i+3*numnod))== 1) THEN
471 marqueurdouble(9) = 1
472 flag_ikcond = 1
473 ENDIF
474 IF (ilmult(ikine(i))== 1
475 . .AND. ilmult(ikine(i+3*numnod))== 1) THEN
476 marqueurdouble(10) = 1
477 flag_ikcond = 1
478 ENDIF
479 IF (irlk(ikine(i))== 1
480 . .AND. irlk(ikine(i+3*numnod))== 1) THEN
481 marqueurdouble(11) = 1
482 flag_ikcond = 1
483 ENDIF
484 IF (ikrbe2(ikine(i))== 1
485 . .AND. ikrbe2(ikine(i+3*numnod))== 1) THEN
486 marqueurdouble(12) = 1
487 flag_ikcond = 1
488 ENDIF
489 IF (ikrbe3(ikine(i))== 1
490 . .AND. ikrbe3(ikine(i+3*numnod))== 1) THEN
491 marqueurdouble(13) = 1
492 flag_ikcond = 1
493 ENDIF
494 ENDIF
495 ENDDO
496
497 nikrw = 0
498 DO i = 1,numnod
499 IF ( ikine(i) /= 0 .AND. ikine(i)/=1 .AND. ikine(i)/=2
500 . .AND. ikine(i)/=4 .AND. ikine(i)/=8 .AND. ikine
501 . .AND. ikine(i)/=32 .AND. ikine(i)/=64
502 . .AND. ikine(i)/=128 .AND. ikine(i)/=256
503 . .AND. ikine(i)/=512 .AND. ikine(i)/=1024
504 . .AND. ikine(i)/=2048 .AND. ikine(i)/=4096
505 . .AND. ikine(i+4*numnod) /= 0 ) THEN
506 IF(iwl(ikine(i))== 1 .AND. irb(ikine(i))== 1
507 . .AND. itf(ikine(i))== 1 )THEN
508 IF (ikine(i)>14) THEN
509 marqueur(ikine(i)) = 3
510 flag_ikcond = 1
511 ELSE
512 marqueur(ikine(i)) = 0
513 ENDIF
514 ELSEIF(iwl(ikine(i))== 1 .AND. irb(ikine(i))== 1)THEN
515 IF (ikine(i)>12) THEN
516 marqueur(ikine(i)) = 2
517 flag_ikcond = 1
518 ELSE
519 marqueur(ikine(i)) = 0
520 ENDIF
521 ELSEIF(iwl(ikine(i))== 1 .AND. itf(ikine(i))== 1)THEN
522 IF (ikine(i)>6) THEN
523 marqueur(ikine(i)) = -2
524 flag_ikcond = 1
525 ELSE
526 marqueur(ikine(i)) = 0
527 ENDIF
528 ELSE
529 marqueur(ikine(i)) = 1
530 flag_ikcond = 1
531 nikrw = nikrw + 1
532 ikrw(nikrw) = itab(i)
533 ENDIF
534 ENDIF
535 ENDDO
536
537 IF (ipri>=6 .AND. flag_ikcond==1) THEN
538 WRITE(iout,*)' '
539 WRITE(iout,*)
540 . 'LIST OF POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS :'
541 WRITE(iout,*)'--------------------------------------------------'
542 WRITE(iout,*)' '
543
544 DO i=1,13
545 IF ( marqueurdouble(i) == 1 )THEN
546 IF ( i == 1) THEN
547 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
548 .ETWEEN'
549 WRITE(iout,*)' SEVERAL BOUNDARY CONDITIONS :'
550 WRITE(iout,*)' '
551 WRITE(iout,*)'NODES :'
552 k = 0
553 DO j = 1,numnod
554 IF (ibc(ikine(j))== 1
555 . .AND. ibc(ikine(j+3*numnod))== 1) THEN
556 k = k + 1
557 ik(k) = itab(j)
558 IF(k==10)THEN
559 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
560 k = 0
561 ENDIF
562 ENDIF
563 ENDDO
564 IF(k/=0)THEN
565 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
566 ENDIF
567 WRITE(iout,*)' '
568 ENDIF
569 IF ( i == 2) THEN
570 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
571 .ETWEEN'
572 WRITE(iout,*)' SEVERAL INTERFACES TYPE 1 2 12 OR 9'
573 WRITE(iout,*)' '
574 WRITE(iout,*)'NODES :'
575 k = 0
576 DO j = 1,numnod
577 IF (itf(ikine(j))== 1
578 . .AND. itf(ikine(j+3*numnod))== 1) THEN
579 k = k + 1
580 ik(k) = itab(j)
581 IF(k==10)THEN
582 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
583 k = 0
584 ENDIF
585 ENDIF
586 ENDDO
587 IF(k/=0)THEN
588 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
589 ENDIF
590 WRITE(iout,*)' '
591 ENDIF
592 IF ( i == 3) THEN
593 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
594 .ETWEEN'
595 WRITE(iout,*)' SEVERAL RIGID WALLS'
596 WRITE(iout,*)' '
597 WRITE(iout,*)'NODES :'
598 k = 0
599 DO j = 1,numnod
600 IF (iwl(ikine(j))== 1
601 . .AND. iwl(ikine(j+3*numnod))== 1) THEN
602 k = k + 1
603 ik(k) = itab(j)
604 IF(k==10)THEN
605 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
606 k = 0
607 ENDIF
608 ENDIF
609 ENDDO
610 IF(k/=0)THEN
611 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
612 ENDIF
613 WRITE(iout,*)' '
614 ENDIF
615 IF ( i == 4 .OR. i == 5) THEN
616 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
617 .ETWEEN'
618 WRITE(iout,*)' SEVERAL RIGID BODIES'
619 WRITE(iout,*)' '
620 WRITE(iout,*)'NODES :'
621 k = 0
622 DO j = 1,numnod
623 IF (irb(ikine(j))== 1
624 . .AND. irb(ikine(j+3*numnod))== 1) THEN
625 k = k + 1
626 ik(k) = itab(j)
627 IF(k==10)THEN
628 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
629 k = 0
630 ENDIF
631 ENDIF
632 ENDDO
633 IF(k/=0)THEN
634 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
635 ENDIF
636 WRITE(iout,*)' '
637 ENDIF
638 IF ( i == 6) THEN
639 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
640 .ETWEEN'
641 WRITE(iout,*)' SEVERAL IMPOSED ACCELERATIONS, IMPOSED DEP
642 .LACEMENTS, IMPOSED VELOCITIES'
643 WRITE(iout,*)' '
644 WRITE(iout,*)'NODES :'
645 k = 0
646 DO j = 1,numnod
647 IF (ivf(ikine(j))== 1
648 . .AND. ivf(ikine(j+3*numnod))== 1) THEN
649 k = k + 1
650 ik(k) = itab(j)
651 IF(k==10)THEN
652 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
653 k = 0
654 ENDIF
655 ENDIF
656 ENDDO
657 IF(k/=0)THEN
658 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
659 ENDIF
660 WRITE(iout,*)' '
661 ENDIF
662 IF ( i == 7) THEN
663 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
664 .ETWEEN'
665 WRITE(iout,*)' SEVERAL RIVETS'
666 WRITE(iout,*)' '
667 WRITE(iout,*)'NODES :'
668 k = 0
669 DO j = 1,numnod
670 IF (irv(ikine(j))== 1
671 . .AND. irv(ikine(j+3*numnod))== 1) THEN
672 k = k + 1
673 ik(k) = itab(j)
674 IF(k==10)THEN
675 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
676 k = 0
677 ENDIF
678 ENDIF
679 ENDDO
680 IF(k/=0)THEN
681 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
682 ENDIF
683 WRITE(iout,*)' '
684 ENDIF
685 IF ( i == 8) THEN
686 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
687 .ETWEEN'
688 WRITE(iout,*)' SEVERAL CYLINDRICAL JOINTS'
689 WRITE(iout,*)' '
690 WRITE(iout,*)'NODES :'
691 k = 0
692 DO j = 1,numnod
693 IF (ijo(ikine(j))== 1
694 . .AND. ijo(ikine(j+3*numnod))== 1) THEN
695 k = k + 1
696 ik(k) = itab(j)
697 IF(k==10)THEN
698 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
699 k = 0
700 ENDIF
701 ENDIF
702 ENDDO
703 IF(k/=0)THEN
704 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
705 ENDIF
706 WRITE(iout,*)' '
707 ENDIF
708 IF ( i == 9) THEN
709 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
710 .ETWEEN'
711 WRITE(iout,*)' SEVERAL IMPOSED BODY VELOCITIES'
712 WRITE(iout,*)' '
713 WRITE(iout,*)'NODES :'
714 k = 0
715 DO j = 1,numnod
716 IF (ilmult(ikine(j))== 1
717 . .AND. ilmult(ikine(j+3*numnod))== 1) THEN
718 k = k + 1
719 ik(k) = itab(j)
720 IF(k==10)THEN
721 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
722 k = 0
723 ENDIF
724 ENDIF
725 ENDDO
726 IF(k/=0)THEN
727 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
728 ENDIF
729 WRITE(iout,*)' '
730 ENDIF
731 IF ( i == 10) THEN
732 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
733 .ETWEEN'
734 WRITE(iout,*)' SEVERAL LAGRANGE MULTIPLIERS'
735 WRITE(iout,*)' '
736 WRITE(iout,*)'NODES :'
737 k = 0
738 DO j = 1,numnod
739 IF (ibc(ikine(j))== 1
740 . .AND. ibc(ikine(j+3*numnod))== 1) THEN
741 k = k + 1
742 ik(k) = itab(j)
743 IF(k==10)THEN
744 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
745 k = 0
746 ENDIF
747 ENDIF
748 ENDDO
749 IF(k/=0)THEN
750 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
751 ENDIF
752 WRITE(iout,*)' '
753 ENDIF
754 IF ( i == 11) THEN
755 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
756 .ETWEEN'
757 WRITE(iout,*)' SEVERAL RIGID LINKS :'
758 WRITE(iout,*)' '
759 WRITE(iout,*)'NODES :'
760 k = 0
761 DO j = 1,numnod
762 IF (irlk(ikine(j))== 1
763 . .AND. irlk(ikine(j+3*numnod))== 1) THEN
764 k = k + 1
765 ik(k) = itab(j)
766 IF(k==10)THEN
767 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
768 k = 0
769 ENDIF
770 ENDIF
771 ENDDO
772 IF(k/=0)THEN
773 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
774 ENDIF
775 WRITE(iout,*)' '
776 ENDIF
777 IF ( i == 12) THEN
778 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
779 .ETWEEN'
780 WRITE(iout,*)' SEVERAL RBE2 :'
781 WRITE(iout,*)' '
782 WRITE(iout,*)'NODES :'
783 k = 0
784 DO j = 1,numnod
785 IF (ikrbe2(ikine(j))== 1
786 . .AND. ikrbe2(ikine(j+3*numnod))== 1) THEN
787 k = k + 1
788 ik(k) = itab(j)
789 IF(k==10)THEN
790 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
791 k = 0
792 ENDIF
793 ENDIF
794 ENDDO
795 IF(k/=0)THEN
796 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
797 ENDIF
798 WRITE(iout,*)' '
799 ENDIF
800 IF ( i == 13) THEN
801 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
802 .ETWEEN'
803 WRITE(iout,*)' SEVERAL RBE3 :'
804 WRITE(iout,*)' '
805 WRITE(iout,*)'NODES :'
806 k = 0
807 DO j = 1,numnod
808 IF (ikrbe3(ikine(j))== 1
809 . .AND. ikrbe3(ikine(j+3*numnod))== 1) THEN
810 k = k + 1
811 ik(k) = itab(j)
812 IF(k==10)THEN
813 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
814 k = 0
815 ENDIF
816 ENDIF
817 ENDDO
818 IF(k/=0)THEN
819 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
820 ENDIF
821 WRITE(iout,*)' '
822 ENDIF
823 ENDIF
824 ENDDO
825
826 DO i=1,8192
827 IF ( marqueur(i) /= 0 )THEN
828 WRITE(iout,*)
829 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
830 DO j=1,abs(marqueur(i))
831
832 IF (j==1 .AND. abs(marqueur(i)) == 2 ) iwl(i)=iwl(i)-1
833 IF (j==1 .AND. abs(marqueur(i)) == 3 ) THEN
834 iwl(i)=iwl(i)-1
835 itf(i) = itf(i) - 1
836 ENDIF
837 IF (j==2 .AND. marqueur(i) == 2 ) THEN
838 WRITE(iout,*)
839 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
840 iwl(i) = iwl(i) + 1
841 irb(i) = irb(i) - 1
842 ENDIF
843 IF (j==2 .AND. marqueur(i) == -2 ) THEN
844 WRITE(iout,*)
845 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
846 iwl(i) = iwl(i) + 1
847 itf(i) = itf(i) - 1
848 ENDIF
849 IF (j==2 .AND. marqueur(i) == 3 ) THEN
850 WRITE(iout,*)
851 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
852 iwl(i) = iwl(i) + 1
853 irb(i) = irb(i) - 1
854 ENDIF
855 IF (j==3 .AND. marqueur(i) == 3 ) THEN
856 WRITE(iout,*)
857 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
858 iwl(i) = iwl(i) - 1
859 itf(i) = itf(i) +1
860 ENDIF
861
862 IF (ibc(i)== 1) THEN
863 WRITE(iout,*)' BOUNDARY CONDITION'
864 ENDIF
865 IF (itf(i)== 1) THEN
866 WRITE(iout,*)' INTERFACE TYPE 1 2 12 OR 9'
867 ENDIF
868 IF (iwl(i)== 1) THEN
869 WRITE(iout,*)' RIGID WALL'
870 ENDIF
871 IF (irb(i)== 1) THEN
872 WRITE(iout,*)' RIGID BODY'
873 ENDIF
874 IF (irb2(i)== 1) THEN
875 WRITE(iout,*)' RIGID BODY'
876 ENDIF
877 IF (ivf(i)== 1) THEN
878 WRITE(iout,*)' IMPOSED ACCELERATION, IMPOSED DISPLACEMENT
879 ., IMPOSED VELOCITY'
880 ENDIF
881 IF (irv(i)== 1) THEN
882 WRITE(iout,*)' RIVET'
883 ENDIF
884 IF (ijo(i)== 1) THEN
885 WRITE(iout,*)' CYLINDRICAL JOINT'
886 ENDIF
887 IF (irbm(i)== 1) THEN
888 WRITE(iout,*)' IMPOSED BODY VELOCITY'
889 ENDIF
890 IF (ilmult(i)== 1) THEN
891 WRITE(iout,*)' LAGRANGE MULTIPLIERS'
892 ENDIF
893 IF (irlk(i)== 1) THEN
894 WRITE(iout,*)' RIGID LINK'
895 ENDIF
896 IF (ikrbe2(i)== 1) THEN
897 WRITE(iout,*)' RBE2'
898 ENDIF
899 IF (ikrbe3(i)== 1) THEN
900 WRITE(iout,*)' RBE3'
901 ENDIF
902 WRITE(iout,*)
903 . ' '
904 WRITE(iout,*)'NODES :'
905 k = 0
906 DO j1 = 1,numnod
907 IF (ikine(j1) == i) THEN
908 k = k + 1
909 ik(k) = itab(j1)
910 IF(k==10)THEN
911 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
912 k = 0
913 ENDIF
914 ENDIF
915 ENDDO
916 IF(k/=0)THEN
917 WRITE(iout,fmt=fmw_10i)(ik(l),l=1,k)
918 ENDIF
919 WRITE(iout,*)' '
920 IF (j==2 .AND.marqueur(i) == 2 )irb(i) = irb(i) + 1
921 IF (j==2 .AND.marqueur(i) == -2 )itf(i) = itf(i) + 1
922 IF (j==3 .AND.marqueur(i) == 3 ) THEN
923 irb(i) = irb(i) + 1
924 iwl(i) = iwl(i) + 1
925 ENDIF
926 ENDDO
927 ENDIF
928 ENDDO
929 ENDIF
930
931 IF(kwarn>0)THEN
932 CALL ancmsg(msgid=312,anmode=aninfo,msgtype=msgwarning,
933 . i1=kwarn)
934 WRITE(iout,*)' '
935 WRITE(iout,*)' '
936
937
938 ENDIF
939
940
941
942 WRITE(iout,*)'SUMMARY OF POSSIBLE INCOMPATIBLE KINEMATIC CONDITION
943 .S :'
944 WRITE(iout,*)'--------------------------------------------------
945 .---'
946 WRITE(iout,*)' '
947 IF (flag_ikcond==0) THEN
948 WRITE(iout,*)'NO TRUE INCOMPATIBLE KINEMATIC CONDITION'
949 IF (marq2 == 1) THEN
950 WRITE(iout,*)' - AFTER SECONDARY NODES OF RIGID BODIES WERE SUPPRE
951 .SSED FROM RIGID WALL(S)'
952 ENDIF
953 IF (marqm2 == 1) THEN
954 WRITE(iout,*)' - AFTER SECONDARY NODES OF INTERFACES TYPE 1,2,12 O
955 .R 9 WERE SUPPRESSED'
956 WRITE(iout,*)' FROM RIGID WALL(S)'
957 ENDIF
958 ENDIF
959
960 DO i=1,13
961 IF ( marqueurdouble(i) == 1 )THEN
962 IF ( i == 1) THEN
963 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
964 .ETWEEN'
965 WRITE(iout,*)' SEVERAL BOUNDARY CONDITIONS'
966 WRITE(iout,*)' '
967 WRITE(iout,*)' '
968 ENDIF
969 IF ( i == 2) THEN
970 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
971 .ETWEEN'
972 WRITE(iout,*)' SEVERAL INTERFACES TYPE 1 2 12 OR 9'
973 WRITE(iout,*)' '
974 WRITE(iout,*)' '
975 ENDIF
976 IF ( i == 3) THEN
977 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
978 .ETWEEN'
979 WRITE(iout,*)' SEVERAL RIGID WALLS'
980 WRITE(iout,*)' '
981 WRITE(iout,*)' '
982 ENDIF
983 IF ( i == 4 .OR. i == 5) THEN
984 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
985 .ETWEEN'
986 WRITE(iout,*)' SEVERAL RIGID BODIES'
987 WRITE(iout,*)' '
988 WRITE(iout,*)' '
989 ENDIF
990 IF ( i == 6) THEN
991 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
992 .ETWEEN'
993 WRITE(iout,*)' SEVERAL IMPOSED ACCELERATIONS, IMPOSED DEP
994 .LACEMENTS, IMPOSED VELOCITIES'
995 WRITE(iout,*)' '
996 WRITE(iout,*)' '
997 ENDIF
998 IF ( i == 7) THEN
999 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
1000 .ETWEEN'
1001 WRITE(iout,*)' SEVERAL RIVETS'
1002 WRITE(iout,*)' '
1003 WRITE(iout,*)' '
1004 ENDIF
1005 IF ( i == 8) THEN
1006 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
1007 .ETWEEN'
1008 WRITE(iout,*)' SEVERAL CYLINDRICAL JOINTS'
1009 WRITE(iout,*)' '
1010 WRITE(iout,*)' '
1011 ENDIF
1012 IF ( i == 9) THEN
1013 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
1014 .ETWEEN'
1015 WRITE(iout,*)' SEVERAL IMPOSED BODY VELOCITIES'
1016 WRITE(iout,*)' '
1017 WRITE(iout,*)' '
1018 ENDIF
1019 IF ( i == 10) THEN
1020 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
1021 .ETWEEN'
1022 WRITE(iout,*)' SEVERAL LAGRANGE MULTIPLIERS'
1023 WRITE(iout,*)' '
1024 WRITE(iout,*)' '
1025 ENDIF
1026 IF ( i == 11) THEN
1027 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
1028 .ETWEEN'
1029 WRITE(iout,*)' SEVERAL RIGID LINKS'
1030 WRITE(iout,*)' '
1031 WRITE(iout,*)' '
1032 ENDIF
1033 IF ( i == 12) THEN
1034 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
1035 .ETWEEN'
1036 WRITE(iout,*)' SEVERAL RBE2'
1037 WRITE(iout,*)' '
1038 WRITE(iout,*)' '
1039 ENDIF
1040 IF ( i == 13) THEN
1041 WRITE(iout,*)'- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS B
1042 .ETWEEN'
1043 WRITE(iout,*)' SEVERAL RBE3'
1044 WRITE(iout,*)' '
1045 WRITE(iout,*)' '
1046 ENDIF
1047 ENDIF
1048 ENDDO
1049
1050 DO i=1,8192
1051 IF ( marqueur(i) /= 0 )THEN
1052 WRITE(iout,*)
1053 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
1054 DO j=1,abs(marqueur(i))
1055 IF (j==1 .AND. abs(marqueur(i)) == 2 ) iwl(i)=iwl(i)-1
1056 IF (j==1 .AND. abs(marqueur(i)) == 3 ) THEN
1057 iwl(i )= iwl(i) - 1
1058 itf(i) = itf(i) - 1
1059 ENDIF
1060 IF (j==2 .AND. marqueur(i) == 2 ) THEN
1061 WRITE(iout,*)
1062 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
1063 iwl(i) = iwl(i) + 1
1064 irb(i) = irb(i) - 1
1065 ENDIF
1066 IF (j==2 .AND. marqueur(i) == -2 ) THEN
1067 WRITE(iout,*)
1068 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
1069 iwl(i) = iwl(i) + 1
1070 itf(i) = itf(i) - 1
1071 ENDIF
1072 IF (j==2 .AND. marqueur(i) == 3 ) THEN
1073 WRITE(iout,*)
1074 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
1075 iwl(i) = iwl(i) + 1
1076 irb(i) = irb(i) - 1
1077 ENDIF
1078 IF (j==3 .AND. marqueur(i) == 3 ) THEN
1079 WRITE(iout,*)
1080 . '- POSSIBLE INCOMPATIBLE KINEMATIC CONDITIONS BETWEEN:'
1081 iwl(i) = iwl(i) - 1
1082 itf(i) = itf(i) + 1
1083 ENDIF
1084
1085 IF (ibc(i)== 1) THEN
1086 WRITE(iout,*)' BOUNDARY CONDITION'
1087 ENDIF
1088 IF (itf(i)== 1) THEN
1089 WRITE(iout,*)' INTERFACE TYPE 1 2 12 OR 9'
1090 ENDIF
1091 IF (iwl(i)== 1) THEN
1092 WRITE(iout,*)' RIGID WALL'
1093 ENDIF
1094 IF (irb(i)== 1) THEN
1095 WRITE(iout,*)' RIGID BODY'
1096 ENDIF
1097 IF (irb2(i)== 1) THEN
1098 WRITE(iout,*)' RIGID BODY'
1099 ENDIF
1100 IF (ivf(i)== 1) THEN
1101 WRITE(iout,*)' IMPOSED ACCELERATION, IMPOSED DISPLACEMENT
1102 ., IMPOSED VELOCITY'
1103 ENDIF
1104 IF (irv(i)== 1) THEN
1105 WRITE(iout,*)' RIVET'
1106 ENDIF
1107 IF (ijo(i)== 1) THEN
1108 WRITE(iout,*)' CYLINDRICAL JOINT'
1109 ENDIF
1110 IF (irbm(i)== 1) THEN
1111 WRITE(iout,*)' IMPOSED BODY VELOCITY'
1112 ENDIF
1113 IF (ilmult(i)== 1) THEN
1114 WRITE(iout,*)' LAGRANGE MULTIPLIERS'
1115 ENDIF
1116 IF (irlk(i)== 1) THEN
1117 WRITE(iout,*)' RIGID LINK'
1118 ENDIF
1119 IF (ikrbe2(i)== 1) THEN
1120 WRITE(iout,*)' RBE2'
1121 ENDIF
1122 IF (ikrbe3(i)== 1) THEN
1123 WRITE(iout,*)' RBE3'
1124 ENDIF
1125 IF (j==2 .AND.marqueur(i) == 2 )irb(i) = irb(i) + 1
1126 IF (j==2 .AND.marqueur(i) == -2 )itf(i) = itf(i) + 1
1127 IF (j==3 .AND.marqueur(i) == 3 ) THEN
1128 irb(i) = irb(i) + 1
1129 iwl(i) = iwl(i) + 1
1130 ENDIF
1131 IF(kwarn>0.AND.ipri>=3)THEN
1132 WRITE(iout,*)'NODES :'
1133 WRITE(iout,fmt=fmw_10i)(ikrw(l),l=1,nikrw)
1134 ENDIF
1135 WRITE(iout,*)' '
1136 WRITE(iout,*)' '
1137 ENDDO
1138 ENDIF
1139 ENDDO
1140
1141 nun=0
1142 DO i=1,nrbe3
1143 ipen = irbe3(9,i)
1144 IF (ipen>0) nun = nun + 1
1145 IF (ipen <0) irbe3(9,i) =0
1146 END DO
1147 IF (nun>0) THEN
1148 WRITE(iout,'(/I8,X,A)')nun,'OF RBE3 HAVE BEEN SWITCHED TO PENALTY METHOD'
1149 ENDIF
1150
1151 DO i=1,numnod
1152
1153
1154 kinet(i)=ikine(i)
1155 ENDDO
1156 DEALLOCATE(nkindouble,nkin,ikrw)
1157
1158
1159
1160
1161
1162
1163 RETURN
1164
1165
1166
1167 jwarn = 0
1168 DO 100 i=1,numnod
1169 nk = ibc(ikine(i))+itf(ikine(i))+iwl(ikine(i))+
1170 . irb(ikine(i))+irb2(ikine(i))+
1171 . ivf(ikine(i))+irv(ikine(i))+ijo(ikine(i))
1172 IF(nk>=2)THEN
1173 jwarn = jwarn+1
1174 WRITE(iout,*)
1175 . ' -',nk,' KINEMATIC CONDITIONS ON NODE',itab(i),':'
1176 IF(ibc(ikine(i))==1) WRITE(iout,*)
1177 . ' - BOUNDARY CONDITION'
1178 IF(itf(ikine(i))==1) WRITE(iout,*)
1179 . ' - INTERFACE TYPE 1 2 12 OR 9'
1180 IF(iwl(ikine(i))==1) WRITE(iout,*)
1181 . ' - RIGID WALL'
1182 IF(irb(ikine(i))==1) WRITE(iout,*)
1183 . ' - RIGID BODY'
1184 IF(irb2(ikine(i))==1) WRITE(iout,*)
1185 . ' - RIGID BODY'
1186 IF(ivf(ikine(i))==1) WRITE(iout,*)
1187 . ' - FIXED VELOCITY'
1188 IF(irv(ikine(i))==1) WRITE(iout,*)
1189 . ' - RIVET'
1190 IF(ijo(ikine(i))==1) WRITE(iout,*)
1191 . ' - CYLINDRICAL JOINT'
1192 IF(irbm(ikine(i))==1) WRITE(iout,*)
1193 . ' - IMPOSED BODY VELOCITY'
1194 IF(ilmult(ikine(i))==1) WRITE(iout,*)
1195 . ' - LAGRANGE MULTIPLIERS'
1196 ENDIF
1197 100 CONTINUE
1198
1199 iwarn = iwarn + jwarn
1200 IF(jwarn/=0)THEN
1201 WRITE(istdo,'(A,I8,A)') ' ** WARNING',jwarn,
1202 . ' NODES WITH INCOMPATIBLE KINEMATIC CONDITIONS'
1203 WRITE(iout,fmt=fmw_a_i_a) ' ** WARNING',jwarn,
1204 . ' NODES WITH INCOMPATIBLE KINEMATIC CONDITIONS'
1205 ENDIF
1206
1207 RETURN
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)