36 SUBROUTINE ale_euler_init(MLAW_TAG,IPM,PM, IGEO,TITR,TITR1,TITR2,IGTYP,ID,ILAW,
37 . MID,IMID,PID,IPID,JALE_FROM_PROP,JALE_FROM_MAT,ITHERM,ITHERM_FE)
57#include "implicit_f.inc"
69 TYPE(
mlaw_tag_),
DIMENSION(NUMMAT),
INTENT(INOUT) :: MLAW_TAG
70 CHARACTER(LEN=NCHARTITLE),
INTENT(INOUT) :: TITR,TITR1,TITR2
71 INTEGER,
INTENT(INOUT):: ITHERM
72 INTEGER,
INTENT(INOUT):: ITHERM_FE
73 INTEGER,
INTENT(INOUT)::IGEO(NPROPGI,NUMGEO)
74 INTEGER,
INTENT(IN) :: ID,IMID,PID,IPID,IGTYP,ILAW
75 INTEGER,
INTENT(INOUT) :: MID,JALE_FROM_PROP,JALE_FROM_MAT
76 INTEGER,
DIMENSION(NPROPMI,NUMMAT),
INTENT(INOUT) :: IPM
77 my_real,
DIMENSION(NPROPM,NUMMAT),
INTENT(INOUT) :: pm
81 INTEGER II,uID1,uID2,MID1,MID2,ILAW1,ILAW2,JALE,JTUR,IMAT,MAT_ID,IGFLU
82 INTEGER JTHE,STAT,CODCONV,CODREZO,IEXPAN
83 INTEGER,
EXTERNAL :: NINTRI
84 CHARACTER*5 CHAR_PROP,CHAR_MAT
88 LOGICAL,
EXTERNAL :: LOI_FLUID
102 jale_from_mat = pm(72,imid)
104 IF(jale_from_mat == 1)
THEN
106 ELSEIF(jale_from_mat == 2)
THEN
117 jale_from_prop = igeo(62,ipid)
119 IF(jale_from_prop == 1)
THEN
121 ELSEIF(jale_from_prop == 2)
THEN
129 IF(jale_from_mat > 0 .AND. jale_from_prop > 0)
THEN
132 CALL ancmsg(msgid=1120,msgtype=msgerror,anmode=aninfo_blind_1,i1=mid,c1=titr2 )
134 IF(jale_from_mat /= jale_from_prop)
THEN
135 CALL ancmsg(msgid=130,msgtype=msgerror,anmode=aninfo_blind_1,
137 . i2=pid,c2=titr1,c3=char_prop,
138 . i3=mid,c4=titr2,c5=char_mat )
146 IF(jale_from_mat > 0 .OR. jale_from_prop > 0)
THEN
147 IF (ilaw == 151 .AND. n2d /= 0)
THEN
149 IF(igtyp/=14.AND.igtyp/=15.AND.igtyp/=1)
THEN
155 pm(1:npropm,imid) = zero
156 ipm(1:npropmi,imid) = 0
159 IF(igtyp/=14.AND.igtyp/=15)
THEN
161 CALL ancmsg(msgid=42,msgtype=msgerror,anmode=aninfo
164 pm(1:npropm,imid) = zero
165 ipm(1:npropmi,imid) = 0
174 IF(jale_from_mat == 0 .AND. jale_from_prop == 0)
THEN
175 IF(ilaw==20 .OR. ilaw==37 .OR. ilaw==51 .OR. ilaw==151)
THEN
176 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,ipid),ltitr)
177 CALL fretitl2(titr2,ipm(npropmi-ltitr+1,imid),ltitr)
178 CALL ancmsg(msgid=101, msgtype=msgerror,anmode=aninfo,
194 IF(imid > 0) jthe = nint(pm(71,imid))
196 IF(jale_from_prop>0 .OR. jale_from_mat>0)
THEN
207 IF(imid > 0) iexpan=ipm(218,imid)
209 IF(jale_from_prop>0 .OR. jale_from_mat>0)
THEN
210 CALL ancmsg(msgid=1723,msgtype=msgerror,anmode=aninfo,i1=imat,c1=titr)
217 IF(jale_from_prop > 0 .OR. jale_from_mat > 0)
THEN
219 mlaw_tag(imid)%L_SSP = 1
221 uid1 = nint(pm(21,imid))
222 uid2 = nint(pm(22,imid))
223 mid1 = nintri(uid1,ipm,npropmi,nummat,1)
224 mid2 = nintri(uid2,ipm,npropmi,nummat,1)
228 pm(15,mid1) =
ale%UPWIND%UPWMG
229 pm(15,mid2) =
ale%UPWIND%UPWMG
230 pm(16,mid1) =
ale%UPWIND%UPWOG
231 pm(16,mid2) =
ale%UPWIND%UPWOG
232 mlaw_tag(mid1)%L_SSP = 1
233 mlaw_tag(mid2)%L_SSP = 1
239 ! specific treatment law11(boundary material)
241 IF(jale_from_prop > 0)
THEN
243 IF(pm(92,imid) == zero)
THEN
252 IF ((jale_from_prop == 0 .AND. jale_from_mat == 0).AND. ilaw/=18 .AND. ilaw/=11)
THEN
254 ELSEIF(jale_from_prop == 1 .OR. jale_from_mat == 1)
THEN
256 ELSEIF(jale_from_prop == 2 .OR. jale_from_mat == 2)
THEN
265 IF (jale_from_prop /= 0 .OR. jale_from_mat /= 0)
THEN
266 pm(15,imid) =
ale%UPWIND%UPWMG
267 pm(16,imid) =
ale%UPWIND%UPWOG
274 IF(imid > 0) jtur = nint(pm(70,imid))
275 IF (ilaw /= 50) iturb =
max(iturb ,jtur)
284 IF(jale_from_prop /= 0 .OR. jale_from_mat /= 0)
THEN
317 codconv = codconv + 11
319 ale%GLOBAL%CODV(1) = 01
320 ale%GLOBAL%CODV(2) = 01
327 codconv = codconv + 1100
334 IF(ilaw == 37 .OR. ilaw == 41)
THEN
336 codconv = codconv + 10000
342 IF( (jale_from_prop /= 0 .OR. jale_from_mat /= 0) .AND. (
366 IF( (jale_from_prop /= 0 .OR. jale_from_mat /= 0) .AND. ilaw == 1)
THEN
371 IF( (jale_from_prop /= 0 .OR. jale_from_mat /= 0) .AND.
alefvm_param%IEnabled == 1)
THEN
374 codconv = codconv + 11100000
376 ale%GLOBAL%CODV(6) = 1
377 ale%GLOBAL%CODV(7) = 1
378 ale%GLOBAL%CODV(8) = 1
382 pm(10,imid)=codconv+em01
383 pm(11,imid)=codrezo+em01
389 IF(ipid > 0)igflu=igeo(36,ipid)
391 IF(
ale%GLOBAL%ICAA /= 0)
THEN
392 IF( jale_from_prop==1 .OR. jale_from_prop==2
393 . .OR. jale_from_mat==1 .OR. jale_from_mat==2 )
THEN
394 IF(.NOT.loi_fluid(ilaw))
THEN
395 CALL ancmsg(msgid=37,msgtype=msgwarning,anmode=aninfo_blind_1,
403 IF( (igflu==1) .AND. .NOT.(loi_fluid(ilaw)) .AND. (
ale%GLOBAL%ICAA == 0) .AND. (igtyp == 14) )
THEN
404 CALL ancmsg(msgid=38,msgtype=msgerror,anmode=aninfo_blind_1,
417 IF(ipid > 0)igflu=igeo(36,ipid)
419 IF(
ale%GLOBAL%ICAA /= 0)
THEN
420 IF( jale_from_prop==1 .OR. jale_from_prop==2
421 . .OR. jale_from_mat==1 .OR. jale_from_mat==2 )
THEN
422 IF(.NOT.loi_fluid(ilaw))
THEN
423 CALL ancmsg(msgid=37,msgtype=msgwarning,anmode=aninfo_blind_1,
431 IF( (igflu==1) .AND. .NOT.(loi_fluid(ilaw)) .AND. (
ale%GLOBAL%ICAA == 0
THEN
432 CALL ancmsg(msgid=38,msgtype=msgerror,anmode=aninfo_blind_1,
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)