33
34
35
36#include "implicit_f.inc"
37#include "comlock.inc"
38
39
40
41#include "mvsiz_p.inc"
42
43
44
45 INTEGER, INTENT(IN) :: NEL
46
48 . ms(*), rho(*),volu(*),
49 . msnf(*),off(*)
50 INTEGER NC1(*),NC2(*),NC3(*),NC4(*),NC5(*),NC6(*),NC7(*),NC8(*)
51 INTEGER NVC
52
53
54
55
56
57
58 INTEGER I,IFLAG
59
61 INTEGER NVC1,NVC2,NVC3,NVC4,NVC5,NVC6,NVC7,NVC8
62
63 nvc1 = nvc / 128
64 nvc2 = (nvc-nvc1*128) / 64
65 nvc3 = (nvc-nvc1*128-nvc2*64) / 32
66 nvc4 = (nvc-nvc1*128-nvc2*64-nvc3*32)/16
67 nvc5 = (nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16)/8
68 nvc6 = (nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16-nvc5*8)/4
69 nvc7 = (nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16-nvc5*8-nvc6*4)/2
70 nvc8 = nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16-nvc5*8-nvc6*4-nvc7*2
71
72 DO i=1,nel
73 dmass(i)=one_over_8*rho(i)*volu(i)*off(i)
74 ENDDO
75
76#include "lockon.inc"
77 IF(nvc1==0)THEN
78#include "vectorize.inc"
79 DO i=1,nel
80 ms(nc1(i))=ms(nc1(i)) + dmass(i)
81 msnf(nc1(i))=msnf(nc1(i)) + dmass(i)
82 ENDDO
83 ELSE
84 DO i=1,nel
85 ms(nc1(i))=ms(nc1(i)) + dmass(i)
86 msnf(nc1(i))=msnf(nc1(i)) + dmass(i)
87 ENDDO
88 ENDIF
89
90 IF(nvc2==0)THEN
91#include "vectorize.inc"
92 DO i=1,nel
93 ms(nc2(i))=ms(nc2(i)) + dmass(i)
94 msnf(nc2(i))=msnf(nc2(i)) + dmass(i)
95 ENDDO
96 ELSE
97 DO i=1,nel
98 ms(nc2(i))=ms(nc2(i)) + dmass(i)
99 msnf(nc2(i))=msnf(nc2(i)) + dmass(i)
100 ENDDO
101 ENDIF
102
103 IF(nvc3==0)THEN
104#include "vectorize.inc"
105 DO i=1,nel
106 ms(nc3(i))=ms(nc3(i)) + dmass(i)
107 msnf(nc3(i))=msnf(nc3(i)) + dmass(i)
108 ENDDO
109 ELSE
110 DO i=1,nel
111 ms(nc3(i))=ms(nc3(i)) + dmass(i)
112 msnf(nc3(i))=msnf(nc3(i)) + dmass(i)
113 ENDDO
114 ENDIF
115
116 IF(nvc4==0)THEN
117#include "vectorize.inc"
118 DO i=1,nel
119 ms(nc4(i))=ms(nc4(i)) + dmass(i)
120 msnf(nc4(i))=msnf(nc4(i)) + dmass(i)
121 ENDDO
122 ELSE
123 DO i=1,nel
124 ms(nc4(i))=ms(nc4(i)) + dmass(i)
125 msnf(nc4(i))=msnf(nc4(i)) + dmass(i)
126 ENDDO
127 ENDIF
128
129 IF(nvc5==0)THEN
130#include "vectorize.inc"
131 DO i=1,nel
132 ms(nc5(i))=ms(nc5(i)) + dmass(i)
133 msnf(nc5(i))=msnf(nc5(i)) + dmass(i)
134 ENDDO
135 ELSE
136 DO i=1,nel
137 ms(nc5(i))=ms(nc5(i)) + dmass(i)
138 msnf(nc5(i))=msnf(nc5(i)) + dmass(i)
139 ENDDO
140 ENDIF
141
142 IF(nvc6==0)THEN
143#include "vectorize.inc"
144 DO i=1,nel
145 ms(nc6(i))=ms(nc6(i)) + dmass(i)
146 msnf(nc6(i))=msnf(nc6(i)) + dmass(i)
147 ENDDO
148 ELSE
149 DO i=1,nel
150 ms(nc6(i))=ms(nc6(i)) + dmass(i)
151 msnf(nc6(i))=msnf(nc6(i)) + dmass(i)
152 ENDDO
153 ENDIF
154
155 IF(nvc7==0)THEN
156#include "vectorize.inc"
157 DO i=1,nel
158 ms(nc7(i))=ms(nc7(i)) + dmass(i)
159 msnf(nc7(i))=msnf(nc7(i)) + dmass(i)
160 ENDDO
161 ELSE
162 DO i=1,nel
163 ms(nc7(i))=ms(nc7(i)) + dmass(i)
164 msnf(nc7(i))=msnf(nc7(i)) + dmass(i)
165 ENDDO
166 ENDIF
167
168 IF(nvc8==0)THEN
169#include "vectorize.inc"
170 DO i=1,nel
171 ms(nc8(i))=ms(nc8(i)) + dmass(i)
172 msnf(nc8(i))=msnf(nc8(i)) + dmass(i)
173 ENDDO
174 ELSE
175 DO i=1,nel
176 ms(nc8(i))=ms(nc8(i)) + dmass(i)
177 msnf(nc8(i))=msnf(nc8(i)) + dmass(i)
178 ENDDO
179 ENDIF
180
181#include "lockoff.inc"
182 RETURN