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