OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rinit3.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!|| rinit3 ../starter/source/elements/spring/rinit3.F
25!||--- called by ------------------------------------------------------
26!|| initia ../starter/source/elements/initia/initia.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| fretitl2 ../starter/source/starter/freform.F
30!|| r1buf3 ../starter/source/elements/spring/r1buf3.F
31!|| r23mass ../starter/source/elements/spring/rmass.F
32!|| r2buf3 ../starter/source/elements/spring/r2buf3.F
33!|| r3buf3 ../starter/source/elements/spring/r3buf3.F
34!|| r4buf3 ../starter/source/elements/spring/r4buf3.F
35!|| r4ini ../starter/source/elements/spring/rinit3.F
36!|| r8ini ../starter/source/elements/spring/rinit3.F
37!|| rini1u ../starter/source/elements/spring/rinit3.F
38!|| rini2u ../starter/source/elements/spring/rinit3.F
39!|| rini32 ../starter/source/properties/spring/hm_read_prop32.F
40!|| rini33 ../starter/source/elements/joint/rjoint/rini33.F
41!|| rini35 ../starter/source/elements/spring/rini35.f
42!|| rini36 ../starter/source/properties/spring/hm_read_prop36.F
43!|| rini3u ../starter/source/elements/spring/rinit3.F
44!|| rini44 ../starter/source/elements/spring/rini44.F
45!|| rini45 ../starter/source/elements/joint/rjoint/rini45.F
46!|| rini46 ../starter/source/elements/spring/rini46.F
47!|| rkini3 ../starter/source/elements/spring/rkini3.F
48!|| rmas12 ../starter/source/elements/spring/rmas12.F
49!|| rmass ../starter/source/elements/spring/rmass.f
50!|| ruini ../starter/source/elements/spring/rinit3.F
51!|| user_output ../starter/source/user_interface/user_output.f
52!||--- uses -----------------------------------------------------
53!|| bpreload_mod ../starter/share/modules1/bpreload_mod.F
54!|| format_mod ../starter/share/modules1/format_mod.F90
55!|| message_mod ../starter/share/message_module/message_mod.f
56!||====================================================================
57 SUBROUTINE rinit3(ELBUF_STR,
58 . IXR ,X ,GEO ,XMAS ,NPC ,
59 . PLD ,XIN ,SKEW ,DTELEM ,NEL ,
60 . STIFN ,STIFR ,PARTSAV ,V ,IPART ,
61 . ITAB ,MSR ,
62 . INR ,STIFINT ,STR ,IGEO ,SIGRS ,
63 . NSIGRS ,IMERGE2 ,IADMERGE2,MSRT ,IXR_KJ,
64 . NOM_OPT ,STRR ,PTSPRI ,IPM ,PM ,
65 . UPARAM ,R_SKEW ,PRELOAD_A,IPRELD ,NPRELOAD_A,
66 . IKINE)
67C-----------------------------------------------
68C M o d u l e s
69C-----------------------------------------------
70 USE elbufdef_mod
71 USE message_mod
72 USE seatbelt_mod
73 USE bpreload_mod
75 USE format_mod , ONLY : fmt_10i
76C-----------------------------------------------
77C I m p l i c i t T y p e s
78C-----------------------------------------------
79#include "implicit_f.inc"
80C-----------------------------------------------
81C G l o b a l P a r a m e t e r s
82C-----------------------------------------------
83#include "mvsiz_p.inc"
84C-----------------------------------------------
85C C o m m o n B l o c k s
86C-----------------------------------------------
87#include "param_c.inc"
88#include "units_c.inc"
89#include "vect01_c.inc"
90#include "com01_c.inc"
91#include "com04_c.inc"
92#include "random_c.inc"
93#include "scr12_c.inc"
94#include "scr17_c.inc"
95#include "userlib.inc"
96#include "scr15_c.inc"
97#include "kincod_c.inc"
98C-----------------------------------------------
99C D u m m y A r g u m e n t s
100C-----------------------------------------------
101 INTEGER IXR(NIXR,*), NPC(*),IPART(*),ITAB(*),NEL,
102 . IGEO(NPROPGI,*),NSIGRS,IMERGE2(NUMNOD+1),
103 . IADMERGE2(NUMNOD+1),IXR_KJ(5,*),PTSPRI(*),
104 . IPM(NPROPMI,*),R_SKEW(*)
105 INTEGER NOM_OPT(LNOPT1,*)
106 INTEGER , INTENT (IN) :: IPRELD,NPRELOAD_A
107 INTEGER , INTENT (IN) :: IKINE(3*NUMNOD)
108C REAL
109 my_real
110 . x(3,*), geo(npropg,*), xmas(*), pld(*), xin(*),
111 . skew(lskew,*), dtelem(*),stifn(*),stifr(*),partsav(20,*), v(*),
112 . msr(3,*), inr(3,*),
113 . stifint(*), str(*),sigrs(nsigrs,*), msrt(*),strr(*),uparam(*),
114 . pm(npropm,*)
115C
116 TYPE(elbuf_struct_), TARGET :: ELBUF_STR
117 TYPE(PREL1D_) , DIMENSION(NPRELOAD_A), TARGET :: PRELOAD_A
118C-----------------------------------------------
119C L o c a l V a r i a b l e s
120C-----------------------------------------------
121 INTEGER I,J,I2, IGTYP, NDEPAR,
122 . K,KK,KK1,ITMP,
123 . I1, I0, I3,NEL3,NUVAR,NUPARAM,NFUNC,IADFUN,
124 . NMAT,IADMAT,NJPID,ILENG,NFUND,
125 3 uix(4,mvsiz),
126 . imat,k1,k11,k14,k12,k13,iadbuf,imass,slip,fra,ih,nkin,
127 . kcond1,kcond2
128C REAL
129 my_real
130 . dt, dtc, xkm, xcm, xkr, xcr, xm, xine, ex, ey, ez,
131 . al2, sti,rho,kx,kxy,kxz,
132 . ul(mvsiz),
133 . uiner(mvsiz) ,ustifm(mvsiz) ,
134 . ustifr(mvsiz),uvism(mvsiz) ,
135 . uvisr(mvsiz), xl(mvsiz), dx(mvsiz,3),ems(mvsiz)
136 my_real
137 . length, ratio, lmin
138 my_real
139 . minl, maxl, rfac, ixx, iyy, ine2
140 INTEGER IDS, CNT1, CNT2, NSPRG, NSPRG4, NSPRG8, NSPRG12,
141 . NSPRG13, NSPRG25, NSPRG26, NSPRGU, IUN,NSPRG23,NSPRG27
142 DATA NSPRG /0/, NSPRG4 /0/, NSPRG8 /0/, NSPRG12 /0/,
143 . NSPRG13 /0/, NSPRG25 /0/,NSPRG26/0/,NSPRGU /0/,
144 . NSPRG23 /0/,NSPRG27/0/
145 INTEGER MINIDL, MAXIDL,IPID,IFUNC
146 my_real
147 . noise,bidon,mas2,undamp
148 INTEGER ID
149 CHARACTER(LEN=NCHARTITLE)::TITR
150 CHARACTER OPTION*50
151C
152 TYPE(g_bufel_),POINTER :: GBUF
153 INTEGER II(6)
154 my_real :: dfs(2), dv(2)
155C=======================================================================
156 bidon = zero
157C
158 gbuf => elbuf_str%GBUF
159C
160 DO i=1,6
161 ii(i) = (i-1)*nel + 1
162 ENDDO
163C
164 iun = 1
165 noise = two*sqrt(three)*xalea
166C
167 DO i=1,numgeo
168 igtyp=igeo(11,i)
169 id=igeo(1,i)
170 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i),ltitr)
171 IF (igtyp == 4 .OR. igtyp == 12 .OR. igtyp == 27) THEN
172 CALL rkini3(igeo(101,i),npc,pld,geo(2,i),geo(7,i),igeo(1,i),
173 . geo(10,i) ,geo(39,i) ,id,titr,nom_opt)
174 ELSEIF (igtyp == 8 .OR. igtyp == 13) THEN
175 CALL rkini3(igeo(101,i),npc,pld,geo(3,i) , geo(7,i) , igeo(1,i),
176 . geo(41,i) ,geo(39,i) ,id,titr,nom_opt)
177 CALL rkini3(igeo(104,i),npc,pld,geo(10,i), geo(14,i), igeo(1,i),
178 . geo(45,i) ,geo(174,i) ,id,titr,nom_opt)
179 CALL rkini3(igeo(107,i),npc,pld,geo(15,i), geo(18,i), igeo(1,i),
180 . geo(49,i) ,geo(175,i) ,id,titr,nom_opt)
181 CALL rkini3(igeo(110,i),npc,pld,geo(19,i), geo(22,i), igeo(1,i),
182 . geo(53,i) ,geo(176,i) ,id,titr,nom_opt)
183 CALL rkini3(igeo(113,i),npc,pld,geo(23,i), geo(26,i), igeo(1,i),
184 . geo(57,i) ,geo(177,i) ,id,titr,nom_opt)
185 CALL rkini3(igeo(116,i),npc,pld,geo(27,i), geo(30,i), igeo(1,i),
186 . geo(61,i) ,geo(178,i) ,id,titr,nom_opt)
187 ELSEIF (igtyp == 25) THEN
188 CALL rkini3(igeo(102,i),npc,pld,geo(3,i) , geo(7,i) , igeo(1,i),
189 . geo(41,i) ,geo(39,i) ,id,titr,nom_opt)
190 CALL rkini3(igeo(106,i),npc,pld,geo(10,i), geo(14,i), igeo(1,i),
191 . geo(45,i) ,geo(174,i) ,id,titr,nom_opt)
192 CALL rkini3(igeo(110,i),npc,pld,geo(19,i), geo(22,i), igeo(1,i),
193 . geo(53,i) ,geo(176,i) ,id,titr,nom_opt)
194 CALL rkini3(igeo(114,i),npc,pld,geo(23,i), geo(26,i), igeo(1,i),
195 . geo(57,i) ,geo(177,i) ,id,titr,nom_opt)
196 ELSEIF (igtyp == 26) THEN
197 nfunc = igeo(20,i)
198 nfund = igeo(21,i)
199 iadfun = 100
200 DO j = 1,nfunc
201 CALL rkini3(igeo(iadfun+j,i),npc,pld,geo(2,i),one, igeo(1,i),
202 . one ,one ,id,titr,nom_opt)
203 ENDDO
204 iadfun = nfund+100
205 DO j = 1,nfund
206 CALL rkini3(igeo(iadfun+j,i),npc,pld,geo(2,i),one, igeo(1,i),
207 . one ,one ,id,titr,nom_opt)
208 ENDDO
209 ELSEIF (igtyp == 23) THEN
210 geo(4,i) = ep30 !
211 ENDIF ! IF (IGTYP
212 ENDDO ! DO I=1,NUMGEO
213C
214 CALL ancmsg(msgid=506,
215 . msgtype=msgwarning,
216 . anmode=aninfo_blind_1,
217 . prmod=msg_print)
218C-----------------
219 ipid=ixr(1,nft+1)
220 id=igeo(1,ipid)
221 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid),ltitr)
222 DO i=lft,llt
223 j=i+nft
224 i0=ixr(1,j)
225 i1=ixr(2,j)
226 i2=ixr(3,j)
227 i3=ixr(4,j)
228C-----------------
229 IF (i1 == i2 .OR. i1 == i3 .OR. i2 == i3) THEN
230 IF (i1 == i2 .OR. i1 == i3) itmp = i1
231 IF (i2 == i3) itmp = i2
232 IF (imerge2(itmp) /= 0) THEN
233 CALL ancmsg(msgid=682,
234 . msgtype=msgwarning,
235 . anmode=aninfo_blind_1,
236 . i1=ixr(nixr,j),
237 . i2=itab(itmp))
238 WRITE (iout,1000) itab(itmp)
239 kk = 0
240 DO k=1,iadmerge2(itmp+1) - iadmerge2(itmp)
241 kk = kk + 1
242 IF (kk == 10) THEN
243 WRITE (iout,fmt=fmt_10i)(itab(imerge2(iadmerge2(itmp)+kk1)),kk1=0,kk-1)
244 kk = 0
245 ENDIF
246 ENDDO
247 IF (kk /= 0) THEN
248 WRITE (iout,fmt=fmt_10i)
249 . (itab(imerge2(iadmerge2(itmp)+kk1)),kk1=0,kk-1)
250 ENDIF
251 ELSE
252 CALL ancmsg(msgid=681,
253 . msgtype=msgerror,
254 . anmode=aninfo_blind_1,
255 . i1=ixr(nixr,j) )
256 ENDIF ! IF (IMERGE2(ITMP) /= 0)
257 ENDIF ! IF (I1 == I2 .OR. I1 == I3 .OR. I2 == I3)
258C-----------------
259 igtyp=igeo(11,i0)
260 IF (igtyp /= 4 .AND. igtyp /= 8 .AND.
261 . igtyp /= 12 .AND. igtyp /= 13 .AND. igtyp /= 25 .AND.
262 . igtyp /= 44 .AND. igtyp /= 26 .AND. igtyp < 29 .AND.
263 . igtyp /= 46 .AND. igtyp /= 23 .AND. igtyp /= 27) THEN
264 CALL ancmsg(msgid=243,
265 . msgtype=msgerror,
266 . anmode=aninfo_blind_1,
267 . i1=id,
268 . c1=titr)
269 ENDIF
270C check compatibility of property type with spring elements.
271 IF (igtyp > 33 .AND. igtyp /= 35 .AND. igtyp /= 36 .AND.
272 . igtyp /= 44 .AND. igtyp /= 45 .AND. igtyp /= 46) THEN
273 CALL ancmsg(msgid=243,
274 . msgtype=msgerror,
275 . anmode=aninfo_blind_1,
276 . i1=id,
277 . c1=titr)
278 ENDIF
279 ENDDO
280C-----
281 i0=ixr(1,1+nft)
282 id=igeo(1,i0)
283 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i0),ltitr)
284 igtyp = igeo(11,i0)
285 IF (igtyp == 12) THEN
286 DO i=lft,llt
287 IF (ixr(4,i+nft) == 0) THEN
288 ipid=ixr(1,i+nft)
289 CALL ancmsg(msgid=244,
290 . msgtype=msgerror,
291 . anmode=aninfo,
292 . i1=id,
293 . c1=titr,
294 . i2=ixr(nixr,i+nft))
295 ENDIF
296 ENDDO
297 ENDIF
298C
299 ids = 328
300 cnt1 = 0
301 cnt2 = 0
302 nsprg = 0
303c CALL ANCNTS(IDS, CNT2)
304 DO i=lft,llt
305 j=i+nft
306 i0=ixr(1,j)
307 i1=ixr(2,j)
308 i2=ixr(3,j)
309 i3=ixr(4,j)
310 igtyp=igeo(11,i0)
311 ileng=nint(geo(93,i0))
312 IF (igtyp == 4) THEN
313 nsprg4 = nsprg4 + 1
314 ELSE IF (igtyp == 8) THEN
315 nsprg8 = nsprg8 + 1
316 ELSE IF (igtyp == 12) THEN
317 nsprg12 = nsprg12 + 1
318 ELSE IF (igtyp == 13) THEN
319 nsprg13 = nsprg13 + 1
320 ELSE IF (igtyp == 23) THEN
321 nsprg23 = nsprg23 + 1
322 imat = ixr(5,i+nft)
323 iadbuf = ipm(7,imat) - 1
324 ileng = nint(uparam(iadbuf + 2))
325 imass = igeo(4,i0)
326 mtn = ipm(2,imat)
327 IF(mtn == 114) THEN
328 imass = 1
329 lmin = max(uparam(iadbuf + 119),uparam(iadbuf + 126))
330 ENDIF
331 ELSE IF (igtyp == 25) THEN
332 nsprg25 = nsprg25 + 1
333 ELSE IF (igtyp == 26) THEN
334 nsprg26 = nsprg26 + 1
335 ELSE IF (igtyp == 27) THEN
336 nsprg27 = nsprg27 + 1
337 ELSE
338 nsprgu = nsprgu + 1
339 ENDIF
340 IF (ileng > 0) THEN
341 xl(i) = sqrt(
342 . (x(1,i1)-x(1,i2))*(x(1,i1)-x(1,i2))
343 + + (x(2,i1)-x(2,i2))*(x(2,i1)-x(2,i2))
344 + + (x(3,i1)-x(3,i2))*(x(3,i1)-x(3,i2)) )
345 IF (igtyp == 12) THEN
346 xl(i) = xl(i) + sqrt(
347 . (x(1,i3)-x(1,i2))*(x(1,i3)-x(1,i2))
348 + + (x(2,i3)-x(2,i2))*(x(2,i3)-x(2,i2))
349 + + (x(3,i3)-x(3,i2))*(x(3,i3)-x(3,i2)) )
350 ENDIF
351 IF (mtn == 114) xl(i) = max(xl(i),lmin)
352 IF (xl(i) <= noise) THEN
353 ipid = ixr(1,i)
354 CALL ancmsg(msgid=328,
355 . msgtype=msgerror,
356 . anmode=aninfo_blind_1,
357 . i1=id,
358 . c1=titr,
359 . i2=ixr(nixr,j))
360 ENDIF
361 ELSE
362 xl(i)=one
363 ENDIF
364 ENDDO
365C
366c CALL ANCNTG(IDS, CNT1, CNT2)
367 nsprg = nsprg + cnt2
368 minl = zero
369 maxl = zero
370 minidl = 0
371 maxidl = 0
372 DO i=lft,llt
373 j=i+nft
374 i0=ixr(1,j)
375 i1=ixr(2,j)
376 i2=ixr(3,j)
377 i3=ixr(4,j)
378 igtyp=igeo(11,i0)
379C
380 length = sqrt(
381 . (x(1,i1)-x(1,i2))*(x(1,i1)-x(1,i2))
382 + + (x(2,i1)-x(2,i2))*(x(2,i1)-x(2,i2))
383 + + (x(3,i1)-x(3,i2))*(x(3,i1)-x(3,i2)) )
384 IF (igtyp == 12) THEN
385 length = length + sqrt(
386 . (x(1,i3)-x(1,i2))*(x(1,i3)-x(1,i2))
387 + + (x(2,i3)-x(2,i2))*(x(2,i3)-x(2,i2))
388 + + (x(3,i3)-x(3,i2))*(x(3,i3)-x(3,i2)) )
389 ENDIF
390C
391 IF (minl <= 0 .OR. (length < minl .AND. length > em15)) THEN
392 minidl = ixr(nixr,j)
393 minl = length
394 ENDIF
395C
396 IF (length > maxl) THEN
397 maxidl = ixr(nixr,j)
398 maxl = length
399 ENDIF
400C
401 IF(igtyp == 8 .OR. igtyp==13 .OR. igtyp==25) THEN
402 ileng=nint(geo(93,i0))
403C
404 IF (ileng > 0) THEN
405 xm=geo(1,i0)*xl(i)
406 xine=geo(9,i0)*xl(i)
407 ELSE
408 xm=geo(1,i0)
409 xine=geo(9,i0)
410 ENDIF
411C
412C---- For prop type8 - skew per element is used if available
413 IF ((igtyp == 8).AND.( r_skew(i+nft) > 0)) THEN
414 gbuf%SKEW_ID(i) = r_skew(i+nft)
415 ELSEIF (igtyp == 8) THEN
416C---- For prop type8 - skew of property is used if no skew per element
417 gbuf%SKEW_ID(i) = igeo(2,i0)
418 r_skew(i+nft) = igeo(2,i0)
419 ENDIF
420C
421 ratio = xm * length * length
422 IF ( (.NOT.((igtyp == 8).AND.(length < em15))) .AND.
423 . (xine < ratio/ep03 .OR. xine > ratio*ep03) ) THEN
424 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i0),ltitr)
425 CALL ancmsg(msgid=432,
426 . msgtype=msgwarning,
427 . anmode=aninfo_blind_2,
428 . i1=igeo(1,i0),
429 . c1=titr,
430 . r2=ratio,
431 . r1=xine,
432 . i2=ixr(nixr,i+nft),
433 . prmod=msg_cumu)
434 ENDIF
435 ELSEIF(igtyp == 23) THEN
436 imat = ixr(5,i+nft)
437 iadbuf = ipm(7,imat) - 1
438 ileng = nint(uparam(iadbuf + 2))
439 rho = pm(1,imat)
440 imass = igeo(4,i0)
441 mtn = ipm(2,imat)
442 uiner(i) = zero
443C---- For mat law108 skew per element is used if available
444 IF ((mtn == 108).AND.( r_skew(i+nft) > 0)) THEN
445 gbuf%SKEW_ID(i) = r_skew(i+nft)
446 ELSEIF (mtn == 108) THEN
447C---- For mat law108 skew of property 23 is used if no skew per element
448 gbuf%SKEW_ID(i) = igeo(2,i0)
449 ELSEIF (mtn == 114) THEN
450C---- For mat law114 lmin is used for mass setting of element with null length
451 imass = 1
452 lmin = max(uparam(iadbuf + 119),uparam(iadbuf + 126))
453 rfac = uparam(iadbuf + 124)
454 ixx = uparam(iadbuf + 122)
455 iyy = uparam(iadbuf + 123)
456 length = max(length,lmin)
457 IF (uparam(iadbuf + 127) > zero) THEN
458C- 1D material of 2D seatbelt - no need for inertia - mass and inertia given by shell
459 rfac = zero
460 ENDIF
461C- inertia of element is automatically computed according to moment of inertia area if Young modulus > 0
462 uiner(i) = max(em20,rfac*max((rho*geo(1,i0)*length*length*length)/twelve + rho*iyy*length,rho*ixx*length))
463 ENDIF
464C
465 IF(imass == 1) THEN
466 gbuf%MASS(i) = geo(1,i0)*length*rho
467 IF ((length == zero).AND.(rho /= zero)) THEN
468 ipid = ixr(1,i)
469 nkin = ikine(i1)
470 kcond1 = irb(nkin)+irb2(nkin)
471 nkin = ikine(i2)
472 kcond2 = irb(nkin)+irb2(nkin)
473 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i0),ltitr)
474 IF (((xmas(i1) > zero).OR.(kcond1 > 0)).AND.((xmas(i2) > zero).OR.(kcond1 > 0)).AND.(mtn == 108)) THEN
475C- imass = 1 (mass per unit lenght) + null length accepted for law108
476C- if nodes have masses are or connected to rbodies - only a warning is printed
477 CALL ancmsg(msgid=3103,
478 . msgtype=msgwarning,
479 . anmode=aninfo_blind_1,
480 . i1=id,
481 . c1=titr,
482 . i2=ixr(nixr,i))
483 ELSE
484 CALL ancmsg(msgid=1664,
485 . msgtype=msgerror,
486 . anmode=aninfo_blind_1,
487 . i1=id,
488 . c1=titr,
489 . i2=ixr(nixr,i))
490 ENDIF
491 ENDIF
492 ELSEIF(imass == 2) THEN
493 gbuf%MASS(i) = geo(1,i0)*rho
494 ENDIF
495C
496
497 xm = gbuf%MASS(i)
498 xine = geo(2,i0)
499
500C
501 ratio = xm * length * length
502 IF( mtn == 113) THEN
503 IF ( ((length < em15)) .AND.
504 . (xine < ratio/ep03 .OR. xine > ratio*ep03) ) THEN
505 CALL fretitl2(titr,igeo(npropgi-ltitr+1,i0),ltitr)
506 CALL ancmsg(msgid=432,
507 . msgtype=msgwarning,
508 . anmode=aninfo_blind_2,
509 . i1=igeo(1,i0),
510 . c1=titr,
511 . r2=ratio,
512 . r1=xine,
513 . i2=ixr(nixr,i+nft),
514 . prmod=msg_cumu)
515 ENDIF
516 ENDIF
517 ENDIF
518 ENDDO ! DO I=LFT,LLT
519C
520 CALL ancmsg(msgid=432,
521 . msgtype=msgwarning,
522 . anmode=aninfo_blind_2,
523 . prmod=msg_print)
524C------------------------------------------
525C INITIALISATION DES RIGIDITES NODALES POUR INTERFACES
526C------------------------------------------
527 IF (i7stifs /= 0) THEN
528 IF (igtyp == 4 .OR. igtyp == 12 .OR. igtyp == 27) THEN
529 DO i=lft,llt
530 j=i+nft
531 i0=ixr(1,j)
532 i1=ixr(2,j)
533 i2=ixr(3,j)
534 i3=ixr(4,j)
535 sti = geo(2,i0)*geo(10,i0)/max(em30,xl(i))
536 str(i)=sti
537 ENDDO
538 ELSEIF (igtyp == 8 .OR. igtyp == 13) THEN
539 DO i=lft,llt
540 j=i+nft
541 i0=ixr(1,j)
542 i1=ixr(2,j)
543 i2=ixr(3,j)
544 sti = max(geo(3,i0)*geo(41,i0),geo(10,i0)*geo(45,i0),geo(15,i0)*geo(49,i0))/max(em30,xl(i))
545 str(i)=sti
546 ENDDO
547 ELSEIF (igtyp == 23 ) THEN
548 k11 = 64 ! 4 + 6*10
549 DO i=lft,llt
550 j=i+nft
551 i0=ixr(1,j)
552 i1=ixr(2,j)
553 i2=ixr(3,j)
554 imat = ixr(5,i+nft)
555 iadbuf = ipm(7,imat) - 1
556 kx = uparam(iadbuf + k11 + 1)
557 kxy = uparam(iadbuf + k11 + 2)
558 kxz = uparam(iadbuf + k11 + 3)
559 sti = max(kx,kxy,kxz)/max(em30,xl(i))
560 str(i)=sti
561 ENDDO
562 ELSEIF (igtyp == 25) THEN
563 DO i=lft,llt
564 j=i+nft
565 i0=ixr(1,j)
566 i1=ixr(2,j)
567 i2=ixr(3,j)
568 sti = max(geo(3,i0)*geo(41,i0),geo(10,i0)*geo(45,i0))/max(em30,xl(i))
569 str(i)=sti
570 ENDDO
571 ELSEIF (igtyp == 26) THEN
572 DO i=lft,llt
573 j=i+nft
574 i0=ixr(1,j)
575 i1=ixr(2,j)
576 i2=ixr(3,j)
577 i3=ixr(4,j)
578 sti = geo(2,i0)/max(em30,xl(i))
579 str(i)=sti
580 ENDDO
581 ELSE
582 DO i=lft,llt
583 j=i+nft
584 i0=ixr(1,j)
585 i1=ixr(2,j)
586 i2=ixr(3,j)
587 sti = geo(3,i0)
588 str(i)=sti
589 ENDDO
590 ENDIF ! IF (IGTYP
591 ENDIF ! IF (I7STIF /= 0)
592C------------------------------------------
593 ndepar=numels+numelc+numelt+numelp+nft
594C-------------------------------------------------------------------
595C SPRINGS --> all types
596C-------------------------------------------------------------------
597C=======================================================================
598 IF (igtyp == 4) THEN
599C=======================================================================
600 CALL rmass(ixr ,geo ,xmas ,xin ,partsav ,
601 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
602 3 inr(1,nft+1),msrt ,ems )
603 CALL r1buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,ixr ,gbuf%POSX,
604 2 igeo )
605C----
606 IF (inispri /= 0)
607 . CALL r4ini(sigrs ,ixr ,nsigrs ,gbuf%EINT ,gbuf%FOR ,
608 2 gbuf%TOTDEPL ,gbuf%FOREP ,gbuf%DEP_IN_TENS ,gbuf%DEP_IN_COMP,gbuf%LENGTH,
609 3 dfs , dv,igtyp ,ptspri ,gbuf%DEFINI(ii(1)),
610 4 gbuf%FORINI(ii(1)))
611 ELSEIF (igtyp == 26) THEN
612 CALL rmass(ixr ,geo ,xmas ,xin ,partsav ,
613 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
614 3 inr(1,nft+1),msrt ,ems )
615 CALL r1buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,ixr ,gbuf%POSX,
616 2 igeo )
617C----
618 IF (inispri /= 0)
619 . CALL r4ini(sigrs ,ixr ,nsigrs ,gbuf%EINT ,gbuf%FOR ,
620 2 gbuf%TOTDEPL ,gbuf%FOREP ,bidon ,bidon ,gbuf%LENGTH,
621 3 dfs ,gbuf%DV ,igtyp ,ptspri ,gbuf%DEFINI,
622 4 gbuf%FORINI )
623c------
624C=======================================================================
625 ELSEIF (igtyp == 8) THEN
626C=======================================================================
627 CALL rmass(ixr ,geo ,xmas ,xin,partsav ,
628 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
629 3 inr(1,nft+1),msrt,ems )
630 CALL r2buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)),
631 2 gbuf%LENGTH(ii(3)) ,ixr ,skew ,gbuf%POSX,gbuf%POSY,
632 3 gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY,gbuf%POSZZ,igeo ,
633 3 gbuf%SKEW_ID)
634C----
635 IF (inispri /= 0)
636 . CALL r8ini(
637 2 igtyp ,nel ,sigrs ,ixr ,nsigrs ,
638 3 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
639 4 gbuf%MOM(ii(3)) ,gbuf%FOREP(ii(1)) ,gbuf%FOREP(ii(2)) ,gbuf%FOREP(ii(3)) ,gbuf%MOMEP(ii(1)) ,
640 5 gbuf%MOMEP(ii(2)) ,gbuf%MOMEP(ii(3)) ,gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
641 6 gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),
642 7 gbuf%DEP_IN_COMP(ii(3)),gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),gbuf%TOTDEPL(ii(1)) ,
643 8 gbuf%TOTDEPL(ii(2)) ,gbuf%TOTDEPL(ii(3)) ,gbuf%TOTROT(ii(1)) ,gbuf%TOTROT(ii(2)) ,gbuf%TOTROT(ii(3)) ,
644 9 gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)) ,gbuf%LENGTH(ii(3)) ,gbuf%EINT ,gbuf%E6 ,
645 a ptspri ,gbuf%DEFINI(ii(1)) ,gbuf%DEFINI(ii(2)) ,gbuf%DEFINI(ii(3)) ,gbuf%DEFINI(ii(4)) ,
646 b gbuf%DEFINI(ii(5)) ,gbuf%DEFINI(ii(6)) ,gbuf%FORINI(ii(1)) ,gbuf%FORINI(ii(2)) ,gbuf%FORINI(ii(3)) ,
647 b gbuf%FORINI(ii(4)) ,gbuf%FORINI(ii(5)) ,gbuf%FORINI(ii(6)) )
648C=======================================================================
649 ELSEIF (igtyp == 12) THEN
650C=======================================================================
651 CALL rmas12 (ixr ,geo,partsav ,
652 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
653 3 inr(1,nft+1),msrt)
654 ids = 457
655 cnt1 = 0
656 cnt2 = 0
657 CALL r3buf3(gbuf%OFF,geo ,x ,gbuf%LENGTH(ii(1)) ,ixr ,gbuf%POSX,igeo ,itab )
658 nsprg = nsprg + cnt2
659 IF (inispri /= 0)
660 . CALL r4ini(sigrs ,ixr ,nsigrs ,gbuf%EINT ,gbuf%FOR ,
661 2 gbuf%TOTDEPL ,gbuf%FOREP ,gbuf%DEP_IN_TENS,gbuf%DEP_IN_TENS,gbuf%LENGTH,
662 3 gbuf%DFS ,dv,igtyp ,ptspri ,gbuf%DEFINI,
663 4 gbuf%FORINI )
664C=======================================================================
665 ELSEIF (igtyp == 13) THEN
666C=======================================================================
667 CALL rmass(ixr ,geo ,xmas ,xin,partsav ,
668 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
669 3 inr(1,nft+1),msrt,ems )
670
671 ids = 325
672 cnt1 = 0
673 cnt2 = 0
674 CALL r4buf3(
675 1 gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)),gbuf%LENGTH(ii(2)),
676 2 gbuf%LENGTH(ii(3)),ixr ,skew ,gbuf%SKEW ,gbuf%POSX,
677 3 gbuf%POSY ,gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY ,gbuf%POSZZ,
678 4 itab ,gbuf%E6 ,igeo ,ipm)
679 nsprg = nsprg + cnt2
680 IF (inispri /= 0)
681 . CALL r8ini(
682 2 igtyp ,nel ,sigrs ,ixr ,nsigrs ,
683 3 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
684 4 gbuf%MOM(ii(3)) ,gbuf%FOREP(ii(1)) ,gbuf%FOREP(ii(2)) ,gbuf%FOREP(ii(3)) ,gbuf%MOMEP(ii(1)) ,
685 5 gbuf%MOMEP(ii(2)) ,gbuf%MOMEP(ii(3)) ,gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
686 6 gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),
687 7 gbuf%DEP_IN_COMP(ii(3)),gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),gbuf%TOTDEPL(ii(1)) ,
688 8 gbuf%TOTDEPL(ii(2)) ,gbuf%TOTDEPL(ii(3)) ,gbuf%TOTROT(ii(1)) ,gbuf%TOTROT(ii(2)) ,gbuf%TOTROT(ii(3)) ,
689 9 gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)) ,gbuf%LENGTH(ii(3)) ,gbuf%EINT ,gbuf%E6 ,
690 a ptspri ,gbuf%DEFINI(ii(1)) ,gbuf%DEFINI(ii(2)) ,gbuf%DEFINI(ii(3)) ,gbuf%DEFINI(ii(4)) ,
691 b gbuf%DEFINI(ii(5)) ,gbuf%DEFINI(ii(6)) ,gbuf%FORINI(ii(1)) ,gbuf%FORINI(ii(2)) ,gbuf%FORINI(ii(3)) ,
692 b gbuf%FORINI(ii(4)) ,gbuf%FORINI(ii(5)) ,gbuf%FORINI(ii(6)) )
693C=======================================================================
694 ELSEIF (igtyp == 23) THEN
695C=======================================================================
696 ids = 325
697 cnt1 = 0
698 cnt2 = 0
699 CALL r23mass(ixr ,geo ,xmas ,xin,partsav ,
700 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
701 3 inr(1,nft+1),msrt,ems ,gbuf%MASS ,uiner,mtn)
702 IF(mtn == 108) THEN
703C
704 CALL r2buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)),
705 2 gbuf%LENGTH(ii(3)) ,ixr ,skew ,gbuf%POSX,gbuf%POSY,
706 3 gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY,gbuf%POSZZ,igeo ,
707 4 gbuf%SKEW_ID)
708C----
709 ELSEIF (mtn==113) THEN
710 CALL r4buf3(
711 1 gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)),gbuf%LENGTH(ii(2)),
712 2 gbuf%LENGTH(ii(3)),ixr ,skew ,gbuf%SKEW ,gbuf%POSX,
713 3 gbuf%POSY ,gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY ,gbuf%POSZZ,
714 4 itab ,gbuf%E6 ,igeo ,ipm)
715 nsprg = nsprg + cnt2
716C----
717 ELSEIF(mtn == 114) THEN
718 CALL r4buf3(
719 1 gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)),gbuf%LENGTH(ii(2)),
720 2 gbuf%LENGTH(ii(3)),ixr ,skew ,gbuf%SKEW ,gbuf%POSX,
721 3 gbuf%POSY ,gbuf%POSZ ,gbuf%POSXX,gbuf%POSYY ,gbuf%POSZZ,
722 4 itab ,gbuf%E6 ,igeo ,ipm)
723 nsprg = nsprg + cnt2
724 ENDIF ! MTN
725
726 IF (inispri /= 0)
727 . CALL r8ini(
728 2 igtyp ,nel ,sigrs ,ixr ,nsigrs ,
729 3 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
730 4 gbuf%MOM(ii(3)) ,gbuf%FOREP(ii(1)) ,gbuf%FOREP(ii(2)) ,gbuf%FOREP(ii(3)) ,gbuf%MOMEP(ii(1)) ,
731 5 gbuf%MOMEP(ii(2)) ,gbuf%MOMEP(ii(3)) ,gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
732 6 gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),
733 7 gbuf%DEP_IN_COMP(ii(3)),gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),gbuf%TOTDEPL(ii(1)) ,
734 8 gbuf%TOTDEPL(ii(2)) ,gbuf%TOTDEPL(ii(3)) ,gbuf%TOTROT(ii(1)) ,gbuf%TOTROT(ii(2)) ,gbuf%TOTROT(ii(3)) ,
735 9 gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)) ,gbuf%LENGTH(ii(3)) ,gbuf%EINT ,gbuf%E6 ,
736 a ptspri ,gbuf%DEFINI(ii(1)) ,gbuf%DEFINI(ii(2)) ,gbuf%DEFINI(ii(3)) ,gbuf%DEFINI(ii(4)) ,
737 b gbuf%DEFINI(ii(5)) ,gbuf%DEFINI(ii(6)) ,gbuf%FORINI(ii(1)) ,gbuf%FORINI(ii(2)) ,gbuf%FORINI(ii(3)) ,
738 b gbuf%FORINI(ii(4)) ,gbuf%FORINI(ii(5)) ,gbuf%FORINI(ii(6)) )
739C=======================================================================
740 ELSEIF (igtyp == 25) THEN
741C=======================================================================
742 CALL rmass(ixr ,geo ,xmas ,xin,partsav ,
743 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
744 3 inr(1,nft+1),msrt,ems )
745 ids = 325
746 cnt1 = 0
747 cnt2 = 0
748 CALL r4buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)),gbuf%LENGTH(ii(2)) ,
749 2 gbuf%LENGTH(ii(3)),ixr ,skew ,gbuf%SKEW ,gbuf%POSX,
750 3 gbuf%POSY ,gbuf%POSZ,gbuf%POSXX,gbuf%POSYY ,gbuf%POSZZ,
751 4 itab ,gbuf%E6 ,igeo ,ipm)
752 nsprg = nsprg + cnt2
753 IF (inispri /= 0)
754 . CALL r8ini(
755 2 igtyp ,nel ,sigrs ,ixr ,nsigrs ,
756 3 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
757 4 gbuf%MOM(ii(3)) ,gbuf%FOREP(ii(1)) ,gbuf%FOREP(ii(2)) ,gbuf%FOREP(ii(3)) ,gbuf%MOMEP(ii(1)) ,
758 5 gbuf%MOMEP(ii(2)) ,gbuf%MOMEP(ii(3)) ,gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
759 6 gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),
760 7 gbuf%DEP_IN_COMP(ii(3)),gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),gbuf%TOTDEPL(ii(1)) ,
761 8 gbuf%TOTDEPL(ii(2)) ,gbuf%TOTDEPL(ii(3)) ,gbuf%TOTROT(ii(1)) ,gbuf%TOTROT(ii(2)) ,gbuf%TOTROT(ii(3)) ,
762 9 gbuf%LENGTH(ii(1)) ,gbuf%LENGTH(ii(2)) ,gbuf%LENGTH(ii(3)) ,gbuf%EINT ,gbuf%E6 ,
763 a ptspri ,gbuf%DEFINI(ii(1)) ,gbuf%DEFINI(ii(2)) ,gbuf%DEFINI(ii(3)) ,gbuf%DEFINI(ii(4)) ,
764 b gbuf%DEFINI(ii(5)) ,gbuf%DEFINI(ii(6)) ,gbuf%FORINI(ii(1)) ,gbuf%FORINI(ii(2)) ,gbuf%FORINI(ii(3)) ,
765 b gbuf%FORINI(ii(4)) ,gbuf%FORINI(ii(5)) ,gbuf%FORINI(ii(6)) )
766C=======================================================================
767 ELSEIF (igtyp == 27) THEN
768C=======================================================================
769 CALL rmass(ixr ,geo ,xmas ,xin ,partsav ,
770 2 x ,v ,ipart(nft+1),xl ,msr(1,nft+1),
771 3 inr(1,nft+1),msrt ,ems )
772 CALL r1buf3(gbuf%OFF ,geo ,x ,gbuf%LENGTH(ii(1)) ,ixr ,gbuf%POSX,
773 2 igeo )
774C----
775 IF (inispri /= 0)
776 . CALL r4ini(sigrs ,ixr ,nsigrs ,gbuf%EINT ,gbuf%FOR ,
777 2 gbuf%TOTDEPL ,gbuf%FOREP ,gbuf%DEP_IN_TENS ,gbuf%DEP_IN_COMP,gbuf%LENGTH,
778 3 dfs,dv,igtyp ,ptspri ,gbuf%DEFINI(ii(1)),
779 4 gbuf%FORINI(ii(1)))
780C=======================================================================
781 ELSEIF (igtyp == 32 .OR. igtyp == 33 .OR. igtyp == 45) THEN
782C=======================================================================
783 CALL rini1u(gbuf%OFF ,geo ,x ,ul ,ixr ,
784 2 skew ,gbuf%SKEW,itab ,uix ,igeo)
785 nuvar = nint(geo(25,i0))
786 nuparam = nint(geo(26,i0))
787 IF (igtyp == 32) THEN
788 CALL rini32(
789 1 nel ,iout ,i0 ,
790 2 uix ,ul ,gbuf%MASS,uiner ,ustifm ,
791 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar ,id,titr,
792 4 gbuf%EINT,npc ,pld )
793 ELSEIF (igtyp == 33) THEN
794 DO i=lft,llt
795 j=i+nft
796 i1=ixr(2,j)
797 i2=ixr(3,j)
798 dx(i,1) = (x(1,i2)-x(1,i1))
799 dx(i,2) = (x(2,i2)-x(2,i1))
800 dx(i,3) = (x(3,i2)-x(3,i1))
801 ENDDO
802 CALL rini33(nel ,iout ,i0 ,uix,dx,
803 1 gbuf%MASS ,uiner ,ustifm ,ustifr,
804 2 uvism ,uvisr ,gbuf%VAR,nuvar )
805 ELSEIF (igtyp == 45) THEN
806 DO i=lft,llt
807 j=i+nft
808 i1=ixr(2,j)
809 i2=ixr(3,j)
810 dx(i,1) = (x(1,i2)-x(1,i1))
811 dx(i,2) = (x(2,i2)-x(2,i1))
812 dx(i,3) = (x(3,i2)-x(3,i1))
813 ENDDO
814 CALL rini45(nel ,iout ,i0 ,uix ,x ,dx,
815 . gbuf%MASS,uiner ,ustifm ,ustifr ,uvism ,
816 . uvisr ,gbuf%VAR,nuvar ,ixr ,ixr_kj,id ,titr)
817 ENDIF
818C
819 DO i=lft,llt
820 j=i+nft
821 i0=ixr(1,j)
822 i1=ixr(2,j)
823 i2=ixr(3,j)
824 i3=ixr(4,j)
825 xm = gbuf%MASS(i)
826 xine = uiner(i)
827 al2= ul(i)*ul(i)
828 xkr= ustifr(i)
829 xkm= ustifm(i)
830 xcr= uvisr(i)
831 xcm= uvism(i)
832 stifn(i1)=stifn(i1)+xkm
833 stifn(i2)=stifn(i2)+xkm
834 stifr(i1)=stifr(i1)+xkr
835 stifr(i2)=stifr(i2)+xkr
836 strr(j)=xkr
837 IF (xcm+xkm<em15) xm =one
838 IF (xcr+xkr<em15) xine=one
839 xkm= max(em15,xkm)
840 xkr= max(em15,xkr)
841 dt=(sqrt(xcm*xcm+xm*xkm)-xcm)/xkm
842 dtc=half*xm / max(em15,xcm)
843 dt = min(dt,dtc)
844 dtc=(sqrt(xcr*xcr+xine*xkr)-xcr)/xkr
845 dt = min(dt,dtc)
846 dtc=half*xine / max( em15,xcr)
847 dt = min(dt,dtc)
848 dtelem(ndepar+i)= dt
849 ENDDO
850C
851 CALL rini2u(
852 1 ixr ,gbuf%MASS,uiner,
853 2 partsav ,x ,v ,ipart(nft+1),msr(1,nft+1),
854 3 inr(1,nft+1),msrt ,ems )
855 IF (inispri /= 0)
856 . CALL ruini(
857 2 sigrs ,nsigrs ,nuvar ,gbuf%FOR(ii(1)) ,
858 3 gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,gbuf%MOM(ii(3)) ,
859 4 gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
860 5 gbuf%VR_REPCVT(ii(3)),gbuf%VAR ,gbuf%EINT ,
861 6 ptspri)
862C=======================================================================
863 ELSEIF (igtyp == 35 .OR. igtyp == 36) THEN
864C=======================================================================
865 CALL rini3u(gbuf%OFF ,geo ,x ,ul ,ixr ,
866 2 skew ,gbuf%SKEW ,itab ,uix ,igeo)
867 nuvar = nint(geo(25,i0))
868 nuparam = nint(geo(26,i0))
869C---
870 IF (igtyp == 35) THEN
871 CALL rini35(
872 1 nel ,iout ,i0 ,
873 2 uix ,ul ,gbuf%MASS,uiner ,ustifm ,
874 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
875 ELSEIF (igtyp == 36) THEN
876 CALL rini36(
877 1 nel ,iout ,i0 ,
878 2 uix ,ul ,gbuf%MASS,uiner ,ustifm ,
879 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
880 ENDIF
881C---
882 DO i=lft,llt
883 j=i+nft
884 i0=ixr(1,j)
885 i1=ixr(2,j)
886 i2=ixr(3,j)
887 i3=ixr(4,j)
888 xm = gbuf%MASS(i)
889 xine = uiner(i)
890 al2= ul(i)*ul(i)
891 xkr= ustifr(i)
892 xkm= ustifm(i)
893 xcr= uvisr(i)
894 xcm= uvism(i)
895 stifn(i1)=stifn(i1)+xkm
896 stifn(i2)=stifn(i2)+xkm
897 stifr(i1)=stifr(i1)+xkr
898 stifr(i2)=stifr(i2)+xkr
899 strr(j)=xkr
900 IF (xcm+xkm<em15) xm =one
901 IF (xcr+xkr<em15) xine=one
902 xkm= max(em15,xkm)
903 xkr= max(em15,xkr)
904 dt=(sqrt(xcm*xcm+xm*xkm)-xcm)/xkm
905 dtc=half*xm / max(em15,xcm)
906 dt = min(dt,dtc)
907 dtc=(sqrt(xcr*xcr+xine*xkr)-xcr)/xkr
908 dt = min(dt,dtc)
909 dtc=half*xine / max( em15,xcr)
910 dt = min(dt,dtc)
911 dtelem(ndepar+i)= dt
912 ENDDO
913 CALL rini2u(
914 1 ixr ,gbuf%MASS,uiner,
915 2 partsav ,x ,v ,ipart(nft+1),msr(1,nft+1),
916 3 inr(1,nft+1),msrt ,ems )
917 IF (inispri /= 0)
918 + CALL ruini(
919 2 sigrs ,nsigrs ,nuvar ,gbuf%FOR(ii(1)) ,
920 3 gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,gbuf%MOM(ii(3)) ,
921 4 gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
922 5 gbuf%VR_REPCVT(ii(3)),gbuf%VAR ,gbuf%EINT ,
923 6 ptspri)
924C
925C=======================================================================
926 ELSEIF (igtyp > 28 .AND. igtyp < 43) THEN ! reserved for user properties
927C=======================================================================
928 CALL rini3u(gbuf%OFF ,geo ,x ,ul ,ixr ,
929 2 skew ,gbuf%SKEW ,itab ,uix ,igeo)
930 nuvar = nint(geo(25,i0))
931 nuparam = nint(geo(26,i0))
932C
933 IF (igtyp == 29) THEN
934 IF (userl_avail == 1) THEN
935 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
936 1 nel ,i0 ,
937 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
938 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
939 CALL user_output(iout,igtyp,rootnam,rootlen,0)
940 ELSE
941 option='/PROP/USER29'
942 CALL ancmsg(msgid=1155,
943 . anmode=aninfo,
944 . msgtype=msgerror,
945 . c1=option)
946 ENDIF
947 ELSEIF (igtyp == 30) THEN
948 IF (userl_avai l == 1) THEN
949 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
950 1 nel ,i0 ,
951 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
952 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
953 CALL user_output(iout,igtyp,rootnam,rootlen,0)
954 ELSE
955 option='/PROP/USER30'
956 CALL ancmsg(msgid=1155,
957 . anmode=aninfo,
958 . msgtype=msgerror,
959 . c1=option)
960 ENDIF
961 ELSEIF (igtyp == 31) THEN
962 IF (userl_avail == 1) THEN
963 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
964 1 nel ,i0 ,
965 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
966 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
967 CALL user_output(iout,igtyp,rootnam,rootlen,0)
968 ELSE
969 option='/PROP/USER31'
970 CALL ancmsg(msgid=1155,
971 . anmode=aninfo,
972 . msgtype=msgerror,
973 . c1=option)
974 ENDIF
975 ELSEIF (igtyp == 37) THEN
976 IF (userl_avail == 1) THEN
977 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
978 1 nel ,i0 ,
979 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
980 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
981 CALL user_output(iout,igtyp,rootnam,rootlen,0)
982 ELSE
983 option='/PROP/USER37'
984 CALL ancmsg(msgid=1155,
985 . anmode=aninfo,
986 . msgtype=msgerror,
987 . c1=option)
988 ENDIF
989 ELSEIF (igtyp == 38) THEN
990 IF (userl_avail == 1) THEN
991 CALL st_userlib_riniuser(igtyp,rootnam,rootlen,
992 1 nel ,i0 ,
993 2 uix ,ul ,gbuf%MASS ,uiner ,ustifm ,
994 3 ustifr ,uvism ,uvisr ,gbuf%VAR,nuvar )
995 CALL user_output(iout,igtyp,rootnam,rootlen,0)
996 ELSE
997 option='/prop/user38'
998 CALL ANCMSG(MSGID=1155,
999 . ANMODE=ANINFO,
1000 . MSGTYPE=MSGERROR,
1001 . C1=OPTION)
1002 ENDIF
1003 ELSEIF (IGTYP == 39) THEN
1004 IF (USERL_AVAIL == 1) THEN
1005 CALL ST_USERLIB_RINIUSER(IGTYP,ROOTNAM,ROOTLEN,
1006 1 NEL ,I0 ,
1007 2 UIX ,UL ,GBUF%MASS ,UINER ,USTIFM ,
1008 3 USTIFR ,UVISM ,UVISR ,GBUF%VAR,NUVAR )
1009 CALL USER_OUTPUT(IOUT,IGTYP,ROOTNAM,ROOTLEN,0)
1010 ELSE
1011 OPTION='/prop/user39'
1012 CALL ANCMSG(MSGID=1155,
1013 . ANMODE=ANINFO,
1014 . MSGTYPE=MSGERROR,
1015 . C1=OPTION)
1016 ENDIF
1017 ELSEIF (IGTYP == 40) THEN
1018 IF (USERL_AVAIL == 1) THEN
1019 CALL ST_USERLIB_RINIUSER(IGTYP,ROOTNAM,ROOTLEN,
1020 1 NEL ,I0 ,
1021 2 UIX ,UL ,GBUF%MASS ,UINER ,USTIFM ,
1022 3 USTIFR ,UVISM ,UVISR ,GBUF%VAR,NUVAR )
1023 CALL USER_OUTPUT(IOUT,IGTYP,ROOTNAM,ROOTLEN,0)
1024 ELSE
1025 OPTION='/prop/user40'
1026 CALL ANCMSG(MSGID=1155,
1027 . ANMODE=ANINFO,
1028 . MSGTYPE=MSGERROR,
1029 . C1=OPTION)
1030 ENDIF
1031 ELSEIF (IGTYP == 41) THEN
1032 IF (USERL_AVAIL == 1) THEN
1033 CALL ST_USERLIB_RINIUSER(IGTYP,ROOTNAM,ROOTLEN,
1034 1 NEL ,I0 ,
1035 2 UIX ,UL ,GBUF%MASS ,UINER ,USTIFM ,
1036 3 USTIFR ,UVISM ,UVISR ,GBUF%VAR,NUVAR )
1037 CALL USER_OUTPUT(IOUT,IGTYP,ROOTNAM,ROOTLEN,0)
1038 ELSE
1039 OPTION='/prop/user41'
1040 CALL ANCMSG(MSGID=1155,
1041 . ANMODE=ANINFO,
1042 . MSGTYPE=MSGERROR,
1043 . C1=OPTION)
1044 ENDIF
1045 ELSEIF (IGTYP == 42) THEN
1046 IF (USERL_AVAIL == 1) THEN
1047 CALL ST_USERLIB_RINIUSER(IGTYP,ROOTNAM,ROOTLEN,
1048 1 NEL ,I0 ,
1049 2 UIX ,UL ,GBUF%MASS ,UINER ,USTIFM ,
1050 3 USTIFR ,UVISM ,UVISR ,GBUF%VAR,NUVAR )
1051 CALL USER_OUTPUT(IOUT,IGTYP,ROOTNAM,ROOTLEN,0)
1052 ELSE
1053 OPTION='/prop/user42'
1054 CALL ANCMSG(MSGID=1155,
1055 . ANMODE=ANINFO,
1056 . MSGTYPE=MSGERROR,
1057 . C1=OPTION)
1058 ENDIF
1059 ENDIF
1060C
1061 DO I=LFT,LLT
1062 J=I+NFT
1063 I0=IXR(1,J)
1064 I1=IXR(2,J)
1065 I2=IXR(3,J)
1066 I3=IXR(4,J)
1067 XM = GBUF%MASS(I)
1068 XINE = UINER(I)
1069 AL2= UL(I)*UL(I)
1070 XKR= USTIFR(I)
1071 XKM= USTIFM(I)
1072 XCR= UVISR(I)
1073 XCM= UVISM(I)
1074 STIFN(I1)=STIFN(I1)+XKM
1075 STIFN(I2)=STIFN(I2)+XKM
1076 STIFR(I1)=STIFR(I1)+XKR
1077 STIFR(I2)=STIFR(I2)+XKR
1078 STRR(J)=XKR
1079 IF (XCM+XKM<EM15) XM =ONE
1080 IF (XCR+XKR<EM15) XINE=ONE
1081 XKM= MAX(EM15,XKM)
1082 XKR= MAX(EM15,XKR)
1083 DT=(SQRT(XCM*XCM+XM*XKM)-XCM)/XKM
1084 DTC=HALF*XM / MAX(EM15,XCM)
1085 DT = MIN(DT,DTC)
1086 DTC=(SQRT(XCR*XCR+XINE*XKR)-XCR)/XKR
1087 DT = MIN(DT,DTC)
1088 DTC=HALF*XINE / MAX( EM15,XCR)
1089 DT = MIN(DT,DTC)
1090 DTELEM(NDEPAR+I)= DT
1091 ENDDO
1092C
1093 CALL RINI2U(
1094 1 IXR ,GBUF%MASS,UINER,
1095 2 PARTSAV ,X ,V ,IPART(NFT+1),MSR(1,NFT+1),
1096 3 INR(1,NFT+1),MSRT ,EMS )
1097 IF (INISPRI /= 0)
1098 . CALL RUINI(
1099 2 SIGRS ,NSIGRS ,NUVAR ,GBUF%FOR(II(1)) ,
1100 3 GBUF%FOR(II(2)) ,GBUF%FOR(II(3)) ,GBUF%MOM(II(1)) ,GBUF%MOM(II(2)) ,GBUF%MOM(II(3)) ,
1101 4 GBUF%V_REPCVT(II(1)) ,GBUF%V_REPCVT(II(2)),GBUF%V_REPCVT(II(3)),GBUF%VR_REPCVT(II(1)),GBUF%VR_REPCVT(II(2)),
1102 5 GBUF%VR_REPCVT(II(3)),GBUF%VAR ,GBUF%EINT ,
1103 6 PTSPRI)
1104C=======================================================================
1105 ELSEIF (IGTYP == 44) THEN
1106C=======================================================================
1107 CALL RINI3U(GBUF%OFF ,GEO ,X ,UL ,IXR ,
1108 2 SKEW ,GBUF%SKEW ,ITAB ,UIX ,IGEO)
1109 NUVAR = NINT(GEO(25,I0))
1110 NUPARAM = NINT(GEO(26,I0))
1111 CALL RINI44(
1112 1 NEL ,IOUT ,I0 ,
1113 2 UIX ,UL ,GBUF%MASS ,UINER ,USTIFM ,
1114 3 USTIFR ,UVISM ,UVISR ,GBUF%VAR,NUVAR )
1115C
1116 DO I=LFT,LLT
1117 J=I+NFT
1118 I0=IXR(1,J)
1119 I1=IXR(2,J)
1120 I2=IXR(3,J)
1121 I3=IXR(4,J)
1122 XM = GBUF%MASS(I)
1123 XINE = UINER(I)
1124 AL2= UL(I)*UL(I)
1125 XKR= USTIFR(I)
1126 XKM= USTIFM(I)
1127 XCR= UVISR(I)
1128 XCM= UVISM(I)
1129 STIFN(I1)=STIFN(I1)+XKM
1130 STIFN(I2)=STIFN(I2)+XKM
1131 STIFR(I1)=STIFR(I1)+XKR
1132 STIFR(I2)=STIFR(I2)+XKR
1133 STRR(J)=XKR
1134 IF(XCM+XKM<EM15)XM =ONE
1135 IF(XCR+XKR<EM15)XINE=ONE
1136 XKM= MAX(EM15,XKM)
1137 XKR= MAX(EM15,XKR)
1138 DT=(SQRT(XCM*XCM+XM*XKM)-XCM)/XKM
1139 DTC=HALF*XM / MAX(EM15,XCM)
1140 DT = MIN(DT,DTC)
1141 DTC=(SQRT(XCR*XCR+XINE*XKR)-XCR)/XKR
1142 DT = MIN(DT,DTC)
1143 DTC=HALF*XINE / MAX( EM15,XCR)
1144 DT = MIN(DT,DTC)
1145 DTELEM(NDEPAR+I)= DT
1146 ENDDO
1147 CALL RINI2U(
1148 1 IXR ,GBUF%MASS,UINER,
1149 2 PARTSAV ,X ,V ,IPART(NFT+1),MSR(1,NFT+1),
1150 3 INR(1,NFT+1),MSRT ,EMS )
1151 IF (INISPRI /= 0)
1152 . CALL RUINI(
1153 2 SIGRS ,NSIGRS ,NUVAR ,GBUF%FOR(II(1)) ,
1154 3 GBUF%FOR(II(2)) ,GBUF%FOR(II(3)) ,GBUF%MOM(II(1)) ,GBUF%MOM(II(2)) ,GBUF%MOM(II(3)) ,
1155 4 GBUF%V_REPCVT(II(1)) ,GBUF%V_REPCVT(II(2)),GBUF%V_REPCVT(II(3)),GBUF%VR_REPCVT(II(1)),GBUF%VR_REPCVT(II(2)),
1156 5 GBUF%VR_REPCVT(II(3)),GBUF%VAR ,GBUF%EINT ,
1157 6 PTSPRI)
1158C=======================================================================
1159 ELSEIF (IGTYP == 46) THEN
1160C=======================================================================
1161 CALL RINI3U(GBUF%OFF ,GEO ,X ,UL ,IXR ,
1162 2 SKEW ,GBUF%SKEW ,ITAB ,UIX ,IGEO)
1163 NUVAR = NINT(GEO(25,I0))
1164 NUPARAM = NINT(GEO(26,I0))
1165 CALL RINI46(
1166 1 NEL ,IOUT ,I0 ,
1167 2 UIX ,UL ,GBUF%MASS ,UINER ,USTIFM ,
1168 3 USTIFR ,UVISM ,UVISR ,GBUF%VAR,NUVAR )
1169C
1170 DO I=LFT,LLT
1171 J=I+NFT
1172 I0=IXR(1,J)
1173 I1=IXR(2,J)
1174 I2=IXR(3,J)
1175 I3=IXR(4,J)
1176 XM = GBUF%MASS(I)
1177 XINE = UINER(I)
1178 AL2= UL(I)*UL(I)
1179 XKR= USTIFR(I)
1180 XKM= USTIFM(I)
1181 XCR= UVISR(I)
1182 XCM= UVISM(I)
1183 STIFN(I1)=STIFN(I1)+XKM
1184 STIFN(I2)=STIFN(I2)+XKM
1185 STIFR(I1)=STIFR(I1)+XKR
1186 STIFR(I2)=STIFR(I2)+XKR
1187 STRR(J)=XKR
1188 IF (XCM+XKM<EM15) XM =ONE
1189 IF (XCR+XKR<EM15) XINE=ONE
1190 XKM= MAX(EM15,XKM)
1191 XKR= MAX(EM15,XKR)
1192 DT=(SQRT(XCM*XCM+XM*XKM)-XCM)/XKM
1193 DTC=HALF*XM / MAX(EM15,XCM)
1194 DT = MIN(DT,DTC)
1195 DTC=(SQRT(XCR*XCR+XINE*XKR)-XCR)/XKR
1196 DT = MIN(DT,DTC)
1197 DTC=HALF*XINE / MAX( EM15,XCR)
1198 DT = MIN(DT,DTC)
1199 DTELEM(NDEPAR+I)= DT
1200 ENDDO
1201C
1202 CALL RINI2U(
1203 1 IXR ,GBUF%MASS,UINER,
1204 2 PARTSAV ,X ,V ,IPART(NFT+1),MSR(1,NFT+1),
1205 3 INR(1,NFT+1),MSRT ,EMS )
1206C
1207 IF (INISPRI /= 0)
1208 . CALL RUINI(
1209 2 SIGRS ,NSIGRS ,NUVAR ,GBUF%FOR(II(1)) ,
1210 3 GBUF%FOR(II(2)) ,GBUF%FOR(II(3)) ,GBUF%MOM(II(1)) ,GBUF%MOM(II(2)) ,GBUF%MOM(II(3)) ,
1211 4 GBUF%V_REPCVT(II(1)) ,GBUF%V_REPCVT(II(2)),GBUF%V_REPCVT(II(3)),GBUF%VR_REPCVT(II(1)),GBUF%VR_REPCVT(II(2)),
1212 5 GBUF%VR_REPCVT(II(3)),GBUF%VAR ,GBUF%EINT ,
1213 6 PTSPRI)
1214C-----
1215 ENDIF ! IGTYP
1216C------------------------------------------
1217C CALCUL DES DT ELEMENTAIRES & DT Nodal (take into account XCM)
1218C------------------------------------------
1219C
1220 K1 = 4
1221 K11 = 64
1222 K12 = K11 + 6
1223 K13 = K12 + 6
1224 K14 = K13 + 6
1225 DO I=LFT,LLT
1226 J=I+NFT
1227 I0=IXR(1,J)
1228 I1=IXR(2,J)
1229 I2=IXR(3,J)
1230 I3=IXR(4,J)
1231 IGTYP=IGEO(11,I0)
1232 IPID=IXR(1,I+NFT)
1233C
1234 IF (IGTYP == 4) THEN
1235 XM = GEO(1,I0)*XL(I)
1236 XKM= GEO(2,I0)*GEO(10,I0)/XL(I)
1237 XCM= (GEO(3,I0)) +GEO(141,I0) /XL(I)!
1238.AND. IF (XCM /= ZERO XKM /= ZERO) THEN
1239 DT=XM/(SQRT(XCM*XCM+XKM*XM)+XCM)
1240 ELSEIF (XKM /= ZERO) THEN
1241 DT=SQRT(XM/XKM)
1242 ELSEIF (XCM /= ZERO) THEN
1243 DT=XM/XCM
1244 ELSE
1245 DT=EP20
1246 ENDIF
1247 DTC=HALF*XM / MAX(EM15,XCM)
1248 DTELEM(NDEPAR+I)=MIN(DT,DTC)
1249 MAS2 = TWO*MSR(1,J)
1250 IF (MAS2>ZERO) THEN
1251 STI = (SQRT(XCM**2+XKM*MAS2)+XCM)**2/MAS2
1252 ELSE
1253 STI = XKM
1254 END IF
1255 STIFN(I1)=STIFN(I1)+STI
1256 STIFN(I2)=STIFN(I2)+STI
1257 ELSEIF (IGTYP == 26) THEN
1258 XM = GEO(1,I0)*XL(I)
1259 XKM= GEO(2,I0)/XL(I)
1260 XCM= ZERO
1261 IF (XKM > ZERO) THEN
1262 DT=SQRT(XM/XKM)
1263 ELSE
1264 DT=EP20
1265 ENDIF
1266 DTC=HALF*XM / MAX(EM15,XCM)
1267 DTELEM(NDEPAR+I)=MIN(DT,DTC)
1268 STIFN(I1)=STIFN(I1)+XKM
1269 STIFN(I2)=STIFN(I2)+XKM
1270 ELSEIF (IGTYP == 8) THEN
1271 XKM= MAX(GEO(3,I0)*GEO(41,I0),
1272 . GEO(10,I0)*GEO(45,I0),
1273 . GEO(15,I0)*GEO(49,I0))/XL(I)
1274 XCM= (MAX(GEO(4,I0),GEO(11,I0),GEO(16,I0))
1275 . + MAX(GEO(141,I0),GEO(142,I0),GEO(143,I0)))/XL(I)
1276 XKR= MAX(GEO(19,I0)*GEO(53,I0),
1277 . GEO(23,I0)*GEO(57,I0),
1278 . GEO(27,I0)*GEO(61,I0))/XL(I)
1279 XCR= (MAX(GEO(20,I0),GEO(24,I0),GEO(28,I0))
1280 . + MAX(GEO(144,I0),GEO(145,I0),GEO(146,I0)))/XL(I)
1281 XM=GEO(1,I0)*XL(I)
1282 XINE=GEO(9,I0)*XL(I)
1283 IF (XCM+XKM<EM15) XM =ONE
1284 IF (XCR+XKR<EM15) XINE=ONE
1285 XKM= MAX(EM15,XKM)
1286 XKR= MAX(EM15,XKR)
1287 DT=XM/MAX(EM15,SQRT(XCM*XCM+XKM*XM)+XCM)
1288 DTC=XINE/MAX(EM15,SQRT(XCR*XCR+XINE*XKR)+XCR)
1289 DTELEM(NDEPAR+I)=MIN(DT,DTC)
1290 MAS2 = TWO*MSR(1,J)
1291 IF (MAS2>ZERO) THEN
1292 STI = (SQRT(XCM**2+XKM*MAS2)+XCM)**2/MAS2
1293 ELSE
1294 STI = XKM
1295 END IF
1296 STIFN(I1)=STIFN(I1)+STI
1297 STIFN(I2)=STIFN(I2)+STI
1298 MAS2 = INR(1,J)
1299 IF (MAS2>ZERO) THEN
1300 STI = (SQRT(XCR**2+XKR*MAS2)+XCR)**2/MAS2
1301 ELSE
1302 STI = XKR
1303 END IF
1304 STIFR(I1)=STIFR(I1)+STI
1305 STIFR(I2)=STIFR(I2)+STI
1306 STRR(J)=XKR
1307 ELSEIF(IGTYP == 12) THEN
1308 XM = GEO(1,I0)*XL(I)
1309 XKM= GEO(2,I0)/XL(I)
1310 XCM= (GEO(3,I0)+GEO(141,I0))/XL(I)
1311.AND. IF (XCM /= ZERO XKM /= ZERO) THEN
1312 DT=XM/(TWO*SQRT(XCM*XCM+XKM*XM)+XCM)
1313 ELSEIF (XKM /= ZERO) THEN
1314 DT=SQRT(XM/XKM)
1315 ELSEIF (XCM /= ZERO) THEN
1316 DT=XM/XCM
1317 ELSE
1318 DT=EP20
1319 ENDIF
1320 DTC=HALF*XM / MAX(EM15,XCM)
1321 DTELEM(NDEPAR+I)=MIN(DT,DTC)
1322 MAS2 = TWO*MSR(2,J)
1323 IF (MAS2>ZERO) THEN
1324 STI = (SQRT(XCM**2+XKM*MAS2)+XCM)**2/MAS2
1325 ELSE
1326 STI = XKM
1327 END IF
1328 STIFN(I2)=STIFN(I2)+STI
1329 MAS2 = TWO*MSR(1,J)
1330 STI = (SQRT(XCM**2+XKM*MAS2)+XCM)**2/MAS2
1331 STIFN(I1)=STIFN(I1)+STI
1332 STIFN(I3)=STIFN(I3)+STI
1333 ELSEIF (IGTYP == 13) THEN
1334 EX=X(1,I2)-X(1,I1)
1335 EY=X(2,I2)-X(2,I1)
1336 EZ=X(3,I2)-X(3,I1)
1337 AL2= EX*EX+EY*EY+EZ*EZ
1338 XKM= MAX(GEO(3,I0)*GEO(41,I0),
1339 . GEO(10,I0)*GEO(45,I0),
1340 . GEO(15,I0)*GEO(49,I0))/XL(I)
1341 XCM= (MAX(GEO(4,I0),GEO(11,I0),GEO(16,I0))
1342 . + MAX(GEO(141,I0),GEO(142,I0),GEO(143,I0)) )/XL(I)
1343 XKR= MAX(GEO(10,I0)*GEO(45,I0),
1344 . GEO(15,I0)*GEO(49,I0)) * AL2
1345 XCR= (MAX(GEO(11,I0),GEO(16,I0))+ MAX(GEO(142,I0),GEO(143,I0)))* AL2
1346 XKR= ( XKR
1347 . +MAX(GEO(19,I0)*GEO(53,I0),
1348 . GEO(23,I0)*GEO(57,I0),
1349 . GEO(27,I0)*GEO(61,I0)))/XL(I)
1350 XCR= (XCR+MAX(GEO(20,I0),GEO(24,I0),GEO(28,I0))
1351 . + MAX(GEO(144,I0),GEO(145,I0),GEO(146,I0)) )/XL(I)
1352 XM=GEO(1,I0)*XL(I)
1353 XINE=GEO(9,I0)*XL(I)
1354 IF (XCM+XKM<EM15) XM =ONE
1355 IF (XCR+XKR<EM15) XINE=ONE
1356 XKM= MAX(EM15,XKM)
1357 XKR= MAX(EM15,XKR)
1358 DT=XM/MAX(EM15,SQRT(XCM*XCM+XKM*XM)+XCM)
1359 DTC=XINE/MAX(EM15,SQRT(XCR*XCR+XINE*XKR)+XCR)
1360 DT = MIN(DT,DTC)
1361 DTELEM(NDEPAR+I)= DT
1362 MAS2 = TWO*MSR(1,J)
1363 IF (MAS2>ZERO) THEN
1364 STI = (SQRT(XCM**2+XKM*MAS2)+XCM)**2/MAS2
1365 ELSE
1366 STI = XKM
1367 END IF
1368 STIFN(I1)=STIFN(I1)+STI
1369 STIFN(I2)=STIFN(I2)+STI
1370 MAS2 = TWO*INR(1,J)
1371 IF (MAS2>ZERO) THEN
1372 STI = (SQRT(XCR**2+XKR*MAS2)+XCR)**2/MAS2
1373 ELSE
1374 STI = XKR
1375 END IF
1376 STIFR(I1)=STIFR(I1)+STI
1377 STIFR(I2)=STIFR(I2)+STI
1378 STRR(J)=XKR
1379 ELSEIF (IGTYP == 23) THEN
1380 IMAT = IXR(5,I+NFT)
1381 IADBUF = IPM(7,IMAT) - 1
1382 MTN = IPM(2,IMAT)
1383 IF(MTN == 108) THEN
1384 XKM= MAX(UPARAM(IADBUF + K11 + 1)*UPARAM(IADBUF + K1 + 1),
1385 . UPARAM(IADBUF + K11 + 2)*UPARAM(IADBUF + K1 + 2),
1386 . UPARAM(IADBUF + K11 + 3)*UPARAM(IADBUF + K1 + 3))/XL(I)
1387 XCM= MAX(UPARAM(IADBUF + K12 + 1),UPARAM(IADBUF + K12 + 2),UPARAM(IADBUF + K12 + 3))
1388C
1389 XKR= MAX(UPARAM(IADBUF + K11 + 4)*UPARAM(IADBUF + K1 + 4),
1390 . UPARAM(IADBUF + K11 + 5)*UPARAM(IADBUF + K1 + 5),
1391 . UPARAM(IADBUF + K11 + 6)*UPARAM(IADBUF + K1 + 6))/XL(I)
1392C
1393 XCR= (MAX(UPARAM(IADBUF + K12 + 4),UPARAM(IADBUF + K12 + 5),UPARAM(IADBUF + K12 + 6)))/XL(I)
1394 ! old Geo 144,145,146 not used.
1395 XM = GBUF%MASS(I)*XL(I)
1396 XINE= GEO(2,I0)*XL(I)
1397 IF (XCM+XKM<EM15) XM =ONE
1398 IF (XCR+XKR<EM15) XINE=ONE
1399 XKM= MAX(EM15,XKM)
1400 XKR= MAX(EM15,XKR)
1401 DT =XM/MAX(EM15,SQRT(XCM*XCM+XKM*XM)+XCM)
1402 DTC=XINE/MAX(EM15,SQRT(XCR*XCR+XINE*XKR)+XCR)
1403 DTELEM(NDEPAR+I)=MIN(DT,DTC)
1404 GEO(4,I0)= MIN(GEO(4,I0),DT,DTC) ! to be fixed also put it in buffer material
1405 MAS2 = TWO*MSR(1,J)
1406 INE2 = TWO*INR(1,J)
1407 ELSEIF (MTN==113) THEN
1408 EX=X(1,I2)-X(1,I1)
1409 EY=X(2,I2)-X(2,I1)
1410 EZ=X(3,I2)-X(3,I1)
1411 AL2= EX*EX+EY*EY+EZ*EZ
1412 XKM= MAX(UPARAM(IADBUF + K11 + 1)*UPARAM(IADBUF + K1 + 1),
1413 . UPARAM(IADBUF + K11 + 2)*UPARAM(IADBUF + K1 + 2),
1414 . UPARAM(IADBUF + K11 + 3)*UPARAM(IADBUF + K1 + 3))/XL(I)
1415 XCM= (MAX(UPARAM(IADBUF + K12 +1),UPARAM(IADBUF + K12 +2 ),UPARAM(IADBUF + K12 + 3))
1416 . + MAX(UPARAM(IADBUF + K14 + 1),UPARAM(IADBUF + K14 + 2),UPARAM(IADBUF + K14 + 3)))/XL(I)
1417 XKR= MAX(UPARAM(IADBUF + K11 + 2)*UPARAM(IADBUF + K1 + 2),
1418 . UPARAM(IADBUF + K11 + 3)*UPARAM(IADBUF + K1 + 3)) * AL2
1419 XCR= (MAX(UPARAM(IADBUF + K12 + 2),UPARAM(IADBUF + K12 + 3)) +
1420 . MAX(UPARAM(IADBUF + K14 + 2),UPARAM(IADBUF + K14 + 3)))* AL2
1421 XKR= ( XKR
1422 . + MAX(UPARAM(IADBUF + K11 + 4)*UPARAM(IADBUF + K1 + 4),
1423 . UPARAM(IADBUF + K11 + 5)*UPARAM(IADBUF + K1 + 5),
1424 . UPARAM(IADBUF + K11 + 6)*UPARAM(IADBUF + K1 + 6)))/XL(I)
1425 XCR= (XCR+MAX(UPARAM(IAD + K12 + 1),UPARAM(IADBUF + K12 + 2),UPARAM(IADBUF + K12 + 3))
1426 . + MAX(UPARAM(IAD + K14 + 4),UPARAM(IADBUF + K14 + 5),UPARAM(IADBUF + K14 + 6)) )/XL(I)
1427 XM =GBUF%MASS(I)
1428 XINE=GEO(2,I0)*XL(I)
1429 IF (XCM+XKM<EM15) XM =ONE
1430 IF (XCR+XKR<EM15) XINE=ONE
1431 XKM= MAX(EM15,XKM)
1432 XKR= MAX(EM15,XKR)
1433 DT =XM/MAX(EM15,SQRT(XCM*XCM+XKM*XM)+XCM)
1434 DTC=XINE/MAX(EM15,SQRT(XCR*XCR+XINE*XKR)+XCR)
1435 DT = MIN(DT,DTC)
1436 GEO(4,I0)= MIN(GEO(4,I0),DT)
1437 DTELEM(NDEPAR+I)= DT
1438 MAS2 = TWO*MSR(1,J)
1439 INE2 = TWO*INR(1,J)
1440 ELSEIF (MTN==114) THEN
1441 EX=X(1,I2)-X(1,I1)
1442 EY=X(2,I2)-X(2,I1)
1443 EZ=X(3,I2)-X(3,I1)
1444 AL2= EX*EX+EY*EY+EZ*EZ
1445C
1446 XKM= MAX(UPARAM(IADBUF + K11 + 1)*UPARAM(IADBUF + K1 + 1),
1447 . UPARAM(IADBUF + K11 + 2)*UPARAM(IADBUF + K1 + 2),
1448 . UPARAM(IADBUF + K11 + 3)*UPARAM(IADBUF + K1 + 3),
1449 . UPARAM(IADBUF+117)*GEO(1,I0))/XL(I)
1450C
1451 XCM= (MAX(UPARAM(IADBUF + K12 +1),UPARAM(IADBUF + K12 +2 ),UPARAM(IADBUF + K12 + 3))
1452 . + MAX(UPARAM(IADBUF + K14 + 1),UPARAM(IADBUF + K14 + 2),UPARAM(IADBUF + K14 + 3)))/XL(I)
1453 XKR= MAX(UPARAM(IADBUF + K11 + 2)*UPARAM(IADBUF + K1 + 2),
1454 . UPARAM(IADBUF + K11 + 3)*UPARAM(IADBUF + K1 + 3)) * AL2
1455 XCR= (MAX(UPARAM(IADBUF + K12 + 2),UPARAM(IADBUF + K12 + 3)) +
1456 . MAX(UPARAM(IADBUF + K14 + 2),UPARAM(IADBUF + K14 + 3)))* AL2
1457 XKR= ( XKR
1458 . + MAX(UPARAM(IADBUF + K11 + 4)*UPARAM(IADBUF + K1 + 4),
1459 . UPARAM(IADBUF + K11 + 5)*UPARAM(IADBUF + K1 + 5),
1460 . UPARAM(IADBUF + K11 + 6)*UPARAM(IADBUF + K1 + 6)))/XL(I)
1461 XCR= (XCR+MAX(UPARAM(IADBUF+K12 + 1),UPARAM(IADBUF+ K12 + 2),UPARAM(IADBUF+ K12 + 3))
1462 . + MAX(UPARAM(IADBUF+K14 + 4),UPARAM(IADBUF+ K14 + 5),UPARAM(IADBUF+ K14 + 6)) )/XL(I)
1463C-
1464 IF (UPARAM(IADBUF + 127) > ZERO) THEN
1465C- 1D material of 2D seatbelt - element mass and inertia recomputed for elementary time step
1466 RHO = UPARAM(IADBUF+128)
1467 XM = RHO*XL(I)*GEO(1,I0)
1468 XINE=MAX(EM20,MAX((RHO*GEO(1,I0)*LENGTH*LENGTH*LENGTH)/TWELVE+ RHO*IYY*LENGTH,RHO*IXX*LENGTH))
1469 GBUF%MASS(I) = XM*GBUF%FRAM_FACTOR(I)
1470 GBUF%INTVAR(I) = XINE*GBUF%FRAM_FACTOR(I)
1471 MAS2 = XM
1472 INE2 = XINE
1473 ELSE
1474 GBUF%FRAM_FACTOR(I) = ONE
1475 XM =GBUF%MASS(I)
1476 XINE=UINER(I)
1477 GBUF%INTVAR(I) = XINE
1478 MAS2 = TWO*MSR(1,J)
1479 INE2 = TWO*INR(1,J)
1480 ENDIF
1481C
1482 IF (GBUF%SLIPRING_STRAND(I) > 0) THEN
1483C---------> Update of third node if seatbelt spring in slipring------------
1484 SLIP = GBUF%SLIPRING_ID(I)
1485 FRA = GBUF%SLIPRING_FRAM_ID(I)
1486 DO KK=1,3
1487.AND. IF ((SLIPRING(SLIP)%FRAM(FRA)%NODE(KK)/=I1)(SLIPRING(SLIP)%FRAM(FRA)%NODE(KK)/=I2)) THEN
1488 IXR(4,J)=SLIPRING(SLIP)%FRAM(FRA)%NODE(KK)
1489 ENDIF
1490 ENDDO
1491 ELSEIF (GBUF%RETRACTOR_ID(I) < 0) THEN
1492C---------> Deactivation of elements initially in retractor------------
1493 GBUF%OFF(I) = ZERO
1494 GBUF%RETRACTOR_ID(I) = 0
1495 ENDIF
1496C
1497 IF (XCM+XKM<EM15) XM =ONE
1498 IF (XCR+XKR<EM15) XINE=ONE
1499 XKM= MAX(EM15,XKM)
1500 XKR= MAX(EM15,XKR)
1501 DT =XM/MAX(EM15,SQRT(XCM*XCM+XKM*XM)+XCM)
1502 DTC=XINE/MAX(EM15,SQRT(XCR*XCR+XINE*XKR)+XCR)
1503 DT = MIN(DT,DTC)
1504 GEO(4,I0)= MIN(GEO(4,I0),DT)
1505 DTELEM(NDEPAR+I)= DT
1506 ENDIF
1507 IF (MAS2>ZERO) THEN
1508 STI = (SQRT(XCM**2+XKM*MAS2)+XCM)**2/MAS2
1509 ELSE
1510 STI = XKM
1511 END IF
1512 STIFN(I1)=STIFN(I1)+STI
1513 STIFN(I2)=STIFN(I2)+STI
1514 IF (INE2>ZERO) THEN
1515 STI = (SQRT(XCR**2+XKR*INE2)+XCR)**2/INE2
1516 ELSE
1517 STI = XKR
1518 END IF
1519 STIFR(I1)=STIFR(I1)+STI
1520 STIFR(I2)=STIFR(I2)+STI
1521 STRR(J)=XKR
1522 ELSEIF (IGTYP == 25) THEN
1523 EX=X(1,I2)-X(1,I1)
1524 EY=X(2,I2)-X(2,I1)
1525 EZ=X(3,I2)-X(3,I1)
1526 AL2= EX*EX+EY*EY+EZ*EZ
1527 XKM= MAX(GEO(3,I0)*GEO(41,I0),
1528 . GEO(10,I0)*GEO(45,I0))/XL(I)
1529 XCM= (MAX(GEO(4,I0),GEO(11,I0))
1530 . + MAX(GEO(141,I0),GEO(142,I0)))/XL(I)
1531 XKR= GEO(10,I0)*GEO(45,I0)*AL2
1532 XKR= (XKR
1533 . +MAX(GEO(19,I0)*GEO(53,I0),GEO(23,I0)*GEO(57,I0)))/XL(I)
1534 XCR= (GEO(11,I0)+GEO(142,I0))*AL2
1535 XCR= (XCR+
1536 . MAX(GEO(141,I0),GEO(142,I0))+MAX(GEO(20,I0),GEO(24,I0))
1537 . +MAX(GEO(143,I0),GEO(144,I0)) )/XL(I)
1538 XM=GEO(1,I0)*XL(I)
1539 XINE=GEO(9,I0)*XL(I)
1540 IF (XCM+XKM<EM15) XM =ONE
1541 IF (XCR+XKR<EM15) XINE=ONE
1542 XKM= MAX(EM15,XKM)
1543 XKR= MAX(EM15,XKR)
1544 DT=XM/MAX(EM15,SQRT(XCM*XCM+XKM*XM)+XCM)
1545 DTC=XINE/MAX(EM15,SQRT(XCR*XCR+XINE*XKR)+XCR)
1546 DTELEM(NDEPAR+I)=MIN(DT,DTC)
1547 MAS2 = TWO*MSR(1,J)
1548 IF (MAS2>ZERO) THEN
1549 STI = (SQRT(XCM**2+XKM*MAS2)+XCM)**2/MAS2
1550 ELSE
1551 STI = XKM
1552 END IF
1553 STIFN(I1)=STIFN(I1)+STI
1554 STIFN(I2)=STIFN(I2)+STI
1555 MAS2 = INR(1,J)
1556 IF (MAS2>ZERO) THEN
1557 STI = (SQRT(XCR**2+XKR*MAS2)+XCR)**2/MAS2
1558 ELSE
1559 STI = XKR
1560 END IF
1561 STIFR(I1)=STIFR(I1)+STI
1562 STIFR(I2)=STIFR(I2)+STI
1563 STRR(J)=XKR
1564 ELSEIF (IGTYP == 27) THEN
1565 XM = GEO(1,I0)*XL(I)
1566 XKM= GEO(2,I0)*GEO(10,I0)/XL(I)
1567 XCM= (GEO(3,I0)+GEO(141,I0))/XL(I)!
1568.AND. IF (XCM /= ZERO XKM /= ZERO) THEN
1569 DT=XM/(SQRT(XCM*XCM+XKM*XM)+XCM)
1570 ELSEIF (XKM /= ZERO) THEN
1571 DT=SQRT(XM/XKM)
1572 ELSEIF (XCM /= ZERO) THEN
1573 DT=XM/XCM
1574 ELSE
1575 DT=EP20
1576 ENDIF
1577 DTC=HALF*XM / MAX(EM15,XCM)
1578 DTELEM(NDEPAR+I)=MIN(DT,DTC)
1579 MAS2 = TWO*MSR(1,J)
1580 IF (MAS2>ZERO) THEN
1581 STI = (SQRT(XCM**2+XKM*MAS2)+XCM)**2/MAS2
1582 ELSE
1583 STI = XKM
1584 END IF
1585 STIFN(I1)=STIFN(I1)+STI
1586 STIFN(I2)=STIFN(I2)+STI
1587 END IF
1588 ENDDO
1589!
1590 IF (IPRELD>0) THEN
1591 SELECT CASE (IGTYP)
1592 CASE(4,13)
1593 J=1+NFT
1594 I0=IXR(1,J)
1595 IH = NINT(GEO(7,I0))
1596 IFUNC = IGEO(101,I0)
1597 IF (IFUNC==0) IH =0
1598.OR. IF (IH==0IH==8) THEN
1599 CALL ANCMSG(MSGID=3057,
1600 . MSGTYPE=MSGERROR,
1601 . ANMODE=ANINFO_BLIND_1,
1602 . I1=ID,
1603 . I2=IH,
1604 . C1=TITR)
1605 ELSE
1606 DO I=LFT,LLT
1607 XM=GEO(1,I0)*XL(I)
1608 UNDAMP = XM/DTELEM(NDEPAR+I)
1609 GBUF%BPRELD(I) = PRELOAD_A(IPRELD)%preload
1610 GBUF%BPRELD(I+NEL) = UNDAMP*PRELOAD_A(IPRELD)%damp
1611 ENDDO
1612 END IF
1613 CASE(23)
1614 IF (MTN==113) THEN
1615 J=1+NFT
1616 I0=IXR(1,J)
1617 IMAT = IXR(5,J)
1618 IFUNC = IPM(10 + 1,IMAT)
1619 IADBUF = IPM(7,IMAT) - 1
1620 IH= NINT(UPARAM(IADBUF + 4 + 12*6 + 1))
1621 IF (IFUNC==0) IH =0
1622.OR. IF (IH==0IH==8) THEN
1623 CALL ANCMSG(MSGID=3057,
1624 . MSGTYPE=MSGERROR,
1625 . ANMODE=ANINFO_BLIND_1,
1626 . I1=ID,
1627 . I2=IH,
1628 . C1=TITR)
1629 ELSE
1630 DO I=LFT,LLT
1631 XM=GBUF%MASS(I)
1632 UNDAMP = XM/DTELEM(NDEPAR+I)
1633 GBUF%BPRELD(I) = PRELOAD_A(IPRELD)%preload
1634 GBUF%BPRELD(I+NEL) = UNDAMP*PRELOAD_A(IPRELD)%damp
1635 ENDDO
1636.OR. END IF ! IH==0
1637 ELSE
1638 CALL ANCMSG(MSGID=3053,
1639 . MSGTYPE=MSGERROR,
1640 . ANMODE=ANINFO_BLIND_1,
1641 . I1=ID,
1642 . I2=IGTYP,
1643 . C1=TITR)
1644 END IF
1645 CASE DEFAULT
1646 CALL ANCMSG(MSGID=3053,
1647 . MSGTYPE=MSGERROR,
1648 . ANMODE=ANINFO_BLIND_1,
1649 . I1=ID,
1650 . I2=IGTYP,
1651 . C1=TITR)
1652 END SELECT
1653!
1654 END IF
1655C-----
1656 1000 FORMAT('list of possible cnodes merged with node of id=',I10)
1657C-----
1658 RETURN
1659 END
1660!||====================================================================
1661!|| rini3u ../starter/source/elements/spring/rinit3.F
1662!||--- called by ------------------------------------------------------
1663!|| rinit3 ../starter/source/elements/spring/rinit3.F
1664!||====================================================================
1665 SUBROUTINE RINI3U(OFF ,GEO ,X ,X0 ,IX ,
1666 . SKEW ,RLOC ,ITAB ,UIX ,IGEO )
1667C-----------------------------------------------
1668C I m p l i c i t T y p e s
1669C-----------------------------------------------
1670#include "implicit_f.inc"
1671C-----------------------------------------------
1672C G l o b a l P a r a m e t e r s
1673C-----------------------------------------------
1674#include "mvsiz_p.inc"
1675C-----------------------------------------------
1676C C o m m o n B l o c k s
1677C-----------------------------------------------
1678#include "vect01_c.inc"
1679#include "param_c.inc"
1680C-----------------------------------------------
1681C D u m m y A r g u m e n t s
1682C-----------------------------------------------
1683 INTEGER IX(NIXR,*),UIX(4,MVSIZ),ITAB(*), IGEO(NPROPGI,*)
1684C REAL
1685 my_real
1686 . OFF(*), GEO(NPROPG,*), X(3,*), X0(*), SKEW(LSKEW,*),
1687 . RLOC(6,*)
1688C-----------------------------------------------
1689C L o c a l V a r i a b l e s
1690C-----------------------------------------------
1691 INTEGER I, J, NG, I1, I2, I3, ISK
1692C REAL
1693 my_real
1694 . X1, Y1, Z1
1695C-----------------------------------------------
1696 DO I=LFT,LLT
1697 OFF(I) = ONE
1698 ENDDO
1699C
1700 DO I=LFT,LLT
1701 J=I+NFT
1702 NG=IX(1,J)
1703 ISK=IGEO(2,NG)
1704 I1=IX(2,J)
1705 I2=IX(3,J)
1706 I3=IX(4,J)
1707 X1=X(1,I2)-X(1,I1)
1708 Y1=X(2,I2)-X(2,I1)
1709 Z1=X(3,I2)-X(3,I1)
1710 X0(I)=SQRT(X1**2+Y1**2+Z1**2)
1711 IF (X0(I) < EM15) THEN
1712 RLOC(1,I)= ONE
1713 RLOC(2,I)= ZERO
1714 RLOC(3,I)= ZERO
1715 RLOC(4,I)= ZERO
1716 RLOC(5,I)= ONE
1717 RLOC(6,I)= ZERO
1718 ELSEIF (I3 /= 0) THEN
1719 RLOC(1,I)=X1
1720 RLOC(2,I)=Y1
1721 RLOC(3,I)=Z1
1722 RLOC(4,I)=X(1,I3)-X(1,I1)
1723 RLOC(5,I)=X(2,I3)-X(2,I1)
1724 RLOC(6,I)=X(3,I3)-X(3,I1)
1725 ELSEIF (ISK /= 1) THEN
1726 RLOC(1,I)= X1
1727 RLOC(2,I)= Y1
1728 RLOC(3,I)= Z1
1729 RLOC(4,I)=SKEW(4,ISK)
1730 RLOC(5,I)=SKEW(5,ISK)
1731 RLOC(6,I)=SKEW(6,ISK)
1732 ELSE
1733 RLOC(1,I)=X1
1734 RLOC(2,I)=Y1
1735 RLOC(3,I)=Z1
1736 IF (ABS(Y1) < HALF*X0(I)) THEN
1737 RLOC(4,I)=ZERO
1738 RLOC(5,I)=ONE
1739 RLOC(6,I)=ZERO
1740 ELSE
1741 RLOC(4,I)=ONE
1742 RLOC(5,I)=ZERO
1743 RLOC(6,I)=ZERO
1744 ENDIF
1745 ENDIF
1746 UIX(1,I)=ITAB(I1)
1747 UIX(2,I)=ITAB(I2)
1748 IF(I3 /= 0) THEN
1749 UIX(3,I)=ITAB(I3)
1750 ELSE
1751 UIX(3,I)=0
1752 ENDIF
1753 UIX(4,I)=IX(6,J)
1754 ENDDO
1755C
1756 RETURN
1757 END
1758!||====================================================================
1759!|| rini1u ../starter/source/elements/spring/rinit3.F
1760!||--- called by ------------------------------------------------------
1761!|| rinit3 ../starter/source/elements/spring/rinit3.F
1762!||====================================================================
1763 SUBROUTINE RINI1U(OFF ,GEO ,X ,X0 ,IX ,
1764 . SKEW ,RLOC ,ITAB ,UIX ,IGEO )
1765C-----------------------------------------------
1766C I m p l i c i t T y p e s
1767C-----------------------------------------------
1768#include "implicit_f.inc"
1769C-----------------------------------------------
1770C G l o b a l P a r a m e t e r s
1771C-----------------------------------------------
1772#include "mvsiz_p.inc"
1773C-----------------------------------------------
1774C C o m m o n B l o c k s
1775C-----------------------------------------------
1776#include "vect01_c.inc"
1777#include "param_c.inc"
1778C-----------------------------------------------
1779C D u m m y A r g u m e n t s
1780C-----------------------------------------------
1781 INTEGER IX(NIXR,*),UIX(4,MVSIZ),ITAB(*), IGEO(NPROPGI,*)
1782C REAL
1783 my_real
1784 . OFF(*), GEO(NPROPG,*), X(3,*), X0(*), SKEW(LSKEW,*)
1785C REAL
1786 my_real
1787 . RLOC(3,*)
1788C-----------------------------------------------
1789C L o c a l V a r i a b l e s
1790C-----------------------------------------------
1791 INTEGER I, J, NG, I1, I2, I3, ISK
1792C REAL
1793 my_real
1794 . X1, Y1, Z1
1795C-----------------------------------------------
1796 DO I=LFT,LLT
1797 OFF(I) = ONE
1798 ENDDO
1799C
1800 DO I=LFT,LLT
1801 J=I+NFT
1802 NG=IX(1,J)
1803 ISK=IGEO(2,NG)
1804 I1=IX(2,J)
1805 I2=IX(3,J)
1806 I3=IX(4,J)
1807 X1=X(1,I2)-X(1,I1)
1808 Y1=X(2,I2)-X(2,I1)
1809 Z1=X(3,I2)-X(3,I1)
1810 X0(I)=SQRT(X1**2+Y1**2+Z1**2)
1811 IF (X0(I) < EM15) THEN
1812 RLOC(1,I)= ONE
1813 RLOC(2,I)= ZERO
1814 RLOC(3,I)= ZERO
1815 ELSEIF (I3 /= 0) THEN
1816 RLOC(1,I)=X(1,I3)-X(1,I1)
1817 RLOC(2,I)=X(2,I3)-X(2,I1)
1818 RLOC(3,I)=X(3,I3)-X(3,I1)
1819 ELSEIF( ISK /= 1) THEN
1820 RLOC(1,I)=SKEW(4,ISK)
1821 RLOC(2,I)=SKEW(5,ISK)
1822 RLOC(3,I)=SKEW(6,ISK)
1823 ELSE
1824 IF (ABS(Y1) < HALF*X0(I)) THEN
1825 RLOC(1,I)=ZERO
1826 RLOC(2,I)=ONE
1827 RLOC(3,I)=ZERO
1828 ELSE
1829 RLOC(1,I)=ONE
1830 RLOC(2,I)=ZERO
1831 RLOC(3,I)=ZERO
1832 ENDIF
1833 ENDIF
1834 UIX(1,I)=ITAB(I1)
1835 UIX(2,I)=ITAB(I2)
1836 IF (I3 == 0) THEN
1837 UIX(3,I)=0
1838 ELSE
1839 UIX(3,I)=ITAB(I3)
1840 ENDIF
1841 UIX(4,I)=IX(6,J)
1842 ENDDO
1843C-----------------------------------------------
1844 RETURN
1845 END
1846!||====================================================================
1847!|| rini2u ../starter/source/elements/spring/rinit3.F
1848!||--- called by ------------------------------------------------------
1849!|| rinit3 ../starter/source/elements/spring/rinit3.F
1850!||====================================================================
1851 SUBROUTINE RINI2U(IXR ,UMASS ,UINER,
1852 . PARTSAV ,X ,V ,IPART ,MSR,
1853 . INR ,MSRT ,EMS )
1854C----------------------------------------------
1855C INITIALISATION DES MASSES NODALES
1856C----------------------------------------------
1857C-----------------------------------------------
1858C I m p l i c i t T y p e s
1859C-----------------------------------------------
1860#include "implicit_f.inc"
1861C-----------------------------------------------
1862C C o m m o n B l o c k s
1863C-----------------------------------------------
1864#include "com01_c.inc"
1865#include "vect01_c.inc"
1866C-----------------------------------------------
1867C D u m m y A r g u m e n t s
1868C-----------------------------------------------
1869 INTEGER IXR(NIXR,*),IPART(*)
1870 my_real :: UMASS(*),UINER(*), X(3,*),V(3,*)
1871 my_real :: PARTSAV(20,*), MSR(3,*), INR(3,*), MSRT(*),EMS(*)
1872C-----------------------------------------------
1873C L o c a l V a r i a b l e s
1874C-----------------------------------------------
1875 INTEGER I, IP,I1,I2
1876 my_real :: XX,YY,ZZ,XY,YZ,ZX
1877 my_real :: XI
1878C---------------------------------------------------------------------
1879C----------------------------------------------
1880C MASSE ELEMENT /2
1881C----------------------------------------------
1882 DO I=LFT,LLT
1883 EMS(I)=HALF*UMASS(I)
1884 ENDDO
1885C----------------------------------------------
1886C INITIALISATION DES MASSES NODALES
1887C----------------------------------------------
1888C traitement specifique spmd pour mass et iner parith/on
1889 DO I=LFT,LLT
1890 I1 = IXR(2,I+NFT)
1891 I2 = IXR(3,I+NFT)
1892C
1893 XI=HALF*UINER(I)
1894 MSR(1,I)=EMS(I)
1895 MSR(2,I)=EMS(I)
1896 MSR(3,I)=EMS(I)
1897 INR(1,I)=XI
1898 INR(2,I)=XI
1899 INR(3,I)=XI
1900C
1901 IP=IPART(I)
1902 PARTSAV(1,IP)=PARTSAV(1,IP) + TWO*EMS(I)
1903 PARTSAV(2,IP)=PARTSAV(2,IP) + EMS(I)*(X(1,I1)+X(1,I2))
1904 PARTSAV(3,IP)=PARTSAV(3,IP) + EMS(I)*(X(2,I1)+X(2,I2))
1905 PARTSAV(4,IP)=PARTSAV(4,IP) + EMS(I)*(X(3,I1)+X(3,I2))
1906 XX = (X(1,I1)*X(1,I1)+X(1,I2)*X(1,I2))
1907 XY = (X(1,I1)*X(2,I1)+X(1,I2)*X(2,I2))
1908 YY = (X(2,I1)*X(2,I1)+X(2,I2)*X(2,I2))
1909 YZ = (X(2,I1)*X(3,I1)+X(2,I2)*X(3,I2))
1910 ZZ = (X(3,I1)*X(3,I1)+X(3,I2)*X(3,I2))
1911 ZX = (X(3,I1)*X(1,I1)+X(3,I2)*X(1,I2))
1912 PARTSAV(5,IP) =PARTSAV(5,IP) + TWO*XI + EMS(I) * (YY+ZZ)
1913 PARTSAV(6,IP) =PARTSAV(6,IP) + TWO*XI + EMS(I) * (ZZ+XX)
1914 PARTSAV(7,IP) =PARTSAV(7,IP) + TWO*XI + EMS(I) * (XX+YY)
1915 PARTSAV(8,IP) =PARTSAV(8,IP) - EMS(I) * XY
1916 PARTSAV(9,IP) =PARTSAV(9,IP) - EMS(I) * YZ
1917 PARTSAV(10,IP)=PARTSAV(10,IP) - EMS(I) * ZX
1918C
1919 PARTSAV(11,IP)=PARTSAV(11,IP) + EMS(I)*(V(1,I1)+V(1,I2))
1920 PARTSAV(12,IP)=PARTSAV(12,IP) + EMS(I)*(V(2,I1)+V(2,I2))
1921 PARTSAV(13,IP)=PARTSAV(13,IP) + EMS(I)*(V(3,I1)+V(3,I2))
1922 PARTSAV(14,IP)=PARTSAV(14,IP) + HALF * EMS(I) *
1923 . (V(1,I1)*V(1,I1)+V(2,I1)*V(2,I1)+V(3,I1)*V(3,I1)
1924 . +V(1,I2)*V(1,I2)+V(2,I2)*V(2,I2)+V(3,I2)*V(3,I2))
1925 ENDDO
1926C
1927 IF (IREST_MSELT /= 0)THEN
1928 DO I=LFT,LLT
1929 MSRT(I)=UMASS(I)
1930 ENDDO
1931 ENDIF
1932C
1933 RETURN
1934 END
1935!||====================================================================
1936!|| r4ini ../starter/source/elements/spring/rinit3.F
1937!||--- called by ------------------------------------------------------
1938!|| rinit3 ../starter/source/elements/spring/rinit3.F
1939!||====================================================================
1940 SUBROUTINE R4INI(SIGRS ,IXR ,NSIGI ,EINT ,F ,
1941 . DL ,FEP ,DPL ,DPL2 ,XL0 ,
1942 . DFS ,DV ,IGTYP ,PTSPRI,DL0 ,
1943 . F0 )
1944C-----------------------------------------------
1945C I m p l i c i t T y p e s
1946C-----------------------------------------------
1947#include "implicit_f.inc"
1948C-----------------------------------------------
1949C C o m m o n B l o c k s
1950C-----------------------------------------------
1951#include "vect01_c.inc"
1952#include "com01_c.inc"
1953C-----------------------------------------------
1954C D u m m y A r g u m e n t s
1955C-----------------------------------------------
1956 INTEGER NSIGI,NUVAR,IGTYP
1957 INTEGER IXR(NIXR,*),PTSPRI(*)
1958C REAL
1959 my_real
1960 . F(*),EINT(*),SIGRS(NSIGI,*),DPL(*),DPL2(*),DFS(*),
1961 . FEP(*),DL(*),XL0(*),DV(*),DL0(*),F0(*)
1962C-----------------------------------------------
1963C L o c a l V a r i a b l e s
1964C-----------------------------------------------
1965 INTEGER I,II,JJ
1966C-----------------------------------------------------------------------
1967C---
1968C CONTRAINTES INITIALES + OTHERS
1969C---
1970 IF (INISPRI /= 0) THEN
1971 DO I=LFT,LLT
1972 II = I+NFT
1973! length recumputed in engine if not concerned by INISPRI
1974 XL0(I) = ZERO
1975!
1976 JJ = PTSPRI(II)
1977 IF( JJ == 0) GOTO 200
1978C---
1979!! F(I) = SIGRS(2,JJ)
1980 F0(I) = SIGRS(2,JJ)
1981!! DL(I) = SIGRS(3,JJ)
1982 DL0(I) = SIGRS(3,JJ)
1983 FEP(I) = SIGRS(4,JJ)
1984 IF (IGTYP /= 26) THEN ! IGTYP = 4,12
1985 DPL(I) = SIGRS(5,JJ)
1986 DPL2(I) = SIGRS(6,JJ)
1987 ENDIF
1988 XL0(I) = SIGRS(7,JJ)
1989 EINT(I) = SIGRS(8,JJ)
1990 IF (IGTYP == 12) THEN
1991 DFS(I) = SIGRS(9,JJ)
1992 ELSEIF (IGTYP == 26) THEN
1993 DV(I) = SIGRS(9,JJ)
1994 ENDIF
1995C---
1996 200 CONTINUE
1997 ENDDO ! DO I=LFT,LLT
1998 ENDIF ! IF (INISPRI /= 0)
1999C---
2000 RETURN
2001 END
2002!||====================================================================
2003!|| r8ini ../starter/source/elements/spring/rinit3.F
2004!||--- called by ------------------------------------------------------
2005!|| rinit3 ../starter/source/elements/spring/rinit3.F
2006!||====================================================================
2007 SUBROUTINE R8INI(IGTYP ,NEL ,SIGRS ,IXR ,NSIGI,
2008 . FX ,FY ,FZ ,MX ,MY ,
2009 . MZ ,FXEP ,FYEP ,FZEP ,XMEP ,
2010 . YMEP ,ZMEP ,DXPL ,DYPL ,DZPL ,
2011 . RPX ,RPY ,RPZ ,DXPL2 ,DYPL2,
2012 . DZPL2 ,RPX2 ,RPY2 ,RPZ2 ,DX ,
2013 . DY ,DZ ,RX ,RY ,RZ ,
2014 . XL0 ,YL0 ,ZL0 ,EINT ,E6 ,
2015 . PTSPRI,DX0 ,DY0 ,DZ0 ,RX0 ,
2016 . RY0 ,RZ0 ,FX0 ,FY0 ,FZ0 ,
2017 . MX0 ,MY0 ,MZ0 )
2018C-----------------------------------------------
2019C I m p l i c i t T y p e s
2020C-----------------------------------------------
2021#include "implicit_f.inc"
2022C-----------------------------------------------
2023C C o m m o n B l o c k s
2024C-----------------------------------------------
2025#include "vect01_c.inc"
2026#include "com01_c.inc"
2027C-----------------------------------------------
2028C D u m m y A r g u m e n t s
2029C-----------------------------------------------
2030
2031 INTEGER IXR(NIXR,*),NSIGI,NUVAR,NEL,IGTYP,PTSPRI(*)
2032C REAL
2033 my_real
2034 . FX(*),FY(*),FZ(*),EINT(*),SIGRS(NSIGI,*),
2035 . MX(*),MY(*),MZ(*),DXPL(*),DYPL(*),DZPL(*),
2036 . DXPL2(*),DZPL2(*),DYPL2(*),FXEP(*),FYEP(*),FZEP(*),
2037 . XMEP(*),YMEP(*),ZMEP(*),RPX(*),RPY(*),RPZ(*),
2038 . RPX2(*),RPY2(*),RPZ2(*),DX(*),DY(*),DZ(*),RX(*),
2039 . RY(*),RZ(*),XL0(*),YL0(*),ZL0(*),E6(NEL,6),
2040 . DX0(*),DY0(*),DZ0(*),RX0(*),RY0(*),RZ0(*),
2041 . FX0(*),FY0(*),FZ0(*),MX0(*),MY0(*),MZ0(*)
2042C-----------------------------------------------
2043C L o c a l V a r i a b l e s
2044C-----------------------------------------------
2045 INTEGER I,II,JJ
2046C-----------------------------------------------------------------------
2047C---
2048C CONTRAINTES INITIALES + OTHERS
2049C---
2050 IF (INISPRI /= 0) THEN
2051 DO I=LFT,LLT
2052 II = I+NFT
2053! length recumputed in engine if not concerned by INISPRI
2054 XL0(I) = ZERO
2055 YL0(I) = ZERO
2056 ZL0(I) = ZERO
2057!
2058 JJ = PTSPRI(II)
2059 IF (JJ == 0) GOTO 200
2060C---
2061 FXEP(I) = SIGRS(4, JJ)
2062 DXPL(I) = SIGRS(5, JJ)
2063 DXPL2(I) = SIGRS(6, JJ)
2064 FYEP(I) = SIGRS(9,JJ)
2065 DYPL(I) = SIGRS(10,JJ)
2066 DYPL2(I) = SIGRS(11,JJ)
2067 FZEP(I) = SIGRS(14,JJ)
2068 DZPL(I) = SIGRS(15,JJ)
2069 DZPL2(I) = SIGRS(16,JJ)
2070 XMEP(I) = SIGRS(19,JJ)
2071 RPX(I) = SIGRS(20,JJ)
2072 RPX2(I) = SIGRS(21,JJ)
2073 YMEP(I) = SIGRS(24,JJ)
2074 RPY(I) = SIGRS(25,JJ)
2075 RPY2(I) = SIGRS(26,JJ)
2076 ZMEP(I) = SIGRS(29,JJ)
2077 RPZ(I) = SIGRS(30,JJ)
2078 RPZ2(I) = SIGRS(31,JJ)
2079 XL0(I) = SIGRS(32,JJ)
2080 YL0(I) = SIGRS(33,JJ)
2081 ZL0(I) = SIGRS(34,JJ)
2082.OR..OR. IF (IGTYP == 8 IGTYP == 13
2083.OR. . IGTYP == 23 IGTYP == 25) THEN
2084 DX0(I) = SIGRS(3, JJ)
2085 FX0(I) = SIGRS(2, JJ)
2086 DY0(I) = SIGRS(8, JJ)
2087 FY0(I) = SIGRS(7, JJ)
2088 DZ0(I) = SIGRS(13,JJ)
2089 FZ0(I) = SIGRS(12,JJ)
2090 RX0(I) = SIGRS(18,JJ)
2091 MX0(I) = SIGRS(17,JJ)
2092 RY0(I) = SIGRS(23,JJ)
2093 MY0(I) = SIGRS(22,JJ)
2094 RZ0(I) = SIGRS(28,JJ)
2095 MZ0(I) = SIGRS(27,JJ)
2096!
2097 E6(I,1) = SIGRS(36,JJ)
2098 E6(I,2) = SIGRS(37,JJ)
2099 E6(I,3) = SIGRS(38,JJ)
2100 E6(I,4) = SIGRS(39,JJ)
2101 E6(I,5) = SIGRS(40,JJ)
2102 E6(I,6) = SIGRS(41,JJ)
2103 ENDIF
2104C---
2105 200 CONTINUE
2106 ENDDO ! DO I=LFT,LLT
2107 ENDIF ! IF (INISPRI /= 0)
2108C---
2109 RETURN
2110 END
2111!||====================================================================
2112!|| ruini ../starter/source/elements/spring/rinit3.F
2113!||--- called by ------------------------------------------------------
2114!|| rinit3 ../starter/source/elements/spring/rinit3.F
2115!||====================================================================
2116 SUBROUTINE RUINI(
2117 . SIGRS ,NSIGI,NUVAR,FX ,
2118 . FY ,FZ ,XMOM ,YMOM ,ZMOM ,
2119 . DX ,DY ,DZ ,RX ,RY ,
2120 . RZ ,UVAR ,EINT ,
2121 . PTSPRI)
2122C-----------------------------------------------
2123C I m p l i c i t T y p e s
2124C-----------------------------------------------
2125#include "implicit_f.inc"
2126C-----------------------------------------------
2127C C o m m o n B l o c k s
2128C-----------------------------------------------
2129#include "vect01_c.inc"
2130#include "com01_c.inc"
2131C-----------------------------------------------
2132C D u m m y A r g u m e n t s
2133C-----------------------------------------------
2134 INTEGER NUVAR,NSIGI
2135 INTEGER PTSPRI(*)
2136C REAL
2137 my_real
2138 . FX(*),FY(*),FZ(*),XMOM(*),YMOM(*),ZMOM(*),
2139 . EINT(*),SIGRS(NSIGI,*),
2140 . UVAR(NUVAR,*),DX(*),DY(*),DZ(*),RX(*),RY(*),RZ(*)
2141C-----------------------------------------------
2142C L o c a l V a r i a b l e s
2143C-----------------------------------------------
2144 INTEGER I,II,JJ,K,PT
2145C-----------------------------------------------
2146C---
2147C CONTRAINTES INITIALES + OTHERS
2148C---
2149 IF (INISPRI /= 0) THEN
2150C
2151 DO I=LFT,LLT
2152 II = I+NFT
2153 JJ = PTSPRI(II)
2154 IF (JJ == 0) GOTO 200
2155C---
2156 FX(I) = SIGRS(2, JJ)
2157 DX(I) = SIGRS(3, JJ)
2158 FY(I) = SIGRS(4, JJ)
2159 DY(I) = SIGRS(5, JJ)
2160 FZ(I) = SIGRS(6, JJ)
2161 DZ(I) = SIGRS(7, JJ)
2162 XMOM(I) = SIGRS(8, JJ)
2163 RX(I) = SIGRS(9,JJ)
2164 YMOM(I) = SIGRS(10,JJ)
2165 RY(I) = SIGRS(11,JJ)
2166 ZMOM(I) = SIGRS(12,JJ)
2167 RZ(I) = SIGRS(13,JJ)
2168 EINT(I) = SIGRS(14,JJ)
2169C
2170 PT = 14
2171 DO K=1,NUVAR
2172 UVAR(K,I) = SIGRS(PT + K ,JJ)
2173 ENDDO
2174C---
2175 200 CONTINUE
2176 ENDDO ! DO I=LFT,LLT
2177 ENDIF ! IF (INISPRI /= 0)
2178C-----------
2179 RETURN
2180 END
subroutine rini32(nel, iout, iprop, ix, xl, mass, xiner, stifm, stifr, viscm, viscr, uvar, nuvar, id, titr, eint, npf, tf)
subroutine rini36(nel, iout, iprop, ix, xl, mass, xiner, stifm, stifr, viscm, viscr, uvar, nuvar)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
integer, parameter nchartitle
subroutine noise(dt2r, in, j, buf, v, a, ixs, elbuf_tab, iparg, weight, ixq)
Definition noise.F:41
subroutine r1buf3(off, geo, x, al, ix, ipos, igeo)
Definition r1buf3.F:30
subroutine r2buf3(off, geo, x, x0, y0, z0, ix, skew, iposx, iposy, iposz, iposxx, iposyy, iposzz, igeo, skew_id)
Definition r2buf3.F:33
subroutine r3buf3(off, geo, x, al, ix, ipos, igeo, itab)
Definition r3buf3.F:35
subroutine r4buf3(off, geo, x, x0, y0, z0, ix, skew, rloc, iposx, iposy, iposz, iposxx, iposyy, iposzz, itab, eint6, igeo, ipm)
Definition r4buf3.F:37
subroutine rini33(nel, iout, iprop, ix, xl, mass, xiner, stifn, stifr, viscm, viscr, uvar, nuvar)
Definition rini33.F:38
subroutine rini35(nel, iout, iprop, ix, xl, mass, xiner, stifm, stifr, viscm, viscr, uvar, nuvar)
Definition rini35.F:38
subroutine rini45(nel, iout, iprop, ix, x, xl, mass, xiner, stifn, stifr, viscm, viscr, uvar, nuvar, ixr, ixr_kj, id, titr)
Definition rini45.F:41
subroutine r8ini(igtyp, nel, sigrs, ixr, nsigi, fx, fy, fz, mx, my, mz, fxep, fyep, fzep, xmep, ymep, zmep, dxpl, dypl, dzpl, rpx, rpy, rpz, dxpl2, dypl2, dzpl2, rpx2, rpy2, rpz2, dx, dy, dz, rx, ry, rz, xl0, yl0, zl0, eint, e6, ptspri, dx0, dy0, dz0, rx0, ry0, rz0, fx0, fy0, fz0, mx0, my0, mz0)
Definition rinit3.F:2018
subroutine rini3u(off, geo, x, x0, ix, skew, rloc, itab, uix, igeo)
Definition rinit3.F:1667
subroutine rini2u(ixr, umass, uiner, partsav, x, v, ipart, msr, inr, msrt, ems)
Definition rinit3.F:1854
subroutine rinit3(elbuf_str, ixr, x, geo, xmas, npc, pld, xin, skew, dtelem, nel, stifn, stifr, partsav, v, ipart, itab, msr, inr, stifint, str, igeo, sigrs, nsigrs, imerge2, iadmerge2, msrt, ixr_kj, nom_opt, strr, ptspri, ipm, pm, uparam, r_skew, preload_a, ipreld, npreload_a, ikine)
Definition rinit3.F:67
subroutine rini1u(off, geo, x, x0, ix, skew, rloc, itab, uix, igeo)
Definition rinit3.F:1765
subroutine ruini(sigrs, nsigi, nuvar, fx, fy, fz, xmom, ymom, zmom, dx, dy, dz, rx, ry, rz, uvar, eint, ptspri)
Definition rinit3.F:2122
subroutine r4ini(sigrs, ixr, nsigi, eint, f, dl, fep, dpl, dpl2, xl0, dfs, dv, igtyp, ptspri, dl0, f0)
Definition rinit3.F:1944
subroutine rkini3(ifunct, npc, pld, xk, ecrou, igeo, a, lscale, id, titr, nom_opt)
Definition rkini3.F:35
subroutine rmas12(ixr, geo, partsav, x, v, ipart, xl, msr, inr, msrt)
Definition rmas12.F:30
subroutine rmass(ixr, geo, ms, xin, partsav, x, v, ipart, xl, msr, inr, msrt, ems)
Definition rmass.F:31
subroutine r23mass(ixr, geo, ms, xin, partsav, x, v, ipart, xl, msr, inr, msrt, ems, mass, uiner, mtyp)
Definition rmass.F:122
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
subroutine bidon
Definition machine.F:41
character *8 function strr(y)
Definition strr.F:34
subroutine user_output(iout, ilaw, rootn, rootlen, inpf)
Definition user_output.F:38
program starter
Definition starter.F:39