OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r2r_prelec.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "units_c.inc"
#include "scr17_c.inc"
#include "param_c.inc"
#include "r2r_c.inc"
#include "lagmult.inc"
#include "sphcom.inc"
#include "sms_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine r2r_prelec (iparts, ipartc, ipartg, ipartt, ipartp, ipartr, ipartsp, compt_t2, modif, passe, inom_opt, nspcondn, nsphion, ipart_l, memtr, pm_stack, iworksh, igrnod, igrsurf, igrslin, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, new_nslash_int, lsubmodel, new_hm_ninter, new_nintsub, new_ninivol, ixs10, ixs20, ixs16, detonators, seatbelt_shell_to_spring, nb_seatbelt_shells, nebcs, new_nebcs)
subroutine r2r_monvol (tagpart, tagpro, igrsurf, lsubmodel)

Function/Subroutine Documentation

◆ r2r_monvol()

subroutine r2r_monvol ( integer, dimension(*) tagpart,
integer, dimension(*) tagpro,
type (surf_), dimension(nsurf) igrsurf,
type(submodel_data), dimension(nsubmod) lsubmodel )

Definition at line 1410 of file r2r_prelec.F.

1411C-----------------------------------------------
1412C M o d u l e s
1413C-----------------------------------------------
1414 USE restmod
1415 USE r2r_mod
1416 USE groupdef_mod
1417 USE submodel_mod
1420C-----------------------------------------------
1421C I m p l i c i t T y p e s
1422C-----------------------------------------------
1423#include "implicit_f.inc"
1424C-----------------------------------------------
1425C C o m m o n B l o c k s
1426C-----------------------------------------------
1427#include "com04_c.inc"
1428#include "r2r_c.inc"
1429C-----------------------------------------------
1430C D u m m y A r g u m e n t s
1431C-----------------------------------------------
1432 INTEGER TAGPART(*),TAGPRO(*)
1433 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
1434 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
1435C-----------------------------------------------
1436C E x t e r n a l F u n c t i o n s
1437C-----------------------------------------------
1438 INTEGER USR2SYS
1439C-----------------------------------------------
1440C L o c a l V a r i a b l e s
1441C-----------------------------------------------
1442 INTEGER I,NUL,COMPT,TYPE,J,ISUR,ISURS,FLAG,K,CCPL
1443 INTEGER CPT_NOD,CPT_SEG,CPT_CPL,CUR_ID,IAD,CPT_SEG2
1444 INTEGER MAT_ID,NJET,IJET,N1,N2,N3,WARN
1445 CHARACTER MESS*40
1446 CHARACTER(LEN=NCHARTITLE)::TITR
1447 CHARACTER(LEN=NCHARKEY)::KEY
1448 DATA mess/'INJECTORS '/
1449 LOGICAL :: IS_AVAILABLE
1450C=======================================================================
1451
1452C--------------------------------------------------------------------C
1453C------Prereading and tag of injectors (MONVOL)----------------------C
1454C--------------------------------------------------------------------C
1455
1456 CALL hm_option_start('/MONVOL')
1457C
1458 DO i=1,nmonvol
1459C
1460 CALL hm_option_read_key(lsubmodel,
1461 . keyword2 = key)
1462C
1463 IF(key(1:7)=='AIRBAG1')THEN
1464 TYPE = 1
1465 CALL hm_get_intv('surf_IDex', isur, is_available, lsubmodel)
1466 ELSEIF(key(1:6)=='AIRBAG')THEN
1467 TYPE = 2
1468 CALL hm_get_intv('entityiddisplayed', isur, is_available, lsubmodel)
1469 ELSEIF(key(1:6)=='COMMU1')THEN
1470 TYPE = 3
1471 CALL hm_get_intv('surf_IDex', isur, is_available, lsubmodel)
1472 ELSEIF(key(1:5)=='COMMU')THEN
1473 TYPE = 4
1474 CALL hm_get_intv('surf_IDex', isur, is_available, lsubmodel)
1475 ELSE
1476 TYPE = 0
1477 CALL hm_get_intv('surf_IDex', isur, is_available, lsubmodel)
1478 ENDIF
1479
1480C----------------------------------------------------------
1481 DO j=1,nsurf
1482 IF (isur==igrsurf(j)%ID) isurs=j
1483 ENDDO
1484 cpt_seg=0
1485 ccpl=0
1486 flag=0
1487 DO j=1,igrsurf(isurs)%NSEG
1488 cpt_nod=0
1489 cpt_cpl=0
1490 DO k=1,4
1491 cur_id = igrsurf(isurs)%NODES(j,k)
1492C --> count of taged nodes <--
1493 IF (tagno(cur_id+npart)>=0) THEN
1494 cpt_nod=cpt_nod+1
1495 IF (tagno(cur_id+npart)==2) cpt_cpl=cpt_cpl+1
1496 ENDIF
1497 END DO
1498C --> if all the nodes of the segment are in the subdomain -it's validated <--
1499 IF (cpt_cpl/=0) warn = 1
1500 IF (cpt_nod==4) cpt_seg=cpt_seg+1
1501 END DO
1502C--------MONVOL not allowed on multidomains interface--------------------------
1503C IF (WARN>0) THEN
1504C CALL ANSTCKC(LEN_TRIM(LINE),LINE)
1505C CALL ANCWARN(843,ANINFO_BLIND_1)
1506C ENDIF
1507C-------Case AIRBAG1----------------------------------------
1508 IF ((type==1).AND.(tagmon(i)>0)) THEN
1509 CALL hm_get_intv('nb_jet', njet, is_available, lsubmodel)
1510C --> loop on injectors <--
1511 DO j=1,njet
1512 CALL hm_get_int_array_index('ijet', ijet, j, is_available, lsubmodel)
1513 CALL hm_get_int_array_index('node1', n1, j, is_available, lsubmodel)
1514 CALL hm_get_int_array_index('node2', n2, j, is_available, lsubmodel)
1515 CALL hm_get_int_array_index('node3', n3, j, is_available, lsubmodel)
1516 IF (ijet==1) THEN
1517 IF (n1/=0) THEN
1518 n1=usr2sys(n1,itabm1,mess,nul)
1519 IF(tagno(n1+npart)<2) tagno(n1+npart) = 1
1520 ENDIF
1521 IF (n2/=0) THEN
1522 n2=usr2sys(n2,itabm1,mess,nul)
1523 IF(tagno(n2+npart)<2) tagno(n2+npart) = 1
1524 ENDIF
1525 IF (n3/=0) THEN
1526 n3=usr2sys(n3,itabm1,mess,nul)
1527 IF(tagno(n3+npart)<2) tagno(n3+npart) = 1
1528 ENDIF
1529 ENDIF
1530 END DO
1531 ENDIF
1532C-------Case AIRBAG----------------------------------------
1533 IF ((type==2).AND.(tagmon(i)>0)) THEN
1534 CALL hm_get_intv('ABG_Njet', njet, is_available, lsubmodel)
1535C --> loop on injectors <--
1536 DO j=1,njet
1537 CALL hm_get_int_array_index('ABG_Ijet', ijet, j,is_available, lsubmodel)
1538 CALL hm_get_int_array_index('ABG_N1', n1, j,is_available, lsubmodel)
1539 CALL hm_get_int_array_index('ABG_N2', n2, j,is_available, lsubmodel)
1540 CALL hm_get_int_array_index('ABG_N3', n3, j,is_available, lsubmodel)
1541C
1542 IF (ijet==1) THEN
1543 IF (n1/=0) THEN
1544 n1=usr2sys(n1,itabm1,mess,nul)
1545 IF(tagno(n1+npart)<2) tagno(n1+npart) = 1
1546 ENDIF
1547 IF (n2/=0) THEN
1548 n2=usr2sys(n2,itabm1,mess,nul)
1549 IF(tagno(n2+npart)<2) tagno(n2+npart) = 1
1550 ENDIF
1551 IF (n3/=0) THEN
1552 n3=usr2sys(n3,itabm1,mess,nul)
1553 IF(tagno(n3+npart)<2) tagno(n3+npart) = 1
1554 ENDIF
1555 ENDIF
1556 END DO
1557 ENDIF
1558C-------Case COMMU-----------------------------------------
1559 IF ((type==4).AND.(tagmon(i)>0)) THEN
1560 CALL hm_get_intv('Njet', njet, is_available, lsubmodel)
1561C --> loop on injectors <--
1562 DO j=1,njet
1563 CALL hm_get_int_array_index('Ijet', ijet, j,is_available, lsubmodel)
1564 CALL hm_get_int_array_index('ABG_N1', n1, j,is_available, lsubmodel)
1565 CALL hm_get_int_array_index('node_ID2', n2, j,is_available, lsubmodel)
1566 CALL hm_get_int_array_index('node_ID3', n3, j,is_available, lsubmodel)
1567C
1568 IF (ijet==1) THEN
1569 IF (n1/=0) THEN
1570 n1=usr2sys(n1,itabm1,mess,nul)
1571 IF(tagno(n1+npart)<2) tagno(n1+npart) = 1
1572 ENDIF
1573 IF (n2/=0) THEN
1574 n2=usr2sys(n2,itabm1,mess,nul)
1575 IF(tagno(n2+npart)<2) tagno(n2+npart) = 1
1576 ENDIF
1577 IF (n3/=0) THEN
1578 n3=usr2sys(n3,itabm1,mess,nul)
1579 IF(tagno(n3+npart)<2) tagno(n3+npart) = 1
1580 ENDIF
1581 ENDIF
1582 END DO
1583 ENDIF
1584C-------Case COMMU1----------------------------------------
1585 IF ((type==3).AND.(tagmon(i)>0)) THEN
1586 CALL hm_get_intv('Njet', njet, is_available, lsubmodel)
1587C --> loop on injectors <--
1588 DO j=1,njet
1589 CALL hm_get_int_array_index('Ijet', ijet, j,is_available, lsubmodel)
1590 CALL hm_get_int_array_index('ABG_N1', n1, j,is_available, lsubmodel)
1591 CALL hm_get_int_array_index('ABG_N2', n2, j,is_available, lsubmodel)
1592 CALL hm_get_int_array_index('ABG_N3', n3, j,is_available, lsubmodel)
1593C
1594 IF (ijet==1) THEN
1595 IF (n1/=0) THEN
1596 n1=usr2sys(n1,itabm1,mess,nul)
1597 IF(tagno(n1+npart)<2) tagno(n1+npart) = 1
1598 ENDIF
1599 IF (n2/=0) THEN
1600 n2=usr2sys(n2,itabm1,mess,nul)
1601 IF(tagno(n2+npart)<2) tagno(n2+npart) = 1
1602 ENDIF
1603 IF (n3/=0) THEN
1604 n3=usr2sys(n3,itabm1,mess,nul)
1605 IF(tagno(n3+npart)<2) tagno(n3+npart) = 1
1606 ENDIF
1607 ENDIF
1608 END DO
1609 ENDIF
1610C---------------------------------------------------------
1611 END DO
1612C
1613 nmonvol = new_hm_nvolu
1614 nvolu = new_nvolu
1615
1616C-----------
1617 RETURN
1618
1619C------------------------------------------------------------------
1620
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
integer, parameter nchartitle
integer, parameter ncharkey
integer, dimension(:), allocatable tagno
Definition r2r_mod.F:132
integer, dimension(:), allocatable tagmon
Definition r2r_mod.F:132
integer, dimension(:), allocatable, target itabm1
Definition restart_mod.F:60
integer function usr2sys(iu, itabm1, mess, id)
Definition sysfus.F:146

