34
35
36
37 USE elbufdef_mod
38
39
40
41#include "implicit_f.inc"
42
43
44
45#include "com01_c.inc"
46#include "task_c.inc"
47#include "param_c.inc"
48#include "scr23_c.inc"
49
50
51
52 INTEGER IPARG(NPARG,*),ITHBUF(*),KXX(NIXX,*)
53 INTEGER, INTENT(in) :: NTHGRP2
54 INTEGER, DIMENSION(NITHGR,*), INTENT(in) :: ITHGRP
56 . geo(npropg,*),wa(*)
57
58 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
59
60
61
62 INTEGER II, I, J, N, IH, NG, ITY, MTE, NB0, NB1, NB2, NB3,
63 . NB4, NB5, NNB3, MB1, MB2, MB3, MB4, MB5, K, IST, IP, L,
64 . LWA, IMAT, IPROP, NX, IGTYP, NUVAR, NUVARN,NEL,NFT,
65 . KVAR,KVARN
66 INTEGER :: NITER,IAD,NN,IADV,NVAR,ITYP,IJK
68 . wwa(100)
69
70 TYPE(G_BUFEL_) ,POINTER :: GBUF
71
72
73
74
75 ijk = 0
76 DO niter=1,nthgrp2
77 ityp=ithgrp(2,niter)
78 nn =ithgrp(4,niter)
79 iad =ithgrp(5,niter)
81 iadv=ithgrp(7,niter)
82 ii=0
83 IF(ityp==100)THEN
84
85 ii=0
86 ih=iad
87
88 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
89 ih = ih + 1
90 ENDDO
91 IF (ih >= iad+nn) GOTO 666
92
93 DO ng=1,ngroup
94 ity=iparg(5,ng)
95 IF (ity == 100) THEN
96
97 nel=iparg(2,ng)
98 nft=iparg(3,ng)
99 gbuf => elbuf_tab(ng)%GBUF
100
101 DO i=1,nel
102 n =i+nft
103 k =ithbuf(ih)
104 IF (k == n) THEN
105 nx =kxx(3,n)
106 iprop =kxx(2,n)
107 nuvar =nint(geo(25,iprop))
108 nuvarn=nint(geo(35,iprop))
109
110 kvar = nuvar*(i-1)+1
111 kvarn = nuvarn*nx*(i-1)+1
112
113
114 nb1=1
115
116 nb2=nb1+1
117
118
119
120 mb1=1
121
122 mb2=mb1+nx
123
124 mb3=mb2+nx
125
126 mb4=mb3+nx
127
128 mb5=mb4+nx
130 DO j=1,nn
131
132
133
134 ist=ithbuf(ih+3*nn)
135 wwa(1) = gbuf%OFF(i)
136
137 CALL xth(nuvar,gbuf%VAR(kvar),nuvarn,gbuf%VARN(kvarn),wwa,
138 . nx ,2 ,ist )
139 wwa(3) =zero
140 wwa(4) =zero
141 wwa(5) =zero
142 wwa(6) =zero
143 wwa(7) =zero
144
145 CALL xth(nuvar,gbuf%VAR(kvar),nuvarn,gbuf%VARN(kvarn),wwa,
146 . nx ,8 ,ist )
147
148 wwa(9) =zero
149 wwa(10)=zero
150 wwa(11)=zero
151 wwa(12)=zero
152 wwa(13)=zero
153
154 CALL xth(nuvar,gbuf%VAR(kvar),nuvarn,gbuf%VARN(kvarn),wwa,
155 . nx ,14 ,ist )
156 wwa(15)=zero
157 wwa(16)=zero
158 DO l=iadv,iadv+
nvar-1
159 k=ithbuf(l)
160 ijk=ijk+1
161 wa(ijk)=wwa(k)
162 ENDDO
163 ih=ih+1
164 ENDDO
165 ijk = ijk + 1
166 wa(ijk) = ii
167 ENDIF
168 ENDDO
169 ENDIF
170 ENDDO
171 666 continue
172
173 ENDIF
174 ENDDO
175
176 RETURN
integer function nvar(text)
subroutine xth(nuvar, uvar, nuvarn, uvarn, wwa, nx, ii, ist)