1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
|
program atom
implicit double precision (a-h,o-z)
dimension dval(2,561),nval(2,7,10),ddval(2,561),ndval(2,7,10)
dimension dcore(2,561),vhv(561),fpu(561)
c
c free atom program by m.p. summer 1985 (valence energy and core
c density are calculated)
c
c GGA implemented by T. Holmquist and U. Yxklinten.
c
c files used:
c 6: terminal output
c 22: density and potential output
c 33: density and potential input
c 44: potential and density double prec. output
c 46: potential and density double prec. input
c 55: control input
c 66: printer output
c 77: density (total and core) output (J.H.)
c
dimension r(561),veff(2,561),vc(561),vcold(561),vv(561)
dimension gr(561),lm(2),rnocc(2,7,10),ux1(561),ux2(561)
dimension u(561),roo(561),spl(561),nb(7)
dimension db(2,561),v(561),vold(2,561)
dimension snlo(561),wj(301),ekin(2)
dimension ebound(2,7,10),nbound(2,7),de(2,7,10)
dimension apu(561),bpu(561),cpu(561),dpu(561),nlp(2,7,10)
dimension epu(561)
c===================================================================
c gga
dimension excgga(561),uxcup(561),uxcdn(561)
logical doned,donela,donegr,donez,donec
c gga
c===================================================================
common/sc/gr,r,snlo,nbl
common/mess/wj,dx,nblock,jblock
common/pot/v
frs(x)=(3.d0/(4.d0*pi*x))**(1.d0/3.d0)
pi=4.d0*datan(1.d0)
pi2=pi/2.d0
a=(4.d0/9.d0/pi)**(1.d0/3.d0)
c
open(22,file='adensout.dat',status='unknown')
open(33,file='adensin.dat',status='unknown')
open(44,file='apotout.dat',status='unknown')
open(46,file='apotin.dat',status='unknown')
open(55,file='atomctrl.dat',status='old')
open(66,file='aprtout.dat',status='unknown')
open(77,file='atomdens.dat',status='unknown')
write(6,*) '=== Its ===== Energy (Ha) ======'
call flush(6)
read(55,*)z,zion
c z : atomic number
c zion : ionicity
c
write(66,2) z,zion
2 format(/' atom number:',f5.0,' ionicity:',f5.0)
sf=4.d0*pi
read(55,*)jblock,nbl,c
c parameters of the hermann-skillmann mesh
read(55,*)fback,thresh,qsc
C fback : feedback
c thresh : error allowed for the bound state eigenenergy
c e.g. 0.00001
c qsc : parameter for the screened green's function (0.005)
read(55,*)itmax,inopt,ipr,iout
c itmax : max. no. of iterations
c iopt : =0 starting potential generated; =1 starting potential
c read in; =2 starting potential read in from unit 46.
c (double precision format)
c ipr, iout : print out parameters
c
c set up the herman-skillman mesh
c
nblock=jblock
mesh=nblock*nbl+1
n=mesh
mest=mesh
dx=c*0.0025d0
en0=-0.01d0
i=1
r(i)=0.d0
deltax=dx
do 251 j=1,nblock
do 241 jk=1,nbl
i=i+1
241 r(i)=r(i-1)+deltax
deltax=2.d0*deltax
251 continue
c
read(55,*)ne,iys,ixc
c ne: no. bound states
c iys: =1 for spin compensated; =2 spin polarized
c ixc: = 1 b-h xc; =0 c-a xc
if(ixc.eq.1)write(66,2149)
if(ixc.eq.0)write(66,2148)
if(ixc.eq.2)write(66,2147)
2149 format(/' von barth - hedin xc')
2148 format(/' ceperley - alder xc')
2147 format(/' perdew - wang xc')
dxx=r(n)-r(n-1)
write(66,5)jblock,nbl,c
write(66,5849)dx,dxx,r(n)
5 format(/' hermann-skillmann mesh',/,' blocks, nbl, c:',2(i5,','),
j f10.7)
5849 format(' first interval, last interval, final r:',2(f10.6,','),
j f10.6)
write(66,2312) thresh,qsc,fback
2312 format(/' energy eigenvalue threshold, screening parameter, ',
j 'feedback:',2(f12.6,','),f6.3)
write(66,9)
do 5273 i=1,7
5273 nb(i)=0
lmax=0
9 format(//' initial bound state configuration',/,
j ' nlm energy occup. val.el. d-band el.')
zv=0.d0
do 5595 ispin=1,iys
do 5595 ii=1,ne
read(55,*)nnlz,eb0,rnoc,nv,ndv
c
c nnlz : e.g. 100
c eb0 : energy eigenvalue guess
c rnoc : occupation number
c nv : =1 when orbital is a valence orbital; =0 for core orbitals
c ndv : =1 when orbital is a d-valence orbital; =0 for other orbitals
c
nnn=nnlz/100
lll=(nnlz-nnn*100)/10
nnn=nnn-lll
if(nnn.gt.nb(lll+1))nb(lll+1)=nnn
if(lll.gt.lmax)lmax=lll
rnocc(ispin,lll+1,nnn)=rnoc
nval(ispin,lll+1,nnn)=nv
ndval(ispin,lll+1,nnn)=ndv
if(iys.eq.1)nval(2,lll+1,nnn)=nv
if(iys.eq.1)ndval(2,lll+1,nnn)=ndv
if(iys.eq.1)rnocc(2,lll+1,nnn)=rnoc
if(iys.eq.1)rnoc=rnoc*2
write(66,19)nnlz,eb0,rnoc,nv,ndv
zv=zv+rnoc*(nv+ndv)
5595 ebound(ispin,lll+1,nnn)=eb0
write(66,5120)zv
5120 format(/' number of valence electrons: ',f5.1)
19 format(i6,e12.4,f7.2,i7,i10)
nb1=nbl+1
iter=0
itr=itmax-iout
c
16 format(7(f12.5,1x))
17 format(/' charge and spin density profiles '/)
18 format(1h0/' potentials vs. distance after ',i3,' iterations'/)
c
c tabulate screened green's function
do 10 i=1,n
10 gr(i)=exp(-qsc*r(i))
c
c integration weigths
do 121 i=1,nb1
121 wj(i)=(3.d0+(-1.d0)**i)/3.d0
wj(1)=1.d0/3.d0
wj(nb1)=1.d0/3.d0
c
c initial values of the potentials
if(inopt.eq.1) goto 302
if(inopt.eq.2) goto 306
c
itt=0
c thomas-fermi potential
do 30 i=2,n
x=r(i)/0.88534135d0*z**(1.d0/3.d0)
xx=sqrt(x)
vc(i)=-z/r(i)/(1.+0.02747d0*xx+1.243d0*x-0.1486d0*x*xx
j+0.2302d0*x*x+0.007298d0*x*x*xx+0.006944d0*x*x*x)
do 30 ispin=1,2
30 veff(ispin,i)=vc(i)
goto 311
c read in an old potential for the input
302 read(33,2645)itt
2645 format(i3)
1645 format(i3,' z,ion:',2f4.0,' jblock,nbl,c:',2i5,f10.7)
do 303 i=1,n
303 read(33,907) vc(i),veff(1,i),veff(2,i),du1,du2
goto 311
306 read(46,2645) itt
do 304 i = 1, n
read(46,*) du1, vc(i), vve, du2
veff(1,i) = vve
veff(2,i) = vve
304 continue
311 do 312 i=1,n
vcold(i)=vc(i)
do 312 ispin=1,2
312 vold(ispin,i)=veff(ispin,i)
5555 format(e15.8)
7771 format(/' initial potentials'/)
7773 format(5f13.5)
if(iout.lt.-1)go to 1437
write(66,7771)
do 7772 i=2,n,ipr
7772 write(66,7773) r(i),vc(i),veff(1,i),veff(2,i)
1437 eold=0.d0
etot=-1.d0
itec=0
c
c iteration
c
100 iter=iter+1
c write(6,*) 'NEW ITERATION'
c call flush(6)
c convergency check
if(abs(etot-eold).lt.5.d-5)itec=itec+1
if(abs(etot-eold).lt.5.d-5.and.itec.eq.1)itmax=iter
eold=etot
if(iter-itmax)999,999,400
999 itt=itt+1
write(66,6147)itt
do 117 i=1,n
dval(2,i)=0.d0
ddval(2,i)=0.d0
dcore(1,i)=0.d0
dcore(2,i)=0.d0
dval(1,i)=0.d0
117 ddval(1,i)=0.d0
6147 format(///' ********************* iteration:',
1 i4,' ***********************'/)
do 917 ispin=1,iys
do 116 i=1,n
vv(i)=veff(ispin,i)
v(i)=2*vv(i)
116 db(ispin,i)=0.d0
lm(ispin)=-1
do 807 i=0,4
ik=i
if(i)817,817,818
817 do 819 jj=1,4
819 u(jj)=r(jj)-z*r(jj)**2
go to 822
818 do 821 jj=1,4
821 u(jj)=r(jj)**(i+1)
822 call schrhs(vv,0.d0,ik,u)
merkki=1
c determine the number of bound states
ncross=0
do 826 ii=2,n
if(merkki)823,823,824
823 if(u(ii))826,826,825
824 if(u(ii))825,826,826
825 merkki=-merkki
ncross=ncross+1
826 continue
dlo=(u(n)-u(n-1))*u(n)
if(dlo.ge.0)nbound(ispin,i+1)=ncross
if(dlo.lt.0)nbound(ispin,i+1)=ncross+1
if(nbound(ispin,i+1).eq.0)go to 827
lm(ispin)=i
write(66,678)i,nbound(ispin,i+1)
nbound(ispin,i+1)=min0(nbound(ispin,i+1),nb(i+1))
678 format(' l = ',i4,',',i4,' bound states ')
807 continue
827 if(lm(ispin).lt.0.and.ispin.eq.2)go to 674
if(lm(ispin).lt.0.and.ispin.eq.1)go to 917
lm(ispin)=min0(lm(ispin),lmax)
lmm=lm(ispin)
do 918 i=0,lmm
nii=min0(nbound(ispin,i+1),8)
ik=i
do 918 ii=1,nii
if(rnocc(ispin,i+1,ii).lt.0.1d0)go to 918
nn=i+ii
en=2.d0*ebound(ispin,i+1,ii)
if(en.ge.0.d0)en=en0
en1=en
dde=de(ispin,i+1,ii)
if(iter.le.2)dde=0.d0
c determine the bound state energy and eigenfunction
call scheq(z,en,ik,nn,mest,mesh,c,thresh,iflag,npr,dde)
c scheq operates in rydberg units
if(iter.ge.2)de(ispin,i+1,ii)=abs(en-en1)
if(iflag.eq.1) goto 400
163 ebound(ispin,i+1,ii)=en/2.d0
nlp(ispin,i+1,ii)=npr
do 9188 ji=1,n
dval(ispin,ji)=dval(ispin,ji)+rnocc(ispin,i+1,ii)*snlo(ji)**2/sf
j*nval(ispin,i+1,ii)
ddval(ispin,ji)=ddval(ispin,ji)+rnocc(ispin,i+1,ii)*snlo(ji)**2/
j sf*ndval(ispin,i+1,ii)
dcore(ispin,ji)=dcore(ispin,ji)+rnocc(ispin,i+1,ii)*snlo(ji)**2/
j sf*(1-ndval(ispin,i+1,ii))*(1-nval(ispin,i+1,ii))
9188 db(ispin,ji)=db(ispin,ji)+rnocc(ispin,i+1,ii)*snlo(ji)**2/sf
918 continue
do 919 ji=2,n
dcore(ispin,ji)=dcore(ispin,ji)/r(ji)**2
919 db(ispin,ji)=db(ispin,ji)/r(ji)**2
db(ispin,1)=db(ispin,2)
dcore(ispin,1)=dcore(ispin,2)
do 5739 ji=2,n
ddval(ispin,ji)=ddval(ispin,ji)/r(ji)**2
5739 dval(ispin,ji)=dval(ispin,ji)/r(ji)**2
dval(ispin,1)=dval(ispin,2)
ddval(ispin,1)=ddval(ispin,2)
917 continue
if(iys.eq.2)go to 923
do 921 i=1,n
dval(2,i)=dval(1,i)
ddval(2,i)=ddval(1,i)
dcore(2,i)=dcore(1,i)
921 db(2,i)=db(1,i)
lmm=lm(1)
lm(2)=lm(1)
do 922 i=0,lmm
nii=nbound(1,i+1)
nbound(2,i+1)=nii
do 922 ii=1,nii
922 ebound(2,i+1,ii)=ebound(1,i+1,ii)
923 continue
8 format(' ',i6,' energy: ',f12.5,' iteration loops: ',i4)
c
c total bound state energy
c
c write(6,*) 'Total energy starts'
c call flush(6)
661 eb=0.d0
ebv=0.d0
write(66,7496)
7496 format(//' bound states'/)
do 673 ispin=1,2
lmm=lm(ispin)
do 673 i=0,lmm
nii=nbound(ispin,i+1)
do 673 j=1,nii
nn=i+j
nnlz=100*nn+10*i
eb=eb+ebound(ispin,i+1,j)*rnocc(ispin,i+1,j)
ebv=ebv+ebound(ispin,i+1,j)*rnocc(ispin,i+1,j)*
j (nval(ispin,i+1,j)+ndval(ispin,i+1,j))
if(rnocc(ispin,i+1,j).lt.0.1d0) go to 673
write(66,8) nnlz,ebound(ispin,i+1,j),nlp(ispin,i+1,j)
673 continue
go to 679
674 write(66,676)
676 format('0no bound states')
679 continue
c
c total charge and spin densities
c computing energy integrals
c
506 continue
c=========================================
c gga
c set the "done" controle variables to false in the beginning of
c each iteration
if (ixc.eq.2) then
doned = .false.
donela = .false.
donegr = .false.
donez = .false.
donec = .false.
endif
c gga
c========================================
do 660 i=2,n
roo(i)=db(1,i)+db(2,i)
rr=roo(i)
c When db = (0,0) then the spin-polarization, spl = 0, and not 0/0.
if (rr.gt.0.0000000001) then
spl(i)=(db(1,i)-db(2,i))/rr
else
spl(i)=0.0
endif
x1=r(i)**2
apu(i)=x1*veff(1,i)*db(1,i)*sf
bpu(i)=x1*veff(2,i)*db(2,i)*sf
if (ixc.eq.2) then
c================================================================
c gga
c calculate the gga exchange-correlation energy
call ggaexc(r,db,i,1,n,doned,excgga(i))
cpu(i) = x1*rr*excgga(i)*sf
c gga
c================================================================
else
cpu(i)=x1*rr*exc(rr,spl(i),ixc)*sf
endif
dpu(i)=x1*spl(i)*rr*sf
660 continue
26 format(' induced moment: ',f10.5)
call simpsh(apu,v1)
call simpsh(bpu,v2)
call simpsh(cpu,eexc)
call simpsh(dpu,smom)
c
c compute coulomb energy
c
cz=z
do 683 i=1,n
bpu(i)=roo(i)*r(i)**2*sf
dpu(i)=(dval(1,i)+dval(2,i))*r(i)**2*sf
apu(i)=(ddval(1,i)+ddval(2,i))*r(i)**2*sf
cpu(i)=roo(i)*(r(i)**2*vc(i)-z*r(i))*sf/2.d0
683 continue
call simpsh(dpu,sum1)
call simpsh(apu,sum3)
call simpsh(bpu,sum2)
call simpsh(cpu,ec)
24 format(' kin: ',2(e14.6,1x),' coul: ',e14.6,' exc: ',e14.6)
25 format(/' total energy: ',e15.7)
write(66,192) sum2,sum1,sum3
write(66,26) smom
ekin(1)=-v1
ekin(2)=-v2
etot=ekin(1)+ekin(2)+eb+ec+eexc
write(66,7453)
7453 format(/' energy terms')
write(66,622)eb
622 format(' energy eigenvalue sum: ',e14.6)
write(66,24) ekin(1),ekin(2),ec,eexc
write(66,25) etot
c write(6,2573) itt,sum2,etot
c call flush(6)
c2573 format(' iter:',i4,' total ch:',f6.2,' total en:',f15.7)
write(6,2573) itt,etot
call flush(6)
2573 format(' ',i4,' ',f15.5)
if(iter.ne.1 .and. iter.lt.itr) goto 167
if(iout.lt.0)go to 167
write(66,17)
192 format(/' integr charges: total ',f10.7,' valence: ',2f10.7)
do 166 i=1,n,ipr
r22=r(i)*r(i)
db1=db(1,i)
db2=db(2,i)
dr=db1+db2
dcc=dcore(1,i)+dcore(2,i)
dvv=dval(1,i)+dval(2,i)+ddval(1,i)+ddval(2,i)
ddb=db1-db2
c166 write(66,1624) r(i),db1,db2,dval(i),ddval(i),dr,ddb
166 write(66,1624) r(i),db1,db2,dr,dcc,dvv
c
c
c compute coulomb potential
c
167 do 55 i=2,n
55 vc(i)=r(i)*vc(i)+zion
c write(6,*) 'Coulomb potential'
c call flush(6)
zi=z-zion
vc(1)=-zi
call scrhs(roo,vc,zi,qsc,n)
do 50 i=2,n
50 vc(i)=(vc(i)-zion)/r(i)
c
c set up the total potential
c
do 60 i=2,n
dr=roo(i)
vc(i)=(1.d0-fback)*vcold(i)+fback*vc(i)
vcold(i)=vc(i)
if (ixc.eq.2) then
c================================================================
c gga
c calculate the gga exchange-correlation potential
call ggauxc(r,db,spl,i,1,n,donela,donegr,donez,
j uxcup(i),uxcdn(i))
ux1(i) = uxcup(i)
ux2(i) = uxcdn(i)
c gga
c================================================================
else
ux1(i)=uxc(dr,spl(i),1,ixc)
ux2(i)=uxc(dr,spl(i),2,ixc)
endif
6848 veff(1,i)=vc(i)+ux1(i)
veff(2,i)=vc(i)+ux2(i)
do 60 ispin=1,2
veff(ispin,i)=(1.d0-fback)*vold(ispin,i)+fback*veff(ispin,i)
60 vold(ispin,i)=veff(ispin,i)
c calculate the valence energy
do 5100 i=2,mesh
do 5110 j=1,mesh
apu(j)=0.d0
if(i.le.j)apu(j)=(dval(1,j)+dval(2,j)+ddval(1,j)+ddval(2,j))*
j (r(j)**2/r(i)-r(j))
5110 continue
call simpsh(apu,vp)
5100 vhv(i)=-vp*4.d0*pi+zv/r(i)
do 5130 i=1,mesh
x1=r(i)**2
rr=db(1,i)+db(2,i)
spt=0.d0
if(rr.gt.1.d-10)spt=(db(1,i)-db(2,i))/rr
rrv=dval(1,i)+dval(2,i)+ddval(1,i)+ddval(2,i)
spv=0.d0
if(rrv.gt.1.d-10)spv=(dval(1,i)-dval(2,i)+ddval(1,i)-ddval(2,i))
j /rrv
rrc=dcore(1,i)+dcore(2,i)
spc=0.d0
if(rrc.gt.1.d-10)spc=(dcore(1,i)-dcore(2,i))/rrc
apu(i)=-0.5d0*x1*sf*rrv*vhv(i)
if (ixc.eq.2) then
c=============================================================
c gga
c calculate the gga exchange-correlation energy for core electrons
if (rrc.lt.1.d-100) then
excgac = 0.d0
else
call ggaexc(r,dcore,i,1,n,donec,excgac)
endif
bpu(i)=x1*rr*excgga(i)*sf
cpu(i)=-x1*rrc*excgac*sf
fpu(i)=(dcore(1,i)+dcore(2,i))*excgga(i)*x1*sf
dpu(i)=(-(dval(1,i)+ddval(1,i))*uxcup(i)
j -(dval(2,i)+ddval(2,i))*uxcdn(i))*sf*x1
c gga
c==================================================================
else
bpu(i)=x1*rr*exc(rr,spt,ixc)*sf
cpu(i)=-x1*rrc*exc(rrc,spc,ixc)*sf
fpu(i)=(dcore(1,i)+dcore(2,i))*exc(rr,spt,ixc)*x1*sf
dpu(i)=(-(dval(1,i)+ddval(1,i))*uxc(rr,spt,1,ixc)
j -(dval(2,i)+ddval(2,i))*uxc(rr,spt,2,ixc))*sf*x1
endif
epu(i)=apu(i)+bpu(i)+cpu(i)+dpu(i)+fpu(i)
5130 continue
c call simpsh(apu,ec)
c call simpsh(bpu,eext)
c call simpsh(fpu,eexx)
c call simpsh(cpu,eexc)
c call simpsh(dpu,eexv)
c etv=ebv+ec+eext+eexc+eexv
call simpsh(epu,etv)
etv = etv + ebv
write(66,5140)etv
5140 format(' valence energy:',e15.7)
if(iter.ne.1 .and. iter.lt.itr) go to 100
if(iout.lt.0)go to 100
write(66,18) itt
do 75 i=2,n,ipr
dr=roo(i)
75 write(66,1624) r(i),vc(i),ux1(i),ux2(i),veff(1,i),veff(2,i)
1624 format(1x,f12.5,6e14.5)
goto 100
400 continue
c
c
c
do 1140 i=2,mesh
do 1130 j=1,mesh
apu(j)=0.d0
if(i.le.j)apu(j)=(db(1,j)+db(2,j))*(r(j)**2/r(i)-r(j))
1130 continue
call simpsh(apu,vp)
1140 vc(i)=-vp*sf
write(22,1645)itt,z,zion,jblock,nbl,c
write(44,1645)itt,z,zion,jblock,nbl,c
do 900 i=1,n
dd=db(1,i)+db(2,i)
dc=dcore(1,i)+dcore(2,i)
dddc = dd + dc
dv1=dval(1,i)+dval(2,i)
ddv1=ddval(1,i)+ddval(2,i)
vve = 0.5d00*(veff(1,i) + veff(2,i))
write(44,*) r(i), vc(i), vve, dddc
c The line below writes total and core densities to atomdens.dat (J.H.)
write(77,906) r(i), 4*pi*dd*r(i)*r(i), 4*pi*dc*r(i)*r(i)
write(22,907)vc(i),veff(1,i),veff(2,i),dddc,r(i)
900 continue
907 format(6e15.7)
c900 write(22,906)vc(i),veff(1,i),veff(2,i),dd,dc
c900 write(22,906)vc(i),veff(1,i),veff(2,i),dd,dv1,ddv1
906 format(6e20.12)
write(6,*) '================================'
call flush(6)
c ieeer=ieee_flags('clear','exception','all',ieeeout)
close(6)
close(22)
close(33)
close(55)
close(66)
close(77)
stop
end
|