29 1 NELTST,ITYPTST ,STI ,STIR ,OFFG,
30 2 SSP ,VISCMX ,RHO ,VOL0 ,THK0,THK02,
31 3 A1 ,ALDT ,ALPE ,NGL ,ISMSTR,
32 4 IOFC ,NNE ,AREA ,G ,SHF ,
33 5 MSC ,DMELC ,JSMS ,PTG ,IGTYP ,
34 6 IGMAT ,A11R ,G_DT ,DTEL ,A11PINCH)
38#include "implicit_f.inc"
57 INTEGER JFT, JLT,NELTST,ITYPTST,ISMSTR,IOFC,NNE, JSMS,IGTYP
58 INTEGER NGL(*),IGMAT,G_DT
61 . OFF(*),STI(*),STIR(*),OFFG(*),SSP(*),AMU(*),
62 . ALDT(*), ALPE(*), A1(*), THK0(*),THK02(*),
63 . vol0(*), viscmx(*), rho(*),dt2t,
area(*), g(*), shf(*),
64 . msc(*), dmelc(*), ptg(3,*),a11r(*),
dtel(mvsiz), a11pinch
68 INTEGER INDXOF(MVSIZ),
69 . I, J, II, NINDX,IDT,ITYEL
70 my_real DT(MVSIZ),FAC,MAS,DIVM,MMIN ,IZ
73 viscmx(i) =
max(viscmx(i), amu(i))
74 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
75 aldt(i) = aldt(i) * viscmx(i) / sqrt(alpe(i))
83 IF (off(i)==zero)
THEN
87 sti(i) = half*vol0(i) * a11pinch / aldt(i)**2
90 . ((igtyp == 11 .OR. igtyp == 17 .OR. igtyp == 51)
91 . .AND. igmat > 0 ))
THEN
92 fac = half*vol0(i)/ aldt(i)**2
93 stir(i) =(fac * a11r(i)*thk02(i) +
94 . fac * a1(i) *
area(i)) *one_over_12
96 stir(i) = sti(i) * (thk02(i)+
area(i)) *one_over_12
104 IF(offg(i) < zero .OR. off(i) == zero) cycle
109 dmelc(i)=
max(dmelc(i),
110 . (dtmins/dtfacs)**2 * sti(i) - two*msc(i))
112 . sqrt((two*msc(i)+dmelc(i))/
max(em20,sti(i)))
121 IF(offg(i) < zero .OR. off(i) == zero) cycle
123 mmin=msc(i)*
min(ptg(1,i),ptg(2,i),ptg(3,i))
128 dmelc(i)=
max(dmelc(i),
129 . (dtmins/dtfacs)**2 * sti(i) - two*mmin)
131 . sqrt((two*mmin+dmelc(i))/
max(em20,sti(i)))
140 ELSEIF(nodadt/=0)
THEN
157 IF (off(i)==zero)
THEN
161 sti(i) = half*vol0(i) * a11pinch / aldt(i)**2
162 stir(i) = sti(i) * (thk02(i)+
area(i)) *one_over_12
169 dt(i)=dtfac1(ityel)*aldt(i)/ssp(i)
173 dtel(i)=aldt(i)/ssp(i)
176 IF((nodadt/=0.OR.idtmins==2).AND.idtmin(ityel)==0)
RETURN
178 IF(idtmin(ityel)>=1)
THEN
181 IF(dt(i)<=dtmin1(ityel).AND.
182 . off(i)>=one.AND.offg(i)/=two.AND.offg(i)>=zero)
THEN
189 IF(idtmin(ityel)==1)
THEN
191 IF(nindx>iofc) mstop = 2
193 DO 100 j=iofc+1,nindx
196 WRITE(iout,1000) nne,ngl(i)
197 WRITE(istdo,1000) nne,ngl(i)
198#include "lockoff.inc"
200 ELSEIF(idtmin(ityel)==2)
THEN
201 IF(nindx>iofc) idel7nok = 1
202 DO 125 j=iofc+1,nindx
206 WRITE(iout,1200) nne,ngl(i)
207 WRITE(istdo,1300) nne,ngl(i),tt
208#include "lockoff.inc"
211 ELSEIF(idtmin(ityel)==3.AND.ismstr==2)
THEN
212 DO 140 j=iofc+1,nindx
216 WRITE(iout,1400) nne,ngl(i)
217 WRITE(istdo,1400) nne,ngl(i)
218#include "lockoff.inc"
221 ELSEIF(idtmin(ityel)==5)
THEN
222 IF(nindx>iofc) mstop = 2
223 DO 160 j=iofc+1,nindx
226 WRITE(iout,1000) nne,ngl(i)
227 WRITE(istdo,1000) nne,ngl(i)
228#include "lockoff.inc"
234 1000
FORMAT(1x,
'--MINIMUM TIME STEP ',i1,
'N SHELL ELEMENT NUMBER ',i10)
235 1200
FORMAT(1x,
'--DELETE ',i1,
'N SHELL ELEMENT NUMBER ',i10)
236 1300
FORMAT(1x,
'--DELETE ',i1
',N SHELL ELEMENT:',i10,
' AT TIME:',g11.4)
237 1400
FORMAT(1x,
'--CONSTANT TIME STEP ',i1,
'N SHELL ELEMENT NUMBER',i10)
239 IF(nodadt/=0.OR.(idtmins==2.AND.jsms/=0))
RETURN
244 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t) idt=1
249 IF(offg(i)>zero.AND.off(i)/=zero.AND.dt(i)<dt2t)
THEN
260 divm=
max(aldt(i)*aldt(i),em20)
261 sti(i) = half*vol0(i) * a11pinch* off(i) / divm
subroutine cndt3pinch(jft, jlt, off, dt2t, amu, neltst, ityptst, sti, stir, offg, ssp, viscmx, rho, vol0, thk0, thk02, a1, aldt, alpe, ngl, ismstr, iofc, nne, area, g, shf, msc, dmelc, jsms, ptg, igtyp, igmat, a11r, g_dt, dtel, a11pinch)