30
31
32
33#include "implicit_f.inc"
34
35
36
37#include "mvsiz_p.inc"
38#include "param_c.inc"
39
40
41
42 INTEGER NEL,NBDAMA
44 my_real,
DIMENSION(NEL,3) ,
INTENT(IN):: dam,crak
45 my_real,
DIMENSION(NEL,6) ,
INTENT(IN):: ang
46 my_real,
DIMENSION(MVSIZ,3,3) ,
INTENT(OUT):: cdam
47 my_real,
DIMENSION(MVSIZ,3) ,
INTENT(OUT):: g3
48 my_real,
DIMENSION(MVSIZ,6) ,
INTENT(OUT):: damang
49
50
51
52 INTEGER I,K,NBDAMA0
53 INTEGER, DIMENSION(NEL) :: DAMAI,DAMA0I
54 my_real young,nu,g,a11,a12,de1,de2,de3,de4,de5,de6,den,
55 . scal1,scal2,scal3,d_max
56
57
58
59 young = pm(20)
60 nu = pm(21)
61 g = pm(22)
62 a11 = pm(24)
63 a12 = pm(25)
64
65
66
67 nbdama = 0
68 nbdama0 = 0
69 d_max=zero
70 DO i = 1,nel
71 IF (dam(i,1) + dam(i,2) + dam(i,3) > zero) THEN
72 nbdama = nbdama + 1
73 damai(nbdama)=i
74 d_max =
max(d_max,dam(i,1),dam(i,2),dam(i,3))
75 ELSE
76 nbdama0 = nbdama0 + 1
77 dama0i(nbdama0)=i
78 ENDIF
79 ENDDO
80
81
82
83 DO k=1,nbdama
84 i = damai(k)
85
86 de1 = one -
max( zero , sign(dam(i,1),crak(i,1)) )
87 de2 = one -
max( zero , sign(dam(i,2),crak(i,2)) )
88 de3 = one -
max( zero , sign(dam(i,3),crak(i,3)) )
89 scal1= half + sign(half,de1-one)
90 scal2= half + sign(half,de2-one)
91 scal3= half + sign(half,de3-one)
92 de4 = scal1*scal2
93 de5 = scal2*scal3
94 de6 = scal3*scal1
95
96
97
98 den = one - nu**2 *(de4 + de5 + de6
99 . + two*nu*scal1*scal2*scal3)
100
101 cdam(i,1,1) = young*de1*(one - nu**2*de5)/den
102 cdam(i,2,2) = young*de2*(one - nu**2*de6)/den
103 cdam(i,3,3) = young*de3*(one - nu**2*de4)/den
104 cdam(i,1,2) = nu*young*de4 *(one + nu*scal3)/den
105 cdam(i,1,3) = nu*young*de6 *(one + nu*scal2)/den
106 cdam(i,2,3) = nu*young*de5 *(one + nu*scal1)/den
107 cdam(i,2,1) = cdam(i,1,2)
108 cdam(i,3,1) = cdam(i,1,3)
109 cdam(i,3,2) = cdam(i,2,3)
110
111 g3(i,1) = g*de4
112 g3(i,2) = g*de5
113 g3(i,3) = g*de6
114 damang(i,1:6) = ang(i,1:6)
115 ENDDO
116
117
118
119 DO k=1,nbdama0
120 i = dama0i(k)
121 cdam(i,1,1) = a11
122 cdam(i,2,2) = a11
123 cdam(i,3,3) = a11
124 cdam(i,1,2) = a12
125 cdam(i,2,1) = a12
126 cdam(i,1,3) = a12
127 cdam(i,3,1) = a12
128 cdam(i,2,3) = a12
129 cdam(i,3,2) = a12
130 g3(i,1:3) = g
131 damang(i,1) = one
132 damang(i,2) = zero
133 damang(i,3) = zero
134 damang(i,4) = zero
135 damang(i,5) = one
136 damang(i,6) = zero
137 ENDDO
138
139 RETURN