OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i16buce.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "units_c.inc"
#include "warn_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "com08_c.inc"
#include "task_c.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i16buce (nsv, ixs, ixs16, ixs20, nelem, nme, mwa, nsn, cand_e, cand_n, noint, i_stok_glob, tzinf, minbox, eminx, xsav, itask, x, v, a, mx_cand, ixs10, esh_t)

Function/Subroutine Documentation

◆ i16buce()

subroutine i16buce ( integer, dimension(*) nsv,
integer, dimension(nixs,*) ixs,
integer, dimension(8,*) ixs16,
integer, dimension(12,*) ixs20,
integer, dimension(*) nelem,
integer nme,
integer, dimension(*) mwa,
integer nsn,
integer, dimension(*) cand_e,
integer, dimension(*) cand_n,
integer noint,
integer i_stok_glob,
tzinf,
minbox,
eminx,
xsav,
integer itask,
x,
v,
a,
integer mx_cand,
integer, dimension(6,*) ixs10,
integer esh_t )

Definition at line 32 of file i16buce.F.

38 use element_mod , only : nixs
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43#include "comlock.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47#include "units_c.inc"
48#include "warn_c.inc"
49#include "com01_c.inc"
50#include "com04_c.inc"
51#include "com08_c.inc"
52#include "task_c.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56 INTEGER NME, NSN, NOINT,ITASK,MX_CAND,
57 . ESH_T, I_STOK_GLOB
58 INTEGER CAND_E(*),CAND_N(*),IXS(NIXS,*),IXS16(8,*),
59 . NSV(*),MWA(*),NELEM(*),IXS20(12,*),IXS10(6,*)
60C REAL
61 my_real
62 . TZINF,MINBOX
63 my_real
64 . X(3,*),EMINX(6,*),XSAV(3,*),V(3,*) ,A(3,*)
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68C
69 INTEGER I, J, K, CONT,NB_N_B ,NSNF,NSNL,
70 . IP1, IP2, IP21, IP22, IP31, MAXSIZ,
71 . NE,N8,N10,N20,N16
72C-----------------------------------------------
73C S o u r c e L i n e s
74C-----------------------------------------------
75 IF (DEBUG(3)>=1) THEN
76#include "lockon.inc"
77 WRITE(ISTDO,*)'** NEW SORT FOR INTERFACE NUMBER ',NOINT,
78 . ' AT CYCLE ',NCYCLE
79 WRITE(IOUT,*)'** NEW SORT FOR INTERFACE NUMBER ',NOINT,
80 . ' AT CYCLE ',NCYCLE
81#include "lockoff.inc"
82 ENDIF
83C-----------------------------------------------
84 NSNF = 1 + ITASK*NSN / NTHREAD
85 NSNL = (ITASK+1)*NSN / NTHREAD
86 DO I=NSNF,NSNL
87 J=NSV(I)
88 XSAV(1,J) = X(1,J)+DT2*(V(1,J)+DT12*A(1,J))
89 XSAV(2,J) = X(2,J)+DT2*(V(2,J)+DT12*A(2,J))
90 XSAV(3,J) = X(3,J)+DT2*(V(3,J)+DT12*A(3,J))
91 END DO
92 DO K=1,8
93 DO I=1+ESH_T,NME+ESH_T
94 J=IXS(K+1,NELEM(I))
95 XSAV(1,J) = X(1,J)+DT2*(V(1,J)+DT12*A(1,J))
96 XSAV(2,J) = X(2,J)+DT2*(V(2,J)+DT12*A(2,J))
97 XSAV(3,J) = X(3,J)+DT2*(V(3,J)+DT12*A(3,J))
98 ENDDO
99 ENDDO
100 DO I=1+ESH_T,NME+ESH_T
101 NE=NELEM(I)
102 N8 = NE
103 N10 = N8-NUMELS8
104 N20 = N10-NUMELS10
105 N16 = N20-NUMELS20
106 IF(N16>0)THEN
107 DO K=1,8
108 J=IXS16(K,N16)
109 XSAV(1,J) = X(1,J)+DT2*(V(1,J)+DT12*A(1,J))
110 XSAV(2,J) = X(2,J)+DT2*(V(2,J)+DT12*A(2,J))
111 XSAV(3,J) = X(3,J)+DT2*(V(3,J)+DT12*A(3,J))
112 ENDDO
113 ELSEIF(N20>0)THEN
114 DO K=1,12
115 J=IXS20(K,N20)
116 IF(J/=0)THEN
117 XSAV(1,J) = X(1,J)+DT2*(V(1,J)+DT12*A(1,J))
118 XSAV(2,J) = X(2,J)+DT2*(V(2,J)+DT12*A(2,J))
119 XSAV(3,J) = X(3,J)+DT2*(V(3,J)+DT12*A(3,J))
120 ENDIF
121 ENDDO
122 ELSEIF(N10>0)THEN
123 DO K=1,6
124 J=IXS10(K,N10)
125 XSAV(1,J) = X(1,J)+DT2*(V(1,J)+DT12*A(1,J))
126 XSAV(2,J) = X(2,J)+DT2*(V(2,J)+DT12*A(2,J))
127 XSAV(3,J) = X(3,J)+DT2*(V(3,J)+DT12*A(3,J))
128 ENDDO
129 ENDIF
130 ENDDO
131C-----------------------------------------------
132 NB_N_B = 1
133C End initialization
134C-----------------------------------------------
135C
136C-----2- sorting by boxes of elements and nodes
137C
138C-----------------------------------------------
139C if there is not enough memory for the stacks, we restart the sorting
140C by incrementing nb_n_b (number of nodes per finished box)
141C POINTEUR NOM TAILLE
142C P0........ NSN + 3
143C P1........Elt Bas Pile NME
144C P2........Elt PILE 2*NME
145C P21.......BPN NSN
146C P22.......PN NSN
147 MAXSIZ = 3*(NME+100)
148 IP1 = 1
149 IP2 = IP1+NME+100
150 IP21= IP2+MAXSIZ
151 IP22= IP21+NSN
152 IP31= IP22+NSN
153C-----------------------------------------------
154C new sorting phase
155C-----------------------------------------------
156 CONT = 1
157C-----------------------------------------------
158C loop over retris
159C-----------------------------------------------
160 DO WHILE (CONT/=0)
161 CALL I16TRI(
162 1 MWA(IP1),MWA(IP2) ,MWA(IP21),MWA(IP22),NSN ,
163 2 TZINF ,IXS ,IXS16 ,IXS20 ,NELEM ,
164 3 NSV ,MAXSIZ ,CAND_N ,CAND_E ,MINBOX ,
165 5 CONT ,NB_N_B ,EMINX ,I_STOK_GLOB,NME ,
166 6 ITASK ,NOINT ,X ,V ,A ,
167 7 MX_CAND ,IXS10 ,ESH_T )
168 ENDDO
169C
170 RETURN