OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i16main.F File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine i16main (nin, ipari, intbuf_tab, x, v, a, itask, igrnod, eminx, wat, ms, iadll, lll, jll, sll, xll, n_mul_mx, ixs, ixs16, ixs20, nkmax, ixs10, comntag, igrbric)

Function/Subroutine Documentation

◆ i16main()

subroutine i16main ( integer nin,
integer, dimension(npari,ninter) ipari,
type(intbuf_struct_), dimension(*) intbuf_tab,
x,
v,
a,
integer itask,
type (group_), dimension(ngrnod) igrnod,
eminx,
wat,
ms,
integer, dimension(*) iadll,
integer, dimension(*) lll,
integer, dimension(*) jll,
integer, dimension(*) sll,
xll,
integer n_mul_mx,
integer, dimension(nixs,*) ixs,
integer, dimension(8,*) ixs16,
integer, dimension(12,*) ixs20,
integer nkmax,
integer, dimension(6,*) ixs10,
integer, dimension(*) comntag,
type (group_), dimension(ngrbric) igrbric )

Definition at line 39 of file i16main.F.

45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE intbufdef_mod
49 USE groupdef_mod
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C
53C-------------------------------------------------------------------------------
54C NOM DIMENSION DESCRIPTION E/S
55C-------------------------------------------------------------------------------
56C
57C NIN 1 NUMERO INTERFACE E
58C
59C IPARI NPARI,NINTER PARAMETRES D'INTERFACE E
60C
61C X 3,NUMNOD COORDONNEES E
62C
63C V 3,NUMNOD VITESSES E
64C
65C EMINX 6*NME<6*NUMELS MIN MAX DE CHAQUE ELEMENT TMP_GLOBAL
66C
67C
68C-----------------------------------------------
69C I m p l i c i t T y p e s
70C-----------------------------------------------
71#include "implicit_f.inc"
72C-----------------------------------------------
73C C o m m o n B l o c k s
74C-----------------------------------------------
75#include "com04_c.inc"
76#include "com08_c.inc"
77#include "param_c.inc"
78#include "task_c.inc"
79
80 COMMON /i16tmp/size
82 . SIZE
83C-----------------------------------------------
84C D u m m y A r g u m e n t s
85C-----------------------------------------------
86 INTEGER NIN,ITASK ,N_MUL_MX ,NKMAX
87 INTEGER IPARI(NPARI,NINTER),
88 . IADLL(*) ,LLL(*) ,JLL(*) ,SLL(*) ,
89 . IXS(NIXS,*) ,IXS16(8,*) ,IXS20(12,*) ,IXS10(6,*),
90 . COMNTAG(*)
91C REAL
92 my_real
93 . x(3,*), v(3,*), a(3,*), ms(*),eminx(*),wat(*),
94 . xll(*)
95
96 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
97 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
98 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
99C-----------------------------------------------
100C L o c a l V a r i a b l e s
101C-----------------------------------------------
102 INTEGER NSN,NME,NAD,EAD,
103 . NME_T,ESH_T,IGN,IGE,MULTIMP,NOINT,I,MX_CAND,itri
104C REAL
105 my_real
106 . startt, stopt,xx,xy,xz,tzinf,minbox
107 SAVE itri
108 data itri/0/
109C-----------------------------------------------
110C S o u r c e L i n e s
111C-----------------------------------------------
112 noint = ipari(15,nin)
113 multimp = ipari(23,nin)
114 ign = ipari(36,nin)
115 ige = ipari(34,nin)
116 nsn =igrnod(ign)%NENTITY
117 nme =igrbric(ige)%NENTITY
118C
119 mx_cand=multimp*nsn
120 startt = intbuf_tab(nin)%VARIABLES(3)
121 stopt = intbuf_tab(nin)%VARIABLES(11)
122 IF(startt>tt) RETURN
123 IF(tt>stopt) RETURN
124C -------------------------------------------------------------
125 nme_t=nme/nthread
126 esh_t = itask*nme_t
127 IF(itask==nthread-1)nme_t=nme-(nthread-1)*(nme/nthread)
128 SIZE = zero
129 intbuf_tab(nin)%XSLVG(1) = -ep30
130 intbuf_tab(nin)%XSLVG(2) = -ep30
131 intbuf_tab(nin)%XSLVG(3) = -ep30
132 intbuf_tab(nin)%XSLVG(4) = ep30
133 intbuf_tab(nin)%XSLVG(5) = ep30
134 intbuf_tab(nin)%XSLVG(6) = ep30
135 intbuf_tab(nin)%XMSRG(1) = -ep30
136 intbuf_tab(nin)%XMSRG(2) = -ep30
137 intbuf_tab(nin)%XMSRG(3) = -ep30
138 intbuf_tab(nin)%XMSRG(4) = ep30
139 intbuf_tab(nin)%XMSRG(5) = ep30
140 intbuf_tab(nin)%XMSRG(6) = ep30
141C -------------------------------------------------------------
142 CALL my_barrier
143C=======================================================================
144C TEST pour savoir s'il faut retrier + initialisation
145C=======================================================================
146 CALL i16crit(
147 1 x ,igrnod(ign)%ENTITY,igrbric(ige)%ENTITY ,nsn ,eminx ,
148 2 nme ,itask ,intbuf_tab(nin)%XSAV ,ixs ,ixs16 ,
149 3 ixs20 ,ixs10 ,v ,a ,intbuf_tab(nin)%XMSRG,
150 4 intbuf_tab(nin)%XSLVG )
151
152C -------------------------------------------------------------
153 CALL my_barrier
154C -------------------------------------------------------------
155C error in the estimation formula
156 tzinf = intbuf_tab(nin)%VARIABLES(4) * SIZE / nme / 6
157 minbox = intbuf_tab(nin)%VARIABLES(5) * SIZE / nme / 6
158 xx = max(intbuf_tab(nin)%XSLVG(1)-intbuf_tab(nin)%XMSRG(4),
159 * intbuf_tab(nin)%XMSRG(1)-intbuf_tab(nin)%XSLVG(4))
160 xy = max(intbuf_tab(nin)%XSLVG(2)-intbuf_tab(nin)%XMSRG(5),
161 * intbuf_tab(nin)%XMSRG(2)-intbuf_tab(nin)%XSLVG(5))
162 xz = max(intbuf_tab(nin)%XSLVG(3)-intbuf_tab(nin)%XMSRG(6),
163 * intbuf_tab(nin)%XMSRG(3)-intbuf_tab(nin)%XSLVG(6))
164C -------------------------------------------------------------
165 IF(xx**2 + xy**2 + xz**2 >= tzinf**2) THEN
166C=======================================================================
167C TRI
168C=======================================================================
169 ipari(35,nin) = 0
170C -------------------------------------------------------------
171 CALL my_barrier
172C -------------------------------------------------------------
173 CALL i16buce(
174 1 igrnod(ign)%ENTITY,ixs ,ixs16 ,ixs20 ,igrbric(ige)%ENTITY ,
175 2 nme_t ,wat ,nsn ,intbuf_tab(nin)%CAND_E,intbuf_tab(nin)%CAND_N,
176 3 noint ,ipari(35,nin) ,tzinf ,minbox ,eminx ,
177 4 intbuf_tab(nin)%XSAV,itask ,x ,v ,a ,
178 5 mx_cand ,ixs10 ,esh_t)
179C -------------------------------------------------------------
180 CALL my_barrier
181C -------------------------------------------------------------
182 ENDIF
183C=======================================================================
184C CONTACT
185C=======================================================================
186 CALL i8lagm(
187 1 x ,v ,lll ,jll ,sll ,
188 2 xll ,intbuf_tab(nin)%CAND_N,intbuf_tab(nin)%CAND_E,ipari(35,nin),ixs ,
189 3 iadll ,eminx ,igrnod(ign)%ENTITY,igrbric(ige)%ENTITY,
190 4 n_mul_mx ,itask ,a ,ipari(30,nin),
191 5 nin ,nkmax ,comntag )
192 CALL i10lagm(
193 1 x ,v ,lll ,jll ,sll ,
194 2 xll ,intbuf_tab(nin)%CAND_N,intbuf_tab(nin)%CAND_E,ipari(35,nin),ixs ,
195 3 ixs10 ,iadll ,eminx ,igrnod(ign)%ENTITY,igrbric(ige)%ENTITY,
196 4 n_mul_mx ,itask ,a ,ipari(30,nin),
197 5 nin ,nkmax ,comntag )
198 CALL i16lagm(
199 1 x ,v ,lll ,jll ,sll ,
200 2 xll ,intbuf_tab(nin)%CAND_N,intbuf_tab(nin)%CAND_E,ipari(35,nin),ixs ,
201 3 ixs16 ,iadll ,eminx ,igrnod(ign)%ENTITY,igrbric(ige)%ENTITY,
202 4 n_mul_mx ,itask ,a ,ipari(30,nin),
203 5 nin ,nkmax ,comntag )
204 CALL i20lagm(
205 1 x ,v ,lll ,jll ,sll ,
206 2 xll ,intbuf_tab(nin)%CAND_N,intbuf_tab(nin)%CAND_E,ipari(35,nin),ixs ,
207 3 ixs20 ,iadll ,eminx ,igrnod(ign)%ENTITY,igrbric(ige)%ENTITY,
208 4 n_mul_mx ,itask ,a ,ipari(30,nin),
209 5 nin ,nkmax ,comntag )
210!
211 CALL my_barrier
212!
213 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine i10lagm(x, v, lll, jll, sll, xll, candn, cande, i_stok, ixs, ixs10, iadll, eminx, nsv, nelem, n_mul_mx, itask, a, itied, nint, nkmax, comntag)
Definition i10lagm.F:35
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)
Definition i16buce.F:36
subroutine i16crit(x, nsv, nelem, nsn, eminx, nme, itask, xsav, ixs, ixs16, ixs20, ixs10, v, a, xmsrg, xslvg)
Definition i16crit.F:40
subroutine i16lagm(x, v, lll, jll, sll, xll, candn, cande, i_stok, ixs, ixs16, iadll, eminx, nsv, nelem, n_mul_mx, itask, a, itied, nint, nkmax, comntag)
Definition i16lagm.F:35
subroutine i20lagm(x, v, lll, jll, sll, xll, candn, cande, i_stok, ixs, ixs20, iadll, eminx, nsv, nelem, n_mul_mx, itask, a, itied, nint, nkmax, comntag)
Definition i20lagm.F:35
subroutine i8lagm(x, v, lll, jll, sll, xll, candn, cande, i_stok, ixs, iadll, eminx, nsv, nelem, n_mul_mx, itask, a, itied, nint, nkmax, comntag)
Definition i8lagm.F:35
#define max(a, b)
Definition macros.h:21
subroutine my_barrier
Definition machine.F:31