42
43
44
50 USE defaults_mod
52
53
54
55#include "implicit_f.inc"
56
57
58
59#include "units_c.inc"
60#include "com01_c.inc"
61#include "com04_c.inc"
62#include "param_c.inc"
63#include "tablen_c.inc"
64#include "sphcom.inc"
65
66
67
68 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
69 INTEGER IGTYP , IGEO(*) ,ISKN(LISKN,*) ,ITABM1(*)
70 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
72 CHARACTER(LEN=NCHARTITLE)::IDTITL
73 TYPE(PROP_TAG_) , DIMENSION(0:MAXPROP) :: PROP_TAG
74 TYPE(SOLID_DEFAULTS_), INTENT(IN) :: DEFAULTS_SOLID
75
76
77
78 INTEGER IG, ISMSTR, NIP, J,K ,NPTS ,
79 . IHBE,ISH3N,ISROT ,I8PT ,ISK,IHON ,ITU ,IRB,
80 . IGFLU ,IHBE_OLD
81 INTEGER IHBE_DS,ISST_DS,IPLA_DS,IFRAME_DS
82
83 my_real angl,pun,cvis,rbid,vx,vy,vz,fac_l,fac_t,fac_m, pthk, an, phi
84 CHARACTER(LEN=NCHARTITLE)::TITR
85 CHARACTER MESS*40
86 CHARACTER(LEN=NCHARKEY)::KEY
87 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
88
89
90
91 INTEGER USR2SYS
92 DATA pun/0.1/
93 DATA mess/'pid definition '/
94
95
96
97 IHBE=0
98 ISMSTR=0
99 ISROT=0
100 IGFLU=1
101 CVIS =ZERO
102!--- defaults values
103 IHBE_DS= DEFAULTS_SOLID%ISOLID
104 ISST_DS= DEFAULTS_SOLID%ISMSTR
105 IFRAME_DS= DEFAULTS_SOLID%IFRAME
106
107 IS_ENCRYPTED = .FALSE.
108 IS_AVAILABLE = .FALSE.
109
110
111
112 CALL HM_OPTION_IS_ENCRYPTED(IS_ENCRYPTED)
113
114
115
116 CALL HM_GET_INTV('skew_csid',ISK,IS_AVAILABLE,LSUBMODEL)
117 CALL HM_GET_INTV('mat_iflag',IHON,IS_AVAILABLE,LSUBMODEL)
118 CALL HM_GET_INTV('i_th',ITU,IS_AVAILABLE,LSUBMODEL)
119 CALL HM_GET_INTV('irby',IRB,IS_AVAILABLE,LSUBMODEL)
120
121
122
123
124 CALL HM_GET_FLOATV('qa_l',GEO(14),IS_AVAILABLE,LSUBMODEL,UNITAB)
125 CALL HM_GET_FLOATV('qb_l',GEO(15),IS_AVAILABLE,LSUBMODEL,UNITAB)
126 CALL HM_GET_FLOATV('h_l',GEO(13),IS_AVAILABLE,LSUBMODEL,UNITAB)
127 CALL HM_GET_FLOATV('mat_poros',GEO(21),IS_AVAILABLE,LSUBMODEL,UNITAB)
128 CALL HM_GET_FLOATV('mat_pdir1',GEO(24),IS_AVAILABLE,LSUBMODEL,UNITAB)
129 CALL HM_GET_FLOATV('mat_pdir2',GEO(25),IS_AVAILABLE,LSUBMODEL,UNITAB)
130 CALL HM_GET_FLOATV('mat_pdir3',GEO(26),IS_AVAILABLE,LSUBMODEL,UNITAB)
131 CALL HM_GET_FLOATV('alpha1',GEO(22),IS_AVAILABLE,LSUBMODEL,UNITAB)
132 CALL HM_GET_FLOATV('thick',GEO(23),IS_AVAILABLE,LSUBMODEL,UNITAB)
133
134
135
136
137 IGEO(1) = IG
138 IGEO(11)= IGTYP
139 GEO(12) = IGTYP+PUN
140
141.AND. IF(ALE%GLOBAL%ICAA==0 IGFLU==0)THEN
142 IF(GEO(14)==ZERO) GEO(14)=ONEP1
143 IF(GEO(15)==ZERO) GEO(15)=FIVEEM2
144 ENDIF
145 IF(GEO(13)==ZERO)GEO(13)=EM01
146 IF(IHBE==0)THEN
147 IHBE=IHBE_DS
148 ENDIF
149 I8PT=0
150
151 IF(ISMSTR==0)ISMSTR=ISST_DS
152.OR. IF (ISMSTR < 0ISST_DS==-2) ISMSTR=4
153 IF(ISMSTR==0)ISMSTR=4
154 IF(ISMSTR==3)GEO(5)=EP06
155 GEO(3) =ISMSTR
156 IGEO(5) = ISMSTR
157
158 IGEO(10)=IHBE
159 GEO(171)=IHBE
160
161 IF(IHBE==12)THEN
162 I8PT=1
163 IHBE=0
164 ELSEIF(IHBE==13)THEN
165 I8PT=1
166 ELSEIF(IHBE==112)THEN
167 I8PT=1
168 ELSEIF(IHBE>=222)THEN
169 I8PT=1
170 ENDIF
171 GEO(1)=1
172.AND. IF(N2D==0I8PT==1) GEO(1)=8
173 IF(IABS(IHBE)>=222) GEO(1)=IHBE
174.AND. IF(N2D>0I8PT==1)THEN
175 GEO(1)=4
176 CALL ANCMSG(MSGID=323,
177 . MSGTYPE=MSGWARNING,
178 . ANMODE=ANINFO_BLIND_2,
179 . I1=IG,
180 . C1=IDTITL)
181 ENDIF
182.AND..AND. IF(N2D>0IHBE/=0IHBE/=2)THEN
183 IHBE_OLD=IHBE
184 IHBE=0
185 CALL ANCMSG(MSGID=324,
186 . MSGTYPE=MSGWARNING,
187 . ANMODE=ANINFO_BLIND_2,
188 . I1=IG,
189 . C1=IDTITL,
190 . I2=IHBE_OLD,
191 . I3=IHBE)
192 ENDIF
193.AND..AND. IF(IHBE>=3IHBE<13IHBE/=4) IHBE=1
194 GEO(171)=IHBE
195.AND. IF(IHBE>1000IHBE<1050) THEN
196 NPTS=IHBE-1000
197 ELSEIF(IABS(IHBE)>=222) THEN
198 NPTS=IABS(IHBE)/100*MOD(IABS(IHBE)/10,10)*MOD(IABS(IHBE),10)
199 ELSE
200 NPTS=NINT(GEO(1))
201 ENDIF
202 IGEO(4) = NPTS
203 IGEO(10) = IHBE
204
205 IF(GEO(21)==0.) GEO(21)=ONE
206 ITU=MIN(ITU,1)
207 IF(ITU==1)THEN
208 IF(GEO(22)==ZERO)GEO(22)=EM01
209 IF(GEO(23)==ZERO)THEN
210 GEO(23)=EM20
211 IWARN = IWARN + 1
212 WRITE(IOUT,*)
213 . ' mixing length required IF turbulence',
214 . ' is imposed by porous medium'
215 ENDIF
216 ENDIF
217
218 DO K=0,NUMSKW+MIN(1,NSPCOND)*NUMSPH+NSUBMOD
219 IF(ISK == ISKN(4,K+1)) THEN
220 ISK=K+1
221 GO TO 10
222 ENDIF
223 ENDDO
224 CALL ANCMSG(MSGID=137,ANMODE=ANINFO,MSGTYPE=MSGERROR,
225 . C1='property',
226 . C2='property',
227 . I1=IG,I2=ISK,C3=IDTITL)
22810 CONTINUE
229
230 GEO(27)=ISK + EM01
231 GEO(28)=ITU + EM01
232 IF(IRB/=0)THEN
233 GEO(29)=USR2SYS(IRB,ITABM1,MESS,IG)+PUN
234 ELSE
235 GEO(29)=0
236 ENDIF
237 GEO(30)=IHON+EM01
238 IF(GEO(24)+GEO(25)+GEO(26)==ZERO)GEO(20)=ONEP1
239 WRITE(IOUT,1800)IG,NINT(GEO(1)),IHBE,GEO(14),GEO(15),
240 . GEO(13),GEO(21),(GEO(J),J=24,26),ISKN(4,ISK),
241 . IHON,IRB
242 IF(ITU==1) WRITE(IOUT,1850)GEO(22),GEO(23)
243
244.AND. IF(GEO( 3)/=ZEROIGEO( 5)== 0)IGEO( 5)=NINT(GEO( 3))
245.AND. IF(GEO(39)/=ZEROIGEO( 9)== 0)IGEO( 9)=NINT(GEO(39))
246.AND. IF(GEO(171)/=ZEROIGEO(10)== 0)
247 . IGEO(10)=NINT(GEO(171))
248
249.OR. IF (GEO(16) /= ZERO GEO(17) /= ZERO) THEN
250 IGEO(33) = 1 ! ISVIS flag
251 ENDIF
252
253! /ALE/CLOSE
254! ----------
255 CALL HM_READ_ALE_CLOSE(UNITAB, LSUBMODEL, GEO)
256
257
258
259 PROP_TAG(IGTYP)%G_SIG = 6
260 PROP_TAG(IGTYP)%G_VOL = 1
261 PROP_TAG(IGTYP)%G_EINT = 1
262 PROP_TAG(IGTYP)%G_QVIS = 1
263 PROP_TAG(IGTYP)%L_SIG = 6
264 PROP_TAG(IGTYP)%L_EINT = 1
265 PROP_TAG(IGTYP)%L_VOL = 1
266 PROP_TAG(IGTYP)%L_QVIS = 1
267 PROP_TAG(IGTYP)%G_FILL = 1
268 PROP_TAG(IGTYP)%L_STRA = 6
269
270 RETURN
271
272 1800 FORMAT(
273 & 5X,'porous fluid property set'/,
274 & 5X,'property set number . . . . . . . . . .=',I10/,
275 & 5X,'number of gauss point . . . . . . . . .=',I10/,
276 & 5X,'hourglass belytshko . . . . . . . . . .=',I10/,
277 & 5X,'quadratic bulk viscosity. . . . . . . .=',1PG20.13/,
278 & 5X,'linear bulk viscosity . . . . . . . . .=',1PG20.13/,
279 & 5X,'hourglass viscosity . . . . . . . . . .=',1PG20.13/,
280 & 5X,'porosity . . . . . . . . . . . . . . .=',1PG20.13/,
281 & 5X,'resistance factor dir 1 . . . . . . . .=',1PG20.13/,
282 & 5X,'resistance factor dir 2 . . . . . . . .=',1PG20.13/,
283 & 5X,'resistance factor dir 3 . . . . . . . .=',1PG20.13/,
284 & 5X,'skew number as reference frame . . . .=',I10/,
285 & 5X,'flag
for honeycomb in dir 1 . . . . . .=
',I10/,
286 & 5X,'rigid body number to which',/,
287 & 5X,' substrate reaction is applied . .=',I10/)
288 1850 FORMAT(
289 & 5X,'turbulence is imposed by porous medium'/,
290 & 5X,'turbulent fluctuation coeff . . . . . .=',1PG20.13/,
291 & 5X,'mixing length . . . . . . . . . . . . .=',1PG20.13/)
292
293
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter nchartitle
integer, parameter ncharkey