39
40
41
42
43
49
50
51
52#include "implicit_f.inc"
53
54
55
56 INTEGER,INTENT(IN) :: NPARI,NPARIR
57 INTEGER ISU1,ISU2,NOINT
58 INTEGER IPARI(NPARI)
61 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
62 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
63 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
64
65
66
67#include "com04_c.inc"
68#include "units_c.inc"
69
70
71
72 INTEGER I,J,L, NTYP,IS1, IS2,IEULT,IGSTI,ILEV,IBUC,
73 . IBC1, IBC2, IBC3,IBC1M, IBC2M, IBC3M,INTKG
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 ::
81 LOGICAL :: IS_AVAILABLE
82
83
84
85 INTEGER NGR2USR
86
87
88
89
90
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
105 fric = zero
106 gap = zero
107 startt = zero
108 stopt = infinity
109 visc = zero
110 fheat = zero
111 stens = zero
112
113 ntyp = 9
114 ipari(15) = noint
115 ipari(7) = ntyp
116
117
118
119
120 CALL hm_get_intv(
'surf_IDA', isu1, is_available, lsubmodel)
121
122 CALL hm_get_intv(
'surf_IDL', isu2, is_available, lsubmodel)
123
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
134 ipari(45) = isu1
135 ipari(46) = isu2
136 ipari(13) = is1*10+is2
137 ipari(20) = ilev
138
139
140
141
142 CALL hm_get_floatv(
'R_TH' ,stfac ,is_available, lsubmodel, unitab)
143
144 CALL hm_get_floatv(
'FRIC' ,fric ,is_available, lsubmodel, unitab)
145
146 CALL hm_get_floatv(
'GAP' ,gap ,is_available, lsubmodel, unitab)
147
148 frigap(1) = fric
149 frigap(2) = gap
150 frigap(3) = startt
151 frigap(11) = stopt
152
153
154
155
156 CALL hm_get_intv(
'I_TH' ,ibuc ,is_available, lsubmodel)
157
158 CALL hm_get_intv(
'I_EUL' ,ieult ,is_available, lsubmodel)
159
160 CALL hm_get_floatv(
'UPWIND' ,visc ,is_available, lsubmodel, unitab)
161
162 CALL hm_get_floatv(
'Fs' ,stens ,is_available, lsubmodel, unitab)
163
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
171
172
173
174
175 WRITE(iout,1509) ibuc,ipari(14),stfac,fric,gap,visc,stens
176
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
202
203
204 1000 FORMAT(/1x,' INTERFACE NUMBER :',i10,1x,a)
205
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
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
integer, parameter ncharkey
integer function ngr2usr(iu, igr, ngr)