OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_interfaces.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "units_c.inc"
#include "scr17_c.inc"
#include "r2r_c.inc"
#include "inter22.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_interfaces (ipari, frigap, itab, itabm1, igrnod, igrsurf, igrslin, igrbric, igrsh3n, igrtruss, npc, iskn, xfiltr, stfac, fric_p, i2rupt, areasl, unitab, nom_opt, def_inter, npc1, sensors, multi_fvm, nom_optfric, intbuf_fric_tab, lsubmodel, tf, npts, npari, kloadpinter, dgapint, interfaces, sitab, nparir, sitabm1, siskwn, liskn, snpc, snpc1, itherm_fe, intheat)

Function/Subroutine Documentation

◆ hm_read_interfaces()

subroutine hm_read_interfaces ( integer, dimension(npari,ninter) ipari,
frigap,
integer, dimension(numnod) itab,
integer, dimension(sitabm1) itabm1,
type (group_), dimension(ngrnod) igrnod,
type (surf_), dimension(nsurf), target igrsurf,
type (surf_), dimension(nslin), target igrslin,
type (group_), dimension(ngrbric) igrbric,
type (group_), dimension(ngrsh3n) igrsh3n,
type (group_), dimension(ngrtrus) igrtruss,
integer, dimension(snpc) npc,
integer, dimension(siskwn) iskn,
xfiltr,
stfac,
fric_p,
i2rupt,
areasl,
type (unit_type_), intent(in) unitab,
integer, dimension(lnopt1,*) nom_opt,
integer, dimension(100) def_inter,
integer, dimension(snpc1) npc1,
type (sensors_), intent(in) sensors,
type(multi_fvm_struct), intent(in) multi_fvm,
integer, dimension(lnopt1,*) nom_optfric,
type(intbuf_fric_struct_), dimension(ninterfric) intbuf_fric_tab,
type (submodel_data), dimension(nsubmod), intent(in) lsubmodel,
tf,
integer, intent(in) npts,
integer, intent(in) npari,
integer, dimension(ninter+1) kloadpinter,
dimension(ninter), intent(in) dgapint,
type (interfaces_), intent(inout) interfaces,
integer, intent(in) sitab,
integer, intent(in) nparir,
integer, intent(in) sitabm1,
integer, intent(in) siskwn,
integer, intent(in) liskn,
integer, intent(in) snpc,
integer, intent(in) snpc1,
integer, intent(in) itherm_fe,
integer, intent(inout) intheat )
Parameters
[in]nparirarray sizes (IPARI and FRIGAP)
[in]nptsarray size TF
[in]snpc1array size (NPC and NPC1)
[in]sitabm1array size (ITAB, ITABM1)
[in]siskwnarray size (ISKN)

Definition at line 44 of file hm_read_interfaces.F.

