43
44
45
50 USE matparam_def_mod
51 USE read_mat25_crasurv_mod
52 USE read_mat25_tsaiwu_mod
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68#include "implicit_f.inc"
69
70
71
72#include "units_c.inc"
73#include "param_c.inc"
74
75
76
77 TYPE (),INTENT(IN) ::UNITAB
78 INTEGER, INTENT(IN) :: ID
79 TYPE(), DIMENSION(*),INTENT(IN) :: LSUBMODEL
80 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
81
82 INTEGER, INTENT(INOUT) :: ISRATE
83 my_real,
DIMENSION(100) ,
INTENT(INOUT) :: parmat
84 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
85 TYPE(MLAW_TAG_) ,INTENT(INOUT) :: MTAG
86 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
87
88 INTEGER :: MAXUPARAM,NUPARAM
89 my_real,
DIMENSION(MAXUPARAM) :: uparam
90
91
92
93 INTEGER :: ILAW,IFLAG
94 LOGICAL :: IS_AVAILABLE
95
96 is_available = .false.
97 ilaw = 25
98
99
100
101
102 CALL hm_get_intv (
'MAT_Iflag' ,iflag ,is_available,lsubmodel)
103
104 IF (iflag == 0) then
105 CALL read_mat25_tsaiwu(
106 . matparam ,parmat ,unitab ,lsubmodel,
107 .
id ,titr ,pm ,israte ,
108 . iout ,npropm )
109 matparam%NMOD = 3
110 ELSE
111 CALL read_mat25_crasurv(
112 . matparam ,parmat ,unitab ,lsubmodel,
113 .
id ,titr ,pm ,israte ,
114 . iout ,npropm )
115 matparam%NMOD = 6
116 END IF
117
118
119
120
121 mtag%G_IERR = 1
122 mtag%G_GAMA = 6
123 mtag%G_PLA = 1
124 mtag%G_EPSD = 1
125 mtag%G_DAMDL = 1
126 mtag%G_TSAIWU = 1
127 mtag%G_DMG = 1 + matparam%NMOD
128
129 mtag%L_GAMA = 6
130 mtag%L_PLA = 1
131 mtag%L_EPSD = 1
132 mtag%L_CRAK = 2
133 mtag%L_STRA = 6
134 mtag%L_TSAIWU = 1
135 mtag%L_DMG = 1 + matparam%NMOD
136
137 ALLOCATE(matparam%MODE(matparam%NMOD))
138 matparam%MODE(1) = "Tensile damage in direction 1"
139 matparam%MODE(2) = "Tensile damage in direction 2"
140 matparam%MODE(3) = "Global maximum plastic work"
141 IF (iflag > 0) THEN
142 matparam%MODE(4) = "Failure index in direction 1"
143 matparam%MODE(5) = "Failure index in direction 2"
144 matparam%MODE(6) = "Failure index in shear plane 12"
145 ENDIF
146
147
152
153
155 IF (iflag == 0) THEN
157 ELSE
159 ENDIF
160
161 RETURN
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle