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