62 SUBROUTINE sinit3(ELBUF_STR,MAS ,IXS ,PM ,X ,
63 . DETONATORS,GEO ,VEUL ,ALE_CONNECTIVITY ,IPARG_GR,
64 . DTELEM ,SIGI ,NEL ,SKEW ,IGEO ,
65 . STIFN ,PARTSAV ,V ,IPARTS ,MSS ,
66 . IPART ,SIGSP ,NG ,IPARG ,
67 . NSIGI ,MSNF ,NVC ,MSSF ,IPM ,
68 . IUSER ,NSIGS ,VOLNOD ,BVOLNOD ,VNS ,
69 . BNS ,IN ,VR ,INS ,WMA ,
70 . PTSOL ,BUFMAT ,MCP ,MCPS ,TEMP ,
71 . XREFS ,NPF ,TF ,MSSA ,STRSGLOB,
72 . STRAGLOB ,FAIL_INI ,SPBUF ,KXSP ,IPARTSP ,
73 . NOD2SP ,SOL2SPH ,IRST ,ILOADP ,FACLOAD ,
74 . RNOISE ,PERTURB ,MAT_PARAM,GLOB_THERM)
87 use element_mod ,
only : nixs
91#include "implicit_f.inc"
100#include "com04_c.inc"
101#include "param_c.inc"
102#include "scr03_c.inc"
103#include "scr12_c.inc"
104#include "scr17_c.inc"
107#include "vect01_c.inc"
111 INTEGER IXS(NIXS,NUMELS),IPARG(NPARG,NGROUP),
112 . IPARG_GR(NPARG),IPARTS(*),IGEO(NPROPGI,NUMGEO),
113 . IPM(NPROPMI,NUMMAT),IPART(LIPART1,*),PTSOL(*),
114 . NG,NSIGI ,NVC,NEL,IUSER, NSIGS, NPF(*),
115 . STRSGLOB(*),STRAGLOB(*),FAIL_INI(*),
116 . (NISP,*), IPARTSP(*), NOD2SP(*), SOL2SPH(2,*), IRST(3,*),
118 my_real MAS(*), PM(NPROPM,NUMMAT), X(3,NUMNOD),GEO(NPROPG,NUMGEO),
119 . VEUL(LVEUL,*), DTELEM(*),SIGI(NSIGS,*),SKEW(LSKEW,*),STIFN(*),
120 . PARTSAV(20,*), V(*), MSS(8,*),
121 . SIGSP(NSIGI,*),MSNF(*), MSSF(8,*), WMA(*),
122 . VOLNOD(*), BVOLNOD(*), VNS(8,*), BNS(8,*),
123 . in(*),vr(*), ins(8,*),bufmat(*),
124 . mcp(*), mcps(8,*), temp(*),
125 . xrefs(8,3,*), tf(*), mssa(*),
126 . spbuf(nspbuf,*),rnoise(nperturb,*)
127 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
128 INTEGER,
INTENT(IN) :: ILOADP(,*)
129 my_real,
INTENT(IN) :: FACLOAD(LFACLOAD,*)
131 TYPE(t_ale_connectivity),
INTENT(INOUT) :: ALE_CONNECTIVITY
132 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
133 type (glob_therm_) ,
intent(in) :: glob_therm
137 INTEGER I,J, NF1, NCC, IBID, JHBE, IREP,IGTYP, NUVAR,NUVARR,IDEF,
138 . IR,IS,IT,IPT,LVLOC,IPID1,NPTR,NPTS,NPTT,NLAY,NDDIM,
139 . nsphdir, ncelf, ncell,l_pla,l_sigb,iboltp
140 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),
141 . ix1(mvsiz),ix2(mvsiz),ix3(mvsiz),ix4(mvsiz),
142 . ix5(mvsiz),ix6(mvsiz),ix7(mvsiz),ix8(mvsiz)
144 . v8loc(51,mvsiz),volu(mvsiz),dtx(mvsiz),
145 . x1(mvsiz),x2(mvsiz),x3(mvsiz),x4(mvsiz),x5(mvsiz),x6(mvsiz),
146 . x7(mvsiz),x8(mvsiz),y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),
147 . y5(mvsiz),y6(mvsiz),y7(mvsiz),y8(mvsiz),z1(mvsiz),z2(mvsiz),
148 . z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),z7(mvsiz),z8(mvsiz),
149 . rx(mvsiz) ,ry(mvsiz) ,rz(mvsiz) ,sx(mvsiz) ,
150 . sy(mvsiz) ,sz(mvsiz) ,tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
152 . e2x(mvsiz),e2y(mvsiz),e2z(mvsiz),
153 . e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
154 . f1x(mvsiz) ,f1y(mvsiz) ,f1z(mvsiz) ,
155 . f2x(mvsiz) ,f2y(mvsiz) ,f2z(mvsiz),rhocp(mvsiz),temp0(mvsiz),
156 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
157 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
158 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
159 . rhof(mvsiz),
alpha(mvsiz), aire(mvsiz),rho0(mvsiz)
160 my_real :: bid, fv, sti
161 my_real :: deltax(mvsiz)
163 . XD1(MVSIZ), XD2(MVSIZ), XD3(MVSIZ), XD4(),
164 . XD5(MVSIZ), XD6(MVSIZ), XD7(MVSIZ), XD8(MVSIZ),
165 . YD1(MVSIZ), YD2(MVSIZ), YD3(MVSIZ), YD4(MVSIZ),
166 . YD5(MVSIZ), YD6(MVSIZ), YD7(MVSIZ), YD8(MVSIZ),
167 . ZD1(MVSIZ), ZD2(MVSIZ), ZD3(MVSIZ), ZD4(MVSIZ),
168 . ZD5(MVSIZ), ZD6(MVSIZ), ZD7(MVSIZ), ZD8(MVSIZ)
169 my_real :: TEMPEL(NEL)
171 CHARACTER(LEN=NCHARTITLE)::TITR1
173 parameter(lvloc = 51)
175 TYPE() ,
POINTER :: LBUF
176 TYPE(G_BUFEL_) ,
POINTER :: GBUF
177 TYPE(BUF_MAT_) ,
POINTER ::
178 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
179 TYPE(BUF_FAIL_) ,
POINTER:: FBUF
180 my_real,
DIMENSION(:),
POINTER :: UVARF
184 gbuf => elbuf_str%GBUF
185 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
186 mbuf => elbuf_str%BUFLY(1)%MAT(1,1,1)
187 fbuf => elbuf_str%BUFLY(1)%FAIL(1,1,1)
188 bufly => elbuf_str%BUFLY(1)
189 nuvar = elbuf_str%BUFLY(1)%NVAR_MAT
190 nptr = elbuf_str%NPTR
191 npts = elbuf_str%NPTS
192 nptt = elbuf_str%NPTT
193 nlay = elbuf_str%NLAY
194 l_pla = elbuf_str%BUFLY(1)%L_PLA
195 l_sigb= elbuf_str%BUFLY(1)%L_SIGB
201 IF (jcvt==1.AND.isorth/=0) jcvt=2
209 iboltp = iparg_gr(72)
212 rhocp(i) = pm(69,ixs(1,nft+i))
213 temp0(i) = pm(79,ixs(1,nft+i))
214 rho0(i) = pm(1,ixs(1,nft+i))
216 rhof(i) = pm(192,ixs(1,nft+i))
217 alpha(i) = pm(193,ixs(1,nft+i))
219 IF (ismstr==10.OR.ismstr==12)
THEN
221 CALL scoor3(x,xrefs(1,1,nf1),ixs(1,nf1),geo ,mat ,pid ,ngl ,
222 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
223 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
224 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
225 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
226 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
227 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
228 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,temp0,temp ,glob_therm%NINTEMP,
229 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
230 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
231 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
234 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
235 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
236 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
240 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
241 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
242 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 ,
247 CALL scoor3(x,xrefs(1,1,nf1),ixs(1,nf1),geo ,mat ,pid ,ngl ,
248 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
249 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
250 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
251 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
252 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
253 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
254 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,temp0,temp ,glob_therm%NINTEMP,
255 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
256 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
257 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
259 CALL srcoor3(x,xrefs(1,1,nf1),ixs(1,nf1),geo ,mat ,pid ,ngl ,jhbe ,
260 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
261 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
262 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
263 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
264 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
265 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
266 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,temp0,temp ,glob_therm%NINTEMP,
267 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
268 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
269 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
275 IF (jthe == 0 .and. glob_therm%NINTEMP > 0)
THEN
277 tempel(i) = one_over_8 *(temp(ixs(2,i)) + temp(ixs(3,i))
278 . + temp(ixs(4,i)) + temp(ixs(5,i))
279 . + temp(ixs(6,i)) + temp(ixs(7,i))
280 . + temp(ixs(8,i)) + temp(ixs(9,i)))
283 tempel(1:nel) = temp0(1:nel)
288 .
CALL smorth3(pid ,geo ,igeo ,skew ,irep ,gbuf%GAMA ,
289 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
290 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
291 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,nsigi,sigsp,nsigs,
292 . sigi ,ixs ,x ,jhbe ,ptsol,nel ,iparg_gr(28))
294 CALL sveok3(nvc,8, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8)
296 IF(jeul /= 0.AND.integ8 /= 0)
THEN
297 CALL sderi3b(gbuf%VOL,veul(1,nf1),lveul,geo,igeo ,ngl ,pid ,
298 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
299 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
300 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
301 . volu, deltax,nel ,jeul )
302 ELSEIF (npt == 8)
THEN
303 CALL sderi3b(gbuf%VOL,v8loc ,lvloc,geo ,igeo ,ngl ,pid ,
304 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
305 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
306 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
307 . volu, deltax,nel ,jeul )
311 IF(
ASSOCIATED(lbuf%VOL0DP))
CALL szderi3(
312 . gbuf%VOL ,veul(1,nf1),geo ,igeo ,
313 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
314 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
315 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 ,
316 . px1 ,px2 ,px3 ,px4 ,
317 . py1 ,py2 ,py3 ,py4 ,
318 . pz1 ,pz2 ,pz3 ,pz4 ,
319 . rx ,ry ,rz ,sx ,sy ,sz ,tz ,
320 . ngl ,pid ,volu ,lbuf%VOL0DP,nel ,jeul ,nxref)
322 IF(
ASSOCIATED(lbuf%VOL0DP))
CALL sderi3(
323 . gbuf%VOL ,veul(1,nf1),geo ,igeo ,
324 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
325 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
326 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 ,
327 . rx ,ry ,rz ,sx ,sy ,sz ,ngl ,pid ,
328 . px1 ,px2 ,px3 ,px4 ,py1
329 . pz1 ,pz2 ,pz3 ,pz4, volu ,lbuf%VOL0DP,nel ,jeul,
333 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
334 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
335 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8,
339 CALL edlen3(veul(1,nf1), deltax)
341 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
342 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
343 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 )
350 lbuf => elbuf_str%BUFLY(1)%LBUF(ir,is,it)
351 mbuf => elbuf_str%BUFLY(1)%MAT(ir,is,it)
352 fbuf => elbuf_str%BUFLY(1)%FAIL(ir,is,it)
353 CALL matini(pm ,ixs ,nixs ,x ,
354 2 geo ,ale_connectivity
355 3 sigi ,nel ,skew ,igeo ,
357 5 mat ,ipm ,nsigs ,numsol ,ptsol ,
358 6 ipt ,ngl ,npf ,tf ,bufmat ,
359 7 gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
360 8 facload, deltax ,tempel ,mat_param )
364 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
365 mbuf => elbuf_str%BUFLY(1)%MAT(1,1,1)
366 fbuf => elbuf_str%BUFLY(1)%FAIL(1,1,1)
374 CALL sboltini(e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
380 IF(jthe /=0)
CALL atheri(mat,pm ,gbuf%TEMP)
381 IF(jtur /=0)
CALL aturi3(iparg ,gbuf%RHO,pm,ixs,x,
382 . gbuf%RK ,gbuf%RE,volu)
386 IF(jlag+jale+jeul /= 0)
THEN
387 IF(integ8 /= 0 .AND. jeul /= 0)
THEN
389 1 gbuf%RHO,mas,veul(44,nf1),lveul ,mss(1,nf1),
390 2 partsav,x ,v ,iparts(nf1),msnf ,
391 3 mssf(1,nf1),wma , rhocp ,mcp ,
392 4 mcps(1,nf1),mssa, volu,
393 5 ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8)
394 ELSEIF (npt == 8)
THEN
395 IF (mtn >= 28) idef = 1
397 1 mat ,pm ,ipm ,gbuf%SIG ,gbuf%VOL ,
398 2 sigsp ,sigi ,gbuf%EINT,gbuf%RHO ,
399 3 ixs ,nixs ,nsigi ,nsigs ,
400 4 nel ,idef ,bufmat ,npf ,
401 5 tf ,strsglob,straglob ,jhbe ,
402 6 igtyp ,x ,gbuf%GAMA,bufly ,l_pla ,
405 1 gbuf%RHO ,mas ,v8loc(44,1),lvloc ,mss(1,nf1) ,
406 2 partsav,x ,v ,iparts(nf1),msnf ,
407 3 mssf(1,nf1),wma , rhocp ,mcp ,
408 4 mcps(1,nf1),mssa, volu,
409 5 ix1, ix2, ix3, ix4, ix5, ix6
412 IF (isigi /= 0 .AND. (jcvt /= 0 .OR. isorth /= 0) )
THEN
413 IF(
ASSOCIATED(lbuf%VOL0DP))
CALL ustrsin3( sigi ,lbuf%SIG ,ixs ,nixs ,nsigs ,
414 . nel ,strsglob ,jhbe ,igtyp ,x ,
415 . gbuf%GAMA,ptsol ,lbuf%VOL0DP,rho0,gbuf%RHO )
417 IF (((mtn>=28 .AND. mtn/=49) .OR. mtn==14 .OR. mtn==12) .OR.
418 . (istrain == 1 .AND.
419 . (mtn==1 .OR. mtn==2 .OR. mtn==3 .OR. mtn==4 .OR.
420 . mtn==6 .OR. mtn==10 .OR. mtn==21 .OR. mtn==22 .OR.
421 . mtn==23 .OR. mtn==24)))
THEN
425 IF (isigi /= 0 .AND. ((mtn >= 28 .AND. iuser == 1).OR.
426 . (nvsolid2 /= 0 .and .idef /=0)))
428 . sigsp ,sigi ,mbuf%VAR ,lbuf%STRA,
429 . ixs ,nixs ,nsigi ,nuvar ,nel ,
430 . nsigs ,iuser ,idef ,straglob ,jhbe ,
431 . igtyp ,x ,gbuf%GAMA,ptsol ,lbuf%SIGB,
432 . l_sigb ,mat(1) ,ipm ,bufmat ,lbuf%PLA,
435 . gbuf%RHO ,mas ,partsav ,x ,v ,
436 . iparts(nf1),mss(1,nf1) ,volu ,
437 . msnf ,mssf(1,nf1),in ,
438 . vr ,ins(1,nf1) ,wma ,rhocp ,mcp ,
439 . mcps(1,nf1),mssa ,rhof ,
alpha ,gbuf%FILL,
440 . ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8)
446 IF (isigi /= 0 .AND. isorth/=0)
THEN
452 CALL failini(elbuf_str,nptr,npts,nptt,nlay,
453 . ipm,sigsp,nsigi,fail_ini ,
454 . sigi,nsigs,ixs,nixs,ptsol,rnoise,perturb,mat_param)
459 IF (i7stifs /= 0)
THEN
461 CALL sbulk3(volu ,ix1 ,ncc,mat,pm ,
462 2 volnod,bvolnod,vns(1,nf1),bns(1,nf1),bid,
470 CALL inimom_fvm(v , gbuf%RHO, gbuf%VOL, gbuf%MOM, ixs,
471 . ipm , mat , iparg_gr, npf , tf ,
472 . pm , lbuf%SSP, gbuf%SIG, nel
480 CALL dtmain(geo , pm , ipm , pid , mat , fv ,
481 . gbuf%EINT, gbuf%TEMP, gbuf%DELTAX, gbuf%RK, gbuf%RE, bufmat, deltax, aire,
482 . volu, dtx, igeo ,igtyp)
485 IF(ixs(10,i+nft) /= 0)
THEN
486 IF(igtyp /= 0 .AND.igtyp /= 6 .AND. igtyp /= 14 .AND.igtyp /= 15.AND. igtyp
THEN
487 ipid1=ixs(nixs-1,i+nft)
488 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,ipid1),ltitr)
491 . anmode=aninfo_blind_1,
500 sti = fourth * gbuf%FILL(i) * gbuf%RHO(i) * volu(i) /
max(em20,dtx(i)*dtx(i))
501 stifn(ixs(2,i+nft))=stifn(ixs(2,i+nft))+sti
502 stifn(ixs(3,i+nft))=stifn(ixs(3,i+nft))+sti
503 stifn(ixs(4,i+nft))=stifn(ixs(4,i+nft))+sti
504 stifn(ixs(5,i+nft))=stifn(ixs(5,i+nft))+sti
505 stifn(ixs(6,i+nft))=stifn(ixs(6,i+nft))+sti
506 stifn(ixs(7,i+nft))=stifn(ixs(7,i+nft))+sti
507 stifn(ixs(8,i+nft))=stifn(ixs(8,i+nft))+sti
508 stifn(ixs(9,i+nft))=stifn(ixs(9,i+nft))+sti
515 IF(sol2sph(1,nft+i) < sol2sph
THEN
516 nsphdir=igeo(37,ixs(10,nft+i))
517 ncelf =sol2sph(1,nft+i)+1
518 ncell =sol2sph(2,nft+i)-sol2sph(1,nft+i)
520 . nsphdir ,gbuf%RHO(i) ,ncell ,x ,spbuf(1,ncelf),
521 . ixs(1,i+nft),kxsp(1,ncelf),ipartsp(ncelf),
522 . irst(1,ncelf-first_sphsol+1))