32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "com01_c.inc"
40#include "com04_c.inc"
41#include "inter22.inc"
42#include "param_c.inc"
43
44
45
46 INTEGER, INTENT(IN) :: SIZE_NALE
47 INTEGER, INTENT(IN) :: SIZE_NPBY
48 INTEGER, DIMENSION(SIZE_NALE), INTENT(IN) :: NALE
49 INTEGER, DIMENSION(NNPBY,SIZE_NPBY), INTENT(IN) :: NPBY
50 my_real,
DIMENSION(3,NUMNOD),
INTENT(INOUT) :: a,v,ar
51 my_real,
DIMENSION(NUMNOD),
INTENT(INOUT) :: ms,in,ms_2d
52
53
54
55 INTEGER :: N,I,MSR
57
58
59
60
61
62
63
64 IF(n2d == 0) THEN
65
66 DO n=1,numnod
67 IF(ms(n)>zero) THEN
68 rtmp = one / ms(n)
69 a(1,n) = a(1,n) * rtmp
70 a(2,n) = a(2,n) * rtmp
71 a(3,n) = a(3,n) * rtmp
72 ELSE
73 a(1,n) = zero
74 a(2,n) = zero
75 a(3,n) = zero
76 IF(nmult/=0) THEN
77 v(1,n) = zero
78 v(2,n) = zero
79 v(3,n) = zero
80 ENDIF
81 ENDIF
82 ENDDO
83
84 ELSE
85 DO i=1,nrbody
86 msr = npby(1,i)
87 IF(msr>0) THEN
88 ms(msr) = ms_2d(msr)
89 ENDIF
90 ENDDO
91
92 DO n=1,numnod
93 IF(ms(n)>zero) THEN
94 rtmp = one / ms(n)
95 a(1,n) = a(1,n) * rtmp
96 a(2,n) = a(2,n) * rtmp
97 a(3,n) = a(3,n) * rtmp
98 ELSE
99 a(1,n) = zero
100 a(2,n) = zero
101 a(3,n) = zero
102 IF(nmult/=0) THEN
103 v(1,n) = zero
104 v(2,n) = zero
105 v(3,n) = zero
106 ENDIF
107 ENDIF
108 ENDDO
109
110 ENDIF
111
112
113
114
115 IF (iroddl/=0) THEN
116
117 DO n=1,numnod
118 IF(in(n)>zero) THEN
119 rtmp = one / in(n)
120 ar(1,n) = ar(1,n) * rtmp
121 ar(2,n) = ar(2,n) * rtmp
122 ar(3,n) = ar(3,n) * rtmp
123 ELSE
124 ar(1,n) = zero
125 ar(2,n) = zero
126 ar(3,n) = zero
127 ENDIF
128 ENDDO
129
130 ENDIF
131
132
133
134
135 IF(int22>0)THEN
136
137 DO n=1,numnod
138 IF(nale(n)/=0)THEN
139 a( 1:3,n) = zero
140 ar(1:3,n) = zero
141 ms(n) = zero
142 ENDIF
143 ENDDO
144
145 ENDIF
146
147
148 RETURN