OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rforc3.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!|| rforc3 ../engine/source/elements/spring/rforc3.F
25!||--- called by ------------------------------------------------------
26!|| forint ../engine/source/elements/forint.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!|| preload_axial ../engine/source/elements/spring/preload_axial.F90
31!|| r1coor3 ../engine/source/elements/spring/r1coor3.F
32!|| r1cum3 ../engine/source/elements/spring/r1cum3.F
33!|| r1cum3p ../engine/source/elements/spring/r1cum3p.F
34!|| r1def3 ../engine/source/elements/spring/r1def3.F
35!|| r1len3 ../engine/source/elements/spring/r1len3.F
36!|| r1sens3 ../engine/source/elements/spring/r1sens3.F
37!|| r1tors ../engine/source/elements/spring/r1tors.F
38!|| r26def3 ../engine/source/elements/spring/r26def3.F
39!|| r27def3 ../engine/source/elements/spring/r27def3.F
40!|| r2coor3 ../engine/source/elements/spring/r2coor3.F
41!|| r2cum3 ../engine/source/elements/spring/r2cum3.F
42!|| r2cum3p ../engine/source/elements/spring/r2cum3p.F
43!|| r2def3 ../engine/source/elements/spring/r2def3.F
44!|| r2len3 ../engine/source/elements/spring/r2len3.F
45!|| r2sens3 ../engine/source/elements/spring/r2sens3.F
46!|| r2tors ../engine/source/elements/spring/r2tors.F
47!|| r3bilan ../engine/source/elements/spring/r3bilan.F
48!|| r3coor3 ../engine/source/elements/spring/r3coor3.F
49!|| r3cum3 ../engine/source/elements/spring/r3cum3.F
50!|| r3cum3p ../engine/source/elements/spring/r3cum3p.F
51!|| r3def3 ../engine/source/elements/spring/r3def3.F
52!|| r3len3 ../engine/source/elements/spring/r3len3.F
53!|| r3tors ../engine/source/elements/spring/r3tors.F
54!|| r4coor3 ../engine/source/elements/spring/r4coor3.F
55!|| r4cum3 ../engine/source/elements/spring/r4cum3.F
56!|| r4cum3p ../engine/source/elements/spring/r4cum3p.f
57!|| r4def3 ../engine/source/elements/spring/r4def3.F
58!|| r4evec3 ../engine/source/elements/spring/r4evec3.F
59!|| r4tors ../engine/source/elements/spring/r4tors.F
60!|| r5bilan ../engine/source/elements/spring/r5bilan.F
61!|| r5cum3 ../engine/source/elements/spring/r5cum3.F
62!|| r5cum3p ../engine/source/elements/spring/r5cum3p.F
63!|| r5def3 ../engine/source/elements/spring/r5def3.f
64!|| r5evec3 ../engine/source/elements/spring/r5evec3.F
65!|| r5len3 ../engine/source/elements/spring/r5len3.F
66!|| r6def3 ../engine/source/elements/spring/r6def3.F
67!|| rbilan ../engine/source/elements/spring/rbilan.F
68!|| rgjoint ../engine/source/elements/joint/rgjoint.F
69!|| rsens_nic ../engine/source/tools/sensor/rsens_nic.F
70!|| ruser32 ../engine/source/elements/spring/ruser32.F
71!|| ruser35 ../engine/source/elements/spring/ruser35.F
72!|| ruser36 ../engine/source/elements/spring/ruser36.F
73!|| ruser44 ../engine/source/elements/spring/ruser44.F
74!|| ruser46 ../engine/source/elements/spring/ruser46.F
75!|| set_spring_elnum ../engine/source/user_interface/uaccess.F
76!||--- uses -----------------------------------------------------
77!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
78!|| h3d_mod ../engine/share/modules/h3d_mod.F
79!|| message_mod ../engine/share/message_module/message_mod.F
80!|| preload_axial_mod ../engine/source/elements/spring/preload_axial.F90
81!|| python_funct_mod ../common_source/modules/python_mod.F90
82!|| sensor_mod ../common_source/modules/sensor_mod.F90
83!|| table_mod ../engine/share/modules/table_mod.F
84!||====================================================================
85 SUBROUTINE rforc3(PYTHON,
86 1 ELBUF_STR, JFT, JLT, NEL,
87 2 MTN, IGEO, GEO, IXR,
88 3 X, TABLE, XDP, F,
89 4 NPF, TF, SKEW, FLG_KJ2,
90 5 VR, AR, V, DT2T,
91 6 NELTST, ITYPTST, STIFN, STIFR,
92 7 MS, IN, FSKY, IADR,
93 8 SENSORS, OFFSET, ANIM, PARTSAV,
94 9 IPARTR, TANI, FR_WAVE, BUFMAT,
95 A BUFGEO, PM, RBY, FX1,
96 B FX2, FY1, FY2, FZ1,
97 C FZ2, MX1, MX2, MY1,
98 D MY2, MZ1, MZ2, GRESAV,
99 E GRTH, IGRTH, MSRT, DMELRT,
100 F ITASK, H3D_DATA, JSMS, NFT,
101 G IAD, IGRE, PRELD1, STF_F,
102 H STF, SANIN, IRESP, IMPL_S,
103 I IDYNA, SNPC)
104C-----------------------------------------------
105C M o d u l e s
106C-----------------------------------------------
107 USE python_funct_mod
108 USE elbufdef_mod
109 USE table_mod
110 USE sensor_mod
111 USE h3d_mod
112 USE message_mod
113 USE preload_axial_mod
114C-----------------------------------------------
115C I m p l i c i t T y p e s
116C-----------------------------------------------
117#include "implicit_f.inc"
118C-----------------------------------------------
119C G l o b a l P a r a m e t e r s
120C-----------------------------------------------
121#include "mvsiz_p.inc"
122C-----------------------------------------------
123C C o m m o n B l o c k s
124C-----------------------------------------------
125#include "param_c.inc"
126#include "parit_c.inc"
127#include "units_c.inc"
128#include "com04_c.inc"
129#include "com08_c.inc"
130#include "userlib.inc"
131C-----------------------------------------------
132C D u m m y A r g u m e n t s
133C-----------------------------------------------
134 TYPE(python_), INTENT(INOUT) :: PYTHON
135 INTEGER, INTENT(IN) :: STF !< Size of TF
136 INTEGER, INTENT(IN) :: SANIN !< Size of ANIM
137 INTEGER, INTENT(IN) :: IRESP !< Single precision flag
138 INTEGER, INTENT(IN) :: IMPL_S !< Implicit solver flag
139 INTEGER, INTENT(IN) :: IDYNA !< Dynamic condensation flag
140 INTEGER, INTENT(IN) :: SNPC !< Size of NPF
141 INTEGER, INTENT(INOUT) :: IAD
142 INTEGER, INTENT(IN) :: IGRE
143 INTEGER, INTENT(IN) :: NFT
144 INTEGER IXR(NIXR,*), NPF(SNPC),IADR(3,*),IPARTR(*),
145 . IGEO(NPROPGI,*),JFT,JLT,NELTST ,ITYPTST,OFFSET,
146 . NEL,MTN,GRTH(*),IGRTH(*),FLG_KJ2,ITASK
147 INTEGER, INTENT(IN) :: JSMS
148 my_real DT2T ,
149 . GEO(NPROPG,*),X(*),F(*),TF(STF),SKEW(LSKEW,*),FSKY(*),
150 . VR(*), V(3,*), AR(*), STIFN(*),STIFR(*),MS(*), IN(*),
151 . ANIM(SANIN),PARTSAV(*),TANI(15,*),
152 . fr_wave(*),bufmat(*),bufgeo(*),pm(*),rby(*),
153 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
154 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
155 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
156 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),gresav(*),
157 . msrt(*), dmelrt(*)
158 my_real, INTENT(IN) :: preld1,stf_f
159 DOUBLE PRECISION XDP(3,*)
160 TYPE(ttable) TABLE(*)
161C
162 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
163 TYPE(H3D_DATABASE) :: H3D_DATA
164 TYPE (SENSORS_) , INTENT(INOUT) :: SENSORS
165C-----------------------------------------------
166C L o c a l V a r i a b l e s
167C-----------------------------------------------
168 INTEGER NGL(MVSIZ),MGN(MVSIZ),NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),IEQUIL(MVSIZ)
169C REAL
170 my_real
171 . STI(3,MVSIZ),STIR(3,MVSIZ),VISI(MVSIZ),VISIR(MVSIZ),
172 . USTI(MVSIZ),USTIR(MVSIZ),DF(MVSIZ),AL(MVSIZ),UNUSED(MVSIZ),
173 . UINER(MVSIZ),FR_W_E(MVSIZ),OFF(MVSIZ),BID
174 my_real
175 . EXX2(MVSIZ), EYX2(MVSIZ), EZX2(MVSIZ),
176 . exy2(mvsiz), eyy2(mvsiz), ezy2(mvsiz),
177 . exz2(mvsiz), eyz2(mvsiz), ezz2(mvsiz),
178 . al2(mvsiz),x1(mvsiz),y1(mvsiz),z1(mvsiz),
179 . x2(mvsiz),y2(mvsiz),z2(mvsiz),x3(mvsiz),y3(mvsiz),z3(mvsiz),
180 . ex(mvsiz),ey(mvsiz),ez(mvsiz),
181 . exx(mvsiz),eyx(mvsiz),ezx(mvsiz),
182 . exy(mvsiz),eyy(mvsiz),ezy(mvsiz),
183 . exz(mvsiz),eyz(mvsiz),ezz(mvsiz),
184 . xcr(mvsiz),xk(mvsiz),xm(mvsiz),xc(mvsiz),rx1(mvsiz),rx2(mvsiz),
185 . ry1(mvsiz),ry2(mvsiz),rz1(mvsiz),rz2(mvsiz),xin(mvsiz),
186 . ak(mvsiz),xkm(mvsiz),xcm(mvsiz),xkr(mvsiz),
187 . ex2(mvsiz),ey2(mvsiz),ez2(mvsiz),vx1(mvsiz),vx2(mvsiz),
188 . vy1(mvsiz),vy2(mvsiz),vz1(mvsiz),vz2(mvsiz),vl12(mvsiz)
189 INTEGER IGTYP,I,I0,NUVAR,NSENSOR
190 DOUBLE PRECISION
191 . X1DP(3,MVSIZ),X2DP(3,MVSIZ),X3DP(3,MVSIZ),
192 . elx(3,mvsiz),al2dp(mvsiz),aldp(mvsiz)
193 my_real user_fx(mvsiz),user_fy(mvsiz),user_fz(mvsiz),
194 * user_momx(mvsiz),user_momy(mvsiz),user_momz(mvsiz),
195 * user_v_repcvtx(mvsiz),user_v_repcvty(mvsiz),user_v_repcvtz(mvsiz),
196 * user_vr_repcvtx(mvsiz),user_vr_repcvty(mvsiz),user_vr_repcvtz(mvsiz),
197 * user_eint(mvsiz)
198 my_real, DIMENSION(:), ALLOCATABLE :: user_uvar
199C-----------------------------------------------
200 TYPE(g_bufel_),POINTER :: GBUF
201 INTEGER II(6)
202!
203 CHARACTER OPTION*256
204 INTEGER SIZE
205C=======================================================================
206 GBUF => elbuf_str%GBUF
207 nsensor = sensors%NSENSOR
208!
209 fx1(1:mvsiz) = zero
210 fx2(1:mvsiz) = zero
211 fy1(1:mvsiz) = zero
212 fy2(1:mvsiz) = zero
213 fz1(1:mvsiz) = zero
214 fz2(1:mvsiz) = zero
215 mx1(1:mvsiz) = zero
216 mx2(1:mvsiz) = zero
217 my1(1:mvsiz) = zero
218 my2(1:mvsiz) = zero
219 mz1(1:mvsiz) = zero
220 mz2(1:mvsiz) = zero
221!
222 DO i=1,6
223 ii(i) = (i-1)*nel + 1
224 ENDDO
225C
226 i0 = ixr(1,1)
227 igtyp = igeo(11,i0)
228C
229 bid = zero
230C
231 nuvar = nint(geo(25,i0))
232C
233 fr_w_e(1:nel) = zero
234C=======================================================================
235 IF (igtyp == 4) THEN
236C=======================================================================
237 CALL r1coor3(
238 1 x, vr, ixr, xdp,
239 2 x1dp, x2dp, ngl, mgn,
240 3 nc1, nc2, nel)
241 CALL r1sens3(
242 1 geo, gbuf%OFF, sensors%SENSOR_TAB, gbuf%TOTDEPL(ii(1)),
243 2 gbuf%LENGTH(ii(1)), igeo, mgn, nel,nsensor)
244C
245 DO i=jft,jlt
246 IF (gbuf%OFF(i) /= -ten) THEN
247 off(i)=min(one,abs(gbuf%OFF(i)))
248 ELSE
249C spring may be activated by sensor and is actually inactive.
250 off(i)=zero
251 ENDIF
252 ENDDO
253C
254 CALL r1def3(python,
255 1 geo, gbuf%FOR(ii(1)), gbuf%LENGTH(ii(1)), gbuf%EINT,
256 2 gbuf%TOTDEPL(ii(1)), npf, tf, off,
257 3 gbuf%DEP_IN_TENS(ii(1)),gbuf%FOREP(ii(1)), gbuf%DEP_IN_COMP(ii(1)),anim,
258 4 gbuf%POSX, igeo, gbuf%LENGTH_ERR,
259 5 x1dp, x2dp, v, gbuf%YIELD(ii(1)),
260 6 ngl, mgn, ex, ey,
261 7 ez, xk, xm, xc,
262 8 ak, nc1, nc2, nuvar,
263 9 gbuf%VAR, gbuf%DEFINI, nel, nft,stf,
264 a sanin, iresp, snpc)
265C
266 DO i=jft,jlt
267 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
268 ENDDO
269C
270 CALL r1len3(
271 1 jft, jlt, gbuf%OFF, dt2t,
272 2 neltst, ityptst, sti, ms,
273 3 msrt, dmelrt, gbuf%G_DT,gbuf%DT,
274 4 ngl, xk, xm, xc,
275 5 ak, nc1, nc2, jsms)
276 CALL rbilan(
277 1 gbuf%EINT, partsav, ixr, geo,
278 2 v, ipartr, gbuf%LENGTH(ii(1)),gresav,
279 3 grth, igrth, gbuf%OFF, nc1,
280 4 nc2, x, vr, itask,
281 5 nel, igre, sensors)
282 CALL r1tors(
283 1 gbuf%FOR(ii(1)),tani, h3d_data, nel)
284!
285 IF (preld1>zero) THEN
286 DO i=jft,jlt
287 vl12(i) = (v(1,nc2(i))-v(1,nc1(i)))*ex(i)+
288 1 (v(2,nc2(i))-v(2,nc1(i)))*ey(i)+
289 2 (v(3,nc2(i))-v(3,nc1(i)))*ez(i)
290 ENDDO
291 CALL preload_axial(nel,preld1,gbuf%BPRELD,vl12,stf_f,gbuf%FOR)
292 gbuf%FOREP(jft:jlt) = gbuf%FOR(jft:jlt)
293 END IF
294 IF (iparit == 0) THEN
295 CALL r1cum3(
296 1 f, gbuf%FOR(ii(1)),sti, stifn,
297 2 fx1, fx2, fy1, fy2,
298 3 fz1, fz2, mx1, mx2,
299 4 my1, my2, mz1, mz2,
300 5 ex, ey, ez, nc1,
301 6 nc2, nel)
302 ELSE
303 CALL r1cum3p(
304 1 gbuf%FOR(ii(1)),sti, fsky, fsky,
305 2 iadr, fx1, fx2, fy1,
306 3 fy2, fz1, fz2, mx1,
307 4 mx2, my1, my2, mz1,
308 5 mz2, ex, ey, ez,
309 6 nel, nft)
310 ENDIF
311
312C=======================================================================
313 ELSEIF (igtyp == 26) THEN
314C=======================================================================
315 CALL r1coor3(
316 1 x, vr, ixr, xdp,
317 2 x1dp, x2dp, ngl, mgn,
318 3 nc1, nc2, nel)
319 CALL r1sens3(
320 1 geo, gbuf%OFF, sensors%SENSOR_TAB, gbuf%TOTDEPL(ii(1)),
321 2 gbuf%LENGTH(ii(1)), igeo, mgn, nel ,nsensor)
322C
323 DO i=jft,jlt
324 IF (gbuf%OFF(i) /= -ten) THEN
325 off(i)=min(one,abs(gbuf%OFF(i)))
326 ELSE
327C spring may be activated by sensor and is actually inactive.
328 off(i)=zero
329 ENDIF
330 ENDDO
331C
332 CALL r26def3(python,
333 1 gbuf%FOR(ii(1)), gbuf%EINT, gbuf%TOTDEPL(ii(1)), gbuf%LENGTH(ii(1)),
334 2 gbuf%DV, gbuf%FOREP(ii(1)), gbuf%DEP_IN_COMP(ii(1)),gbuf%POSX,
335 3 geo, igeo, npf, tf,
336 4 v, off, anim, fr_wave,
337 5 gbuf%LENGTH_ERR, x1dp, x2dp, ngl,
338 6 mgn, ex, ey, ez,
339 7 xk, xm, xc, ak,
340 8 nel, nft, iad, gbuf%RUPTCRIT(ii(1)))
341C
342 DO i=jft,jlt
343 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
344 ENDDO
345C
346 CALL r1len3(
347 1 jft, jlt, gbuf%OFF, dt2t,
348 2 neltst, ityptst, sti, ms,
349 3 msrt, dmelrt, gbuf%G_DT,gbuf%DT,
350 4 ngl, xk, xm, xc,
351 5 ak, nc1, nc2, jsms)
352 CALL rbilan(
353 1 gbuf%EINT, partsav, ixr, geo,
354 2 v, ipartr, gbuf%LENGTH(ii(1)),gresav,
355 3 grth, igrth, gbuf%OFF, nc1,
356 4 nc2, x, vr, itask,
357 5 nel, igre, sensors)
358 CALL r1tors(
359 1 gbuf%FOR(ii(1)),tani, h3d_data, nel)
360!
361 IF (iparit == 0) THEN
362 CALL r1cum3(
363 1 f, gbuf%FOR(ii(1)),sti, stifn,
364 2 fx1, fx2, fy1, fy2,
365 3 fz1, fz2, mx1, mx2,
366 4 my1, my2, mz1, mz2,
367 5 ex, ey, ez, nc1,
368 6 nc2, nel)
369 ELSE
370 CALL r1cum3p(
371 1 gbuf%FOR(ii(1)),sti, fsky, fsky,
372 2 iadr, fx1, fx2, fy1,
373 3 fy2, fz1, fz2, mx1,
374 4 mx2, my1, my2, mz1,
375 5 mz2, ex, ey, ez,
376 6 nel, nft)
377 ENDIF
378C=======================================================================
379 ELSEIF (igtyp == 27) THEN
380C=======================================================================
381 CALL r1coor3(
382 1 x, vr, ixr, xdp,
383 2 x1dp, x2dp, ngl, mgn,
384 3 nc1, nc2, nel)
385 CALL r1sens3(
386 1 geo, gbuf%OFF, sensors%SENSOR_TAB, gbuf%TOTDEPL(ii(1)),
387 2 gbuf%LENGTH(ii(1)), igeo, mgn, nel ,nsensor )
388C
389 DO i=jft,jlt
390 IF (gbuf%OFF(i) /= -ten) THEN
391 off(i)=min(one,abs(gbuf%OFF(i)))
392 ELSE
393C spring may be activated by sensor and is actually inactive.
394 off(i)=zero
395 ENDIF
396 ENDDO
397C
398 CALL r27def3(python,
399 1 gbuf%FOR(ii(1)), gbuf%EINT, gbuf%TOTDEPL(ii(1)),gbuf%LENGTH(ii(1)),
400 2 gbuf%POSX, geo, igeo, npf,
401 3 tf, v, off, anim,
402 4 gbuf%LENGTH_ERR, x1dp, x2dp, ngl,
403 5 mgn, ex, ey, ez,
404 6 xk, xm, xc, ak,
405 7 nel, nft, gbuf%RUPTCRIT(ii(1)))
406C
407 DO i=jft,jlt
408 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
409 ENDDO
410C
411 CALL r1len3(
412 1 jft, jlt, gbuf%OFF, dt2t,
413 2 neltst, ityptst, sti, ms,
414 3 msrt, dmelrt, gbuf%G_DT,gbuf%DT,
415 4 ngl, xk, xm, xc,
416 5 ak, nc1, nc2, jsms)
417 CALL rbilan(
418 1 gbuf%EINT, partsav, ixr, geo,
419 2 v, ipartr, gbuf%LENGTH(ii(1)),gresav,
420 3 grth, igrth, gbuf%OFF, nc1,
421 4 nc2, x, vr, itask,
422 5 nel, igre, sensors)
423 CALL r1tors(
424 1 gbuf%FOR(ii(1)),tani, h3d_data, nel)
425!
426 IF (iparit == 0) THEN
427 CALL r1cum3(
428 1 f, gbuf%FOR(ii(1)),sti, stifn,
429 2 fx1, fx2, fy1, fy2,
430 3 fz1, fz2, mx1, mx2,
431 4 my1, my2, mz1, mz2,
432 5 ex, ey, ez, nc1,
433 6 nc2, nel)
434 ELSE
435 CALL r1cum3p(
436 1 gbuf%FOR(ii(1)),sti, fsky, fsky,
437 2 iadr, fx1, fx2, fy1,
438 3 fy2, fz1, fz2, mx1,
439 4 mx2, my1, my2, mz1,
440 5 mz2, ex, ey, ez,
441 6 nel, nft)
442 ENDIF
443C=======================================================================
444 ELSEIF (igtyp == 8) THEN
445C=======================================================================
446 CALL r2coor3(
447 1 x, vr, ixr, xdp,
448 2 x1dp, x2dp, ngl, x1,
449 3 y1, z1, x2, y2,
450 4 z2, mgn, rx1, ry1,
451 5 rz1, rx2, ry2, rz2,
452 6 nc1, nc2, nel)
453 CALL r2sens3(
454 1 geo, gbuf%OFF, sensors%SENSOR_TAB, gbuf%TOTDEPL(ii(1)),
455 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
456 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
457 4 igeo, mgn, nel, nsensor)
458C
459 DO i=jft,jlt
460 IF (gbuf%OFF(i) /= -ten) THEN
461 off(i)=min(one,abs(gbuf%OFF(i)))
462 ELSE
463C spring may be activated by sensor and is actually inactive.
464 off(i)=zero
465 ENDIF
466 ENDDO
467C
468 CALL r2def3(python,
469 1 skew, geo, gbuf%FOR(ii(1)), gbuf%FOR(ii(2)),
470 2 gbuf%FOR(ii(3)), gbuf%EINT, gbuf%TOTDEPL(ii(1)), gbuf%TOTDEPL(ii(2)),
471 3 gbuf%TOTDEPL(ii(3)), npf, tf, off,
472 4 gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),
473 5 gbuf%DEP_IN_COMP(ii(2)),gbuf%DEP_IN_COMP(ii(3)),gbuf%FOREP(ii(1)), gbuf%FOREP(ii(2)),
474 6 gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)), gbuf%LENGTH(ii(3)),
475 7 gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%TOTROT(ii(1)),
476 8 gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),
477 9 gbuf%ROT_IN_TENS(ii(3)),gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)), gbuf%MOMEP(ii(3)),
478 a gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),anim,
479 b gbuf%POSX, gbuf%POSY, gbuf%POSZ, gbuf%POSXX,
480 c gbuf%POSYY, gbuf%POSZZ, v,
481 d igeo, gbuf%E6, gbuf%RUPTCRIT, nel,
482 e gbuf%LENGTH_ERR, x1dp, x2dp, gbuf%YIELD(ii(1)),
483 f gbuf%YIELD(ii(2)), gbuf%YIELD(ii(3)), gbuf%YIELD(ii(4)), gbuf%YIELD(ii(5)),
484 g gbuf%YIELD(ii(6)), ngl, xkr, mgn,
485 h exx, eyx, ezx, exy,
486 i eyy, ezy, exz, eyz,
487 j ezz, xcr, rx1, ry1,
488 k rz1, rx2, ry2, rz2,
489 l xin, ak, xm, xkm,
490 m xcm, nc1, nc2, nuvar,
491 n gbuf%VAR, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii(3)),
492 o gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), iequil,
493 p gbuf%SKEW_ID, nft, stf, sanin,
494 q iresp, snpc)
495C
496 DO i=jft,jlt
497 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
498 ENDDO
499
500 CALL rsens_nic(nel ,ixr ,gbuf%FOR,gbuf%MOM,skew ,
501 . nsensor,sensors%SENSOR_TAB)
502C
503 CALL r2len3(
504 1 jft, jlt, gbuf%OFF, dt2t,
505 2 neltst, ityptst, sti, stir,
506 3 ms, in, msrt, dmelrt,
507 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
508 5 xin, xm, xkm, xcm,
509 6 xkr, nc1, nc2, jsms)
510 CALL rbilan(
511 1 gbuf%EINT,partsav, ixr, geo,
512 2 v, ipartr, bid, gresav,
513 3 grth, igrth, gbuf%OFF, nc1,
514 4 nc2, x, vr, itask,
515 5 nel, igre,sensors)
516 CALL r2tors(
517 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
518 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, h3d_data,
519 3 nel)
520 IF (iparit == 0) THEN
521 CALL r2cum3(
522 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
523 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
524 3 sti, stir, stifn, stifr,
525 4 fx1, fx2, fy1, fy2,
526 5 fz1, fz2, mx1, mx2,
527 6 my1, my2, mz1, mz2,
528 7 geo, x1, y1, z1,
529 8 x2, y2, z2, iequil,
530 9 exx, eyx, ezx, exy,
531 a eyy, ezy, exz, eyz,
532 b ezz, nc1, nc2, nel)
533 ELSE
534 CALL r2cum3p(
535 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
536 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
537 3 fsky, fsky, iadr, fx1,
538 4 fx2, fy1, fy2, fz1,
539 5 fz2, mx1, mx2, my1,
540 6 my2, mz1, mz2, geo,
541 7 x1, y1, z1, x2,
542 8 y2, z2, iequil, exx,
543 9 eyx, ezx, exy, eyy,
544 a ezy, exz, eyz, ezz,
545 b nel, nft)
546 ENDIF
547C=======================================================================
548 ELSEIF (igtyp == 12) THEN
549C=======================================================================
550 CALL r3coor3(
551 1 x, vr, ixr, xdp,
552 2 x1dp, x2dp, x3dp, ngl,
553 3 mgn, nc1, nc2, nc3,
554 4 nel)
555 CALL r1sens3(
556 1 geo, gbuf%OFF, sensors%SENSOR_TAB, gbuf%TOTDEPL(ii(1)),
557 2 gbuf%LENGTH(ii(1)), igeo, mgn, nel, nsensor )
558C
559 DO i=jft,jlt
560 IF (gbuf%OFF(i) /= -ten) THEN
561 off(i)=min(one,abs(gbuf%OFF(i)))
562 ELSE
563C spring may be activated by sensor and is actually inactive.
564 off(i)=zero
565 ENDIF
566 ENDDO
567C
568 CALL r3def3(python,
569 1 geo, gbuf%FOR(ii(1)), gbuf%LENGTH(ii(1)), gbuf%EINT,
570 2 gbuf%TOTDEPL(ii(1)), npf, tf, off,
571 3 gbuf%DEP_IN_TENS(ii(1)),gbuf%FOREP(ii(1)), gbuf%DEP_IN_COMP(ii(1)),gbuf%DFS,
572 4 v, ixr, df, anim,
573 5 gbuf%POSX, igeo, gbuf%LENGTH_ERR,
574 6 x1dp, x2dp, x3dp, gbuf%YIELD(ii(1)),
575 7 table, gbuf%INIFRIC, ngl, mgn,
576 8 ex, ey, ez, xk,
577 9 xm, xc, ak, ex2,
578 a ey2, ez2, nc1, nc2,
579 b nc3, nuvar, gbuf%VAR, gbuf%DEFINI,
580 c nel, nft, stf, sanin,
581 d iresp, snpc)
582c
583 DO i=jft,jlt
584 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
585 ENDDO
586 CALL r3len3(
587 1 jft, jlt, gbuf%OFF, dt2t,
588 2 neltst, ityptst, sti, ms,
589 3 msrt, dmelrt, gbuf%G_DT,gbuf%DT,
590 4 ngl, xk, xm, xc,
591 5 ak, nc1, nc2, nc3,
592 6 jsms)
593 CALL r3bilan(
594 1 gbuf%EINT, partsav, ixr, geo,
595 2 v, ipartr, gbuf%LENGTH(ii(1)),gresav,
596 3 grth, igrth, nc1, nc2,
597 4 nc3, x, vr, itask,
598 5 nel, igre,sensors)
599 CALL r3tors(
600 1 gbuf%FOR(ii(1)),df, tani, h3d_data,
601 2 nel)
602 IF (iparit == 0) THEN
603 CALL r3cum3(
604 1 f, gbuf%FOR(ii(1)),sti, stifn,
605 2 df, ex, ey, ez,
606 3 ex2, ey2, ez2, nc1,
607 4 nc2, nc3, nel)
608 ELSE
609 CALL r3cum3p(
610 1 gbuf%FOR(ii(1)),sti, fsky, fsky,
611 2 iadr, df, ex, ey,
612 3 ez, ex2, ey2, ez2,
613 4 nel, nft)
614 ENDIF
615C=======================================================================
616 ELSEIF (igtyp == 13) THEN
617C=======================================================================
618 CALL r2coor3(
619 1 x, vr, ixr, xdp,
620 2 x1dp, x2dp, ngl, x1,
621 3 y1, z1, x2, y2,
622 4 z2, mgn, rx1, ry1,
623 5 rz1, rx2, ry2, rz2,
624 6 nc1, nc2, nel)
625 CALL r2sens3(
626 1 geo, gbuf%OFF, sensors%SENSOR_TAB, gbuf%TOTDEPL(ii(1)),
627 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
628 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
629 4 igeo, mgn, nel , nsensor )
630C
631 DO i=jft,jlt
632 IF (gbuf%OFF(i) /= -ten) THEN
633 off(i)=min(one,abs(gbuf%OFF(i)))
634 ELSE
635C spring may be activated by sensor and is actually inactive.
636 off(i)=zero
637 ENDIF
638 ENDDO
639C
640 CALL r4evec3(
641 1 gbuf%SKEW, v, exx2, eyx2,
642 2 ezx2, exy2, eyy2, ezy2,
643 3 exz2, eyz2, ezz2, al2dp,
644 4 x1dp, x2dp, al2, aldp,
645 5 gbuf%SKEW_ERR,ngl, al, exx,
646 6 eyx, ezx, exy, eyy,
647 7 ezy, exz, eyz, ezz,
648 8 rx1, ry1, rz1, rx2,
649 9 ry2, rz2, vx1, vx2,
650 a vy1, vy2, vz1, vz2,
651 b nc1, nc2, nel)
652 CALL r4def3(python,
653 1 skew, geo, gbuf%FOR(ii(1)), gbuf%FOR(ii(2)),
654 2 gbuf%FOR(ii(3)), gbuf%EINT, gbuf%TOTDEPL(ii(1)), gbuf%TOTDEPL(ii(2)),
655 3 gbuf%TOTDEPL(ii(3)), npf, tf, off,
656 4 gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),
657 5 gbuf%DEP_IN_COMP(ii(2)),gbuf%DEP_IN_COMP(ii(3)),gbuf%FOREP(ii(1)), gbuf%FOREP(ii(2)),
658 6 gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)), gbuf%LENGTH(ii(3)),
659 7 gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%TOTROT(ii(1)),
660 8 gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),
661 9 gbuf%ROT_IN_TENS(ii(3)),gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)), gbuf%MOMEP(ii(3)),
662 a gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),anim,
663 b gbuf%POSX, gbuf%POSY, gbuf%POSZ, gbuf%POSXX,
664 c gbuf%POSYY, gbuf%POSZZ, fr_wave, gbuf%E6,
665 d nel, exx2, eyx2, ezx2,
666 e exy2, eyy2, ezy2, exz2,
667 f eyz2, ezz2, al2dp, igeo,
668 g gbuf%RUPTCRIT, gbuf%LENGTH_ERR, aldp, gbuf%YIELD(ii(1)),
669 h gbuf%YIELD(ii(2)), gbuf%YIELD(ii(3)), gbuf%YIELD(ii(4)), gbuf%YIELD(ii(5)),
670 i gbuf%YIELD(ii(6)), ngl, mgn, exx,
671 j eyx, ezx, exy, eyy,
672 k ezy, exz, eyz, ezz,
673 l xcr, rx1, ry1, rz1,
674 m rx2, ry2, rz2, xin,
675 n ak, xm, xkm, xcm,
676 o xkr, vx1, vx2, vy1,
677 p vy2, vz1, vz2, nuvar,
678 q gbuf%VAR, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii(3)),
679 r gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), gbuf%FORINI(ii(1)),
680 s gbuf%FORINI(ii(2)), gbuf%FORINI(ii(3)), gbuf%FORINI(ii(4)), gbuf%FORINI(ii(5)),
681 t gbuf%FORINI(ii(6)), nft, stf, sanin,
682 u iresp, snpc)
683C
684 DO i=jft,jlt
685 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
686 ENDDO
687 CALL r2len3(
688 1 jft, jlt, gbuf%OFF, dt2t,
689 2 neltst, ityptst, sti, stir,
690 3 ms, in, msrt, dmelrt,
691 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
692 5 xin, xm, xkm, xcm,
693 6 xkr, nc1, nc2, jsms)
694 CALL rbilan(
695 1 gbuf%EINT, partsav, ixr, geo,
696 2 v, ipartr, gbuf%LENGTH(ii(1)),gresav,
697 3 grth, igrth, gbuf%OFF, nc1,
698 4 nc2, x, vr, itask,
699 5 nel, igre,sensors)
700 CALL r4tors(
701 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
702 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
703 3 h3d_data, nel)
704! preloading
705 IF (preld1>zero) THEN
706 DO i=jft,jlt
707 vl12(i) = (vx2(i)-vx1(i))*exx(i)+
708 1 (vy2(i)-vy1(i))*eyx(i)+(vz2(i)-vz1(i))*ezx(i)
709 ENDDO
710 CALL preload_axial(nel,preld1,gbuf%BPRELD,vl12,stf_f,gbuf%FOR)
711 gbuf%FOREP(jft:jlt) = gbuf%FOR(jft:jlt)
712 END IF
713 IF (iparit == 0) THEN
714 CALL r4cum3(
715 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
716 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
717 3 sti, stir, stifn, stifr,
718 4 fx1, fx2, fy1, fy2,
719 5 fz1, fz2, mx1, mx2,
720 6 my1, my2, mz1, mz2,
721 7 al, exx, eyx, ezx,
722 8 exy, eyy, ezy, exz,
723 9 eyz, ezz, nc1, nc2,
724 a nel)
725 ELSE
726 CALL r4cum3p(
727 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
728 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
729 3 fsky, fsky, iadr, fx1,
730 4 fx2, fy1, fy2, fz1,
731 5 fz2, mx1, mx2, my1,
732 6 my2, mz1, mz2, exx,
733 7 eyx, ezx, exy, eyy,
734 8 ezy, exz, eyz, ezz,
735 9 al, nel, nft)
736 ENDIF
737C=======================================================================
738 ELSEIF (igtyp == 25) THEN
739C=======================================================================
740 CALL r2coor3(
741 1 x, vr, ixr, xdp,
742 2 x1dp, x2dp, ngl, x1,
743 3 y1, z1, x2, y2,
744 4 z2, mgn, rx1, ry1,
745 5 rz1, rx2, ry2, rz2,
746 6 nc1, nc2, nel)
747 CALL r2sens3(
748 1 geo, gbuf%OFF, sensors%SENSOR_TAB, gbuf%TOTDEPL(ii(1)),
749 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
750 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
751 4 igeo, mgn, nel , nsensor )
752C
753 DO i=jft,jlt
754 IF (gbuf%OFF(i) /= -ten) THEN
755 off(i) = min(one,abs(gbuf%OFF(i)))
756 ELSE
757c spring may be activated by sensor and is actually inactive.
758 off(i) = zero
759 ENDIF
760 ENDDO
761C
762 CALL r4evec3(
763 1 gbuf%SKEW, v, exx2, eyx2,
764 2 ezx2, exy2, eyy2, ezy2,
765 3 exz2, eyz2, ezz2, al2dp,
766 4 x1dp, x2dp, al2, aldp,
767 5 gbuf%SKEW_ERR,ngl, al, exx,
768 6 eyx, ezx, exy, eyy,
769 7 ezy, exz, eyz, ezz,
770 8 rx1, ry1, rz1, rx2,
771 9 ry2, rz2, vx1, vx2,
772 a vy1, vy2, vz1, vz2,
773 b nc1, nc2, nel)
774 CALL r6def3(python,
775 1 skew, geo, gbuf%FOR(ii(1)), gbuf%FOR(ii(2)),
776 2 gbuf%FOR(ii(3)), gbuf%EINT, gbuf%TOTDEPL(ii(1)), gbuf%TOTDEPL(ii(2)),
777 3 gbuf%TOTDEPL(ii(3)), npf, tf, gbuf%OFF,
778 4 gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),gbuf%DEP_IN_COMP(ii(1)),
779 5 gbuf%DEP_IN_COMP(ii(2)),gbuf%DEP_IN_COMP(ii(3)),gbuf%FOREP(ii(1)), gbuf%FOREP(ii(2)),
780 6 gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)), gbuf%LENGTH(ii(3)),
781 7 gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%TOTROT(ii(1)),
782 8 gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),gbuf%ROT_IN_TENS(ii(2)),
783 9 gbuf%ROT_IN_TENS(ii(3)),gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)), gbuf%MOMEP(ii(3)),
784 a gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),anim,
785 b gbuf%POSX, gbuf%POSY, gbuf%POSZ, gbuf%POSXX,
786 c gbuf%POSYY, gbuf%POSZZ, gbuf%E6,
787 d nel, al2dp, exx2, eyx2,
788 e ezx2, exy2, eyy2, ezy2,
789 f exz2, eyz2, ezz2, igeo,
790 g gbuf%LENGTH_ERR, aldp, gbuf%YIELD(ii(1)), gbuf%YIELD(ii(2)),
791 h gbuf%YIELD(ii(3)), gbuf%YIELD(ii(4)), ngl, mgn,
792 i xcr, rx1, ry1, rz1,
793 j rx2, ry2, rz2, xin,
794 k ak, xm, xkm, xcm,
795 l xkr, vx1, vx2, vy1,
796 m vy2, vz1, vz2, nuvar,
797 n gbuf%VAR, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii(3)),
798 o gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), gbuf%FORINI(ii(1)),
799 p gbuf%FORINI(ii(2)), gbuf%FORINI(ii(3)), gbuf%FORINI(ii(4)), gbuf%FORINI(ii(5)),
800 q gbuf%FORINI(ii(6)), gbuf%RUPTCRIT, nft, stf,
801 r sanin, iresp, impl_s, idyna,
802 s snpc)
803C
804 DO i=jft,jlt
805 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
806 ENDDO
807C
808 CALL r2len3(
809 1 jft, jlt, gbuf%OFF, dt2t,
810 2 neltst, ityptst, sti, stir,
811 3 ms, in, msrt, dmelrt,
812 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
813 5 xin, xm, xkm, xcm,
814 6 xkr, nc1, nc2, jsms)
815 CALL rbilan(
816 1 gbuf%EINT, partsav, ixr, geo,
817 2 v, ipartr, gbuf%LENGTH(ii(1)),gresav,
818 3 grth, igrth, gbuf%OFF, nc1,
819 4 nc2, x, vr, itask,
820 5 nel, igre, sensors)
821 CALL r4tors(
822 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
823 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
824 3 h3d_data, nel)
825 IF (iparit == 0) THEN
826 CALL r4cum3(
827 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
828 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
829 3 sti, stir, stifn, stifr,
830 4 fx1, fx2, fy1, fy2,
831 5 fz1, fz2, mx1, mx2,
832 6 my1, my2, mz1, mz2,
833 7 al, exx, eyx, ezx,
834 8 exy, eyy, ezy, exz,
835 9 eyz, ezz, nc1, nc2,
836 a nel)
837 ELSE
838 CALL r4cum3p(
839 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
840 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
841 3 fsky, fsky, iadr, fx1,
842 4 fx2, fy1, fy2, fz1,
843 5 fz2, mx1, mx2, my1,
844 6 my2, mz1, mz2, exx,
845 7 eyx, ezx, exy, eyy,
846 8 ezy, exz, eyz, ezz,
847 9 al, nel, nft)
848 ENDIF
849C=======================================================================
850 ELSEIF (igtyp >= 29 .AND. igtyp <= 31) THEN
851C=======================================================================
852 CALL r4coor3(
853 1 x, vr, ixr, gbuf%SKEW,
854 2 ngl, x1, y1, z1,
855 3 x2, y2, z2, mgn,
856 4 rx1, ry1, rz1, rx2,
857 5 ry2, rz2, nc1, nc2,
858 6 nel)
859 CALL r5evec3(
860 1 gbuf%SKEW,v, ngl, al,
861 2 x1, y1, z1, x2,
862 3 y2, z2, exx, eyx,
863 4 ezx, exy, eyy, ezy,
864 5 exz, eyz, ezz, rx1,
865 6 ry1, rz1, rx2, ry2,
866 7 rz2, vx1, vx2, vy1,
867 8 vy2, vz1, vz2, nc1,
868 9 nc2, nel)
869
870 CALL r5def3(
871 1 al, gbuf%V_REPCVT(ii(1):), gbuf%V_REPCVT(ii(2):), gbuf%V_REPCVT(ii(3):),
872 2 gbuf%VR_REPCVT(ii(1):),gbuf%VR_REPCVT(ii(2):),gbuf%VR_REPCVT(ii(3):), fr_wave,
873 3 fr_w_e, gbuf%EINT, gbuf%FOR(ii(1):), gbuf%MOM(ii(1):),
874 4 gbuf%MOM(ii(2):), gbuf%MOM(ii(3):), gbuf%FOR(ii(2):), gbuf%FOR(ii(3):),
875 5 partsav, ipartr, exx, eyx,
876 6 ezx, exy, eyy, ezy,
877 7 exz, eyz, ezz, rx1,
878 8 ry1, rz1, rx2, ry2,
879 9 rz2, vx1, vx2, vy1,
880 a vy2, vz1, vz2, nc1,
881 b nc2, nel)
882C
883 DO i=jft,jlt
884 off(i)=min(one,abs(gbuf%OFF(i)))
885 ENDDO
886C
887 CALL set_spring_elnum(jft,jlt,ixr)
888C
889 IF( igtyp==29 .OR. igtyp==30 .OR. igtyp==31)THEN
890 DO i=1,nel
891 user_eint(i) = gbuf%EINT(i)
892
893 user_fx(i) = gbuf%FOR(ii(1)+i-1)
894 user_fy(i) = gbuf%FOR(ii(2)+i-1)
895 user_fz(i) = gbuf%FOR(ii(3)+i-1)
896C
897 user_momx(i) = gbuf%MOM(ii(1)+i-1)
898 user_momy(i) = gbuf%MOM(ii(2)+i-1)
899 user_momz(i) = gbuf%MOM(ii(3)+i-1)
900
901 user_v_repcvtx(i) = gbuf%V_REPCVT(ii(1)+i-1)
902 user_v_repcvty(i) = gbuf%V_REPCVT(ii(2)+i-1)
903 user_v_repcvtz(i) = gbuf%V_REPCVT(ii(3)+i-1)
904
905 user_vr_repcvtx(i) = gbuf%VR_REPCVT(ii(1)+i-1)
906 user_vr_repcvty(i) = gbuf%VR_REPCVT(ii(2)+i-1)
907 user_vr_repcvtz(i) = gbuf%VR_REPCVT(ii(3)+i-1)
908 ENDDO
909 ALLOCATE(user_uvar(nuvar*nel))
910 user_uvar(1:nuvar*nel)=gbuf%VAR(1:nuvar*nel)
911 ENDIF
912
913
914 IF (igtyp == 29) THEN
915
916 IF (userl_avail>0) THEN
917 CALL eng_userlib_ruser(igtyp,
918 1 nel ,i0 ,user_uvar ,nuvar ,
919 2 user_fx ,user_fy ,user_fz ,user_momx ,user_momy ,
920 3 user_momz ,user_eint ,off ,usti ,ustir ,
921 4 visi ,visir ,unused ,uiner ,dt1 ,
922 5 al ,user_v_repcvtx ,user_v_repcvty ,user_v_repcvtz ,user_vr_repcvtx,
923 6 user_vr_repcvty ,user_vr_repcvtz ,fr_w_e )
924 ELSE
925 ! ----------------
926 ! ERROR to be printed & exit
927 option='PROP/USER1 - SPRING'
928 size=len_trim(option)
929 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
930 CALL arret(2)
931 ! ----------------
932 ENDIF
933 ELSEIF (igtyp == 30) THEN
934 IF (userl_avail>0) THEN
935 CALL eng_userlib_ruser(igtyp,
936 1 nel ,i0 ,user_uvar ,nuvar ,
937 2 user_fx ,user_fy ,user_fz ,user_momx ,user_momy ,
938 3 user_momz ,user_eint ,off ,usti ,ustir ,
939 4 visi ,visir ,unused ,uiner ,dt1 ,
940 5 al ,user_v_repcvtx ,user_v_repcvty ,user_v_repcvtz ,user_vr_repcvtx,
941 6 user_vr_repcvty ,user_vr_repcvtz ,fr_w_e )
942 ELSE
943 ! ----------------
944 ! ERROR to be printed & exit
945 option='PROP/USER2 - SPRING'
946 size=len_trim(option)
947 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
948 CALL arret(2)
949 ! ----------------
950 ENDIF
951 ELSEIF (igtyp == 31) THEN
952 IF (userl_avail>0) THEN
953 CALL eng_userlib_ruser(igtyp,
954 1 nel ,i0 ,user_uvar ,nuvar ,
955 2 user_fx ,user_fy ,user_fz ,user_momx ,user_momy,
956 3 user_momz ,user_eint ,off ,usti ,ustir,
957 4 visi ,visir ,unused ,uiner ,dt1,
958 5 al ,user_v_repcvtx ,user_v_repcvty ,user_v_repcvtz ,user_vr_repcvtx,
959 6 user_vr_repcvty ,user_vr_repcvtz ,fr_w_e )
960 ELSE
961 ! ----------------
962 ! ERROR to be printed & exit
963 option='PROP/USER3 - SPRING'
964 size=len_trim(option)
965 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
966 CALL arret(2)
967 ! ----------------
968 ENDIF
969 ENDIF
970
971
972 IF( igtyp==29 .OR. igtyp==30 .OR. igtyp==31)THEN
973 DO i=1,nel
974 gbuf%EINT(i) = user_eint(i)
975
976 gbuf%FOR(ii(1)+i-1) = user_fx(i)
977 gbuf%FOR(ii(2)+i-1) = user_fy(i)
978 gbuf%FOR(ii(3)+i-1) = user_fz(i)
979C
980 gbuf%MOM(ii(1)+i-1) = user_momx(i)
981 gbuf%MOM(ii(2)+i-1) = user_momy(i)
982 gbuf%MOM(ii(3)+i-1) = user_momz(i)
983
984 gbuf%V_REPCVT(ii(1)+i-1) = user_v_repcvtx(i)
985 gbuf%V_REPCVT(ii(2)+i-1) = user_v_repcvty(i)
986 gbuf%V_REPCVT(ii(3)+i-1) = user_v_repcvtz(i)
987
988 gbuf%VR_REPCVT(ii(1)+i-1) = user_vr_repcvtx(i)
989 gbuf%VR_REPCVT(ii(2)+i-1) = user_vr_repcvty(i)
990 gbuf%VR_REPCVT(ii(3)+i-1) = user_vr_repcvtz(i)
991 ENDDO
992 gbuf%VAR(1:nuvar*nel) = user_uvar(1:nuvar*nel)
993 DEALLOCATE(user_uvar)
994 ENDIF
995C
996 DO i=jft,jlt
997 IF (off(i) < one) gbuf%OFF(i) = off(i)
998 ENDDO
999C
1000 CALL r5len3(
1001 1 jft, jlt, gbuf%OFF, dt2t,
1002 2 neltst, ityptst, sti, stir,
1003 3 ms, in, usti, ustir,
1004 4 visi, visir, gbuf%MASS, uiner,
1005 5 fr_wave, fr_w_e, gbuf%EINT, gbuf%FOR(ii(1)),
1006 6 gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%V_REPCVT(ii(1)),
1007 7 gbuf%V_REPCVT(ii(2)), gbuf%V_REPCVT(ii(3)), gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
1008 8 gbuf%VR_REPCVT(ii(3)),al, gbuf%FOR(ii(2)), gbuf%FOR(ii(3)),
1009 9 partsav, ipartr, msrt, dmelrt,
1010 a gbuf%G_DT, gbuf%DT, ngl, nc1,
1011 b nc2, jsms)
1012
1013 CALL r5bilan(
1014 1 gbuf%EINT,partsav, ixr, gbuf%MASS,
1015 2 v, ipartr, uiner, x,
1016 3 vr, gresav, grth, igrth,
1017 4 nc1, nc2, itask, iad,
1018 5 igre, nft, nel,sensors)
1019 CALL r4tors(
1020 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1021 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
1022 3 h3d_data, nel)
1023 IF (iparit == 0) THEN
1024 CALL r5cum3(
1025 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
1026 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
1027 3 sti, stir, stifn, stifr,
1028 4 fx1, fx2, fy1, fy2,
1029 5 fz1, fz2, mx1, mx2,
1030 6 my1, my2, mz1, mz2,
1031 7 gbuf%MOM(ii(4)),gbuf%MOM(ii(5)),al, exx,
1032 8 eyx, ezx, exy, eyy,
1033 9 ezy, exz, eyz, ezz,
1034 a nc1, nc2, nel)
1035 ELSE
1036 CALL r5cum3p(
1037 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1038 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
1039 3 fsky, fsky, iadr, fx1,
1040 4 fx2, fy1, fy2, fz1,
1041 5 fz2, mx1, mx2, my1,
1042 6 my2, mz1, mz2, gbuf%MOM(ii(4)),
1043 7 gbuf%MOM(ii(5)),exx, eyx, ezx,
1044 8 exy, eyy, ezy, exz,
1045 9 eyz, ezz, al, nel,
1046 a nft)
1047 ENDIF
1048C=======================================================================
1049 ELSEIF (igtyp == 32) THEN
1050C=======================================================================
1051 CALL r2coor3(
1052 1 x, vr, ixr, xdp,
1053 2 x1dp, x2dp, ngl, x1,
1054 3 y1, z1, x2, y2,
1055 4 z2, mgn, rx1, ry1,
1056 5 rz1, rx2, ry2, rz2,
1057 6 nc1, nc2, nel)
1058 CALL r4evec3(
1059 1 gbuf%SKEW, v, exx2, eyx2,
1060 2 ezx2, exy2, eyy2, ezy2,
1061 3 exz2, eyz2, ezz2, al2dp,
1062 4 x1dp, x2dp, al2, aldp,
1063 5 gbuf%SKEW_ERR,ngl, al, exx,
1064 6 eyx, ezx, exy, eyy,
1065 7 ezy, exz, eyz, ezz,
1066 8 rx1, ry1, rz1, rx2,
1067 9 ry2, rz2, vx1, vx2,
1068 a vy1, vy2, vz1, vz2,
1069 b nc1, nc2, nel)
1070 CALL r5def3(
1071 1 al, gbuf%V_REPCVT(ii(1)), gbuf%V_REPCVT(ii(2)), gbuf%V_REPCVT(ii(3)),
1072 2 gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),gbuf%VR_REPCVT(ii(3)),fr_wave,
1073 3 fr_w_e, gbuf%EINT, gbuf%FOR(ii(1)), gbuf%MOM(ii(1)),
1074 4 gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%FOR(ii(2)), gbuf%FOR(ii(3)),
1075 5 partsav, ipartr, exx, eyx,
1076 6 ezx, exy, eyy, ezy,
1077 7 exz, eyz, ezz, rx1,
1078 8 ry1, rz1, rx2, ry2,
1079 9 rz2, vx1, vx2, vy1,
1080 a vy2, vz1, vz2, nc1,
1081 b nc2, nel)
1082C
1083 nuvar = nint(geo(25,i0))
1084 DO i=jft,jlt
1085 off(i)=min(one,abs(gbuf%OFF(i)))
1086 ENDDO
1087C
1088 CALL ruser32(
1089 1 nel ,iout ,i0 ,gbuf%VAR ,nuvar ,
1090 2 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
1091 3 gbuf%MOM(ii(3)) ,gbuf%EINT ,off ,usti ,ustir ,
1092 4 visi ,visir ,unused ,uiner ,dt1 ,
1093 5 al ,gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),
1094 6 gbuf%VR_REPCVT(ii(2)),gbuf%VR_REPCVT(ii(3)),fr_w_e ,nsensor,sensors%SENSOR_TAB )
1095C
1096 DO i=jft,jlt
1097 IF (off(i) < one) gbuf%OFF(i) = off(i)
1098 ENDDO
1099C
1100 CALL r5len3(
1101 1 jft, jlt, gbuf%OFF, dt2t,
1102 2 neltst, ityptst, sti, stir,
1103 3 ms, in, usti, ustir,
1104 4 visi, visir, gbuf%MASS, uiner,
1105 5 fr_wave, fr_w_e, gbuf%EINT, gbuf%FOR(ii(1)),
1106 6 gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%V_REPCVT(ii(1)),
1107 7 gbuf%V_REPCVT(ii(2)), gbuf%V_REPCVT(ii(3)), gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
1108 8 gbuf%VR_REPCVT(ii(3)),al, gbuf%FOR(ii(2)), gbuf%FOR(ii(3)),
1109 9 partsav, ipartr, msrt, dmelrt,
1110 a gbuf%G_DT, gbuf%DT, ngl, nc1,
1111 b nc2, jsms)
1112
1113 CALL r5bilan(
1114 1 gbuf%EINT,partsav, ixr, gbuf%MASS,
1115 2 v, ipartr, uiner, x,
1116 3 vr, gresav, grth, igrth,
1117 4 nc1, nc2, itask, iad,
1118 5 igre, nft, nel, sensors)
1119 CALL r4tors(
1120 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1121 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
1122 3 h3d_data, nel)
1123 IF (iparit == 0) THEN
1124 CALL r4cum3(
1125 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
1126 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
1127 3 sti, stir, stifn, stifr,
1128 4 fx1, fx2, fy1, fy2,
1129 5 fz1, fz2, mx1, mx2,
1130 6 my1, my2, mz1, mz2,
1131 7 al, exx, eyx, ezx,
1132 8 exy, eyy, ezy, exz,
1133 9 eyz, ezz, nc1, nc2,
1134 a nel)
1135 ELSE
1136 CALL r4cum3p(
1137 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1138 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
1139 3 fsky, fsky, iadr, fx1,
1140 4 fx2, fy1, fy2, fz1,
1141 5 fz2, mx1, mx2, my1,
1142 6 my2, mz1, mz2, exx,
1143 7 eyx, ezx, exy, eyy,
1144 8 ezy, exz, eyz, ezz,
1145 9 al, nel, nft)
1146 ENDIF
1147C=======================================================================
1148 ELSEIF (igtyp == 33 .OR. igtyp == 45) THEN
1149C=======================================================================
1150C
1151 nuvar = nint(geo(25,i0))
1152 IF (igtyp == 45) flg_kj2 = 1
1153C
1154 CALL rgjoint(
1155 1 jft, jlt, ipartr, nel,
1156 2 nuvar, iout, i0, iadr,
1157 3 fsky, fsky, gbuf%OFF, gbuf%FOR(ii(1)),
1158 4 gbuf%FOR(ii(2)), gbuf%FOR(ii(3)), gbuf%EINT, gbuf%TOTDEPL(ii(1)),
1159 5 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)),
1160 6 gbuf%TOTROT(ii(3)), gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)),
1161 7 gbuf%VAR, stifn, stifr, ixr,
1162 8 tani, rby, x, v,
1163 9 vr, sti, stir, ms,
1164 a in, partsav, dt1, dt2t,
1165 b f, ar, fx1, fx2,
1166 c fy1, fy2, fz1, fz2,
1167 d mx1, mx2, my1, my2,
1168 e mz1, mz2, gresav, grth,
1169 f igrth, msrt, dmelrt, neltst,
1170 g ityptst, igtyp, sensors%SENSOR_TAB, nc1,
1171 h nc2, xdp, gbuf%LENGTH_ERR, h3d_data,
1172 i jsms, igre, nft, nsensor )
1173C=======================================================================
1174 ELSEIF (igtyp == 35 .OR. igtyp == 36) THEN
1175C=======================================================================
1176 CALL r4coor3(
1177 1 x, vr, ixr, gbuf%SKEW,
1178 2 ngl, x1, y1, z1,
1179 3 x2, y2, z2, mgn,
1180 4 rx1, ry1, rz1, rx2,
1181 5 ry2, rz2, nc1, nc2,
1182 6 nel)
1183 CALL r5evec3(
1184 1 gbuf%SKEW,v, ngl, al,
1185 2 x1, y1, z1, x2,
1186 3 y2, z2, exx, eyx,
1187 4 ezx, exy, eyy, ezy,
1188 5 exz, eyz, ezz, rx1,
1189 6 ry1, rz1, rx2, ry2,
1190 7 rz2, vx1, vx2, vy1,
1191 8 vy2, vz1, vz2, nc1,
1192 9 nc2, nel)
1193 CALL r5def3(
1194 1 al, gbuf%V_REPCVT(ii(1)), gbuf%V_REPCVT(ii(2)), gbuf%V_REPCVT(ii(3)),
1195 2 gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),gbuf%VR_REPCVT(ii(3)),fr_wave,
1196 3 fr_w_e, gbuf%EINT, gbuf%FOR(ii(1)), gbuf%MOM(ii(1)),
1197 4 gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%FOR(ii(2)), gbuf%FOR(ii(3)),
1198 5 partsav, ipartr, exx, eyx,
1199 6 ezx, exy, eyy, ezy,
1200 7 exz, eyz, ezz, rx1,
1201 8 ry1, rz1, rx2, ry2,
1202 9 rz2, vx1, vx2, vy1,
1203 a vy2, vz1, vz2, nc1,
1204 b nc2, nel)
1205C
1206 nuvar = nint(geo(25,i0))
1207 DO i=jft,jlt
1208 off(i)=min(one,abs(gbuf%OFF(i)))
1209 ENDDO
1210C
1211 IF (igtyp == 35) THEN
1212 CALL ruser35(
1213 1 nel ,iout ,i0 ,gbuf%VAR ,nuvar ,
1214 2 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
1215 3 gbuf%MOM(ii(3)) ,gbuf%EINT ,off ,usti ,ustir ,
1216 4 visi ,visir ,unused ,uiner ,dt1 ,
1217 5 al ,gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),
1218 6 gbuf%VR_REPCVT(ii(2)),gbuf%VR_REPCVT(ii(3)),fr_w_e )
1219 ELSEIF (igtyp == 36) THEN
1220 CALL ruser36(
1221 1 nel ,i0 ,gbuf%VAR ,nuvar ,fr_w_e ,
1222 2 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
1223 3 gbuf%MOM(ii(3)) ,gbuf%EINT ,off ,usti ,ustir ,
1224 4 visi ,visir ,unused ,uiner ,dt1 ,
1225 5 al ,gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),
1226 6 gbuf%VR_REPCVT(ii(2)),gbuf%VR_REPCVT(ii(3)))
1227 ENDIF
1228C
1229 DO i=jft,jlt
1230 IF (off(i) < one) gbuf%OFF(i) = off(i)
1231 ENDDO
1232C
1233 CALL r5len3(
1234 1 jft, jlt, gbuf%OFF, dt2t,
1235 2 neltst, ityptst, sti, stir,
1236 3 ms, in, usti, ustir,
1237 4 visi, visir, gbuf%MASS, uiner,
1238 5 fr_wave, fr_w_e, gbuf%EINT, gbuf%FOR(ii(1)),
1239 6 gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%V_REPCVT(ii(1)),
1240 7 gbuf%V_REPCVT(ii(2)), gbuf%V_REPCVT(ii(3)), gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
1241 8 gbuf%VR_REPCVT(ii(3)),al, gbuf%FOR(ii(2)), gbuf%FOR(ii(3)),
1242 9 partsav, ipartr, msrt, dmelrt,
1243 a gbuf%G_DT, gbuf%DT, ngl, nc1,
1244 b nc2, jsms)
1245
1246 CALL r5bilan(
1247 1 gbuf%EINT,partsav, ixr, gbuf%MASS,
1248 2 v, ipartr, uiner, x,
1249 3 vr, gresav, grth, igrth,
1250 4 nc1, nc2, itask, iad,
1251 5 igre, nft, nel, sensors)
1252 CALL r4tors(
1253 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1254 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
1255 3 h3d_data, nel)
1256 IF (iparit == 0) THEN
1257 CALL r5cum3(
1258 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
1259 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
1260 3 sti, stir, stifn, stifr,
1261 4 fx1, fx2, fy1, fy2,
1262 5 fz1, fz2, mx1, mx2,
1263 6 my1, my2, mz1, mz2,
1264 7 gbuf%MOM(ii(4)),gbuf%MOM(ii(5)),al, exx,
1265 8 eyx, ezx, exy, eyy,
1266 9 ezy, exz, eyz, ezz,
1267 a nc1, nc2, nel)
1268 ELSE
1269 CALL r5cum3p(
1270 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1271 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
1272 3 fsky, fsky, iadr, fx1,
1273 4 fx2, fy1, fy2, fz1,
1274 5 fz2, mx1, mx2, my1,
1275 6 my2, mz1, mz2, gbuf%MOM(ii(4)),
1276 7 gbuf%MOM(ii(5)),exx, eyx, ezx,
1277 8 exy, eyy, ezy, exz,
1278 9 eyz, ezz, al, nel,
1279 a nft)
1280 ENDIF
1281C=======================================================================
1282 ELSEIF (igtyp == 44) THEN
1283C=======================================================================
1284 CALL r4coor3(
1285 1 x, vr, ixr, gbuf%SKEW,
1286 2 ngl, x1, y1, z1,
1287 3 x2, y2, z2, mgn,
1288 4 rx1, ry1, rz1, rx2,
1289 5 ry2, rz2, nc1, nc2,
1290 6 nel)
1291 CALL r5evec3(
1292 1 gbuf%SKEW,v, ngl, al,
1293 2 x1, y1, z1, x2,
1294 3 y2, z2, exx, eyx,
1295 4 ezx, exy, eyy, ezy,
1296 5 exz, eyz, ezz, rx1,
1297 6 ry1, rz1, rx2, ry2,
1298 7 rz2, vx1, vx2, vy1,
1299 8 vy2, vz1, vz2, nc1,
1300 9 nc2, nel)
1301 CALL r5def3(
1302 1 al, gbuf%V_REPCVT(ii(1)), gbuf%V_REPCVT(ii(2)), gbuf%V_REPCVT(ii(3)),
1303 2 gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),gbuf%VR_REPCVT(ii(3)),fr_wave,
1304 3 fr_w_e, gbuf%EINT, gbuf%FOR(ii(1)), gbuf%MOM(ii(1)),
1305 4 gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%FOR(ii(2)), gbuf%FOR(ii(3)),
1306 5 partsav, ipartr, exx, eyx,
1307 6 ezx, exy, eyy, ezy,
1308 7 exz, eyz, ezz, rx1,
1309 8 ry1, rz1, rx2, ry2,
1310 9 rz2, vx1, vx2, vy1,
1311 a vy2, vz1, vz2, nc1,
1312 b nc2, nel)
1313C
1314 nuvar = nint(geo(25,i0))
1315 DO i=jft,jlt
1316 off(i)=min(one,abs(gbuf%OFF(i)))
1317 ENDDO
1318C
1319 CALL ruser44(
1320 1 nel ,iout ,i0 ,gbuf%VAR ,nuvar ,
1321 2 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
1322 3 gbuf%MOM(ii(3)) ,gbuf%EINT ,off ,usti ,ustir ,
1323 4 visi ,visir ,unused ,uiner ,dt1 ,
1324 5 al ,gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),
1325 6 gbuf%VR_REPCVT(ii(2)),gbuf%VR_REPCVT(ii(3)),fr_w_e )
1326C
1327 DO i=jft,jlt
1328 IF (off(i) < one) gbuf%OFF(i) = off(i)
1329 ENDDO
1330C
1331 CALL r5len3(
1332 1 jft, jlt, gbuf%OFF, dt2t,
1333 2 neltst, ityptst, sti, stir,
1334 3 ms, in, usti, ustir,
1335 4 visi, visir, gbuf%MASS, uiner,
1336 5 fr_wave, fr_w_e, gbuf%EINT, gbuf%FOR(ii(1)),
1337 6 gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%V_REPCVT(ii(1)),
1338 7 gbuf%V_REPCVT(ii(2)), gbuf%V_REPCVT(ii(3)), gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
1339 8 gbuf%VR_REPCVT(ii(3)),al, gbuf%FOR(ii(2)), gbuf%FOR(ii(3)),
1340 9 partsav, ipartr, msrt, dmelrt,
1341 a gbuf%G_DT, gbuf%DT, ngl, nc1,
1342 b nc2, jsms)
1343
1344 CALL r5bilan(
1345 1 gbuf%EINT,partsav, ixr, gbuf%MASS,
1346 2 v, ipartr, uiner, x,
1347 3 vr, gresav, grth, igrth,
1348 4 nc1, nc2, itask, iad,
1349 5 igre, nft, nel,sensors)
1350 CALL r4tors(
1351 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1352 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
1353 3 h3d_data, nel)
1354 IF (iparit == 0) THEN
1355 CALL r5cum3(
1356 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
1357 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
1358 3 sti, stir, stifn, stifr,
1359 4 fx1, fx2, fy1, fy2,
1360 5 fz1, fz2, mx1, mx2,
1361 6 my1, my2, mz1, mz2,
1362 7 gbuf%MOM(ii(4)),gbuf%MOM(ii(5)),al, exx,
1363 8 eyx, ezx, exy, eyy,
1364 9 ezy, exz, eyz, ezz,
1365 a nc1, nc2, nel)
1366 ELSE
1367 CALL r5cum3p(
1368 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1369 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
1370 3 fsky, fsky, iadr, fx1,
1371 4 fx2, fy1, fy2, fz1,
1372 5 fz2, mx1, mx2, my1,
1373 6 my2, mz1, mz2, gbuf%MOM(ii(4)),
1374 7 gbuf%MOM(ii(5)),exx, eyx, ezx,
1375 8 exy, eyy, ezy, exz,
1376 9 eyz, ezz, al, nel,
1377 a nft)
1378 ENDIF
1379C=======================================================================
1380 ELSEIF (igtyp == 46) THEN
1381C=======================================================================
1382 CALL r4coor3(
1383 1 x, vr, ixr, gbuf%SKEW,
1384 2 ngl, x1, y1, z1,
1385 3 x2, y2, z2, mgn,
1386 4 rx1, ry1, rz1, rx2,
1387 5 ry2, rz2, nc1, nc2,
1388 6 nel)
1389 CALL r5evec3(
1390 1 gbuf%SKEW,v, ngl, al,
1391 2 x1, y1, z1, x2,
1392 3 y2, z2, exx, eyx,
1393 4 ezx, exy, eyy, ezy,
1394 5 exz, eyz, ezz, rx1,
1395 6 ry1, rz1, rx2, ry2,
1396 7 rz2, vx1, vx2, vy1,
1397 8 vy2, vz1, vz2, nc1,
1398 9 nc2, nel)
1399 CALL r5def3(
1400 1 al, gbuf%V_REPCVT(ii(1)), gbuf%V_REPCVT(ii(2)), gbuf%V_REPCVT(ii(3)),
1401 2 gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),gbuf%VR_REPCVT(ii(3)),fr_wave,
1402 3 fr_w_e, gbuf%EINT, gbuf%FOR(ii(1)), gbuf%MOM(ii(1)),
1403 4 gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%FOR(ii(2)), gbuf%FOR(ii(3)),
1404 5 partsav, ipartr, exx, eyx,
1405 6 ezx, exy, eyy, ezy,
1406 7 exz, eyz, ezz, rx1,
1407 8 ry1, rz1, rx2, ry2,
1408 9 rz2, vx1, vx2, vy1,
1409 a vy2, vz1, vz2, nc1,
1410 b nc2, nel)
1411C
1412 nuvar = nint(geo(25,i0))
1413 DO i=jft,jlt
1414 off(i)=min(one,abs(gbuf%OFF(i)))
1415 ENDDO
1416C
1417 CALL ruser46(
1418 1 nel ,iout ,i0 ,gbuf%VAR ,nuvar ,
1419 2 gbuf%FOR(ii(1)) ,gbuf%FOR(ii(2)) ,gbuf%FOR(ii(3)) ,gbuf%MOM(ii(1)) ,gbuf%MOM(ii(2)) ,
1420 3 gbuf%MOM(ii(3)) ,gbuf%EINT ,off ,usti ,ustir ,
1421 4 visi ,visir ,unused ,uiner ,dt1 ,
1422 5 al ,gbuf%V_REPCVT(ii(1)) ,gbuf%V_REPCVT(ii(2)),gbuf%V_REPCVT(ii(3)),gbuf%VR_REPCVT(ii(1)),
1423 6 gbuf%VR_REPCVT(ii(2)),gbuf%VR_REPCVT(ii(3)),fr_w_e )
1424C
1425 DO i=jft,jlt
1426 IF (off(i) < one) gbuf%OFF(i) = off(i)
1427 ENDDO
1428C
1429 CALL r5len3(
1430 1 jft, jlt, gbuf%OFF, dt2t,
1431 2 neltst, ityptst, sti, stir,
1432 3 ms, in, usti, ustir,
1433 4 visi, visir, gbuf%MASS, uiner,
1434 5 fr_wave, fr_w_e, gbuf%EINT, gbuf%FOR(ii(1)),
1435 6 gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)), gbuf%V_REPCVT(ii(1)),
1436 7 gbuf%V_REPCVT(ii(2)), gbuf%V_REPCVT(ii(3)), gbuf%VR_REPCVT(ii(1)),gbuf%VR_REPCVT(ii(2)),
1437 8 gbuf%VR_REPCVT(ii(3)),al, gbuf%FOR(ii(2)), gbuf%FOR(ii(3)),
1438 9 partsav, ipartr, msrt, dmelrt,
1439 a gbuf%G_DT, gbuf%DT, ngl, nc1,
1440 b nc2, jsms)
1441
1442 CALL r5bilan(
1443 1 gbuf%EINT,partsav, ixr, gbuf%MASS,
1444 2 v, ipartr, uiner, x,
1445 3 vr, gresav, grth, igrth,
1446 4 nc1, nc2, itask, iad,
1447 5 igre, nft, nel,sensors)
1448 CALL r4tors(
1449 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1450 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
1451 3 h3d_data, nel)
1452 IF (iparit == 0) THEN
1453 CALL r5cum3(
1454 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
1455 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
1456 3 sti, stir, stifn, stifr,
1457 4 fx1, fx2, fy1, fy2,
1458 5 fz1, fz2, mx1, mx2,
1459 6 my1, my2, mz1, mz2,
1460 7 gbuf%MOM(ii(4)),gbuf%MOM(ii(5)),al, exx,
1461 8 eyx, ezx, exy, eyy,
1462 9 ezy, exz, eyz, ezz,
1463 a nc1, nc2, nel)
1464 ELSE
1465 CALL r5cum3p(
1466 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
1467 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
1468 3 fsky, fsky, iadr, fx1,
1469 4 fx2, fy1, fy2, fz1,
1470 5 fz2, mx1, mx2, my1,
1471 6 my2, mz1, mz2, gbuf%MOM(ii(4)),
1472 7 gbuf%MOM(ii(5)),exx, eyx, ezx,
1473 8 exy, eyy, ezy, exz,
1474 9 eyz, ezz, al, nel,
1475 a nft)
1476 ENDIF
1477C-----
1478 ENDIF ! IGTYP
1479C-----------------------------------------------
1480 RETURN
1481 END SUBROUTINE rforc3
1482
subroutine set_spring_elnum(jft, jlt, ixr)
Definition uaccess.F:704
#define min(a, b)
Definition macros.h:20
subroutine r1coor3(x, vr, ixr, xdp, x1dp, x2dp, ngl, mgm, nc1, nc2, nel)
Definition r1coor3.F:32
subroutine r1cum3(f, for, sti, stifn, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, ex, ey, ez, nc1, nc2, nel)
Definition r1cum3.F:35
subroutine r1cum3p(for, sti, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, ex, ey, ez, nel, nft)
Definition r1cum3p.F:35
subroutine r1def3(python, geo, f, al0, e, dl, npf, tf, off, dpl, fep, dpl2, anim, ipos, igeo, al0_err, x1dp, x2dp, v, yield, ngl, mgn, ex, ey, ez, xk, xm, xc, ak, nc1, nc2, nuvar, uvar, dl0, nel, nft, stf, sanin, iresp, snpc)
Definition r1def3.F:44
subroutine r1len3(jft, jlt, off, dt2t, neltst, ityptst, sti, ms, msrt, dmelrt, g_dt, dtel, ngl, xk, xm, xc, ak, nc1, nc2, jsms)
Definition r1len3.F:34
subroutine r1sens3(geo, off, sensor_tab, dx, x0, igeo, mgn, nel, nsensor)
Definition r1sens3.F:33
subroutine r1tors(for, tani, h3d_data, nel)
Definition r1tors.F:32
subroutine r26def3(python, f, e, dl, al0, dv0, fep, dpl2, ipos, geo, igeo, npf, tf, v, off, anim, fr_wave, al0_err, x1dp, x2dp, ngl, mgn, ex, ey, ez, xk, xm, xc, ak, nel, nft, iad, crit)
Definition r26def3.F:41
subroutine r27def3(python, f, e, dl, al0, ipos, geo, igeo, npf, tf, v, off, anim, al0_err, x1dp, x2dp, ngl, mgn, ex, ey, ez, xk, xm, xc, fscale, nel, nft, crit)
Definition r27def3.F:40
subroutine r2coor3(x, vr, ixr, xdp, x1dp, x2dp, ngl, x1, y1, z1, x2, y2, z2, mgm, rx1, ry1, rz1, rx2, ry2, rz2, nc1, nc2, nel)
Definition r2coor3.F:35
subroutine r2cum3(f, forx, fory, forz, xm, xmom, ymom, zmom, sti, stir, stifn, stifr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, geo, x1, y1, z1, x2, y2, z2, iequil, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nc1, nc2, nel)
Definition r2cum3.F:41
subroutine r2cum3p(forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, geo, x1, y1, z1, x2, y2, z2, iequil, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nel, nft)
Definition r2cum3p.F:41
subroutine r2def3(python, skew, geo, fx, fy, fz, e, dx, dy, dz, npf, tf, off, dpx, dpy, dpz, dpx2, dpy2, dpz2, fxep, fyep, fzep, x0, y0, z0, xmom, ymom, zmom, rx, ry, rz, rpx, rpy, rpz, xmep, ymep, zmep, rpx2, rpy2, rpz2, anim, iposx, iposy, iposz, iposxx, iposyy, iposzz, v, igeo, e6, critnew, nel, x0_err, x1dp, x2dp, yieldx, yieldy, yieldz, yieldx2, yieldy2, yieldz2, ngl, xkr, mgn, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, xcr, rx1, ry1, rz1, rx2, ry2, rz2, xin, ak, xm, xkm, xcm, nc1, nc2, nuvar, uvar, dx0, dy0, dz0, rx0, ry0, rz0, iequil, skew_id, nft, stf, sanin, iresp, snpc)
Definition r2def3.F:61
subroutine r2len3(jft, jlt, off, dt2t, neltst, ityptst, sti, stir, ms, in, msrt, dmelrt, g_dt, dtel, ngl, xcr, xin, xm, xkm, xcm, xkr, nc1, nc2, jsms)
Definition r2len3.F:38
subroutine r2sens3(geo, off, sensor_tab, dx, dy, dz, x0, y0, z0, rx, ry, rz, igeo, mgn, nel, nsensor)
Definition r2sens3.F:35
subroutine r2tors(forx, fory, forz, xmom, ymom, zmom, tani, h3d_data, nel)
Definition r2tors.F:35
subroutine r3bilan(eint, partsav, ixr, geo, v, ipartr, al0, gresav, grth, igrth, nc1, nc2, nc3, x, vr, itask, nel, igre, sensors)
Definition r3bilan.F:39
subroutine r3coor3(x, vr, ixr, xdp, x1dp, x2dp, x3dp, ngl, mgn, nc1, nc2, nc3, nel)
Definition r3coor3.F:33
subroutine r3cum3(f, for, sti, stifn, df, ex, ey, ez, ex2, ey2, ez2, nc1, nc2, nc3, nel)
Definition r3cum3.F:33
subroutine r3cum3p(for, sti, fsky, fskyv, iadr, df, ex, ey, ez, ex2, ey2, ez2, nel, nft)
Definition r3cum3p.F:33
subroutine r3def3(python, geo, f, al0, e, dl, npf, tf, off, dpl, fep, dpx2, dfs, v, ixr, df, anim, ipos, igeo, al0_err, x1dp, x2dp, x3dp, yield, table, inifric, ngl, mgn, ex, ey, ez, xk, xm, xc, ak, ex2, ey2, ez2, nc1, nc2, nc3, nuvar, uvar, dl0, nel, nft, stf, sanin, iresp, snpc)
Definition r3def3.F:50
subroutine r3len3(jft, jlt, off, dt2t, neltst, ityptst, sti, ms, msrt, dmelrt, g_dt, dtel, ngl, xk, xm, xc, ak, nc1, nc2, nc3, jsms)
Definition r3len3.F:35
subroutine r3tors(for, df, tani, h3d_data, nel)
Definition r3tors.F:33
subroutine r4coor3(x, vr, ixr, rloc, ngl, x1, y1, z1, x2, y2, z2, mgn, rx1, ry1, rz1, rx2, ry2, rz2, nc1, nc2, nel)
Definition r4coor3.F:35
subroutine r4cum3(f, forx, fory, forz, xm, xmom, ymom, zmom, sti, stir, stifn, stifr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, al, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nc1, nc2, nel)
Definition r4cum3.F:41
subroutine r4cum3p(forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, al, nel, nft)
Definition r4cum3p.F:40
subroutine r4def3(python, skew, geo, fx, fy, fz, e, dx, dy, dz, npf, tf, off, dpx, dpy, dpz, dpx2, dpy2, dpz2, fxep, fyep, fzep, x0, y0, z0, xmom, ymom, zmom, rx, ry, rz, rpx, rpy, rpz, xmep, ymep, zmep, rpx2, rpy2, rpz2, anim, posx, posy, posz, posxx, posyy, poszz, fr_wave, e6, nel, exx2, eyx2, ezx2, exy2, eyy2, ezy2, exz2, eyz2, ezz2, al2dp, igeo, crit_new, x0_err, aldp, yieldx, yieldy, yieldz, yieldx2, yieldy2, yieldz2, ngl, mgn, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, xcr, rx1, ry1, rz1, rx2, ry2, rz2, xin, ak, xm, xkm, xcm, xkr, vx1, vx2, vy1, vy2, vz1, vz2, nuvar, uvar, dx0, dy0, dz0, rx0, ry0, rz0, fx0, fy0, fz0, xmom0, ymom0, zmom0, nft, stf, sanin, iresp, snpc)
Definition r4def3.F:65
subroutine r4evec3(rloc, v, exx2, eyx2, ezx2, exy2, eyy2, ezy2, exz2, eyz2, ezz2, al2dp, x1dp, x2dp, al2, aldp, rloc_err, ngl, al, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, rx1, ry1, rz1, rx2, ry2, rz2, vx1, vx2, vy1, vy2, vz1, vz2, nc1, nc2, nel)
Definition r4evec3.F:42
subroutine r4tors(forx, fory, forz, xmom, ymom, zmom, tani, al, h3d_data, nel)
Definition r4tors.F:36
subroutine r5bilan(eint, partsav, ixr, umas, v, ipartr, uiner, x, vr, gresav, grth, igrth, nc1, nc2, itask, iad, igre, nft, nel, sensors)
Definition r5bilan.F:39
subroutine r5cum3(f, forx, fory, forz, xm, xmom, ymom, zmom, sti, stir, stifn, stifr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, mom1y, mom1z, al, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nc1, nc2, nel)
Definition r5cum3.F:39
subroutine r5cum3p(forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, mom1y, mom1z, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, al, nel, nft)
Definition r5cum3p.F:39
subroutine r5def3(xl, vx2l, ry1l, rz1l, rx2l, ry2l, rz2l, fr_wave, fr_w_e, eint, fx, xmom, ymom, zmom, fy, fz, partsav, ipartr, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, rx1, ry1, rz1, rx2, ry2, rz2, vx1, vx2, vy1, vy2, vz1, vz2, nc1, nc2, nel)
Definition r5def3.F:40
subroutine r5evec3(rloc, v, ngl, al, x1, y1, z1, x2, y2, z2, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, rx1, ry1, rz1, rx2, ry2, rz2, vx1, vx2, vy1, vy2, vz1, vz2, nc1, nc2, nel)
Definition r5evec3.F:38
subroutine r5len3(jft, jlt, off, dt2t, neltst, ityptst, sti, stir, ms, in, usti, ustir, visi, visir, umas, uiner, fr_wave, fr_w_e, eint, fx, xmom, ymom, zmom, vx, ry1, rz1, rx, ry2, rz2, xl, fy, fz, partsav, ipartr, msrt, dmelrt, g_dt, dtel, ngl, nc1, nc2, jsms)
Definition r5len3.F:40
subroutine r6def3(python, skew, geo, fx, fy, fz, e, dx, dy, dz, npf, tf, off, dpx, dpy, dpz, dpx2, dpy2, dpz2, fxep, fyep, fzep, x0, y0, z0, xmom, ymom, zmom, rx, ry, rz, rpx, rpy, rpz, xmep, rmep, zmep, rpx2, rpy2, rpz2, anim, posx, posy, posz, posxx, posyy, poszz, e6, nel, al2dp, exx2, eyx2, ezx2, exy2, eyy2, ezy2, exz2, eyz2, ezz2, igeo, x0_err, aldp, yieldx, yieldy, yieldx2, yieldy2, ngl, mgn, xcr, rx1, ry1, rz1, rx2, ry2, rz2, xin, ak, xm, xkm, xcm, xkr, vx1, vx2, vy1, vy2, vz1, vz2, nuvar, uvar, dx0, dy0, dz0, rx0, ry0, rz0, fx0, fy0, fz0, xmom0, ymom0, zmom0, critnew, nft, stf, sanin, iresp, impl_s, idyna, snpc)
Definition r6def3.F:63
subroutine rbilan(eint, partsav, ixr, geo, v, ipartr, al0, gresav, grth, igrth, off_dum, nc1, nc2, x, vr, itask, nel, igre, sensors)
Definition rbilan.F:39
subroutine rforc3(python, elbuf_str, jft, jlt, nel, mtn, igeo, geo, ixr, x, table, xdp, f, npf, tf, skew, flg_kj2, vr, ar, v, dt2t, neltst, ityptst, stifn, stifr, ms, in, fsky, iadr, sensors, offset, anim, partsav, ipartr, tani, fr_wave, bufmat, bufgeo, pm, rby, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, gresav, grth, igrth, msrt, dmelrt, itask, h3d_data, jsms, nft, iad, igre, preld1, stf_f, stf, sanin, iresp, impl_s, idyna, snpc)
Definition rforc3.F:104
subroutine rgjoint(jft, jlt, ipartr, nel, nuvar, iout, iprop, iadr, fsky, fskyv, off, forx, fory, forz, e, dx, dy, dz, rx, ry, rz, xmom, ymom, zmom, uvar, stifn, stifr, ixr, tani, rby, x, vx, vr, sti, stir, ms, in, partsav, dt1, dt2t, f, ar, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, gresav, grth, igrth, msrt, dmelrt, neltst, ityptst, igtyp, sensor_tab, nc1, nc2, xdp, x0_err, h3d_data, jsms, igre, nft, nsensor)
Definition rgjoint.F:58
subroutine rsens_nic(nel, ixr, for, mom, skew, nsensor, sensor_tab)
Definition rsens_nic.F:32
subroutine ruser32(nel, iout, iprop, uvar, nuvar, fx, fy, fz, xmom, ymom, zmom, e, off, stifm, stifr, viscm, viscr, mass, xiner, dt, xl, vx, ry1, rz1, rx, ry2, rz2, fr_wave, nsensor, sensor_tab)
Definition ruser32.F:44
subroutine ruser35(nel, iout, iprop, uvar, nuvar, fx, fy, fz, xmom, ymom, zmom, e, off, stifm, stifr, viscm, viscr, mass, xiner, dt, xl, vx, ry1, rz1, rx, ry2, rz2, fr_wave)
Definition ruser35.F:41
subroutine ruser36(nel, iprop, uvar, nuvar, fr_wave, fx, fy, fz, xmom, ymom, zmom, e, off, stifm, stifr, viscm, viscr, mass, xiner, dt, xl, vx, ry1, rz1, rx, ry2, rz2)
Definition ruser36.F:41
subroutine ruser44(nel, iout, iprop, uvar, nuvar, fx, fy, fz, xmom, ymom, zmom, e, off, stifm, stifr, viscm, viscr, mass, xiner, dt, xl, vx, ry1, rz1, rx, ry2, rz2, fr_wave_e)
Definition ruser44.F:41
subroutine ruser46(nel, iout, iprop, uvar, nuvar, fx, fy, fz, xmom, ymom, zmom, e, off, stifm, stifr, viscm, viscr, mass, xiner, dt, xl, vx, ry1, rz1, rx, ry2, rz2, fr_wave)
Definition ruser46.F:41
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 arret(nn)
Definition arret.F:87