54C-----------------------------------------------
55C D e s c r i p t i o n
56C-----------------------------------------------
57C General Subroutine which manages interface Readers (/INTER/TYPE..)
58C-----------------------------------------------
59C M o d u l e s
60C-----------------------------------------------
61 USE unitab_mod , ONLY : unit_type_
62 USE r2r_mod
63 USE message_mod
64 USE multi_fvm_mod , ONLY : multi_fvm_struct
65 USE intbuf_fric_mod , ONLY : intbuf_fric_struct_
66 USE groupdef_mod , ONLY : group_, surf_
69 USE sensor_mod , ONLY : sensors_
70 USE interfaces_mod , ONLY : interfaces_
72C-----------------------------------------------
73C I m p l i c i t T y p e s
74C-----------------------------------------------
75#include "implicit_f.inc"
76C-----------------------------------------------
77C C o m m o n B l o c k s
78C-----------------------------------------------
79#include "com01_c.inc"
80#include "com04_c.inc"
81#include "units_c.inc"
82#include "scr17_c.inc"
83#include "r2r_c.inc"
84#include "inter22.inc"
85C-----------------------------------------------
86C D u m m y A r g u m e n t s
87C-----------------------------------------------
88 INTEGER,INTENT(IN) :: NPARI, NPARIR !< array sizes (IPARI and FRIGAP)
89 INTEGER,INTENT(IN) :: NPTS !< array size TF
90 INTEGER,INTENT(IN) :: SNPC, SNPC1 !< array size (NPC and NPC1)
91 INTEGER,INTENT(IN) :: SITAB, SITABM1 !< array size (ITAB, ITABM1)
92 INTEGER,INTENT(IN) :: LISKN, SISKWN !< array size (ISKN)
93 INTEGER,INTENT(IN) :: ITHERM_FE
94 INTEGER,INTENT(INOUT) :: INTHEAT
95 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
96 INTEGER NOM_OPT(LNOPT1,*)
97 INTEGER IPARI(NPARI,NINTER), ITAB(NUMNOD), ITABM1(SITABM1),NPC(SNPC),ISKN(SISKWN),
98 . DEF_INTER(100),NPC1(SNPC1),NOM_OPTFRIC(LNOPT1,*),KLOADPINTER(NINTER+1)
99 my_real xfiltr(ninter),stfac(ninter),fric_p(10,ninter),i2rupt(6,ninter),frigap(nparir,ninter),areasl(ninter),tf(npts)
100 my_real,INTENT(IN) :: dgapint(ninter)
101 TYPE(MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
102 TYPE(INTBUF_FRIC_STRUCT_) INTBUF_FRIC_TAB(NINTERFRIC)
103 TYPE (SUBMODEL_DATA), DIMENSION(NSUBMOD),INTENT(IN) :: LSUBMODEL
104 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
105 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
106 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
107 TYPE (GROUP_) , DIMENSION(NGRSH3N) :: IGRSH3N
108 TYPE (GROUP_) , DIMENSION(NGRTRUS) :: IGRTRUSS
109 TYPE (SURF_) , DIMENSION(NSURF) ,TARGET :: IGRSURF
110 TYPE (SURF_) , DIMENSION(NSLIN) ,TARGET :: IGRSLIN
111 TYPE (INTERFACES_) ,INTENT(INOUT):: INTERFACES
112C-----------------------------------------------
113C L o c a l V a r i a b l e s
114C-----------------------------------------------
115 INTEGER I,J,P,NI,NIN,ILAGM,NOINT,NB,UID,SUB_ID,IFLAGUNIT,K
116 CHARACTER(LEN=NCHARKEY) :: KEY, KEY2, STR_TMP
117 CHARACTER(LEN=NCHARTITLE) :: TITR
118 CHARACTER(LEN=40) :: MESS
119 DATA mess/'INTERFACE INPUT '/
120C-----------------------------------------------
121C E x t e r n a l F u n c t i o n s
122C-----------------------------------------------
123 INTEGER,EXTERNAL :: USR2SYS
124C-----------------------------------------------
125C S o u r c e L i n e s
126C-----------------------------------------------
127C READING INTERFACES
128
129 ni = 0
130 nb = 0
131 intheat = 0
132 ftempvar21 = 0
133 nitsche = 0
134 interadhesion = 0
135 i22len = 0
136 int22 = 0
137
138 ! START BROWSING MODEL INTERFACES
139 CALL hm_option_start('/INTER')
140 ni = 0
141 ! BROWSING MODEL INTERFACES 1->HM_NINTER
142 DO nin=1,hm_ninter
143 nb = nb+1
144 !Multidomains --> ignoring untaged interface and sub-intergaces
145 IF (nsubdom > 0) THEN
146 IF(tagint(nb)==0) CALL hm_sz_r2r(tagint,nb,lsubmodel)
147 ENDIF
148 ilagm = 0
149 key = ''
150 ! EXTRACT DATAS OF /INTER/... LINE
151 CALL hm_option_read_key(lsubmodel,option_id=noint,unit_id=uid,submodel_id=sub_id,
152 . option_titr=titr,keyword2=key,keyword3=key2)
153 ! CHECK IF READ OPTION IS /INTER/SUB
154 IF(key(1:len_trim(key)) == 'SUB') cycle
155 ni=ni+1
156 DO i = 1,npari
157 ipari(i,ni) = 0
158 ENDDO
159 ipari(23,ni) = 1
160 ! CHECK IF UID IS EXISTING
161 iflagunit = 0
162 DO j=1,unitab%NUNITS
163 IF (unitab%UNIT_ID(j) == uid) THEN
164 iflagunit = 1
165 EXIT
166 ENDIF
167 ENDDO
168 IF (uid /= 0.AND.iflagunit == 0) THEN
169 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,i2=uid,i1=noint,c1='INTERFACE',c2='INTERFACE',c3=titr)
170 ENDIF
171 ! WRITE TITLE IN OUT FILE
172 WRITE(iout,1300)
173 str_tmp = key(1:len_trim(key))
174 ! CHECK INTERFACE AVAILABILITY WITH 2D ANALYSIS
175 IF(n2d /= 0 .AND.
176 . str_tmp /= 'TYPE1' .AND. str_tmp /= 'TYPE2' .AND.
177 . str_tmp /= 'TYPE3' .AND. str_tmp /= 'TYPE5') THEN
178 CALL ancmsg(msgid=2097,anmode=anstop,msgtype=msgerror,i1=noint,c1=titr,c2=str_tmp)
179 ENDIF
180C--------------------------------------------------
181 SELECT CASE(str_tmp)
182 CASE ('KINE', 'TYPE1', 'TYPE9', 'TYPE12', 'TYPE18', 'TYPE22')
183 ! SPECIFIC CASE OF FSI INTERFACES READING ROUTINES
185 1 ipari(1,ni) ,stfac(ni) ,frigap(1,ni) ,xfiltr(ni) ,fric_p(1,ni),
186 2 igrnod ,igrsurf ,ilagm ,unitab ,ni ,
187 3 nom_opt ,titr ,igrbric ,igrsh3n ,igrtruss ,
188 4 noint ,key ,lsubmodel ,itab ,
189 5 itabm1 ,iskn ,multi_fvm ,npari ,nparir ,
190 6 ngrnod ,ngrbric ,ngrsh3n ,ngrtrus ,nsurf ,
191 7 lnopt1 ,sitabm1 ,siskwn ,liskn ,
192 8 ltitr ,sitab)
193
194 CASE ('LAGMUL')
195 ! /INTER/LAGMUL
197 1 ipari(1,ni) ,stfac(ni) ,frigap(1,ni) ,igrnod ,igrsurf ,
198 2 ilagm ,ni ,nom_opt ,titr ,def_inter ,
199 3 igrbric ,unitab ,lsubmodel ,noint ,key2 ,
200 4 npari ,nparir)
201
202 CASE ('LAGDT')
203 ! /INTER/LAGDT
205 1 ipari(1,ni) ,stfac(ni) ,frigap(1,ni) ,xfiltr(ni),fric_p(1,ni),
206 2 igrnod ,igrsurf ,ilagm ,unitab ,ni ,
207 4 nom_opt ,titr ,def_inter ,noint ,lsubmodel ,
208 5 npari ,nparir)
209
210 CASE DEFAULT
211 ! ALL OTHER INTERFACES : STRUCTURE + TIED TYPE2
213 1 ipari(1,ni) ,stfac(ni) ,frigap(1,ni) ,xfiltr(ni) ,fric_p(1,ni),
214 2 igrnod ,igrsurf ,igrslin ,npc ,ilagm ,
215 3 unitab ,i2rupt(1,ni) ,
216 4 areasl(ni) ,ni ,nom_opt ,titr ,def_inter ,
217 5 npc1 ,sensors ,
218 6 nom_optfric ,intbuf_fric_tab,igrbric ,noint ,key ,
219 7 lsubmodel ,tf ,interfaces ,snpc ,snpc1 ,
220 8 npari ,nparir ,npts ,
221 9 lnopt1 ,ltitr ,ninter25 ,
222 . ngrnod ,ngrbric ,nsurf ,nslin ,
223 . itherm_fe ,intheat )
224
225 END SELECT
226
227 noint = ipari(15,ni)
228 IF (ipari(71,ni) <= 0) THEN
229 DO k=1,ni-1
230 IF (noint == ipari(15,k)) THEN
231 CALL ancmsg(msgid=117,msgtype=msgerror,anmode=aninfo_blind_1,i1=noint,c1=titr,i2=noint)
232 ENDIF
233 ENDDO
234 ENDIF
235
236 IF(ipari(39,ni) == 1)THEN
237 ipari(40,ni)=usr2sys(ipari(40,ni),itabm1,mess,ipari(15,ni))
238 DO p = 1, nspmd
239 CALL ifrontplus(ipari(40,ni),p)
240 END DO
241 ELSEIF(ipari(39,ni) == 2)THEN
242 ipari(40,ni)=usr2sys(ipari(40,ni),itabm1,mess,ipari(15,ni))
243 ipari(41,ni)=usr2sys(ipari(41,ni),itabm1,mess,ipari(15,ni))
244 DO p = 1, nspmd
245 CALL ifrontplus(ipari(40,ni),p)
246 CALL ifrontplus(ipari(41,ni),p)
247 END DO
248 ENDIF
249
250 IF(nintloadp > 0)ipari(95,ni) = kloadpinter(ni+1) - kloadpinter(ni)
251 IF(nintloadp > 0)frigap(46,ni) = dgapint(ni)
252
253 ENDDO ! NI
254
255C=======================================================================
256 1300 FORMAT( /1x,' INTERFACES ' /
257 . 1x,' -------------- '// )
258 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine ifrontplus(n, p)
Definition frontplus.F:100
subroutine hm_option_start(entity_type)
subroutine hm_read_inter_fsi(ipari, stfac, frigap, xfiltr, fric_p, igrnod, igrsurf, ilagm, unitab, ni, nom_opt, titr, igrbric, igrsh3n, igrtruss, noint, key, lsubmodel, itab, itabm1, iskn, multi_fvm, npari, nparir, ngrnod, ngrbric, ngrsh3n, ngrtrus, nsurf, lnopt1, sitabm1, siskwn, liskn, ltitr, sitab)
subroutine hm_read_inter_lagdt_type07(ipari, stfac, frigap, xfiltr, fric_p, igrnod, igrsurf, ilagm, unitab, ni, nom_opt, titr, def_inter, noint, lsubmodel, npari, nparir)
subroutine hm_read_inter_lagmul(ipari, stfac, frigap, igrnod, igrsurf, ilagm, ni, nom_opt, titr, def_inter, igrbric, unitab, lsubmodel, noint, key, npari, nparir)
subroutine hm_read_inter_struct(ipari, stfac, frigap, xfiltr, fric_p, igrnod, igrsurf, igrslin, npc, ilagm, unitab, i2rupt, areasl, ni, nom_opt, titr, def_inter, npc1, sensors, nom_optfric, intbuf_fric_tab, igrbric, noint, key, lsubmodel, tf, interfaces, snpc, snpc1, npari, nparir, npts, lnopt1, ltitr, ninter25, ngrnod, ngrbric, nsurf, nslin, itherm_fe, intheat)
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
integer, parameter nchartitle
integer, parameter ncharkey
integer, dimension(:), allocatable tagint
Definition r2r_mod.F:132
integer nsubmod
subroutine hm_sz_r2r(tag, val, lsubmodel)
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
integer function usr2sys(iu, itabm1, mess, id)
Definition sysfus.F:160