30 2 OFFG, DT2T, NELTST, ITYPTST,
31 3 STI, STIR, MSP, DMELP,
32 4 G_DT, DTEL, AL, MAT,
33 5 PID, NGL, NEL, IGTYP,
38#include "implicit_f.inc"
58 INTEGER,
INTENT(IN) :: NEL
59 INTEGER,
INTENT(IN) :: IGTYP
60 INTEGER,
INTENT(IN) :: JSMS
61 my_real,
INTENT(INOUT) :: DTEL(JFT:JLT)
63 INTEGER JFT,JLT,NELTST ,ITYPTST,MAT(MVSIZ),PID(MVSIZ),
66 . pm(npropm,*), geo(npropg,*), offg(*), sti(*), stir(*),
67 . msp(*), dmelp(*),al(mvsiz)
73 . SSP(MVSIZ), DT(MVSIZ), DMP(MVSIZ), FAC(MVSIZ),
74 . A1, B1, B2, B3, YOUNG,G,AA,BB,
75 . PHI,SHF,DSH(MVSIZ),SL2I(MVSIZ),
76 . FACDT(MVSIZ),PHII(MVSIZ),CST,PHMAX,
77 . kphi(mvsiz),phmin,fsh(mvsiz)
82 dmp(i)=
max(geo(16,pid(i)),geo(17,pid(i)))
91 cst = six_over_5*young/g
96 sl2i(i) = a1*al(i)**2 / bb
97 facdt(i) = one_over_12*sl2i(i)
99 phmin =
min(b1,b2)*phmax/bb
100 kphi(i) = (four+phmin)/(one+phmin)
101 phii(i) = kphi(i)/(one+facdt(i))
102 phii(i) =
max(one,phii(i))
103 fsh(i) = al(i)/(facdt(i)+cst)
104 fsh(i) =
max(one,fsh(i))
106 IF (igtyp == 18)
THEN
108 kphi(1:nel) =
max(one,sl2i(1:nel))
110 IF (idtmins /= 2 .OR. jsms == 0)
THEN
111 IF (nodadt /= 0 .OR. idtmins == 2)
THEN
115 ssp(i) =pm(27,mat(i))
117 IF (offg(i) /= zero)
THEN
124 dmp(i)=dmp(i)*sqrt(two)
125 aa =(sqrt(one +dmp(i)*dmp(i))-dmp(i))
128 stir(i) =
max(g*b3,kphi(i)*young*bb) / aa
129 sti(i) = fsh(i)*a1 * young / aa
132 IF (idtmin(5) == 0)
RETURN
137 ssp(i) =pm(27,mat(i))
140 dmp(i)=dmp(i)*sqrt(two)
141 IF (offg(i) > zero) sti(i) = fsh(i)*a1 * young / al(i)
149 ssp(i) =pm(27,mat(i))
151 IF (offg(i) /= zero)
THEN
158 dmp(i)=dmp(i)*sqrt(two)
159 aa =(sqrt(one +dmp(i)*dmp(i))-dmp(i))
162 stir(i) =
max(g*b3,four*young*bb) / aa
163 sti(i) = a1 * young / aa
165 sl2i(i)= a1*al(i)**2 /
max(b1,b2,em30)
166 shf = one-geo(37,pid(i))
167 phi = twelve*young/(five/six*g)/
max(em30,sl2i(i))
170 . sqrt(twelve/
max(em30,sl2i(i)))*sqrt(one+phi*shf))
171 aa = sqrt(one+dsh(i)*dsh(i))-dsh(i)
173 sti(i) =
max(sti(i),twelve*bb*young/al(i)/al(i) / aa)
178 IF (offg(i) /= zero)
THEN
181 dmelp(i)=
max(dmelp(i),
182 . half*(dtmins/dtfacs
184 IF (dt(i) < dt2t)
THEN
196 fac(i) =sqrt(one+dmp(i)*dmp(i))-dmp(i)
197 dt(i)=dtfac1(5)*fac(i)*al(i)/ssp(i)/sqrt(fsh(i))
201 IF (dt(i) < dtmin1(5) .AND. offg(i) == one)
THEN
202 IF (idtmin(5) == 1 )
THEN
206 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR BEAM ELEMENT'
208 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR BEAM ELEMENT'
209#include "lockoff.inc"
210 ELSEIF (idtmin(5) == 2)
THEN
213 WRITE(iout,*)
'-- DELETE OF BEAM ELEMENT NUMBER',ngl(i)
214#include "lockoff.inc"
216 ELSEIF (idtmin(5) == 5)
THEN
220 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR BEAM ELEMENT'
222 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR BEAM ELEMENT'
223#include "lockoff.inc"
228 IF (nodadt /= 0)
RETURN
231 IF (dt(i) < dt2t .and. offg(i) > zero)
THEN
238 IF (g_dt /= zero)
THEN
subroutine pdlen3(jft, jlt, pm, geo, offg, dt2t, neltst, ityptst, sti, stir, msp, dmelp, g_dt, dtel, al, mat, pid, ngl, nel, igtyp, jsms)