34
35
36
38
39
40
41#include "implicit_f.inc"
42#include "comlock.inc"
43
44
45
46#include "mvsiz_p.inc"
47
48
49
50#include "sms_c.inc"
51
52
53
54 INTEGER JLT, NOINT,
55 . IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ),IX4(MVSIZ),NSVG(MVSIZ),
56 . NODNX_SMS(*)
58 . h(4,mvsiz), stif(mvsiz), vis(mvsiz), stf_mom(mvsiz),
59 . dmint2(4,*), dti
60
61
62
63 INTEGER I, IG, NISKYL1, NISKYL, NN
65 . mas, dts, masm, fac
66
67 DO i=1,jlt
68 dmint2(1,i)=zero
69 dmint2(2,i)=zero
70 dmint2(3,i)=zero
71 dmint2(4,i)=zero
72
73 IF(nsvg(i)<=0) cycle
74 IF((idtmins_int==0.AND.nodnx_sms(nsvg(i))+
75 . nodnx_sms(ix1(i))+
76 . nodnx_sms(ix2(i))+
77 . nodnx_sms(ix3(i))+
78 . nodnx_sms(ix4(i))==0) .OR.
79 . stif(i)==zero) THEN
80 cycle
81 END IF
82
83 IF(idtmins_int==0.AND.nodnx_sms(nsvg(i))+
84 . nodnx_sms(ix1(i))+
85 . nodnx_sms(ix2(i))+
86 . nodnx_sms(ix3(i))+
87 . nodnx_sms(ix4(i))/=0)THEN
88 dts = dtmins/dtfacs
90 ELSE
91 dts = dtmins_int/dtfacs_int
92 dti=
min(dti,dtmins_int)
93 END IF
94
95 IF(ix4(i)/=ix3(i)) THEN
96 mas = half * dts * ( dts * stif(i) + vis(i) )
97 masm= half * dts * dts *stf_mom(i)
98 mas = fourth*mas+masm
99 dmint2(1,i)=mas
100 dmint2(2,i)=mas
101 dmint2(3,i)=mas
102 dmint2(4,i)=mas
103 ELSE
104 mas = half * dts * ( dts * stif(i) + vis(i) )
105 masm= half * dts * dts *stf_mom(i)
106 mas = third*mas+masm
107 dmint2(1,i)=mas
108 dmint2(2,i)=mas
109 dmint2(3,i)=mas
110 ENDIF
111
112 ENDDO
113
114 RETURN