OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
kinchk.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| kinchk ../starter/source/constraints/general/kinchk.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| fretitl2 ../starter/source/starter/freform.F
30!||--- uses -----------------------------------------------------
31!|| format_mod ../starter/share/modules1/format_mod.F90
32!|| message_mod ../starter/share/message_module/message_mod.F
33!||====================================================================
34 SUBROUTINE kinchk(IKINE,RWL,ITAB,NPRW,LPRW,KINET,
35 1 NPBY, LPBY,IRBE2,LRBE2,IRBE3,LRBE3,
36 2 NOM_OPT,PTR_NOPT_RWALL,PTR_NOPT_RBE2,
37 3 PTR_NOPT_RBE3,ITAGCYC)
38 USE message_mod
40 USE format_mod, ONLY : fmw_a_i_a, fmw_10i
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
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"
55C-----------------------------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
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,*)
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
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
77C-----------------------------------------------------------------
78 ALLOCATE(nkindouble(numnod),nkin(numnod),ikrw(numnod))
79 marq2 = 0
80 marqm2 = 0
81C=======================================================================
82C CORRECTIONS AUTOMATIQUES INTERFACE 1,2,9 OU RBODY AVEC RWALL
83C=======================================================================
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)
124 CALL fretitl2(titr,
125 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rwall+n),ltitr)
126 CALL ancmsg(msgid=446,
127 . msgtype=msgwarning,
128 . anmode=aninfo_blind_2,
129 . i1=id,
130 . c1=titr,
131 . i2=jwarn)
132 ENDIF
133 ENDDO
134C
135c CALL ANCHECK(71)
136C----------------------------------------------------------
137C - no-autorised hierarchy :Check des noeuds mains des RBE3 sont SECONDARY de RBE2,or INT2
138C----------------------------------------------------------
139! look at compatibility w/ BCS,RBODY and compute nrbe3_gp, ini penealty
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)
149 CALL fretitl2(titr,
150 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rbe3+i),ltitr)
151 IF (ikrbe2(ikine(m))==1) THEN
152 IF (ipen<0) THEN !error out
153 CALL ancmsg(msgid=805,
154 . msgtype=msgerror,
155 . anmode=aninfo_blind_1,
156 . i1=id,
157 . c1=titr,
158 . i2=itab(m))
159 RETURN
160 ELSE !switch to penalty
161 CALL ancmsg(msgid=3100,
162 . msgtype=msgwarning,
163 . anmode=aninfo_blind_1,
164 . i1=id,
165 . c1=titr,
166 . i2=itab(m))
167 irbe3(9,i) = 1
168 END IF !(IPEN<0)
169 ENDIF
170 IF (itf(ikine(m))==1) THEN
171 IF (ipen<0) THEN !error out
172 CALL ancmsg(msgid=1035,
173 . msgtype=msgerror,
174 . anmode=aninfo_blind_1,
175 . i1=id,
176 . c1=titr,
177 . i2=itab(m))
178 RETURN
179 ELSE !switch to penalty
180 CALL ancmsg(msgid=3096,
181 . msgtype=msgwarning,
182 . anmode=aninfo_blind_1,
183 . i1=id,
184 . c1=titr,
185 . i2=itab(m))
186 irbe3(9,i) = 1
187 END IF !(IPEN<0)
188 ENDIF
189 ENDDO
190 ENDDO
191C----------------------------------------------------------
192C - no-autorised hierarchy :Check des noeuds mains des RBE2 SECONDARY de INT2
193C----------------------------------------------------------
194 DO i=1,nrbe2
195 m = irbe2(3,i)
196 id=nom_opt(1,ptr_nopt_rbe2+i)
197 CALL fretitl2(titr,
198 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rbe2+i),ltitr)
199 IF (itf(ikine(m))==1) THEN
200 CALL ancmsg(msgid=1036,
201 . msgtype=msgerror,
202 . anmode=aninfo_blind_1,
203 . i1=id,
204 . c1=titr,
205 . i2=itab(m))
206 RETURN
207 ENDIF
208 ENDDO
209C----------------------------------------------------------
210C - no-autorised hierarchy :Check des noeuds mains des RBODY sont SECONDARY de RBE2
211C----------------------------------------------------------
212 DO i=1,nrbody
213 m=npby(1,i)
214 IF (ikrbe2(ikine(m))==1) THEN
215C CALL ANCWARN(806,ANINFO_BLIND_1)
216C NUN=NUN+1
217 id=nom_opt(1,i)
218 CALL fretitl2(titr,
219 . nom_opt(lnopt1-ltitr+1,i),ltitr)
220 CALL ancmsg(msgid=806,
221 . msgtype=msgerror,
222 . anmode=aninfo_blind_1,
223 . i1=id,
224 . c1=titr,
225 . i2=itab(m))
226 RETURN
227 ENDIF
228 ENDDO
229C----------------------------------------------------------
230C - no-autorised hierarchy :Check des noeuds mains des RBODY sont SECONDARY de RBE3
231C----------------------------------------------------------
232 DO i=1,nrbody
233 m=npby(1,i)
234 IF (ikrbe3(ikine(m))==1) THEN ! add here the case of switching to penalty of RBE3
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
241 id=nom_opt(1,i)
242 CALL fretitl2(titr,
243 . nom_opt(lnopt1-ltitr+1,i),ltitr)
244 CALL ancmsg(msgid=810,
245 . msgtype=msgerror,
246 . anmode=aninfo_blind_1,
247 . i1=id,
248 . c1=titr,
249 . i2=itab(m))
250 RETURN
251 ELSE ! switch to penalty of RBE3
252 id = irbe3(2,n)
253 CALL fretitl2(titr,
254 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rbe3+n),ltitr)
255 CALL ancmsg(msgid=3104,
256 . msgtype=msgwarning,
257 . anmode=aninfo_blind_1,
258 . i1=id,
259 . c1=titr,
260 . i2=itab(m))
261 irbe3(9,n) = 1
262 END IF ! (IPEN<0) THEN
263 END IF
264 END DO
265 END IF
266 ENDDO
267C----------------------------------------------------------
268C - Check des noeuds mains des RBE2 sont mains de RBODY
269C----------------------------------------------------------
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)
275 CALL fretitl2(titr,
276 . nom_opt(lnopt1-ltitr+1,ptr_nopt_rbe2+i),ltitr)
277 CALL ancmsg(msgid=807,
278 . msgtype=msgerror,
279 . anmode=aninfo_blind_1,
280 . i1=id,
281 . c1=titr,
282 . i2=itab(m))
283 RETURN
284 ENDIF
285 ENDDO
286 ENDDO
287C----------------------------------------------------------
288C - Check des noeuds mains des Rbody SECONDARY d'autres Rbodies
289C----------------------------------------------------------
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 ! possible zeros in LPBY
298 ENDDO
299 DO n=1,nrbykin
300 id=nom_opt(1,n)
301 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,n),ltitr)
302 DO i=1,krb
303 IF(npby(1,n)==lpby(i))THEN
304 CALL ancmsg(msgid=555,
305 . msgtype=msgwarning,
306 . anmode=aninfo_blind_2,
307 . i1=id,
308 . c1=titr,
309 . i2=itab(npby(1,n)))
310 ENDIF
311 ENDDO
312 ENDDO
313C----------------------------------------------------------
314C - Check incompatibility /BCS/CYCLIC
315C----------------------------------------------------------
316 IF (nbcscyc>0) THEN
317 DO i=1,numnod
318 IF (itagcyc(i)==0 .OR. ikine(i)==0) cycle
319C------- RBODY
320 IF (irb(ikine(i))/=0 ) THEN
321 k=0
322 DO n=1,nrbykin
323 nsl=npby(2,n)
324C------ not w/ Sensor
325 IF(npby(7,n)/=0)THEN
326 id=nom_opt(1,n)
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 !(IRB(IKINE(I))/=0 ) THEN
337C------- RBE2
338 IF (ikrbe2(ikine(i))/=0 ) THEN
339 DO n=1,nrbe2
340 k = irbe2(1,n)
341 nsl= irbe2(5,n)
342 id = irbe2(2,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
351C------- RBE3
352 IF (ikrbe3(ikine(i))/=0 ) THEN ! will be looked after
353 DO n=1,nrbe3
354 nsl= irbe3(3,n)
355 id = irbe3(2,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
362C------- RLINK
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 !(NBCSCYC>0) THEN
369C=======================================================================
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
386C
387C---------------------------------------------------------------
388C LISTE CONDITIONS INCOMPATIBLES PAR TYPE
389C LISTE DES NOEUDS CONCERNES
390C
391C NKIN(I) >= 2 => POSSIBLE CONDITIONS INCOMPATIBLES SUR LE NOEUD I
392C FLAG_IKCOND = 1 => CONDITIONS INCOMPATIBLES DANS LE MODELE
393C MARQUEURDOUBLE(I) = 1 => CONDITIONS INCOMPATIBLES ENTRE CONDITIONS
394C DE MEME TYPE SUR LE NOEUD I
395C MARQUEUR(I) != 0 => CONDITIONS INCOMPATIBLES ENTRE CONDITIONS
396C DE TYPES DIFFERENTS SUR LE NOEUD I
397C MARQUEUR(I) = 2 => CAS RBODY + RWALL
398C MARQUEUR(I) =-2 => CAS INTERFACES TYPE 1,2,9 + RWALL
399C MARQUEUR(I) = 3 => CAS INTERFACES TYPE 1,2,9 + RBODY + RWALL
400C---------------------------------------------------------------
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
419C---------------------------------------------------------------
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
496C---------------------------------------------------------------
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(i)/=16
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
536C---------------------------------------------------------------
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
825C '
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))
831C cas RBODY & RWALL, INTER 1_2_9 & RWALL, RBODY & INTER 1_2_9 & RWALL
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
861C
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
930C---------------------------------------------------------------
931 IF(kwarn>0)THEN
932 CALL ancmsg(msgid=312,anmode=aninfo,msgtype=msgwarning,
933 . i1=kwarn)
934 WRITE(iout,*)' '
935 WRITE(iout,*)' '
936c WRITE(IOUT,FMT=FMW_10I)(IKRW(L),L=1,KWARN)
937c
938 ENDIF
939C---------------------------------------------------------------
940C RESUME CONDITIONS INCOMPATIBLES PAR TYPE
941C---------------------------------------------------------------
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
959C---------------------------------------------------------------
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
1049C '
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.AND. IF (J==2 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.AND. IF (J==2 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.AND. IF (J==3 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
1084C
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.AND. IF (J==2 MARQUEUR(I) == 2 )IRB(I) = IRB(I) + 1
1126.AND. IF (J==2 MARQUEUR(I) == -2 )ITF(I) = ITF(I) + 1
1127.AND. IF (J==3 MARQUEUR(I) == 3 ) THEN
1128 IRB(I) = IRB(I) + 1
1129 IWL(I) = IWL(I) + 1
1130 ENDIF
1131.AND. IF(KWARN>0IPRI>=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) ! add warning for added mass+pen
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
1150C---------------------------------------------------------------
1151 DO I=1,NUMNOD
1152C reset flag impact / wall
1153ccc IF(IWL(IKINE(I))==1)IKINE(I) = IKINE(I) - 4
1154 KINET(I)=IKINE(I)
1155 ENDDO
1156 DEALLOCATE(NKINDOUBLE,NKIN,IKRW)
1157
1158C
1159Cls
1160Cls
1161Cls WARNING : RETURN HERE !!!
1162Cls
1163 RETURN
1164Cls
1165Cls
1166Cls
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
1198C
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
1206C
1207 RETURN
1208 END
1209!||====================================================================
1210!|| kinrem ../starter/source/constraints/general/kinchk.F
1211!||--- called by ------------------------------------------------------
1212!|| lectur ../starter/source/starter/lectur.F
1213!||====================================================================
1214 SUBROUTINE KINREM(IKINE,IKINEW,RWL,ITAB,NPRW,LPRW,
1215 1 NPBY, LPBY)
1216C-----------------------------------------------
1217C I m p l i c i t T y p e s
1218C-----------------------------------------------
1219#include "implicit_f.inc"
1220C-----------------------------------------------
1221C C o m m o n B l o c k s
1222C-----------------------------------------------
1223#include "com04_c.inc"
1224#include "kincod_c.inc"
1225#include "param_c.inc"
1226C-----------------------------------------------------------------
1227C D u m m y A r g u m e n t s
1228C-----------------------------------------------
1229 INTEGER IKINE(*), IKINEW(*), NPRW(*), LPRW(*),ITAB(*),
1230 . NPBY(NNPBY,*), LPBY(*)
1231 my_real
1232 . RWL(NRWLP,*)
1233C-----------------------------------------------
1234C L o c a l V a r i a b l e s
1235C-----------------------------------------------
1236 INTEGER I, J, K, L, N, KK, IKK, ITYP, NE, NSL
1237C-----------------------------------------------------------------
1238C Recopie dans tableau de travail
1239 DO N=1,NUMNOD
1240 IKINEW(N)=IKINE(N)
1241 END DO
1242C=======================================================================
1243C CORRECTIONS AUTOMATIQUES INTERFACE 1,2,9 OU RBODY AVEC RWALL
1244C=======================================================================
1245 K=0
1246 KK=0
1247
1248 DO N=1,NRWALL
1249
1250 NSL=NPRW(N)
1251 ITYP=NPRW(N+3*NRWALL)
1252 J=0
1253 DO L=1,NSL
1254 I=LPRW(K+L)
1255 IKK=IABS(IKINEW(I))
1256.OR. IF(IRB(IKK)/=0ITF(IKK)/=0)THEN
1257 IF(IWL(IKINEW(I))==1)IKINEW(I) = IKINEW(I) - 4
1258 ELSE
1259 J=J+1
1260 LPRW(KK+J)=LPRW(K+L)
1261 ENDIF
1262 ENDDO
1263 K = K+NSL
1264 NSL=J
1265 KK = KK+NSL
1266 NPRW(N)=NSL
1267 IF(ITYP<0)THEN
1268 NE=NINT(RWL(8,N))
1269 DO I=1,NE
1270 LPRW(KK+I)=LPRW(K+I)
1271 ENDDO
1272 K = K+NE
1273 KK = KK+NE
1274 ENDIF
1275 ENDDO
1276C
1277 RETURN
1278 END
1279!||====================================================================
1280!|| inivchk ../starter/source/constraints/general/kinchk.F
1281!||--- called by ------------------------------------------------------
1282!|| lectur ../starter/source/starter/lectur.F
1283!||--- calls -----------------------------------------------------
1284!|| rbe2_impd ../starter/source/constraints/general/kinchk.F
1285!|| rbe3_impd ../starter/source/constraints/general/kinchk.F
1286!|| rby_v0 ../starter/source/constraints/general/kinchk.F
1287!||====================================================================
1288 SUBROUTINE INIVCHK(IKINE,RWL,ITAB,NPRW,LPRW,KINET,
1289 1 NPBY, LPBY,IRBE2,LRBE2,IRBE3,LRBE3,
1290 2 FRBE3,X ,SKEW ,V ,VR )
1291C-----------------------------------------------
1292C I m p l i c i t T y p e s
1293C-----------------------------------------------
1294#include "implicit_f.inc"
1295C-----------------------------------------------
1296C C o m m o n B l o c k s
1297C-----------------------------------------------
1298#include "com04_c.inc"
1299#include "lagmult.inc"
1300#include "param_c.inc"
1301C-----------------------------------------------------------------
1302C D u m m y A r g u m e n t s
1303C-----------------------------------------------
1304 INTEGER IKINE(*),NPRW(*), LPRW(*),ITAB(*),KINET(*),
1305 . NPBY(NNPBY,*), LPBY(*),IRBE2(NRBE2L,*),LRBE2(*),
1306 . IRBE3(NRBE3L,*),LRBE3(*)
1307 my_real
1308 . RWL(NRWLP,*),V(3,*),VR(3,*),X(3,*),FRBE3(*),SKEW(*)
1309C-----------------------------------------------
1310C L o c a l V a r i a b l e s
1311C-----------------------------------------------
1312 INTEGER I, J, K, L, N, KK, IKK, IKK2, NK, JWARN, ITYP, NE, NSL,
1313 . IK(10), RBWARN, RB2WARN, KRB, NSLRB,ICDG,ISEN,M
1314C-----------------------------------------------------------------
1315C=======================================================================
1316C CORRECTIONS AUTOMATIQUES INITIAL VELOCITIES
1317C=======================================================================
1318C should be done in hierarchy order: RBODY,RBE3,RBE2,int2...
1319C-----------------------------------------------------------------
1320 K=1
1321 DO I=1,NRBYKIN
1322 M =NPBY(1,I)
1323 NSL=NPBY(2,I)
1324 ICDG=NPBY(3,I)
1325 ISEN=NPBY(4,I)
1326 IF (ISEN==0) THEN
1327 CALL RBY_V0(X ,LPBY(K) ,M ,NSL ,V ,VR )
1328 ENDIF
1329 K = K + NSL
1330 ENDDO
1331C-----------------------------------------------------------------
1332 DO I=NRBYKIN+1,NRBYLAG
1333 M =NPBY(1,I)
1334 NSL=NPBY(2,I)
1335 ICDG=NPBY(3,I)
1336 ISEN=NPBY(4,I)
1337 IF (ISEN==0) THEN
1338 CALL RBY_V0(X ,LPBY(K) ,M ,NSL ,V ,VR )
1339 ENDIF
1340 K = K + 3*NSL
1341 ENDDO
1342C-----------------------------------------------------------------
1343 IF(NRBE3>0)THEN
1344 CALL RBE3_IMPD(IRBE3 ,LRBE3 ,X ,V ,VR ,
1345 1 FRBE3 ,SKEW )
1346 ENDIF
1347C-----------------------------------------------------------------
1348 IF(NRBE2>0)THEN
1349 CALL RBE2_IMPD(IRBE2 ,LRBE2 ,X ,V ,VR ,
1350 1 SKEW )
1351 ENDIF
1352C-----------------------------------------------------------------
1353
1354 RETURN
1355 END
1356!||====================================================================
1357!|| rby_v0 ../starter/source/constraints/general/kinchk.F
1358!||--- called by ------------------------------------------------------
1359!|| inivchk ../starter/source/constraints/general/kinchk.F
1360!||====================================================================
1361 SUBROUTINE RBY_V0(X ,NOD ,M ,NSN ,D ,DR )
1362C-----------------------------------------------
1363C I m p l i c i t T y p e s
1364C-----------------------------------------------
1365#include "implicit_f.inc"
1366C-----------------------------------------------
1367C D u m m y A r g u m e n t s
1368C-----------------------------------------------
1369 INTEGER NOD(*), M,NSN
1370C REAL
1371 my_real
1372 . X(3,*), D(3,*),DR(3,*)
1373C-----------------------------------------------
1374C L o c a l V a r i a b l e s
1375C-----------------------------------------------
1376 INTEGER I, N
1377C REAL
1378 my_real
1379 . XS,YS,ZS
1380C-----------------------------------------------
1381 DO I=1,NSN
1382 N = NOD(I)
1383 XS=X(1,N)-X(1,M)
1384 YS=X(2,N)-X(2,M)
1385 ZS=X(3,N)-X(3,M)
1386 D(1,N)=D(1,M)+DR(2,M)*ZS-DR(3,M)*YS
1387 D(2,N)=D(2,M)-DR(1,M)*ZS+DR(3,M)*XS
1388 D(3,N)=D(3,M)+DR(1,M)*YS-DR(2,M)*XS
1389 DR(1,N)= DR(1,M)
1390 DR(2,N)= DR(2,M)
1391 DR(3,N)= DR(3,M)
1392 ENDDO
1393C
1394 RETURN
1395 END
1396!||====================================================================
1397!|| rbe3_impd ../starter/source/constraints/general/kinchk.F
1398!||--- called by ------------------------------------------------------
1399!|| inivchk ../starter/source/constraints/general/kinchk.F
1400!||--- calls -----------------------------------------------------
1401!|| prerbe3 ../starter/source/constraints/general/kinchk.F
1402!|| rbe3cl ../starter/source/constraints/general/kinchk.F
1403!||====================================================================
1404 SUBROUTINE RBE3_IMPD(IRBE3 ,LRBE3 ,X ,D ,DR ,
1405 1 FRBE3 ,SKEW )
1406C-----------------------------------------------
1407C I m p l i c i t T y p e s
1408C-----------------------------------------------
1409#include "implicit_f.inc"
1410C-----------------------------------------------
1411C C o m m o n B l o c k s
1412C-----------------------------------------------
1413#include "com01_c.inc"
1414#include "com04_c.inc"
1415#include "param_c.inc"
1416#include "tabsiz_c.inc"
1417C-----------------------------------------------
1418C D u m m y A r g u m e n t s
1419C-----------------------------------------------
1420 INTEGER IRBE3(NRBE3L,*),LRBE3(*)
1421C REAL
1422 my_real
1423 . X(3,*), D(3,*), DR(3,*), FRBE3(*),SKEW(*)
1424C-----------------------------------------------
1425C L o c a l V a r i a b l e s
1426C-----------------------------------------------
1427 INTEGER I, J, N, M, NS ,NML, IAD,JJ,IROT,IADS,MAX_M,IROTG,
1428 . JT(3,NRBE3),JR(3,NRBE3),NM,NN,K
1429C REAL
1430 my_real
1431 . VS(3),VRS(3)
1432 my_real,
1433 . DIMENSION(:,:,:),ALLOCATABLE :: FDSTNB ,MDSTNB
1434
1435C======================================================================|
1436 IADS = SLRBE3/2
1437 CALL PRERBE3(IRBE3 ,MAX_M , IROTG,JT ,JR )
1438 ALLOCATE(FDSTNB(3,6,MAX_M))
1439 IF (IROTG>0) ALLOCATE(MDSTNB(3,6,MAX_M))
1440 DO N=1,NRBE3
1441 IAD = IRBE3(1,N)
1442 NS = IRBE3(3,N)
1443 IF (NS==0) CYCLE
1444 NML = IRBE3(5,N)
1445 IROT =MIN(IRBE3(6,N),IRODDL)
1446 CALL RBE3CL(LRBE3(IAD+1),LRBE3(IADS+IAD+1),NS ,X ,
1447 . FRBE3(6*IAD+1),SKEW ,NML ,IROT ,FDSTNB ,
1448 . MDSTNB )
1449 DO J = 1,3
1450 VS(J) = ZERO
1451 VRS(J) = ZERO
1452 ENDDO
1453 DO I=1,NML
1454 M = LRBE3(IAD+I)
1455 DO J = 1,3
1456 DO K = 1,3
1457 VS(J) = VS(J)+FDSTNB(K,J,I)*D(K,M)
1458 VRS(J) = VRS(J)+FDSTNB(K,J+3,I)*D(K,M)
1459 ENDDO
1460 ENDDO
1461 ENDDO
1462 IF (IROT>0) THEN
1463 DO I=1,NML
1464 M = LRBE3(IAD+I)
1465 DO J = 1,3
1466 DO K = 1,3
1467 VS(J) = VS(J)+MDSTNB(K,J,I)*DR(K,M)
1468 VRS(J) = VRS(J)+MDSTNB(K,J+3,I)*DR(K,M)
1469 ENDDO
1470 ENDDO
1471 ENDDO
1472 ENDIF
1473 DO J = 1,3
1474 D(J,NS) = VS(J) *JT(J,N)
1475 ENDDO
1476 IF ((JR(1,N)+JR(2,N)+JR(3,N))>0) THEN
1477 DO J = 1,3
1478 DR(J,NS) = VRS(J) *JR(J,N)
1479 ENDDO
1480 ENDIF
1481 ENDDO
1482C
1483 DEALLOCATE(FDSTNB)
1484 IF (IROTG>0) DEALLOCATE(MDSTNB)
1485C---
1486 RETURN
1487 END
1488!||====================================================================
1489!|| prerbe3 ../starter/source/constraints/general/kinchk.F
1490!||--- called by ------------------------------------------------------
1491!|| rbe3_impd ../starter/source/constraints/general/kinchk.F
1492!||====================================================================
1493 SUBROUTINE PRERBE3(IRBE3 ,MAX_M , IROTG,JT ,JR )
1494C-----------------------------------------------
1495C I m p l i c i t T y p e s
1496C-----------------------------------------------
1497#include "implicit_f.inc"
1498C-----------------------------------------------
1499C C o m m o n B l o c k s
1500C-----------------------------------------------
1501#include "com04_c.inc"
1502#include "param_c.inc"
1503C-----------------------------------------------
1504C D u m m y A r g u m e n t s
1505C-----------------------------------------------
1506 INTEGER IRBE3(NRBE3L,*),MAX_M , IROTG,JT(3,*) ,JR(3,*)
1507C REAL
1508C-----------------------------------------------
1509C L o c a l V a r i a b l e s
1510C-----------------------------------------------
1511 INTEGER I, J, N,NML,IC,ICT,ICR,IROT
1512C======================================================================|
1513 MAX_M=0
1514 IROTG=0
1515 DO N=1,NRBE3
1516 NML = IRBE3(5,N)
1517 IROT =IRBE3(6,N)
1518 MAX_M=MAX(MAX_M,NML)
1519 IROTG=MAX(IROTG,IROT)
1520 IC=IRBE3(4,N)
1521 ICT=IC/512
1522 ICR=(IC-512*(ICT))/64
1523 DO J =1,3
1524 JT(J,N)=0
1525 JR(J,N)=0
1526 ENDDO
1527 SELECT CASE (ICT)
1528 CASE(1)
1529 JT(3,N)=1
1530 CASE(2)
1531 JT(2,N)=1
1532 CASE(3)
1533 JT(2,N)=1
1534 JT(3,N)=1
1535 CASE(4)
1536 JT(1,N)=1
1537 CASE(5)
1538 JT(1,N)=1
1539 JT(3,N)=1
1540 CASE(6)
1541 JT(1,N)=1
1542 JT(2,N)=1
1543 CASE(7)
1544 JT(1,N)=1
1545 JT(2,N)=1
1546 JT(3,N)=1
1547 END SELECT
1548 SELECT CASE (ICR)
1549 CASE(1)
1550 JR(3,N)=1
1551 CASE(2)
1552 JR(2,N)=1
1553 CASE(3)
1554 JR(2,N)=1
1555 JR(3,N)=1
1556 CASE(4)
1557 JR(1,N)=1
1558 CASE(5)
1559 JR(1,N)=1
1560 JR(3,N)=1
1561 CASE(6)
1562 JR(1,N)=1
1563 JR(2,N)=1
1564 CASE(7)
1565 JR(1,N)=1
1566 JR(2,N)=1
1567 JR(3,N)=1
1568 END SELECT
1569 ENDDO
1570C---
1571 RETURN
1572 END
1573!||====================================================================
1574!|| rbe3cl ../starter/source/constraints/general/kinchk.F
1575!||--- called by ------------------------------------------------------
1576!|| rbe3_impd ../starter/source/constraints/general/kinchk.F
1577!||--- calls -----------------------------------------------------
1578!|| arret ../starter/source/system/arret.F
1579!|| invert ../starter/source/constraints/general/rbe3/hm_read_rbe3.F
1580!|| rbe3uf ../starter/source/constraints/general/rbe3/hm_read_rbe3.F
1581!|| rbe3um ../starter/source/constraints/general/rbe3/hm_read_rbe3.F
1582!|| zero1 ../starter/source/constraints/general/rbe3/hm_read_rbe3.F
1583!||====================================================================
1584 SUBROUTINE RBE3CL(INRBE3 ,ILRBE3 ,NS ,XYZ ,FRBE3 ,
1585 . SKEW ,NG ,IROT ,FDSTNB ,MDSTNB )
1586C-----------------------------------------------
1587C I m p l i c i t T y p e s
1588C-----------------------------------------------
1589#include "implicit_f.inc"
1590C-----------------------------------------------
1591C C o m m o n B l o c k s
1592C-----------------------------------------------
1593#include "units_c.inc"
1594#include "param_c.inc"
1595C-----------------------------------------------
1596C D u m m y A r g u m e n t s
1597C-----------------------------------------------
1598 INTEGER INRBE3(*),ILRBE3(*),NG, NS,IROT
1599C REAL
1600 my_real
1601 . XYZ(3,*), FRBE3(6,*), SKEW(LSKEW,*),FDSTNB(3,6,*), MDSTNB(3,6,*)
1602C-----------------------------------------------
1603C L o c a l V a r i a b l e s
1604C-----------------------------------------------
1605 INTEGER I, J, K,N, M ,NML, IAD,JJ,KG,NSNGLR,IELSUB,IERR,ng1
1606C REAL
1607 my_real
1608 * TW(3,NG), RW(3,NG),
1609 * FUFXLC(3,NG), FUFYLC(3,NG), FUFZLC(3,NG),
1610 * FUMXLC(3,NG), FUMYLC(3,NG), FUMZLC(3,NG),
1611 * MXLC(3,NG), MYLC(3,NG), MZLC(3,NG),
1612 * FUFX(3,NG), FUFY(3,NG), FUFZ(3,NG),
1613 * MUFX(3,NG), MUFY(3,NG), MUFZ(3,NG),
1614 * FUMX(3,NG), FUMY(3,NG), FUMZ(3,NG),
1615 * MX(3,NG), MY(3,NG), MZ(3,NG),
1616 * MUMX(3,NG), MUMY(3,NG), MUMZ(3,NG),
1617 * EL(3,3,NG)
1618 my_real
1619 * DENFX, DENFY, DENFZ, DENMX, DENMY, DENMZ,
1620 * REFPT(3), CGMX(3), CGMY(3), CGMZ(3), AVEREF,
1621 * TFUFX(3), TFUFY(3), TFUFZ(3),
1622 * TMUFX(3), TMUFY(3), TMUFZ(3),
1623 * TFUMX(3), TFUMY(3), TFUMZ(3),
1624 * TMUMX(3), TMUMY(3), TMUMZ(3),
1625 * A(6,6), C(6,6), T(3,3)
1626C
1627C INITIALIZATION
1628C
1629 CALL ZERO1(FDSTNB,3*NG*6)
1630 IF (IROT>0) CALL ZERO1(MDSTNB,3*NG*6)
1631 CALL ZERO1(A,36)
1632 CALL ZERO1(C,36)
1633 CALL ZERO1(CGMX,3)
1634 CALL ZERO1(CGMY,3)
1635 CALL ZERO1(CGMZ,3)
1636 IERR = 0
1637C
1638 REFPT(1) = XYZ(1,NS)
1639 REFPT(2) = XYZ(2,NS)
1640 REFPT(3) = XYZ(3,NS)
1641 DO K = 1, NG
1642 DO I = 1, 3
1643 TW(I,K) = FRBE3(I,K)
1644 RW(I,K) = FRBE3(I+3,K)
1645 ENDDO
1646 ENDDO
1647C
1648C ERROR OUT IF RBE3 ELEMENT HAS TWO INDEPENDENT NODES WITH
1649C NO ROTATIONAL WEIGHTS SET (THIS MEANS THE ELEMENT CANNOT
1650C SUPPORT A MOMENT ALONG ITS AXIS)
1651C
1652.AND. IF (NG == 2IROT==0) THEN
1653 IERR = 322
1654 GOTO 999
1655 ENDIF
1656C
1657C CALCULATE DIRECTION COSINES OF LOCAL COORDINATE SYSTEMS, IF ANY
1658C
1659 DO K = 1, NG
1660 IELSUB = ILRBE3(K)
1661 IF (IELSUB > 0) THEN
1662 DO I = 1, 3
1663 EL(I,1,K) = SKEW(I,IELSUB)
1664 EL(I,2,K) = SKEW(I+3,IELSUB)
1665 EL(I,3,K) = SKEW(I+6,IELSUB)
1666 ENDDO
1667 ENDIF
1668 ENDDO
1669C
1670C DENOMINATORS FOR DISTRIBUTING FORCES (DENFX, DENFY AND DENFZ)
1671C
1672 DENFX = ZERO
1673 DENFY = ZERO
1674 DENFZ = ZERO
1675 AVEREF = ZERO
1676C
1677 DO 70 K = 1, NG
1678 KG = INRBE3(K)
1679 IELSUB = ILRBE3(K)
1680 IF (IELSUB > 0) THEN
1681C
1682C IF GRID POINT HAS A LOCAL COORDINATE SYSTEM
1683C
1684 DO 60 I = 1, 3
1685 DENFX = DENFX + TW(I,K)*EL(I,1,K)**2
1686 DENFY = DENFY + TW(I,K)*EL(I,2,K)**2
1687 DENFZ = DENFZ + TW(I,K)*EL(I,3,K)**2
1688 60 CONTINUE
1689 ELSE
1690 DENFX = DENFX + TW(1,K)
1691 DENFY = DENFY + TW(2,K)
1692 DENFZ = DENFZ + TW(3,K)
1693 END IF
1694C
1695 AVEREF = AVEREF + SQRT( (XYZ(1,KG) - REFPT(1))**2 +
1696 * (XYZ(2,KG) - REFPT(2))**2 +
1697 * (XYZ(3,KG) - REFPT(3))**2 )
1698 70 CONTINUE
1699C
1700 IF (ABS(DENFX) <= EM20) THEN
1701 IERR = 326
1702 ENDIF
1703C
1704 IF (ABS(DENFY) <= EM20) THEN
1705 IERR = 327
1706 ENDIF
1707C
1708 IF (ABS(DENFZ) <= EM20) THEN
1709 IERR = 328
1710 ENDIF
1711 IF (IERR /= 0) GOTO 999
1712 AVEREF = AVEREF/NG
1713 IF (AVEREF == ZERO) AVEREF = ONE
1714C
1715C CALCULATE 3 CENTERS OF GRAVITY (CGMX, CGMY AND CGMZ) AND
1716C DENOMINATORS FOR DISTRIBUTING MOMENTS (DENMX, DENMY AND DENMZ)
1717C
1718 DO 40 K = 1, NG
1719 KG = INRBE3(K)
1720 IELSUB = ILRBE3(K)
1721 IF (IELSUB > 0) THEN
1722C
1723C IF THERE IS A LOCAL COORDINATE SYSTEM AT THE GRID POINT
1724C
1725 DO 10 I = 1, 3
1726 CGMX(2) = CGMX(2) + TW(I,K)*EL(I,3,K)**2*XYZ(2,KG)
1727 CGMX(3) = CGMX(3) + TW(I,K)*EL(I,2,K)**2*XYZ(3,KG)
1728 10 CONTINUE
1729C
1730 DO 20 I = 1, 3
1731 CGMY(3) = CGMY(3) + TW(I,K)*EL(I,1,K)**2*XYZ(3,KG)
1732 CGMY(1) = CGMY(1) + TW(I,K)*EL(I,3,K)**2*XYZ(1,KG)
1733 20 CONTINUE
1734C
1735 DO 30 I = 1, 3
1736 CGMZ(1) = CGMZ(1) + TW(I,K)*EL(I,2,K)**2*XYZ(1,KG)
1737 CGMZ(2) = CGMZ(2) + TW(I,K)*EL(I,1,K)**2*XYZ(2,KG)
1738 30 CONTINUE
1739C
1740 ELSE
1741 CGMX(2) = CGMX(2) + TW(3,K)*XYZ(2,KG)
1742 CGMX(3) = CGMX(3) + TW(2,K)*XYZ(3,KG)
1743C
1744 CGMY(3) = CGMY(3) + TW(1,K)*XYZ(3,KG)
1745 CGMY(1) = CGMY(1) + TW(3,K)*XYZ(1,KG)
1746C
1747 CGMZ(1) = CGMZ(1) + TW(2,K)*XYZ(1,KG)
1748 CGMZ(2) = CGMZ(2) + TW(1,K)*XYZ(2,KG)
1749 END IF
1750 40 CONTINUE
1751 CGMX(2) = CGMX(2)/DENFZ
1752 CGMX(3) = CGMX(3)/DENFY
1753C
1754 CGMY(3) = CGMY(3)/DENFX
1755 CGMY(1) = CGMY(1)/DENFZ
1756C
1757 CGMZ(1) = CGMZ(1)/DENFY
1758 CGMZ(2) = CGMZ(2)/DENFX
1759C
1760 DENMX = ZERO
1761 DENMY = ZERO
1762 DENMZ = ZERO
1763C
1764 DO 90 K = 1, NG
1765 KG = INRBE3(K)
1766 IELSUB = ILRBE3(K)
1767C
1768C NOTE: AS IMPLEMENTED IN NASTRAN 70.7, WE SCALE THE ROTATIONAL
1769C WEIGHTS WITH THE SQUARE OF THE AVERAGE DISTANCE OF THE
1770C INDEPENDENT GRID POINTS FROM THE REFERENCE POINT TO
1771C RENDER THE RBE3 CALCULATIONS UNIT INDEPENDENT
1772C
1773 IF (IELSUB > 0) THEN
1774C
1775C IF GRID POINT HAS A LOCAL COORDINATE SYSTEM
1776C
1777 DO 80 I = 1, 3
1778 DENMX = DENMX + RW(I,K)*EL(I,1,K)**2*AVEREF**2 +
1779 * TW(I,K)*( EL(I,3,K)*(XYZ(2,KG) - CGMX(2)) -
1780 * EL(I,2,K)*(XYZ(3,KG) - CGMX(3))
1781 * ) **2
1782 DENMY = DENMY + RW(I,K)*EL(I,2,K)**2*AVEREF**2 +
1783 * TW(I,K)*( EL(I,1,K)*(XYZ(3,KG) - CGMY(3)) -
1784 * EL(I,3,K)*(XYZ(1,KG) - CGMY(1))
1785 * ) **2
1786 DENMZ = DENMZ + RW(I,K)*EL(I,3,K)**2*AVEREF**2 +
1787 * TW(I,K)*( EL(I,2,K)*(XYZ(1,KG) - CGMZ(1)) -
1788 * EL(I,1,K)*(XYZ(2,KG) - CGMZ(2))
1789 * ) **2
1790 80 CONTINUE
1791 ELSE
1792 DENMX = DENMX + RW(1,K)*AVEREF**2 +
1793 * TW(2,K)*(XYZ(3,KG) - CGMX(3))**2 +
1794 * TW(3,K)*(XYZ(2,KG) - CGMX(2))**2
1795 DENMY = DENMY + RW(2,K)*AVEREF**2 +
1796 * TW(1,K)*(XYZ(3,KG) - CGMY(3))**2 +
1797 * TW(3,K)*(XYZ(1,KG) - CGMY(1))**2
1798 DENMZ = DENMZ + RW(3,K)*AVEREF**2 +
1799 * TW(2,K)*(XYZ(1,KG) - CGMZ(1))**2 +
1800 * TW(1,K)*(XYZ(2,KG) - CGMZ(2))**2
1801 END IF
1802 90 CONTINUE
1803C
1804C PERFORM SOME CHECKS ON WEIGHTS, TO MAKE SURE THAT THE RBE3
1805C ELEMENT HAS NO UNCONSTRAINED DEGREES OF FREEDOM
1806C
1807C
1808 IF (ABS(DENMX) <= EM20) THEN
1809 IERR = 329
1810 ENDIF
1811C
1812 IF (ABS(DENMY) <= EM20) THEN
1813 IERR = 330
1814 ENDIF
1815C
1816 IF (ABS(DENMZ) <= EM20) THEN
1817 IERR = 331
1818 ENDIF
1819C
1820 IF (IERR /= 0) GOTO 999
1821C
1822C CALCULATE 3 FORCE DISTRIBUTIONS THAT CREATE NET X, Y AND Z FORCES
1823C OF 1 (BESIDES OTHER NONZERO FORCES/MOMENTS IN ALL THE DIRECTIONS)
1824C
1825 CALL RBE3UF(INRBE3,ILRBE3,EL,TW,XYZ,REFPT,
1826 * FUFXLC,FUFYLC,FUFZLC,FUFX,FUFY,FUFZ,MUFX,MUFY,MUFZ,
1827 * TFUFX,TFUFY,TFUFZ,TMUFX,TMUFY,TMUFZ,
1828 * DENFX,DENFY,DENFZ,NG)
1829C
1830C CALCULATE 3 MOMENT/FORCE DISTRIBUTIONS THAT CREATE NET X, Y AND Z
1831C MOMENTS OF 1 (BESIDES OTHER NONZERO FORCES/MOMENTS IN ALL THE
1832C DIRECTIONS) AT CGMX, CGMY AND CGMZ RESPECTIVELY
1833C
1834 CALL RBE3UM(INRBE3,ILRBE3,EL,TW,RW,XYZ,REFPT,CGMX,CGMY,CGMZ,
1835 * FUMXLC,FUMYLC,FUMZLC,MXLC,MYLC,MZLC,
1836 * FUMX,FUMY,FUMZ,MX,MY,MZ,MUMX,MUMY,MUMZ,
1837 * TFUMX,TFUMY,TFUMZ,TMUMX,TMUMY,TMUMZ,
1838 * AVEREF,DENMX,DENMY,DENMZ,NG,IROT )
1839C
1840C DETERMINE COMBINATORY COEFFICIENTS FOR THESE 6 DISTRIBUTIONS
1841C (6 COEFFICIENTS FOR EACH OF 6 CASES)
1842C
1843C CASE 1 - RESULTANT OF THE LINEAR COMBINATION OF THESE FORCE/MOMENT
1844C DISTRIBUTIONS IS A UNIT X-FORCE AT REFERENCE POINT
1845C CASE 2 - RESULTANT OF THE LINEAR COMBINATION OF THESE FORCE/MOMENT
1846C DISTRIBUTIONS IS A UNIT Y-FORCE AT REFERENCE POINT
1847C CASE 3 - RESULTANT OF THE LINEAR COMBINATION OF THESE FORCE/MOMENT
1848C DISTRIBUTIONS IS A UNIT Z-FORCE AT REFERENCE POINT
1849C CASE 4 - RESULTANT OF THE LINEAR COMBINATION OF THESE FORCE/MOMENT
1850C DISTRIBUTIONS IS A UNIT X-MOMENT AT REFERENCE POINT
1851C CASE 5 - RESULTANT OF THE LINEAR COMBINATION OF THESE FORCE/MOMENT
1852C DISTRIBUTIONS IS A UNIT Y-MOMENT AT REFERENCE POINT
1853C CASE 6 - RESULTANT OF THE LINEAR COMBINATION OF THESE FORCE/MOMENT
1854C DISTRIBUTIONS IS A UNIT Z-MOMENT AT REFERENCE POINT
1855C
1856C IN ORDER TO DETERMINE THESE COEFFICIENTS, FIRST SET UP A 6X6
1857C MATRIX. THE 6 COLUMNS OF THE INVERSE OF THIS MATRIX ARE THE
1858C DESIRED 6 SETS OF COEFFICIENTS.
1859C
1860 DO 120 I = 1, 3
1861 K = I + 3
1862 A(I,1) = TFUFX(I)
1863 A(K,1) = TMUFX(I)
1864 A(I,2) = TFUFY(I)
1865 A(K,2) = TMUFY(I)
1866 A(I,3) = TFUFZ(I)
1867 A(K,3) = TMUFZ(I)
1868 A(I,4) = TFUMX(I)
1869 A(K,4) = TMUMX(I)
1870 A(I,5) = TFUMY(I)
1871 A(K,5) = TMUMY(I)
1872 A(I,6) = TFUMZ(I)
1873 A(K,6) = TMUMZ(I)
1874 120 CONTINUE
1875C
1876C INVERT THE 6X6 MATRIX
1877C
1878 NSNGLR = 0
1879 CALL INVERT(A,C,6,NSNGLR)
1880 IF (NSNGLR /= 0) THEN
1881 IERR = 332
1882 GOTO 999
1883 ENDIF
1884C
1885 DO I = 1, 3
1886 DO J = 1, 6
1887 DO K = 1, NG
1888 FDSTNB(I,J,K) = C(1,J)*FUFX(I,K) + C(2,J)*FUFY(I,K) +
1889 * C(3,J)*FUFZ(I,K) + C(4,J)*FUMX(I,K) +
1890 * C(5,J)*FUMY(I,K) + C(6,J)*FUMZ(I,K)
1891 ENDDO
1892 ENDDO
1893 ENDDO
1894 IF (IROT>0) THEN
1895 DO I = 1, 3
1896 DO J = 1, 6
1897 DO K = 1, NG
1898 MDSTNB(I,J,K) = C(4,J)*MX(I,K) + C(5,J)*MY(I,K) +
1899 * C(6,J)*MZ(I,K)
1900 ENDDO
1901 ENDDO
1902 ENDDO
1903 END IF
1904C
1905 999 CONTINUE
1906 IF (IERR>0) THEN
1907 WRITE(ISTDO,'(a,i10)')
1908 . ' ** error in rbe3 calculation id=',IERR
1909 WRITE(IOUT,'(a,i10)')
1910 . ' ** error in rbe3 calculation id=',IERR
1911 CALL ARRET(2)
1912 ENDIF
1913C
1914C DIAGNOSTIC INFORMATION
1915C
1916 RETURN
1917 END
1918!||====================================================================
1919!|| rbe2_impd ../starter/source/constraints/general/kinchk.F
1920!||--- called by ------------------------------------------------------
1921!|| inivchk ../starter/source/constraints/general/kinchk.F
1922!||--- calls -----------------------------------------------------
1923!|| prerbe2 ../starter/source/constraints/general/kinchk.F
1924!|| rbe2d0 ../starter/source/constraints/general/kinchk.F
1925!|| rbe2dl ../starter/source/constraints/general/kinchk.F
1926!||====================================================================
1927 SUBROUTINE RBE2_IMPD(IRBE2 ,LRBE2 ,X ,D ,DR ,SKEW )
1928C-----------------------------------------------
1929C I m p l i c i t T y p e s
1930C-----------------------------------------------
1931#include "implicit_f.inc"
1932C-----------------------------------------------
1933C C o m m o n B l o c k s
1934C-----------------------------------------------
1935#include "com04_c.inc"
1936#include "param_c.inc"
1937C-----------------------------------------------
1938C D u m m y A r g u m e n t s
1939C-----------------------------------------------
1940 INTEGER IRBE2(NRBE2L,*),LRBE2(*)
1941C REAL
1942 my_real
1943 . X(3,*), D(3,*), DR(3,*),SKEW(LSKEW,*)
1944C-----------------------------------------------
1945C L o c a l V a r i a b l e s
1946C-----------------------------------------------
1947 INTEGER I, J, N, M, NS ,NML, IAD,JJ,ISK,
1948 . JT(3,NRBE2),JR(3,NRBE2),NM,NN,K,NSL
1949C REAL
1950C======================================================================|
1951 CALL PRERBE2(IRBE2 ,JT ,JR )
1952 DO N=NRBE2,1,-1
1953 IAD = IRBE2(1,N)
1954 M = IRBE2(3,N)
1955 NSL = IRBE2(5,N)
1956 ISK = IRBE2(7,N)
1957 IF (ISK>1) THEN
1958 CALL RBE2DL(NSL ,LRBE2(IAD+1),X ,D ,DR ,
1959 1 JT(1,N),JR(1,N),M ,SKEW(1,ISK))
1960 ELSE
1961 CALL RBE2D0(NSL ,LRBE2(IAD+1),X ,D ,DR ,
1962 1 JT(1,N),JR(1,N),M )
1963 END IF
1964 ENDDO
1965C---
1966 RETURN
1967 END
1968!||====================================================================
1969!|| prerbe2 ../starter/source/constraints/general/kinchk.F
1970!||--- called by ------------------------------------------------------
1971!|| rbe2_impd ../starter/source/constraints/general/kinchk.F
1972!||====================================================================
1973 SUBROUTINE PRERBE2(IRBE2 ,JT ,JR )
1974C-----------------------------------------------
1975C I m p l i c i t T y p e s
1976C-----------------------------------------------
1977#include "implicit_f.inc"
1978C-----------------------------------------------
1979C C o m m o n B l o c k s
1980C-----------------------------------------------
1981#include "com01_c.inc"
1982#include "com04_c.inc"
1983#include "param_c.inc"
1984C-----------------------------------------------
1985C D u m m y A r g u m e n t s
1986C-----------------------------------------------
1987 INTEGER IRBE2(NRBE2L,*),JT(3,*) ,JR(3,*)
1988C REAL
1989C-----------------------------------------------
1990C L o c a l V a r i a b l e s
1991C-----------------------------------------------
1992 INTEGER I, J, N,NML,IC,ICT,ICR,IROT
1993C======================================================================|
1994 DO N=1,NRBE2
1995 IC=IRBE2(4,N)
1996 ICT=IC/512
1997 ICR=(IC-512*(ICT))/64
1998 IF (IRODDL==0) ICR =0
1999 DO J =1,3
2000 JT(J,N)=0
2001 JR(J,N)=0
2002 ENDDO
2003 SELECT CASE (ICT)
2004 CASE(1)
2005 JT(3,N)=1
2006 CASE(2)
2007 JT(2,N)=1
2008 CASE(3)
2009 JT(2,N)=1
2010 JT(3,N)=1
2011 CASE(4)
2012 JT(1,N)=1
2013 CASE(5)
2014 JT(1,N)=1
2015 JT(3,N)=1
2016 CASE(6)
2017 JT(1,N)=1
2018 JT(2,N)=1
2019 CASE(7)
2020 JT(1,N)=1
2021 JT(2,N)=1
2022 JT(3,N)=1
2023 END SELECT
2024 SELECT CASE (ICR)
2025 CASE(1)
2026 JR(3,N)=1
2027 CASE(2)
2028 JR(2,N)=1
2029 CASE(3)
2030 JR(2,N)=1
2031 JR(3,N)=1
2032 CASE(4)
2033 JR(1,N)=1
2034 CASE(5)
2035 JR(1,N)=1
2036 JR(3,N)=1
2037 CASE(6)
2038 JR(1,N)=1
2039 JR(2,N)=1
2040 CASE(7)
2041 JR(1,N)=1
2042 JR(2,N)=1
2043 JR(3,N)=1
2044 END SELECT
2045 ENDDO
2046C---
2047 RETURN
2048 END
2049!||====================================================================
2050!|| rbe2d0 ../starter/source/constraints/general/kinchk.F
2051!||--- called by ------------------------------------------------------
2052!|| rbe2_impd ../starter/source/constraints/general/kinchk.F
2053!||====================================================================
2054 SUBROUTINE RBE2D0(NSL ,ISL ,X ,V ,VR ,
2055 1 JT ,JR ,M )
2056C-----------------------------------------------
2057C I m p l i c i t T y p e s
2058C-----------------------------------------------
2059#include "implicit_f.inc"
2060C-----------------------------------------------
2061C D u m m y A r g u m e n t s
2062C-----------------------------------------------
2063 INTEGER NSL,ISL(*),JT(3),JR(3),M
2064C REAL
2065 my_real
2066 . X(3,*), V(3,*), VR(3,*)
2067C-----------------------------------------------
2068C L o c a l V a r i a b l e s
2069C-----------------------------------------------
2070 INTEGER I, J, N, NS
2071C REAL
2072 my_real
2073 . XS, YS, ZS,VRM(3)
2074C======================================================================|
2075 DO J = 1,3
2076 IF (JT(J)/=0) THEN
2077 DO I=1,NSL
2078 NS = ISL(I)
2079 V(J,NS)= V(J,M)
2080 ENDDO
2081 ENDIF
2082 ENDDO
2083 IF ((JR(1)+JR(2)+JR(3))>0) THEN
2084 DO J = 1,3
2085 IF (JR(J)/=0) THEN
2086 DO I=1,NSL
2087 NS = ISL(I)
2088 VR(J,NS)= VR(J,M)
2089 ENDDO
2090 ENDIF
2091 VRM(J)= VR(J,M)*JR(J)
2092 ENDDO
2093 DO I=1,NSL
2094 NS = ISL(I)
2095 XS=X(1,NS)-X(1,M)
2096 YS=X(2,NS)-X(2,M)
2097 ZS=X(3,NS)-X(3,M)
2098 V(1,NS)=V(1,NS)+VRM(2)*ZS-VRM(3)*YS
2099 V(2,NS)=V(2,NS)-VRM(1)*ZS+VRM(3)*XS
2100 V(3,NS)=V(3,NS)+VRM(1)*YS-VRM(2)*XS
2101 ENDDO
2102 END IF
2103C---
2104 RETURN
2105 END
2106!||====================================================================
2107!|| rbe2dl ../starter/source/constraints/general/kinchk.F
2108!||--- called by ------------------------------------------------------
2109!|| rbe2_impd ../starter/source/constraints/general/kinchk.F
2110!||====================================================================
2111 SUBROUTINE RBE2DL(NSN ,ISL ,X ,V ,VR ,
2112 1 JT ,JR ,M ,SKEW )
2113C-----------------------------------------------
2114C I m p l i c i t T y p e s
2115C-----------------------------------------------
2116#include "implicit_f.inc"
2117C-----------------------------------------------
2118C D u m m y A r g u m e n t s
2119C-----------------------------------------------
2120 INTEGER NSN,ISL(*),JT(3),JR(3),M
2121C REAL
2122 my_real
2123 . X(3,*), V(3,*), VR(3,*),SKEW(*)
2124C-----------------------------------------------
2125C L o c a l V a r i a b l e s
2126C-----------------------------------------------
2127 INTEGER I, NS
2128C REAL
2129 my_real
2130 . XS, YS, ZS,RX, RY,RZ,LRX, LRY,LRZ,RVX,RVY,RVZ,
2131 . DVX,DVY,DVZ,VVX,VVY,VVZ,LXS(NSN), LYS(NSN), LZS(NSN)
2132C======================================================================|
2133 DO I=1,NSN
2134 NS = ISL(I)
2135 DVX =V(1,NS)-V(1,M)
2136 DVY =V(2,NS)-V(2,M)
2137 DVZ =V(3,NS)-V(3,M)
2138 VVX =JT(1)*(SKEW(1)*DVX+SKEW(2)*DVY+SKEW(3)*DVZ)
2139 VVY =JT(2)*(SKEW(4)*DVX+SKEW(5)*DVY+SKEW(6)*DVZ)
2140 VVZ =JT(3)*(SKEW(7)*DVX+SKEW(8)*DVY+SKEW(9)*DVZ)
2141 V(1,NS) =V(1,NS)-VVX*SKEW(1)-VVY*SKEW(4)-VVZ*SKEW(7)
2142 V(2,NS) =V(2,NS)-VVX*SKEW(2)-VVY*SKEW(5)-VVZ*SKEW(8)
2143 V(3,NS) =V(3,NS)-VVX*SKEW(3)-VVY*SKEW(6)-VVZ*SKEW(9)
2144 ENDDO
2145 IF ((JR(1)+JR(2)+JR(3))>0) THEN
2146 DO I=1,NSN
2147 NS = ISL(I)
2148 XS=X(1,NS)-X(1,M)
2149 YS=X(2,NS)-X(2,M)
2150 ZS=X(3,NS)-X(3,M)
2151 LXS(I)=SKEW(1)*XS+SKEW(2)*YS+SKEW(3)*ZS
2152 LYS(I)=SKEW(4)*XS+SKEW(5)*YS+SKEW(6)*ZS
2153 LZS(I)=SKEW(7)*XS+SKEW(8)*YS+SKEW(9)*ZS
2154 ENDDO
2155 DO I=1,NSN
2156 NS = ISL(I)
2157 DVX =VR(1,NS)-VR(1,M)
2158 DVY =VR(2,NS)-VR(2,M)
2159 DVZ =VR(3,NS)-VR(3,M)
2160 VVX =JR(1)*(SKEW(1)*DVX+SKEW(2)*DVY+SKEW(3)*DVZ)
2161 VVY =JR(2)*(SKEW(4)*DVX+SKEW(5)*DVY+SKEW(6)*DVZ)
2162 VVZ =JR(3)*(SKEW(7)*DVX+SKEW(8)*DVY+SKEW(9)*DVZ)
2163 VR(1,NS) =VR(1,NS)-VVX*SKEW(1)-VVY*SKEW(4)-VVZ*SKEW(7)
2164 VR(2,NS) =VR(2,NS)-VVX*SKEW(2)-VVY*SKEW(5)-VVZ*SKEW(8)
2165 VR(3,NS) =VR(3,NS)-VVX*SKEW(3)-VVY*SKEW(6)-VVZ*SKEW(9)
2166 RX=VR(1,M)
2167 RY=VR(2,M)
2168 RZ=VR(3,M)
2169 LRX =JR(1)*(SKEW(1)*RX+SKEW(2)*RY+SKEW(3)*RZ)
2170 LRY =JR(2)*(SKEW(4)*RX+SKEW(5)*RY+SKEW(6)*RZ)
2171 LRZ =JR(3)*(SKEW(7)*RX+SKEW(8)*RY+SKEW(9)*RZ)
2172 RVX=LRY*LZS(I)-LRZ*LYS(I)
2173 RVY=LRX*LZS(I)+LRZ*LXS(I)
2174 RVZ=LRX*LYS(I)-LRY*LXS(I)
2175 V(1,NS) =V(1,NS)+RVX*SKEW(1)+RVY*SKEW(4)+RVZ*SKEW(7)
2176 V(2,NS) =V(2,NS)+RVX*SKEW(2)+RVY*SKEW(5)+RVZ*SKEW(8)
2177 V(3,NS) =V(3,NS)+RVX*SKEW(3)+RVY*SKEW(6)+RVZ*SKEW(9)
2178 ENDDO
2179 END IF
2180C---
2181 RETURN
2182 END
#define my_real
Definition cppsort.cpp:32
subroutine kinchk(ikine, rwl, itab, nprw, lprw, kinet, npby, lpby, irbe2, lrbe2, irbe3, lrbe3, nom_opt, ptr_nopt_rwall, ptr_nopt_rbe2, ptr_nopt_rbe3, itagcyc)
Definition kinchk.F:38
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)
Definition message.F:889
subroutine fretitl2(titr, iasc, l)
Definition freform.F:804