37
38
39
40
41
42
43 USE fail_param_mod
46
47
48
49#include "implicit_f.inc"
50
51
52
53#include "units_c.inc"
54
55
56
57 INTEGER ,INTENT(IN) :: FAIL_ID
58 INTEGER ,INTENT(IN) :: MAT_ID
59 INTEGER ,INTENT(IN) :: IRUPT
60 TYPE(UNIT_TYPE_) ,INTENT(IN) :: UNITAB
61 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
62 TYPE(FAIL_PARAM_) ,INTENT(INOUT) :: FAIL ! failure model data structure
63
64
65
67 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
68 integer :: FAILIP
69
70 is_encrypted = .false.
71 is_available = .false.
72
73
74 c0 = zero
75
77
78
80 CALL hm_get_floatv(
'ALPHA', ema, is_available, lsubmodel, unitab)
81 CALL hm_get_intv (
'FAILIP' ,failip ,is_available,lsubmodel)
82 IF (failip == 0) failip = 1
83
84 IF (ema == zero) ema = one
85
86 fail%KEYWORD = 'COCKROFT-LATHAM'
87 fail%IRUPT = irupt
88 fail%FAIL_ID = fail_id
89 fail%NUPARAM = 3
90 fail%NIPARAM = 0
91 fail%NUVAR = 3
92 fail%NFUNC = 0
93 fail%NTABLE = 0
94 fail%NMOD = 0
95
96 ALLOCATE (fail%UPARAM(fail%NUPARAM))
97 ALLOCATE (fail%IPARAM(fail%NIPARAM))
98 ALLOCATE (fail%IFUNC (fail%NFUNC))
99 ALLOCATE (fail%TABLE (fail%NTABLE))
100
101 fail%UPARAM(1) = c0
102 fail%UPARAM(2) = ema
103 fail%UPARAM(3)= failip
104
105 IF (is_encrypted) THEN
106 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
107 ELSE
108 WRITE(iout, 1000) abs(c0), ema,failip
109 IF(c0 < zero) THEN
110 WRITE(iout, 1100)
111 ELSE
112 WRITE(iout, 1200)
113 ENDIF
114 ENDIF
115
116 1000 FORMAT(
117 & 5x,40h cockroft-latham failure criteria /,
118 & 5x,40h -------------------------------- /,
119 & 5x,' COEFFICIENT C0. . . . . . . . . . . . .=',e12.4,/,
120 & 5x,' FILTER COEFFICIENT EMA. . . . . . . . .=',e12.4,/,
121 & 5x,' ( EMA = 1.0: NO FILTERING )',/,
122 & 5x,'NUMBER OF FAILED INTG. POINTS PRIOR TO ELEM DELETION .=',i10/)
123 1100 FORMAT(
124 & 5x,' TOTAL STRAIN INCTEMENT USED',/
125 & 5x,' --------------------------------------------------------- ',//)
126 1200 FORMAT(
127 & 5x,' PLASTIC STRAIN INCTEMENT USED',/
128 & 5x,' --------------------------------------------------------- ',//)
129
130 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)