39 . MAT_ID ,FAIL_ID ,IRUPT ,LSUBMODEL,UNITAB )
54#include
"implicit_f.inc"
62 INTEGER ,
INTENT(IN) :: FAIL_ID
63 INTEGER ,
INTENT(IN) :: MAT_ID
64 INTEGER ,
INTENT(IN) :: IRUPT
65 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
66 TYPE (SUBMODEL_DATA),
INTENT(IN) :: LSUBMODEL(*)
67 TYPE (FAIL_PARAM_) ,
INTENT(INOUT) :: FAIL
71 INTEGER :: IRFUN,DMG_FLAG,FAILIP
72 my_real :: rf1,rf2,rief1,rief2,scale_epsp,pthk
74 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
76 is_encrypted = .false.
77 is_available = .false.
86 CALL hm_get_floatv (
'E1' ,rief1 ,is_available,lsubmodel,unitab)
87 CALL hm_get_floatv (
'E2' ,rief2 ,is_available,lsubmodel,unitab)
88 CALL hm_get_intv (
'fct_ID' ,irfun ,is_available,lsubmodel)
89 CALL hm_get_floatv (
'xscale' ,scale_epsp ,is_available,lsubmodel,unitab)
90 CALL hm_get_intv (
'I_Dam' ,dmg_flag ,is_available,lsubmodel)
91 CALL hm_get_intv (
'FAILIP' ,failip ,is_available,lsubmodel)
92 IF (failip == 0) failip = 1
94 IF (rief1 <= zero) rief1 = ep30
95 IF (rief2 <= zero) rief2 = two*ep30
96 IF (dmg_flag == 0) dmg_flag = 1
97 IF (dmg_flag == 2) dmg_flag = 0
99 IF (rief1 > rief2)
THEN
100 CALL ancmsg(msgid=618, msgtype=msgerror, anmode=aninfo_blind_1,
105 IF(scale_epsp == zero)
THEN
107 scale_epsp = one * scale_epsp
110 fail%KEYWORD =
'ENERGY'
112 fail%FAIL_ID = fail_id
122 ALLOCATE (fail%UPARAM(fail%NUPARAM))
123 ALLOCATE (fail%IPARAM(fail%NIPARAM))
124 ALLOCATE (fail%IFUNC (fail%NFUNC))
125 ALLOCATE (fail%TABLE (fail%NTABLE))
127 fail%UPARAM(1) = rief1
128 fail%UPARAM(2) = rief2
129 fail%UPARAM(3) = pthk
130 fail%UPARAM(4) = one/scale_epsp
131 fail%UPARAM(5) = dmg_flag
132 fail%UPARAM(6)= failip
134 fail%IFUNC(1) = irfun
139 WRITE(iout, 2000) rief1,rief2,irfun,scale_epsp,failip
144 & 5x,40h crypted
DATA in failure model /,
145 & 5x,40h ----------------------------- /)
147 & 5x,40h energy failure model /,
148 & 5x,40h ------------------------ /,
149 & 5x,
'MAXIMUM SPECIFIC ENERGY 1. . . . . . . =',e12.4/
150 & 5x,
'MAXIMUM SPECIFIC ENERGY 2. . . . . . . =',e12.4/
151 & 5x,
'MAXIMUM ENERGIES SCALING FUNCTION. . . =',i8/
152 & 5x,
'ABSCISSA SCALE FACTOR FOR FUNCTION . . =',e12.4/,
153 & 5x,
'NUMBER OF FAILED INTG. POINTS PRIOR TO ELEM DELETION .=',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)