38 . MAT_ID ,FAIL_ID ,IRUPT ,UNIT_ID ,
55#include "implicit_f.inc"
63 INTEGER ,
INTENT(IN) :: FAIL_ID
64 INTEGER ,
INTENT(IN) :: MAT_ID
65 INTEGER ,
INTENT(IN) :: IRUPT
66 INTEGER ,
INTENT(IN) :: UNIT_ID
67 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
68 TYPE (SUBMODEL_DATA),
INTENT(IN) :: LSUBMODEL(*)
69 TYPE (FAIL_PARAM_) ,
INTENT(INOUT) :: FAIL
74 my_real :: EPSF1,EPSR1,EPSF2,EPSR2,FAC_T
75 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
77 is_encrypted = .false.
78 is_available = .false.
81 fac_t = unitab%FAC_T(unit_id)
94 CALL hm_get_floatv (
'Epsilon_f1' ,epsf1 ,is_available,lsubmodel,unitab)
95 CALL hm_get_floatv (
'Epsilon_r1' ,epsr1 ,is_available,lsubmodel,unitab)
96 CALL hm_get_floatv (
'Epsilon_f2' ,epsf2 ,is_available,lsubmodel,unitab)
97 CALL hm_get_floatv (
'Epsilon_r2' ,epsr2 ,is_available,lsubmodel,unitab)
98 CALL hm_get_intv (
'NDIR' ,ndir ,is_available,lsubmodel)
100 CALL hm_get_intv (
'fct_ID' ,irfun ,is_available,lsubmodel)
104 IF (epsf1 <= zero) epsf1 = ep20
105 IF (epsr1 <= zero) epsr1 = ep20*two
106 IF (epsf2 <= zero) epsf2 = ep20
107 IF (epsr2 <= zero) epsr2 = ep20*two
108 IF (ndir == 0) ndir = 2
112 IF (epsf1 > epsr1 .or. epsf2 > epsr2)
THEN
115 . anmode=aninfo_blind_1,
119 fail%KEYWORD =
'FABRIC'
121 fail%FAIL_ID = fail_id
129 ALLOCATE (fail%UPARAM(fail%NUPARAM))
130 ALLOCATE (fail%IPARAM(fail%NIPARAM))
131 ALLOCATE (fail%IFUNC (fail%NFUNC))
132 ALLOCATE (fail%TABLE (fail%NTABLE))
134 fail%IFUNC(1) = irfun
136 fail%UPARAM(1) = epsf1
137 fail%UPARAM(2) = epsr1
138 fail%UPARAM(3) = epsf2
139 fail%UPARAM(4) = epsr2
140 fail%UPARAM(5) = fac_t
141 fail%UPARAM(6) = ndir
143 IF (is_encrypted)
THEN
146 WRITE(iout, 1100) epsf1,epsr1,epsf2,epsr2,ndir,irfun
152 & 5x,
' CRYPTED DATA IN FAILURE MODEL '/,
153 & 5x,
' ----------------------------- '/)
155 & 5x,
' ANISOTROPIC FABRIC FAILURE MODEL ',/
156 & 5x,
' ------------------------ ',/
157 & 5x,
'FAILURE TENSION STRAIN DIRECTION 1 . . =',e12.4/
158 & 5x,
'RUPTURE TENSION STRAIN DIRECTION 1 . . =',e12.4/
159 & 5x,
'FAILURE TENSION STRAIN DIRECTION 2 . . =',e12.4/
160 & 5x,
'RUPTURE TENSION STRAIN DIRECTION 2 . . =',e12.4/
161 & 5x,
'NUMBER OF BROKEN DIR. FOR EL. DELETION =',i10/
162 & 5x,
'STRAIN RATE SCALING FUNCTION . . . . . =',i10)
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)