52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
79 USE matparam_def_mod
83 USE multimat_param_mod , ONLY : m51_n0phas, m51_nvphas
84 USE mat51_associate_eos_mod , ONLY : mat51_associate_eos
85
86
87
88#include "implicit_f.inc"
89
90
91
92#include "units_c.inc"
93#include "com01_c.inc"
94#include "param_c.inc"
95#include "scr03_c.inc"
96
97
98
99 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
100 my_real,
INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
101 INTEGER,INTENT(INOUT) :: IPM(NPROPMI)
102 INTEGER, INTENT(INOUT) :: ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
103 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
104 INTEGER,INTENT(IN) :: MAT_UID
105 INTEGER,INTENT(IN) :: MAT_IID
106 INTEGER,INTENT(IN) :: NUMMAT
107 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
108 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
109 TYPE(MATPARAM_STRUCT_), TARGET ,INTENT(INOUT), DIMENSION(NUMMAT) :: MAT_PARAM
110 INTEGER,INTENT(INOUT) :: NVARTMP
111
112
113
114
116 INTEGER MIP,NBMAT,IFLAG_BAK,IDX
117
118 my_real :: rho0, rhor, dpdmu(4)
119 my_real :: av(4), rho0_(4),c0(4),c1(4), e0(4),pmin_(4),t0(4),c2(4),c3(4),c4(4),c5(4), gg(4)
120 my_real :: b1,b2,r1,r2,w,vdet,pcj,vcj, p0_glob
121
122
123 my_real :: y(4),bb(4),n(4),cc(4),epdr(4),cm(4),tmelt(4),thetl(4),plamx(4),sigmx(4),sph(4), xka(4),xkb(4)
124
125 my_real :: fac_unit_time, fac_unit_sph
126
127 my_real :: nu(4),a0(4),a1(4),a2(4),amx(4),bunl(4),mumx(4),pstar(4),det,delta
128
129 my_real :: p0(4),ssp(4),lc(4),tcarp,tcar,abcs
130
131 INTEGER :: IOPT,IAV(4),IRHO(4),IE(4)
132 INTEGER :: I,IFLG,
133 INTEGER :: NITER
134 INTEGER :: IEXP, N_LC, IPLA_, IPLA(4), IBFRAC
135 INTEGER :: IVEL, IMID
136 INTEGER :: (4)
137
139 my_real :: einf(4),pfar,pini(4)
141
142 CHARACTER*128 :: chain,
143 CHARACTER*32 :: CAV(4),CRHO0(34),CE0(4),CPM(4),CC0(4),CSSP(4)
144 CHARACTER*32 :: CPEXT,CTCARP,CTCAR
145
146 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED, IFLG6_SUBMAT_DEFINED(4)
147
148 type(matparam_struct_) , pointer :: matparam
149
150
151
152 is_encrypted = .false.
153 is_available = .false.
154 israte=0
155 imatvis=0
156 matparam => mat_param(mat_iid)
157
158 mtag%L_SSP = 1
159 mtag%L_SIGV = 1
160 mtag%L_EINS = 1
161 mtag%G_EINS = 1
162 mtag%L_EINT = 1
163 mtag%G_EINT = 1
164 mtag%G_TEMP = 1
165 mtag%L_TEMP = 1
166 mtag%L_VK = 1
167 mtag%G_TB = 1
168 mtag%L_TB = 1
169 nuparam = 280
170 nfunc = 10
171 uparam(1:nuparam) = zero
172 ifunc(1:nfunc) = 0
173 p0(:) = zero
175 iflg6_submat_defined(1:4)=.true.
176
177 niter = 10
178 n_lc = 0
179 iopt = 0
180 nuvar = (m51_n0phas + 4*m51_nvphas)
181 pext = zero
182 pfar = zero
183 vis = zero
184 visv = zero
185 fac_unit_sph = one
186 fac_unit_time = one
187
188 av(1:4) = zero
189 rho0_(1:4) = zero
190 e0(1:4) = zero
191 pmin_(1:4) = zero
192 gg(1:4) = zero
193 c0(1:4) = zero
194 c1(1:4) = zero
195 c2(1:4) = zero
196 c3(1:4) = zero
197 c4(1:4) = zero
198 c5(1:4) = zero
199
200 ssp(1:4) = zero
201 lc(1:4) = zero
202 tcarp = zero
203 tcar = zero
204 abcs = 0
205 iav(1:4) = 0
206 irho(1:4) = 0
207 ie(1:4) = 0
208 ivel = 0
209 vel = zero
210 iopt = 0
211 ratio = zero
212
213 y(1:4) = zero
214 bb(1:4) = zero
215 n(1:4) = zero
216 cc(1:4) = zero
217 epdr(1:4) = zero
218 cm(1:4) = zero
219 tmelt(1:4) = zero
220 thetl(1:4) = zero
221 plamx(1:4) = zero
222 sigmx(1:4) = zero
223 sph(1:4) = zero
224 t0(1:4) = zero
225
226 b1 = zero
227 b2 = zero
228 r1 = zero
229 r2 = zero
230 w = zero
231 vdet = zero
232 pcj = zero
233 vcj = zero
234 iexp = 0
235 ibfrac = 0
236
237 xka(1:4) = zero
238 xkb(1:4) = zero
239 a0(1:4) = zero
240 a1(1:4) = zero
241 a2(1:4) = zero
242 amx(1:4) = zero
243 bunl(1:4) = zero
244 mumx(1:4) = zero
245 pstar(1:4)=-infinity
246 nu(1:4) = zero
247 einf(1:4) =-infinity
248
249
250
251
252
253
255
256 CALL hm_get_floatv(
'MAT_RHO' ,rho0, is_available, lsubmodel, unitab)
257 CALL hm_get_floatv(
'Refer_Rho' ,rhor, is_available, lsubmodel, unitab)
258
259 ipla_ = 0
260 ipla(1:4) = 0
261 CALL hm_get_intv (
'MAT_Iflag' ,iflg ,is_available, lsubmodel)
262 iflag_bak=iflg
263 IF(invers_src >= 2023 .AND. iflg == 0)THEN
264 iflg = 12
265
266 ENDIF
267 IF(iflg == 11)THEN
268 CALL hm_get_intv (
'Mach1', ipla(1), is_available, lsubmodel)
269 CALL hm_get_intv (
'Mach2', ipla(2), is_available, lsubmodel)
270 CALL hm_get_intv (
'Mach3', ipla(3), is_available, lsubmodel)
271 ENDIF
272 IF(iflg /= 11)THEN
273 ipla(1:4)=0
274 ENDIF
275 DO i=1,3
276 IF(ipla(i) < 0 .OR. ipla(i) > 2)ipla(i)=0
277 ENDDO
278 CALL hm_get_intv(
'NIP',nbmat,is_available,lsubmodel)
279
280 tav(1:4) = zero
281 tmid(1:4)= 0
282 matparam%multimat%old_data_format = 1
283 SELECT CASE(iflg)
284
285
286
287 CASE(0)
288
289
290 CALL hm_get_floatv(
'PEXT' , pext , is_available, lsubmodel, unitab)
291 CALL hm_get_floatv(
'MAT_NU' , vis , is_available, lsubmodel, unitab)
292 CALL hm_get_floatv(
'MAT_Lamda', visv , is_available, lsubmodel, unitab)
293 DO i=1,3
305 ENDDO
307 IF(gg(1)+gg(2)+gg(3)==zero)THEN
308 ipla_=0
309 ELSE
310 ipla_=1
311 IF(gg(1)>zero)ipla(1)=1
312 IF(gg(2)>zero)ipla(2)=1
313 IF(gg(3)>zero)ipla(3)=1
314 ENDIF
315
316
317
318 CASE(1)
319 iflg = 0
320
321 IF(invers_src>=2023)THEN
322 chain1='INPUT TYPE IFORM=1 IS OBSOLETE SINCE 2023 VERSION : IFORM=12 MUST BE USED'
323 CALL ancmsg(msgid=75, msgtype=msgerror, anmode=aninfo, i1=mat_uid,c1=titr,c2=chain1)
324 RETURN
325 ENDIF
326
327 CALL hm_get_floatv(
'PEXT' , pext , is_available, lsubmodel, unitab)
328 CALL hm_get_floatv(
'MAT_NU' , vis , is_available, lsubmodel, unitab)
329 CALL hm_get_floatv(
'MAT_Lamda', visv , is_available, lsubmodel, unitab)
330 DO i=1,3
356 ENDDO
358 IF(gg(1)+gg(2)+gg(3)==zero)THEN
359 ipla_=0
360 ELSE
361 ipla_=1
362 IF(gg(1)>zero)ipla(1)=1
363 IF(gg(2)>zero)ipla(2)=1
364 IF(gg(3)>zero)ipla(3)=1
365 ENDIF
366
367
368
369 CASE(2)
370 ale%GLOBAL%IS_BOUNDARY_MATERIAL = .true.
371 CALL hm_get_floatv(
'SCALE' ,abcs ,is_available, lsubmodel, unitab)
372 CALL hm_get_floatv(
'PEXT' ,pext ,is_available, lsubmodel, unitab)
373 CALL hm_get_floatv(
'VEL_in' ,vel ,is_available, lsubmodel, unitab)
374 CALL hm_get_intv (
'Fct_ID_vel' ,ivel ,is_available, lsubmodel)
375 DO i=1,3
389 ENDDO
392
393
394
395 CASE(3)
396
397 ale%GLOBAL%IS_BOUNDARY_MATERIAL=.true.
398 IF(invers_src>=2023)THEN
399 chain1='INPUT TYPE IFORM=3 IS OBSOLETE SINCE 2023 VERSION : IFORM=6 MUST BE USED'
400 CALL ancmsg(msgid=75, msgtype=msgerror, anmode=aninfo, i1=mat_uid,c1=titr,c2=chain1)
401 RETURN
402 ENDIF
403 DO i=1,3
409 ENDDO
411
412
413
414 CASE(4)
415 ale%GLOBAL%IS_BOUNDARY_MATERIAL = .true.
416 CALL hm_get_floatv(
'SCALE' ,abcs ,is_available, lsubmodel, unitab)
417 CALL hm_get_floatv(
'PEXT' ,pext ,is_available, lsubmodel, unitab)
418 DO i=1,3
428 c5(i)=c4(i)
429 ENDDO
432
433
434
435 CASE(5)
436 ale%GLOBAL%IS_BOUNDARY_MATERIAL = .true.
437 CALL hm_get_floatv(
'SCALE' ,abcs ,is_available, lsubmodel, unitab)
438 CALL hm_get_floatv(
'PEXT' ,pext ,is_available, lsubmodel, unitab)
439 DO i=1,3
449 ENDDO
452
453
454
455 CASE(6)
456 ale%GLOBAL%IS_BOUNDARY_MATERIAL = .true.
457 m51_iflg6 = 1
458 ierror = 0
459 CALL hm_get_floatv(
'PEXT' ,pext ,is_available, lsubmodel, unitab)
460 CALL hm_get_floatv(
'MAT_TCP' ,tcarp ,is_available, lsubmodel, unitab)
461 CALL hm_get_floatv(
'MAT_TCALPHA' ,tcar ,is_available, lsubmodel, unitab)
462 DO i=1,3
469 IF(av(i)==zero .AND. rho0_(i)==zero .AND. e0(i)==zero .AND. pmin_(i)==zero .AND. c0(i)==zero .AND. ssp(i)==zero )THEN
470 iflg6_submat_defined(i)=.false.
471 ENDIF
472 ENDDO
474 IF(tcar == zero)tcar=infinity
475 cpext(1:32) = ' auto ' ;
476 IF (PEXT /= ZERO) WRITE(CPEXT ,FMT='(e12.4)')PEXT
477 CTCARP(1:32) = ' auto ' ;
478 IF (TCARP /= ZERO) WRITE(CTCARP ,FMT='(e12.4)')TCARP
479 CTCAR (1:32) = ' auto ' ;
480 IF (TCAR /= ZERO) WRITE(CTCAR ,FMT='(e12.4)')TCAR
481 DO I=1,3
482 CAV (I)= ' auto ' ;IF (AV(I) /= ZERO) WRITE(CAV(I) ,FMT='(e12.4)')AV(I)
483 CRHO0(I)= ' auto ' ;IF (RHO0_(I)/= ZERO) WRITE(CRHO0(I) ,FMT='(e12.4)')RHO0_(I)
484 CE0 (I)= ' auto ' ;IF (E0(I) /= ZERO) WRITE(CE0(I) ,FMT='(e12.4)')E0(I)
485 CPM (I)= ' auto ' ;IF (PMIN_(I) /= ZERO) WRITE(CPM(I) ,FMT='(e12.4)')PMIN_(I)
486 CC0 (I)= ' auto ' ;IF (C0(I) /= ZERO) WRITE(CC0(I) ,FMT='(e12.4)')C0(I)
487 CSSP (I)= ' auto ' ;IF (SSP(I) /= ZERO) WRITE(CSSP(I) ,FMT='(e12.4)')SSP(I)
488 ENDDO
489
490 !============================!
491 ! IFLG == 10 !
492 !============================!
493 CASE(10)
494 IFLG=1
495 IEXP=1
496 !obsolete law51-formulation
497 IF(INVERS_SRC>=2023)THEN
498 chain1='input TYPE iform=10 is obsolete since 2023 version : iform=12 must be used'
499 CALL ANCMSG(MSGID=75, MSGTYPE=MSGERROR, ANMODE=ANINFO, I1=MAT_UID,C1=TITR,C2=chain1)
500 RETURN
501 ENDIF
502 CALL HM_GET_FLOATV('pext' ,PEXT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
503 CALL HM_GET_FLOATV('mat_nu' ,VIS ,IS_AVAILABLE, LSUBMODEL, UNITAB)
504 CALL HM_GET_FLOATV('mat_lamda' ,VISV ,IS_AVAILABLE, LSUBMODEL, UNITAB)
505 DO I=1,3
506 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_alpha_iflg10_phas' ,AV(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
507 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_rho_iflg10_phas' ,RHO0_(I),I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
508 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_e_iflg10_phas' ,E0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
509 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_p_iflg10_phas' ,PMIN_(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
510 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c0_iflg10_phas' ,C0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
511 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c1_iflg10_phas' ,C1(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
512 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c2_iflg10_phas' ,C2(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
513 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c3_iflg10_phas' ,C3(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
514 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c4_iflg10_phas' ,C4(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
515 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c5_iflg10_phas' ,C5(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
516 CALL HM_GET_FLOAT_ARRAY_INDEX('mlaw51_g10' ,GG(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
517 CALL HM_GET_FLOAT_ARRAY_INDEX('sigma_y10' ,Y(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
518 CALL HM_GET_FLOAT_ARRAY_INDEX('bb10' ,BB(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
519 CALL HM_GET_FLOAT_ARRAY_INDEX('law51_n10' ,N(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
520 CALL HM_GET_FLOAT_ARRAY_INDEX('cc10' ,CC(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
521 CALL HM_GET_FLOAT_ARRAY_INDEX('e010' ,EPDR(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
522 CALL HM_GET_FLOAT_ARRAY_INDEX('cm10' ,CM(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
523 CALL HM_GET_FLOAT_ARRAY_INDEX('t10_10' ,T0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
524 CALL HM_GET_FLOAT_ARRAY_INDEX('t_melt10' ,tmelt(i),i ,is_available, lsubmodel, unitab)
531 ENDDO
533
534 CALL hm_get_floatv(
'MLAW51_ALPHA' ,av(4) ,is_available, lsubmodel, unitab)
535 CALL hm_get_floatv(
'MLAW51_Rho' ,rho0_(4) ,is_available, lsubmodel, unitab)
536 CALL hm_get_floatv(
'MLAW51_E0' ,e0(4) ,is_available, lsubmodel, unitab)
537 CALL hm_get_floatv(
'MLAW51_Pmin' ,pmin_(4) ,is_available, lsubmodel, unitab)
538 CALL hm_get_floatv(
'MLAW51_C0' ,c0(4) ,is_available, lsubmodel, unitab)
539 CALL hm_get_floatv(
'MLAW51_B1' ,b1 ,is_available, lsubmodel, unitab)
540 CALL hm_get_floatv(
'MLAW51_B2' ,b2 ,is_available, lsubmodel, unitab)
541 CALL hm_get_floatv(
'MLAW51_R1' ,r1 ,is_available, lsubmodel, unitab)
542 CALL hm_get_floatv(
'MLAW51_R2' ,r2 ,is_available, lsubmodel, unitab)
543 CALL hm_get_floatv(
'MLAW51_W' ,w ,is_available, lsubmodel, unitab)
544 CALL hm_get_floatv(
'MLAW51_D' ,vdet ,is_available, lsubmodel, unitab)
545 CALL hm_get_floatv(
'MLAW51_PCJ' ,pcj ,is_available, lsubmodel, unitab)
546 CALL hm_get_floatv(
'MLAW51_C14' ,c1(4) ,is_available, lsubmodel, unitab)
547 CALL hm_get_intv(
'MAT_IBFRAC' ,ibfrac ,is_available, lsubmodel)
548 IF(gg(1)+gg(2)+gg(3)==zero)THEN
549 ipla_=0
550 ELSE
551 ipla_=1
552 IF(gg(1)>zero)ipla(1)=1
553 IF(gg(2)>zero)ipla(2)=1
554 IF(gg(3)>zero)ipla(3)=1
555 ENDIF
556
557
558
559 CASE(11)
560 iflg=1
561 iexp=1
562
563 IF(invers_src>=2023)THEN
564 chain1='INPUT TYPE IFORM=11 IS OBSOLETE SINCE 2023 VERSION : IFORM=12 MUST BE USED'
565 CALL ancmsg(msgid=75, msgtype=msgerror, anmode=aninfo, i1=mat_uid,c1=titr,c2=chain1)
566 RETURN
567 ENDIF
569 . av , rho0_ ,e0 , pmin_ , c0 ,
570 . c1 , c2 ,c3 , c4 , c5 ,
571 . ipla , gg ,y , bb , n ,
572 . cc , epdr ,cm , t0 , tmelt ,
573 . thetl , sph ,plamx , sigmx , xka ,
574 . xkb , nu ,a0 , a1 , a2 ,
575 . amx ,
576 . b1 , b2 ,r1 , r2, w,
577 . vdet , pcj ,ibfrac , pext, vis,
578 . visv , lsubmodel, unitab)
580
581 IF(gg(1)==zero.AND.ipla(1)==2)gg(1)=y(1)/two/(one+nu(1))
582 IF(gg(2)==zero.AND.ipla(2)==2)gg(2)=y(2)/two/(one+nu(2))
583 IF(gg(3)==zero.AND.ipla(3)==2)gg(3)=y(3)/two/(one+nu(3))
584
585 ipla_=0
586 IF(gg(1)+gg(2)+gg(3) /= zero)THEN
587 ipla_=1
588 IF(gg(1)==zero)ipla(1)=0
589 IF(gg(2)==zero)ipla(2)=0
590 IF(gg(3)==zero)ipla(3)=0
591 ENDIF
592
593
594
595 CASE(12)
596 matparam%multimat%old_data_format = 0
597 iflg = 12
598 iexp = 1
599 nbmat = 0
600 tav(1:4) = zero
601 tmid(1:4)= 0
602 nvartmp = 6
603 CALL hm_get_floatv(
'MAT_NU' ,vis ,is_available, lsubmodel, unitab)
604 CALL hm_get_floatv(
'MAT_Lamda' ,visv ,is_available, lsubmodel, unitab)
605 CALL hm_get_intv (
'MIP' ,mip ,is_available, lsubmodel)
606 imid = 0
607 sumvf = zero
608 DO i=1,mip
611 ENDDO
612 uparam(09:12) = tmid(1:4)
613 uparam(13:16) = tav(1:4)
614 av(1:4) = tav(1:4)
615 IF(mip==0)THEN
616 chain1='SUBMATERIAL DATA NOT FOUND '
617 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo,i1=mat_uid,c1=titr,c2=chain1)
618 RETURN
619 ENDIF
620 DO i=1,mip
621 IF(tmid(i) <= 0)THEN
622 chain(1:10)=' '
623 write(chain(1:10),'(i10)')tmid(i)
624 chain1='INCORRECT MATERIAL IDENTIFIER '//chain(1:10)
625 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo,i1=mat_uid,c1=titr,c2=chain1)
626 tmid(i)=0
627 RETURN
628 ENDIF
629 ENDDO
630 DO i=1,mip
631 IF(tav(i)<zero .OR. tav(i)>one)THEN
632 chain(1:20)=' '
633 write(chain(1:20),'(e20.14)')tav(i)
634 chain1='VOLUME FRACTION MUST BE BETWEEN 0.0 AND 1.0 , READ VALUE IS '// chain(1:20)
635 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo,i1=mat_uid,c1=titr,c2=chain1)
636 RETURN
637 ENDIF
638 ENDDO
639 sumvf = sum(tav(1:4))
640 IF(sumvf>one)THEN
641 chain(1:20)=' '
642 write(chain(1:20),'(F20.8)')sumvf
643 chain1='SUM OF VOLUME FRACTION MUST BE EQUAL TO 1.0, CURRENT SUM IS '// chain(1:20)
644 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo,i1=mat_uid,c1=titr,c2=chain1)
645 RETURN
646 ENDIF
647
648
649
650 CASE DEFAULT
651
652 chain1='INCORRECT IFORM VALUE '
653 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo_blind_1,i1=mat_uid,c1=titr,c2=chain1)
654 RETURN
655 END SELECT
656
657
658
659 IF(ratio<=zero)THEN
660 ratio = 0.25d00
661 ENDIF
662 IF(ipla_>0)THEN
663 mtag%G_EPSD = 1
664 mtag%L_EPSD = 1
665 mtag%G_PLA = 1
666 mtag%L_PLA = 1
667 IF(ipla(1) == 2 .OR. ipla(2) == 2 .OR. ipla(3) == 2)THEN
668 mtag%G_EPSQ = 1
669 mtag%L_EPSQ = 1
670 ENDIF
671 ENDIF
672 IF(iexp>0)THEN
673 mtag%G_BFRAC = 1
674 mtag%L_BFRAC = 1
675 ENDIF
676 IF(iflg == 12)THEN
677 mtag%G_EPSD = 1
678 mtag%L_EPSD = 1
679 mtag%G_PLA = 1
680 mtag%L_PLA = 1
681 mtag%G_EPSQ = 1
682 mtag%L_EPSQ = 1
683 mtag%G_BFRAC = 1
684 mtag%L_BFRAC = 1
685 ENDIF
686 DO i=1,3
687 IF(ipla(i) == 2)THEN
688 IF(a2(i)==zero.AND.a1(i)/=zero)THEN
689 pstar(i)=-a0(i)/a1(i)
690 ELSEIF(a2(i)/=zero)THEN
691 delta = a1(i)*a1(i)-four*a0(i)*a2(i)
692
693 IF(delta >= zero)THEN
694 delta=sqrt(delta)
695 pstar(i) = (-a1(i)+delta)/two/a2(i)
696
697 ELSE
698
699 pstar(i) = -infinity
700 chain='SUBMAT-0 : YIELD SURFACE HAS NO ROOT. '
701 write(chain(8:8),'(i1.1)')i
702 CALL ancmsg(msgid=829,msgtype=msgwarning,anmode=aninfo,i1=51,i2=mat_uid,c1=
'WARNING',c2=titr,c3=chain)
703 ENDIF
704 ELSE
705
706 ENDIF
707 ENDIF
708 ENDDO
709
710
711
712 IF(iopt < 0)iopt=0
713
714 IF (n_lc <= 0)THEN
715 IF(iopt==1)THEN
716 n_lc=100
717 ELSE
718 n_lc=1000
719 ENDIF
720 ENDIF
721 IF(abcs==zero) abcs= one*fac_unit_time
722 pmin = -pext
723 DO i=1,4
724
725 IF(sph(i) == zero) sph(i) = one * fac_unit_sph
726
727 IF(n(i) == zero) n(i) = one
728
729 IF(t0(i) == zero) t0(i) = three100
730
731 IF(plamx(i) == zero) plamx(i) = infinity
732
733 IF(sigmx(i) == zero) sigmx(i) = infinity
734
735 IF(tmelt(i) == zero) tmelt(i) = infinity
736
737 IF(thetl(i) == zero) thetl(i) = infinity
738
739 IF(xka(i) == zero) xka(i) = em20
740
741 IF(epdr(i) == zero) epdr(i) = one
742
743 IF(amx(i) == zero) amx(i) = infinity
744
745 IF(nu(i) == zero) nu(i) = zep2
746 ENDDO
747
748 DO i=1,3
749 IF(mumx(i) == zero .AND. bunl(i) /= zero)THEN
750 IF(c3(i) == zero)THEN
751 IF(c2(i) == zero)THEN
752
753 ELSE
754 mumx(i)=(bunl(i)-c1(i))/(two*c2(i))
755 ENDIF
756 ELSE
757 det=sqrt(c2(i)**2 + three*c3(i)*(bunl(i)-c1(i)))
758 mumx(i)=(det-c2(i))/(three*c3(i))
759 ENDIF
760 ENDIF
761 ENDDO
762
763 DO i=1,3
764 IF(bunl(i) == zero) bunl(i) = c1(i
765 ENDDO
766
767 IF(iflg <= 1.OR.iflg == 11)THEN
768 DO i=1,3
769 IF (pmin_(i) == zero) THEN
770 IF(gg(i) == zero)THEN
771 pmin_(i) = -pext
772 ELSE
773 pmin_(i) = -infinity
774 ENDIF
775 ENDIF
776 ENDDO
777 IF (pmin_(4) == zero) THEN
778 pmin_(4) = -infinity
779 ENDIF
780 ENDIF
781
782 IF(rho0_(4) > zero)THEN
783 IF(c1(4) <= zero)THEN
784 chain1='BULK MODULUS C14 MUST BE PROVIDED FOR UNREACTED EXPLOSIVE'
785 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo,i1=mat_uid,c1=titr,c2=chain1)
786 RETURN
787 ENDIF
788 IF(vdet <= zero)THEN
789 chain1='DETONATION VELOCITY MUST BE INPUT FOR EXPLOSIVE SUBMATERIAL'
790 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo,i1=mat_uid,c1=titr,c2=chain1)
791 RETURN
792 ENDIF
793 ENDIF
794
795
796
797
798
799
800
801 IF (iflg /= 12) THEN
803 . av, rho0_, c0, c1, c2, c3, c4, c5,
804 . e0, pm, rho0, rhor, iexp, pext, iflg,
805 . a1, a2, ipla,
806 . mat_uid ,titr,
807 . ssp(1),ssp(2),ssp(3),ssp(4),
808 . lc(1), lc(2), lc(3), lc(4),
809 . pini)
810
811
812
813
814
815 DO i=1,3
816 einf(i)=
ie_bound(pext,pmin_(i),c0(i),c1(i),c2(i),c3(i),c4(i),c5(i),e0(i))
817 ENDDO
818 einf(4)=zero
819 END IF
820
821 IF(iflg == 0 .OR. iflg == 1)THEN
822 DO i=1,3
823 p0(i) = c0(i)+c4(i)*e0(i)
824 dpdmu(i) = (c1(i)+c5(i)*e0(i)) + c4(i)*(pext+p0(i))
825 IF(rho0_(i) /= zero) ssp(i) = sqrt( (dpdmu(i) + two_third*gg(i)) / rho0_(i) )
826 ENDDO
827 p0(4) = c0(4)
828 ssp(4) = vdet
829 ENDIF
830
831
832
833 IF(matparam%multimat%old_data_format == 1)THEN
834 CALL matparam%multimat%EOS_CONSTRUCT
835 DO i=1,3
836 matparam%multimat%eos(i)%PSH = +pext
837 matparam%multimat%eos(i)%E0 = e0(i)
838 matparam%multimat%eos(i)%PMIN = pmin_(i)
839 matparam%multimat%eos(i)%UPARAM(1) = (c0(i)+pext)-pext
840 matparam%multimat%eos(i)%UPARAM(2) = c1(i)
841 matparam%multimat%eos(i)%UPARAM(3) = c2(i)
842 matparam%multimat%eos(i)%UPARAM(4) = c3(i)
843 matparam%multimat%eos(i)%UPARAM(5) = c4(i)
844 matparam%multimat%eos(i)%UPARAM(6) = c5(i)
845 matparam%multimat%eos(i)%UPARAM(7) = zero
846 ENDDO
847 CALL mat51_associate_eos(mat_param,nummat,mat_iid)
848 ENDIF
849
850
851
852
853 uparam(1) = vis
854 uparam(2) = two*vis
855 uparam(3) = (visv-uparam(2))*third
856 uparam(4) = av(1)
857 uparam(5) = av(2)
858 uparam(6) = av(3)
859 uparam(46) = av(4)
860 uparam(7) = pfar
861 uparam(8) = pext
862 uparam(55) = iexp
863 uparam(31) = iflg
864 uparam(73) = niter
865 uparam(74) = ratio
866 uparam(76) = iflg
867 IF (iflg /= 12) THEN
868 uparam(9) = rho0_(1)
869 uparam(10) = rho0_(2)
870 uparam(11) = rho0_(3)
871 uparam(47) = rho0_(4)
872 uparam(12) = c1(1)
873 uparam(13) = c1(2)
874 uparam(14) = c1(3)
875 uparam(15) = c2(1)
876 uparam(16) = c2(2)
877 uparam(17) = c2(3)
878 uparam(18) = c3(1)
879 uparam(20) = c3(2)
880 uparam(21) = c3(3)
881 uparam(22) = c4(1)
882 uparam(23) = c4(2)
883 uparam(24) = c4(3)
884 uparam(25) = c5(1)
885 uparam(26) = c5(2)
886 uparam(27) = c5(3)
887 uparam(28) = two*gg(1)
888 uparam(29) = two*gg(2)
889 uparam(30) = two*gg(3)
890 uparam(31) = iflg
891 uparam(32) = e0(1)
892 uparam(33) = e0(2)
893 uparam(34) = e0(3)
894 uparam(35) = c0(1)
895 uparam(36) = c0(2)
896 uparam(37) = c0(3)
897 uparam(38) = abcs
898 uparam(39) = pmin_(1)
899 uparam(40) = pmin_(2)
900 uparam(41) = pmin_(3)
901 uparam(42) = vdet
902 uparam(43) = pcj
903 IF(pcj > em20)THEN
904 uparam(44) = rho0_(4) * vdet**2 / pcj
905 ELSE
906 uparam(44) = infinity
907 END IF
908 vcj = one - one/uparam(44)
909 IF(rho0_(4)==zero) uparam(47) = em20
910 uparam(48) = e0(4)
911 uparam(49) = c0(4)
912 uparam(50) = c1(4)
913 uparam(45) = b1
914 uparam(51) = b2
915 uparam(52) = r1
916 uparam(53) = r2
917 uparam(54) = w
918 uparam(55) = iexp
919 uparam(56) = pmin_(4)
920 uparam(57) = c0(1)+c4(1)*e0(1)
921 uparam(58) = c0(2)+c4(2)*e0(2)
922 uparam(59) = c0(3)+c4(3)*e0(3)
923 uparam(60) = c0(4)
924 uparam(61) = iopt
925 uparam(62) = one/n_lc
926 uparam(63) = ipla_
927 uparam(64) = ipla(1)
928 uparam(65) = ipla(2)
929 uparam(66) = ipla(3)
930 uparam(67) = ipla(4)
931 uparam(68) = ibfrac
932 uparam(69) = rho0_(1) * av(1) + rho0_(2) * av(2) + rho0_(3) * av(3) + rho0_(4) * av(4)
933 uparam(70) = tcarp
934 uparam(71) = tcar
935 uparam(72) = infinity
936 uparam(75) = vel
937 uparam(81) = zero
938 uparam(82) = zero
939 uparam(83) = zero
940 uparam(84) = zero
941 idx=100
942 DO i=1,3
943 uparam(idx+01) = gg(i)
944 uparam(idx+02) = y(i)
945 uparam(idx+03) = bb(i)
946 uparam(idx+0
947 uparam(idx+05) = cc(i)
948 uparam(idx+06) = epdr(i)
949 uparam(idx+07) = cm(i)
950 uparam(idx+08) = tmelt(i)
951 uparam(idx+09) = thetl(i)
952 uparam(idx+10) = plamx(i)
953 uparam(idx+11) = sigmx(i)
954 uparam(idx+12) = sph(i)
955 uparam(idx+13) = t0(i)
956 uparam(idx+14) = xka(i)
957 uparam(idx+15) = xkb(i)
958 uparam(idx+16) = a0(i)
959 uparam(idx+17) = a1(i)
960 uparam(idx+18) = a2(i)
961 uparam(idx+19) = amx(i)
962 uparam(idx+20) = mumx(i)
963 uparam(idx+21) = bunl(i)
964 uparam(idx+22) = nu(i)
965 uparam(idx+23) = pstar(i)
966 uparam(idx+24) = ssp(i)
967 uparam(idx+25) = lc(i)
968 uparam(idx+26) = rho0_(i)*ssp(i)*ssp(i)
969 idx=idx+50
970 ENDDO
971
972 uparam(258) = tmelt(4)
973 uparam(259) = thetl(4)
974 uparam(262) = sph(4)
975 uparam(263) = t0(4)
976 uparam(264) = xka(4)
977 uparam(265) = xkb(4)
978 uparam(273) = ssp(4)
979 uparam(274) = lc(4)
980 uparam(275) = rho0_(4)*ssp(4)*ssp(4)
981 uparam(276) = zero
982
983
984 uparam(277) = 1
985 uparam(278) = 2
986 uparam(279) = 3
987 uparam(280) = 4
988
989 ifunc(01) = iav(1)
990 ifunc(02) = irho(1)
991 ifunc(03) = ie(1)
992 ifunc(04) = iav(2)
993 ifunc(05) = irho(2)
994 ifunc(06) = ie(2)
995 ifunc(07) = iav(3)
996 ifunc(08) = irho(3)
997 ifunc(09) = ie(3)
998 ifunc(10) = ivel
999 ENDIF
1000 pm(38) = uparam(42)
1001 parmat(1) =
max(c1(1), c1(2), c1(3), c1(4))
1002 pm(27) = maxval(ssp(1:4))
1003
1004
1005 matparam%multimat%nb = 4
1006 IF(.NOT.ALLOCATED(matparam%multimat%vfrac))ALLOCATE(matparam%multimat%vfrac(4))
1007 IF(.NOT.ALLOCATED(matparam%multimat%mid)) ALLOCATE(matparam%multimat%mid(4))
1008 matparam%multimat%vfrac(1:4) = tav(1:4)
1009 matparam%multimat%mid(1:4) = tmid(1:4)
1010 ipm(20+1:20+4) = tmid(1:4)
1011
1012
1013
1014
1015 WRITE(iout,997) trim(titr),mat_uid,51
1016 WRITE(iout,998)
1017 IF(is_encrypted)THEN
1018 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
1019 ELSE
1020 IF(iflg /= 12)THEN
1021 WRITE(iout, 900)rho0,rhor
1022 WRITE(iout,5002)iflag_bak
1023 WRITE(iout,5001)pext,vis,visv,av(1),av(2),av(3),av(4)
1024 ENDIF
1025
1026
1027
1028 IF(iflg <= 1)THEN
1029 p0_glob = p0(1)*av(1)+p0(2)*av(2)+p0(3)*av(3)+p0(4)*av(4)
1030 DO i=1,3
1031 WRITE(iout,5005)i
1032 WRITE(iout,5010)
1033 WRITE(iout,5011)c0(i),c1(i),c2(i),c3(i),c4(i),c5(i),e0(i),rho0_(i),pmin_(i),p0_glob
1034 IF(y(i) == zero)ipla(i)=0
1035 SELECT CASE(ipla(i))
1036 CASE(0)
1037 IF(gg(i)>zero)THEN
1038 WRITE(iout,5015)
1039 WRITE(iout,5016)gg(i)
1040 ENDIF
1041 CASE(1)
1042 WRITE(iout,5020)
1043 WRITE(iout,5021)y(i),bb(i),n(i),cc(i),epdr(i),cm(i),t0(i),tmelt(i),thetl(i),sph(i),plamx(i),sigmx(i),xka(i),xkb(i)
1044 CASE(2)
1045 WRITE(iout,5025)
1046 WRITE(iout,5026)a0(i),a1(i),a2(i),amx(i),y(i),nu(i),t0(i),tmelt(i),thetl(i),sph(i),plamx(i),sigmx(i),xka(i),xkb(i)
1047 END SELECT
1048 ENDDO
1049 i=4
1050 WRITE(iout,5005)i
1051 WRITE(iout,5030)
1052 WRITE(iout,5031)rho0_(4),e0(4),pmin_(4),c0(4),c1(4),b1,b2,r1,r2,w,vdet,pcj,vcj,ibfrac
1053
1054
1055
1056 ELSEIF(iflg == 2)THEN
1057 WRITE(iout,1200)abcs,vel,ivel,
1058 & av(1),rho0_(1),e0(1),iav(1),irho(1),ie(1),pmin_(1),c0(1),c1(1),c2(1),c3(1),c4(1),c5(1),
1059 & av(2),rho0_(2),e0(2),iav(2),irho(2),ie(2),pmin_(2),c0(2),c1(2),c2(2),c3(2),c4(2),c5(2),
1060 & av(3),rho0_(3),e0(3),iav(3),irho(3),ie(3),pmin_(3),c0(3),c1(3),c2(3),c3(3),c4(3),c5(3)
1061
1062
1063
1064
1065 ELSEIF(iflg == 3)THEN
1066 IF(iopt == 1)THEN
1067 WRITE(iout,1299)iopt
1068 ELSE
1069 WRITE(iout,1298)
1070 ENDIF
1071 WRITE(iout,1300)av(1),rho0_(1),e0(1),c0(1),
1072 & av(2),rho0_(2),e0(2),c0(2),
1073 & av(3),rho0_(3),e0(3),c0(3)
1074
1075
1076
1077
1078 ELSEIF(iflg == 4)THEN
1079 WRITE(iout,1400)abcs,
1080 & av(1),rho0_(1),e0(1),iav(1),irho(1),ie(1),pmin_(1),c0(1),c1(1),c4(1),
1081 & av(2),rho0_(2),e0(2),iav(2),irho(2),ie(2),pmin_(2),c0(2),c1(2),c4(2),
1082 & av(3),rho0_(3),e0(3),iav(3),irho(3),ie(3),pmin_(3),c0(3),c1(3),c4(3)
1083
1084 !============================
1085
1086
1087 ELSEIF(iflg == 5)THEN
1088 WRITE(iout,1500)abcs,
1089 & av(1),rho0_(1),e0(1),iav(1),irho(1),ie(1),pmin_(1),c0(1),c1(1),
1090 & av(2),rho0_(2),e0(2),iav(2),irho(2),ie(2),pmin_(2),c0(2),c1(2),
1091 & av(3),rho0_(3),e0(3),iav(3),irho(3),ie(3),pmin_(3),c0(3),c1(3)
1092
1093
1094
1095 ELSEIF(iflg == 6)THEN
1096 WRITE(iout,1700)cpext,ctcarp,ctcar
1097 IF(iflg6_submat_defined(1) .OR. iflg6_submat_defined(2) .OR. iflg6_submat_defined(3))
1098 & WRITE(iout,1701)cav(1) ,crho0(1),ce0(1) ,cpm(1) ,cc0(1) ,cssp(1),
1099 & cav(2) ,crho0(2),ce0(2) ,cpm(2) ,cc0(2) ,cssp(2),
1100 & cav(3) ,crho0(3),ce0(3) ,cpm(3) ,cc0(3) ,cssp(3)
1101
1102
1103
1104 ELSEIF(iflg == 12)THEN
1105 WRITE(iout,5002)12
1106 WRITE(iout,4003)vis,visv
1107 WRITE(iout,4004)
1108 DO i=1,mip
1109 WRITE(iout,4001)i,tmid(i)
1110 ENDDO
1111 WRITE(iout,4004)
1112 DO i=1,mip
1113 WRITE(iout,4002)i,tav(i)
1114 ENDDO
1115 ENDIF
1116
1117 IF(niter /= 10)THEN
1118 WRITE(iout,901)niter
1119 ENDIF
1120 ENDIF
1121
1122 pm(38)=vdet
1123 IF(iflg==12)rho0=one
1124 IF(rhor==zero)rhor=rho0
1125 pm(1) =rhor
1126 pm(89)=rho0
1127 pm(91)=maxval(rho0_(1:4))
1128
1129
1130
1131
1133
1134
1136
1137
1139
1140 RETURN
1141
1142
1143 900 FORMAT(
1144 & 5x,'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/,
1145 & 5x,'REFERENCE DENSITY . . . . . . . . . . .=',1pg20.13/)
1146 901 FORMAT(
1147 & 5x,'NUMBER OF ITERATION . . . . . . . . . .=',i10/)
1148 997 FORMAT(
1149 & 5x,a,/,
1150 & 5x,'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
1151 & 5x,'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
1152 998 FORMAT(
1153 & 5x,' /MAT/LAW51 (MULTIMAT)',/,
1154 & 5x,' ---------------------',/)
1155 1200 FORMAT(
1156 & 5x,'INLET CONDITION------------------------',/
1157 & 5x,'Abcissa scale factor. . . . . . . . . .=',e12.4/
1158 & 5x,'Velocity Scale Factor . . . . . . . . .=',e12.4/
1159 & 5x,'Velocity Function ID. . . . . . . . . .=',i10/
1160 & 5x,'SUBMAT-1 VOLUME RATIO. . . . . . . . . .=',e12.4/
1161 & 5x,'SUBMAT-1 reference DENSITY . . . . . . .=',e12.4/
1162 & 5x,'SUBMAT-1 E0 initial ENERGY/unit volume .=',e12.4/
1163 & 5x,'SUBMAT-1 Volume ratio FUNCTION ID . . . =',i10/
1164 & 5x,'SUBMAT-1 Density FUNCTION ID . . . . . .=',i10/
1165 & 5x,'SUBMAT-1 Energy FUNCTION ID. . . . . . .=',i10/
1166 & 5x,'SUBMAT-1 Minimum PRESSURE. . . . . . . .=',e12.4/
1167 & 5x,'SUBMAT-1 CO initial PRESSURE . . . . . .=',e12.4/
1168 & 5x,' P =C0 +C1 mu +C2 mu^2 +C3 mu^3 + (C4 + C5mu)Eint/Vo '/
1169 & 5x,'SUBMAT-1 C1. . . . . . . . . . . . . . .=',e12.4/
1170 & 5x,'SUBMAT-1 C2. . . . . . . . . . . . . . .=',e12.4/
1171 & 5x,'SUBMAT-1 C3. . . . . . . . . . . . . . .=',e12.4/
1172 & 5x,'SUBMAT-1 C4. . . . . . . . . . . . . . .=',e12.4/
1173 & 5x,'SUBMAT-1 C5. . . . . . . . . . . . . . .=',e12.4/
1174 & 5x,'SUBMAT-2 VOLUME RATIO. . . . . . . . . .=',e12.4/
1175 & 5x,'SUBMAT-2 reference DENSITY . . . . . . .=',e12.4/
1176 & 5x,'SUBMAT-2 E0 initial ENERGY/unit volume .=',e12.4/
1177 & 5x,'SUBMAT-2 Volume ratio FUNCTION ID . . . =',i10/
1178 & 5x,'SUBMAT-2 Density FUNCTION ID . . . . . .=',i10/
1179 & 5x,'SUBMAT-2 Energy FUNCTION ID. . . . . . .=',i10/
1180 & 5x,'SUBMAT-2 Minimum PRESSURE. . . . . . . .=',e12.4/
1181 & 5x,'SUBMAT-2 CO initial PRESSURE . . . . . .=',e12.4/
1182 & 5x,'SUBMAT-2 C1. . . . . . . . . . . . . . .=',e12.4/
1183 & 5x,'SUBMAT-2 C2. . . . . . . . . . . . . . .=',e12.4/
1184 & 5x,'SUBMAT-2 C3. . . . . . . . . . . . . . .=',e12.4/
1185 & 5x,'SUBMAT-2 C4. . . . . . . . . . . . . . .=',e12.4/
1186 & 5x,'SUBMAT-2 C5. . . . . . . . . . . . . . .=',e12.4/
1187 & 5x,'SUBMAT-3 VOLUME RATIO. . . . . . . . . .=',e12.4/
1188 & 5x,'SUBMAT-3 reference DENSITY . . . . . . .=',e12.4/
1189 & 5x,'SUBMAT-3 E0 initial ENERGY/unit volume .=',e12.4/
1190 & 5x,'SUBMAT-3 Volume ratio FUNCTION ID . . . =',i10/
1191 & 5x,'SUBMAT-3 Density FUNCTION ID . . . . . .=',i10/
1192 & 5x,'SUBMAT-3 Energy FUNCTION ID. . . . . . .=',i10/
1193 & 5x,'SUBMAT-3 Minimum PRESSURE. . . . . . . .=',e12.4/
1194 & 5x,'SUBMAT-3 CO initial PRESSURE . . . . . .=',e12.4/
1195 & 5x,'SUBMAT-3 C1. . . . . . . . . . . . . . .=',e12.4/
1196 & 5x,'SUBMAT-3 C2. . . . . . . . . . . . . . .=',e12.4/
1197 & 5x,'SUBMAT-3 C3. . . . . . . . . . . . . . .=',e12.4/
1198 & 5x,'SUBMAT-3 C4. . . . . . . . . . . . . . .=',e12.4/
1199 & 5x,'SUBMAT-3 C5. . . . . . . . . . . . . . .=',e12.4//)
1200 1298 FORMAT(
1201 & 5x,'OUTLET CONDITION-----------------------')
1202 1299 FORMAT(
1203 & 5x,'OUTLET CONDITION-----------------------',/
1204 & 5x,'IOPT FLAG . . . . . . . . . . . . . . .=',i10)
1205 1300 FORMAT(
1206 & 5x,'SUBMAT-1 VOLUME RATIO. . . . . . . . . .=',e12.4/
1207 & 5x,'SUBMAT-1 reference DENSITY . . . . . . .=',e12.4/
1208 & 5x,'SUBMAT-1 E0 initial ENERGY/unit volume .=',e12.4/
1209 & 5x,'SUBMAT-1 PO initial PRESSURE . . . . . .=',e12.4/
1210 & 5x,'SUBMAT-2 VOLUME RATIO. . . . . . . . . .=',e12.4/
1211 & 5x,'SUBMAT-2 reference DENSITY . . . . . . .=',e12.4/
1212 & 5x,'SUBMAT-2 E0 initial ENERGY/unit volume .=',e12.4/
1213 & 5x,'SUBMAT-2 PO initial PRESSURE . . . . . .=',e12.4/
1214 & 5x,'SUBMAT-3 VOLUME RATIO. . . . . . . . . .=',e12.4/
1215 & 5x,'SUBMAT-3 reference DENSITY . . . . . . .=',e12.4/
1216 & 5x,'SUBMAT-3 E0 initial ENERGY/unit volume .=',e12.4/
1217 & 5x,'SUBMAT-3 PO initial PRESSURE . . . . . .=',e12.4//)
1218 1400 FORMAT(
1219 & 5x,'INLET STAGNATION PRESSURE (Perfect Gas)',/
1220 & 5x,'Abcissa scale factor. . . . . . . . . .=',e12.4/
1221 & 5x,'SUBMAT-1 VOLUME RATIO. . . . . . . . . .=',e12.4/
1222 & 5x,'SUBMAT-1 reference DENSITY . . . . . . .=',e12.4/
1223 & 5x,'SUBMAT-1 E0 initial ENERGY/unit volume .=',e12.4/
1224 & 5x,'SUBMAT-1 Volume ratio FUNCTION ID . . . =',i10/
1225 & 5x,'SUBMAT-1 Density FUNCTION ID . . . . . .=',i10/
1226 & 5x,'SUBMAT-1 Energy FUNCTION ID. . . . . . .=',i10/
1227 & 5x,'SUBMAT-1 Minimum PRESSURE. . . . . . . .=',e12.4/
1228 & 5x,' P =C0 +C1 mu +C2 mu^2 +C3 mu^3 + (C4 + C5mu)Eint/Vo '/
1229 & 5x,'SUBMAT-1 CO initial PRESSURE . . . . . .=',e12.4/
1230 & 5x,'SUBMAT-1 C1. . . . . . . . . . . . . . .=',e12.4/
1231 & 5x,'SUBMAT-1 C4 (gamma-1). . . . . . . . . .=',e12.4/
1232 & 5x,'SUBMAT-2 VOLUME RATIO. . . . . . . . . .=',e12.4/
1233 & 5x,'SUBMAT-2 reference DENSITY . . . . . . .=',e12.4/
1234 & 5x,'SUBMAT-2 E0 initial ENERGY/unit volume .=',e12.4/
1235 & 5x,'SUBMAT-2 Volume ratio FUNCTION ID . . . =',i10/
1236 & 5x,'SUBMAT-2 Density FUNCTION ID . . . . . .=',i10/
1237 & 5x,'SUBMAT-2 Energy FUNCTION ID. . . . . . .=',i10/
1238 & 5x,'SUBMAT-2 Minimum PRESSURE. . . . . . . .=',e12.4/
1239 & 5x,'SUBMAT-2 CO initial PRESSURE . . . . . .=',e12.4/
1240 & 5x,'SUBMAT-2 C1. . . . . . . . . . . . . . .=',e12.4/
1241 & 5x,'SUBMAT-2 C4 (gamma-1). . . . . . . . . .=',e12.4/
1242 & 5x,'SUBMAT-3 VOLUME RATIO. . . . . . . . . .=',e12.4/
1243 & 5x,'SUBMAT-3 reference DENSITY . . . . . . .=',e12.4/
1244 & 5x,'SUBMAT-3 E0 initial ENERGY/unit volume .=',e12.4/
1245 & 5x,'SUBMAT-3 Volume ratio FUNCTION ID . . . =',i10/
1246 & 5x,'SUBMAT-3 Density FUNCTION ID . . . . . .=',i10/
1247 & 5x,'SUBMAT-3 Energy FUNCTION ID. . . . . . .=',i10/
1248 & 5x,'SUBMAT-3 Minimum PRESSURE. . . . . . . .=',e12.4/
1249 & 5x,'SUBMAT-3 CO initial PRESSURE . . . . . .=',e12.4/
1250 & 5x,'SUBMAT-3 C1. . . . . . . . . . . . . . .=',e12.4/
1251 & 5x,'SUBMAT-3 C4 (gamma-1). . . . . . . . . .=',e12.4//)
1252 1500 FORMAT(
1253 & 5x,'INLET STAGNATION PRESSURE (Liquid) ----',/
1254 & 5x,'Abcissa scale factor. . . . . . . . . .=',e12.4/
1255 & 5x,'SUBMAT-1 VOLUME RATIO. . . . . . . . . .=',e12.4/
1256 & 5x,'SUBMAT-1 reference DENSITY . . . . . . .=',e12.4/
1257 & 5x,'SUBMAT-1 E0 initial ENERGY/unit volume .=',e12.4/
1258 & 5x,'SUBMAT-1 Volume ratio FUNCTION ID . . . =',i10/
1259 & 5x,'SUBMAT-1 Density FUNCTION ID . . . . . .=',i10/
1260 & 5x,'SUBMAT-1 Energy FUNCTION ID. . . . . . .=',i10/
1261 & 5x,'SUBMAT-1 Minimum PRESSURE. . . . . . . .=',e12.4/
1262 & 5x,' P =C0 +C1 mu +C2 mu^2 +C3 mu^3 + (C4 + C5mu)Eint/Vo '/
1263 & 5x,'SUBMAT-1 CO initial PRESSURE . . . . . .=',e12.4/
1264 & 5x,'SUBMAT-1 C1 (bulk modulus) . . . . . . .=',e12.4/
1265 & 5x,'SUBMAT-2 VOLUME RATIO. . . . . . . . . .=',e12.4/
1266 & 5x,'SUBMAT-2 reference DENSITY . . . . . . .=',e12.4/
1267 & 5x,'SUBMAT-2 E0 initial ENERGY/unit volume .=',e12.4/
1268 & 5x,'SUBMAT-2 Volume ratio FUNCTION ID . . . =',i10/
1269 & 5x,'SUBMAT-2 Density FUNCTION ID . . . . . .=',i10/
1270 & 5x,'SUBMAT-2 Energy FUNCTION ID. . . . . . .=',i10/
1271 & 5x,'SUBMAT-2 Minimum PRESSURE. . . . . . . .=',e12.4/
1272 & 5x,'SUBMAT-2 CO initial PRESSURE . . . . . .=',e12.4/
1273 & 5x,'SUBMAT-2 C1 (bulk modulus) . . . . . . .=',e12.4/
1274 & 5x,'SUBMAT-3 VOLUME RATIO. . . . . . . . . .=',e12.4/
1275 & 5x,'SUBMAT-3 reference DENSITY . . . . . . .=',e12.4/
1276 & 5x,'SUBMAT-3 E0 initial ENERGY/unit volume .=',e12.4/
1277 & 5x,'SUBMAT-3 Volume ratio FUNCTION ID . . . =',i10/
1278 & 5x,'SUBMAT-3 Density FUNCTION ID . . . . . .=',i10/
1279 & 5x,'SUBMAT-3 Energy FUNCTION ID. . . . . . .=',i10/
1280 & 5x,'SUBMAT-3 Minimum PRESSURE. . . . . . . .=',e12.4/
1281 & 5x,'SUBMAT-3 CO initial PRESSURE . . . . . .=',e12.4/
1282 & 5x,'SUBMAT-3 C1 (bulk modulus) . . . . . . .=',e12.4//)
1283 1700 FORMAT(
1284 & 5x,'NON REFLECTING FRONTIER ----------------',/
1285 & 5x,'EXTERNAL PRESSURE . . . . . . . . . . .=',a /
1286 & 5x,'CHARACTERISTIC TIME FOR PRES RELAXATION =',a /
1287 & 5x,'CHARACTERISTIC TIME FOR VFRAC RELAXATION=',a //)
1288 1701 FORMAT(
1289 & 5x,'SUBMAT-1 AV10 VOLUME FRACTION. . . . . .=',a /
1290 & 5x,'SUBMAT-1 RHO10 REFERENCE DENSITY . . . .=',a /
1291 & 5x,'SUBMAT-1 E01 VOLUMETRIC ENERGY . . . . .=',a /
1292 & 5x,'SUBMAT-1 PM1 CUT OFF PRESSURE. . . . . .=',a /
1293 & 5x,'SUBMAT-1 P01 INITIAL PRESSURE. . . . . .=',a /
1294 & 5x,'SUBMAT-1 SSP1 SOUND SPEED. . . . . . . .=',a /
1295 & 5x,'SUBMAT-2 AV20 VOLUME FRACTION. . . . . .=',a /
1296 & 5x,'SUBMAT-2 RHO20 REFERENCE DENSITY . . . .=',a /
1297 & 5x,'SUBMAT-2 E02 VOLUMETRIC ENERGY . . . . .=',a /
1298 & 5x,'SUBMAT-2 PM2 CUT OFF PRESSURE. . . . . .=',a /
1299 & 5x,'SUBMAT-2 P02 INITIAL PRESSURE. . . . . .=',a /
1300 & 5x,'SUBMAT-2 SSP2 SOUND SPEED. . . . . . . .=',a /
1301 & 5x,'SUBMAT-3 AV30 VOLUME FRACTION. . . . . .=',a /
1302 & 5x,'SUBMAT-3 RHO30 REFERENCE DENSITY . . . .=',a /
1303 & 5x,'SUBMAT-3 E03 VOLUMETRIC ENERGY . . . . .=',a /
1304 & 5x,'SUBMAT-3 PM3 CUT OFF PRESSURE. . . . . .=',a /
1305 & 5x,'SUBMAT-3 P03 INITIAL PRESSURE. . . . . .=',a /
1306 & 5x,'SUBMAT-3 SSP3 SOUND SPEED. . . . . . . .=',a //)
1307 4001 FORMAT(
1308 & 5x,'SUBMATERIAL-',i1,' ID = ',i10)
1309 4002 FORMAT(
1310 & 5x,'SUBMATERIAL-',i1,' Volume Fraction = ',f12.10)
1311 4003 FORMAT(
1312 & 5x,'SHEAR KINEMATIC VISCOSITY. . . . . . . =',e12.4/
1313 & 5x,'SPHERICAL KINEMATIC VISCOSITY. . . . . =',e12.4)
1314 4004 FORMAT(
1315 & 5x,'____________________________________________________')
1316 5001 FORMAT(
1317 & 5x,'EXTERNAL PRESSURE. . . . . . . . . . . =',e12.4/
1318 & 5x,'SHEAR KINEMATIC VISCOSITY. . . . . . . =',e12.4/
1319 & 5x,'SPHERICAL KINEMATIC VISCOSITY. . . . . =',e12.4/
1320 & 5x,'____________________________________________________',/
1321 & 5x,'VOLUME FRACTION - SUBMAT-1 . . . . . . =',f12.10/
1322 & 5x,'VOLUME FRACTION - SUBMAT-2 . . . . . . =',f12.10/
1323 & 5x,'VOLUME FRACTION - SUBMAT-3 . . . . . . =',f12.10/
1324 & 5x,'VOLUME FRACTION - SUBMAT-4 . . . . . . =',f12.10)
1325 5002 FORMAT(
1326 & 5x,'FORMULATION FLAG . . . . . . . . . . . = ',i2)
1327 5005 FORMAT(
1328 & 5x,'__________________________',/,
1329 & 5x,'+S U B M A T E R I A L - ',i1)
1330 5010 FORMAT(
1331 & 5x,'|',/,
1332 & 5x,'+----POLYNOMIAL EoS',/,
1333 & 5x,'| --------------')
1334 5011 FORMAT(
1335 & 5x,'| C0 . . . . . . . . . . . . . . . .=',1pg20.13/,
1336 & 5x,'| C1. . . . . . . . . . . . . . . . =',1pg20.13/,
1337 & 5x,'| C2. . . . . . . . . . . . . . . . =',1pg20.13/,
1338 & 5x,'| C3. . . . . . . . . . . . . . . . =',1pg20.13/,
1339 & 5x,'| C4. . . . . . . . . . . . . . . . =',1pg20.13/,
1340 & 5x,'| C5. . . . . . . . . . . . . . . . =',1pg20.13/,
1341 & 5x,'| E0. . . . . . . . . . . . . . . . =',1pg20.13/,
1342 & 5x,'| RHO0. . . . . . . . . . . . . . . =',1pg20.13/,
1343 & 5x,'| PMIN. . . . . . . . . . . . . . . =',1pg20.13/,
1344 & 5x,'| INITIAL PRESSURE (COMPUTED) . . . =',1pg20.13)
1345 5015 FORMAT(
1346 & 5x,'|',/,
1347 & 5x,'+----ELASTIC SOLID',/,
1348 & 5x,'| -------------')
1349 5016 FORMAT(
1350 & 5x,'| G SHEAR MODULUS . . . . . . . . . =',e12.4)
1351 5020 FORMAT(
1352 & 5x,'|',/,
1353 & 5x,'+----JOHNSON-COOK YIELD CRITERIA',/,
1354 & 5x,'| ---------------------------')
1355 5021 FORMAT(
1356 & 5x,'| G SHEAR MODULUS. . . . . . . =',e12.4/
1357 & 5x,'| A YIELD STRESS . . . . . . . =',e12.4/
1358 & 5x,'| B YIELD FACTOR . . . . . . . =',e12.4/
1359 & 5x,'| N YIELD EXPONENT . . . . . . =',e12.4/
1360 & 5x,'| C STRAIN RATE FACTOR . . . . =',e12.4/
1361 & 5x,'| EPS0 REFERENCE STRAIN RATE. . . =',e12.4/
1362 & 5x,'| M THERMAL EXPONENT . . . . . =',e12.4/
1363 & 5x,'| T0 INITIAL TEMPERATURE. . . . =',e12.4/
1364 & 5x,'| TMELT MELTING TEMPERATURE. . . . =',e12.4/
1365 & 5x,'| TLIM TEMPERATURE LIMIT. . . . . =',e12.4/
1366 & 5x,'| RHO.CP SPECIFIC HEAT (rho0 Cv). . =',e12.4/
1367 & 5x,'| MAXIMUM PLASTIC STRAIN. . . . . . =',e12.4/
1368 & 5x,'| MAXIMUM STRESS. . . . . . . . . . =',e12.4/
1369 & 5x,'| KA . . . . . . . . . . . . . . . =',e12.4/
1370 & 5x,'| KB . . . . . . . . . . . . . . . =',e12.4)
1371 5025 FORMAT(
1372 & 5x,'|',/,
1373 & 5x,'+----DRUCKER-PRAGER YIELD CRITERIA ',/,
1374 & 5x,'| ----------------------------- ')
1375 5026 FORMAT(
1376 & 5x,'| A0 YIELD COEFFICIENT 1. . . . =',e12.4/
1377 & 5x,'| A1 YIELD COEFFICIENT 2. . . . =',e12.4/
1378 & 5x,'| A2 YIELD COEFFICIENT 3. . . . =',e12.4/
1379 & 5x,'| A-MAX MAXIMUM YIELD VALUE. . . . =',e12.4/
1380 & 5x,'| E YOUNG MODULUS. . . . . . . =',e12.4/
1381 & 5x,'| NU YOUNG MODULUS. . . . . . . =',e12.4/
1382 & 5x,'| T0 INITIAL TEMPERATURE. . . . =',e12.4/
1383 & 5x,'| TMELT MELTING TEMPERATURE. . . . =',e12.4/
1384 & 5x,'| TLIM TEMPERATURE LIMIT. . . . . =',e12.4/
1385 & 5x,'| RHO.CP SPECIFIC HEAT (rho0 Cv). . =',e12.4/
1386 & 5x,'| MAXIMUM PLASTIC STRAIN. . . . . . =',e12.4/
1387 & 5x,'| MAXIMUM STRESS. . . . . . . . . . =',e12.4/
1388 & 5x,'| KA . . . . . . . . . . . . . . . =',e12.4/
1389 & 5x,'| KB . . . . . . . . . . . . . . . =',e12.4)
1390 5030 FORMAT(
1391 & 5x,'|',/,
1392 & 5x,'+----JWL EoS',/,
1393 & 5x,'| -------')
1394 5031 FORMAT(
1395 & 5x,'| RHO0 INITIAL DENSITY . . . . . . .=',e12.4/
1396 & 5x,'| E0 INITIAL ENERGY/UNIT VOLUME . =',e12.4/
1397 & 5x,'| PMIN MINIMUM PRESSURE. . . . . . .=',e12.4/
1398 & 5x,'| C0 INITIAL PRESSURE . . . . . . =',e12.4/
1399 & 5x,'| C1 UNREACTED BULK MODULUS . . . =',e12.4/
1400 & 5x,'| A . . . . . . . . . . . . . . . . =',e12.4/
1401 & 5x,'| B . . . . . . . . . . . . . . . . =',e12.4/
1402 & 5x,'| R1. . . . . . . . . . . . . . . . =',e12.4/
1403 & 5x,'| R2. . . . . . . . . . . . . . . . =',e12.4/
1404 & 5x,'| W . . . . . . . . . . . . . . . . =',e12.4/
1405 & 5x,'| VDET DETONATION VELOCITY. . . . . =',e12.4/
1406 & 5x,'| PCJ PRESSURE AT C-J STATE . . . .=',e12.4/
1407 & 5x,'| VCJ VOLUME AT C-J STATE . . . . .=',e12.4/
1408 & 5x,'| FLAG FOR BURN FRACTION METHOD . . =',i10)
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_float_array_index_dim(name, dim_fac, index, is_available, lsubmodel, unitab)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, is_available, lsubmodel, unitab)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
function ie_bound(pext, pm, c0, c1, c2, c3, c4, c5, e0)
subroutine init_mat_keyword(matparam, keyword)
subroutine lecm51__check_initial_state(av, r0, c0, c1, c2, c3, c4, c5, e0, pm, rho0, rhor, iexp, pext, iflg, a1, a2, pla, id, titr, ssp1, ssp2, ssp3, ssp4, lc1, lc2, lc3, lc4, p0a)
type(alemuscl_param_) alemuscl_param
integer, parameter nchartitle
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)