35
36
37
39 USE elbufdef_mod
40
41
42
43#include "implicit_f.inc"
44
45
46
47#include "vect01_c.inc"
48#include "com01_c.inc"
49#include "sphcom.inc"
50#include "task_c.inc"
51#include "param_c.inc"
52
53
54
55 INTEGER IPARG(NPARG,*),ITHBUF(*),KXSP(NISP,*),NOD2SP(*)
56 INTEGER, INTENT(in) :: NTHGRP2
57 INTEGER, DIMENSION(NITHGR,*), INTENT(in) ::
58
60 . wa(*),spbuf(nspbuf,*),pm(npropm,*)
61
62 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET ::
63 . ELBUF_TAB
64
65
66
67 INTEGER II,JJ, I, J, N, IH, NG, MTE,
68 . K, IST, IP, L, LWA, NEL,KK(6)
69 INTEGER :: NITER,IADR,NN,IADV,NVAR,ITYP,IJK
70
72 . wwa(100)
73
74 TYPE(G_BUFEL_) ,POINTER :: GBUF
75 TYPE(L_BUFEL_) ,POINTER :: LBUF
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128 ijk = 0
129 DO niter=1,nthgrp2
130 ityp=ithgrp(2,niter)
131 nn =ithgrp(4,niter)
132 iadr =ithgrp(5,niter)
134 iadv=ithgrp(7,niter)
135 ii=0
136 IF(ityp==51)THEN
137
138 ii=0
139 ih=iadr
140
141 DO WHILE((ithbuf(ih+nn)/=ispmd).AND.(ih<iadr+nn))
142 ih = ih + 1
143 ENDDO
144 IF (ih>=iadr+nn) GOTO 666
145 DO ng=1,ngroup
146 ity=iparg(5,ng)
147
148 IF(ity==51.OR.ity==52) THEN
150 2 mte ,nel ,nft ,iad ,ity ,
151 3 npt ,jale ,ismstr ,jeul ,jtur ,
152 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
153 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
154 6 irep ,iint ,igtyp ,israt ,isrot ,
155 7 icsen ,isorth ,isorthg ,ifailure,jsms )
156 gbuf => elbuf_tab(ng)%GBUF
157 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
158
159 DO i=1,6
160 kk(i) = nel*(i-1)
161 ENDDO
162
163 DO i=1,nel
164 n=i+nft
165 jj = 6*(i-1)
166 k=ithbuf(ih)
167 ip=ithbuf(ih+nn)
168
169 IF (k==n)THEN
170 ih=ih+1
171
172
173 ii = ((ih-1) - iadr)*
nvar
174 DO WHILE((ithbuf(ih+nn)/=ispmd).AND.(ih<iadr+nn))
175 ih = ih + 1
176 ENDDO
177 IF(ih>iadr+nn) GOTO 666
178
179 DO l=1,100
180 wwa(l)=zero
181 ENDDO
182
183 wwa(1) = gbuf%OFF(i)
184 wwa(8) = gbuf%EINT(i)
185 wwa(9) = gbuf%RHO(i)
186
187 wwa(10)= spbuf
188 wwa(11)= gbuf%VOL(i)
189 wwa(2 )= gbuf%SIG(kk(1)+i)
190 wwa(3 )= gbuf%SIG(kk(2)+i)
191 wwa(4 )= gbuf%SIG(kk(3)+i)
192 wwa(5 )= gbuf%SIG(kk(4)+i)
193 wwa(6 )= gbuf%SIG(kk(5)+i)
194 wwa(7 )= gbuf%SIG(kk(6)+i)
195
196 GO TO (150,102,102,104,105,106,104,104,104,110,
197 . 106,150,150,114,150,104,106,118,150,120,
198 . 110,102,102,124,150,104,150,150,104,104,
199 . 104,104,104,104,104,104,104
200 . 104,104,104,104,104,104,104,104,104,104),mte
201 GO TO 150
202 102 wwa(12)=gbuf%PLA(i)
203 GO TO 150
204 104 CONTINUE
205 IF (gbuf%G_PLA/=0) wwa(1
206 IF (gbuf%G_EPSD/=0)wwa(14)=gbuf%EPSD(i)
207 IF (jthe /= 0) wwa(13)=gbuf%TEMP(i)
208 GOTO 150
209 105 wwa(31)=gbuf%BFRAC(i)
210 GOTO 150
211 106 IF (jthe /= 0) wwa(13)=lbuf%TEMP(i)
212 wwa(26)=lbuf%RK(i)
213 wwa(27)=lbuf%RE(i)
214 GOTO 150
215 110 wwa(30)=gbuf%PLA(i)
216 GO TO 150
217 114 wwa(32)=lbuf%PLA(i)
218 wwa(33)=lbuf%SIGF(i)
219 wwa(28)=lbuf%EPSF(i)
220 wwa(15)=lbuf%DAM(kk(1)+i)
221 wwa(16)=lbuf%DAM(kk(2)+i)
222 wwa(17)=lbuf%DAM(kk(3)+i)
223 wwa(18)=lbuf%DAM(kk(4)+i)
224 wwa(34)=lbuf%DAM(kk(5)+i)
225 GOTO 150
226 118 IF (jthe /= 0) wwa(13)= lbuf%TEMP
227 GOTO 150
228 120 wwa(12)=zero
229 wwa(13)=zero
230 GOTO 150
231 124 wwa(19)=lbuf%DAM(kk(1)+i)+lbuf%DAM(kk(2)+i)+lbuf%DAM(kk(3)+i)
232 wwa(20)=lbuf%SIGA(kk(1)+i)
233 wwa(21)=lbuf%SIGA(kk(2)+i)
234 wwa(22)=lbuf%SIGA(kk(3)+i)
235 wwa(23)=lbuf%CRAK(kk(1)+i)+lbuf%CRAK(kk(2)+i)+lbuf%CRAK(kk(3)+i)
236 wwa(24)=lbuf%DSUM(i)
237 wwa(25)=lbuf%VK(i)
238 150 CONTINUE
239
240 wwa(41)=spbuf(1,k)
241
242 DO l=iadv,iadv+
nvar-1
243 k=ithbuf(l
244 ijk=ijk+1
245 wa(ijk)=wwa(k)
246 ENDDO
247 ijk = ijk + 1
248 wa(ijk)= ii
249 ENDIF
250 ENDDO
251 ENDIF
252 ENDDO
253 666 continue
254
255 ENDIF
256 ENDDO
257
258
259 RETURN
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
integer function nvar(text)