59
60
61
62
63
64
66 USE elbufdef_mod
70 use glob_therm_mod
71
72
73
74#include "implicit_f.inc"
75
76
77
78#include "mvsiz_p.inc"
79
80
81
82#include "com04_c.inc"
83#include "param_c.inc"
84#include "scr12_c.inc"
85#include "scr17_c.inc"
86#include "scry_c.inc"
87#include "vect01_c.inc"
88
89
90
91 INTEGER NEL,NSIGI, IUSER, NSIGS
92 INTEGER IXS(NIXS,*),IPARG(*),IPARTS(*),IPART(LIPART1,*),
93 . IPM(NPROPMI,*),PTSOL(*), NPF(*),IGEO(NPROPGI,*),
94 . STRSGLOB(*),STRAGLOB(*),ORTHOGLOB(*),FAIL_INI(*),PERTURB(NPERTURB)
96 . mas(*), pm(npropm,*), x(*), geo(npropg,*),
97 . veul(lveul,*), dtelem(*),sigi(nsigs,*),skew(lskew,*),stifn(*),
98 . partsav(20,*), v(*), mss(8,*),
99 . sigsp(nsigi, *),msnf(*), mssf(8,*), wma(*),
100 . volnod(*), bvolnod(*), vns(8,*), bns(8,*), bufmat(*),
101 . mcp(*),mcps(8,*),temp(*), tf(*), mssa(*),rnoise(nperturb,*)
102 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
103 INTEGER,INTENT(IN) :: ILOADP(SIZLOADP,*)
104 my_real,
INTENT(IN) :: facload(lfacload,*)
105 TYPE(DETONATORS_STRUCT_)::DETONATORS
106 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
107 type (glob_therm_) ,intent(in) :: glob_therm
108
109
110
111 INTEGER NF1, IBID, I, NLAY,IGTYP,NLYMAX,IS,NUVAR,IREP,NCC,JHBE,
112 . IDEF, IP, IPANG, IPTHK, IPPOS, IPMAT,IG,IM,MTN0,IPID1,
113 . NPTR,NPTS,NPTT,L_PLA,L_SIGB
114 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
115 . IX5(MVSIZ), IX6(MVSIZ), IX7(MVSIZ), IX8(MVSIZ)
116 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ) , MAT0(MVSIZ)
117 CHARACTER(LEN=NCHARTITLE)::TITR1
119 . bid, fv, sti, zi,wi
121 . v8loc(51,mvsiz),volu(mvsiz),dtx(mvsiz),vzl(mvsiz),vzq(mvsiz),
122 . x1(mvsiz),x2(mvsiz),x3(mvsiz),x4(mvsiz),x5(mvsiz),x6(mvsiz),
123 . x7(mvsiz),x8(mvsiz),y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),
124 . y5(mvsiz),y6(mvsiz),y7(mvsiz),y8(mvsiz),z1(mvsiz),z2(mvsiz),
125 . z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),z7(mvsiz),z8(mvsiz),
126 . rx(mvsiz) ,ry(mvsiz) ,rz(mvsiz) ,sx(mvsiz) ,
127 . sy(mvsiz) ,sz(mvsiz) ,tx(mvsiz) ,ty(mvsiz) ,
128 . tz(mvsiz) ,e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),
129 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
130 . f1x(mvsiz) ,f1y(mvsiz) ,f1z(mvsiz) ,
131 . f2x(mvsiz) ,f2y(mvsiz) ,f2z(mvsiz) ,gama(6,mvsiz),
132 . rhocp(mvsiz) ,temp0(mvsiz),angle(mvsiz),dtx0(mvsiz),
133 . deltax(mvsiz), aire(mvsiz),llsh(mvsiz)
134 my_real,
DIMENSION(8,MVSIZ) :: bid8mvsiz
135 my_real,
DIMENSION(MVSIZ) :: bidmvsiz
137
138
139 TYPE(G_BUFEL_) ,POINTER :: GBUF
140 TYPE(BUF_LAY_) ,POINTER :: BUFLY
141 TYPE(L_BUFEL_) ,POINTER :: LBUF
142 TYPE(BUF_MAT_) ,POINTER :: MBUF
143
145 . w_gauss(9,9),a_gauss(9,9)
146
147 DATA w_gauss /
148 1 2. ,0. ,0. ,
149 1 0. ,0. ,0. ,
150 1 0. ,0. ,0. ,
151 2 1. ,1. ,0. ,
152 2 0. ,0. ,0. ,
153 2 0. ,0. ,0. ,
154 3 0.555555555555556,0.888888888888889,0.555555555555556,
155 3 0. ,0. ,0. ,
156 3 0. ,0. ,0. ,
157 4 0.347854845137454,0.652145154862546,0.652145154862546,
158 4 0.347854845137454,0. ,0. ,
159 4 0. ,0. ,0. ,
160 5 0.236926885056189,0.478628670499366,0.568888888888889,
161 5 0.478628670499366,0.236926885056189,0. ,
162 5 0. ,0. ,0. ,
163 6 0.171324492379170,0.360761573048139,0.467913934572691,
164 6 0.467913934572691,0.360761573048139,0.171324492379170,
165 6 0. ,0. ,0. ,
166 7 0.129484966168870,0.279705391489277,0.381830050505119,
167 7 0.417959183673469,0.381830050505119,0.279705391489277,
168 7 0.129484966168870,0. ,0. ,
169 8 0.101228536290376,0.222381034453374,0.313706645877887,
170 8 0.362683783378362,0.362683783378362,0.313706645877887,
171 8 0.222381034453374,0.101228536290376,0. ,
172 9 0.081274388361574,0.180648160694857,0.260610696402935,
173 9 0.312347077040003,0.330239355001260,0.312347077040003,
174 9 0.260610696402935,0.180648160694857,0.081274388361574/
175 DATA a_gauss /
176 1 0. ,0. ,0. ,
177 1 0. ,0. ,0. ,
178 1 0. ,0. ,0. ,
179 2 -.577350269189626,0.577350269189626,0. ,
180 2 0. ,0. ,0. ,
181 2 0. ,0. ,0. ,
182 3 -.774596669241483,0. ,0.774596669241483,
183 3 0. ,0. ,0. ,
184 3 0. ,0. ,0. ,
185 4 -.861136311594053,-.339981043584856,0.339981043584856,
186 4 0.861136311594053,0. ,0. ,
187 4 0. ,0. ,0. ,
188 5 -.906179845938664,-.538469310105683,0. ,
189 5 0.538469310105683,0.906179845938664,0. ,
190 5 0. ,0. ,0. ,
191 6 -.932469514203152,-.661209386466265,-.238619186083197,
192 6 0.238619186083197,0.661209386466265,0.932469514203152,
193 6 0. ,0. ,0. ,
194 7 -.949107912342759,-.741531185599394,-.405845151377397,
195 7 0. ,0.405845151377397,0.741531185599394,
196 7 0.949107912342759,0. ,0. ,
197 8 -.960289856497536,-.796666477413627,-.525532409916329,
198 8 -.183434642495650,0.183434642495650,0.525532409916329,
199 8 0.796666477413627,0.960289856497536,0. ,
200 9 -.968160239507626,-.836031107326636,-.613371432700590,
201 9 -.324253423403809,0. ,0.324253423403809,
202 9 0.613371432700590,0.836031107326636,0.968160239507626/
203
204
205
206 gbuf => elbuf_str%GBUF
207 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
208 mbuf => elbuf_str%BUFLY(1)%MAT(1,1,1)
209 bufly => elbuf_str%BUFLY(1)
210 nptr = elbuf_str%NPTR
211 npts = elbuf_str%NPTS
212 nptt = elbuf_str%NPTT
213 nlay = elbuf_str%NLAY
214
215 jeul = iparg(11)
216 irep = iparg(35)
217 igtyp = iparg(38)
218 jhbe = iparg(23)
219 nf1=nft+1
220 IF (jcvt==1.AND.isorth/=0) jcvt=2
221 IF (igtyp /= 22) isorth = 0
222 ibid = 0
223 idef = 0
224
225 DO i=1,nel
226 rhocp(i) = pm(69,ixs(1,nft+i))
227 temp0(i) = pm(79,ixs(1,nft+i))
228 ENDDO
229 CALL sccoor3(x ,ixs(1,nf1),geo ,mat ,pid ,ngl ,
230 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
231 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
232 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
233 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
234 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
235 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
236 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,temp0, temp,glob_therm%NINTEMP)
237 IF (igtyp == 21 .OR. igtyp == 22) THEN
238 DO i=1,nel
239 angle(i) = geo(1,pid(i))
240 END DO
241 CALL scmorth3(pid ,geo ,igeo ,skew ,irep ,gbuf%GAMA ,
242 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
243 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
244 . ngl ,angle,nsigi,sigsp,nsigs,sigi ,ixs(1,nf1) ,1 ,
245 . orthoglob,ptsol,nel)
246 IF (igtyp == 22) THEN
247 nlymax= 200
248 ipang = 200
249 ipthk = ipang+nlymax
250 ippos = ipthk+nlymax
251 ipmat = 100
252 ig=pid(1)
253 mtn0=mtn
254 DO i=1,nel
255 mat0(i) = mat(i)
256 dtx0(i) = ep20
257 ENDDO
258 END IF
259 END IF
260 CALL scderi3(nel,gbuf%VOL,jeul,veul(1,nf1),geo ,
261 . vzl ,vzq ,ngl ,pid ,
262 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
263 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
264 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 , volu)
265
266 CALL sdlen3(x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
267 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
268 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
269 . deltax, volu)
270 IF (idttsh > 0) THEN
272 . x1, x2, x3, x4, x5, x6, x7, x8,
273 . y1, y2, y3, y4, y5, y6, y7, y8,
274 . z1, z2, z3, z4, z5, z6, z7, z8)
275 DO i=1,nel
276 IF (gbuf%IDT_TSH(i)>0)
277 . deltax(i)=
max(llsh(i),deltax(i))
278 ENDDO
279 END IF
280
281 IF (jthe == 0 .and. glob_therm%NINTEMP > 0) THEN
282 DO i=1,nel
283 tempel(i) = one_over_8 *(temp(ixs(2,i)) + temp(ixs(3,i))
284 . + temp(ixs(4,i)) + temp(ixs(5,i))
285 . + temp(ixs(6,i)) + temp(ixs(7,i))
286 . + temp(ixs(8,i)) + temp(ixs(9,i)))
287 ENDDO
288 ELSE
289 tempel(1:nel) = temp0(1:nel)
290 END IF
291
292 ip=0
293 CALL matini(pm ,ixs ,nixs ,x ,
294 . geo ,ale_connectivity ,detonators ,iparg ,
295 . sigi ,nel ,skew ,igeo ,
296 . ipart ,iparts ,
297 . mat ,ipm ,nsigs ,numsol ,ptsol ,
298 . ip ,ngl ,npf ,tf ,bufmat ,
299 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
300 . facload, deltax ,tempel )
301
302 IF (igtyp == 22)
CALL sczero3(gbuf%RHO,gbuf%SIG,gbuf%EINT,nel)
303
304
305 IF(jthe /=0)
CALL atheri(mat,pm,gbuf%TEMP)
306
307
308 DO is=1,nlay
309
310 lbuf => elbuf_str%BUFLY(is)%LBUF(1,1,1)
311 mbuf => elbuf_str%BUFLY(is)%MAT(1,1,1)
312 l_pla = elbuf_str%BUFLY(is)%L_PLA
313 l_sigb= elbuf_str%BUFLY(is)%L_SIGB
314
315 IF (igtyp == 22) THEN
316 zi = geo(ippos+is,ig)
317 wi = geo(ipthk+is,ig)
318 im=igeo(ipmat+is,ig)
319 mtn=nint(pm(19,im))
320 DO i=1,nel
321 mat(i)=im
322 angle(i) = geo(ipang+is,pid(i))
323 ENDDO
324 ELSE
325 zi = a_gauss(is,nlay)
326 wi = w_gauss(is,nlay)
327 ENDIF
328 DO i=1,nel
329 lbuf%VOL0DP(i) = half*wi*(gbuf%VOL(i)+vzl(i)*zi)
330 lbuf%VOL(i) = lbuf%VOL0DP(i)
331 ENDDO
332 IF (igtyp == 22)
333 .
CALL scmorth3(pid ,geo ,igeo ,skew ,irep ,lbuf%GAMA ,
334 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
335 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
336 . ngl ,angle,nsigi,sigsp,nsigs,sigi ,ixs(1,nf1) ,is ,
337 . orthoglob,ptsol,nel)
338
339 IF (jthe == 0 .and. glob_therm%NINTEMP > 0) THEN
340 DO i=1,nel
341 tempel(i) = one_over_8 *(temp(ixs(2,i)) + temp(ixs(3,i))
342 . + temp(ixs(4,i)) + temp(ixs(5,i))
343 . + temp(ixs(6,i)) + temp(ixs(7,i))
344 . + temp(ixs(8,i)) + temp(ixs(9,i)))
345 ENDDO
346 ELSE
347 tempel(1:nel) = temp0(1:nel)
348 END IF
349
350 CALL matini(pm ,ixs ,nixs ,x ,
351 . geo ,ale_connectivity ,detonators ,iparg ,
352 . sigi ,nel ,skew ,igeo ,
353 . ipart ,iparts,
354 . mat ,ipm ,nsigs ,numsol ,ptsol,
355 . is ,ngl ,npf ,tf ,bufmat,
356 . gbuf ,lbuf ,mbuf ,elbuf_str,iloadp,
357 . facload, deltax ,tempel )
358
359 nuvar = elbuf_str%BUFLY(is)%NVAR_MAT
360 IF(mtn>=28)THEN
361 idef =1
362 ELSE
363 IF(mtn == 14 .OR. mtn == 12)THEN
364 idef =1
365 ELSEIF(mtn == 24)THEN
366 idef =1
367 ELSEIF(istrain == 1)THEN
368 IF(mtn == 1)THEN
369 idef =1
370 ELSEIF(mtn == 2)THEN
371 idef =1
372 ELSEIF(mtn == 4)THEN
373 idef =1
374 ELSEIF(mtn == 3.OR.mtn == 6.OR.mtn == 10.OR.
375 . mtn == 21.OR.mtn == 22.OR.mtn == 23.
376 . or.mtn == 49)THEN
377 idef =1
378 ENDIF
379 ENDIF
380 ENDIF
381
383 . pm, lbuf%VOL,sigsp,sigi,lbuf%EINT,lbuf%RHO,mbuf%VAR ,
384 . lbuf%STRA,ixs ,nixs,nsigi, is, nuvar,nel,iuser,idef,
385 . nsigs,strsglob,straglob,jhbe,igtyp,x,gbuf%GAMA,
386 . mat ,lbuf%PLA,l_pla,ptsol,lbuf%SIGB,l_sigb,ipm ,
387 . bufmat,lbuf%VOL0DP)
388 IF(igtyp == 22) THEN
389
390 aire(:) = zero
391 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
392 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat, deltax, aire,
393 . volu, dtx , igeo ,igtyp)
394
396 . lbuf%RHO,lbuf%VOL,lbuf%OFF,lbuf%SIG,lbuf%EINT,dtx,
397 . gbuf%RHO,gbuf%VOL,gbuf%OFF,gbuf%SIG,gbuf%EINT,dtx0,
398 . nel )
399 ENDIF
400 ENDDO
401
402 IF(igtyp == 22) THEN
403 mtn=mtn0
404 DO i=1,nel
405 mat(i)=mat0(i)
406 ENDDO
407 ENDIF
408
409
410 bid8mvsiz(1:8,1:mvsiz) = zero
411 bidmvsiz(1:mvsiz) = zero
413 . gbuf%RHO ,mas ,partsav ,x ,v ,
414 . iparts(nf1),mss(1,nf1),volu ,
415 . msnf ,mssf(1,nf1),bid ,
416 . bid ,bid8mvsiz ,wma ,rhocp ,mcp ,
417 . mcps(1,nf1),mssa ,bidmvsiz ,bidmvsiz ,gbuf%FILL,
418 . ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8)
419
420
421 CALL failini(elbuf_str,nptr,npts,nptt,nlay,
422 . ipm,sigsp,nsigi,fail_ini ,
423 . sigi,nsigs,ixs,nixs,ptsol,rnoise,perturb,bufmat)
424
425
426
427 IF(i7stifs/=0)THEN
428 ncc=8
429 CALL sbulk3(volu ,ix1 ,ncc,mat,pm ,
430 2 volnod,bvolnod,vns(1,nf1),bns(1,nf1),bid,
431 3 bid ,gbuf%FILL)
432 ENDIF
433
434
435 aire(:) = zero
436 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
437 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat, deltax, aire,
438 . volu, dtx , igeo ,igtyp)
439
440 IF(igtyp == 22) THEN
441 DO i=1,nel
442 dtx(i)=dtx0(i)
443 ENDDO
444 ENDIF
445
446 DO i=1,nel
447 IF (ixs(10,i+nft) /= 0) THEN
448 IF (igtyp < 20 .OR. igtyp > 22) THEN
449 ipid1=ixs(nixs-1,i+nft)
450 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,ipid1),ltitr)
452 . msgtype=msgerror,
453 . anmode=aninfo_blind_1,
454 . i1=igeo(1,ipid1),
455 . c1=titr1,
456 . i2=igtyp)
457 ENDIF
458 ENDIF
459 dtelem(nft+i)=dtx(i)
460
461 sti = fourth * gbuf%FILL(i) * gbuf%RHO(i) * volu(i) /
462 .
max(em20,dtx(i)*dtx(i))
463 stifn(ixs(2,i+nft))=stifn(ixs(2,i+nft))+sti
464 stifn(ixs(3,i+nft))=stifn(ixs(3,i+nft))+sti
465 stifn(ixs(4,i+nft))=stifn(ixs(4,i+nft))+sti
466 stifn(ixs(5,i+nft))=stifn(ixs(5,i+nft))+sti
467 stifn(ixs(6,i+nft))=stifn(ixs(6,i+nft))+sti
468 stifn(ixs(7,i+nft))=stifn(ixs(7,i+nft))+sti
469 stifn(ixs(8,i+nft))=stifn(ixs(8,i+nft))+sti
470 stifn(ixs(9,i+nft))=stifn(ixs(9,i+nft))+sti
471 END DO
472
473 RETURN
subroutine atheri(mat, pm, temp)
subroutine dtmain(geo, pm, ipm, pid, mat, fv, eint, temp, deltax, rk, re, bufmat, ddeltax, aire, vol, dtx, igeo, igtyp)
subroutine failini(elbuf_str, nptr, npts, nptt, nlay, ipm, sigsp, nsigi, fail_ini, sigi, nsigs, ix, nix, pt, rnoise, perturb, mat_param)
subroutine matini(pm, ix, nix, x, geo, ale_connectivity, detonators, iparg, sigi, nel, skew, igeo, ipart, ipartel, mat, ipm, nsig, nums, pt, ipt, ngl, npf, tf, bufmat, gbuf, lbuf, mbuf, elbuf_str, iloadp, facload, ddeltax, tempel)
integer, parameter nchartitle
subroutine sigin20b(sig, pm, vol, sigsp, sigi, eint, rho, uvar, eps, ix, nix, nsigi, ipt, nuvar, nel, iuser, idef, nsigs, strsglob, straglob, jhbe, igtyp, x, bufgama, mat, epsp, l_pla, pt, sigb, l_sigb, ipm, bufmat, voldp)
subroutine sbulk3(volu, nc, nnc, mat, pm, volnod, bvolnod, vns, bns, vnsx, bnsx, fill)
subroutine sccoor3(x, ixs, geo, mxt, ngeo, ngl, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, r11, r21, r31, r12, r22, r32, r13, r23, r33, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp)
subroutine sczero3(rhog, sigg, eintg, nel)
subroutine sdlensh(nel, llsh, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8)
subroutine svalue0(rho, vol, off, sig, eint, dtx, rhog, volg, offg, sigg, eintg, dtxg, nel)
subroutine scmorth3(pid, geo, igeo, skew, irep, gama, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ngl, angle, nsigi, sigsp, nsigs, sigi, ixs, ilay, orthoglob, pt, nel)
subroutine smass3(rho, ms, partsav, x, v, ipart, mss, volu, msnf, mssf, in, vr, ins, wma, rhocp, mcp, mcps, mssa, rhof, frac, fill, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8)
subroutine sdlen3(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, deltax, voln)
subroutine scderi3(nel, vol, jeul, veul, geo, vzl, vzq, ngl, ngeo, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, det)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)