OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_inter_type09.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!|| hm_read_inter_type09 ../starter/source/interfaces/int09/hm_read_inter_type09.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_inter_fsi ../starter/source/interfaces/reader/hm_read_inter_fsi.f
27!||--- calls -----------------------------------------------------
28!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
29!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
30!|| ngr2usr ../starter/source/system/nintrr.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../starter/share/message_module/message_mod.F
33!|| submodel_mod ../starter/share/modules1/submodel_mod.F
34!||====================================================================
36 1 IPARI ,STFAC ,FRIGAP ,NOINT ,
37 2 IGRSURF ,UNITAB ,LSUBMODEL ,NPARI ,
38 3 NPARIR)
39C============================================================================
40C
41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE unitab_mod , ONLY : unit_type_
45 USE message_mod
46 USE groupdef_mod , ONLY : surf_
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56 INTEGER,INTENT(IN) :: NPARI,NPARIR
57 INTEGER ISU1,ISU2,NOINT
58 INTEGER IPARI(NPARI)
59 my_real stfac
60 my_real frigap(nparir)
61 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
62 TYPE(submodel_data), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
63 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
64C-----------------------------------------------
65C C o m m o n B l o c k s
66C-----------------------------------------------
67#include "com04_c.inc"
68#include "units_c.inc"
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 INTEGER I,J,L, NTYP,IS1, IS2,IEULT,IGSTI,ILEV,IBUC,
73 . IBC1, IBC2, IBC3,IBC1M, IBC2M, IBC3M,INTKG
74 my_real
75 . fric,gap,startt,stopt,fheat,stens,visc
76 CHARACTER(LEN=40)::MESS
77 CHARACTER(LEN=NCHARTITLE)::MSGTITL
78 CHARACTER(LEN=NCHARKEY) :: OPT,KEY,KEY1
79!
80 INTEGER, DIMENSION(:), POINTER :: INGR2USR
81 LOGICAL :: IS_AVAILABLE
82C-----------------------------------------------
83C E x t e r n a l F u n c t i o n s
84C-----------------------------------------------
85 INTEGER NGR2USR
86C-----------------------------------------------
87C=======================================================================
88C READING ALE INTERFACE /INTER/TYPE9
89C=======================================================================
90 ! Initializations of integer values
91 is1 = 0
92 is2 = 0
93 ibc1 = 0
94 ibc2 = 0
95 ibc3 = 0
96 ibc1m = 0
97 ibc2m = 0
98 ibc3m = 0
99 igsti = 0
100 ilev = 0
101 intkg = 0
102 ibuc = 0
103 ieult = 0
104 ! Initializations of float values
105 fric = zero
106 gap = zero
107 startt = zero
108 stopt = infinity
109 visc = zero
110 fheat = zero
111 stens = zero
112 ! Type
113 ntyp = 9
114 ipari(15) = noint
115 ipari(7) = ntyp
116C=======================================================================
117C CARD 1 : Surfaces ids
118C=======================================================================
119 ! Lagrangian surface
120 CALL hm_get_intv('surf_IDA', isu1, is_available, lsubmodel)
121 ! ALE surface
122 CALL hm_get_intv('surf_IDL', isu2, is_available, lsubmodel)
123 ! Checks
124 is1=1
125 ingr2usr => igrsurf(1:nsurf)%ID
126 isu1=ngr2usr(isu1,ingr2usr,nsurf)
127 IF(isu2==0)THEN
128 is2=0
129 ELSE
130 is2=1
131 isu2=ngr2usr(isu2,ingr2usr,nsurf)
132 ENDIF
133 ! Storage IPARI FRIGAP
134 ipari(45) = isu1
135 ipari(46) = isu2
136 ipari(13) = is1*10+is2
137 ipari(20) = ilev
138C=======================================================================
139C CARD 2 : Thermal resistance + Friction coefficient + Init GAP
140C=======================================================================
141 ! Thermal resistance
142 CALL hm_get_floatv('R_TH' ,stfac ,is_available, lsubmodel, unitab)
143 ! Friction coefficient
144 CALL hm_get_floatv('FRIC' ,fric ,is_available, lsubmodel, unitab)
145 ! Initial Gap
146 CALL hm_get_floatv('GAP' ,gap ,is_available, lsubmodel, unitab)
147 ! Storage IPARI FRIGAP
148 frigap(1) = fric
149 frigap(2) = gap
150 frigap(3) = startt
151 frigap(11) = stopt
152C=======================================================================
153C CARD 3 : Thermal bridge + Euler + Upwind + Surface tension
154C=======================================================================
155 ! Thermal bridge flag
156 CALL hm_get_intv('I_TH' ,ibuc ,is_available, lsubmodel)
157 ! Euler flag
158 CALL hm_get_intv('I_EUL' ,ieult ,is_available, lsubmodel)
159 ! Upwind value
160 CALL hm_get_floatv('UPWIND' ,visc ,is_available, lsubmodel, unitab)
161 ! Surface tension force
162 CALL hm_get_floatv('Fs' ,stens ,is_available, lsubmodel, unitab)
163 ! Storage IPARI FRIGAP
164 ipari(14) = ieult
165 frigap(4) = fheat
166 frigap(15) = stens
167 ipari(11) = 4*ibc1+2*ibc2+ibc3 + 8 *(4*ibc1m+2*ibc2m+ibc3m)
168 frigap(14) = visc
169 ipari(12) = ibuc
170 ipari(65) = intkg
171C=======================================================================
172C PRINTOUT
173C=======================================================================
174C
175 WRITE(iout,1509) ibuc,ipari(14),stfac,fric,gap,visc,stens
176C
177 IF(is1==0)THEN
178 WRITE(iout,'(6x,a)')'no ale surface input'
179 ELSEIF(IS1==1)THEN
180 WRITE(IOUT,'(6x,a)')'ale surface input by segments'
181 ELSEIF(IS1==2)THEN
182 WRITE(IOUT,'(6x,a)')'ale surface input by nodes'
183 ELSEIF(IS1==3)THEN
184 WRITE(IOUT,'(6x,a)')'ale surface input by segments'
185 ELSEIF(IS1==4 )THEN
186 WRITE(IOUT,'(6x,a)')'ale side input by bricks'
187 ELSEIF(is1==5 )THEN
188 WRITE(iout,'(6x,a)')'ale side input by solid elements'
189 ENDIF
190 IF(IS2==0)THEN
191 WRITE(IOUT,'(6x,a)')'no lagrangian surface input'
192 ELSEIF(IS2==1)THEN
193 WRITE(IOUT,'(6x,a)')'lagrangian surface input by segments'
194 ELSEIF(IS2==2)THEN
195 WRITE(IOUT,'(6x,a)')'lagrangian surface input by nodes'
196 ELSEIF(IS2==3)THEN
197 WRITE(IOUT,'(6x,a)')'lagrangian surface input by segments'
198 ELSEIF(IS2==4)THEN
199 WRITE(IOUT,'(6x,a)')'lagrangian surface refers ',
200 . 'to hyper-ellipsoidal surface'
201 ENDIF
202C
203C--------------------------------------------------------------
204 1000 FORMAT(/1X,' INTERFACE number :',I10,1X,A)
205C------------
206 1509 FORMAT(//
207 . ' type==9 ale-thermal sliding and voids ' //,
208 . ' thermal bridge(1 yes 0 no) . . . . . . . ',I10/,
209 . ' tang. dir. euler.(free surf.) (1 yes 0 no)',I10/,
210 . ' thermal resistance. . . . . . . . . . . . ',1PG20.13/,
211 . ' friction factor . . . . . . . . . . . . . ',1PG20.13/,
212 . ' initial gap . . . . . . . . . . . . . . . ',1PG20.13/,
213 . ' free surface upwind . . . . . . . . . . . ',1PG20.13/,
214 . ' surface tension . . . . . . . . . . . . . ',1PG20.13//)
215
216 RETURN
217 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
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_type09(ipari, stfac, frigap, noint, igrsurf, unitab, lsubmodel, npari, nparir)
integer, parameter nchartitle
integer, parameter ncharkey
integer nsubmod
program starter
Definition starter.F:39
subroutine upwind(rho, vis, vdx, vdy, vdz, r, s, t, deltax, gam, nel)
Definition upwind.F:35