42
43
44
45 USE elbufdef_mod
46
47
48
49#include "implicit_f.inc"
50#include "comlock.inc"
51
52
53
54#include "param_c.inc"
55#include "com08_c.inc"
56
57
58
59 INTEGER NEL,MTN,IMAT,NPT,JTHE
60 INTEGER IPM(NPROPMI,*),PID(*),NPF(*),NGL(*)
62 . geo(npropg,*),epsp(*),bufmat(*),
63 . off(*),tf(*),
64 . exx(nel),exy(nel),exz(nel),kxx(nel),kyy(nel),kzz(nel)
65 my_real ,
INTENT(INOUT) :: tempel(nel)
66 my_real ,
INTENT(INOUT) :: sigy(nel,npt)
67
68 TYPE (ELBUF_STRUCT_), TARGET ::
69 TARGET :: bufmat
70
71
72
73 INTEGER IFUNC(100)
74 INTEGER I,K,J1,IADBUF,IPT,JPLA,NFUNC,IPY,IPZ,IPA,NUVAR,NVARTMP,
75 . IR,IS,(3),ILAYER,NUPARAM
77 . ypt(nel),zpt(nel),apt(nel),g(nel),e(nel),etse(nel),
78 . depsxx(nel),depsxy(nel),depsxz(nel),
79 . sigoxx(nel),sigoxy(nel),sigoxz(nel),
80 . signxx(nel),signxy(nel),signxz(nel),
81 . sigy_ipt(nel)
82 my_real :: shfact,dfxx,dfxy,dfxz
83 my_real ,
DIMENSION(NEL) :: epsxx,epsxy,epsxz,dpla
84
85 TYPE(BUF_LAY_) ,POINTER :: BUFLY
86 TYPE(L_BUFEL_) ,POINTER :: LBUF
87 TYPE(G_BUFEL_) ,POINTER :: GBUF
88 my_real,
DIMENSION(:) ,
POINTER :: uvar
89 INTEGER, DIMENSION(:), POINTER :: VARTMP
90
91 ipy = 200
92 ipz = 300
93 ipa = 400
94 shfact = five_over_6
95
96 iadbuf = ipm(7,imat)
97 nuparam= ipm(9,imat)
98 nfunc = ipm(10,imat)
99 DO i=1,nfunc
100 ifunc(i)=ipm(10+i,imat)
101 ENDDO
102
103 DO i=1,3
104 ii(i) = nel*(i-1)
105 ENDDO
106
107
108
109 DO ipt=1,npt
110 ilayer=1
111 ir = 1
112 is = 1
113 bufly => elbuf_str%BUFLY(ilayer)
114 lbuf => bufly%LBUF(ir,is,ipt)
115 gbuf => elbuf_str%GBUF
116 uvar => bufly%MAT(ir,is,ipt)%VAR
117 vartmp=> bufly%MAT(ir,is,ipt)%VARTMP
118 nuvar = bufly%NVAR_MAT
119 nvartmp= bufly%NVARTMP
120
121
122 DO i=1,nel
123 ypt(i) = geo(ipy+ipt,pid(i))
124 zpt(i) = geo(ipz+ipt,pid(i))
125 apt(i) = geo(ipa+ipt,pid(i))
126 ENDDO
127
128 DO i=1,nel
129 signxx(i) = zero
130 signxy(i) = zero
131 signxz(i) = zero
132
133 sigoxx(i) = lbuf%SIG(ii(1)+i)
134 sigoxy(i) = lbuf%SIG(ii(2)+i)
135 sigoxz(i) = lbuf%SIG(ii(3)+i)
136 sigy_ipt(i) = sigy(i,ipt)
137 ENDDO
138
139 DO i = 1,nel
140 depsxx(i) = exx(i) - ypt(i)*kzz(i) + zpt(i)*kyy(i)
141 depsxy(i) = exy(i) + zpt(i)*kxx(i)
142 depsxz(i) = exz(i) - ypt(i)*kxx(i)
143 depsxy(i) = depsxy(i) / shfact
144 depsxz(i) = depsxz(i) / shfact
145 ENDDO
146
147 IF (bufly%L_STRA > 0) THEN
148 DO i = 1,nel
149 lbuf%STRA(ii(1)+i) = lbuf%STRA(ii(1)+i) + depsxx(i)
150 lbuf%STRA(ii(2)+i) = lbuf%STRA(ii(2)+i) + depsxy(i)
151 lbuf%STRA(ii(3)+i) = lbuf%STRA(ii(3)+i) + depsxz(i)
152 ENDDO
153 DO i = 1,nel
154 epsxx(i) = lbuf%STRA(ii(1)+i)
155 epsxy(i) = lbuf%STRA(ii(2)+i)
156 epsxz(i) = lbuf%STRA(ii(3)+i)
157 END DO
158 ENDIF
159
160
161
162
163 SELECT CASE(mtn)
164
165 CASE (34)
167 1 nel ,nuparam ,bufmat ,ipm ,imat ,
168 2 nuvar ,uvar ,depsxx ,depsxy ,depsxz ,
169 3 epsxx ,sigoxx ,sigoxy ,sigoxz ,
170 4 signxx ,signxy ,signxz ,dt1 ,
171 5 epsxy ,epsxz )
172
173 CASE (36)
175 1 nel ,ifunc ,ipt ,npf ,tf ,
176 2 ngl ,tt ,dt1 ,bufmat ,ipm ,
177 3 imat ,e ,g ,off ,depsxx ,
178 4 depsxy ,depsxz ,sigoxx ,sigoxy ,sigoxz ,
179 5 signxx ,signxy ,signxz ,etse ,lbuf%PLA,
180 6 epsp ,nvartmp ,vartmp ,sigy_ipt)
181
182 CASE (44)
184 1 nel ,nuparam ,bufmat ,ipm ,imat ,
185 2 off ,lbuf%PLA ,depsxx ,depsxy ,depsxz ,
186 3 sigoxx ,sigoxy ,sigoxz ,epsxx ,epsp ,
187 4 signxx ,signxy ,signxz ,etse ,nuvar ,
188 5 uvar ,ifunc ,nvartmp ,vartmp ,npf ,
189 6 tf ,nfunc ,sigy_ipt)
190
191 CASE (71)
193 1 nel ,nuparam ,bufmat ,ipm ,imat ,
194 2 off ,depsxx ,depsxy ,depsxz ,
195 3 sigoxx ,sigoxy ,sigoxz ,epsxx ,epsxy ,
196 4 epsxz ,signxx ,signxy ,signxz ,etse ,
197 5 nuvar ,uvar ,jthe ,tempel ,lbuf%FRAC,
198 7 lbuf%PLA)
199
200 DO i = 1,nel
201 gbuf%MAXFRAC(i) =
max(gbuf%MAXFRAC(i) , lbuf%FRAC(i) )
202 gbuf%MAXEPS(ii(1)+i) =
max(gbuf%MAXEPS(ii(1)+i) , abs(epsxx(i)))
203 gbuf%MAXEPS(ii(2)+i) =
max(gbuf%MAXEPS(ii(2)+i) , abs(epsxy(i)))
204 gbuf%MAXEPS(ii(3)+i) =
max(gbuf%MAXEPS(ii(3)+i) , abs(epsxz(i)))
205 ENDDO
206
207 CASE DEFAULT
208
209 END SELECT
210
211
212 DO i=1,nel
213 lbuf%SIG(ii(1)+i) = signxx(i)
214 lbuf%SIG(ii(2)+i) = signxy(i)
215 lbuf%SIG(ii(3)+i) = signxz(i)
216 sigy(i,ipt) = sigy_ipt(i)
217 ENDDO
218
219
220
221 ENDDO
222
223 RETURN
subroutine sigeps34pi(nel, nuparam, uparam, ipm, imat, nuvar, uvar, depsxx, depsxy, depsxz, epsxx, sigoxx, sigoxy, sigoxz, signxx, signxy, signxz, timestep, epsxy, epsxz)
subroutine sigeps36pi(nel, kfunc, ipt, npf, tf, ngl, time, timestep, uparam, ipm, imat, e, g, off, depsxx, depsxy, depsxz, sigoxx, sigoxy, sigoxz, signxx, signxy, signxz, etse, pla, epsp, nvartmp, vartmp, sigy)
subroutine sigeps44pi(nel, nuparam, uparam, ipm, imat, off, pla, depsxx, depsxy, depsxz, sigoxx, sigoxy, sigoxz, epst, epsp, signxx, signxy, signxz, etse, nuvar, uvar, ifunc, nvartmp, vartmp, npf, tf, nfunc, sigy)
subroutine sigeps71pi(nel, nuparam, uparam, ipm, imat, off, depsxx, depsxy, depsxz, sigoxx, sigoxy, sigoxz, epsxx, epsxy, epsxz, signxx, signxy, signxz, etse, nuvar, uvar, jthe, temp, fm, treps)