OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
checkrby.F File Reference
#include "implicit_f.inc"
#include "analyse_name.inc"
#include "com04_c.inc"
#include "scr17_c.inc"
#include "scr03_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine checkrby (rby, npby, lpby, itab, ikine, iddlevel, nom_opt, numsl)

Function/Subroutine Documentation

◆ checkrby()

subroutine checkrby ( rby,
integer, dimension(nnpby,*) npby,
integer, dimension(*) lpby,
integer, dimension(*) itab,
integer, dimension(*) ikine,
integer iddlevel,
integer, dimension(lnopt1,*) nom_opt,
integer numsl )

Definition at line 35 of file checkrby.F.

37C-------------------------------------
38C LECTURE STRUCTURE RIGIDES IFORM8=2
39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE message_mod
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48C-----------------------------------------------
49C A n a l y s e M o d u l e
50C-----------------------------------------------
51#include "analyse_name.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "com04_c.inc"
56#include "scr17_c.inc"
57#include "scr03_c.inc"
58#include "param_c.inc"
59C-----------------------------------------------
60C D u m m y A r g u m e n t s
61C-----------------------------------------------
62 INTEGER NPBY(NNPBY,*), LPBY(*), ITAB(*)
63 INTEGER IKINE(*), IDDLEVEL, NUMSL
64 my_real rby(nrby,*)
65 INTEGER NOM_OPT(LNOPT1,*)
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER I,J,L,K,KK,M,N,NSL,NSKEW,IC,
70 . ISPHER,IDIR,P,IG,ID,ICDG,NSL_XTRA,
71 . NRB,NUMSL_TMP
72 CHARACTER(LEN=NCHARTITLE)::TITR
73 INTEGER, DIMENSION(:,:), ALLOCATABLE :: TABSL
74 INTEGER, DIMENSION(:), ALLOCATABLE :: INDEX,IKINE1
75 INTEGER IWORK(70000),IOLD
76 INTEGER IFLAGI1,IFLAGDBL,IRB
77C-----------------------------------
78C NPBY( 1,N) = main NODE
79C NPBY( 2,N) = NUMBER OF SECND NODES
80C NPBY( 3,N) = ICDG
81C NPBY( 4,N) = ISENS gw117
82C NPBY( 5,N) = FLAG SPHERICAL INERTIA
83C NPBY( 6,N) = IDENTIFICATEUR
84C NPBY( 7,N) = 1 ON(1) OFF(0)
85C NPBY( 8,N) = ISU
86C NPBY( 9,N) = NSKEW
87C NPBY(10,N) = IEXPAMS (AMS - Hidden)
88C = 1 (default) : AMS expansion ; = 2 (Hidden) : No expansion
89C NPBY(11,N) = IAD => secnd nodes LPBY(IAD+1:IAD+NSN)
90C NPBY(12,N) = RBODY LEVEL
91C NPBY(13,N) = RBODY IFLAG
92C NPBY(14,N) = NUMBER OF XTRA_NODE with Iflag=1
93C NPBY(15,N) = NUMBER OF XTRA_NODE with Iflag=2
94C NPBY(16,N) = NUMBER OF XTRA_NODE with Iflag=3
95C=======================================================================
96 IF (numsl > 0) THEN
97 ALLOCATE(tabsl(2,numsl))
98 ALLOCATE(index(3*numsl))
99 tabsl=0
100 index=0
101 END IF
102 n=0
103 k=0
104 kk=0
105 nrb = 0
106C
107 ALLOCATE(ikine1(3*numnod))
108 DO i=1,3*numnod
109 ikine1(i) = 0
110 ENDDO
111C
112 DO n=1,nrbykin
113 nsl=npby(2,n)
114 nsl_xtra=npby(14,n)+npby(15,n)+npby(16,n)
115 ispher = npby(5,n)
116 icdg = npby(3,n)
117 id=nom_opt(1,n)
118c
119 DO j=1,nsl-nsl_xtra
120 CALL anodset(lpby(j+k), check_rb_s)
121 tabsl(1,j+kk)=itab(lpby(j+k))
122 tabsl(2,j+kk)=n
123 ENDDO
124C
125 IF(iddlevel==0)THEN
126 IF(ikrem == 0)THEN
127 DO j=1,nsl
128 DO idir=1,6
129 CALL kinset(8,itab(lpby(j+k)),ikine(lpby(j+k)),idir,0,
130 . ikine1(lpby(j+k)))
131 ENDDO
132 ENDDO
133 ELSE
134 DO j=1,nsl
135 DO idir=1,6
136 CALL kinset(128,itab(lpby(j+k)),ikine(lpby(j+k)),idir,0,
137 . ikine1(lpby(j+k)))
138 ENDDO
139 ENDDO
140 ENDIF
141 ENDIF
142C
143 k=k+nsl
144 kk=kk+nsl-nsl_xtra
145 ENDDO
146 numsl_tmp=kk
147C-------------------------------------
148C Bilan secnd nodes doubles (sans les XTRA_NODES qui sont teste avant)
149C-------------------------------------
150 IF (nrbykin > 1) THEN
151 iwork=0
152 iflagdbl=0
153 DO i=1,numsl_tmp
154 index(i)=i
155 END DO
156 CALL my_orders(0,iwork,tabsl,index,numsl_tmp,2)
157 IF (numsl_tmp > 0) THEN
158 iold=-1
159 DO i=1,numsl_tmp
160 IF (tabsl(1,index(i))==iold) THEN
161 IF (iflagdbl==0) THEN
162 iflagi1=i-1
163 END IF
164 iflagdbl=1
165 ELSE
166 IF (iflagdbl/=0) THEN
167 DO j=iflagi1,i-1
168 irb=tabsl(2,index(j))
169 id=nom_opt(1,irb)
170 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,irb),ltitr)
171 CALL ancmsg(msgid=1026,
172 . msgtype=msgwarning,
173 . anmode=aninfo_blind_2,
174 . i1=id,
175 . c1=titr,
176 . prmod=msg_cumu)
177 END DO
178 CALL ancmsg(msgid=1026,
179 . msgtype=msgwarning,
180 . anmode=aninfo_blind_1,
181 . i1=tabsl(1,index(iflagi1)),
182 . prmod=msg_print)
183 iflagdbl=0
184 END IF
185 END IF
186 iold=tabsl(1,index(i))
187 END DO
188 END IF
189 END IF
190C
191C------------------------------------
192 IF(ALLOCATED(tabsl))DEALLOCATE(tabsl)
193 IF(ALLOCATED(index))DEALLOCATE(index)
194 IF(ALLOCATED(ikine1)) DEALLOCATE(ikine1)
195C------------------------------------
196 RETURN
197C
void anodset(int *id, int *type)
#define my_real
Definition cppsort.cpp:32
subroutine kinset(ik, node, ikine, idir, isk, ikine1)
Definition kinset.F:57
initmumps id
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
Definition my_orders.c:82
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