34
35
36
39
40
41
42#include "implicit_f.inc"
43
44
45
46 INTEGER NSN, NRTM,IRTL(*),JCODV(*),ISEGM(*),IRECTM(4,*),NMN,MSR(*),NOINT
47 my_real mcount(*),nodvars(*),nodvarm(*),ncount(*)
48 TYPE(t_segvar),TARGET :: SEGVAR
49
50
51
52#include "com01_c.inc"
53
54
55
56 INTEGER NIR, I, J, II, L, JJ,KVAR,SEGAD,ADS,ADM,PB,TEST
57 my_real,
DIMENSION(:),
POINTER :: ptr
58
59 test=0
60 nir=2
61 IF(n2d==0)nir=4
62
63 DO kvar=1,
ale%GLOBAL%NVCONV
64
65 SELECT CASE(kvar)
66 CASE(1)
67 ptr(1:) => segvar%RHO(1:)
68 CASE(2)
69 ptr(1:) => segvar%EINT(1:)
70 CASE(3)
71 ptr(1:) => segvar%RK(1:)
72 CASE(4)
73 ptr(1:) => segvar%RE(1:)
74 CASE(5)
75 ptr(1:) => segvar%UVAR(1:)
76 END SELECT
77
78 DO i=1,nrtm
79 ptr(isegm(i))=zero
80 ENDDO
81
82 ENDDO
83
84 DO i=1,nrtm
85 mcount(i)=zero
86 ENDDO
87
88 DO ii=1,nsn
89 l=irtl(ii)
90 mcount(l)=mcount(l)+one
91 ENDDO
92
93 DO kvar=1,
ale%GLOBAL%NVCONV
94
95 SELECT CASE(kvar)
96 CASE(1)
97 ptr(1:) => segvar%RHO(1:)
98 CASE(2)
99 ptr(1:) => segvar%EINT(1:)
100 CASE(3)
101 ptr(1:) => segvar%RK(1:)
102 CASE(4)
103 ptr(1:) => segvar%RE(1:)
104 CASE(5)
105 ptr(1:) => segvar%UVAR(1:)
106 END SELECT
107
108 DO ii=1,nsn
109 l=irtl(ii)
110 ads=
ale%GLOBAL%NVCONV*(ii-1)+kvar
111 ptr(isegm(l))=ptr(isegm(l))+nodvars(ads)
112 ENDDO
113
114 ENDDO
115
116
117 pb=0
118 DO i=1,nrtm
119 IF(mcount(i)==zero)pb=1
120 ENDDO
121 IF(pb==1)THEN
122 DO i=1,nmn
123
124 ncount(i)=zero
125 ENDDO
126 DO ii=1,nsn
127 l=irtl(ii)
128 DO jj=1,nir
129 ncount(irectm(jj,l))= ncount(irectm(jj,l))+1
130 ENDDO
131 ENDDO
132 DO kvar=1,
ale%GLOBAL%NVCONV
133 DO i=1,nmn
134 adm=
ale%GLOBAL%NVCONV*(i-1)+kvar
135 nodvarm(adm)=zero
136 ENDDO
137 DO ii=1,nsn
138 l=irtl(ii)
139 ads=
ale%GLOBAL%NVCONV*(ii-1)+kvar
140 DO jj=1,nir
141 adm=
ale%GLOBAL%NVCONV*(irectm(jj,l)-1)+kvar
142 nodvarm(adm)=nodvarm(adm)+nodvars(ads)
143 ENDDO
144 ENDDO
145 ENDDO
146 DO kvar=1,
ale%GLOBAL%NVCONV
147 DO i=1,nmn
148 adm=
ale%GLOBAL%NVCONV*(i-1)+kvar
149 IF(ncount(i)>zero)THEN
150 nodvarm(adm)=nodvarm(adm)/ncount(i)
151 ENDIF
152 ENDDO
153 ENDDO
154 ENDIF
155
156 DO kvar=1,
ale%GLOBAL%NVCONV
157
158 SELECT CASE(kvar)
159 CASE(1)
160 ptr(1:) => segvar%RHO(1:)
161 CASE(2)
162 ptr(1:) => segvar%EINT(1:)
163 CASE(3)
164 ptr(1:) => segvar%RK(1:)
165 CASE(4)
166 ptr(1:) => segvar%RE(1:)
167 CASE(5)
168 ptr(1:) => segvar%UVAR(1:)
169 END SELECT
170
171 DO i=1,nrtm
172 segad=
ale%GLOBAL%NVCONV*(isegm(i)-1)+kvar
173 IF(mcount(i)>zero)THEN
174 ptr(isegm(i))=ptr(isegm(i))/mcount(i)
175 ELSE
176 ptr(isegm(i))=zero
177 l=0
178 DO jj=1,nir
179 ii=irectm(jj,i)
180 adm=
ale%GLOBAL%NVCONV*(ii-1)+kvar
181 IF(ncount(ii)>zero)THEN
182 ptr(isegm(i))=ptr(isegm(i))+nodvarm(adm)
183 l=l+1
184 ENDIF
185 ENDDO
186 IF(l>0)THEN
187 ptr(isegm(i))=ptr(isegm(i))/float(l)
188 ELSE
189
190 test=test+1
191
192
193
194 ENDIF
195 ENDIF
196
197 ENDDO
198 ENDDO
199
200
201
202
203 RETURN