31 SUBROUTINE c3dt3(JFT ,JLT ,PM ,OFF ,DT2T ,
32 2 NELTST,ITYPTST,STI ,STIR ,OFFG ,
33 3 SSP ,VISCMX ,ISMSTR ,NFT ,IOFC ,
34 4 ALPE ,MSTG ,DMELTG ,JSMS ,PTG ,
35 5 SHF ,IGTYP ,IGMAT ,G ,A1 ,
36 6 A11R ,G_DT ,DTEL ,ALDT ,THK0 ,
37 7 AREA ,NGL ,IMAT ,MTN ,NEL ,
42#include "implicit_f.inc"
62 INTEGER JFT, JLT,NELTST,ITYPTST,ISMSTR,NFT,IOFC, JSMS,IGTYP,
66 . PM(NPROPM,*), OFF(*),STI(*),STIR(*),OFFG(*),SSP(MVSIZ),
67 . VISCMX(MVSIZ),DT2T, MSTG(*), DMELTG(*), PTG(3,*),SHF(*), G(MVSIZ),
68 . A11R(MVSIZ),A1(MVSIZ),ALDT(MVSIZ),THK0(MVSIZ),AREA(MVSIZ),ALPE(MVSIZ)
69 INTEGER,
INTENT(IN) :: G_DT, NEL
70 my_real,
DIMENSION(JLT),
INTENT(INOUT) :: DTEL
71 my_real,
DIMENSION(NEL),
INTENT(IN) :: zoffset
75 INTEGER INDX(MVSIZ),I, II, NINDX,IDT
77 my_real athk, mmin,fac
80 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
81 aldt(i) = aldt(i)*viscmx(i) / sqrt(alpe(i))
87 . ((igtyp == 11 .OR. igtyp == 17 .OR. igtyp == 51)
88 . .AND. igmat > 0 ))
THEN
90 IF (off(i)==zero)
THEN
94 athk = area(i) * thk0(i)
95 sti(i) = athk * a1(i) / aldt(i)**2
96 fac =a11r(i)*area(i)/ aldt(i)**2
97 stir(i) = fac*(one_over_12* thk0(i)**3 + thk0(i)*zoffset(i)*zoffset(i)
98 . + thk0(i)*half * shf(i) * area(i) * g(i)/a1(i))
106 IF (mtn == 58 .or. mtn == 158)
CALL cssp2a11(pm ,imat ,ssp ,a1 ,jlt )
108 IF (off(i)==zero)
THEN
112 athk = area(i) * thk0(i)
113 sti(i) = athk * a1(i) / aldt(i)**2
114 stir(i) = sti(i) * (thk0(i) * thk0(i) * one_over_12
115 . + half * shf(i) * area(i) * g(i)/a1(i))
123 ELSEIF(idtmins == 2)
THEN
125 . ((igtyp == 11 .OR. igtyp == 17 .OR. igtyp == 51)
126 . .AND. igmat > 0 ))
THEN
128 IF (off(i)==zero)
THEN
132 athk = area(i) * thk0(i)
133 sti(i) = athk * a1(i) / aldt(i)**2
134 fac = a11r(i)*area(i)/ aldt(i)**2
135 stir(i) = fac * (one_over_12* (thk0(i)**3) + thk0(i)*zoffset(i)*zoffset(i)
136 . + half * thk0(i)*shf(i) * area(i) * g(i)/a1(i))
145 IF (off(i)==zero)
THEN
149 athk = area(i) * thk0(i)
150 sti(i) = athk * a1(i) / aldt(i)**2
151 stir(i) = sti(i) * (thk0(i) * thk0(i) * one_over_12
152 . + half * shf(i) * area(i) * g(i)/a1(i))
159 IF(offg(i) < zero .OR. off(i) == zero) cycle
161 mmin=mstg(i)*
min(ptg(1,i),ptg(2,i),ptg(3,i))
166 dmeltg(i)=
max(dmeltg(i),
167 . (dtmins/dtfacs)**2 * sti(i) - two*mmin)
169 . sqrt((two*mmin+dmeltg(i))/
max(em20,sti(i)))
181 dt(i)=dtfac1(7)*aldt(i)/ssp(i)
189 IF (idtmin(7)==0)
RETURN
194 IF(dt(i)>dtmin1(7).OR.off(i)<one
195 . .OR.offg(i)==two.OR.offg(i)<zero)
GO TO 100
199 WRITE(iout,1000) ngl(i)
200 WRITE(istdo,1000) ngl(i)
201#include "lockoff.inc"
203 ELSEIF(idtmin(7)==2)
THEN
205 IF(dt(i)>dtmin1(7).OR.off(i)<one
206 . .OR.offg(i)<zero)
GO TO 120
215 WRITE(iout,1200) ngl(i)
216 WRITE(istdo,1300) ngl(i),tt
217#include "lockoff.inc"
220 ELSEIF(ismstr==2.AND.idtmin(7)==3)
THEN
222 IF(dt(i)>dtmin1(7).OR.
223 . off(i)<one.OR.offg(i)==two.OR.offg(i)<zero)
GO TO 140
227 WRITE(iout,1400) ngl(i)
228 WRITE(istdo,1400) ngl(i)
229#include "lockoff.inc"
231 ELSEIF(idtmin(7)==5)
THEN
233 IF(dt(i)>dtmin1(7).OR.off(i)<one.
234 . or.offg(i)==two.OR.offg(i)<zero)
GO TO 150
238 WRITE(iout,1000) ngl(i)
239 WRITE(istdo,1000) ngl(i)
240#include "lockoff.inc"
244 IF(nodadt/=0.OR.(idtmins==2.AND.jsms/=0))
RETURN
249 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t) idt=1
254 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t)
THEN
265 sti(i) = area(i) * thk0(i) * a1(i) / aldt(i)**2
266 sti(i) = zep81 * zep81 * sti(i) * off(i)
270 1000
FORMAT(1x,
'-- MINIMUM TIME STEP 3N SHELL ELEMENT NUMBER ',i10)
271 1200
FORMAT(1x,
'-- DELETE 3N SHELL ELEMENT NUMBER ',i10)
272 FORMAT'-- DELETE 3N SHELL ELEMENT :',i10,
' AT TIME :',g11.4)
273 1400
FORMAT(1x,
'-- CONSTANT TIME STEP 3N SHELL ELEMENT NUMBER ',i10)
subroutine c3dt3(jft, jlt, pm, off, dt2t, neltst, ityptst, sti, stir, offg, ssp, viscmx, ismstr, nft, iofc, alpe, mstg, dmeltg, jsms, ptg, shf, igtyp, igmat, g, a1, a11r, g_dt, dtel, aldt, thk0, area, ngl, imat, mtn, nel, zoffset)