OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
lecins.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!|| lecins ../starter/source/interfaces/interf1/lecins.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| elty_surf ../starter/source/interfaces/interf1/lecins.F
30!|| fretitl2 ../starter/source/starter/freform.F
31!|| i11edge ../starter/source/interfaces/inter3d1/i11edge.F
32!|| i20surfi ../starter/source/interfaces/inter3d1/i20surfi.F
33!|| i24surfi ../starter/source/interfaces/inter3d1/i24surfi.F
34!|| i25surfi ../starter/source/interfaces/inter3d1/i25surfi.F
35!|| i2_surfi ../starter/source/interfaces/inter3d1/i2_surfi.F90
36!|| ingrbric ../starter/source/interfaces/interf1/ingrbric.F
37!|| ingrbric_centroids ../starter/source/interfaces/interf1/ingrbric_centroids.F
38!|| ingrbric_nodes ../starter/source/interfaces/interf1/ingrbric_nodes.F
39!|| inpoint ../starter/source/interfaces/interf1/inpoint.F
40!|| inslin ../starter/source/interfaces/interf1/inslin.F
41!|| insurf ../starter/source/interfaces/interf1/insurf.F
42!|| insurf23 ../starter/source/interfaces/interf1/insurf23.F
43!|| insurfigeo ../starter/source/interfaces/interf1/insurfigeo.F
44!|| nsegmt ../starter/source/interfaces/interf1/nsegmt.F
45!||--- uses -----------------------------------------------------
46!|| i2_surfi_mod ../starter/source/interfaces/inter3d1/i2_surfi.F90
47!|| message_mod ../starter/share/message_module/message_mod.F
48!||====================================================================
49 SUBROUTINE lecins(IPARI ,ITAB ,PM ,IPM ,BUFMAT ,
50 . IGRNOD ,IGRSURF ,IGRSLIN ,XFILTR ,STFAC ,
51 . FRIC_P ,FRIGAP ,I2RUPT ,AREASL ,LIXINT ,
52 . X ,LINTER ,IXS ,NOM_OPT ,
53 . IXC ,IXTG ,KNOD2ELC ,KNOD2ELTG ,NOD2ELC ,
54 . NOD2ELTG,INTBUF_TAB ,KNOD2ELS ,NOD2ELS ,IXS10 ,
55 . IXS16 ,IXS20 ,NIGE,RIGE,XIGE ,VIGE ,
56 . IGRBRIC ,MULTI_FVM ,NALE ,IGEO ,INTERFACES,
57 . S_NOD2ELS,S_NOD2ELTG,FLAG_ELEM_INTER25 ,LIST_NIN25)
58C============================================================================
59C-----------------------------------------------
60C M o d u l e s
61C-----------------------------------------------
62 USE message_mod
63 USE intbufdef_mod
64 USE groupdef_mod
65 USE multi_fvm_mod
66 USE interfaces_mod
68 USE i2_surfi_mod , ONLY : i2_surfi
69C-----------------------------------------------
70C I m p l i c i t T y p e s
71C-----------------------------------------------
72#include "implicit_f.inc"
73C-----------------------------------------------
74C C o m m o n B l o c k s
75C-----------------------------------------------
76#include "com04_c.inc"
77#include "units_c.inc"
78#include "param_c.inc"
79#include "scr03_c.inc"
80#include "scr17_c.inc"
81#include "tabsiz_c.inc"
82C-----------------------------------------------
83C D u m m y A r g u m e n t s
84C-----------------------------------------------
85 INTEGER IPARI(NPARI,NINTER), ITAB(NUMNOD),IXS(NIXS,NUMELS),
86 . IXC(*),IXTG(*),KNOD2ELC(*),KNOD2ELTG(*),
87 . NOD2ELC(*),NOD2ELTG(*),KNOD2ELS(*),NOD2ELS(*),
88 . IXS10(6,*), IXS16(8,*), IXS20(12,*),NIGE(*)
89 INTEGER ,INTENT(IN) :: S_NOD2ELS,S_NOD2ELTG
90 INTEGER LIXINT, NBRIC
91 INTEGER,INTENT(IN) :: IPM(NPROPMI,NUMMAT), IGEO(NPROPGI,NUMGEO)
92 my_real,INTENT(IN) :: BUFMAT(SBUFMAT)
93 my_real :: xfiltr(*),stfac(*),fric_p(10,ninter),frigap(nparir,ninter)
94 my_real :: i2rupt(6,ninter),areasl(*),rige(*),xige(*),vige(*)
95 my_real,INTENT(IN) :: x(3,numnod)
96 my_real, INTENT(IN) :: pm(*)
97 INTEGER NOM_OPT(LNOPT1,*)
98 TYPE(intbuf_struct_) INTBUF_TAB(*)
99 INTEGER, INTENT(IN) :: NALE(NUMNOD)
100 INTEGER, INTENT(INOUT) :: LIST_NIN25(NINTER)
101 INTEGER, INTENT(INOUT) :: FLAG_ELEM_INTER25(NINTER25,NUMELS)
102C-----------------------------------------------
103 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
104 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
105 TYPE (SURF_) , DIMENSION(NSURF) ,TARGET :: IGRSURF
106 TYPE (SURF_) , DIMENSION(NSLIN) ,TARGET :: IGRSLIN
107 TYPE(multi_fvm_struct) :: MULTI_FVM
108 TYPE (INTERFACES_) ,INTENT(INOUT):: INTERFACES
109C-----------------------------------------------
110C L o c a l V a r i a b l e s
111C-----------------------------------------------
112 INTEGER J, K, IRS, IRM, NI, NSN, NMN,NMT,
113 . ntyp,is1,is2,noint,nrts,nrtm,nst,ilev,
114 . multimp,igap,inacti,nme,iallo,linter,
115 . isu1,isu2,nrtm0,nrtm_sh,
116 . nrts_new, nrtm_new,ibid,intth,
117 . nrtm_ige,nrtm_fe,nrts_ige,nrts_fe,
118 . nmn_ige,nmn_fe,nsn_ige,nsn_fe,intnitsche,iad_ige,grbric_id,nin25
119
120 INTEGER :: STAT
121 INTEGER, DIMENSION(:), ALLOCATABLE, TARGET :: NTAG_TARGET
122 INTEGER, DIMENSION(:), POINTER :: NTAG
123 INTEGER, DIMENSION(:,:), POINTER :: SURF_NODES,SURF_NODES_IGE,LINE_NODES
124 LOGICAL TYPE18
125 CHARACTER MESS*40
126 INTEGER ID
127 CHARACTER(LEN=NCHARTITLE) :: TITR
128 DATA mess/'INTERFACE INPUT '/
129C=======================================================================
130 ALLOCATE(ntag_target(2*numnod+1), stat=stat)
131
132 ntag(0:2*numnod) => ntag_target(1:2*numnod+1)
133
134 DO k=0,2*numnod
135 ntag(k) = 0
136 ENDDO
137 lixint = 0
138 nin25 = 0
139C---------------------
140 DO ni = 1,linter
141C
142 nrts = ipari(3,ni)
143 nrtm = ipari(4,ni)
144 nme = ipari(4,ni)
145 nsn = ipari(5,ni)
146 nmn = ipari(6,ni)
147 ntyp = ipari(7,ni)
148 noint = ipari(15,ni)
149 ilev = ipari(20,ni)
150 igap = ipari(21,ni)
151 inacti = ipari(22,ni)
152 multimp= ipari(23,ni)
153 is1 = ipari(13,ni)/10
154 is2 = mod(ipari(13,ni),10)
155 isu1 = ipari(45,ni)
156 isu2 = ipari(46,ni)
157 intth = ipari(47,ni)
158 intnitsche = ipari(86,ni)
159 grbric_id = ipari(83,ni) !int18
160 irm = 0
161 irs = 0
162C- deactivated interfaces
163 IF (ntyp==0) cycle
164C-----Isogeometric elements
165 IF(ntyp==7) THEN
166 nrtm_ige = ipari(73,ni)
167 nrtm_fe = ipari(74,ni)
168 nrts_ige = ipari(75,ni)
169 nrts_fe = ipari(76,ni)
170 nsn_ige = ipari(77,ni)
171 nsn_fe = ipari(78,ni)
172 nmn_ige = ipari(79,ni)
173 nmn_fe = ipari(80,ni)
174 ELSE
175 nrtm_ige = 0
176 nrtm_fe = nrtm
177 nrts_ige = 0
178 nrts_fe = nrts
179 nsn_ige = 0
180 nsn_fe = nsn
181 nmn_ige = 0
182 nmn_fe = nmn
183 ENDIF
184 type18=.false.
185 IF(ntyp==7 .AND. inacti==7)type18=.true.
186C-------------------------------------------
187 id=nom_opt(1,ni)
188 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,ni),ltitr)
189C-------------------------------------------
190 intbuf_tab(ni)%STFAC(1) = stfac(ni)
191 DO j = 1,nparir
192 intbuf_tab(ni)%VARIABLES(j) = frigap(j,ni)
193 ENDDO
194C-----
195C LECTURE DES RENSEIGNEMENTS SURFACE SECOND/MAIN
196C-----
197C 1) SURFACE SECONDARY
198C
199 IF ( ntyp == 15 ) THEN
200 IF(nrts == 0) THEN
201 CALL ancmsg(msgid=118, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
202 ENDIF
203 IF(ipri>=1) WRITE(iout,'(//,A)')' SECONDARY SURFACE'
204 surf_nodes => igrsurf(isu1)%NODES(1:nrts,1:4)
205 CALL insurf(nrts,nsn,irs,intbuf_tab(ni)%IRECTS,
206 . surf_nodes,itab,intbuf_tab(ni)%NSV,id,titr,
207 . ntag,intbuf_tab(ni)%S_NSV,intbuf_tab(ni)%S_IRECTS,type18)
208 ELSEIF (ntyp == 17) THEN
209 ELSEIF (ntyp == 20) THEN
210 ELSEIF (ntyp == 22) THEN
211 IF(isu1>0)THEN
212 IF(ipri>=1) WRITE(iout,'(//,A)')' SECONDARY SURFACE'
213 nbric=igrbric(isu1)%NENTITY
214 CALL ingrbric(nsn, igrbric(isu1)%ENTITY, intbuf_tab(ni)%NSV,
215 + ixs, nbric, pm, intbuf_tab(ni)%S_NSV,igeo)
216 ENDIF
217C--------------------------------------------
218 ELSEIF(ntyp == 23) THEN
219 IF(is1/=0) THEN
220 IF(nrts == 0.AND.is1/=2) THEN
221 CALL ancmsg(msgid=118, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
222 ENDIF
223 IF(ipri>=1) WRITE(iout,'(//,A)')' SECONDARY SURFACE'
224 IF(is1 == 1)THEN
225 nrts=igrsurf(isu1)%NSEG
226 surf_nodes => igrsurf(isu1)%NODES(1:nrts,1:4)
227 CALL insurf23(nrts,nsn,irs,intbuf_tab(ni)%IRECTS,noint,
228 . surf_nodes,itab,intbuf_tab(ni)%NSV,nrts_new,x,
229 . ntag)
230 nrts=nrts_new
231 ENDIF
232 ENDIF
233 ELSEIF (ntyp == 24) THEN
234c IF (IS1 == -2)THEN
235c IAD=IGRN(3,ISU1)
236c CALL INPOINT(NSN,NOINT,IBUFSSG(IAD),ITAB,INTBUF_TAB(NI)%NSV)
237c END IF
238 ELSEIF (ntyp == 25) THEN
239 ELSE
240 IF(is1/=0) THEN
241 IF(nrts == 0.AND.is1/=2.AND.is1/=5.AND.is1/=-1) THEN
242 CALL ancmsg(msgid=118, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
243 ENDIF
244 IF(ipri>=1) WRITE(iout,'(//,A)')' SECONDARY SURFACE'
245 IF(is1 == 1)THEN
246 IF (ntyp == 3 .OR. ntyp == 6) irs = ipari(25,ni)
247 surf_nodes => igrsurf(isu1)%NODES(1:nrts_fe,1:4)
248 CALL insurf(nrts_fe,nsn_fe,irs,intbuf_tab(ni)%IRECTS,
249 . surf_nodes,itab,intbuf_tab(ni)%NSV,id,titr,
250 . ntag,intbuf_tab(ni)%S_NSV,intbuf_tab(ni)%S_IRECTS,type18)
251 IF (igrsurf(isu1)%NSEG_IGE >= 1) THEN
252 surf_nodes_ige => igrsurf(isu1)%NODES_IGE(1:nrts_ige,1:4)
253 iad_ige = igrsurf(isu1)%IAD_IGE
254 CALL insurfigeo(nrts_ige,nrts_fe,nsn_ige,0,iad_ige,irs,
255 . intbuf_tab(ni)%IRECTS,noint,
256 . surf_nodes_ige,itab,intbuf_tab(ni)%NSV,id,titr,intbuf_tab(ni)%NIGE,
257 . intbuf_tab(ni)%RIGE,intbuf_tab(ni)%XIGE,intbuf_tab(ni)%VIGE,
258 . nige,rige,xige,vige)
259 ENDIF
260 ELSEIF(is1 == 2)THEN
261 CALL inpoint(nsn,noint,igrnod(isu1)%ENTITY,itab,intbuf_tab(ni)%NSV)
262 ELSEIF(is1 == 3)THEN
263 line_nodes = > igrslin(isu1)%NODES(1:nrts,1:2)
264 CALL inslin(nrts,nsn,intbuf_tab(ni)%IRECTS,noint,
265 . line_nodes,itab,intbuf_tab(ni)%NSV,
266 . ntag)
267 ELSEIF(is1 == 5) THEN
268 !INTER18 + GRBRIC_ID
269 nbric = igrbric(grbric_id)%NENTITY
270 IF (multi_fvm%IS_USED)THEN
271 ipari(14,ni) = 151
272 CALL ingrbric_centroids(igrbric(grbric_id)%ENTITY, intbuf_tab(ni)%NSV,
273 . ixs, nbric)
274 ELSE
275 ipari(14,ni) = 0
276 CALL ingrbric_nodes(nsn_fe, igrbric(grbric_id)%ENTITY, itab, intbuf_tab(ni)%NSV,
277 . ixs, nbric, nale, ipm, bufmat, intbuf_tab(ni)%S_NSV)
278 ENDIF
279 ENDIF
280 IF (ntyp==3) THEN
281 CALL elty_surf(0,nrts,igrsurf(isu1)%NSEG,igrsurf(isu1)%ELTYP,
282 . intbuf_tab(ni)%MSEGTYP,isu1)
283 ENDIF
284 ENDIF
285 nsn = nsn_fe+nsn_ige
286 ENDIF
287C
288C----------------------------------------------
289C 2)SURFACE MAIN :
290C-----
291 IF ( ntyp == 15 ) THEN
292 IF(nrtm == 0) THEN
293 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo,i1=id,c1=titr)
294 ENDIF
295 IF(ipri>=1) WRITE(iout,'(//,A,I10)')
296 . ' MAIN SURFACE IS THE HYPER-ELLIPSOIDAL SURFACE :',
297 . igrsurf(isu2)%ID
298 intbuf_tab(ni)%KSURF(1)=isu2
299 ELSEIF ( ntyp == 14 ) THEN
300 IF(nrtm == 0) THEN
301 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=id,c1=titr)
302 ENDIF
303 IF(ipri>=1) WRITE(iout,'(//,A,I10)')
304 . ' MAIN SURFACE IS THE HYPER-ELLIPSOIDAL SURFACE :',
305 . igrsurf(isu2)%ID
306 intbuf_tab(ni)%KSURF(1)=isu2
307 ELSEIF (ntyp == 20) THEN
308C
309C--------------------------------------------
310 ELSEIF( ntyp == 23) THEN
311 IF(is2/=0) THEN
312 IF(nrtm == 0) THEN
313 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
314 ENDIF
315 IF(ipri>=1) WRITE(iout,'(//,A)')' MAIN SURFACE'
316 IF(is2 == 1)THEN
317 nrtm=igrsurf(isu2)%NSEG
318 surf_nodes => igrsurf(isu2)%NODES(1:nrtm,1:4)
319 CALL insurf23(nrtm,nmn,irm,intbuf_tab(ni)%IRECTM,noint,
320 . surf_nodes,itab,intbuf_tab(ni)%MSR,nrtm_new,x,
321 . ntag)
322 nrtm = nrtm_new
323 ENDIF
324 CALL elty_surf(0,nrtm,igrsurf(isu2)%NSEG,igrsurf(isu2)%ELTYP,
325 . intbuf_tab(ni)%MSEGTYP,isu2)
326 ENDIF
327C--------------------------------------------
328 ELSEIF (ntyp == 24) THEN
329 nrtm_sh = ipari(42,ni)
330 nrtm0 = nrtm -nrtm_sh
331 IF (is2/=0) THEN
332 IF(nrtm0 == 0) THEN
333 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
334 ENDIF
335 IF(ipri>=1) WRITE(iout,'(//,A)')' MAIN SURFACE'
336 IF(is2 == -1)THEN
337 nrtm0 = igrsurf(isu2)%NSEG
338 surf_nodes => igrsurf(isu2)%NODES(1:nrtm0,1:4)
339 CALL insurf(nrtm0,nmn,irm,intbuf_tab(ni)%IRECTM,
340 . surf_nodes,itab,intbuf_tab(ni)%MSR,id,titr,
341 . ntag,intbuf_tab(ni)%S_MSR,intbuf_tab(ni)%S_IRECTM,type18)
342 ENDIF
343 IF(is1/=-2)THEN
344 nrtm0 = igrsurf(isu1)%NSEG
345 surf_nodes => igrsurf(isu1)%NODES(1:nrtm0,1:4)
346 CALL insurf(nrtm0,nmn,irm,intbuf_tab(ni)%IRECTM,
347 . surf_nodes,itab,intbuf_tab(ni)%MSR,id,titr,
348 . ntag,intbuf_tab(ni)%S_MSR,intbuf_tab(ni)%S_IRECTM,type18)
349 ENDIF
350 ENDIF
351 ELSEIF (ntyp == 25) THEN
352 ELSE
353 IF (ntyp == 3 .OR. ntyp == 5 .OR. ntyp == 6 .OR. ntyp == 8)
354 . irm = ipari(24,ni)
355 IF (is2/=0) THEN
356 IF(nrtm_fe == 0 .AND. nrtm_ige == 0) THEN
357 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
358 ENDIF
359 IF(ipri>=1) WRITE(iout,'(//,A)')' MAIN SURFACE'
360 IF(is2 == 1 )THEN
361 surf_nodes => igrsurf(isu2)%NODES(1:nrtm_fe,1:4)
362 CALL insurf(nrtm_fe,nmn_fe,irm,intbuf_tab(ni)%IRECTM,
363 . surf_nodes,itab,intbuf_tab(ni)%MSR,id,titr,
364 . ntag,intbuf_tab(ni)%S_MSR,intbuf_tab(ni)%S_IRECTM,type18)
365 IF (igrsurf(isu2)%NSEG_IGE >= 1) THEN
366 surf_nodes_ige => igrsurf(isu2)%NODES_IGE(1:nrtm_ige,1:4)
367 iad_ige = igrsurf(isu2)%IAD_IGE
368 CALL insurfigeo(nrtm_ige,nrtm_fe,nmn_ige,nsn_ige,iad_ige,irm,intbuf_tab(ni)%IRECTM,noint,
369 . surf_nodes_ige,
370 . itab,intbuf_tab(ni)%MSR,id,titr,intbuf_tab(ni)%NIGE(nsn_ige+1),
371 . intbuf_tab(ni)%RIGE(3*nsn_ige+1),intbuf_tab(ni)%XIGE(3*nsn_ige+1),intbuf_tab(ni)%VIGE(3*nsn_ige+1),
372 . nige,rige,xige,vige)
373 ENDIF
374 ELSEIF(is2 == 3)THEN
375 line_nodes => igrslin(isu2)%NODES(1:nrtm,1:2)
376 CALL inslin(nrtm,nmn,intbuf_tab(ni)%IRECTM,noint,
377 . line_nodes,itab,intbuf_tab(ni)%MSR,
378 . ntag)
379 ELSEIF(is2 == 4) THEN
380 surf_nodes => igrsurf(isu2)%NODES(1:nrtm,1:4)
381 CALL insurf(nrtm,nmn,irm,intbuf_tab(ni)%IRECTM,
382 . surf_nodes,itab,intbuf_tab(ni)%MSR,id,titr,
383 . ntag,intbuf_tab(ni)%S_MSR,intbuf_tab(ni)%S_IRECTM,type18)
384 ENDIF
385 IF (ntyp==3 ) THEN
386 CALL elty_surf(nrts,nrtm,igrsurf(isu2)%NSEG,igrsurf(isu2)%ELTYP,
387 . intbuf_tab(ni)%MSEGTYP,isu2)
388 ELSEIF ((ntyp==2.AND.is2>0) .OR. ntyp==5 .OR. ntyp==7 .OR.
389 + ntyp==10 .OR. ntyp==21) THEN
390 CALL elty_surf(0,nrtm,igrsurf(isu2)%NSEG,igrsurf(isu2)%ELTYP,
391 . intbuf_tab(ni)%MSEGTYP,isu2)
392 END IF
393 nmn = nmn_fe+nmn_ige
394 ENDIF
395C
396 ENDIF
397C--------------------------
398 IF (ntyp == 1) THEN
399C-------
400 CALL nsegmt(
401 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,
402 . intbuf_tab(ni)%NSEGM,nmt,nrtm,nmn)
403C-------
404 ELSEIF (ntyp == 2) THEN
405 lixint = lixint+nsn
406 IF (ilev == 20 .OR. ilev == 21 .OR. ilev == 22.OR.intth >0) THEN
407 DO j = 1,nsn
408 intbuf_tab(ni)%AREAS2(j) = areasl(ni)
409 ENDDO
410 ENDIF
411 IF (ilev == 20 .OR. ilev == 21 .OR. ilev == 22) THEN
412
413 intbuf_tab(ni)%RUPT(1) = i2rupt(1,ni)
414 intbuf_tab(ni)%RUPT(2) = i2rupt(2,ni)
415 intbuf_tab(ni)%RUPT(3) = i2rupt(3,ni)
416 intbuf_tab(ni)%RUPT(4) = i2rupt(4,ni)
417 intbuf_tab(ni)%RUPT(5) = i2rupt(5,ni)
418 intbuf_tab(ni)%RUPT(6) = i2rupt(6,ni)
419 ENDIF
420 IF (is1==-1.AND. is2==-1) THEN
421 IF(ipri>=1) WRITE(iout,'(//,A,I10)')' SURFACE TO SURFACE INFO OF INTERFACE NUMBER :',id
422 CALL i2_surfi(npari ,ipari(1,ni),nsurf ,igrsurf ,
423 1 nsn ,intbuf_tab(ni)%NSV,nrtm ,intbuf_tab(ni)%IRECTM,
424 2 nmn ,intbuf_tab(ni)%MSR,intbuf_tab(ni)%MSEGTYP,
425 3 frigap(4,ni),x ,numnod,itab ,ipri ,iout ,
426 4 ixs ,numels ,noint ,intbuf_tab(ni)%IRTLM ,
427 5 intbuf_tab(ni)%CSTS,intbuf_tab(ni)%DPARA,ixc ,
428 6 ixtg , knod2elc ,knod2eltg,nod2elc ,nod2eltg ,
429 7 knod2els,nod2els ,ixs10 ,ixs16 ,ixs20 ,
430 8 s_nod2els,s_nod2eltg,numelc ,numeltg ,numels10 ,
431 9 numels16,numels20 ,id,titr)
432 END IF
433C-------
434 ELSEIF (ntyp == 3 .OR. ntyp == 4 .OR. ntyp == 9) THEN
435 IF(ipari(30,ni)/=0) THEN
436 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
437 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
438 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
439 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
440 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
441 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
442 ENDIF
443 IF(ipari(31,ni)/=0) THEN
444 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
445 ENDIF
446 CALL nsegmt(
447 . ipari(8,ni),intbuf_tab(ni)%IRECTS,intbuf_tab(ni)%NSV,intbuf_tab(ni)%NSEGS,
448 . nst,nrts,nsn)
449 CALL nsegmt(
450 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
451 . nmt,nrtm,nmn)
452C-------
453 ELSEIF (ntyp == 5) THEN
454C-------
455 IF (ipari(30,ni)/=0) THEN
456 intbuf_tab(ni)%FRIC_P(1) =fric_p(1,ni)
457 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
458 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
459 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
460 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
461 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
462 ENDIF
463 IF(ipari(31,ni)/=0) THEN
464 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
465 ENDIF
466 CALL nsegmt(
467 . ipari(8,ni),intbuf_tab(ni)%IRECTS,intbuf_tab(ni)%NSV,intbuf_tab(ni)%NSEGS,
468 . nst,nrts,nsn)
469 CALL nsegmt(
470 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
471 . nmt,nrtm,nmn)
472C-------
473 ELSEIF (ntyp == 6) THEN
474 CALL nsegmt(
475 . ipari(8,ni),intbuf_tab(ni)%IRECTS,intbuf_tab(ni)%NSV,intbuf_tab(ni)%NSEGS,
476 . nst,nrts,nsn)
477 CALL nsegmt(
478 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
479 . nmt,nrtm,nmn)
480C-------
481 ELSEIF (ntyp == 7) THEN
482 IF (ipari(30,ni)/=0) THEN
483 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
484 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
485 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
486 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
487 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
488 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
489 ENDIF
490 IF(ipari(31,ni)/=0) THEN
491 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
492 ENDIF
493 lixint = lixint+multimp*(nsn_ige+nsn_fe)
494C-------
495 ELSEIF (ntyp == 8) THEN
496C-------
497 CALL nsegmt(
498 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
499 . nmt,nrtm,nmn)
500C-------
501 ELSEIF (ntyp == 11) THEN
502 CALL i11edge( ipari(1,ni),intbuf_tab(ni) )
503C-------
504 ELSEIF (ntyp == 12) THEN
505 CALL nsegmt(
506 . ipari(8,ni),intbuf_tab(ni)%IRECTS,intbuf_tab(ni)%NSV,intbuf_tab(ni)%NSEGS,
507 . nst,nrts,nsn)
508 CALL nsegmt(
509 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
510 . nmt,nrtm,nmn)
511C-------
512 ELSEIF (ntyp == 20) THEN
513 IF (ipari(30,ni)/=0) THEN
514 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
515 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
516 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
517 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
518 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
519 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
520 ENDIF
521 IF(ipari(31,ni)/=0) THEN
522 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
523 ENDIF
524 lixint = lixint+multimp*nsn
525 iallo = 2 ! initialisation des tableaux
526 CALL i20surfi(
527 1 iallo ,ipari(1,ni) ,igrnod ,igrsurf ,
528 2 igrslin ,intbuf_tab(ni)%IRECTM,frigap(1,ni) ,
529 3 intbuf_tab(ni)%NSV,intbuf_tab(ni)%MSR,intbuf_tab(ni)%IXLINS,intbuf_tab(ni)%IXLINM,
530 4 intbuf_tab(ni)%NSVL,intbuf_tab(ni)%MSRL,itab ,intbuf_tab(ni)%ISLINS,
531 5 intbuf_tab(ni)%ISLINM,intbuf_tab(ni)%NLG,x ,intbuf_tab(ni)%NBINFLG,
532 5 intbuf_tab(ni)%MBINFLG)
533
534C-------
535 ELSEIF (ntyp == 21) THEN
536 IF (ipari(30,ni)/=0) THEN
537 intbuf_tab(ni)%FROT_P(1) = fric_p(1,ni)
538 intbuf_tab(ni)%FROT_P(2) = fric_p(2,ni)
539 intbuf_tab(ni)%FROT_P(3) = fric_p(3,ni)
540 intbuf_tab(ni)%FROT_P(4) = fric_p(4,ni)
541 intbuf_tab(ni)%FROT_P(5) = fric_p(5,ni)
542 intbuf_tab(ni)%FROT_P(6) = fric_p(6,ni)
543 ENDIF
544 IF(ipari(31,ni)/=0) THEN
545 intbuf_tab(ni)%ALPHA0(1) = xfiltr(ni)
546 ENDIF
547 lixint = max(lixint,multimp*nsn)
548C-------
549 ELSEIF (ntyp == 22) THEN
550 IF (ipari(30,ni)/=0) THEN
551 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
552 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
553 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
554 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
555 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
556 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
557 ENDIF
558 IF(ipari(31,ni)/=0) THEN
559 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
560 ENDIF
561 lixint = lixint+multimp*nsn
562C-------
563 ELSEIF (ntyp == 23) THEN
564 IF (ipari(30,ni)/=0) THEN
565 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
566 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
567 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
568 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
569 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
570 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
571 ENDIF
572 IF(ipari(31,ni)/=0) THEN
573 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
574 ENDIF
575 lixint = max(lixint,multimp*nsn)
576C-------
577 ELSEIF (ntyp == 24) THEN
578 IF (ipari(30,ni)/=0) THEN
579 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
580 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
581 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
582 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
583 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
584 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
585 ENDIF
586 IF(ipari(31,ni)/=0) THEN
587 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
588 ENDIF
589 lixint = lixint+multimp*nsn
590C-----------inside I24SURFI NRTM=NRTM0
591 iallo = 2 ! initialisation des tableaux
592 CALL i24surfi(
593 1 iallo , ipari(1,ni) ,igrnod ,igrsurf ,
594 2 intbuf_tab(ni)%IRECTM ,frigap(1,ni) ,
595 3 intbuf_tab(ni)%NSV , intbuf_tab(ni)%MSR ,itab ,x ,
596 4 intbuf_tab(ni)%NBINFLG , intbuf_tab(ni)%MBINFLG ,intbuf_tab(ni)%MSEGTYP24 ,intbuf_tab(ni)%ISEADD,
597 5 intbuf_tab(ni)%ISEDGE , ibid ,ibid ,ixc ,
598 6 ixtg , knod2elc ,knod2eltg ,nod2elc ,
599 7 nod2eltg , knod2els ,nod2els ,ixs ,
600 8 ixs10 ,ixs16 ,ixs20 ,intbuf_tab(ni)%IRTSE ,
601 9 intbuf_tab(ni)%IS2SE ,intbuf_tab(ni)%IS2PT ,intbuf_tab(ni)%IS2ID ,intnitsche )
602C------initialization of doubler M_seg pour shells ---> move inside I24SURFI
603C-------
604 ELSEIF (ntyp == 25) THEN
605 IF (ipari(30,ni)/=0) THEN
606 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
607 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
608 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
609 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
610 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
611 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
612 ENDIF
613 IF(ipari(31,ni)/=0) THEN
614 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
615 ENDIF
616 lixint = lixint+multimp*nsn
617C-----------inside I24SURFI NRTM=NRTM0
618 iallo = 2 ! initialisation des tableaux
619 IF(ilev==2)THEN
620C necessaire au 2eme passage (cf IDDLEVEL)
621 intbuf_tab(ni)%NBINFLG(1:intbuf_tab(ni)%S_NBINFLG)=0
622 intbuf_tab(ni)%MBINFLG(1:intbuf_tab(ni)%S_MBINFLG)=0
623 END IF
624 nin25 = nin25 + 1
625 list_nin25(ni) = nin25
626 CALL i25surfi(
627 1 iallo ,ipari(1,ni) ,igrnod , igrsurf ,
628 2 intbuf_tab(ni)%IRECTM , frigap(1,ni) ,
629 3 intbuf_tab(ni)%NSV ,intbuf_tab(ni)%MSR ,itab , x ,
630 4 intbuf_tab(ni)%NBINFLG ,intbuf_tab(ni)%MBINFLG ,intbuf_tab(ni)%MSEGTYP24 , intbuf_tab(ni)%ISEADD ,
631 5 intbuf_tab(ni)%ISEDGE ,ibid ,ibid ,ixc ,
632 6 ixtg ,knod2elc ,knod2eltg ,nod2elc ,
633 7 nod2eltg ,knod2els ,nod2els ,ixs ,
634 8 ixs10 ,ixs16 ,ixs20 ,intbuf_tab(ni)%IRTSE ,
635 9 intbuf_tab(ni)%IS2SE ,intbuf_tab(ni)%IS2PT ,intbuf_tab(ni)%IS2ID ,interfaces%PARAMETERS ,
636 a nin25 ,flag_elem_inter25 )
637C------initialization of doubler M_seg pour shells ---> move inside I24SURFI
638 ENDIF
639C
640 DO j = 1,nparir
641 intbuf_tab(ni)%VARIABLES(j) = frigap(j,ni)
642 ENDDO
643C-----
644 ENDDO
645C-----
646 NULLIFY(ntag)
647 DEALLOCATE(ntag_target)
648
649 RETURN
650 END
651!||====================================================================
652!|| elty_surf ../starter/source/interfaces/interf1/lecins.F
653!||--- called by ------------------------------------------------------
654!|| lecins ../starter/source/interfaces/interf1/lecins.F
655!||====================================================================
656 SUBROUTINE elty_surf(NRTM0,NRTM,NSEG,SURF_ELTYP,MSEGTYP,ISU2)
657C-----------------------------------------------
658C I m p l i c i t T y p e s
659C-----------------------------------------------
660#include "implicit_f.inc"
661C-----------------------------------------------
662C D u m m y A r g u m e n t s
663C-----------------------------------------------
664 INTEGER NRTM0,NRTM,NSEG,ISU2
665 INTEGER MSEGTYP(*),SURF_ELTYP(*)
666C-----------------------------------------------
667C L o c a l V a r i a b l e s
668C-----------------------------------------------
669 INTEGER I, J, L
670C=======================================================================
671 DO I=1+nrtm0,nrtm+nrtm0
672 msegtyp(i) = 0
673 ENDDO
674 l = nrtm0
675 IF(isu2 /= 0)THEN
676 DO j=1,nseg
677 l = l+1
678 msegtyp(l) = surf_eltyp(j)
679C---------input by seg will not be avoided degenerate s10
680 IF (msegtyp(l)==0) msegtyp(l)=10
681 ENDDO
682 ENDIF
683C------------------------------------------------------------
684 RETURN
685 END
686
subroutine i11edge(ipari, intbuf_tab)
Definition i11edge.F:31
subroutine i20surfi(iallo, ipari, igrnod, igrsurf, igrslin, irect, frigap, nsv, msr, ixlins, ixlinm, nsve, msre, itab, islins, islinm, nlg, x, nbinflg, mbinflg)
Definition i20surfi.F:41
subroutine i24surfi(iallo, ipari, igrnod, igrsurf, irect, frigap, nsv, msr, itab, x, nbinflg, mbinflg, msegtyp, iseadd, isedge, itag, intply, ixc, ixtg, knod2elc, knod2eltg, nod2elc, nod2eltg, knod2els, nod2els, ixs, ixs10, ixs16, ixs20, irtse, is2se, is2pt, is2id, intnitsche)
Definition i24surfi.F:46
subroutine i25surfi(iallo, ipari, igrnod, igrsurf, irect, frigap, nsv, msr, itab, x, nbinflg, mbinflg, msegtyp, iseadd, isedge, itag, intply, ixc, ixtg, knod2elc, knod2eltg, nod2elc, nod2eltg, knod2els, nod2els, ixs, ixs10, ixs16, ixs20, irtse, is2se, is2pt, is2id, parameters, nin25, flag_elem_inter25)
Definition i25surfi.F:47
subroutine ingrbric(msn, brics, msv, ixs, nbric, pm, s_msv, igeo)
Definition ingrbric.F:32
subroutine ingrbric_centroids(ibufssg, msv, ixs, nbric)
subroutine ingrbric_nodes(msn, ibufssg, itab, msv, ixs, nbric, nale, ipm, bufmat, s_msv)
subroutine inpoint(msn, noint, brics, itab, msv)
Definition inpoint.F:32
subroutine inslin(nrt, msn, irect, noint, slin_nodes, itab, msv, ntag)
Definition inslin.F:35
subroutine insurf23(nrt, msn, ir, irect, noint, surf_nodes, itab, msv, nrtnew, x, ntag)
Definition insurf23.F:36
subroutine insurf(nrt, msn, ir, irect, surf_nodes, itab, msv, id, titr, ntag, s_msv, sirect, type18)
Definition insurf.F:39
subroutine insurfigeo(nrt_ige, offset_seg, msn_ige, offset_node, iadtabige, ir, irect, noint, surf_nodes_ige, itab, msv, id, titr, nige, rige, xige, vige, nige_tmp, rige_tmp, xige_tmp, vige_tmp)
Definition insurfigeo.F:38
subroutine i2rupt(x, v, a, ms, in, stifn, fsav, weight, irect, nsv, msr, irtl, irupt, crst, mmass, miner, smass, siner, area, uvar, xsm0, dsm, fsm, prop, ipari, nsn, nmn, nuvar, igtyp, pid, npf, tf, itab, fncont, pdama2, isym, inorm, h3d_data, fncontp, ftcontp)
Definition int2rupt.F:122
subroutine lecins(ipari, itab, pm, ipm, bufmat, igrnod, igrsurf, igrslin, xfiltr, stfac, fric_p, frigap, i2rupt, areasl, lixint, x, linter, ixs, nom_opt, ixc, ixtg, knod2elc, knod2eltg, nod2elc, nod2eltg, intbuf_tab, knod2els, nod2els, ixs10, ixs16, ixs20, nige, rige, xige, vige, igrbric, multi_fvm, nale, igeo, interfaces, s_nod2els, s_nod2eltg, flag_elem_inter25, list_nin25)
Definition lecins.F:58
subroutine elty_surf(nrtm0, nrtm, nseg, surf_eltyp, msegtyp, isu2)
Definition lecins.F:657
#define max(a, b)
Definition macros.h:21
integer, parameter nchartitle
subroutine nsegmt(ipar, irect, nodes, nseg, nst, nrt, nno)
Definition nsegmt.F:30
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