60
61
62
63 USE elbufdef_mod
65 USE preload_axial_mod
67 USE sensor_mod
68 use matparam_def_mod
69
70
71
72#include "implicit_f.inc"
73
74
75
76#include "mvsiz_p.inc"
77
78
79
80#include "param_c.inc"
81#include "parit_c.inc"
82#include "com08_c.inc"
83
84
85
86 INTEGER, INTENT(IN) :: IGRE
87 INTEGER, INTENT(IN) :: NFT
88 INTEGER, INTENT(IN) :: MTN
89 INTEGER, INTENT(IN) :: NUMMAT
90 INTEGER, INTENT(IN) :: JSMS
91 INTEGER NCT(*),IADT(2,*),IPARTT(*),OFFSET,
92 . JFT,JLT,NELTST,ITYPTST,NEL,GRTH(*),IPM(NPROPMI,*),
93 . IGRTH(*),IOUTPRT,NPF(*),ITASK
95 . bufmat(*),pm(*),geo(npropg,*),x(*),f(*),v(*),partsav(*),tf(*),
96 . stifn(*),fsky(*),tani(15,*),fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
97 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),gresav(*),mstr(*),dmeltr(*)
98 my_real,
INTENT(IN) :: preld1,stf_f
99
100 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
101 TYPE(H3D_DATABASE) :: H3D_DATA
102 TYPE (DT_), INTENT(IN) :: DT
103 type (sensors_),INTENT(INOUT) :: SENSORS
104 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(IN) :: MAT_PARAM
105
106
107
108 INTEGER I,IMAT,LCO,NUVAR,NFUNC
109 INTEGER IFUNC(100)
110 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),NC1(MVSIZ),NC2(MVSIZ)
112 . sti(mvsiz),off(mvsiz),
113 . eps(mvsiz),al(mvsiz),vx1(mvsiz),vx2(mvsiz),vy1(mvsiz),
114 . vy2(mvsiz),vz1(mvsiz),vz2(mvsiz),ex(mvsiz),ey(mvsiz),ez(mvsiz),
115 . x1(mvsiz),x2(mvsiz),y1(mvsiz),y2(mvsiz),z1(mvsiz),z2(mvsiz)
116
117 my_real ,
DIMENSION(:) ,
POINTER :: uvar
118 TYPE(G_BUFEL_),POINTER :: GBUF
119
120
121
122 gbuf => elbuf_str%GBUF
123
124 lco=1+5*nft
126 1 x, nct(lco),mat, pid,
127 2 ngl, nc1, nc2, x1,
128 3 x2, y1, y2, z1,
129 4 z2, nel)
131 1 v, gbuf%OFF,off, nc1,
132 2 nc2, eps, al, vx1,
133 3 vx2, vy1, vy2, vz1,
134 4 vz2, ex, ey, ez,
135 5 x1, x2, y1, y2,
136 6 z1, z2, nel)
137
138 imat = mat(1)
139 DO i=1,nel
140 IF (geo(2,pid(i))>zero .AND. gbuf%OFF
141 ENDDO
143 1 jft, jlt, pm, gbuf%OFF,
144 2 off, dt2t, neltst, ityptst,
145 3 mstr, dmeltr, gbuf%DT, nel,
146 4 gbuf%G_DT,mat, ngl, al,
147 5 jsms)
148
149 IF (mtn == 1) THEN
151 1 pm, geo, off, gbuf%FOR,
152 2 gbuf%EINT, gbuf%AREA, gbuf%LENGTH,sti,
153 3 mat, pid, eps, al,
154 4 nel)
155
156 ELSEIF (mtn == 2) THEN
157 CALL m2lawt(mat_param(imat) ,
158 1 geo, off, gbuf%FOR,
159 2 gbuf%EINT, gbuf%AREA, gbuf%LENGTH,gbuf%PLA,
160 3 sti, pid, ngl,
161 4 eps, al, nel)
162
163 ELSEIF (mtn == 34) THEN
164 nuvar = gbuf%G_NUVAR
165 uvar => gbuf%VAR
166 CALL sigeps34t(nel ,ngl ,mat ,pid ,bufmat ,
167 . ipm ,geo ,off ,gbuf%FOR ,sti ,
168 . gbuf%EINT,gbuf%AREA,gbuf%LENGTH,al ,eps ,
169 . nuvar ,uvar )
170
171
172 ELSEIF (mtn == 44) THEN
173 nuvar = gbuf%G_NUVAR
174 uvar => gbuf%VAR
175 nfunc = ipm(10,mat(1))
176 DO i=1,nfunc
177 ifunc(i) = ipm(10+i,mat(1))
178 ENDDO
179 CALL sigeps44t(nel ,ngl ,mat ,pid ,bufmat ,
180 . ipm ,geo ,off ,gbuf%FOR ,sti ,
181 . gbuf%PLA ,gbuf%EINT,gbuf%AREA,gbuf%LENGTH,al ,
182 . eps ,nuvar ,uvar ,npf ,tf ,
183 . nfunc ,ifunc )
184
185 ENDIF
186
187 DO i=1,nel
188 IF (geo(2,pid(i))>zero) THEN
189 IF (gbuf%OFF(i)==zero.AND.off(i)==one) gbuf%OFF(i)=one
190 END IF
191 gbuf%STRA(i) = gbuf%STRA(i) + eps(i)*dt1
192 ENDDO
193
194
195
196 IF (ioutprt>0) THEN
198 1 pm, v, gbuf%EINT,gbuf%AREA,
199 2 partsav, ipartt, tani, gbuf%FOR,
200 3 gresav, grth, igrth, mat,
201 4 al, vx1, vx2, vy1,
202 5 vy2, vz1, vz2, x1,
203 6 x2, y1, y2, z1,
204 7 z2, itask, h3d_data, nel,
205 8 igre, sensors)
206 END IF
207
208
209
210 IF (preld1>zero) THEN
211 CALL preload_axial(nel,preld1,gbuf%BPRELD,eps,stf_f,gbuf%FOR)
212 END IF
213
214
215
216 IF (iparit == 0) THEN
218 1 f, gbuf%FOR,stifn, sti,
219 2 fx1, fx2, fy1, fy2,
220 3 fz1, fz2, gbuf%OFF,off,
221 4 nc1, nc2, ex, ey,
222 5 ez, nel)
223 ELSE
225 1 gbuf%FOR,sti, fsky, fsky,
226 2 iadt, fx1, fx2, fy1,
227 3 fy2, fz1, fz2, gbuf%OFF,
228 4 off, nc1, nc2, ex,
229 5 ey, ez, nel, nft)
230 ENDIF
231
232 RETURN
subroutine m1lawt(pm, geo, off, for, eint, area, al0, sti, mat, mgm, eps, al, nel)
subroutine m2lawt(mat_param, geo, off, for, eint, area, al0, pla, sti, mgm, ngl, eps, al, nel)
subroutine sigeps34t(nel, ngl, mat, pid, uparam, ipm, geo, off, for, sti, eint, area, al0, al, epsp, nuvar, uvar)
subroutine sigeps44t(nel, ngl, mat, pid, uparam, ipm, geo, off, for, sti, pla, eint, area, al0, al, epsp, nuvar, uvar, npf, tf, nfunc, ifunc)
subroutine tbilan(pm, v, eint, area, partsav, ipartt, tani, for, gresav, grth, igrth, mat, al, vx1, vx2, vy1, vy2, vz1, vz2, x1, x2, y1, y2, z1, z2, itask, h3d_data, nel, igre, sensors)
subroutine tcoor3(x, ncc, mat, mgm, ngl, nc1, nc2, x1, x2, y1, y2, z1, z2, nel)
subroutine tdefo3(v, offg, off, nc1, nc2, eps, al, vx1, vx2, vy1, vy2, vz1, vz2, ex, ey, ez, x1, x2, y1, y2, z1, z2, nel)
subroutine tdlen3(jft, jlt, pm, offg, off, dt2t, neltst, ityptst, mstr, dmeltr, dtel, nel, g_dt, mat, ngl, al, jsms)
subroutine tfcum3(f, for, stifn, sti, fx1, fx2, fy1, fy2, fz1, fz2, offg, off, nc1, nc2, ex, ey, ez, nel)
subroutine tfcum3p(for, sti, fsky, fskyv, iadt, fx1, fx2, fy1, fy2, fz1, fz2, offg, off, nc1, nc2, ex, ey, ez, nel, nft)