41
42
43
44 USE matparam_def_mod
45
46
47
48#include "implicit_f.inc"
49#include "comlock.inc"
50
51
52
53#include "mvsiz_p.inc"
54
55
56
57#include "param_c.inc"
58
59
60
61 INTEGER JFT,JLT,NPT,NEL,IPT
62 INTEGER NGL(MVSIZ),IOFF_DUCT(MVSIZ),ISRATE
64 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: epsd_pg
65 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: epsd
67 . thk0(mvsiz),
68 . off(*),dir(*),shf(*),sigy(*),zcfac(mvsiz,2),
69 . depsxx(mvsiz),depsyy(mvsiz),depsxy(mvsiz),depsyz(mvsiz),
70 . depszx(mvsiz),sigoxx(nel),sigoyy(nel),sigoxy(nel),
71 . sigoyz(nel),sigozx(nel),signxx(nel),signyy(nel),signxy(nel),
72 . signyz(nel),signzx(nel),wplar(mvsiz),off_old(mvsiz),pla(nel),
73 . tsaiwu(nel)
74 TYPE(MATPARAM_STRUCT_) ,INTENT(IN) :: MAT_PARAM
75
76
77
78 INTEGER ICC(MVSIZ),I,ILAYER,ICC_1
80 . yld(mvsiz),etse(mvsiz),degmb(mvsiz),cb(mvsiz),cn(mvsiz),
81 . e11(mvsiz),e22(mvsiz),nu12(mvsiz),nu21(mvsiz),g12(mvsiz),
82 . g23(mvsiz),g31(mvsiz),de(mvsiz),f1(mvsiz),f2(mvsiz),
83 . f12(mvsiz),f11(mvsiz),f22(mvsiz),f33(mvsiz),sigt1(mvsiz),
84 . sigt2(mvsiz),fmax(mvsiz),wwpla(mvsiz),wplamx(mvsiz),
85 . cc(mvsiz),epdr(mvsiz),wplaref(mvsiz),
86 . e11_1,e22_1,nu12_1,nu21_1,g12_1,g23_1,g31_1,cb_1,cn_1,
87 . cc_1,epdr_1,f1_1,f2_1,f11_1,f22_1,f33_1,f12_1
88
89 icc_1 = mat_param%IPARAM(3)
90
91 e11_1 = mat_param%UPARAM(1)
92 e22_1 = mat_param%UPARAM(2)
93 nu12_1 = mat_param%UPARAM(4)
94 nu21_1 = mat_param%UPARAM(5)
95 g12_1 = mat_param%UPARAM(6)
96 g23_1 = mat_param%UPARAM(7)
97 g31_1 = mat_param%UPARAM(8)
98 cc_1 = mat_param%UPARAM(10)
99 epdr_1 = mat_param%UPARAM(11)
100 sigt1_1 = mat_param%UPARAM(12)
101 sigt2_1 = mat_param%UPARAM(13)
102
103 cb_1 = mat_param%UPARAM(27)
104 cn_1 = mat_param%UPARAM(28)
105
106 f1_1 = mat_param%UPARAM(21)
107 f2_1 = mat_param%UPARAM(22)
108 f11_1 = mat_param%UPARAM(23)
109 f22_1 = mat_param%UPARAM(24)
110 f33_1 = mat_param%UPARAM(25)
111 f12_1 = mat_param%UPARAM(26)
112
113 DO i=jft,jlt
114 e11(i) =e11_1
115 e22(i) =e22_1
116 nu12(i) =nu12_1
117 nu21(i) =nu21_1
118 g12(i) =g12_1
119 g23(i) =g23_1
120 g31(i) =g31_1
121 de(i) = one
122 cb(i) =cb_1
123 cn(i) =cn_1
124 cc(i) =cc_1
125 epdr(i) =epdr_1
126 icc(i) =icc_1
127 f1(i) =f1_1
128 f2(i) =f2_1
129 f11(i) =f11_1
130 f22(i) =f22_1
131 f33(i) =f33_1
132 f12(i) =f12_1
133 sigt1(i) =sigt1_1
134 sigt2(i) =sigt2_1
135 yld(i) =one/sqrt(f33_1)
136 ENDDO
137
138 DO i=jft,jlt
139 wplaref(i)= mat_param%UPARAM(9)
140 wplamx(i) = mat_param%UPARAM(20)
141 fmax(i) = mat_param%UPARAM(29)
142 ENDDO
143
144
145
146 CALL m25cplrp2(jft ,jlt ,wplaref,thk0 ,off ,etse ,
147 2 pla ,dir ,npt ,cc ,epdr ,icc ,
148 3 wwpla ,shf ,fmax ,cb ,cn ,nel ,
149 4 degmb ,f1 ,f2 ,f12 ,f11 ,f22 ,
150 5 f33 ,e11 ,e22 ,nu12 ,nu21 ,g12 ,
151 6 g23 ,g31 ,de ,epsd ,israte ,yld ,
152 7 depsxx ,depsyy ,depsxy ,depsyz ,depszx
153 8 sigoyy ,sigoxy ,sigoyz ,sigozx ,signxx ,signyy ,
154 9 signxy ,signyz ,signzx ,tsaiwu ,asrate ,epsd_pg)
155
156 DO i=jft,jlt
157 wplar(i) =
max(wplar(i),wwpla(i))
158 END DO
159
160
161
162 DO i=jft,jlt
163 zcfac(i,1) = zcfac(i,1) + etse(i) / npt
164 zcfac(i,2) =
min(etse(i),zcfac(i,2))
165 sigy(i) = sigy(i) + yld(i)/npt
166 ENDDO
167
168
169
170 DO i=jft,jlt
171 IF ( off(i) == off_old(i) .and. off_old(i) < em01 ) off(i)=zero
172 IF ( off(i) == off_old(i) .and. off_old(i) < one ) off(i)=off(i)*four_over_5
173 ENDDO
174
175 DO i=jft,jlt
176 IF (off(i) == one .AND. wplar(i) >= wplamx(i)) THEN
177 off(i)=four_over_5
178 ioff_duct(i) = 1
179 ENDIF
180 ENDDO
181
182 IF (npt == 1) THEN
183 DO i=jft,jlt
184 degmb(i)=degmb(i)*off(i)
185 ENDDO
186 ENDIF
187
188 RETURN
subroutine m25cplrp2(jft, jlt, wplaref, thk, off, etse, wpla, dir, npt, cc, epdr, icc, wwpla, shf, fmax, cb, cn, nel, degmb, f1, f2, f12, f11, f22, f33, e11, e22, nu12, nu21, g12, g23, g31, de, epsd, israte, sigy, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, tsaiwu, asrate, epsd_pg)