34
35
36
37#include "implicit_f.inc"
38
39#include "units_c.inc"
40#include "comlock.inc"
41
42 INTEGER NEL, NUPARAM, NUVAR,NGL(),IGTYP,IPT,
43 . NPTOT
44 my_real time,timestep,uparam(*),
45 . signxx(nel),signyy(nel),offl(nel),
46 . signxy(nel),signyz(nel),signzx(nel),uvar(nel,nuvar),
47 . dpla(nel),off(nel),dfmax(nel),tdele(nel),
area(nel),thk0(nel)
48 INTEGER, DIMENSION(NEL), INTENT(INOUT) :: FOFF
49
50
51
52 INTEGER I,J,INDX(NEL),NINDX,CONDITION(NEL),INST
54 . nhard,epscal,p,triaxs,vmises,hydros,eps_cr,f_rtcl
55
56
57
58
59
60 epscal = uparam(1)
61 inst = nint(uparam(2))
62 nhard = uparam(3)
63
64
65 IF (uvar(1,1) == zero) THEN
66 DO i = 1,nel
67 uvar(i,1) = sqrt(
area(i))
68 uvar(i,2) = thk0(i)
69 ENDDO
70 ENDIF
71
72
73 nindx = 0
74
75
76
77
78 DO i=1,nel
79
80
81 IF (off(i) == one .AND. dpla(i) /= zero) THEN
82
83
84 hydros = (signxx(i)+ signyy(i))/three
85 vmises = sqrt((signxx(i)**2)+(signyy(i)**2)-(signxx(i)*signyy(i)
86 triaxs = hydros /
max(em20,vmises)
87 IF (triaxs > two_third) triaxs = two_third
88 IF (triaxs < -two_third) triaxs = -two_third
89
90
91 IF (triaxs < -third) THEN
92 f_rtcl = zero
93 ELSEIF ((triaxs >= -third).AND.(triaxs < third)) THEN
94 f_rtcl = two*((one+triaxs*sqrt(twelve-twenty7*(triaxs**2)))/
95 . (three*triaxs+sqrt(twelve-twenty7*(triaxs**2))))
96 ELSE
97 f_rtcl = exp(-half)*exp(three_half*triaxs)
98 ENDIF
99
100
101 IF (inst == 2) THEN
102 eps_cr = nhard + (epscal - nhard)*(uvar(i,2)/uvar(i,1))
103 ELSE
104 eps_cr = epscal
105 ENDIF
106
107
108 dfmax(i) = dfmax(i) + f_rtcl*dpla(i)/
max(eps_cr,em6)
109 dfmax(i) =
min(one,dfmax(i))
110
111
112 IF (offl(i) == one .AND. dfmax(i) >= one) THEN
113 offl(i) = zero
114 foff(i) = 0
115 nindx = nindx + 1
116 indx(nindx) = i
117 condition(nindx) = ipt
118 ENDIF
119 ENDIF
120 ENDDO
121
122
123 IF (nindx > 0) THEN
124 DO j=1,nindx
125 i = indx(j)
126#include "lockon.inc"
127 IF(condition(j) >= 1) THEN
128 WRITE(iout, 2000) ngl(i),condition(j),time
129 WRITE(istdo,2000) ngl(i),condition(j),time
130 ENDIF
131#include "lockoff.inc"
132 END DO
133 END IF
134
135 2000 FORMAT(1x,'FOR SHELL ELEMENT (RTCL)',i10,1x,'LAYER',i3,':',/,
136 . 1x,'STRESS TENSOR SET TO ZERO',1x,'AT TIME :',1pe12.4)
subroutine area(d1, x, x2, y, y2, eint, stif0)