39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
57 USE elbufdef_mod
62
63
64
65#include "implicit_f.inc"
66
67
68
69#include "com01_c.inc"
70#include "com04_c.inc"
71#include "vect01_c.inc"
72#include "param_c.inc"
73#include "mvsiz_p.inc"
74
75
76
77 INTEGER IXQ(NIXQ,*),IXS(NIXS,*),ITAB(*),IPARG(NPARG,*)
78 REAL WA4(*)
80 INTEGER :: IBID
81 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
82 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECTIVITY
83
84
85
86 INTEGER IADI, IADR, I, ITYP, NINOUT, NNO, NEL, II1, II2,
87 . IR1, IR2, J, JJ, NNO_L, NNI_L, II3, II4, JJJ, NNI,
88 . IALEL,NNOD,IPOS,NGv,IDLOCv,K, IAD2
89 INTEGER IV(6), IE
90 INTEGER MLW, NG, KCVT, II, NBF, NBL, IB, ICELL, NIN, MCELL
91 TYPE(G_BUFEL_) ,POINTER :: GBUF,GBUFv
92 my_real,
ALLOCATABLE,
DIMENSION(:) :: count_vol
94 INTEGER,DIMENSION(:,:), POINTER :: pAdjBRICK
96
97
98
99
100
101
102
103
104 wa4(1:numnod) = zero
105
106 RETURN
107
108
109
110
111
112
113
114 nnod = nixs-3
115
116
117
118
119 ALLOCATE(count_vol(numnod))
120 count_vol(:) = 0
121 DO ng = 1, ngroup
122 nel =iparg(2,ng)
123 nft =iparg(3,ng)
124 ityp =iparg(5,ng)
125 ialel =iparg(7,ng)+iparg(11,ng)
126 IF(ityp/=1 .AND. ityp/=2)cycle
127 IF(ialel==0)cycle
128 gbuf => elbuf_tab(ng)%GBUF
129 DO i=1,nel
130 j = i+nft
131
132 ENDDO
133 ENDDO
134
135 DO ng = 1, ngroup
136 nel =iparg(2,ng)
137 nft =iparg(3,ng)
138 ityp =iparg(5,ng)
139 ialel =iparg(7,ng)+iparg(11,ng)
140 IF(ityp/=1 .AND. ityp/=2)cycle
141 IF(ialel==0)cycle
142 gbuf => elbuf_tab(ng)%GBUF
143 DO i=1,nel
144 lft = 1
145 llt = nel
147 1 ixs, x, ale_connectivity,grad)
148 ie =nft+i
149 iad2 = ale_connectivity%ee_connect%iad_connect(ie)
150 iv(1)=ale_connectivity%ee_connect%connected(iad2 + 1 - 1)
151 iv(2)=ale_connectivity%ee_connect%connected(iad2 + 2 - 1)
152 iv(3)=ale_connectivity%ee_connect%connected(iad2 + 3 - 1)
153 iv(4)=ale_connectivity%ee_connect%connected(iad2 + 4 - 1)
154 iv(5)=ale_connectivity%ee_connect%connected(iad2 + 5 - 1)
155 iv(6)=ale_connectivity%ee_connect%connected(iad2 + 6 - 1)
156 IF(iv(1)<=0)iv(1)=ie
157 IF(iv(2)<=0)iv(2)=ie
158 IF(iv(3)<=0)iv(3)=ie
159 IF(iv(4)<=0)iv(4)=ie
160 IF(iv(5)<=0)iv(5)=ie
161 IF(iv(6)<=0)iv(6)=ie
162 dphi(i) = zero
163
164
165
166
167
168
169 DO j=2,nnod+1
170 jj=ixs(j,nft+i)
171 k = j-1
172 wa4(jj) = wa4(jj)+ dphi(i)
173 count_vol(jj) = count_vol(jj) + 1
174 ENDDO
175 ENDDO
176 enddo
177
178
179 DO i=1,numnod
180 IF(count_vol(i)/=zero)THEN
181 wa4(i)=wa4(i)/count_vol(i)
182 ENDIF
183 ENDDO
184 DEALLOCATE(count_vol)
185
subroutine agrad3(ixs, x, ale_connectivity, grad, nel)