39 use element_mod , only : nixr
40
41
42
43#include "implicit_f.inc"
44
45
46
47#include "mvsiz_p.inc"
48
49
50
51#include "scr02_c.inc"
52#include "sms_c.inc"
53
54
55
56 INTEGER, INTENT(IN) :: JSMS
57 INTEGER JFT, JLT, IXR(NIXR,*), NELTST, ITYPTST,
58 . NUVAR,JNTYP
59 my_real dt2t, sti(3,*), stir(3,*), off(*), eint(*) ,
60 . xkm(*),xkr(*),xcm(*),xcr(*),umas(*),uiner(*),
61 . fx(*), fy(*), fz(*), xmom(*), ymom(*),zmom(*),
62 . rot1(*), rot2(*), msrt(*), dmelrt(*),
63 . uvar(nuvar,*)
64
65
66
67 INTEGER
68
70 . dt(jlt-jft+1), dta, dtb, mx2,
71 . ms, in
72
73
74
75 IF((idtmins/=2).AND.(jntyp==33)) nodadt = 1
76
77 DO i=jft,jlt
78 sti(1,i) = xkm(i)
79 stir(1,i) = xkr(i)
80 sti(2,i) = sti(1,i)
81 stir(2,i) = stir(1,i)
82
83
84 ms = (uvar(34,i)*uvar(35,i))/
max(em20,uvar(34,i)+uvar(35,i))
85 in = (uvar(36,i)*uvar(37,i))/
max(em20,uvar(36,i)+uvar(37,i))
86
87
88 IF (ms>em15)
89 . sti(1,i) = ((xcm(i)+sqrt(xcm(i)**2+xkm(i)*ms))**2)/ms
90 IF (in>em15)
91 . stir(1,i) = ((xcr(i)+sqrt(xcr(i)**2+xkr(i)*in))**2)/in
92
93
94 sti(2,i) = sti(1,i)
95 stir(2,i) = stir(1,i)
96
97 ENDDO
98
99 IF(idtmins==2.AND.jsms/=0)THEN
100
101 dta=dtmins/dtfacs
102 dtb=dta*dta
103 DO i=jft,jlt
104 IF(off(i)<=zero) cycle
105 xkm(i) =
max(em15,xkm(i))
106 dmelrt(i)=
max(dmelrt(i),
107 . xcm(i)*dta+half*xkm(i)*dtb-half*msrt(i))
108
109
110 mx2 =msrt(i)+two*dmelrt(i)
111 dt(i)=dtfacs*
112 . mx2 /
max(em15,sqrt(xcm(i)*xcm(i)+mx2*xkm(i))+xcm(i))
113 dt(i)=dtmins
114 ENDDO
115
116 DO i=jft,jlt
117 IF(off(i)<=zero) cycle
118 IF(dt(i)<dt2t) THEN
119 dt2t=dt(i)
120 neltst =ixr(nixr,i)
121 ityptst=6
122 ENDIF
123 ENDDO
124
125 ENDIF
126
127 RETURN