OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ini_rack.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!|| ini_rack ../starter/source/tools/lagmul/ini_rack.F
25!||--- called by ------------------------------------------------------
26!|| lgmini_gj ../starter/source/tools/lagmul/lgmini_gj.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!||--- uses -----------------------------------------------------
30!|| message_mod ../starter/share/message_module/message_mod.F
31!||====================================================================
32 SUBROUTINE ini_rack(IADLL ,JLL ,LLL ,N0 ,N1 ,
33 . N2 ,NC,ID,TITR)
34 USE message_mod
36C----------------------------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "lagmult.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER N0, N1, N2, NC, IADLL(*), JLL(*), LLL(*)
48 INTEGER ID
49 CHARACTER(LEN=NCHARTITLE) :: TITR
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
53 INTEGER IK, IAD
54C======================================================================|
55C
56C --- V_x
57 nc = nc + 1
58 IF(nc>lag_ncf)THEN
59 CALL ancmsg(msgid=468,
60 . msgtype=msgerror,
61 . anmode=aninfo,
62 . i1=id,
63 . c1='RACK & PINION JOINT',
64 . c2='RACK & PINION JOINT',
65 . c3=titr)
66 ENDIF
67 iadll(nc+1)=iadll(nc) + 4
68 IF(iadll(nc+1)-1>lag_nkf)THEN
69 CALL ancmsg(msgid=469,
70 . msgtype=msgerror,
71 . anmode=aninfo,
72 . i1=id,
73 . c1='RACK & PINION JOINT',
74 . c2='RACK & PINION JOINT',
75 . c3=titr)
76 ENDIF
77 ik = iadll(nc)
78 lll(ik) = n1
79 jll(ik) = 1
80 ik = ik+1
81 lll(ik) = n0
82 jll(ik) = 1
83 ik = ik+1
84 lll(ik) = n0
85 jll(ik) = 5
86 ik = ik+1
87 lll(ik) = n0
88 jll(ik) = 6
89C
90C --- V_y
91 nc = nc + 1
92 IF(nc>lag_ncf)THEN
93 CALL ancmsg(msgid=468,
94 . msgtype=msgerror,
95 . anmode=aninfo,
96 . i1=id,
97 . c1='RACK & PINION JOINT',
98 . c2='RACK & PINION JOINT',
99 . c3=titr)
100 ENDIF
101 iadll(nc+1)=iadll(nc) + 4
102 IF(iadll(nc+1)-1>lag_nkf)THEN
103 CALL ancmsg(msgid=469,
104 . msgtype=msgerror,
105 . anmode=aninfo,
106 . i1=id,
107 . c1='RACK & PINION JOINT',
108 . c2='RACK & PINION JOINT',
109 . c3=titr)
110 ENDIF
111 ik = iadll(nc)
112 lll(ik) = n1
113 jll(ik) = 2
114 ik = ik+1
115 lll(ik) = n0
116 jll(ik) = 2
117 ik = ik+1
118 lll(ik) = n0
119 jll(ik) = 6
120 ik = ik+1
121 lll(ik) = n0
122 jll(ik) = 4
123C
124C --- V_z
125 nc = nc + 1
126 IF(nc>lag_ncf)THEN
127 CALL ancmsg(msgid=468,
128 . msgtype=msgerror,
129 . anmode=aninfo,
130 . i1=id,
131 . c1='RACK & PINION JOINT',
132 . c2='RACK & PINION JOINT',
133 . c3=titr)
134 ENDIF
135 iadll(nc+1)=iadll(nc) + 4
136 IF(iadll(nc+1)-1>lag_nkf)THEN
137 CALL ancmsg(msgid=469,
138 . msgtype=msgerror,
139 . anmode=aninfo,
140 . i1=id,
141 . c1='RACK & PINION JOINT',
142 . c2='RACK & PINION JOINT',
143 . c3=titr)
144 ENDIF
145 ik = iadll(nc)
146 lll(ik) = n1
147 jll(ik) = 3
148 ik = ik+1
149 lll(ik) = n0
150 jll(ik) = 3
151 ik = ik+1
152 lll(ik) = n0
153 jll(ik) = 4
154 ik = ik+1
155 lll(ik) = n0
156 jll(ik) = 5
157C
158C --- V1_x
159 nc = nc + 1
160 IF(nc>lag_ncf)THEN
161 CALL ancmsg(msgid=468,
162 . msgtype=msgerror,
163 . anmode=aninfo,
164 . i1=id,
165 . c1='RACK & PINION JOINT',
166 . c2='RACK & PINION JOINT',
167 . c3=titr)
168 ENDIF
169 iadll(nc+1)=iadll(nc) + 2
170 IF(iadll(nc+1)-1>lag_nkf)THEN
171 CALL ancmsg(msgid=469,
172 . msgtype=msgerror,
173 . anmode=aninfo,
174 . i1=id,
175 . c1='RACK & PINION JOINT',
176 . c2='RACK & PINION JOINT',
177 . c3=titr)
178 ENDIF
179 ik = iadll(nc)
180 lll(ik) = n2
181 jll(ik) = 4
182 ik = ik+1
183 lll(ik) = n0
184 jll(ik) = 4
185C
186C --- V1_y
187 nc = nc + 1
188 IF(nc>lag_ncf)THEN
189 CALL ancmsg(msgid=468,
190 . msgtype=msgerror,
191 . anmode=aninfo,
192 . i1=id,
193 . c1='RACK & PINION JOINT',
194 . c2='RACK & PINION JOINT',
195 . c3=titr)
196 ENDIF
197 iadll(nc+1)=iadll(nc) + 2
198 IF(iadll(nc+1)-1>lag_nkf)THEN
199 CALL ancmsg(msgid=469,
200 . msgtype=msgerror,
201 . anmode=aninfo,
202 . i1=id,
203 . c1='RACK & PINION JOINT',
204 . c2='RACK & PINION JOINT',
205 . c3=titr)
206 ENDIF
207 ik = iadll(nc)
208 lll(ik) = n2
209 jll(ik) = 5
210 ik = ik+1
211 lll(ik) = n0
212 jll(ik) = 5
213C
214C --- V1_z
215 nc = nc + 1
216 IF(nc>lag_ncf)THEN
217 CALL ancmsg(msgid=468,
218 . msgtype=msgerror,
219 . anmode=aninfo,
220 . i1=id,
221 . c1='RACK & PINION JOINT',
222 . c2='RACK & PINION JOINT',
223 . c3=titr)
224 ENDIF
225 iadll(nc+1)=iadll(nc) + 2
226 IF(iadll(nc+1)-1>lag_nkf)THEN
227 CALL ancmsg(msgid=469,
228 . msgtype=msgerror,
229 . anmode=aninfo,
230 . i1=id,
231 . c1='RACK & PINION JOINT',
232 . c2='RACK & PINION JOINT',
233 . c3=titr)
234 ENDIF
235 ik = iadll(nc)
236 lll(ik) = n2
237 jll(ik) = 6
238 ik = ik+1
239 lll(ik) = n0
240 jll(ik) = 6
241C
242C ---
243C Local Constraints
244 nc = nc + 1
245 IF(nc>lag_ncf)THEN
246 CALL ancmsg(msgid=468,
247 . msgtype=msgerror,
248 . anmode=aninfo,
249 . i1=id,
250 . c1='RACK & PINION JOINT',
251 . c2='RACK & PINION JOINT',
252 . c3=titr)
253 ENDIF
254 iadll(nc+1)=iadll(nc) + 12
255 IF(iadll(nc+1)-1>lag_nkf)THEN
256 CALL ancmsg(msgid=469,
257 . msgtype=msgerror,
258 . anmode=aninfo,
259 . i1=id,
260 . c1='RACK & PINION JOINT',
261 . c2='RACK & PINION JOINT',
262 . c3=titr)
263 ENDIF
264 ik = iadll(nc)
265 lll(ik) = n1
266 jll(ik) = 4
267 ik = ik+1
268 lll(ik) = n1
269 jll(ik) = 5
270 ik = ik+1
271 lll(ik) = n1
272 jll(ik) = 6
273c
274 ik = ik+1
275 lll(ik) = n0
276 jll(ik) = 4
277 ik = ik+1
278 lll(ik) = n0
279 jll(ik) = 5
280 ik = ik+1
281 lll(ik) = n0
282 jll(ik) = 6
283c
284 ik = ik+1
285 lll(ik) = n2
286 jll(ik) = 1
287 ik = ik+1
288 lll(ik) = n2
289 jll(ik) = 2
290 ik = ik+1
291 lll(ik) = n2
292 jll(ik) = 3
293C
294 ik = ik+1
295 lll(ik) = n0
296 jll(ik) = 1
297 ik = ik+1
298 lll(ik) = n0
299 jll(ik) = 2
300 ik = ik+1
301 lll(ik) = n0
302 jll(ik) = 3
303C
304C local - y
305 nc = nc + 1
306 IF(nc>lag_ncf)THEN
307 CALL ancmsg(msgid=468,
308 . msgtype=msgerror,
309 . anmode=aninfo,
310 . i1=id,
311 . c1='RACK & PINION JOINT',
312 . c2='RACK & PINION JOINT',
313 . c3=titr)
314 ENDIF
315 iadll(nc+1)=iadll(nc) + 9
316 IF(iadll(nc+1)-1>lag_nkf)THEN
317 CALL ancmsg(msgid=469,
318 . msgtype=msgerror,
319 . anmode=aninfo,
320 . i1=id,
321 . c1='RACK & PINION JOINT',
322 . c2='RACK & PINION JOINT',
323 . c3=titr)
324 ENDIF
325 ik = iadll(nc)
326 lll(ik) = n2
327 jll(ik) = 1
328 ik = ik+1
329 lll(ik) = n2
330 jll(ik) = 2
331 ik = ik+1
332 lll(ik) = n2
333 jll(ik) = 3
334 ik = ik+1
335 lll(ik) = n0
336 jll(ik) = 1
337 ik = ik+1
338 lll(ik) = n0
339 jll(ik) = 2
340 ik = ik+1
341 lll(ik) = n0
342 jll(ik) = 3
343C
344 ik = ik+1
345 lll(ik) = n2
346 jll(ik) = 4
347 ik = ik+1
348 lll(ik) = n2
349 jll(ik) = 5
350 ik = ik+1
351 lll(ik) = n2
352 jll(ik) = 6
353C
354C local - z
355 nc = nc + 1
356 IF(nc>lag_ncf)THEN
357 CALL ancmsg(msgid=468,
358 . msgtype=msgerror,
359 . anmode=aninfo,
360 . i1=id,
361 . c1='RACK & PINION JOINT',
362 . c2='RACK & PINION JOINT',
363 . c3=titr)
364 ENDIF
365 iadll(nc+1)=iadll(nc) + 9
366 IF(iadll(nc+1)-1>lag_nkf)THEN
367 CALL ancmsg(msgid=469,
368 . msgtype=msgerror,
369 . anmode=aninfo,
370 . i1=id,
371 . c1='RACK & PINION JOINT',
372 . c2='RACK & PINION JOINT',
373 . c3=titr)
374 ENDIF
375 ik = iadll(nc)
376 lll(ik) = n2
377 jll(ik) = 1
378 ik = ik+1
379 lll(ik) = n2
380 jll(ik) = 2
381 ik = ik+1
382 lll(ik) = n2
383 jll(ik) = 3
384 ik = ik+1
385 lll(ik) = n0
386 jll(ik) = 1
387 ik = ik+1
388 lll(ik) = n0
389 jll(ik) = 2
390 ik = ik+1
391 lll(ik) = n0
392 jll(ik) = 3
393C
394 ik = ik+1
395 lll(ik) = n2
396 jll(ik) = 4
397 ik = ik+1
398 lll(ik) = n2
399 jll(ik) = 5
400 ik = ik+1
401 lll(ik) = n2
402 jll(ik) = 6
403C
404C---
405 RETURN
406 END
subroutine ini_rack(iadll, jll, lll, n0, n1, n2, nc, id, titr)
Definition ini_rack.F:34
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