◆ r2r_prelec()

subroutine r2r_prelec ( integer, dimension(*) iparts,
integer, dimension(*) ipartc,
integer, dimension(*) ipartg,
integer, dimension(*) ipartt,
integer, dimension(*) ipartp,
integer, dimension(*) ipartr,
integer, dimension(*) ipartsp,
integer compt_t2,
integer modif,
integer passe,
integer, dimension(*) inom_opt,
integer nspcondn,
integer nsphion,
integer, dimension(lipart1,*) ipart_l,
integer, dimension(*) memtr,
pm_stack,
integer, dimension(*) iworksh,
type (group_), dimension(ngrnod) igrnod,
type (surf_), dimension(nsurf) igrsurf,
type (surf_), dimension(nslin) igrslin,
type (group_), dimension(ngrbric) igrbric,
type (group_), dimension(ngrquad) igrquad,
type (group_), dimension(ngrshel) igrsh4n,
type (group_), dimension(ngrsh3n) igrsh3n,
type (group_), dimension(ngrtrus) igrtruss,
type (group_), dimension(ngrbeam) igrbeam,
type (group_), dimension(ngrspri) igrspring,
integer new_nslash_int,
type(submodel_data), dimension(nsubmod) lsubmodel,
integer new_hm_ninter,
integer new_nintsub,
integer new_ninivol,
integer, dimension(*) ixs10,
integer, dimension(*) ixs20,
integer, dimension(*) ixs16,
type(detonators_struct_), intent(in), target detonators,
integer, dimension(numelc,2), intent(in) seatbelt_shell_to_spring,
integer, intent(in) nb_seatbelt_shells,
integer, intent(in) nebcs,
integer, intent(inout) new_nebcs )

Definition at line 54 of file r2r_prelec.F.

