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