38
39
40
41 USE elbufdef_mod
44 USE matparam_def_mod
45 use element_mod , only : nixc,nixtg
46
47
48
49#include "implicit_f.inc"
50
51
52
53#include "mvsiz_p.inc"
54#include "com01_c.inc"
55#include "com04_c.inc"
56#include "task_c.inc"
57#include "param_c.inc"
58
59
60
61 INTEGER IPARG(NPARG,*),ITHBUF(*),IXC(NIXC,*),
62 . IXTG(NIXTG,*),IPM(NPROPMI,*),IGEO(NPROPGI,*)
63 INTEGER, INTENT(in) :: NTHGRP2
64 INTEGER, DIMENSION(NITHGR,*), INTENT(in) :: ITHGRP
66 . wa(*),pm(npropm,*),rthbuf(*),thke(*)
67 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
68 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(IN) :: MATPARAM_TAB
69
70
71
72 INTEGER I,J,K,L,II,N, IH, NG, ITY, MTE, M5,M8,
73 . NPT,MPT,NPG,NPTR,NPTS,NPTT,NLAY,IP,IR,IS,IT,IL,IPT,
74 . NEL,NFT,I1,IUV,IAA,IADR,
75 . ,NU,NUVAR,NUVARV,NUVARD,IGTYP,IHBE,
76 . IFAILURE,IVISC,IPMAT,ISHPLYXFEM,IPMAT_IPLY,
77 . MAT_IPLY,ISUBSTACK,ITHK,NPT_ALL,
78 . MATLY,KK(8),IPG,IMAT,MAT_ORTH, IDRAPE
79 INTEGER PID(MVSIZ),MAT(MVSIZ)
80 INTEGER :: NITER,IAD,NN,IADV,NVAR,ITYP,IJK
81 my_real :: wwa(50000),func(6),sig(5),sigg(5)
82 my_real ,
DIMENSION(MVSIZ) :: dam1,dam2,wpla,
83 . fail,fail1,fail2,fail3
84 my_real :: f1,f2,f3,f4,f5,f11,f22,f33,f44,f55,cp,sp,mm1,mm2,mm3,
85 . mm11,mm22,mm33,d1,d2,d11,d12,d22,val_ly_ip,val_ly_average
86 TYPE(G_BUFEL_) ,POINTER :: GBUF
87 TYPE(L_BUFEL_) ,POINTER :: LBUF
88 TYPE(BUF_LAY_) ,POINTER :: BUFLY
89 my_real ,
DIMENSION(:),
POINTER :: uvar,dir_a
90 my_real ,
DIMENSION(:,:),
ALLOCATABLE :: var
91 TYPE (STACK_PLY) :: STACK
92
93
94
95 ijk = 0
96 DO niter=1,nthgrp2
97 ityp=ithgrp(2,niter)
98 nn =ithgrp(4,niter)
99 iad =ithgrp(5,niter)
101 iadv=ithgrp(7,niter)
102 ii=0
103 IF(ityp==3.OR.ityp==7)THEN
104! -------------------------------
105 ii=0
106 ih=iad
107
108
109 DO WHILE((ithbuf(ih+nn)/=ispmd).AND.(ih<iad+nn))
110 ih = ih + 1
111 ENDDO
112 IF (ih>=iad+nn) GOTO 666
113
114 DO ng=1,ngroup
115 ity=iparg(5,ng)
116 IF (ity == ityp) THEN
117 mte=iparg(1,ng)
118 nel=iparg(2,ng)
119 nft=iparg(3,ng)
120 npt = iparg(6,ng)
121 igtyp = iparg(38,ng)
122 istrain = iparg(44,ng)
123 ihbe = iparg(23,ng)
124 ifailure = iparg(43,ng)
125 ishplyxfem = iparg(50,ng)
126 isubstack = iparg(71,ng)
127 ithk =iparg(28,ng)
128 gbuf => elbuf_tab(ng)%GBUF
129 nptr = elbuf_tab(ng)%NPTR
130 npts = elbuf_tab(ng)%NPTS
131 nptt = elbuf_tab(ng)%NPTT
132 nlay = elbuf_tab(ng)%NLAY
133 idrape = elbuf_tab(ng)%IDRAPE
134 npg = nptr*npts
135
137
138 DO i=1,8
139 kk(i) = nel*(i-1)
140 ENDDO
141
142
143 IF (igtyp == 51 .OR. igtyp == 52) THEN
144 npt_all = 0
145 DO ipt=1,nlay
146 npt_all = npt_all + elbuf_tab(ng)%BUFLY(ipt)%NPTT
147 ENDDO
148 IF (nlay == 1) mpt =
max(1,npt_all)
149 ENDIF
150
151 ivisc = 0
152 nuvar = 0
153 nuvarv = 0
154 nuvard = 0
155
156 IF (mte /= 13 .and. mte /= 0) THEN
157
158 IF ((mte>=29.AND.mte<=31).OR.
159 . mte == 35.OR.mte == 36.OR.mte == 43.OR.
160 . mte == 44.OR.mte == 45.OR.mte == 48.OR.mte>=50) THEN
161 CONTINUE
162
163 ELSEIF (mte == 25) THEN
164
165 DO i=1,nel
166 dam1(i)=zero
167 dam2(i)=zero
168 wpla(i)=zero
169 fail(i)=zero
170 fail1(i)=zero
171 fail2(i)=zero
172 fail3(i)=zero
173 ENDDO
174
175 IF (ity == 3) THEN
176 DO i=1,nel
177 mat(i)=ixc(1,nft+i)
178 pid(i)=ixc(6,nft+i)
179 ENDDO
180 ELSE
181 DO i=1,nel
182 mat(i)=ixtg(1,nft+i)
183 pid(i)=ixtg(5,nft+i)
184 ENDDO
185 ENDIF
186
187 IF (igtyp == 11) THEN
188 ipmat = 100
189 DO n=1,mpt
190 DO i=1,nel
191 matly = igeo(ipmat+n,pid(i))
192 IF (matparam_tab(matly)%IVISC > 0) THEN
193 ivisc = 1
194 nuvarv =
max(nuvarv, matparam_tab(matly)%VISC%NUVAR)
195 END IF
196 ENDDO
197 ENDDO
198 ELSEIF (igtyp == 9 .OR. igtyp == 10) THEN
199 DO n=1,mpt
200 DO i=1,nel
201 matly=mat(i)
202 IF (matparam_tab(matly)%IVISC > 0) THEN
203 ivisc = 1
204 nuvarv =
max(nuvarv, matparam_tab(matly)%VISC%NUVAR)
205 END IF
206 ENDDO
207 ENDDO
208 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52) THEN
209 ipmat = 2 + nlay
210 DO n=1,nlay
211 DO i=1,nel
212 matly = stack%IGEO(ipmat+n,isubstack)
213 IF (matparam_tab(matlyTHEN
214 ivisc = 1
215 nuvarv =
max(nuvarv, matparam_tab(matly)%VISC%NUVAR)
216 END IF
217 ENDDO
218 ENDDO
219
220 IF (ishplyxfem > 0) THEN
221 ipmat_iply = ipmat + mpt
222 DO j=1,npt -1
223 DO i=1,nel
224 mat_iply = stack%IGEO(ipmat_iply + j ,isubstack)
225 nuvard =
max(nuvard, ipm(221,mat_iply))
226 ENDDO
227 ENDDO
228 ENDIF
229 ENDIF
230 ENDIF
231
232
233
234 DO i=1,nel
235 n=i+nft
236 k=ithbuf(ih)
237 ip=ithbuf(ih+nn)
238 iadr=ithbuf(ih+3*nn)
239
240 IF (k == n) THEN
241 ih=ih+1
242
243
244 ii = ((ih-1) - iad)*
nvar
245 DO WHILE((ithbuf(ih+nn) /= ispmd) .AND. (ih < iad+nn))
246 ih = ih + 1
247 ENDDO
248
249 IF (ih > iad+nn) GOTO 666
250
251 m5=5*(i-1)
252 m8=8*(i-1)
253
254 IF (iadr /= 0) THEN
255 cp=rthbuf(iadr)
256 sp=rthbuf(iadr+1)
257
258 f11 = gbuf%FOR(kk(1)+i)
259 f22 = gbuf%FOR(kk(2)+i)
260 f33 = gbuf%FOR(kk(3)+i)
261 f44 = gbuf%FOR(kk(4)+i)
262 f55 = gbuf%FOR(kk(5)+i)
263
264 mm11 = gbuf%MOM(kk(1)+i)
265 mm22 = gbuf%MOM(kk(2)+i)
266 mm33 = gbuf%MOM(kk(3)+i)
267
268 f1 = cp*cp*f11
269 . + sp*sp*f22
270 . + two*cp*sp*f33
271
272 f2 = sp*sp*f11
273 . + cp*cp*f22
274 . - two*cp*sp*f33
275
276 f3 =-cp*sp*f11
277 . + cp*sp*f22
278 . + (cp*cp-sp*sp )*f33
279
280 f4 =-sp*f55+cp
281 f5 = cp*f55+sp*f44
282
283 mm1 = cp*cp*mm11
284 . + sp*sp*mm22
285 . + two*cp*sp*mm33
286
287 mm2 = sp*sp*mm11
288 . + cp*cp*mm22
289 . - two*cp*sp*mm33
290
291 mm3 =-cp*sp*mm11
292 . + cp*sp*mm22
293 . + (cp*cp-sp*sp )*mm33
294 ELSE
295 f1 = gbuf%FOR(kk(1)+i)
296 f2 = gbuf%FOR(kk(2)+i)
297 f3 = gbuf%FOR(kk(3)+i)
298 f4 = gbuf%FOR(kk(4)+i)
299 f5 = gbuf%FOR(kk(5)+i)
300
301 mm1 = gbuf%MOM(kk(1)+i)
302 mm2 = gbuf%MOM(kk(2)+i)
303 mm3 = gbuf%MOM(kk(3)+i)
304 ENDIF
305 wwa(1) = f1
306 wwa(2) = f2
307 wwa(3) = f3
308 wwa(4) = f4
309 wwa(5) = f5
310 wwa(6) = mm1
311 wwa(7) = mm2
312 wwa(8) = mm3
313 wwa(9) = gbuf%EINT(i)
314 wwa(10)= gbuf%EINT(i+nel)
315 wwa(11)= gbuf%OFF(i)
316 IF (ithk > 0) THEN
317 wwa(12)= gbuf%THK(i)
318 ELSE
319 wwa(12)= thke(n)
320 ENDIF
321 wwa(13)=zero
322 wwa(14)=zero
323 wwa(15)=zero
324 wwa(16)=zero
325 wwa(17)=zero
326 wwa(18)=zero
327 wwa(19)=zero
328 wwa(20)=zero
329 wwa(21)=zero
330 wwa(22)=zero
331 IF (gbuf%G_EPSD == 0) THEN
332 wwa(23)=zero
333 ELSE
334 wwa(23)=gbuf%EPSD(i)
335 ENDIF
336 DO j = 24,50000
337 wwa(j)=zero
338 ENDDO
339
340
341
342
343 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52) )THEN
344 DO il = 1,nlay
345 bufly => elbuf_tab(ng)%BUFLY(il)
346 imat = bufly%IMAT
347 nptt = bufly%NPTT
348 k = 183 + (il-1)*5
349 sigg(1:5) = zero
350 DO it=1,nptt
351 dir_a => elbuf_tab(ng)%BUFLY(il)%LBUF_DIR(it)%DIRA
352 sig(1:5) = zero
353 DO ir=1,nptr
354 DO is=1,npts
355 lbuf => bufly%LBUF(ir,is,it)
356 DO j = 1,5
357 sig(j) = sig(j) + lbuf%SIG(kk(j) + i) / npg
358 ENDDO
359 ENDDO
360 ENDDO
361 d1 = dir_a(i)
362 d2 = dir_a(i+nel)
363 d11 = d1*d1
364 d22 = d2*d2
365 d12 = d1*d2
366 sigg(1) = sigg(1) + (d11*sig(1) + d22*sig(2) + two*d12 *sig(3)) /nptt
367 sigg(2) = sigg(2) + (d22*sig(1) + d11*sig(2) - two*d12 *sig(3)) /nptt
368 sigg(3) = sigg(3) + (d12*sig(2) + (d11-d22)*sig(3) -d12*sig(1)) /nptt
369 sigg(4) = sigg(4) + (d1 *sig(4) - d2 *sig(5)) / nptt
370 sigg(5) = sigg(5) + (d1 *sig(5) + d2 *sig(4)) / nptt
371 ENDDO
372 wwa(k + 1) =sigg(1)
373 wwa(k + 2) =sigg(2)
374 wwa(k + 3) =sigg(3)
375 wwa(k + 4) =sigg(4)
376 wwa(k + 5) =sigg(5)
377 ENDDO
378 ELSE
379 DO il = 1,nlay
380 bufly => elbuf_tab(ng)%BUFLY(il)
381 imat = bufly%IMAT
382 nptt = bufly%NPTT
383 sig(1:5) = zero
384 k = 183 + (il-1)*5
385 DO ir=1,nptr
386 DO is=1,npts
387 DO it=1,nptt
388 lbuf => bufly%LBUF(ir,is,it)
389 DO j = 1,5
390 sig(j) = sig(j) + lbuf%SIG(kk(j) + i) / (nptt*npg)
391 ENDDO
392 ENDDO
393 ENDDO
394 ENDDO
395 mat_orth = matparam_tab(imat)%ORTHOTROPY
396 IF (mat_orth == 1) THEN
397 DO j = 1,5
398 wwa(k + j) = sig(j)
399 ENDDO
400 ELSE IF (mat_orth == 2) THEN
401 dir_a => elbuf_tab(ng)%BUFLY(il)%DIRA
402 d1 = dir_a(i)
403 d2 = dir_a(i+nel)
404 d11 = d1*d1
405 d22 = d2*d2
406 d12 = d1*d2
407 wwa(k + 1) = d11*sig(1) + d22*sig(2) + two*d12 *sig(3)
408 wwa(k + 2) = d22*sig(1) + d11*sig(2) - two*d12 *sig(3)
409 wwa(k + 3) =-d12*sig(1) + d12*sig(2) +(d11-d22)*sig(3)
410 wwa(k + 4) =-d2 *sig(5) + d1 *sig(4)
411 wwa(k + 5) = d1 *sig(5) + d2 *sig(4)
412 END IF
413 ENDDO
414 ENDIF
415
416
417 DO il = 1,nlay
418 bufly => elbuf_tab(ng)%BUFLY(il)
419 imat = bufly%IMAT
420 ivisc = matparam_tab(imat)%IVISC
421 nptt = bufly%NPTT
422 IF (ivisc > 0) THEN
423 k = 30382+(il-1)*5
424 func(1:5) = zero
425 DO ir=1,nptr
426 DO is=1,npts
427 DO it=1,nptt
428 lbuf => bufly%LBUF(ir,is,it)
429 DO j = 1,5
430 func(j) = func(j) + lbuf%VISC(kk(j) + i) / nptt
431 ENDDO
432 ENDDO
433 DO j = 1,5
434 wwa(k+j) = func(j) / npg
435 ENDDO
436 ENDDO
437 ENDDO
438
439 ENDIF
440 ENDDO
441
442
443
444
445
446 IF (gbuf%G_PLA > 0) THEN
447 wwa(13) = ep30
448 wwa(14) = zero
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472 IF (nlay > 1) THEN
473 IF (npg > 1) THEN
474 DO ipt = 1,nlay
475 bufly => elbuf_tab(ng)%BUFLY(ipt)
476 IF (bufly%L_PLA > 0) THEN
477 wwa(13) =
min(wwa(13),abs(bufly%PLAPT(i)))
478 wwa(14) =
max(wwa(14),abs(bufly%PLAPT(i)))
479 ENDIF
480 ENDDO
481 ELSE
482 DO ipt = 1,nlay
483 bufly => elbuf_tab(ng)%BUFLY(ipt)
484 nptt = bufly%NPTT
485 IF (bufly%L_PLA > 0) THEN
486 func(6) = zero
487 DO it=1,nptt
488 lbuf => bufly%LBUF(1,1,it)
489 func(6) = func(6) + abs(lbuf%PLA(i))/nptt
490 ENDDO
491 wwa(13) =
min(wwa(13),func(6))
492 wwa(14) =
max(wwa(14),func(6))
493 ENDIF
494 ENDDO
495 ENDIF
496 ELSE
497 IF (npg > 1) THEN
498 bufly => elbuf_tab(ng)%BUFLY(1)
499 nptt = bufly%NPTT
500 DO it=1,nptt
501 i1 = (it-1)*nel
502 IF (bufly%L_PLA > 0) THEN
503 wwa(13) =
min(wwa(13),abs(bufly%PLAPT(i1+i)))
504 wwa(14) =
max(wwa(14),abs(bufly%PLAPT(i1+i)))
505 ENDIF
506 ENDDO
507 ELSE
508 bufly => elbuf_tab(ng)%BUFLY(1)
509 nptt = bufly%NPTT
510 DO it=1,nptt
511 lbuf => bufly%LBUF(1,1,it)
512 IF (bufly%L_PLA > 0) THEN
513 wwa(13) =
min(wwa(13),abs(lbuf%PLA(i)))
514 wwa(14) =
max(wwa(14),abs(lbuf%PLA(i)))
515 ENDIF
516 ENDDO
517 ENDIF
518 ENDIF
519
520
521
522 IF (mte == 25) THEN
523 IF (ifailure == 0)THEN
524 wwa(30279) = fail(i)
525 wwa(30280) = 100*fail(i)/npt
526 wwa(30281) = fail1(i)
527 wwa(30282) = fail2(i)
528 wwa(30283) = fail3(i)
529 ENDIF
530
531 DO ipt=1,nlay
532 IF(ipt > 99) EXIT
533 bufly => elbuf_tab(ng)%BUFLY(ipt)
534 nptt = bufly%NPTT
535 val_ly_average = zero
536 DO ir=1,nptr
537 DO is=1,npts
538 val_ly_ip = zero
539 DO it=1,nptt
540 lbuf => bufly%LBUF(ir,is,it)
541 val_ly_ip = val_ly_ip + lbuf%PLA(i)/nptt
542 ENDDO
543 val_ly_average = val_ly_average + val_ly_ip/npg
544 ENDDO
545 ENDDO
546 wwa(30283 + ipt ) = val_ly_average
547 ENDDO
548 ENDIF
549 ENDIF
550
551
552
553 IF (gbuf%G_PLANL > 0) THEN
554 bufly => elbuf_tab(ng)%BUFLY(1)
555 wwa(37855) = zero
556 nptt = bufly%NPTT
557 DO ir = 1,nptr
558 DO is = 1,npts
559 DO it = 1,nptt
560 wwa(37855) = wwa(37855) +
561 . bufly%LBUF(ir,is,it)%PLANL(i)/(nptr*npts*nptt)
562 ENDDO
563 ENDDO
564 ENDDO
565 ENDIF
566 IF (gbuf%G_EPSDNL > 0) THEN
567 bufly => elbuf_tab(ng)%BUFLY(1)
568 wwa(37856) = zero
569 nptt = bufly%NPTT
570 DO ir = 1,nptr
571 DO is = 1,npts
572 DO it = 1,nptt
573 wwa(37856) = wwa(37856) +
574 . bufly%LBUF(ir,is,it)%EPSDNL(i)/(nptr*npts*nptt)
575 ENDDO
576 ENDDO
577 ENDDO
578 ENDIF
579
580
581
582 IF ((mte>=29.AND.mte<=31).OR.
583 . mte==35.OR.mte==36.OR.mte==43.OR.
584 . mte==44.OR.mte==45.OR.mte==48.OR.mte>=50) THEN
585
586 nuvar = elbuf_tab(ng
587 ALLOCATE (var(nuvar,
max(1,mpt)))
588 var = zero
589
590 IF (mte == 58 .or. mte == 158) THEN
591 IF (nlay > 1) THEN
592 DO il=1,nlay
593 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
594 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
595 DO ir=1,nptr
596 DO is=1,npts
597 k = nptr*(is-1) + ir
598 DO it=1,nptt
599 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR
600 DO j = 1, nuvar
601 i1 = (j-1)*nel
602 IF (j==4 .OR. j==5) THEN
603 var(j,il) = var(j,il) + (exp(uvar(i1+i))-one)
604 ELSE
605 var(j,il) = var(j,il) + uvar(i1+i)/npg
606 ENDIF
607 wwa(6518 + (il-1)*60*4 + (k-1)*60 + j) =
608 . uvar
609 ENDDO
610 ENDDO
611 ENDDO
612 ENDDO
613 ENDDO
614 ELSE
615 nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT
616 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
617 DO ipt=1,nptt
618 DO ir=1,nptr
619 DO is=1,npts
620 uvar=>elbuf_tab(ng)%BUFLY(1)%MAT(ir,is,ipt)%VAR
621 k = nptr*(is-1) + ir
622 DO j = 1, nuvar
623 i1 = (j-1)*nel
624 IF (j==4 .OR. j==5) THEN
625 var(j,ipt) = var(j, ipt) + (exp(uvar(i1+i))-one)/npg
626 ELSE
627 var(j,ipt) = var(j, ipt) + uvar(i1 + i)/npg
628 ENDIF
629 wwa(6518 + (ipt-1)*60*4 + (k-1)*60 + j) =
630 . uvar(i1 + i)
631 ENDDO
632 ENDDO
633 ENDDO
634 ENDDO
635 ENDIF
636 ELSE
637 IF (nlay > 1) THEN
638 DO il=1,nlay
639 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
640 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
641 DO ir=1,nptr
642 DO is=1,npts
643 k = nptr*(is-1) + ir
644 DO it=1,nptt
645 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR
646 DO j = 1, nuvar
647 i1 = (j-1)*nel
648 var(j,il) = var(j,il) + uvar(i1+i)/npg
649 wwa(6518 + (il-1)*60*4 + (k-1)*60 + j) =
650 . uvar(i1 + i)
651 ENDDO
652 ENDDO
653 ENDDO
654 ENDDO
655 ENDDO
656 ELSE
657 nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT
658 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
659 DO ipt=1,nptt
660 DO ir=1,nptr
661 DO is=1,npts
662 uvar=>elbuf_tab(ng)%BUFLY(1)%MAT(ir,is,ipt)%VAR
663 k = nptr*(is-1) + ir
664 DO j = 1, nuvar
665 i1 = (j-1)*nel
666 var(j,ipt) = var(j, ipt) + uvar(i1 + i)/npg
667 wwa(6518 + (ipt-1)*60*4 + (k-1)*60 + j) =
668 . uvar(i1 + i)
669 ENDDO
670 ENDDO
671 ENDDO
672 ENDDO
673 ENDIF
674 ENDIF
675
677 DO j = 1, nu
678 wwa(23+j)=var(j,iabs(mpt)/2 + 1)
679 DO ipt = 1, mpt
680 IF (j <= 20) THEN
681 IF (ipt <= 5) THEN
682 iuv = 83
683 iaa = 5
684 ELSEIF(ipt > 5)THEN
685 iuv = 678
686 iaa = 94
687 ENDIF
688 ELSE
689 iuv = 2558
690 iaa = 99
691 ENDIF
692 wwa(iuv + (j - 1)*iaa + ipt) = var(j, ipt)
693 ENDDO
694 ENDDO
695
696 DEALLOCATE (var)
697 ENDIF
698
699
700
701 IF (istrain /= 0) THEN
702 wwa(15)=gbuf%STRA(kk(1)+i)
703 wwa(16)=gbuf%STRA(kk(2)+i)
704 wwa(17)=gbuf%STRA(kk(3)+i)
705 wwa(18)=gbuf%STRA(kk(4)+i)
706 wwa(19)=gbuf%STRA(kk(5)+i)
707 wwa(20)=gbuf%STRA(kk(6)+i)
708 wwa(21)=gbuf%STRA(kk(7)+i)
709 wwa(22)=gbuf%STRA(kk(8)+i)
710 ENDIF
711
712 IF(ihbe ==11.AND.
npinch > 0)
THEN
713 wwa(37848:37853) = zero
714 DO ipg=1,4
715 wwa(37847+1) = wwa(37847+1) + fourth*gbuf%EPGPINCHXZ(4*(i-1)+ipg)
716 wwa(37847+2) = wwa(37847+2) + fourth*gbuf%EPGPINCHYZ(4*(i-1)+ipg)
717 wwa(37847+3) = wwa(37847+3) + fourth*gbuf%EPGPINCHZZ(4*(i-1)+ipg
718 wwa(37847+4) = wwa(37847+4) + fourth*gbuf%FORPGPINCH(4*(i-1)+ipg)
719 wwa(37847+5) = wwa(37847+5) + fourth*gbuf%MOMPGPINCH(8*(i-1)+2*(ipg-1)+1)
720 wwa(37847+6) = wwa(37847+6) + fourth*gbuf%MOMPGPINCH(8*(i-1)+2*ipg)
721 ENDDO
722 wwa(37847+7) = gbuf%THK(i)
723 ENDIF
724
725
726 DO l=iadv,iadv+
nvar-1
727 k = ithbuf(l)
728 ijk = ijk+1
729 wa(ijk)=wwa(k)
730 ENDDO
731 ijk = ijk+1
732 wa(ijk) = ii
733
734 ENDIF
735 ENDDO
736
737 ENDIF
738 ENDIF
739 ENDDO
740
741 ENDIF
742 666 continue
743 ENDDO
744
745
746 RETURN
integer function nvar(text)