63C-----------------------------------------------
64C M o d u l e s
65C-----------------------------------------------
66 USE restmod
67 USE r2r_mod
68 USE nod2el_mod
69 USE message_mod
70 USE groupdef_mod
71 USE submodel_mod
73 USE inivol_def_mod , ONLY : num_inivol
76 USE reader_old_mod , ONLY : kinter, kcur, line, nslash
77 use element_mod , only : nixc
78C-----------------------------------------------
79C I m p l i c i t T y p e s
80C-----------------------------------------------
81#include "implicit_f.inc"
82C-----------------------------------------------
83C C o m m o n B l o c k s
84C-----------------------------------------------
85#include "com04_c.inc"
86#include "units_c.inc"
87#include "scr17_c.inc"
88#include "param_c.inc"
89#include "r2r_c.inc"
90#include "lagmult.inc"
91#include "sphcom.inc"
92#include "sms_c.inc"
93C-----------------------------------------------
94C D u m m y A r g u m e n t s
95C-----------------------------------------------
96 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
97 INTEGER IPARTS(*),IPARTC(*),IPARTG(*),IPARTT(*),IPARTP(*),
98 . IPARTR(*),COMPT_T2,MODIF,PASSE,INOM_OPT(*),IPARTSP(*),NSPCONDN,
99 . NSPHION,IPART_L(LIPART1,*),MEMTR(*),IWORKSH(*),NEW_NSLASH_INT,NEW_HM_NINTER,NEW_NINTSUB,
100 . NEW_NINIVOL,IXS10(*), IXS16(*), IXS20(*)
101 INTEGER ,INTENT(IN) :: NB_SEATBELT_SHELLS
102 INTEGER ,INTENT(IN) :: SEATBELT_SHELL_TO_SPRING(NUMELC,2)
103 INTEGER ,INTENT(IN) :: NEBCS
104 INTEGER ,INTENT(INOUT) :: NEW_NEBCS
105 my_real
106 . pm_stack(*)
107C-----------------------------------------------
108 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
109 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
110 TYPE (SURF_) , DIMENSION(NSLIN) :: IGRSLIN
111 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
112 TYPE (GROUP_) , DIMENSION(NGRQUAD) :: IGRQUAD
113 TYPE (GROUP_) , DIMENSION(NGRSHEL) :: IGRSH4N
114 TYPE (GROUP_) , DIMENSION(NGRSH3N) :: IGRSH3N
115 TYPE (GROUP_) , DIMENSION(NGRTRUS) :: IGRTRUSS
116 TYPE (GROUP_) , DIMENSION(NGRBEAM) :: IGRBEAM
117 TYPE (GROUP_) , DIMENSION(NGRSPRI) :: IGRSPRING
118 TYPE(DETONATORS_STRUCT_),TARGET,INTENT(IN) :: DETONATORS
119C-----------------------------------------------
120C E x t e r n a l F u n c t i o n s
121C-----------------------------------------------
122 INTEGER USR2SYS
123C-----------------------------------------------
124C L o c a l V a r i a b l e s
125C-----------------------------------------------
126 INTEGER I,J,L,NI,GRM,GRS,IGU,MAIN,NUL,NOD,ISK,NRB
127 INTEGER GR_ID,COMPT,TAG,IAD,CUR_ID,NB_RBY
128 INTEGER NB_KIN,NB_LAG,N1,N2,ID_RBY,DOMA,ISTER
129 INTEGER ID_CYL,CCPL,DIFF,D1,D2,G1,G2,GX,IP,JOE,JIE
130 INTEGER COMPT_M,COMPT_S,CUR_TYP,SUM,CONT,K,TYPE2
131 INTEGER NB_INT,ID_INTER,LNM,LNS,L1,L2,ISENS,VAL,WARN
132 INTEGER ID_RLINK,NUL50(50),ID_RBE3,ID_RBE2,ID_JOIN
133 INTEGER NU(4),NS(4),JREC,ID_MPC,ISUR,ISURS,ID_MON,FLG
134 INTEGER COMPT2,IGR9_TEMP,IGR8_TEMP,IGR2_TEMP,ID,ID_PART,IDS
135 INTEGER SPTFL,BID(LNOPT1),IUD,IGRPP_R2R(2,NGRNOD),FLAG_T24T25
136 INTEGER SUB_ID,IDTITL,IDINT,GR_BRIC,NUMC
137 INTEGER NTRANS,NNODE_TRANSFORM,NODE_TRANSFORM(6)
138 INTEGER GRNOD_T24T25
139 INTEGER NSENSOR
140 my_real f,nul_m
141 CHARACTER MESS*40,TSENS*40
142 CHARACTER(LEN=NCHARTITLE) :: TITR
143 CHARACTER(LEN=NCHARKEY) :: KEY,KEY2
144 CHARACTER(LEN=NCHARFIELD) :: STRING
145 INTEGER, DIMENSION(:), ALLOCATABLE :: BUF_TEMP
146 DATA mess/'MULTIDOMAIN PREREADING OF OPTIONS'/
147 LOGICAL :: IS_AVAILABLE
148C=======================================================================
149
150C--------------------------------------------------------------------C
151C---Counting of nodes / elts for groups and surfaces-----------------C
152C--------------------------------------------------------------------C
153
154 CALL r2r_count(passe,iparts,
155 . ipartc,ipartg,igrpp_r2r ,pm_stack , iworksh,
156 . igrnod,igrsurf,igrslin,igrbric,ixs10,
157 . ixs20,ixs16)
158
159C--------------------------------------------------------------------C
160C------Detection of incompatible options-----------------------------C
161C--------------------------------------------------------------------C
162
163 IF (passe==0) THEN
164
165C-----DAMPING--------------------------------------------------------
166
167 IF (ndamp>0) THEN
168 CALL ancmsg(msgid=837,
169 . msgtype=msgwarning,
170 . anmode=aninfo_blind_1,
171 . c1="/DAMP")
172 ndamp = 0
173 ENDIF
174
175C----- Flexible body -----------------------------------------------------------------------------
176
177 IF (nfxbody>0) THEN
178 CALL ancmsg(msgid=837,
179 . msgtype=msgwarning,
180 . anmode=aninfo,
181 . c1="/FXBODY")
182 nfxbody = 0
183 ENDIF
184
185C-----AMS - temporarily incompatible----------------------------------
186 IF (isms>0) THEN
187 CALL ancmsg(msgid=835,
188 . msgtype=msgerror,
189 . anmode=aninfo,
190 . c1="/AMS")
191 ENDIF
192
193C--------------------------------------------------------------------C
194C------Prereading and tag of SECTIONS--------------------------------C
195C--------------------------------------------------------------------C
196
197 CALL prelecsec(
198 1 nul ,nul ,itabm1 ,1 ,nom_opt(lnopt1*inom_opt(8)+1),
199 2 igrbric ,igrquad ,igrsh4n ,igrsh3n ,igrtruss,
200 3 igrbeam ,igrspring ,igrnod, lsubmodel , seatbelt_shell_to_spring,
201 4 nb_seatbelt_shells)
202
203C--------------------------------------------------------------------C
204C------Prereading and tag of Accelerometers--------------------------C
205C--------------------------------------------------------------------C
206 CALL hm_option_start('/ACCEL')
207 DO i = 1, naccelm
208 CALL hm_option_read_key(lsubmodel, option_titr = titr, option_id = id)
209 CALL hm_get_intv('nodeid', nod, is_available, lsubmodel)
210 CALL hm_get_intv('skewid', isk, is_available, lsubmodel)
211 CALL hm_get_floatv('cutoff', f, is_available, lsubmodel, unitab)
212 nod = usr2sys(nod, itabm1, mess, id)
213 CALL modif_tag(tagno(npart + nod), 2, modif)
214 ENDDO
215C--------------------------------------------------------------------C
216C------Prereading and tag of Transformations-------------------------C
217C--------------------------------------------------------------------C
218 ntrans = 0
219 CALL hm_option_count('TRANSFORM',ntrans)
220 CALL hm_option_start('TRANSFORM')
221 DO i=1,ntrans
222 CALL hm_option_read_key(lsubmodel,
223 . option_id = id,
224 . option_titr = titr,
225 . keyword2 = key)
226C----
227 IF (key(1:3)/='MAT') THEN
228 CALL hm_get_intv('node1',n1,is_available,lsubmodel)
229 CALL hm_get_intv('node2',n2,is_available,lsubmodel)
230 IF (n1/=0) THEN
231 n1=usr2sys(n1,itabm1,mess,ni)
232 IF (tagno(npart+n1)==-1) CALL modif_tag(tagno(npart+n1),0,modif)
233 ENDIF
234 IF (n2/=0) THEN
235 n2=usr2sys(n2,itabm1,mess,ni)
236 IF (tagno(npart+n2)==-1) CALL modif_tag(tagno(npart+n2),0,modif)
237 ENDIF
238 ENDIF
239C----
240 ENDDO
241C--------------------------------------------------------------------C
242C------Prereading and tag of Sensors---------------------------------C
243C--------------------------------------------------------------------C
244
245 CALL hm_option_start('/SENSOR')
246 CALL hm_option_count('/SENSOR', nsensor)
247C
248 DO i=1,nsensor
249 CALL hm_option_read_key(lsubmodel,
250 . option_id = isens, keyword2 = key )
251 IF (key(1:4) == 'DIST'.OR. key(1:5) == 'TYPE2') THEN
252 CALL hm_get_intv ('N1' ,n1 ,is_available,lsubmodel)
253 CALL hm_get_intv ('N2' ,n2 ,is_available,lsubmodel)
254 n1 = usr2sys(n1,itabm1,mess,ni)
255 CALL modif_tag(tagno(npart+n1),2,modif)
256 n2 = usr2sys(n2,itabm1,mess,ni)
257 CALL modif_tag(tagno(npart+n2),2,modif)
258 ELSEIF (key(1:5) == 'INTER'.OR.key(1:5) == 'TYPE6') THEN
259 CALL ancmsg(msgid=835, msgtype=msgerror, anmode=aninfo,
260 . c1="/SENSOR/INTER")
261 ELSEIF (key(1:4) == 'RWAL'.OR.key(1:5) == 'TYPE7') THEN
262 CALL ancmsg(msgid=835, msgtype=msgerror, anmode=aninfo,
263 . c1="/SENSOR/RWALL")
264 ELSEIF (key(1:3) == 'VEL' .OR. key(1:5) == 'TYPE9') THEN
265c READ(IIN,REC=IREC,ERR=999,FMT=FMT_I_2F)N1,NUL,NUL
266c N1 = USR2SYS(N1,ITABM1,MESS,NI)
267c CALL MODIF_TAG(TAGNO(NPART+N1),2,MODIF)
268 ELSEIF (key(1:4) /='SENS'.AND.key(1:5)/='TYPE3'
269 . .AND.key(1:3)/='AND'.AND.key(1:5)/='TYPE4'
270 . .AND.key(1:2)/='OR'.AND.key(1:5)/='TYPE5'
271 . .AND.key(1:3)/='NOT'.AND.key(1:5)/='TYPE8'
272 . .AND.key(1:4)/='TIME'.AND.key(1:5)/='TYPE0'
273 . .AND.key(1:4)/='ACCE'.AND.key(1:5)/='TYPE1') THEN
274 tsens = '/SENSOR/'//key(1:5)
275 CALL ancmsg(msgid=835, msgtype=msgerror, anmode=aninfo,
276 . c1=tsens)
277 ENDIF
278 END DO
279C
280C----------------------------------------------------------------------------------C
281C------Prereading and tag of elements/nodes for GAUGES-----------------------------C
282C----------------------------------------------------------------------------------C
283
284 CALL hm_option_start('/GAUGE')
285
286 ALLOCATE(taggau(nbgauge))
287 taggau(:)=0
288
289 DO i=1,nbgauge
290 key=''
291 CALL hm_option_read_key(lsubmodel,
292 . option_id = id,
293 . keyword2 = key )
294
295 flg = 0
296 IF (key(1:3) == 'SPH') cycle
297
298 taggau(i) = id
299
300 CALL hm_get_intv ('NODE1' ,nod ,is_available,lsubmodel)
301 CALL hm_get_intv ('shell_ID' ,ids ,is_available,lsubmodel)
302 IF ((nod== 0).AND.(ids /= 0)) THEN
303 flg = 1
304 !gauges defined by element-------------------------------------
305 DO j=1,numelc
306 IF(ixc(nixc*j)==ids)THEN
307 ids = j
308 EXIT
309 ENDIF
310 ENDDO
311 IF (tag_elc(ids+npart) < 1) THEN
312 CALL modif_tag(tag_elc(ids+npart),1,modif)
313 ENDIF
314 ELSEIF ((nod/=0).AND.(ids==0)) THEN
315 !gauges defined by nodes---------------------------------------
316 nod=usr2sys(nod,itabm1,mess,id)
317 CALL modif_tag(tagno(npart+nod),2,modif)
318 ENDIF
319 END DO
320
321C-----Prereading and tag of elements/nodes for GAUGES and /GAUGE/SPH-------
322 CALL hm_option_start('/GAUGE')
323 DO i=1,nbgauge
324 key=''
325 CALL hm_option_read_key(lsubmodel,
326 . option_id = id,
327 . keyword2 = key )
328
329 flg = 0
330 IF (key(1:3) == 'SPH') THEN
331
332 taggau(i) = -id
333
334 CALL hm_get_intv ('NODE1' ,nod ,is_available,lsubmodel)
335 CALL hm_get_intv ('shell_ID' ,ids ,is_available,lsubmodel)
336 IF ((nod== 0).AND.(ids /= 0)) THEN
337 flg = 1
338 !gauges defined by element-------------------------------------
339 DO j=1,numelc
340 IF(ixc(nixc*j)==ids)THEN
341 ids = j
342 EXIT
343 ENDIF
344 ENDDO
345 IF (tag_elc(ids+npart) < 1) THEN
346 CALL modif_tag(tag_elc(ids+npart),1,modif)
347 ENDIF
348 ELSEIF ((nod/=0).AND.(ids==0)) THEN
349 !gauges defined by nodes---------------------------------------
350 nod=usr2sys(nod,itabm1,mess,id)
351 CALL modif_tag(tagno(npart+nod),2,modif)
352 ENDIF
353 ENDIF
354 END DO
355C----------------------------------------------------------------------------------C
356C------Prereading and tag of MONVOL------------------------------------------------C
357C----------------------------------------------------------------------------------C
358
359 ni=0
360 ALLOCATE(tagmon(nmonvol + nvolu))
361 tagmon(:)=0
362
363C-------------------------------------------------------------------C
364C---------------------------- New Reader ---------------------------C
365C-------------------------------------------------------------------C
366
367 CALL hm_option_start('/MONVOL')
368 compt = 0
369C
370 DO i=1,nmonvol
371C
372 CALL hm_option_read_key(lsubmodel,
373 . option_id = id_mon,
374 . keyword2 = key)
375C
376 IF (key(1:7) == 'AIRBAG1') THEN
377 CALL hm_get_intv('surf_IDex', isur, is_available, lsubmodel)
378 ELSEIF ((key(1:4) == 'PRES').OR.(key(1:6) == 'AIRBAG')) THEN
379 CALL hm_get_intv('entityiddisplayed', isur, is_available, lsubmodel)
380 ELSE
381 CALL hm_get_intv('surf_IDex', isur, is_available, lsubmodel)
382 ENDIF
383C
384 isurs = 0
385 DO j=1,nsurf
386 IF(isur==igrsurf(j)%ID) isurs=j
387 ENDDO
388C ---> error - tag for error in in reading of monvol <---
389 IF (isurs==0) GOTO 139
390C
391 IF (igrsurf(isurs)%NSEG>0) THEN
392 IF (isurf_r2r(3,isurs)==igrsurf(isurs)%NSEG) THEN
393C ---> case normal <---
394 GOTO 139
395 ELSEIF (isurf_r2r(3,isurs)/=0) THEN
396C ---> case monvol between domains - not allowed <---
397 CALL ancmsg(msgid=836,
398 . msgtype=msgerror,
399 . anmode=aninfo,
400 . i1=id_mon)
401 ENDIF
402 ENDIF
403C
404 GOTO 140
405139 tagmon(i)=id_mon
406 compt = compt+1
407140 CONTINUE
408C
409 END DO
410C
411 new_hm_nvolu = compt
412 new_nvolu = 0
413
414 ENDIF
415
416C--------------------------------------------------------------------C
417C------Prereading and tag of Cyl joints -> icompatible with interface-C
418C--------------------------------------------------------------------C
419
420 CALL hm_option_start('/CYL_JOINT')
421 IF (passe==0) ALLOCATE(tagcyl(njoint))
422 tagcyl(:)=0
423 compt = 0
424
425 DO i=1,njoint
426 CALL hm_option_read_key(lsubmodel,
427 . option_id = id_cyl)
428 CALL hm_get_intv('independentnode',n1,is_available,lsubmodel)
429 CALL hm_get_intv('dependentnodes',n2,is_available,lsubmodel)
430 CALL hm_get_intv('dependentnodeset',igu,is_available,lsubmodel)
431C---------------------------------------------------------------------
432 gr_id = 0
433 DO j=1,ngrnod
434 IF (igrnod(j)%ID==igu) gr_id = j
435 END DO
436 n1=usr2sys(n1,itabm1,mess,id_cyl)
437 n2=usr2sys(n2,itabm1,mess,id_cyl)
438C---------Tag of error situation--------------------------------------
439 IF (gr_id==0) THEN
440 igr2_temp = 0
441 igr8_temp = 0
442 igr9_temp = 0
443 ELSE
444 igr2_temp = igrnod(gr_id)%NENTITY
445 igr8_temp = igrnod(gr_id)%R2R_ALL
446 igr9_temp = igrnod(gr_id)%R2R_SHARE
447 ENDIF
448C--------- n1 et n2 must be taken into account in the interface-------
449 IF (tagno(n1+npart)>1) igr9_temp=igr9_temp+1
450 IF (tagno(n2+npart)>1) igr9_temp=igr9_temp+1
451 IF (tagno(n1+npart)>0) igr8_temp=igr8_temp+1
452 IF (tagno(n2+npart)>0) igr8_temp=igr8_temp+1
453 IF (tagno(n1+npart)/=0) igr2_temp=igr2_temp+1
454 IF (tagno(n2+npart)/=0) igr2_temp=igr2_temp+1
455C---------------------------------------------------------------------
456 IF (igr8_temp>0) THEN
457 diff = igr2_temp-igr8_temp
458 IF ((igr9_temp>0).OR.(diff/=0)) THEN
459C--------CYL_JOINTS on the interface----------------------------------
460 IF (gr_id>0) THEN
461 DO j=1,igrnod(gr_id)%NENTITY
462 cur_id = igrnod(gr_id)%ENTITY(j)
463 IF (tagno(cur_id+npart)<3) THEN
464 CALL modif_tag(tagno(npart+cur_id),5,modif)
465 ENDIF
466 END DO
467 ENDIF
468 IF (tagno(n1+npart)<3) THEN
469 CALL modif_tag(tagno(npart+n1),5,modif)
470 ENDIF
471 IF (tagno(n2+npart)<3) THEN
472 CALL modif_tag(tagno(npart+n2),5,modif)
473 ENDIF
474 ENDIF
475 compt = compt + 1
476C--------Tag of CYL_JOINT to keep it----------------------------------
477 tagcyl(i)=id_cyl
478 ENDIF
479
480350 CONTINUE
481 END DO
482
483 new_njoint = compt
484
485C--------------------------------------------------------------------C
486C------Prereading and tag of MPC -> icompatible with interface-------C
487C--------------------------------------------------------------------C
488
489 CALL hm_option_start('/MPC')
490 IF (passe==0) ALLOCATE(tagmpc(nummpc))
491 tagmpc(:)=0
492 compt = 0
493
494 DO i=1,nummpc
495 compt_m = 0
496 compt_s = 0
497 CALL hm_option_read_key(lsubmodel,
498 . option_id = id_mpc,
499 . option_titr = titr)
500 CALL hm_get_intv('number_of_nodes',numc,is_available,lsubmodel)
501 DO j=1,numc
502 CALL hm_get_int_array_index('node_ID',n1,j,is_available,lsubmodel)
503 n2 = usr2sys(n1,itabm1,mess,id_mpc)
504 IF (tagno(n2+npart)>=0) compt_m=compt_m+1
505 IF (tagno(n2+npart)>1) compt_s=compt_s+1
506 IF (tagno(n2+npart)<=0) compt_s=compt_s+1
507 END DO
508C-----check if MPC must be kept----------------------------------
509 IF (compt_m>0) THEN
510 IF (compt_s==0) THEN
511C-----MPC intern ->
512 tagmpc(i) = id_mpc
513 compt = compt + 1
514 ELSE
515C--------Temporarily MPC is not allowed on interface
516 CALL ancmsg(msgid=896,
517 . msgtype=msgerror,
518 . anmode=aninfo,
519 . c1="/MPC",
520 . i1=id_mpc)
521 ENDIF
522 ENDIF
523 END DO
524
525 new_nummpc = compt
526
527C--------------------------------------------------------------------C
528C------Prereading and tag of GJOINTS -> icompatible with interface---C
529C--------------------------------------------------------------------C
530C
531 CALL hm_option_start('/GJOINT')
532 IF (passe==0) ALLOCATE(tagjoin(ngjoint))
533 tagjoin(:)=0
534 compt = 0
535
536 DO i=1,ngjoint
537 compt_m = 0
538 compt_s = 0
539C
540 CALL hm_option_read_key(lsubmodel,
541 . option_id = id_join,
542 . option_titr = titr,
543 . keyword2 = key2)
544C
545 CALL hm_get_intv('node_ID0',nu(1),is_available,lsubmodel)
546 CALL hm_get_intv('node_ID1',nu(2),is_available,lsubmodel)
547 CALL hm_get_intv('node_ID2',nu(3),is_available,lsubmodel)
548 CALL hm_get_intv('node_ID3',nu(4),is_available,lsubmodel)
549C
550 val = 3
551 IF(key2(1:4)=='DIFF') val = 4
552
553 DO j=1,val
554 ns(j) = usr2sys(nu(j),itabm1,mess,id_join)
555 IF (tagno(ns(j)+npart)>=0) compt_m=compt_m+1
556 IF (tagno(ns(j)+npart)>1) compt_s=compt_s+1
557 IF (tagno(ns(j)+npart)<=0) compt_s=compt_s+1
558 END DO
559
560C-----check if GJOINT must be kept----------------------------------
561 IF (compt_m>0) THEN
562 IF (compt_s==0) THEN
563C-----GJOINT intern ->
564 tagjoin(i) = id_join
565 compt = compt + 1
566 ELSE
567C--------Temporarily GJOINT is not allowed on interface
568 CALL ancmsg(msgid=896,
569 . msgtype=msgerror,
570 . anmode=aninfo,
571 . c1="/GJOINT",
572 . i1=id_join)
573 ENDIF
574 ENDIF
575 END DO
576
577 new_ngjoint = compt
578
579C--------------------------------------------------------------------C
580C------Prereading and tag of RBE2 -> icompatible with interface------C
581C--------------------------------------------------------------------C
582
583 IF (passe==0) ALLOCATE(tagrb2(nrbe2))
584 tagrb2(:)=0
585 compt = 0
586
587 CALL hm_option_start('/RBE2')
588 DO i=1,nrbe2
589
590 CALL hm_option_read_key(lsubmodel,
591 . option_id = id_rbe2,
592 . option_titr = titr)
593C
594 CALL hm_get_intv('independentnode',n1,is_available,lsubmodel)
595 CALL hm_get_intv('dependentnodeset',igu,is_available,lsubmodel)
596C
597 n2 = usr2sys(n1,itabm1,mess,id_rbe2)
598 gr_id=0
599 DO j=1,ngrnod
600 IF (igrnod(j)%ID==igu) gr_id = j
601 END DO
602C---------tag of error situation--------------------------------------
603 IF (gr_id==0) THEN
604 compt = compt + 1
605 tagrb2(i)=id_rbe2
606 GOTO 360
607 ENDIF
608C---------------------------------------------------------------------
609 compt_m = igrnod(gr_id)%R2R_ALL
610 compt_s = igrnod(gr_id)%R2R_SHARE
611 IF (tagno(n2+npart)>=0) compt_m=compt_m+1
612 IF (tagno(n2+npart)>1) compt_s=compt_s+1
613 IF (tagno(n2+npart)<=0) compt_s=compt_s+1
614C-----check if RBE2 must be kept--------------------------------------
615 IF (compt_m>0) THEN
616 IF (compt_s==0) THEN
617C-----RBE2 intern ->
618 tagrb2(i) = id_rbe2
619 compt = compt + 1
620 ELSE
621C--------Temporarily RBE2 is not allowed on interface
622 CALL ancmsg(msgid=896,
623 . msgtype=msgerror,
624 . anmode=aninfo,
625 . c1="/RBE2",
626 . i1=id_rbe2)
627 ENDIF
628 ENDIF
629360 CONTINUE
630 END DO
631
632 new_nrbe2 = compt
633
634C--------------------------------------------------------------------C
635C------Prereading and tag of RBE. -> icompatible with interface------C
636C--------------------------------------------------------------------C
637
638 IF (passe==0) ALLOCATE(tagrb3(nrbe3))
639 tagrb3(:)=0
640 compt = 0
641 CALL hm_option_start('/RBE3')
642
643 DO i=1,nrbe3
644 compt_s = 0
645 compt_m = 0
646 CALL hm_option_read_key(lsubmodel,
647 . option_id = id_rbe3,
648 . option_titr = titr)
649 CALL hm_get_intv('dependentnode',n1,is_available,lsubmodel)
650 CALL hm_get_intv('nset',val,is_available,lsubmodel)
651
652 ALLOCATE(buf_temp(val))
653 n2 = usr2sys(n1,itabm1,mess,id_rbe3)
654C-----Reading of groups------------------------------------------
655 DO l=1,val
656 CALL hm_get_float_array_index('independentnodesetcoeffs',f,l,is_available,lsubmodel,unitab)
657 CALL hm_get_int_array_index('independentnodesets',igu,l,is_available,lsubmodel)
658 DO j=1,ngrnod
659 IF (igrnod(j)%ID==igu) gr_id = j
660 END DO
661 buf_temp(l)=gr_id
662 compt_m = compt_m + igrnod(gr_id)%R2R_ALL
663 compt_s = compt_s + igrnod(gr_id)%R2R_SHARE
664 END DO
665
666 IF (tagno(n2+npart)>=0) compt_m=compt_m+1
667 IF (tagno(n2+npart)>1) compt_s=compt_s+1
668 IF (tagno(n2+npart)<=0) compt_s=compt_s+1
669
670C-----check if RBE3 must be kept----------------------------------
671 IF (compt_m>0) THEN
672 IF (compt_s==0) THEN
673C-----RBE3 intern ->
674 tagrb3(i) = id_rbe3
675 compt = compt + 1
676 ELSE
677C-----RBE3 between domains -> all nodes on the interface
678 IF (tagno(npart+n2)/=-1) THEN
679C-----tag of rbe3 that can see secondary nodes
680 tagrb3(i) = id_rbe3
681 compt = compt +1
682 ENDIF
683 DO l=1,val
684 gr_id = buf_temp(l)
685 DO j=1,igrnod(gr_id)%NENTITY
686 cur_id = igrnod(gr_id)%ENTITY(j)
687 IF (tagno(cur_id+npart)<3) THEN
688 CALL modif_tag(tagno(npart+cur_id),4,modif)
689 ENDIF
690 END DO
691 END DO
692 ENDIF
693 ENDIF
694 DEALLOCATE(buf_temp)
695 END DO
696
697 new_nrbe3 = compt
698
699C--------------------------------------------------------------------C
700C------Prereading and tag of Rigid links -> icompatible with interface-C
701C--------------------------------------------------------------------C
702
703 IF (passe==0) ALLOCATE(taglnk(nlink))
704 taglnk(:)=0
705 compt = 0
706 CALL hm_option_start('/RLINK')
707
708 DO i=1,nlink
709 CALL hm_option_read_key(lsubmodel,
710 . option_id = id_rlink,
711 . option_titr = titr)
712 CALL hm_get_intv('dependentnodeset' ,igu ,is_available,lsubmodel)
713C---------------------------------------------------------------------
714 gr_id = 0
715 DO j=1,ngrnod
716 IF (igrnod(j)%ID==igu) gr_id = j
717 END DO
718C
719 IF (gr_id > 0) THEN
720C-----check if rlink must be kept-----------------------------------
721 tag = 0
722 nod=igrnod(gr_id)%R2R_ALL
723 IF (igrnod(gr_id)%R2R_SHARE==0) tag = 1
724C-----tag of rlink and of all nodes--------------------------------
725 IF (nod>0) THEN
726 compt = compt+1
727 taglnk(i)=id_rlink
728 IF(tag/=1) THEN
729C-----RLINK between domains -> all nodes on the interface
730 DO j=1,igrnod(gr_id)%NENTITY
731 cur_id = igrnod(gr_id)%ENTITY(j)
732 IF (tagno(cur_id+npart)<3) THEN
733 CALL modif_tag(tagno(npart+cur_id),5,modif)
734 ENDIF
735 END DO
736 ENDIF
737 ENDIF
738 ENDIF
739C
740 END DO
741
742 new_nlink = compt
743C
744C-------------------------------------------------------------------C
745C------Prereading and tag of contact interfaces --------------------C
746C---- if contact between domains > pretag of needed elements-------C
747C-------------------------------------------------------------------C
748C
749 compt_t2 = 0
750 nb_int = 0
751 kcur = kinter
752C
753C--> for TYPE19 interfaces NSLASH(KCUR) > NINTER because of specific /card for TYPE19
754 IF (passe==0) ALLOCATE(tagint(hm_ninter+nslash(kcur)),tagint_warn(ninter+1))
755C
756C-- -> FOR TAGINT subinterfaces are stored with interfaces in order of the reader
757C-- -> TAGINT( --- INTER new reader + SUB interfaces --- INTER old reader -- )
758C
759 tagint(:)=0
760 tagint_warn(:)=0
761 flg_tied(:) = 0
762C
763C-------------------------------------------------------------------C
764C---------------------------- New Reader ---------------------------C
765C-------------------------------------------------------------------C
766C
767 CALL hm_option_start('/INTER')
768 ni = 0
769 compt = 0
770C
771 DO i=1,hm_ninter
772C
773 tag = 0
774 val = iddom
775 type2 = 0
776C
777 CALL hm_option_read_key(lsubmodel,
778 . option_id = id_inter,
779 . unit_id = nul,
780 . submodel_id = sub_id,
781 . option_titr = titr,
782 . keyword2 = key,
783 . keyword3 = key2)
784C
785 tag = 0
786 val = iddom
787 type2 = 0
788C
789 flg = 0
790 IF (key(6:6)=='/') flg = 1
791 IF ((len_trim(key))==5) flg = 1
792c
793 grnod_t24t25 = 0
794 flag_t24t25 = 0
795 IF ((key(1:6)=='TYPE24').OR.(key(1:6)=='TYPE25')) THEN
796 flag_t24t25 = 1
797 CALL hm_get_intv('secondaryentityids',grs,is_available,lsubmodel)
798 CALL hm_get_intv('GRNOD_ID',grnod_t24t25,is_available,lsubmodel)
799C if grs and grnod are defined grnod is ignored
800 IF ((grs > 0).AND.(grnod_t24t25 > 0)) grnod_t24t25 = 0
801 ENDIF
802C
803C ---------> case nodes/surfaces---------------------------------------
804 IF (((key(1:5)=='TYPE2').AND.(flg==1)).OR.
805 . (key(1:5)=='TYPE7').OR.(key(1:5)=='TYPE5').OR.(key(1:5)=='TYPE8').OR.
806 . (key(1:6)=='TYPE10').OR.(key(1:6)=='TYPE14').OR.
807 . ((key(1:6)=='TYPE24').AND.(grnod_t24t25 > 0)).OR.
808 . ((key(1:6)=='TYPE25').AND.(grnod_t24t25 > 0))) THEN
809 cont = 1
810 CALL hm_get_intv('secondaryentityids',grs,is_available,lsubmodel)
811 CALL hm_get_intv('mainentityids',grm,is_available,lsubmodel)
812C
813C-- TYPE24 and TYPE25 with secondary side defined by grnod
814 IF (flag_t24t25 == 1) grs = grnod_t24t25
815C
816C--> type2 interfaces with penality are treated like type7 <------C
817 IF ((key(1:5)=='TYPE2').AND.(flg==1)) THEN
818 CALL hm_get_intv('WFLAG',sptfl,is_available,lsubmodel)
819 IF ((sptfl/=25).AND.(sptfl/=26)) THEN
820 cont = 0
821 type2 = 1
822 ENDIF
823 ENDIF
824
825C--> check if the contact is between domains and if it is asymmetric <------C
826 CALL tagint_r2r(g1,g2,grs,grm,id_inter,
827 . type2,val,tag,i,compt,passe,0,igrpp_r2r,
828 . igrnod ,igrsurf ,igrslin, igrbric)
829
830C--> for type 2 contact type5 r2r coupling is used to prevent null mass on nodes
831 IF (type2==1) THEN
832 DO j=1,igrnod(g1)%NENTITY
833 cur_id = igrnod(g1)%ENTITY(j)
834 IF (tagno(cur_id+npart)==2) flg_tied(4) = 1
835 IF (tagno(cur_id+npart)==4) flg_tied(5) = 1
836 END DO
837 ENDIF
838C-->
839 IF (tag>0) THEN
840 compt_t2 = compt_t2 + 1
841C--> pretag of elts on main side of contact to keep them with void material <---C
842 IF ((tag==3).OR.(tag==1).OR.(tag==4)) THEN
843 CALL tag_elem_void_r2r(igrsurf(g2)%NSEG,iparts,
844 . ipartc,ipartg,ipartsp,val,cont,modif,memtr,0,0,eani,
845 . igrsurf(g2),igrnod,g2)
846 ENDIF
847C--> pretag of elts on second. side of contact to keep them with void material <---C
848 IF ((tag==2).OR.(tag==1)) THEN
849 CALL tag_elem_void_r2r(igrnod(g1)%NENTITY,iparts,
850 . ipartc,ipartg,ipartsp,val,cont,modif,memtr,0,1,eani,
851 . igrsurf,igrnod,g1)
852 ENDIF
853 ENDIF
854C
855C ---------> case of TYPE18 contact interface---------------------------------------
856 ELSEIF (key(1:6) == 'TYPE18') THEN
857 cont = 1
858 CALL hm_get_intv('ALEelemsEntityids',gr_bric,is_available,lsubmodel)
859 CALL hm_get_intv('ALEnodesEntityids',grs,is_available,lsubmodel)
860 CALL hm_get_intv('mainentityids',grm,is_available,lsubmodel)
861
862C--> check if the contact is between domains and if it is asymmetric <------C
863 IF (grs > 0) THEN
864 CALL tagint_r2r(g1,g2,grs,grm,id_inter,
865 . type2,val,tag,i,compt,passe,0,igrpp_r2r,
866 . igrnod ,igrsurf ,igrslin, igrbric)
867 ELSEIF (gr_bric > 0) THEN
868 CALL tagint_r2r(g1,g2,gr_bric,grm,id_inter,
869 . type2,val,tag,i,compt,passe,3,igrpp_r2r,
870 . igrnod ,igrsurf ,igrslin, igrbric)
871 ENDIF
872C-->
873 IF (tag > 0) THEN
874 compt_t2 = compt_t2 + 1
875C--> pretag of elts on main side of contact to keep them with void material <---C
876 IF ((tag == 3) .OR. (tag == 1) .OR. (tag == 4)) THEN
877 CALL tag_elem_void_r2r(igrsurf(g2)%NSEG,iparts,
878 . ipartc,ipartg,ipartsp,val,cont,modif,memtr,0,0,eani,
879 . igrsurf(g2),igrnod,g2)
880 ENDIF
881C--> pretag of elts on second. side of contact to keep them with void material <---C
882 IF ((tag == 2) .OR. (tag == 1)) THEN
883 IF (grs > 0) THEN
884 CALL tag_elem_void_r2r(igrnod(g1)%NENTITY,iparts,
885 . ipartc,ipartg,ipartsp,val,cont,modif,memtr,0,1,eani,
886 . igrsurf,igrnod,g1)
887 ELSEIF (gr_bric > 0) THEN
888 DO j=1,igrbric(g1)%NENTITY
889 cur_id = igrbric(g1)%ENTITY(j)
890C------------------------> Tag of solid elements of grbric <-------------C
891 IF ((tag_els(cur_id+npart)<(1+cont)).AND.(tagno(iparts(cur_id))/=val)) THEN
892 CALL modif_tag(tag_els(cur_id+npart),1+cont,modif)
893 ENDIF
894 ENDDO
895 ENDIF
896 ENDIF
897 ENDIF
898C
899 ELSEIF (key(1:6)=='TYPE11') THEN
900 cont = 1
901 warn = 0
902 CALL hm_get_intv('secondaryentityids',grs,is_available,lsubmodel)
903 CALL hm_get_intv('mainentityids',grm,is_available,lsubmodel)
904C--> check if the contact is between domains and if it is asymmetric <------C
905 CALL tagint_r2r(g1,g2,grs,grm,id_inter,
906 . type2,val,tag,i,compt,passe,2,igrpp_r2r,
907 . igrnod ,igrsurf ,igrslin, igrbric)
908 IF (tag>0) THEN
909 compt_t2 = compt_t2 + 1
910C--> pretag of elts of line1 to keep them with void material <---C
911 IF ((tag==2).OR.(tag==1)) THEN
912 CALL tag_elem_void_r2r_lin(igrslin(g1)%NSEG,
913 . iparts,ipartc,ipartg,ipartt,ipartp,ipartr,val,cont,
914 . modif,warn,igrslin(g1))
915 ENDIF
916C--> pretag of elts of line2 to keep them with void material <---C
917 IF ((tag==3).OR.(tag==1)) THEN
918 CALL tag_elem_void_r2r_lin(igrslin(g2)%NSEG,
919 . iparts,ipartc,ipartg,ipartt,ipartp,ipartr,val,cont,
920 . modif,warn,igrslin(g2))
921 ENDIF
922 ENDIF
923 IF (warn==1) THEN
924 CALL ancmsg(msgid=892,
925 . msgtype=msgerror,
926 . anmode=anstop,
927 . i1=id_inter)
928 ENDIF
929 ELSEIF (key(1:6)=='TYPE24'.OR.key(1:6)=='TYPE21'.OR.key(1:5)=='TYPE6'.OR.
930 . key(1:6)=='TYPE23'.OR.key(1:6)=='TYPE20'.OR.key(1:6)=='TYPE15'.OR.
931 . key(1:6)=='TYPE25'.OR.((key(1:5)=='TYPE3').AND.(flg==1))) THEN
932 cont = 1
933 CALL hm_get_intv('secondaryentityids',grs,is_available,lsubmodel)
934 CALL hm_get_intv('mainentityids',grm,is_available,lsubmodel)
935 IF ((flag_t24t25 == 1).AND.(grm==0)) grm = grs
936C--> check if the contact is between domains and if it is asymmetric <------C
937 CALL tagint_r2r(g1,g2,grs,grm,id_inter,
938 . type2,val,tag,i,compt,passe,1,igrpp_r2r,
939 . igrnod ,igrsurf ,igrslin, igrbric)
940 IF (tag>0) THEN
941 compt_t2 = compt_t2 + 1
942C--> pretag of elts of surface 1 to keep them with void material <---C
943 IF ((tag==2).OR.(tag==1)) THEN
944 CALL tag_elem_void_r2r(igrsurf(g1)%NSEG,iparts,
945 . ipartc,ipartg,ipartsp,val,cont,modif,memtr,0,0,eani,
946 . igrsurf(g1),igrnod,g1)
947 ENDIF
948C--> pretag of elts of surface 2 to keep them with void material <---C
949 IF ((tag==3).OR.(tag==1)) THEN
950 CALL tag_elem_void_r2r(igrsurf(g2)%NSEG,iparts,
951 . ipartc,ipartg,ipartsp,val,cont,modif,memtr,0,0,eani,
952 . igrsurf(g2),igrnod,g2)
953 ENDIF
954 ENDIF
955C
956C ---------> other contact interfaces not compatible with multidomains
957 ELSEIF (key(1:3)/='SUB') THEN
958 CALL ancmsg(msgid=835,
959 . msgtype=msgerror,
960 . anmode=aninfo,
961 . i1=id_inter,
962 . c1=line(1:13))
963 ENDIF
964
965 END DO
966C
967 new_hm_ninter = compt
968 new_ninter = 0
969 new_nslash_int = 0
970C
971C-------------------------------------------------------------------C
972C------Prereading and tag of ∕INTER/SUB ----------------------------C
973C-------------------------------------------------------------------C
974C
975 CALL hm_option_start('/INTER')
976C
977 compt = 0
978 DO i=1,hm_ninter
979C
980 CALL hm_option_read_key(lsubmodel,
981 . option_id = id_inter,
982 . unit_id = nul,
983 . submodel_id = sub_id,
984 . option_titr = titr,
985 . keyword2 = key,
986 . keyword3 = key2)
987C
988 IF (key(1:3)=='SUB') THEN
989 CALL hm_get_intv('InterfaceId',idint,is_available,lsubmodel)
990C
991 DO j=1,hm_ninter+nslash(kcur)
992 IF (tagint(j)==idint) THEN
993 tagint(i) = id_inter
994 compt = compt + 1
995 ENDIF
996 END DO
997
998 ENDIF
999C
1000 END DO
1001C
1002 new_nintsub = compt
1003 new_hm_ninter = new_hm_ninter + compt
1004C
1005C--------------------------------------------------------------------C
1006C------Prereading and tag of rigid bodies ---------------------------C
1007C--------------------------------------------------------------------C
1008
1009 ni=0
1010 nb_rby = 0
1011 nb_kin = 0
1012 nb_lag = 0
1013 IF (passe==0) ALLOCATE(tagrby(nrbody))
1014 tagrby(:)=0
1015 doma = 1
1016
1017C--------------------------------------------------
1018C START BROWSING MODEL RBODY
1019C--------------------------------------------------
1020 CALL hm_option_start('/RBODY')
1021 nrb = 0
1022 DO i=1,nrbody
1023C--------------------------------------------------
1024C EXTRACT DATAS OF /RBODY/... LINE
1025C--------------------------------------------------
1026 key=''
1027 CALL hm_option_read_key(lsubmodel,
1028 . option_id = id_rby,
1029 . keyword2 = key,
1030 . option_titr = titr)
1031C---------
1032 IF(key(1:6)=='LAGMUL') cycle
1033C---------
1034 nrb=nrb+1
1035C---------
1036 CALL hm_get_intv('node_ID',main,is_available,lsubmodel)
1037 CALL hm_get_intv('sens_ID',isens,is_available,lsubmodel)
1038 CALL hm_get_intv('grnd_ID',igu,is_available,lsubmodel)
1039C---------
1040 main=usr2sys(main,itabm1,mess,id_rby)
1041 DO j=1,ngrnod
1042 IF (igrnod(j)%ID==igu) gr_id = j
1043 END DO
1044C-----check if RBODY must be kept----------------------------------
1045 tag = 0
1046 compt=igrnod(gr_id)%R2R_ALL
1047 compt2=igrnod(gr_id)%R2R_SHARE
1048C--> check of tag of the main node
1049 IF (tagno(main+npart)>1) compt = compt + 1
1050 IF (tagno(main+npart)>1) compt2 = compt2 + 1
1051 IF (compt2==0) tag = 1
1052C-----tag of the main node-----------------------------------------
1053 IF (compt>0) THEN
1054 IF(tag==1) THEN
1055C-----RGBODY intern ->
1056 CALL modif_tag(tagno(npart+main),1,modif)
1057 ELSE
1058C-----RGBODY between domains -> all nodes one the r2r interface
1059 IF (tagno(main+npart)<3) THEN
1060 CALL modif_tag(tagno(npart+main),3,modif)
1061 IF (isens/=0) THEN
1062 CALL ancmsg(msgid=976,
1063 . msgtype=msgerror,
1064 . anmode=aninfo,
1065 . c1="FOR RBODY ID=",
1066 . i1=id_rby,
1067 . c2="- RBODY WITH SENSOR")
1068 ENDIF
1069 ENDIF
1070 ENDIF
1071C-----tag of the RBODY to keep it
1072 tagrby(i)=id_rby
1073 nb_rby = nb_rby + 1
1074 nb_kin = nb_kin + 1
1075 ENDIF
1076 END DO
1077 new_nrbykin=nb_kin
1078
1079C--------------------------------------------------
1080C START BROWSING MODEL /RBODY/LAGMUL
1081C--------------------------------------------------
1082 CALL hm_option_start('/RBODY')
1083 nrb = 0
1084 DO i=1,nrbody
1085C--------------------------------------------------
1086C EXTRACT DATAS OF /RBODY/... LINE
1087C--------------------------------------------------
1088 key=''
1089 CALL hm_option_read_key(lsubmodel,
1090 . option_id = id_rby,
1091 . keyword2 = key,
1092 . option_titr = titr)
1093C---------
1094 IF(key(1:6)=='LAGMUL') THEN
1095 nrb=nrb+1
1096C--------Temporarily RBY/LAGMUL are not allowed
1097 CALL ancmsg(msgid=835,
1098 . msgtype=msgerror,
1099 . anmode=aninfo,
1100 . c1=line(1:l+9))
1101C-----------------------------------------------------------------
1102 CALL hm_get_intv('node_ID',main,is_available,lsubmodel)
1103 CALL hm_get_intv('grnd_ID',igu,is_available,lsubmodel)
1104C--------Temporarily RBY/LAGMUL are not allowed
1105 main=usr2sys(main,itabm1,mess,id_rby)
1106 DO j=1,ngrnod
1107 IF (igrnod(j)%ID==igu) gr_id = j
1108 END DO
1109
1110C-----check if RBODY kas to be kept--------------------------------
1111
1112 tag = 0
1113 compt=igrnod(gr_id)%R2R_ALL
1114 compt2=igrnod(gr_id)%R2R_SHARE
1115C--> check of tag of the main node
1116 IF (tagno(main+npart)>1) compt = compt + 1
1117 IF (tagno(main+npart)>1) compt2 = compt2 + 1
1118 IF (compt2==0) tag = 1
1119
1120C-----Tag of the main node-----------------------------------------
1121
1122 IF (compt>0) THEN
1123 IF(tag==1) THEN
1124C-----RGBODY intern ->
1125 CALL modif_tag(tagno(npart+main),1,modif)
1126 ELSE
1127C-----RGBODY between domains -> all nodes one the r2r interface
1128 IF (tagno(main+npart)<3) THEN
1129 CALL modif_tag(tagno(npart+main),3,modif)
1130 ENDIF
1131 ENDIF
1132C-----tag of the RBODY to keep it-----------------------------------
1133 tagrby(i)=id_rby
1134 nb_rby = nb_rby + 1
1135 nb_lag = nb_lag + 1
1136 ENDIF ! IF (COMPT>0) THEN
1137 END IF ! IF(KEY(1:6)=='LAGMUL') THEN
1138 END DO
1139
1140 new_nrby = nb_rby
1141 nrbylag = nb_lag
1142
1143C--------------------------------------------------------------------C
1144C------Prereading and tag of /SPHBCS --------------------------------C
1145C--------------------------------------------------------------------C
1146
1147 nspcondn = 0
1148 CALL hm_option_start('/SPHBCS')
1149 IF (passe==0) ALLOCATE(tagsphbcs(nspcond))
1150 tagsphbcs(:) = 0
1151 DO i=1,nspcond
1152 CALL hm_option_read_key(lsubmodel,
1153 . option_id = id,
1154 . option_titr = titr,
1155 . keyword2 = key)
1156 CALL hm_get_intv('entityid',igu,is_available,lsubmodel)
1157C---------------------------------------------------------------------
1158 gr_id = 0
1159 DO j=1,ngrnod
1160 IF (igrnod(j)%ID==igu) gr_id = j
1161 END DO
1162C---------------------------------------------------------------------
1163 compt = 0
1164 DO l=1,igrnod(gr_id)%NENTITY
1165 cur_id = nod2sp(igrnod(gr_id)%ENTITY(l))
1166 IF (tagno(ipartsp(cur_id))/=0) THEN
1167 compt = compt + 1
1168 ENDIF
1169 ENDDO
1170C---------------------------------------------------------------------
1171 IF (compt>0) THEN
1172 nspcondn = nspcondn + 1
1173 tagsphbcs(i) = id
1174 ENDIF
1175 END DO
1176
1177C--------------------------------------------------------------------C
1178C------Prereading /EBCS (for ALE)------------------------------------C
1179C--------------------------------------------------------------------C
1180C
1181 new_nebcs = 0
1182 CALL hm_option_start('/EBCS')
1183 DO i=1,nebcs
1184 CALL hm_option_read_key(lsubmodel,
1185 . option_id = id,
1186 . option_titr = titr)
1187 CALL hm_get_intv('entityid',isur,is_available,lsubmodel)
1188C---------------------------------------------------------------------
1189 isurs = 0
1190 DO j=1,nsurf
1191 IF(isur==igrsurf(j)%ID) isurs=j
1192 ENDDO
1193C---------------------------------------------------------------------
1194C Surface defined on ALE elements only
1195C All EBCS in the domain is ALE -> TAG_EBCS not nedded
1196C detection with segments initially on the domain
1197 IF (isurf_r2r(3,isurs)>0) THEN
1198 new_nebcs = new_nebcs + 1
1199 ENDIF
1200 END DO
1201C
1202C--------------------------------------------------------------------C
1203C------Prereading and tag of inlets/outlets for SPH -----------------C
1204C--------------------------------------------------------------------C
1205
1206
1207 nsphion = 0
1208 IF (passe == 0) ALLOCATE(tagsphio(nsphio))
1209 tagsphio(:) = 0
1210 CALL hm_option_start('/SPH/INOUT')
1211 DO i = 1,nsphio
1212 ! Title and ID
1213 titr = ''
1214 CALL hm_option_read_key(lsubmodel,
1215 . option_id = id,
1216 . option_titr = titr)
1217 CALL hm_get_intv('pid' ,id_part ,is_available,lsubmodel)
1218 CALL hm_get_intv('SURF_ID' ,isur ,is_available,lsubmodel)
1219C--------------------------------------------------------------------
1220 DO j=1,npart
1221 IF (ipart_l(4,j) == id_part) ids = j
1222 ENDDO
1223 DO j=1,nsurf
1224 IF (igrsurf(j)%ID == isur) g2 = j
1225 END DO
1226C--------------------------------------------------------------------
1227 IF (tagno(ids) /= 0) THEN
1228 CALL tag_elem_void_r2r(igrsurf(g2)%NSEG,iparts,
1229 . ipartc,ipartg,ipartsp,1,0,modif,memtr,-2,0,eani,
1230 . igrsurf(g2),igrnod,g2)
1231 nsphion = nsphion + 1
1232 tagsphio(i) = id
1233 ENDIF
1234 END DO
1235
1236C--------------------------------------------------------------------C
1237C------Prereading of ALE/LINK----------------------------------------C
1238C--------------------------------------------------------------------C
1239
1240 CALL hm_option_count('/ALE/LINK/VEL', nalelk)
1241 IF (nalelk > 0) THEN
1242 CALL hm_option_start('/ALE/LINK/VEL')
1243 DO i = 1, nalelk
1244 CALL hm_option_read_key(lsubmodel, option_id = id, option_titr = titr)
1245 CALL hm_get_intv('node_ID1', n1, is_available, lsubmodel)
1246 CALL hm_get_intv('node_ID2', n2, is_available, lsubmodel)
1247 CALL hm_get_intv('grnod_ID', gr_id, is_available, lsubmodel)
1248 DO j = 1, ngrnod
1249 IF (igrnod(j)%ID == gr_id) THEN
1250 gr_id = j
1251 EXIT
1252 ENDIF
1253 ENDDO
1254 n1 = usr2sys(n1, itabm1, mess, id)
1255 n2 = usr2sys(n2, itabm1, mess, id)
1256 IF (n1 > 0) THEN
1257 IF ((igrnod(gr_id)%R2R_ALL > 0) .AND. (tagno(npart+n1) < 1)) THEN
1258 CALL modif_tag(tagno(npart + n1), 2, modif)
1259 ELSEIF ((igrnod(gr_id)%R2R_SHARE > 0) .AND. (tagno(npart+n1) == 1)) THEN
1260 CALL modif_tag(tagno(npart+n1), 2, modif)
1261 ELSEIF (tagno(npart+n1) == 0) THEN
1262 CALL modif_tag(tagno(npart+n1), 2, modif)
1263 ELSEIF (tagno(npart+n1) == -1) THEN
1264 CALL modif_tag(tagno(npart+n1), 0, modif)
1265 ENDIF
1266 ENDIF
1267 IF (n2 > 0) THEN
1268 IF ((igrnod(gr_id)%R2R_ALL > 0) .AND. (tagno(npart+n2) < 1)) THEN
1269 CALL modif_tag(tagno(npart+n2), 2, modif)
1270 ELSEIF ((igrnod(gr_id)%R2R_SHARE > 0) .AND. (tagno(npart+n2) == 1)) THEN
1271 CALL modif_tag(tagno(npart+n2), 2, modif)
1272 ELSEIF (tagno(npart+n2) == 0) THEN
1273 CALL modif_tag(tagno(npart+n2), 2, modif)
1274 ELSEIF (tagno(npart+n2) == -1) THEN
1275 CALL modif_tag(tagno(npart+n2), 0, modif)
1276 ENDIF
1277 ENDIF
1278 ENDDO
1279 ENDIF
1280
1281C--------------------------------------------------------------------C
1282C------Prereading and tag of RWALL-----------------------------------C
1283C--------------------------------------------------------------------C
1284
1285 CALL hm_option_start('/RWALL')
1286C
1287 DO i=1,nrwall
1288C
1289 CALL hm_option_read_key(lsubmodel,
1290 . option_id = id_mon,
1291 . keyword2 = key)
1292C
1293 IF (key(1:7) == 'LAGMUL') THEN
1294C--------RWALL /LAGMUL not allowed with multidomains
1295 CALL ancmsg(msgid=835,
1296 . msgtype=msgerror,
1297 . anmode=aninfo,
1298 . c1=line(1:l+6))
1299 ELSE
1300 CALL hm_get_intv('Node1',nod,is_available,lsubmodel)
1301 IF (nod>0) THEN
1302 nod=usr2sys(nod,itabm1,mess,id)
1303 CALL modif_tag(tagno(npart+nod),4,modif)
1304 ENDIF
1305 ENDIF
1306 ENDDO
1307
1308C--------------------------------------------------------------------C
1309C------Prereading and tag of INIVOL----------------------------------C
1310C--------------------------------------------------------------------C
1311
1312 new_ninivol = 0
1313 IF (passe==0) ALLOCATE(tag_inivol(num_inivol))
1314 tag_inivol(:) = 0
1315 CALL hm_option_start('/INIVOL')
1316
1317 DO i=1,num_inivol
1318 CALL hm_option_read_key(lsubmodel, option_id=id, option_titr=titr)
1319 CALL hm_get_intv('secondarycomponentlist', id_part, is_available, lsubmodel)
1320C
1321 DO j=1,npart
1322 IF(ipart_l(4,j)==id_part) ids=j
1323 ENDDO
1324C
1325 IF (tagno(ids) > 0) THEN
1326 tag_inivol(i) = id
1327 new_ninivol = new_ninivol + 1
1328 ENDIF
1329 ENDDO
1330
1331C--------------------------------------------------------------------C
1332C------Prereading of /TRANSFORM--------------------------------------C
1333C--------------------------------------------------------------------C
1334C
1335 CALL hm_option_count('TRANSFORM',ntrans)
1336 CALL hm_option_start('TRANSFORM')
1337C
1338 DO i=1,ntrans
1339C
1340 CALL hm_option_read_key(lsubmodel,
1341 . option_id = id,
1342 . keyword2 = key)
1343C
1344 nnode_transform = 0
1345 node_transform(1:6) = 0
1346C
1347 IF ((key(1:3)=='TRA').OR.(key(1:3)=='ROT').OR.(key(1:3)=='SYM')) THEN
1348 nnode_transform = 2
1349 CALL hm_get_intv('node1',node_transform(1),is_available,lsubmodel)
1350 CALL hm_get_intv('node2',node_transform(2),is_available,lsubmodel)
1351 ELSEIF (key(1:3)=='SCA') THEN
1352 nnode_transform = 1
1353 CALL hm_get_intv('node1',node_transform(1),is_available,lsubmodel)
1354 ELSEIF (key(1:3)=='POS') THEN
1355 nnode_transform = 6
1356 CALL hm_get_intv('node1',node_transform(1),is_available,lsubmodel)
1357 CALL hm_get_intv('node2',node_transform(2),is_available,lsubmodel)
1358 CALL hm_get_intv('node3',node_transform(3),is_available,lsubmodel)
1359 CALL hm_get_intv('node4',node_transform(4),is_available,lsubmodel)
1360 CALL hm_get_intv('node5',node_transform(5),is_available,lsubmodel)
1361 CALL hm_get_intv('node6',node_transform(6),is_available,lsubmodel)
1362 ENDIF
1363C
1364 DO j=1,nnode_transform
1365 IF (node_transform(j) > 0) THEN
1366 nod=usr2sys(node_transform(j),itabm1,mess,id)
1367 IF (tagno(npart+nod) == -1) CALL modif_tag(tagno(npart+nod),0,modif)
1368 ENDIF
1369 ENDDO
1370C
1371 ENDDO
1372C
1373C--------------------------------------------------------------------C
1374C------Prereading of detonation points-------------------------------C
1375C--------------------------------------------------------------------C
1376 CALL hm_option_start('/DFS/DETPOIN')
1377 DO i=1,detonators%N_DET_POINT
1378 CALL hm_option_read_key(lsubmodel,option_id = id,keyword2 = key)
1379 CALL hm_get_intv('rad_det_node1', nod, is_available, lsubmodel)
1380 IF (nod>0) THEN
1381 nod=usr2sys(nod,itabm1,mess,id)
1382 IF (tagno(npart+nod) == -1) CALL modif_tag(tagno(npart+nod),0,modif)
1383 ENDIF
1384 ENDDO
1385
1386C------------------------------------------------------------------
1387
1388 RETURN
1389
1390C------------------------------------------------------------------
1391
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_count(entity_type, hm_option_number)
initmumps id
integer num_inivol
Definition inivol_mod.F:85
integer, parameter ncharfield
integer, dimension(:), allocatable tag_els
Definition r2r_mod.F:133
integer, dimension(:), allocatable tagsphio
Definition r2r_mod.F:139
integer, dimension(:), allocatable tag_inivol
Definition r2r_mod.F:142
integer, dimension(:), allocatable tagsphbcs
Definition r2r_mod.F:139
integer, dimension(:), allocatable tagrby
Definition r2r_mod.F:132
integer, dimension(:), allocatable tagrb2
Definition r2r_mod.F:138
integer, dimension(:), allocatable tag_elc
Definition r2r_mod.F:133
integer, dimension(:), allocatable tagrb3
Definition r2r_mod.F:138
integer, dimension(:), allocatable tagint
Definition r2r_mod.F:132
integer, dimension(:), allocatable taglnk
Definition r2r_mod.F:138
integer, dimension(:), allocatable tagjoin
Definition r2r_mod.F:138
integer, dimension(:,:), allocatable isurf_r2r
Definition r2r_mod.F:143
integer, dimension(:), allocatable taggau
Definition r2r_mod.F:142
integer, dimension(:), allocatable tagint_warn
Definition r2r_mod.F:137
integer, dimension(:), allocatable tagmpc
Definition r2r_mod.F:140
integer, dimension(:), allocatable tagcyl
Definition r2r_mod.F:137
type(unit_type_) unitab
integer, dimension(:), allocatable nod2sp
Definition restart_mod.F:60
integer, dimension(:), allocatable, target nom_opt
Definition restart_mod.F:60
integer, dimension(:), allocatable ixc
Definition restart_mod.F:60
subroutine prelecsec(snstrf, ssecbuf, itabm1, flag_r2r, nom_opt, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrnod, lsubmodel, seatbelt_shell_to_spring, nb_seatbelt_shells)
Definition prelecsec.F:52
subroutine r2r_count(passe, iparts, ipartc, ipartg, igrpp_r2r, pm_stack, iworksh, igrnod, igrsurf, igrslin, igrbric, ixs10, ixs20, ixs16)
Definition r2r_count.F:39
subroutine modif_tag(tag, new_tag, modif)
int main(int argc, char *argv[])
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:895
subroutine tag_elem_void_r2r_lin(nb, iparts, ipartc, ipartg, ipartt, ipartp, ipartr, val, cont, modif, warn, igrslin)
subroutine tag_elem_void_r2r(nb, iparts, ipartc, ipartg, ipartsp, val, cont, modif, itagl, f2, flag, eani2, igrsurf, igrnod, gr_id)
Definition tagelem_r2r.F:67
subroutine tagint_r2r(g1, g2, grs, grm, id_inter, type2, val, tag, i, compt, passe, flag, igrpp_r2r, igrnod, igrsurf, igrslin, igrbric)
Definition tagint_r2r.F:33