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