29 1 JFT, JLT, OFF, DT2T,
30 2 NELTST, ITYPTST, STI, MS,
31 3 MSRT, DMELRT, G_DT, DTEL,
38#include "implicit_f.inc"
57 INTEGER,
INTENT(IN) :: JSMS
58 INTEGER NC1(*),NC2(*),NC3(*)
59 my_real,
INTENT(INOUT) :: DTEL(JFT:JLT)
60 INTEGER,
INTENT(IN) :: G_DT
61 INTEGER JFT,JLT,NELTST ,ITYPTST,NGL(*)
63 . off(*), sti(3,*), ms(*), msrt(*), dmelrt(*),
64 . xk(mvsiz),xm(mvsiz),xc(mvsiz),ak(mvsiz)
77 IF(nodadt/=0.OR.idtmins==2)
THEN
82 IF(xk(i)/=zero.AND.xc(i)/=zero.AND.
83 . ms(nc1(i))/=zero)
THEN
84 mass2 = two * ms(nc1(i))
85 sti(1,i) = (sqrt(xc(i)*xc(i)+two*xk(i)*mass2)+xc(i))**2/mass2
88 ELSEIF(xc(i)/=zero.AND.ms(nc1(i))/=zero)
THEN
90 sti(1,i) = a / ms(nc1(i))
95 IF(xk(i)/=zero.AND.xc(i)/=zero.AND.
96 . ms(nc2(i))/=zero)
THEN
97 mass2 = two* ms(nc2(i))
98 sti(2,i) = (sqrt(xc(i)*xc(i)+two*xk(i)*mass2)+xc(i))**2/mass2
99 ELSEIF(xk(i)/=zero)
THEN
101 ELSEIF(xc(i)/=zero.AND.ms(nc2(i))/=zero)
THEN
103 sti(2,i) = a / ms(nc2(i))
108 IF(xk(i)/=zero.AND.xc(i)/=zero.AND.
109 . ms(nc3(i))/=zero)
THEN
110 mass2 = two * ms(nc3(i))
111 sti(3,i) = (sqrt(xc(i)*xc(i)+two*xk(i)*mass2)+xc(i))**2/mass2
112 ELSEIF(xk(i)/=zero)
THEN
114 ELSEIF(xc(i)/=zero.AND.ms(nc3(i))/=zero)
THEN
116 sti(3,i) = a / ms(nc3(i))
121 IF(idtmin(6)==0.AND.(idtmins/=2.OR.jsms==0))
RETURN
123 IF(idtmins==2.AND.jsms/=0)
THEN
128 dt(i)= xm(i)/
max(em15,
129 . two*sqrt(xc(i)*xc(i)+xm(i)*xk(i))+xc(i))
135 IF(off(i)<=zero) cycle
136 dmelrt(i)=
max(dmelrt(i),
137 . xc(i)*dta+half*xk(i)*dtb-fourth*msrt(i))
140 mx2= half*msrt(i)+two*dmelrt(i)
141 dt(i)=dtfacs*mx2 /
max(em15,
142 . sqrt(xc(i)*xc(i)+mx2*xk(i))+xc(i))
153 IF(off(i)<=zero) cycle
163 dt(i)= xm(i)/
max(em15,
164 . two*sqrt(xc(i)*xc(i)+xm(i)*xk(i))+xc(i))
169 dt(i)=dtfac1(6)*dt(i)
170 IF(idtmin(6)==1.AND.dt(i)<dtmin1(6))
THEN
174 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
176 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
177#include "lockoff.inc"
178 ELSEIF(idtmin(6)==5.AND.dt(i)<dtmin1(6))
THEN
182 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
184 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
185#include "lockoff.inc"
186 ELSEIF(idtmin(6)==2.AND.dt(i)<dtmin1(6))
THEN
189 WRITE(iout,*)
'-- DELETE OF SPRING ELEMENT NUMBER',ngl(i)
190#include "lockoff.inc"
201 .
max(em15,two*sqrt(xc(i)*xc(i)+xm(i)*xk(i))+xc(i))
209 sti(1,i) = half*xm(i) / dt(i)**2
212 dt(i)=dtfac1(6)*dt(i)
213 IF(idtmin(6)==1.AND.dt(i)<dtmin1(6))
THEN
217 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
219 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
220#include "lockoff.inc"
221 ELSEIF(idtmin(6)==5.AND.dt(i)<dtmin1(6))
THEN
225 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
227 .
' **ERROR : TIME STEP LESS OR EQUAL DTMIN FOR SPRING ELEMENT'
228#include "lockoff.inc"
229 ELSEIF(idtmin(6)==2.AND.dt(i)<dtmin1(6))
THEN
232 WRITE(iout,*)
'-- DELETE OF SPRING ELEMENT NUMBER',ngl(i)
233#include "lockoff.inc"
subroutine r3len3(jft, jlt, off, dt2t, neltst, ityptst, sti, ms, msrt, dmelrt, g_dt, dtel, ngl, xk, xm, xc, ak, nc1, nc2, nc3, jsms)