37
38
39
40
41
42
43 USE fail_param_mod
47
48
49
50#include "implicit_f.inc"
51
52
53
54#include "units_c.inc"
55
56
57
58 INTEGER ,INTENT(IN) :: FAIL_ID
59 INTEGER ,INTENT(IN) :: MAT_ID
60 INTEGER ,INTENT(IN) :: IRUPT
61 TYPE(UNIT_TYPE_) ,INTENT(IN) :: UNITAB
62 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
63 TYPE(FAIL_PARAM_) ,INTENT(INOUT) :: FAIL
64
65
66
67 my_real :: afrac,nfrac,bfrac,cfrac,gama,deps0
68
69 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
70
71 is_encrypted = .false.
72 is_available = .false.
73
74
75
77
78
79
80
81 CALL hm_get_floatv (
'a_EMC' ,afrac ,is_available,lsubmodel,unitab)
82 CALL hm_get_floatv (
'n_EMC' ,nfrac ,is_available,lsubmodel,unitab)
83 CALL hm_get_floatv (
'b0' ,bfrac ,is_available,lsubmodel,unitab)
84 CALL hm_get_floatv (
'c' ,cfrac ,is_available,lsubmodel,unitab)
85
87 CALL hm_get_floatv (
'Epsilon_Dot_0',deps0 ,is_available,lsubmodel,unitab)
88
89 IF (afrac == zero) afrac = one
90 IF (bfrac == zero) bfrac = one
91 IF (deps0 == zero) deps0 = em20
92
93 fail%KEYWORD = 'EMC'
94 fail%IRUPT = irupt
95 fail%FAIL_ID = fail_id
96 fail%NUPARAM = 6
97 fail%NIPARAM = 0
98 fail%NUVAR = 2
99 fail%NFUNC = 0
100 fail%NTABLE = 0
101 fail%NMOD = 0
102
103 ALLOCATE (fail%UPARAM(fail%NUPARAM))
104 ALLOCATE (fail%IPARAM(fail%NIPARAM))
105 ALLOCATE (fail%IFUNC (fail%NFUNC))
106 ALLOCATE (fail%TABLE (fail%NTABLE))
107
108 fail%UPARAM(1) = afrac
109 fail%UPARAM(2) = bfrac
110 fail%UPARAM(3) = gama
111 fail%UPARAM(4) = cfrac
112 fail%UPARAM(5) = nfrac
113 fail%UPARAM(6) = deps0
114
115 IF(is_encrypted)THEN
116 WRITE(iout, 1300)
117 ELSE
118 WRITE(iout, 1100) afrac,nfrac,bfrac,cfrac,gama,deps0
119 ENDIF
120
121 RETURN
122
123 1300 FORMAT(
124 & 5x,40h crypted DATA in failure model /,
125 & 5x,40h ----------------------------- /)
126 1100 FORMAT(
127 & 5x,40h extended mohr coulomb rupture model /,
128 & 5x,40h ----------------------------------- /,
129 & 5x,'HOSFORD EXPONENT. . . . . . . . . . . . . . . . . =',e16.9/
130 & 5x,'STRESS STATE SENSITIVITY. . . . . . . . . . . . . =',e16.9/
131 & 5x,'STRAIN TO FRACTURE FOR UNIAXIAL TENSION. . . . . . =',e16.9/
132 & 5x,'FRICTION COEFFICIENT FOR TRIAXIALITY . . . . . . . =',e16.9/
133 & 5x,'STRAIN RATE SENSITIVITY . . . . . . . . . . . . . =',e16.9/
134 & 5x,'REFERENCE STRAIN RATE. . . . . . . . . . . . . . . =',e16.9)
135
136 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_is_encrypted(is_encrypted)