34
35
36
37 USE elbufdef_mod
38 use element_mod , only : nixc
39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "param_c.inc"
47
48
49
50 INTEGER IHBE,NEL,NPT,JJ,MLW,ITY,NLAY,NPTR,NPTS,
51 .IXC(NIXC,*),IPM(NPROPMI,*),IGEO(NPROPGI,*)
53 . wa(*)
54 TYPE (ELBUF_STRUCT_) , TARGET :: ELBUF_TAB
55
56
57
58 INTEGER I,II,I1,IPT,IL,IR,IS,IT,
59 . NUVAR,IGTYP,NFT, NBX, IMX,NPTT
61 . fac,aa,var(200),func(6)
62 TYPE(BUF_MAT_) ,POINTER :: MBUF
63
64
65 IF (ity == 3 .AND. ihbe == 11) THEN
66 fac = fourth
67 ENDIF
68
69 IF (ity == 7 .AND. ihbe == 11) THEN
70 fac = third
71 ENDIF
72
73
74 IF (ihbe == 23) THEN
75
76 ELSEIF (ihbe == 11) THEN
77 IF (mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.mlw>=33) THEN
78 nuvar = 0
79 DO i=1,nel
80 nuvar =
max(nuvar,ipm(8,ixc(1,nft+1)))
81 ENDDO
82 igtyp = igeo(11,ixc(6,nft+1))
83 ENDIF
84
85 ii = nbx - 19
86 i1 = (ii -1)*nel
87 DO i=1,nel
88 aa = zero
89 IF (mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.mlw>=33) THEN
90
91 IF (nlay > 1) THEN
92 it = 1
93 DO ipt=1,nlay
94 DO ir=1,nptr
95 DO is=1,npts
96 mbuf => elbuf_tab%BUFLY(ipt)%MAT(1,1,it)
97 var(ipt) = var(ipt) + mbuf%VAR(i1 + i )*fac
98 IF (var(ipt) >= aa) aa = var(ipt)
99 ENDDO
100 ENDDO
101 ENDDO
102 ELSE
103 il = 1
104 nptt = elbuf_tab%NPTT
105 DO ipt=1,nptt
106 var(ipt) = zero
107 DO ir=1,nptr
108 DO is=1,npts
109 mbuf => elbuf_tab%BUFLY(il)%MAT(1,1,ipt)
110 var(ipt) = var(ipt) + mbuf%VAR(i1 + i )*fac
111 IF (var(ipt) >= aa) aa = var(ipt)
112 ENDDO
113 ENDDO
114 ENDDO
115 ENDIF
116
117 IF(imx == 0)THEN
118 wa(jj +1) = var(iabs(npt)/2 + 1)
119 ELSE
120 wa(jj + 1) = aa
121 ENDIF
122 jj = jj + 1
123 ENDIF
124 ENDDO
125 ELSE
126
127 ENDIF
128
129 RETURN