37
38
39
41 USE elbufdef_mod
42 use element_mod , only : nixs
43
44
45
46#include "implicit_f.inc"
47
48
49
50#include "vect01_c.inc"
51#include "com01_c.inc"
52#include "param_c.inc"
53
54
55
56
58 . pm(npropm,*)
59 INTEGER IPARG(NPARG,*),NC(5,*),IXS(NIXS,*)
60 INTEGER NUMEL,IFUNC
61 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
62
63 INTEGER I,J,N,IC,IL,IL_OLD,NG,NEL,MLW,JTURB,MT,II(6)
64
66 . off, p, vonm2, vonm, s1, s2, s3, VALUE
67 REAL R4
68 TYPE(G_BUFEL_) ,POINTER :: GBUF
69 TYPE(L_BUFEL_) ,POINTER :: LBUF
70 TYPE(BUF_MAT_) ,POINTER :: MBUF
71
72 il_old = -1
73 VALUE = zero
74 DO ic=1,numel
75 il = nc(5,ic)
76 IF(il/=il_old)THEN
77 il_old = il
78
79 DO 490 ng=1,ngroup
81 2 mlw ,nel ,nft ,iad ,ity ,
82 3 npt ,jale ,ismstr ,jeul ,jtur ,
83 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
84 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
85 6 irep ,iint ,igtyp ,israt ,isrot ,
86 7 icsen ,isorth ,isorthg ,ifailure,jsms )
87 IF (ity/=1) GOTO 490
88 IF (nel+nft<il) GOTO 490
89
90
91
92 gbuf => elbuf_tab(ng)%GBUF
93 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
94 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
95 i = il - nft
96 llt = nel
97 jturb=iparg(12,ng)*(iparg(7,ng)+iparg(11,ng))
98
99 n = i + nft
100 off = gbuf%OFF(i)
101
102 DO j=1,6
103 ii(j) = nel*(j-1)
104 ENDDO
105
106
107 IF (ifunc==1 .AND. gbuf%G_PLA > 0) THEN
108 VALUE = gbuf%PLA(i)
109
110 ELSEIF (ifunc == 2) THEN
111 VALUE = gbuf%RHO(i)
112
113 ELSEIF (ifunc == 3) THEN
114 VALUE = gbuf%EINT(i)
115
116 ELSEIF(ifunc==4 .AND. jthe > 0) THEN
117 VALUE = gbuf%TEMP(i)
118
119 ELSEIF(ifunc==6.OR.ifunc==7)THEN
120 p = - (gbuf%SIG(ii(1)+i)
121 . + gbuf%SIG(ii(2)+i)
122 . + gbuf%SIG(ii(3)+i)) / three
123 VALUE = p
124 IF (ifunc==7) THEN
125 s1 = gbuf%SIG(ii(1)+i) + p
126 s2 = gbuf%SIG(ii(2)+i) + p
127 s3 = gbuf%SIG(ii(3)+i) + p
128 vonm2 = three*(gbuf%SIG(ii(4)+i)**2 +
129 . gbuf%SIG(ii(5)+i)**2 +
130 . gbuf%SIG(ii(6)+i)**2 +
131 . half*(s1*s1+s2*s2+s3*s3))
132 vonm= sqrt(vonm2)
133 VALUE = vonm
134 ENDIF
135
136 ELSEIF (ifunc==8 . and. jturb/=0) THEN
137
138 VALUE = gbuf%RK(i)
139 ELSEIF (ifunc==9) THEN
140
141 IF((mlw==6 .OR. mlw==17).AND.jturb/=0)THEN
142 mt=ixs(1,n)
143 VALUE=pm(81,mt)*gbuf%RK(i)**2/
144 .
max(em15,gbuf%RE(i))
145 ELSEIF (mlw==46 .OR. mlw==47)THEN
146 VALUE = mbuf%VAR(i)
147 ELSE
148 VALUE = zero
149 ENDIF
150
151 ELSEIF(ifunc==10)THEN
152
153 IF(mlw==6 .OR. mlw==17)THEN
154 VALUE = lbuf%VK(i)
155 ELSEIF(mlw==46 .OR. mlw==47)THEN
156 VALUE = mbuf%VAR(i)
157 ELSE
158 VALUE = zero
159 ENDIF
160
161 ELSEIF(ifunc>=14.AND.ifunc<=19)THEN
162 VALUE = gbuf%SIG(ii(ifunc - 13) + i)
163 ELSE
164 VALUE = zero
165 ENDIF
166 GOTO 500
167
168 490 CONTINUE
169 500 CONTINUE
170 ENDIF
171
172 r4 = VALUE
174 ENDDO
175
176 RETURN
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
void write_r_c(float *w, int *len)