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