50 1 NGROU,INNOD,FLAG,IPARTS,
51 2 IPARTQ,IPARTC,IPARTT,IPARTP,IPARTR,IPARTG,
52 3 IPARTSP,IXS10,IXS20,IXS16,KK,BUF_NOD,IXR_KJ,
53 4 INOM_OPT,IPART_L,IAD,NALE_R2R,FLG_R2R_ERR ,
54 5 PM_STACK ,IWORKSH ,IGRBRIC2,IGRQUAD2 ,IGRSH4N2,
55 6 IGRSH3N2 ,IGRTRUSS2,IGRBEAM2,IGRSPRING2,IGRNOD2 ,
56 7 IGRSURF2 ,IGRSLIN2,LSUBMODEL,ALE_EULER,IGEO_,
57 8 NLOC_DMG ,DETONATORS,NSENSOR,SEATBELT_SHELL_TO_SPRING,
58 9 NB_SEATBELT_SHELLS,MAT_PARAM)
75 USE reader_old_mod ,
ONLY : kinter, nslash
79#include "implicit_f.inc"
83 INTEGER,
INTENT(IN) :: IGEO_(NPROPGI,NUMGEO)
98 INTEGER ,
INTENT(IN) :: NSENSOR
100 . BUF_NOD(*),,FLAG,KK,
101 . IPARTS(*),IXS10(6,*),IXS20(12,*),
102 . IXS16(8,*),IPARTQ(*),IPARTSP(*),
103 . IPARTC(*),IPARTT(*),IPARTP(*),IPARTR(*),
104 . IPARTG(*),IXR_KJ(*),INOM_OPT(*),IPART_L(*),IAD,
105 . NALE_R2R(*),FLG_R2R_ERR,IWORKSH(*),ALE_EULER
106 INTEGER ,
INTENT(IN) :: NB_SEATBELT_SHELLS
107 INTEGER ,
INTENT(IN) :: SEATBELT_SHELL_TO_SPRING(NUMELC,2)
109 TYPE (NLOCAL_STR_) ,
INTENT(IN) :: NLOC_DMG
110 TYPE (DETONATORS_STRUCT_),
TARGET,
INTENT(IN) :: DETONATORS
111 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
114 TYPE (GROUP_) ,
DIMENSION(NGROU) :: IGRNOD2
115 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC2
116 TYPE (GROUP_) ,
DIMENSION(NGRQUAD) :: IGRQUAD2
117 TYPE (GROUP_) ,
DIMENSION(NGRSHEL) :: IGRSH4N2
118 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N2
119 TYPE (GROUP_) ,
DIMENSION(NGRTRUS) :: IGRTRUSS2
120 TYPE (GROUP_) ,
DIMENSION(NGRBEAM) :: IGRBEAM2
121 TYPE (GROUP_) ,
DIMENSION(NGRSPRI) :: IGRSPRING2
122 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF2
123 TYPE (SURF_) ,
DIMENSION(NSLIN) :: IGRSLIN2
127 INTEGER ,I,J,IGR,IGRS,N,NUM,K,ADD,COMPT,IGS,IPID_L
128 INTEGER ID_TEMP(NB_PART_SUB),NSUBDOM_LOC,P,TMP_PART(NPART)
129 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IGROUP_TEMP2
130 INTEGER N_LNK_C,NI,GRM,GRS,MAIN,IGU,NUL,IAD_TMP,COMPT_T2
131 INTEGER MODIF,NINTER_PREC,FAC,IO_ERR,NUM_KJ,NSPCONDN,NSPHION,NN
132 INTEGER MEMTR(NUMNOD),FLG_SPH,COUNT,NEW_NSLASH_INT,NEW_HM_NINTER,NEW_NINTSUB,NEW_NINIVOL
133 CHARACTER(LEN=NCHARTITLE) :: TITR
135 INTEGER NGRNOD2,NGRBRIC2,NGRQUAD2,NGRSHEL2,NGRSH3N2,NGRTRUS2,NGRBEAM2,NGRSPRI2,LENGRN,ITITLE(LTITR)
136 CHARACTER(LEN=NCHARTITLE) :: NEW_TITLE(NGROU+10*NSUBDOM)
137 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IGROUP_TEMP2_BUF,TAG_NLOCAL
138 INTEGER :: LEN_TMP_NAME
139 CHARACTER(len=4096) :: TMP_NAME
148 ALLOCATE(igroup_temp2(10,ngrou+10*nsubdom))
152 count = count + igrnod2(i)%NENTITY
155 ALLOCATE(igroup_temp2_buf(count))
156 igroup_temp2_buf(:) = 0
161 igroup_temp2(1,i) = igrnod2(i)%ID
162 igroup_temp2(2,i) = igrnod2(i)%NENTITY
163 igroup_temp2(3,i) = igrnod2(i)%GRTYPE
164 igroup_temp2(4,i) = igrnod2(i)%SORTED
165 igroup_temp2(5,i) = igrnod2(i)%GRPGRP
166 igroup_temp2(6,i) = igrnod2(i)%LEVEL
167 new_title(i) = igrnod2(i)%TITLE
168 igroup_temp2(8,i) = igrnod2(i)%R2R_ALL
169 igroup_temp2(9,i) = igrnod2(i)%R2R_SHARE
170 igroup_temp2(7,i) = iad_tmp
171 DO j=1,igrnod2(i)%NENTITY
172 igroup_temp2_buf(iad_tmp) = igrnod2(i)%ENTITY(j)
173 iad_tmp = iad_tmp + 1
194 IF (num<=igrnod2(i)%ID) num=igrnod2(i)%ID+1
198 IF (ipid==0) nsubdom = 1
199 nsubdom_loc = nsubdom
203 IF (ipid==0) n = iddom
211 IF (flg_swale==1)
THEN
212 IF (ipid==0) ipid_l = 1
213 IF (ipid/=0) ipid_l = 0
216 CLOSE(unit=iout, status=
'DELETE',iostat=io_err)
220 OPEN(unit=iout,file=tmp_name(1:len_tmp_name),
221 . access=
'SEQUENTIAL',
222 . form=
'FORMATTED',status=
'UNKNOWN')
223 name =
"SUBDOMAIN "//r2r_filnam(1:(len_trim(r2r_filnam)-9))
224 WRITE (iout,
'(A)')
''
248 IF(tmp_part(k)==-1)
tagno(k)=-1
264 ELSEIF(
tagno(k)==0)
THEN
322 DO WHILE ((modif>0).AND.(compt<80))
325 IF (p==nsubdom_loc)
THEN
327 2 ipartc,ipartg,ipartt,ipartp,ipartr,ipartsp,compt_t2,
328 3 modif,compt,inom_opt,nspcondn,nsphion,ipart_l,memtr,
332 7 new_nintsub,new_ninivol,ixs10,ixs20,ixs16,
333 8 detonators,nsensor,seatbelt_shell_to_spring,nb_seatbelt_shells)
347 CALL ale_check_lag(nale_r2r,
ixs,
ixq,
ixc,
ixt,
ixtg,pm,
itab,nale_r2r,0,igeo_)
350 IF (iale+ieuler>0)
THEN
364 nrbykin = new_nrbykin
367 hm_ninter = new_hm_ninter
368 ninter = new_hm_ninter + new_ninter - new_nintsub
369 nslash(kinter) = new_nslash_int
370 nintsub = new_nintsub
376 ngjoint = new_ngjoint
388 IF (
tagno(j+npart)>1) innod = innod+1
395 . c1=
"CONNECTIONS FOUND",
400 IF ((flg_sph==1).OR.(flg_fsi==1)) r2r_flag_err_off = 1
402 fac = (100*innod) / numnod
403 IF (((fac>20).AND.(fac<50)).OR.((r2r_flag_err_off==1).AND.(fac>50)))
THEN
405 . msgtype=msgwarning,
406 . anmode=aninfo_blind_1,
413 . anmode=aninfo_blind_1,
421 . msgtype=msgwarning,
422 . anmode=aninfo_blind_1)
435 IF (nloc_dmg%IMOD > 0)
THEN
437 CALL my_alloc(tag_nlocal,numnod)
438 tag_nlocal(1:numnod) = 0
440 . ixs16,tag_nlocal,mat_param)
449 IF (
tagno(j+npart)==(k+n))
THEN
459 IF ((tag_nlocal(j)==1).AND.(
tagno(j+npart+numnod) == n+1))
THEN
467 innod = innod + compt
471 titr=
"MULTIDOMAINS INTERFACE TYPE CONNECTION "
473 titr=
"MULTIDOMAINS INTERFACE TYPE RBODY CONNECTION "
475 titr=
"MULTIDOMAINS INTERFACE TYPE KINEMATIC CONDITION"
477 titr=
"MULTIDOMAINS INTERFACE TYPE NON LOCAL"
479 titr=
"MULTIDOMAINS INTERFACE TYPE CONTACT "
482 igroup_temp2(1,igs)= num
483 igroup_temp2(2,igs)= compt
485 igroup_temp2(10,igs)= -1
486 new_title(igs) = titr
493 IF (compt>0) n_lnk_c = n_lnk_c+1
502 . c1=
"CONNECTIONS FOUND",
507 IF (nloc_dmg%IMOD > 0)
THEN
508 DEALLOCATE(tag_nlocal)
519 DEALLOCATE(
igrnod(i)%ENTITY)
522 ALLOCATE(
igrnod(ngrnod+n_lnk_c))
523 ngrnod = ngrnod+n_lnk_c
526 ALLOCATE(
igrnod(i)%ENTITY(igroup_temp2(2,i)))
527 igrnod(i)%ENTITY(1:igroup_temp2(2,i)) = 0
529 igrnod(i)%ID = igroup_temp2(1,i)
530 igrnod(i)%NENTITY = igroup_temp2(2,i)
531 igrnod(i)%GRTYPE = igroup_temp2(3,i)
532 igrnod(i)%SORTED = igroup_temp2(4,i)
533 igrnod(i)%GRPGRP = igroup_temp2(5,i)
534 igrnod(i)%LEVEL = igroup_temp2(6,i)
535 igrnod(i)%TITLE = new_title(i)
536 igrnod(i)%R2R_ALL = igroup_temp2(8,i)
537 igrnod(i)%R2R_SHARE = igroup_temp2(9,i)
539 IF (igroup_temp2(10,i) == -1)
THEN
540 iad_tmp = igroup_temp2(3,i)
541 DO j=1,igroup_temp2(2,i)
543 igrnod(i)%ENTITY(j) = buf_nod(iad_tmp+j-1)
546 iad_tmp = igroup_temp2(7,i)
547 DO j=1,igroup_temp2(2,i)
548 igrnod(i)%ENTITY(j) = igroup_temp2_buf(iad_tmp+j-1)
559 WRITE(istdo,
'(A)')
' .. MULTIDOMAINS INPUT FILE GENERATION'
566 IF (flag == 1)
DEALLOCATE(igroup_temp2)
568 IF (
ALLOCATED(igroup_temp2_buf))
DEALLOCATE(igroup_temp2_buf)
5721301
FORMAT( 1x,
'LIST OF SPLITTED CONTACT INTERFACES : ')
subroutine r2r_group(ngrou, innod, flag, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartg, ipartsp, ixs10, ixs20, ixs16, kk, buf_nod, ixr_kj, inom_opt, ipart_l, iad, nale_r2r, flg_r2r_err, pm_stack, iworksh, igrbric2, igrquad2, igrsh4n2, igrsh3n2, igrtruss2, igrbeam2, igrspring2, igrnod2, igrsurf2, igrslin2, lsubmodel, ale_euler, igeo_, nloc_dmg, detonators, nsensor, seatbelt_shell_to_spring, nb_seatbelt_shells, mat_param)
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, nsensor, seatbelt_shell_to_spring, nb_seatbelt_shells)
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)