29 1 JFT, JLT, OFF, DT2T,
30 2 NELTST, ITYPTST, STI, MS,
31 3 MSRT, DMELRT, G_DT, DTEL,
37#include "implicit_f.inc"
56 INTEGER,
INTENT(IN) :: JSMS
57 INTEGER NGL(*),NC1(*),NC2(*)
58 my_real,
INTENT(INOUT) :: DTEL(JFT:JLT)
59 INTEGER,
INTENT(IN) :: G_DT
60 INTEGER JFT,JLT,NELTST ,ITYPTST
62 . off(*), sti(3,*), ms(*),xk(mvsiz),xm(mvsiz),xc(mvsiz),
70 . DT(MVSIZ),DTC(MVSIZ),
71 . A, MASS2, MSRT(*), DMELRT(*),
78 IF(nodadt/=0.OR.idtmins==2)
THEN
83 IF(xk(i)/=zero.AND.xc(i)/=zero.AND.
84 . ms(nc1(i))/=zero)
THEN
85 mass2 = two * ms(nc1(i))
86 sti(1,i) = (sqrt(xc(i)**2+xk(i)*mass2)+xc(i))**2/mass2
87 ELSEIF(xk(i)/=zero)
THEN
89 ELSEIF(xc(i)/=zero.AND.ms(nc1(i))/=zero)
THEN
91 sti(1,i) = a / ms(nc1(i))
96 IF(xk(i)/=zero.AND.xc(i)/=zero.AND.
97 . ms(nc2(i))/=zero)
THEN
98 mass2 = two * ms(nc2(i))
99 sti(2,i) = (sqrt(xc(i)**2+xk(i)*mass2)+xc(i))**2/mass2
100 ELSEIF(xk(i)/=zero)
THEN
102 ELSEIF(xc(i)/=zero.AND.ms(nc2(i))/=zero)
THEN
104 sti(2,i) = a / ms(nc2(i))
109 IF(idtmin(6)==0.AND.(idtmins/=2.OR.jsms==0))
RETURN
111 IF(idtmins==2.AND.jsms/=0)
THEN
118 IF(off(i)<=zero) cycle
119 dmelrt(i)=
max(dmelrt(i),
120 . xc(i)*dta+half*xk(i)*dtb-half*msrt(i))
123 mx =msrt(i)+two*dmelrt(i)
125 . mx /
max(em15,sqrt(xc(i)*xc(i)+mx*xk(i))+xc(i))
129 IF(off(i)<=zero) cycle
139 dt(i)= xm(i)/
max(em15,sqrt(xc(i)*xc(i)+xm(i)*xk(i))+xc(i))
143 IF(dt(i)==zero) dt(i)=dtc(i)
145 dt(i)=dtfac1(6)*dt(i)
146 IF(idtmin(6)==1.AND.dt(i)<dtmin1(6))
THEN
150 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
152 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
153#include "lockoff.inc"
154 ELSEIF(idtmin(6)==5.AND.dt(i)<dtmin1(6))
THEN
158 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
160 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
161#include "lockoff.inc"
162 ELSEIF(idtmin(6)==2.AND.dt(i)<dtmin1(6))
THEN
165 WRITE(iout,*)
'-- DELETE OF SPRING ELEMENT NUMBER',ngl(i)
166#include "lockoff.inc"
175 dt(i)= xm(i)/
max(em15,sqrt(xc(i)*xc(i)+xm(i)*xk(i))+xc(i))
176 dtc(i)=half*xm(i) /
max(em15,xc(i))
177 dt(i)=
min(dt(i),dtc(i))
183 IF(dt(i)==zero) dt(i)=dtc(i)
185 sti(1,i) = xm(i) / dt(i)**2
187 dt(i)=dtfac1(6)*dt(i)
188 IF(idtmin(6)==1.AND.dt(i)<dtmin1(6))
THEN
192 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
194 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
195#include "lockoff.inc"
196 ELSEIF(idtmin(6)==5.AND.dt(i)<dtmin1(6))
THEN
200 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
202 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
203#include "lockoff.inc"
204 ELSEIF(idtmin(6)==2.AND.dt(i)<dtmin1(6))
THEN
207 WRITE(iout,*)
'-- DELETE OF SPRING ELEMENT NUMBER',ngl(i)
208#include "lockoff.inc"
subroutine r1len3(jft, jlt, off, dt2t, neltst, ityptst, sti, ms, msrt, dmelrt, g_dt, dtel, ngl, xk, xm, xc, ak, nc1, nc2, jsms)