34
35
36
40 USE matparam_def_mod
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "param_c.inc"
49
50
51
52 INTEGER IFAILG,NUPARAM,NUPARF,IMAT,IPM(NPROPMI,*)
53 my_real,
DIMENSION(NUPARF) ,
INTENT(IN) :: uparf
54 my_real,
DIMENSION(NUPARAM),
INTENT(INOUT) :: uparam
55 TYPE (NLOCAL_STR_) :: NLOC_DMG
56 TYPE(MLAW_TAG_),INTENT(INOUT) :: MLAW_TAG
57 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
58
59
60
61 INTEGER ILOC,IGURSON
63 . q1,q2,q3,epn,as,kw,f0,fc,fr,rlen,hkhi
64
65 igurson = 0
66 IF (ifailg == 1) THEN
67 iloc = matparam%NLOC
68
69 IF (iloc == 0) THEN
70 igurson = 1
71 ELSEIF (iloc == 1) THEN
72 igurson = 2 ! non local forest(micromorphic)
73 ELSEIF (iloc == 2) THEN
74 igurson = 3
75 mlaw_tag%NUVAR = mlaw_tag%NUVAR + 1
76 ENDIF
77 ipm(8,imat) = mlaw_tag%NUVAR
78
79 q1 = uparf(2)
80 q2 = uparf(3)
81 q3 = uparf(4)
82
83 epn = uparf(5)
84
85 as = uparf(6)
86
87 kw = uparf(7)
88
89 fr = uparf(8)
90
91 fc = uparf(9)
92
93 f0 = uparf(10)
94
95 rlen = uparf(11)
96
97 hkhi = uparf(12)
98
99
100 IF (iloc>0) THEN
101 nloc_dmg%LEN(imat) =
max(nloc_dmg%LEN(imat), rlen)
102 CALL get_lemax(nloc_dmg%LE_MAX(imat),nloc_dmg%LEN(imat))
103 mlaw_tag%G_PLANL = 1
104 mlaw_tag%L_PLANL = 1
105 mlaw_tag%G_EPSDNL = 1
106 mlaw_tag%L_EPSDNL = 1
107 ENDIF
108
109
110
111 matparam%NMOD = 5
112
113
114
115 mlaw_tag%G_DMG = 1 + matparam%NMOD
116 mlaw_tag%L_DMG = 1 + matparam%NMOD
117
118 ALLOCATE(matparam%MODE(matparam%NMOD))
119 matparam%MODE(1) = "Void growth volume fraction fg"
120 matparam%MODE(2) = "Nucleation volume fraction fn"
121 matparam%MODE(3) = "Shear growth volume fraction fsh"
122 matparam%MODE(4) = "Total void volume fraction ft"
123 matparam%MODE(5) = "Effective void volume fraction f*"
124
125
126 uparam(30) = igurson
127 uparam(31) = q1
128 uparam(32) = q2
129 uparam(33) = q3
130 uparam(34) = epn
131 uparam(35) = as
132 uparam(36) = kw
133 uparam(37) = fr
134 uparam(38) = fc
135 uparam(39) = f0
136 uparam(40) = hkhi
137 ENDIF
138
139 RETURN
subroutine get_lemax(le_max, nloc_length)