31 . ITHGRP,NTHGRP2,WA_SIZE,INDEX_WA_SPRING,SITHBUF)
39#include "implicit_f.inc"
49 INTEGER,
INTENT(IN) :: SITHBUF
50 INTEGER IPARG(NPARG,*),ITHBUF(*),IXR(NIXR,*),
51 . igeo(npropgi,*),ithgrp(nithgr,*),nthgrp2
52 INTEGER,
INTENT(inout) :: WA_SIZE
53 INTEGER,
DIMENSION(2*NTHGRP2+1),
INTENT(inout) :: INDEX_WA_SPRING
55 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
66 INTEGER :: II,,N,IH,NG,ITY,MTE,K,IP,L,
67 . lwa,nel,nft,iprop,igtyp,j,jj(6)
68 INTEGER :: NN,IAD,IADV,NVAR,ITYP,NITER,J_FIRST
69 INTEGER,
DIMENSION(NTHGRP2) :: INDEX_RESSORT
74 . v1,v2,v3,e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z
76 TYPE(g_bufel_) ,
POINTER :: GBUF
97 index_ressort(1:nthgrp2) = 0
111 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
114 IF (ih >= iad+nn)
GOTO 666
118 gbuf => elbuf_tab(ng)%GBUF
123 igtyp = igeo(11,iprop)
128 jj(k) = (k-1)*nel + 1
141 ii = ((ih-1) - iad)*nvar
142 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
146 IF (ih > iad+nn)
GOTO 666
147 wa_size = wa_size + nvar + 1
150 ELSEIF (igtyp == 26)
THEN
159 ii = ((ih-1) - iad)*nvar
160 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
164 IF (ih > iad+nn)
GOTO 666
165 wa_size = wa_size + nvar + 1
168 ELSEIF (igtyp == 27)
THEN
177 ii = ((ih-1) - iad)*nvar
178 DO WHILE (ithbuf(ih+nn) /= ispmd .AND.
182 IF (ih > iad+nn)
GOTO 666
183 wa_size = wa_size + nvar + 1
186 ELSEIF( igtyp == 12)
THEN
195 ii = ((ih-1) - iad)*nvar
196 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
201 IF (ih > iad+nn)
GOTO 666
202 wa_size = wa_size + nvar + 1
205 ELSEIF (igtyp == 8 .OR. igtyp == 13 .OR. igtyp == 25
206 . .OR. igtyp == 23 )
THEN
216 ii = ((ih-1) - iad)*nvar
217 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
221 IF (ih > iad+nn)
GOTO 666
222 wa_size = wa_size + nvar + 1
225 ELSEIF (igtyp >= 29)
THEN
226 IF (igtyp <= 31 .OR. igtyp == 35 .OR. igtyp == 36. or.
237 ii = ((ih-1) - iad)*nvar
238 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih<iad+nn)
242 wa_size = wa_size + nvar + 1
245 ELSEIF (igtyp == 32)
THEN
255 ii = ((ih-1) - iad)*nvar
256 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
260 IF (ih > iad+nn)
GOTO 666
264 ELSEIF (igtyp == 33 .OR. igtyp == 45)
THEN
274 ii = ((ih-1) - iad)*nvar
275 DO WHILE (ithbuf(ih+nn) /= ispmd .AND. ih < iad+nn)
279 IF (ih > iad+nn)
GOTO 666
280 wa_size = wa_size + nvar + 1
289 index_ressort(niter) = wa_size
297 IF(bool.EQV..true.)
THEN
298 IF( index_ressort(i)/=0 )
THEN
308 index_wa_spring(j) = index_ressort(j_first)
310 index_wa_spring(j) = j_first
311 DO i=j_first+1,nthgrp2
312 IF( index_ressort(i)-index_ressort(i-1)>0 )
THEN
316 index_wa_spring(j) = i
320 index_wa_spring(2*nthgrp2+1) = j