Merge lp:~albertog/siesta/4.1-scf-first into lp:~nickpapior/siesta/4.1-scf-first

Proposed by Alberto Garcia
Status: Merged
Merged at revision: 1086
Proposed branch: lp:~albertog/siesta/4.1-scf-first
Merge into: lp:~nickpapior/siesta/4.1-scf-first
Diff against target: 43804 lines (+33872/-4830)
133 files modified
Docs/Contributors.txt (+1/-0)
Docs/siesta.tex (+46/-15)
Src/Makefile (+23/-15)
Src/alloc.F90 (+10/-2)
Src/atmfuncs.f (+48/-56)
Src/bands.F (+41/-59)
Src/compute_dm.F (+2/-2)
Src/compute_energies.F90 (+18/-1)
Src/delk.F90 (+1/-1)
Src/dfscf.f (+1/-1)
Src/dhscf.F (+6/-1)
Src/diag2g.F (+18/-5)
Src/diag2k.F (+66/-24)
Src/diag3g.F (+21/-6)
Src/diag3k.F (+61/-21)
Src/diagg.F (+8/-6)
Src/diagk.F (+5/-1)
Src/diagon.F (+3/-3)
Src/ioeig.f (+11/-5)
Src/iosockets.F90 (+11/-1)
Src/m_energies.F90 (+38/-8)
Src/m_io_yaml.F90 (+0/-1)
Src/m_mixing.F90 (+61/-29)
Src/m_new_dm.F90 (+3/-3)
Src/m_spin.F90 (+2/-0)
Src/m_transiesta.F90 (+10/-9)
Src/m_ts_options.F90 (+1/-1)
Src/mixer.F (+25/-29)
Src/print_spin.F90 (+64/-49)
Src/read_options.F90 (+3/-3)
Src/rhoofd.F90 (+1/-1)
Src/rhoofdsp.f (+2/-1)
Src/siesta_analysis.F (+100/-70)
Src/siesta_dicts.F90 (+13/-2)
Src/siesta_forces.F (+1/-2)
Src/spher_harm.f (+25/-25)
Src/ts_energies.F90 (+206/-0)
Src/vmat.F90 (+1/-1)
Src/vmatsp.f (+2/-1)
Src/write_subs.F (+122/-34)
Src/writewave.F (+116/-79)
Tests/Pseudos/Bi.psf (+3061/-0)
Tests/Pseudos/Se.psf (+2891/-0)
Tests/Reference/bi2se3_3ql.out (+889/-0)
Tests/bi2se3_3ql/bi2se3_3ql.fdf (+158/-0)
Tests/bi2se3_3ql/bi2se3_3ql.pseudos (+1/-0)
Tests/bi2se3_3ql/makefile (+6/-0)
Tests/mix_broyden/mix_broyden.fdf (+2/-0)
Util/COOP/Docs/UnitsAndMeaningOfCurves.txt (+55/-33)
Util/COOP/Makefile (+40/-17)
Util/COOP/README (+40/-0)
Util/COOP/Tests/bi2se3_3ql/README (+24/-0)
Util/COOP/Tests/bi2se3_3ql/spin_texture.dat.reference (+14150/-0)
Util/COOP/Tests/ge_fatbands_so/README (+55/-0)
Util/COOP/Tests/ge_fatbands_so/coo.gplot (+3/-0)
Util/COOP/Tests/ge_fatbands_so/coo.mpr (+10/-0)
Util/COOP/Tests/ge_fatbands_so/fatbands.mpr (+22/-0)
Util/COOP/Tests/ge_fatbands_so/pdos.gplot (+3/-0)
Util/COOP/Tests/ge_fatbands_so/pdos.mpr (+8/-0)
Util/COOP/dm_creator.F90 (+77/-145)
Util/COOP/fat.f90 (+46/-20)
Util/COOP/io_hs.f90 (+2/-0)
Util/COOP/main_vars.f90 (+4/-2)
Util/COOP/mprop.f90 (+179/-107)
Util/COOP/read_spin_texture.f90 (+103/-0)
Util/COOP/spin_texture.f90 (+419/-0)
Util/COOP/subs.f90 (+66/-5)
Util/Denchar/Docs/README (+0/-3)
Util/Denchar/Docs/denchar.tex (+16/-32)
Util/Denchar/Src/Makefile (+31/-24)
Util/Denchar/Src/README (+27/-1)
Util/Denchar/Src/denchar.f (+90/-133)
Util/Denchar/Src/itochar.f (+0/-54)
Util/Denchar/Src/local_reinit.f (+6/-10)
Util/Denchar/Src/readsts.f (+0/-174)
Util/Denchar/Src/readwaves.f (+0/-163)
Util/Denchar/Src/rhoofr.f (+134/-155)
Util/Denchar/Src/stsofr.f (+0/-371)
Util/Denchar/Src/wavofr.f (+452/-495)
Util/Denchar/Src/wrout.f (+1/-30)
Util/Eig2DOS/Eig2DOS.f90 (+37/-18)
Util/Gen-basis/Makefile (+22/-14)
Util/Grid/README (+3/-1)
Util/Grid/g2c_ng.f (+13/-4)
Util/Grid/m_gridfunc.F90 (+248/-10)
Util/Grid/makefile (+8/-1)
Util/Grid/v_info.f90 (+36/-0)
Util/Grimme/Makefile (+24/-14)
Util/Helpers/Makefile (+24/-14)
Util/README (+5/-5)
Util/STM/README.md (+80/-0)
Util/STM/ol-stm/Docs/stm.tex (+165/-157)
Util/STM/ol-stm/Examples/2d.gplot (+17/-0)
Util/STM/ol-stm/Examples/Benzene/C.psf (+1525/-0)
Util/STM/ol-stm/Examples/Benzene/H.psf (+1527/-0)
Util/STM/ol-stm/Examples/Benzene/benzene-stm.STRUCT_IN (+16/-0)
Util/STM/ol-stm/Examples/Benzene/benzene-stm.fdf (+54/-0)
Util/STM/ol-stm/Examples/ML-Cr/AGCR.fdf (+111/-0)
Util/STM/ol-stm/Examples/ML-Cr/Cr.psf (+2821/-0)
Util/STM/ol-stm/Examples/ML-Cr/README (+7/-0)
Util/STM/ol-stm/Examples/ML-Cr/q.inp (+6/-0)
Util/STM/ol-stm/Examples/README (+10/-9)
Util/STM/ol-stm/Examples/siesta.fdf (+0/-81)
Util/STM/ol-stm/Examples/stm.fdf (+0/-32)
Util/STM/ol-stm/Src/Makefile (+49/-29)
Util/STM/ol-stm/Src/README (+27/-0)
Util/STM/ol-stm/Src/atompla.f (+0/-122)
Util/STM/ol-stm/Src/extrapolate.f (+32/-85)
Util/STM/ol-stm/Src/length.f (+0/-21)
Util/STM/ol-stm/Src/m_wfsx.f (+0/-159)
Util/STM/ol-stm/Src/mainstm.F (+116/-152)
Util/STM/ol-stm/Src/matvect.f (+0/-27)
Util/STM/ol-stm/Src/readstm.f (+20/-24)
Util/STM/ol-stm/Src/redata.f (+3/-4)
Util/STM/ol-stm/Src/stm.f (+388/-463)
Util/STM/ol-stm/Src/sts.f (+582/-0)
Util/STM/ol-stm/Src/vacpot.f (+55/-110)
Util/STM/simple-stm/Makefile (+15/-14)
Util/STM/simple-stm/README.NXNY (+24/-0)
Util/STM/simple-stm/options.f90 (+201/-0)
Util/STM/simple-stm/plstm.f90 (+547/-401)
Util/STM/simple-stm/plsts.f (+126/-0)
Util/SpPivot/Makefile (+24/-14)
Util/TS/TBtrans/Makefile (+24/-14)
Util/TS/ts2ts/Makefile (+24/-14)
Util/TS/tshs2tshs/Makefile (+24/-14)
Util/VCA/Makefile (+24/-14)
Util/WFS/README (+18/-0)
Util/WFS/info_wfsx.f (+0/-81)
Util/WFS/m_getopts.f90 (+202/-0)
Util/WFS/makefile (+9/-6)
Util/WFS/readwfx.f90 (+310/-154)
version.info (+1/-1)
To merge this branch: bzr merge lp:~albertog/siesta/4.1-scf-first
Reviewer Review Type Date Requested Status
Nick Papior Pending
Review via email: mp+371434@code.launchpad.net

Description of the change

I have written a longer explanation in the manual. In particular, I explicitly mention that atomically filled DMs will be mixed by default, something that might be important in some cases.

Besides, this case highlights a contradiction: atomically filled DMs are not idempotent, and yet we happily mix them.

In fact, I believe that the idempotency issue is a red herring. Our DM is a decimated version of the true DM: we only keep those elements for which S (actually H) is not zero. This is fine to compute the charge density, and even to compute things like Tr(H*DM) and similar constructs. But since our DM is not the true DM, it is not idempotent. Moreover, even if DM_1 and DM_2 are idempotent, their mixing will not be. The really important thing is that the *output* DM is the one to be used to compute things like the kinetic energy, and the *input* DM is only an intermediate tool to compute the Hamiltonian.

I have avoided to open the can of worms of the heuristics when mixing the Hamiltonian. I believe that we should soon offer the possibility of reading H from file.

To post a comment you must log in.
Revision history for this message
Alberto Garcia (albertog) wrote :

I forgot to mention that I have removed the mention to idempotency in the warning given to the user when the "force" flag is enabled and the sparsity has changed. This matches my view on the reduced importance of the idempotency issue.

Revision history for this message
Nick Papior (nickpapior) wrote :

I think you made a branch of 4.1 (after 4.1-wfs merge), merged in 4.1-scf-first made changes and then committed. :(
I.e. it is difficult to merge in 4.1-scf-first since there are many unrelated changes.

Do you mind me updating 4.1-scf-first branch with what I think you changed in r1093?

Revision history for this message
Nick Papior (nickpapior) wrote :

PS. I think your changes looks extremely appropriate and well thought! Thanks!

Revision history for this message
Nick Papior (nickpapior) wrote :

Could you check r1086 on lp:~nickpapior/siesta/4.1-scf-first to see if all is good?

Revision history for this message
Alberto Garcia (albertog) wrote :

Yes, that is correct!

----- El 19 de Ago de 2019, a las 10:19, Nick Rubner Papior <email address hidden> escribió:

| Could you check r1086 on lp:~nickpapior/siesta/4.1-scf-first to see if all is
| good?
| --
| https://code.launchpad.net/~albertog/siesta/4.1-scf-first/+merge/371434
| You are the owner of lp:~albertog/siesta/4.1-scf-first.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Docs/Contributors.txt'
2--- Docs/Contributors.txt 2018-10-22 14:12:27 +0000
3+++ Docs/Contributors.txt 2019-08-18 23:02:58 +0000
4@@ -60,6 +60,7 @@
5 Magnus Paulsson
6 Oscar Paz
7 Andrei Postnikov
8+Roberto Robles
9 Tristana Sondon
10 Andrew Walker
11 Andrew Walkingshaw
12
13=== modified file 'Docs/siesta.tex'
14--- Docs/siesta.tex 2019-08-16 10:13:21 +0000
15+++ Docs/siesta.tex 2019-08-18 23:02:58 +0000
16@@ -277,6 +277,7 @@
17 Magnus Paulsson,
18 Oscar Paz,
19 Andrei Postnikov,
20+Roberto Robles,
21 Tristana Sondon,
22 Andrew Walker,
23 Andrew Walkingshaw,
24@@ -4103,23 +4104,41 @@
25 \fdfindex*{DM.MixSCF1}[|see SCF.Mix.First]
26 \fdfdepend{SCF.Mix!First.Force}%
27
28- Whether the first SCF should be mixed or it uses the output as input
29- in the next SCF step. It is generally advised to set this to true,
30- at least when restarting calculations.
31-
32- The general logic of mixing on the first method is determined by the
33- read matrices. If the sparsity pattern has changed between the read
34- matrix and the current matrix \siesta\ will default to \emph{not}
35- mix in the first step, regardless of this flag. To ensure mixing is
36- done in the first step \fdf{SCF.Mix!First.Force} should be set to
37- \fdftrue.
38+ This flag is used to decide whether mixing (of the DM or H) should
39+ be done in the first SCF step. If mixing is not performed the output
40+ DM or H generated in the first SCF step is used as input in the next
41+ SCF step. When mixing the DM, this ``reset'' has the effect of
42+ avoiding potentially undesirable memory effects: for example, a DM
43+ read from file which corresponds to a different structure might not
44+ satisfy the correct symmetry, and mixing will not fix it. On the
45+ other hand, when reusing a DM for a restart of an interrupted
46+ calculation, a full reset might not be advised.
47+
48+ The value of this flag is one of the ingredients used by \siesta\ to
49+ decide what to do. If \fdftrue (the default), mixing will be
50+ performed in all cases, except when a DM has been read from file and
51+ the sparsity pattern of the DM on file is different from the current
52+ one. To ensure that a first-step mixing is done even in this case,
53+ \fdf{SCF.Mix!First.Force} should be set to \fdftrue.
54+
55+ If the flag is \fdffalse, no mixing in the first step will be
56+ performed, except if overridden by \fdf{SCF.Mix!First.Force}.
57
58+ Note that the default value for this flag has changed from the old
59+ (pre-version 4) setting in \siesta\. The new setting is most
60+ appropriate for the case of restarting calculations. On the other
61+ hand, it means that mixing in the first scf step will also be
62+ performed for the standard case in which the initial DM is built as
63+ a (diagonal) superposition of atomic orbital occupation values. In
64+ some cases (e.g. spin-orbit calculations) better results might be
65+ obtained by avoiding this mixing.
66+
67 \end{fdflogicalT}
68
69 \begin{fdflogicalF}{SCF.Mix!First.Force}
70
71- Force the mixing of the first step, regardless of what \siesta\ may
72- heuristically decide.
73+ Force the mixing (of DM or H) in the first SCF step, regardless of
74+ what \siesta\ may heuristically decide.
75
76 This overrules \fdf{SCF.Mix!First}.
77
78@@ -10915,6 +10934,12 @@
79 in a \tbtrans\ calculation to achieve a converged transmission
80 function.
81
82+ \item%
83+ Energies from \tsiesta\ are \emph{not} to be trusted since the open
84+ boundaries complicates the energy calculation. Therefore you cannot
85+ compare energies between different calculations and/or different
86+ bias'.
87+
88 \end{itemize}
89
90 \subsection{Electrodes}
91@@ -12137,12 +12162,18 @@
92
93 \end{fdfentry}
94
95-\begin{fdfentry}{TS!Elecs!DM.Init}[string]<diagon|bulk>
96+\begin{fdfentry}{TS!Elecs!DM.Init}[string]<bulk|diagon>
97
98 The density matrix elements in the electrodes may be forcefully set
99 to the bulk values by reading in the DM of the corresponding
100- electrode. This may be set to \fdf*{bulk} to forcefully set the bulk
101- values.
102+ electrode. This is by default \fdf*{bulk} for non-bias calculation,
103+ and otherwise defaults to \fdf*{diagon}.
104+
105+ This step is only required once since the DM will be constant in the
106+ electrode regions and thus it will be propagated through the
107+ \sysfile{TSDE} files without having to re-do this step.
108+ If this is done (by default) in the 0 bias calculation it will also
109+ be effective in the bias calculation.
110
111 \note this will automatically be set to \fdf*{diagon} for
112 non-equilibrium calculations. If bulk density matrix elements are
113
114=== modified file 'Src/Makefile'
115--- Src/Makefile 2019-05-21 09:18:42 +0000
116+++ Src/Makefile 2019-08-18 23:02:58 +0000
117@@ -434,7 +434,8 @@
118 m_ts_cctype.o ts_init.o ts_show_regions.o m_ts_electype.o \
119 m_ts_method.o m_ts_elec_se.o \
120 m_ts_debug.o m_ts_tdir.o \
121- m_ts_chem_pot.o m_transiesta.o m_ts_hartree.o m_ts_voltage.o
122+ m_ts_chem_pot.o m_transiesta.o m_ts_hartree.o m_ts_voltage.o \
123+ ts_energies.o
124
125 # contour objects
126 TS_OBJS += m_ts_contour_eq.o m_ts_contour_neq.o m_ts_io_ctype.o \
127@@ -647,8 +648,9 @@
128 compute_ebs_shift.o: m_mpi_utils.o parallel.o precision.o
129 compute_energies.o: atomlist.o class_SpData1D.o class_SpData2D.o dhscf.o
130 compute_energies.o: files.o m_dipol.o m_energies.o m_mpi_utils.o m_ntm.o
131-compute_energies.o: m_rhog.o m_spin.o precision.o siesta_geom.o
132-compute_energies.o: siesta_options.o sparse_matrices.o
133+compute_energies.o: m_rhog.o m_spin.o m_ts_global_vars.o precision.o
134+compute_energies.o: siesta_geom.o siesta_options.o sparse_matrices.o
135+compute_energies.o: ts_energies.o
136 compute_max_diff.o: m_mpi_utils.o precision.o
137 compute_norm.o: m_mpi_utils.o m_spin.o precision.o sparse_matrices.o
138 compute_pw_matrix.o: alloc.o m_planewavematrix.o m_planewavematrixvar.o
139@@ -683,11 +685,11 @@
140 dhscf.o: vmat.o
141 diag.o: alloc.o diag_option.o parallel.o precision.o sys.o
142 diag2g.o: fermid.o intrinsic_missing.o parallel.o parallelsubs.o precision.o
143-diag2g.o: sys.o
144-diag2k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o
145+diag2g.o: sys.o writewave.o
146+diag2k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o writewave.o
147 diag3g.o: fermid.o intrinsic_missing.o parallel.o parallelsubs.o precision.o
148-diag3g.o: sys.o
149-diag3k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o
150+diag3g.o: sys.o writewave.o
151+diag3k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o writewave.o
152 diag_option.o: parallel.o precision.o
153 diagg.o: alloc.o fermid.o intrinsic_missing.o m_spin.o parallel.o
154 diagg.o: parallelsubs.o precision.o sys.o writewave.o
155@@ -822,7 +824,7 @@
156 m_dscfcomm.o: alloc.o parallel.o parallelsubs.o precision.o schecomm.o
157 m_efield.o: atmfuncs.o m_cite.o m_ts_global_vars.o mesh.o parallel.o
158 m_efield.o: precision.o siesta_cml.o siesta_geom.o sys.o units.o
159-m_energies.o: precision.o
160+m_energies.o: m_ts_global_vars.o precision.o
161 m_eo.o: precision.o
162 m_exp_coord.o: files.o m_os.o parallel.o precision.o units.o
163 m_filter.o: bessph.o precision.o radfft.o sys.o
164@@ -935,12 +937,13 @@
165 m_test_io.o: precision.o
166 m_timer.o: m_io.o m_walltime.o moreParallelSubs.o parallel.o precision.o sys.o
167 m_transiesta.o: alloc.o class_OrbitalDistribution.o class_SpData1D.o
168-m_transiesta.o: class_SpData2D.o class_Sparsity.o files.o m_interpolate.o
169-m_transiesta.o: m_ts_charge.o m_ts_contour_eq.o m_ts_contour_neq.o
170-m_transiesta.o: m_ts_electype.o m_ts_fullg.o m_ts_fullk.o m_ts_gf.o
171-m_transiesta.o: m_ts_kpoints.o m_ts_method.o m_ts_mumpsg.o m_ts_mumpsk.o
172-m_transiesta.o: m_ts_options.o m_ts_sparse.o m_ts_tri_common.o m_ts_tri_init.o
173-m_transiesta.o: m_ts_trig.o m_ts_trik.o parallel.o precision.o units.o
174+m_transiesta.o: class_SpData2D.o class_Sparsity.o files.o m_energies.o
175+m_transiesta.o: m_interpolate.o m_ts_charge.o m_ts_contour_eq.o
176+m_transiesta.o: m_ts_contour_neq.o m_ts_electype.o m_ts_fullg.o m_ts_fullk.o
177+m_transiesta.o: m_ts_gf.o m_ts_kpoints.o m_ts_method.o m_ts_mumpsg.o
178+m_transiesta.o: m_ts_mumpsk.o m_ts_options.o m_ts_sparse.o m_ts_tri_common.o
179+m_transiesta.o: m_ts_tri_init.o m_ts_trig.o m_ts_trik.o parallel.o precision.o
180+m_transiesta.o: units.o
181 m_trialorbitalclass.o: precision.o units.o
182 m_trimat_invert.o: class_TriMat.o intrinsic_missing.o m_pivot_array.o
183 m_trimat_invert.o: precision.o
184@@ -1321,6 +1324,10 @@
185 timer.o: timer_tree.o
186 timer_tree.o: m_walltime.o
187 transition_rate.o: alloc.o fermid.o parallel.o parallelsubs.o precision.o sys.o
188+ts_energies.o: class_OrbitalDistribution.o class_SpData1D.o class_SpData2D.o
189+ts_energies.o: class_Sparsity.o geom_helper.o m_energies.o m_spin.o
190+ts_energies.o: m_ts_electype.o m_ts_method.o m_ts_options.o parallel.o
191+ts_energies.o: precision.o sparse_matrices.o
192 ts_init.o: m_fixed.o m_os.o m_ts_cctype.o m_ts_charge.o m_ts_electrode.o
193 ts_init.o: m_ts_electype.o m_ts_gf.o m_ts_global_vars.o m_ts_kpoints.o
194 ts_init.o: m_ts_method.o m_ts_options.o parallel.o siesta_options.o
195@@ -1346,7 +1353,7 @@
196 write_subs.o: m_steps.o m_stress.o m_ts_global_vars.o parallel.o precision.o
197 write_subs.o: siesta_cml.o siesta_geom.o siesta_options.o units.o zmatrix.o
198 writewave.o: alloc.o atmfuncs.o atomlist.o densematrix.o diag.o diag_option.o
199-writewave.o: get_kpoints_scale.o kpoint_grid.o m_spin.o parallel.o
200+writewave.o: get_kpoints_scale.o kpoint_grid.o m_spin.o m_spin.o parallel.o
201 writewave.o: parallelsubs.o precision.o siesta_geom.o sys.o units.o
202 xml.o: precision.o
203 zm_broyden_optim.o: m_broyddj_nocomm.o parallel.o precision.o sys.o units.o
204@@ -1506,6 +1513,7 @@
205 t_spin.o: m_spin.o
206 timer_options.o: timer.o
207 trialorbitalclass.o: m_trialorbitalclass.o
208+ts_energies_m.o: ts_energies.o
209 version_info.o: version.o
210 write_subs_energies.o: write_subs.o
211 write_subs_positions.o: write_subs.o
212
213=== modified file 'Src/alloc.F90'
214--- Src/alloc.F90 2017-10-10 19:27:53 +0000
215+++ Src/alloc.F90 2019-08-18 23:02:58 +0000
216@@ -45,7 +45,7 @@
217 ! Notice that, if the restore call is skipped, the new defaults will
218 ! stay in effect until a new call to alloc_dafault is made.
219 ! ==================================================================
220-! SUBROUTINE alloc_report( level, unit, file, printNow, threshold )
221+! SUBROUTINE alloc_report( level, unit, file, printNow, threshold, shutdown )
222 ! Sets the output file for the allocation report
223 ! INPUT (optional):
224 ! integer :: level : Level (detail) of report
225@@ -53,7 +53,8 @@
226 ! character*(*):: file : Output file name
227 ! logical :: printNow : If present & true => print report now
228 ! real(dp) :: threshold : Memory threshold (in bytes) to print
229-! the memory use of any given array
230+! the memory use of any given array
231+! logical :: shutdown : If present & true then close output unit.
232 ! BEHAVIOR:
233 ! The detail/extent of the report increses with the value of level:
234 ! level=0 : no report at all (the default)
235@@ -73,6 +74,13 @@
236 ! reports are written consecutively in the same file, each with a
237 ! time stamp header.
238 ! If threshold is not present, threshold=0 is assumed.
239+! When performing library invocations of this module in say
240+! external methods it is vital to close units before exiting the
241+! library to ensure that no dangling files are kept open.
242+! To ensure the file is closed before return one can use
243+! the shutdown=.true. argument to forcefully close (and free)
244+! the unit used to report. If not present or .false. the unit
245+! will be kept open.
246 ! In parallel execution, the report sections that involve every
247 ! reallocation (levels 1, 3, and 4) are written only by node 0.
248 ! The section that is written upon request (level 2) is written
249
250=== modified file 'Src/atmfuncs.f'
251--- Src/atmfuncs.f 2016-04-29 07:31:13 +0000
252+++ Src/atmfuncs.f 2019-08-18 23:02:58 +0000
253@@ -23,11 +23,6 @@
254
255 implicit none
256 !
257- type(species_info), pointer :: spp
258- type(rad_func), pointer :: op
259- type(rad_func), pointer :: pp
260- type(rad_func), pointer :: func
261-!
262 character(len=79) message
263 integer, parameter :: max_l = 5
264 integer, parameter :: max_ilm = (max_l+1)*(max_l+1)
265@@ -47,10 +42,8 @@
266
267 public :: orb_gindex, kbproj_gindex, vna_gindex, ldau_gindex
268 private
269- !
270+
271 contains
272-!
273-!
274
275 subroutine chk(name,is)
276 character(len=*), intent(in) :: name
277@@ -290,9 +283,10 @@
278 C IO = 0 => Local pseudopotential
279 C************************OUTPUT*****************************************
280 C INTEGER LOFIO : Quantum number L of orbital or KB projector
281+ type(species_info), pointer :: spp
282
283 call chk('lofio',is)
284-
285+
286 spp => species(is)
287 if (io.gt.0) then
288 if (io.gt.spp%norbs) call die("lofio: No such orbital")
289@@ -320,6 +314,7 @@
290 C IO = 0 => Local pseudopotential
291 C************************OUTPUT*****************************************
292 C INTEGER MOFIO : Quantum number m of orbital or KB projector
293+ type(species_info), pointer :: spp
294
295 call chk('mofio',is)
296
297@@ -348,6 +343,7 @@
298 C IO > 0 => Basis orbitals
299 C************************OUTPUT*****************************************
300 C INTEGER ZETAFIO : Zeta number of orbital
301+ type(species_info), pointer :: spp
302
303 call chk('mofio',is)
304
305@@ -372,6 +368,7 @@
306 C Returns cutoff radius of Kleynman-Bylander projectors and
307 C atomic basis orbitals.
308 C Distances in Bohr
309+ type(species_info), pointer :: spp
310
311 call chk('rcut',is)
312
313@@ -379,12 +376,10 @@
314 if (io.gt.0) then
315 if (io.gt.spp%norbs) call die("rcut: No such orbital")
316
317- op => spp%orbnl(spp%orb_index(io))
318- rcut = op%cutoff
319+ rcut = spp%orbnl(spp%orb_index(io))%cutoff
320 else if (io.lt.0) then
321 if (-io.gt.spp%nprojs) call die("rcut: No such projector")
322- pp => spp%pjnl(spp%pj_index(-io))
323- rcut = pp%cutoff
324+ rcut = spp%pjnl(spp%pj_index(-io))%cutoff
325 else
326 rcut = spp%vna%cutoff
327 endif
328@@ -424,6 +419,7 @@
329 data (sym_label(i),i=17,25)
330 . / 'gxy(x2-y2)', 'gzy(3x2-y2)', 'gz2xy', 'gz3y', 'gz4',
331 . 'gz3x', 'gz2(x2-y2)', 'gzx(x2-3y2)', 'gx4+y4' /
332+ type(species_info), pointer :: spp
333
334 call chk('rcut',is)
335
336@@ -461,12 +457,12 @@
337 ! io>0 => basis orbitals
338
339 C If true, the orbital IO is a perturbative polarization orbital
340+ type(species_info), pointer :: spp
341
342 spp => species(is)
343 if ( (io .gt. species(is)%norbs) .or.
344 $ (io .le. 0)) call die("pol: Wrong io")
345
346- spp => species(is)
347 pol = spp%orbnl_ispol(spp%orb_index(io))
348
349 end function pol
350@@ -483,6 +479,7 @@
351 C Sum_lm( epsKB_l * <Psi|Phi_lm> * <Phi_lm|Psi'> )
352 C where Phi_lm is returned by subroutine PHIATM.
353 C Energy in Rydbergs.
354+ type(species_info), pointer :: spp
355
356 integer ik
357
358@@ -504,13 +501,14 @@
359 C Returns local part of neutral-atom Kleynman-Bylander pseudopotential.
360 C Distances in Bohr, Energies in Rydbergs
361 C 2) Returns exactly zero when |R| > RCUT(IS,0)
362+ type(rad_func), pointer :: func
363
364 real(dp) rmod, dvdr
365
366 call chk('vna_sub',is)
367
368- v=0.0_dp
369- grv(1:3)=0.0_dp
370+ v = 0.0_dp
371+ grv(1:3) = 0.0_dp
372
373 if (floating(is)) return
374
375@@ -520,7 +518,7 @@
376 if (rmod .gt. func%cutoff) return
377
378 call rad_get(func,rmod,v,dvdr)
379- rmod=rmod+tiny20
380+ rmod = rmod + tiny20
381 grv(1:3) = dvdr * r(1:3)/rmod
382
383 end subroutine vna_sub
384@@ -535,13 +533,14 @@
385 C Distances in Bohr, Energies in Rydbergs
386 C Density in electrons/Bohr**3
387 C 2) Returns exactly zero when |R| > Rchloc
388+ type(rad_func), pointer :: func
389
390 real(dp) :: rmod, dchdr
391
392 call chk('psch',is)
393
394- ch=0.0_dp
395- grch(1:3)=0.0_dp
396+ ch = 0.0_dp
397+ grch(1:3) = 0.0_dp
398
399 if (floating(is)) return
400
401@@ -550,7 +549,7 @@
402 if (rmod .gt. func%cutoff) return
403
404 call rad_get(func,rmod,ch,dchdr)
405- rmod=rmod+tiny20
406+ rmod = rmod + tiny20
407 grch(1:3) = dchdr * r(1:3)/rmod
408
409 end subroutine psch
410@@ -565,19 +564,20 @@
411 C in the xc potential.
412 C Distances in Bohr, Energies in Rydbergs, Density in electrons/Bohr**3
413 C 2) Returns exactly zero when |R| > Rcore
414+ type(rad_func), pointer :: func
415
416 real(dp) rmod, dchdr
417
418 call chk('chcore_sub',is)
419
420- ch=0.0_dp
421- grch(1:3)=0.0_dp
422+ ch = 0.0_dp
423+ grch(1:3) = 0.0_dp
424
425 if (floating(is)) return
426
427 func => species(is)%core
428 rmod = sqrt(sum(r*r))
429- rmod=rmod+tiny20 ! Moved here. JMS, Dec.2012
430+ rmod = rmod + tiny20 ! Moved here. JMS, Dec.2012
431 if (rmod .gt. func%cutoff) return
432
433 call rad_get(func,rmod,ch,dchdr)
434@@ -611,6 +611,8 @@
435 C 5) Prints a message and stops when no data exits for IS and/or IO
436 C 6) Returns exactly zero when |R| > RCUT(IS,IO)
437 C 7) PHIATM with IO = 0 is strictly equivalent to VNA_SUB
438+ type(species_info), pointer :: spp
439+ type(rad_func), pointer :: func
440
441 real(dp) rmod, phir, dphidr
442 real(dp) rly(max_ilm), grly(3,max_ilm)
443@@ -652,6 +654,7 @@
444 ilm = l*l + l + m + 1
445 call rlylm( l, r, rly, grly )
446 phi = phir * rly(ilm)
447+!GCC$ unroll 3
448 do i = 1,3
449 grphi(i)=dphidr*rly(ilm)*r(i)/rmod+phir*grly(i,ilm)
450 enddo
451@@ -687,6 +690,8 @@
452 C where epsKB_l is returned by function EPSKB
453 C 6) Returns exactly zero when |R| > RCUT(IS,IO)
454 C 7) RPHIATM with ITYPE = 0 is strictly equivalent to VNA_SUB
455+ type(species_info), pointer :: spp
456+ type(rad_func), pointer :: func
457
458 real(dp) rmod, phir
459 integer l, m, ik
460@@ -734,16 +739,17 @@
461 end subroutine rphiatm
462
463
464- subroutine all_phi( is, it, r, nphi, phi, grphi )
465+ subroutine all_phi( is, it, r, maxnphi, nphi, phi, grphi )
466 integer, intent(in) :: is ! Species index
467 integer, intent(in) :: it ! Orbital-type switch:
468 ! IT > 0 => Basis orbitals
469 ! IT < 0 => KB projectors
470 real(dp), intent(in) :: r(3) ! Point vector, relative to atom
471+ integer, intent(in) :: maxnphi ! Maximum number of phi's
472 integer, intent(out) :: nphi ! Number of phi's
473- real(dp), intent(out) :: phi(:) ! Basis orbital, KB projector, or
474+ real(dp), intent(out) :: phi(maxnphi) ! Basis orbital, KB projector, or
475 ! local pseudopotential
476- real(dp), optional, intent(out) :: grphi(:,:) ! Gradient of phi
477+ real(dp), optional, intent(out) :: grphi(3,maxnphi) ! Gradient of phi
478
479 C Returns Kleynman-Bylander local pseudopotential, nonlocal projectors,
480 C and atomic basis orbitals (and their gradients).
481@@ -763,16 +769,15 @@
482 C 6) Returns exactly zero when |R| > RCUT(IS,IO)
483 C 8) If arrays phi or grphi are too small, returns with the required
484 C value of nphi
485+ type(species_info), pointer :: spp
486
487- integer i, jlm, l, lmax, m, maxlm, n
488+ integer i, jlm, l, lmax, m, maxlm
489 double precision rmod, phir, dphidr
490 real(dp) rly(max_ilm), grly(3,max_ilm)
491
492- integer, parameter :: maxphi=100
493-
494- integer :: ilm(maxphi)
495- double precision :: rmax(maxphi)
496- logical :: within(maxphi)
497+ integer :: ilm(maxnphi)
498+ double precision :: rmax(maxnphi)
499+ logical :: within(maxnphi)
500
501 call chk('all_phi',is)
502 spp => species(is)
503@@ -786,37 +791,24 @@
504 call die("all_phi: Please use phiatm to get Vna...")
505 endif
506
507- if (nphi.gt.maxphi) call die('all_phi: maxphi too small')
508+ if (nphi.gt.maxnphi) call die('all_phi: maxphi too small')
509
510 if (it.gt.0) then
511 do i = 1, nphi
512 l = spp%orb_l(i)
513 m = spp%orb_m(i)
514 ilm(i) = l*(l+1)+m+1
515- op => spp%orbnl(spp%orb_index(i))
516- rmax(i) = op%cutoff
517+ rmax(i) = spp%orbnl(spp%orb_index(i))%cutoff
518 enddo
519 else
520 do i = 1, nphi
521- pp => spp%pjnl(spp%pj_index(i))
522- rmax(i) = pp%cutoff
523+ rmax(i) = spp%pjnl(spp%pj_index(i))%cutoff
524 l = spp%pj_l(i)
525 m = spp%pj_m(i)
526 ilm(i) = l*(l+1)+m+1
527 enddo
528 endif
529
530-! Check size of output arrays
531- if (present(grphi)) then
532- if (size(grphi,1).ne.3)
533- . call die('all_phi: incorrect first dimension of grphi')
534- n = min( size(phi), size(grphi,2) )
535- else
536- n = size(phi)
537- endif
538-! Return if the caller did not provide arrays large enough...
539- if (n.lt.nphi) return
540-
541 ! Initialize orbital values
542 phi(1:nphi) = 0._dp
543 if (present(grphi)) grphi(:,1:nphi) = 0._dp
544@@ -841,14 +833,11 @@
545 if (.not.within(i)) cycle i_loop
546
547 ! Find radial part
548-
549 if (it.gt.0) then
550- func => spp%orbnl(spp%orb_index(i))
551- else
552- func => spp%pjnl(spp%pj_index(i))
553- endif
554-
555- call rad_get(func,rmod,phir,dphidr)
556+ call rad_get(spp%orbnl(spp%orb_index(i)),rmod,phir,dphidr)
557+ else
558+ call rad_get(spp%pjnl(spp%pj_index(i)),rmod,phir,dphidr)
559+ end if
560
561 ! Multiply radial and angular parts
562 jlm = ilm(i)
563@@ -875,6 +864,7 @@
564 C due to the overlap of the two 'local pseudopotential charge densities'
565 C Distances in Bohr, Energies in Rydbergs
566 C 2) Returns exactly zero when |R| > Rchloc
567+ type(rad_func), pointer :: func
568
569 integer ismx, ismn, indx
570 real(dp) r_local
571@@ -910,6 +900,7 @@
572 integer, intent(in) :: l ! Angular momentum of the basis funcs
573 C Returns the number of different basis functions
574 C with the same angular momentum and for a given species
575+ type(species_info), pointer :: spp
576
577 integer i
578
579@@ -930,7 +921,8 @@
580
581 C Returns the number of different KB projectors
582 C with the same angular momentum and for a given species
583-
584+ type(species_info), pointer :: spp
585+
586 integer i
587
588 call chk('nkbl_func',is)
589
590=== modified file 'Src/bands.F'
591--- Src/bands.F 2018-10-17 13:04:40 +0000
592+++ Src/bands.F 2019-08-18 23:02:58 +0000
593@@ -296,7 +296,8 @@
594 end subroutine initbands
595
596
597- subroutine bands( no_s, nspin, maxspn, no_u, no_l, maxnh, maxk,
598+ subroutine bands( no_s, spin,
599+ . no_u, no_l,maxnh, maxk,
600 . numh, listhptr, listh, H, S, ef, xij, indxuo,
601 . writeb, nk, kpoint, ek, occtol, getPSI )
602
603@@ -305,40 +306,39 @@
604 C Written by J.Soler, August 1997 and August 1998.
605 C Initialisation moved into a separate routine, JDG Jan 2000.
606 C WFS options by A. Garcia, April 2012
607+C Cleaned for tSpin by N. Papior, August 2019
608
609 C **************************** INPUT **********************************
610 C integer no_s : Number of basis orbitals in supercell
611-C integer nspin : Number of spin components
612-C integer maxspn : Maximum number of spin components
613-C nspin /= maxspn for spin-orbit
614+C type(tSpin) spin : Containing all spin-information
615 C integer maxnh : Maximum number of orbitals interacting
616 C with any orbital
617 C integer maxk : Last dimension of kpoint and ek
618-C integer numh(no_l) : Number of nonzero elements of each row
619+C integer numh(no_l) : Number of nonzero elements of each row
620 C of hamiltonian matrix
621-C integer listhptr(no_l) : Pointer to start of each row of the
622+C integer listhptr(no_l) : Pointer to start of each row of the
623 C hamiltonian matrix
624 C integer listh(maxlh) : Nonzero hamiltonian-matrix element
625 C column indexes for each matrix row
626-C real*8 H(maxnh,nspin) : Hamiltonian in sparse form
627+C real*8 H(maxnh,spin%H) : Hamiltonian in sparse form
628 C real*8 S(maxnh) : Overlap in sparse form
629 C real*8 ef : Fermi energy
630 C real*8 xij(3,maxnh) : Vectors between orbital centers (sparse)
631 C (not used if only gamma point)
632 C integer no_u : First dimension of ek
633-C integer no_l : Second dimension of H and S
634-C integer indxuo(no_s) : Index of equivalent orbital in unit cell
635+C integer no_l : Second dimension of H and S
636+C integer indxuo(no_s) : Index of equivalent orbital in unit cell
637 C Unit cell orbitals must be the first in
638 C orbital lists, i.e. indxuo.le.no_l, with
639 C no_l the number of orbitals in unit cell
640 C real*8 ef : Fermi energy
641 C logical writeb : This routine must write bands?
642-C integer no_u : Total number of orbitals in unit cell
643+C integer no_u : Total number of orbitals in unit cell
644 C integer nk : Number of band k points
645 C real*8 kpoint(3,maxk) : k point vectors
646 C real*8 occtol : Occupancy threshold for DM build
647 C *************************** OUTPUT **********************************
648-C real*8 ek(no_u,maxspn,maxk) : Eigenvalues
649+C real*8 ek(no_u,spin%spinor,maxk) : Eigenvalues
650 C *************************** UNITS ***********************************
651 C Lengths in atomic units (Bohr).
652 C k vectors in reciprocal atomic units.
653@@ -366,7 +366,7 @@
654 use atmfuncs, only : symfio, cnfigfio, labelfis, nofis
655 use writewave, only : wfs_filename
656
657- use m_spin, only: NoMagn, SPpol, NonCol, SpOrb
658+ use t_spin, only: tSpin
659
660 use m_diag_option, only: ParallelOverK, Serial
661 use m_diag, only: diag_init
662@@ -374,13 +374,13 @@
663
664 implicit none
665
666- integer :: nspin
667- integer :: maxk, maxnh, maxspn, no_u, no_l, nk, no_s,
668+ type(tSpin), intent(in) :: spin
669+ integer :: maxk, maxnh, no_u, no_l, nk, no_s,
670 . indxuo(no_s), listh(maxnh), numh(no_l),
671- . listhptr(*), nuo
672+ . listhptr(*)
673 logical :: writeb
674- real(dp) :: ef, ek(no_u,maxspn,maxk),
675- . H(maxnh,nspin), kpoint(3,maxk),
676+ real(dp) :: ef, ek(no_u,spin%spinor,maxk),
677+ . H(maxnh,spin%H), kpoint(3,maxk),
678 . S(maxnh), xij(3,maxnh), occtol
679 logical, intent(in) :: getPSI
680
681@@ -394,7 +394,6 @@
682 logical, parameter :: fixspin = .false.
683
684 integer :: ik, il, io, ispin, iu, iu_wfs, iuo, naux, nhs, j
685-
686 logical :: SaveParallelOverK
687
688 real(dp)
689@@ -405,17 +404,10 @@
690 real(dp), dimension(:), pointer :: aux => null()
691
692 parameter ( eV = 1.d0 / 13.60580d0 )
693+
694 save Dnew, Enew, e1, e2, qk, qtot, temp, wk
695-
696 data Dnew, Enew, e1, e2, qk, qtot, temp, wk /8*0.d0/
697
698-C Get number of local orbitals
699-#ifdef MPI
700- call GetNodeOrbs(no_u,Node,Nodes,nuo)
701-#else
702- nuo = no_u
703-#endif
704-
705 C Start time counter
706 call timer( 'bands', 1 )
707
708@@ -430,12 +422,13 @@
709 endif
710
711 C Allocate local arrays - only aux is relevant here
712- if ( nspin >=4 ) then
713- nhs = 2 * (2*no_u) * (2*no_l)
714+
715+ if ( spin%Grid == 4 ) then
716+ nhs = 2 * (2*no_u) * (2*no_l)
717 else
718 nhs = 2 * no_u*no_l
719 endif
720- naux = 2*no_u*5
721+ naux = 2*no_u*5
722 call allocDenseMatrix(nhs, nhs, nhs)
723 call re_alloc( aux, 1, naux, 'aux', 'bands' )
724
725@@ -448,7 +441,7 @@
726 rewind (iu_wfs)
727
728 write(iu_wfs) nk, .false. ! nk, Gamma, same file-format in WFS as for Gamma-point
729- write(iu_wfs) nspin
730+ write(iu_wfs) spin%Grid
731 write(iu_wfs) no_u
732 write(iu_wfs) (iaorb(j),labelfis(isa(iaorb(j))),
733 . iphorb(j), cnfigfio(isa(iaorb(j)),iphorb(j)),
734@@ -458,7 +451,7 @@
735 endif
736
737 C Find the band energies
738- if (NoMagn .or. SPpol) then
739+ if ( spin%Grid < 4 ) then
740 C fixspin and qs are not used in diagk, since getD=.false. ...
741 qs(1) = 0.0_dp
742 qs(2) = 0.0_dp
743@@ -475,7 +468,7 @@
744 call diag_init()
745 end if
746
747- call diagk( nspin, no_l, no_s, maxspn,
748+ call diagk( spin%H, no_l, no_s, spin%spinor,
749 . maxnh, maxnh,
750 . no_u, numh, listhptr, listh, numh, listhptr,
751 . listh, H, S, getD, getPSI, fixspin, qtot, qs, temp,
752@@ -487,29 +480,17 @@
753 ParallelOverK = SaveParallelOverK
754 if ( ParallelOverK ) Serial = .true.
755
756- elseif ( NonCol ) then
757- if (getPSI) then
758- if (node==0) then
759- write(6,*) "No WFS for non-colinear spin, yet..."
760- endif
761- RETURN
762- endif
763+ elseif ( spin%NCol ) then
764 call diag2k(no_l, no_s, maxnh, maxnh, no_u,
765 . numh, listhptr, listh, numh, listhptr,
766- . listh, H, S, getD, qtot, temp, e1, e2,
767+ . listh, H, S, getD, getPSI, qtot, temp, e1, e2,
768 . xij, indxuo, nk, kpoint, wk,
769 . ek, qk, Dnew, Enew, ef, Entropy,
770 . Haux, Saux, psi, Haux, Saux, aux,
771 . no_u, occtol, 1, no_u )
772
773- elseif ( SpOrb ) then
774- if (getPSI) then
775- if (node==0) then
776- write(6,*) "No WFS for spin-orbit, yet..."
777- endif
778- return
779- end if
780- call diag3k(nuo, no_s, maxnh, maxnh, no_u, numh,
781+ elseif ( spin%SO ) then
782+ call diag3k(no_l, no_s, maxnh, maxnh, no_u, numh,
783 . listhptr, listh, numh, listhptr, listh,
784 . H, S, getD, getPSI, qtot, temp, e1, e2, xij,
785 . indxuo, nk, kpoint, wk, ek, qk, Dnew,
786@@ -517,7 +498,7 @@
787 . Haux, Saux, psi, Haux, Saux, aux,
788 . no_u, occtol, 1, no_u )
789 else
790- call die( 'bands: ERROR: incorrect value of nspin')
791+ call die( 'bands: ERROR: incorrect value of spin%H')
792 endif
793
794 C Write bands
795@@ -540,7 +521,7 @@
796 . path = path + sqrt( (kpoint(1,ik)-kpoint(1,ik-1))**2 +
797 . (kpoint(2,ik)-kpoint(2,ik-1))**2 +
798 . (kpoint(3,ik)-kpoint(3,ik-1))**2 )
799- do ispin = 1,maxspn
800+ do ispin = 1, spin%spinor
801 do io = 1, no_u
802 emax = max( emax, ek(io,ispin,ik) )
803 emin = min( emin, ek(io,ispin,ik) )
804@@ -552,13 +533,14 @@
805 write(iu,*) emin/eV, emax/eV
806
807 C Write eigenvalues
808- if ( nspin <= 2 ) then
809- write(iu,*) no_u, maxspn, nk
810- else if ( nspin <= 8 ) then
811- write(iu,*) 2*no_u, 1, nk
812- else
813- call die( 'bands: ERROR: incorrect value of nspin' )
814- end if
815+ if ( spin%Grid == 4 ) then
816+ write(iu,*) 2*no_u, 1, nk ! A single spin channel, double number of bands
817+ else
818+ write(iu,*) no_u, spin%spinor, nk
819+ endif
820+
821+ ! For non-collinear calculations, the ek array will contain the first no_u
822+ ! bands in ek(:,1,ik), and the next no_u bands in ek(:,2,ik)
823 path = 0.d0
824 do ik = 1,nk
825 if (nlines .ge. 0) then
826@@ -568,11 +550,11 @@
827 . (kpoint(3,ik)-kpoint(3,ik-1))**2 )
828 write(iu,'(f10.6,10f12.4,/,(10x,10f12.4))')
829 . path, ((ek(io,ispin,ik)/eV,io=1,no_u),
830- . ispin=1,maxspn)
831+ . ispin=1,spin%spinor)
832 else
833 write(iu,'(3f9.5,8f12.4,/,(27x,8f12.4))')
834 . kpoint(1,ik), kpoint(2,ik), kpoint(3,ik),
835- . ((ek(io,ispin,ik)/eV,io=1,no_u),ispin=1,maxspn)
836+ . ((ek(io,ispin,ik)/eV,io=1,no_u),ispin=1,spin%spinor)
837 endif
838 enddo
839
840
841=== modified file 'Src/compute_dm.F'
842--- Src/compute_dm.F 2018-11-02 09:03:25 +0000
843+++ Src/compute_dm.F 2019-08-18 23:02:58 +0000
844@@ -24,7 +24,7 @@
845 & qtot, Qtots, no_l
846 use sys, only: die, bye
847 use Kpoint_grid
848- use m_energies, only: Ebs, Ecorrec, Entropy, DE_NEGF
849+ use m_energies, only: Ebs, Ecorrec, Entropy
850 use m_energies, only: Ef, Efs
851 use m_rmaxh
852 use m_eo
853@@ -231,7 +231,7 @@
854 call transiesta(iscf,spin%H, block_dist, sparse_pattern,
855 & no_u == no_s, ucell, nsc, isc_off, no_u, na_u,
856 & lasto, xa, maxnh,
857- & H, S, Dscf, Escf, Ef, Qtot, .false., DE_NEGF )
858+ & H, S, Dscf, Escf, Ef, Qtot, .false.)
859
860 Ecorrec = 0._dp
861 Entropy = 0.0_dp
862
863=== modified file 'Src/compute_energies.F90'
864--- Src/compute_energies.F90 2017-12-21 15:49:49 +0000
865+++ Src/compute_energies.F90 2019-08-18 23:02:58 +0000
866@@ -55,6 +55,8 @@
867 #ifdef MPI
868 use m_mpi_utils, only: globalize_sum
869 #endif
870+ use m_ts_global_vars, only: TSrun
871+ use ts_energies_m, only: ts_compute_energies
872
873 integer, intent(in) :: iscf
874
875@@ -85,6 +87,10 @@
876 ! E0 = Ena + Ekin + Enl + Eso - Eions
877
878 call update_DEna()
879+ ! Also call transiesta
880+ if ( TSrun ) then
881+ call ts_compute_energies()
882+ end if
883 call update_Etot()
884
885
886@@ -94,9 +100,13 @@
887
888 if (mix_charge) then ! possibly add mixH here
889 EHarrs = 0.0_dp
890+ NEGF_Eharrs = 0._dp
891 else
892 call compute_DEharr()
893 Eharrs = Etot + DEharr
894+ if ( TSrun ) then
895+ NEGF_Eharrs = NEGF_Etot + NEGF_DEharr
896+ end if
897 endif
898
899 ! Possible correction to Etot if mixing the DM. This is purely
900@@ -218,6 +228,8 @@
901 use class_dSpData1D, only : val
902 use class_dSpData2D, only : val
903 use sparse_matrices, only: H_kin_1D, H_vkb_1D, H_so_2D
904+ use ts_energies_m, only: ts_compute_energies
905+ use m_ts_global_vars, only: TSrun
906
907 type(filesOut_t) :: filesOut ! blank output file names
908 real(dp), pointer :: H_vkb(:), H_kin(:), H_so(:,:)
909@@ -281,7 +293,12 @@
910 Eso = buffer1
911 #endif
912 end if
913-
914+
915+ ! Also call transiesta
916+ if ( TSrun ) then
917+ call ts_compute_energies()
918+ end if
919+
920 ! E0 = Ena + Ekin + Enl + Eso - Eions
921
922 ! Clarify: Ecorrec (from O(N))
923
924=== modified file 'Src/delk.F90'
925--- Src/delk.F90 2016-03-01 14:24:48 +0000
926+++ Src/delk.F90 2019-08-18 23:02:58 +0000
927@@ -386,7 +386,7 @@
928 r2sp = sum(dxsp**2)
929 if ( r2sp < r2cut(is) ) then
930 !$OMP critical
931- call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )
932+ call all_phi( is, +1, dxsp, maxoa, nphiloc, phia(:,isp) )
933 !$OMP end critical
934 else
935 phia(:,isp) = 0.0_dp
936
937=== modified file 'Src/dfscf.f'
938--- Src/dfscf.f 2018-04-22 00:13:43 +0000
939+++ Src/dfscf.f 2019-08-18 23:02:58 +0000
940@@ -303,7 +303,7 @@
941 dxsp(1:3,isp) = xdop(1:3,iop)+xdsp(1:3,isp)-dxa(1:3,ia)
942 r2sp = dxsp(1,isp)**2 + dxsp(2,isp)**2 + dxsp(3,isp)**2
943 if (r2sp.lt.r2cut(is)) then
944- call all_phi( is,+1, dxsp(:,isp), nphiloc,
945+ call all_phi( is,+1, dxsp(:,isp), maxoa, nphiloc,
946 . phia(:,isp), grada(:,:,isp))
947 else
948 phia(:,isp) = 0.0_dp
949
950=== modified file 'Src/dhscf.F'
951--- Src/dhscf.F 2019-06-27 10:49:55 +0000
952+++ Src/dhscf.F 2019-08-18 23:02:58 +0000
953@@ -948,7 +948,7 @@
954 call de_alloc( DRho_par, 'DRho_par','dhscf' )
955
956 if ( debug_dhscf ) then
957- write(*,debug_fmt) Node,'DRho',
958+ write(*,debug_fmt) Node,'Rho',
959 & (sqrt(sum(DRho(:,ispin)**2)),ispin=1,nspin)
960 end if
961
962@@ -1141,6 +1141,11 @@
963 enddo
964 !$OMP end parallel do
965
966+ if ( debug_dhscf ) then
967+ write(*,debug_fmt) Node,'DRho',
968+ & (sqrt(sum(DRho(:,ispin)**2)),ispin=1,nspin)
969+ end if
970+
971 C ----------------------------------------------------------------------
972 C Save electron density difference
973 C ----------------------------------------------------------------------
974
975=== modified file 'Src/diag2g.F'
976--- Src/diag2g.F 2018-06-25 11:33:42 +0000
977+++ Src/diag2g.F 2019-08-18 23:02:58 +0000
978@@ -7,7 +7,7 @@
979 !
980 subroutine diag2g( nuo, no, maxnh, maxnd, maxo,
981 . numh, listhptr, listh, numd, listdptr,
982- . listd, H, S, getD, qtot, temp, e1, e2,
983+ . listd, H, S, getD, getPSI, qtot, temp, e1, e2,
984 . eo, qo, Dnew, Enew, ef, Entropy,
985 . Haux, Saux, psi, caux,
986 . nuotot, occtol, iscf, neigwanted)
987@@ -19,6 +19,8 @@
988 use sys
989 use parallel, only : Node, Nodes, BlockSize
990 use parallelsubs, only : LocalToGlobalOrb,GlobalToLocalOrb
991+ use writewave, only : writew
992+ use iso_c_binding, only : c_loc, c_f_pointer
993 use m_fermid, only : fermid, stepf
994 use intrinsic_missing, only: MODP
995
996@@ -100,16 +102,19 @@
997 real(dp) Entropy, eo(maxo*2), H(maxnh,4), qo(maxo*2)
998 real(dp) qtot, S(maxnh), temp, occtol
999
1000- complex(dp), dimension(2,nuotot,2*nuo) :: psi
1001+ complex(dp), dimension(2,nuotot,2*nuo), target :: psi
1002 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux
1003- complex(dp), dimension(2,nuotot) :: caux
1004- logical getD
1005+ complex(dp), dimension(2,nuotot), target :: caux
1006+ logical getD, getPSI
1007
1008 ! Internal variables .............................................
1009
1010+ real(dp), pointer :: psi_real_1d(:)
1011+ real(dp), pointer :: aux(:)
1012+
1013 integer BNode, BTest, ie, ierror, iie, iio
1014 integer ind, io, j, jo, nd, iuo, juo
1015- real(dp) ee, pipj, qe, t
1016+ real(dp) ee, pipj, qe, t, k(3)
1017 complex(dp) :: cicj, D11, D22, D12, D21
1018 #ifdef MPI
1019 integer MPIerror
1020@@ -201,6 +206,14 @@
1021 call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,eo,psi,
1022 . 2*neigwanted,iscf,ierror, 2*BlockSize)
1023 endif
1024+
1025+ if (getPSI) then
1026+ k(1:3) = 0.0d0
1027+ call c_f_pointer( c_loc(psi), psi_real_1d, [size(psi)*2] )
1028+ call writew(nuotot,nuo,1,k,1,
1029+ & eo,psi_real_1d,gamma=.true.,
1030+ $ non_coll=.true., blocksize=2*BlockSize)
1031+ endif
1032
1033 ! Check if we are done
1034 if (.not.getD) goto 1001
1035
1036=== modified file 'Src/diag2k.F'
1037--- Src/diag2k.F 2018-04-14 23:14:53 +0000
1038+++ Src/diag2k.F 2019-08-18 23:02:58 +0000
1039@@ -7,7 +7,7 @@
1040 !
1041 subroutine diag2k( nuo, no, maxnh, maxnd, maxo,
1042 . numh, listhptr, listh, numd, listdptr,
1043- . listd, H, S, getD, qtot, temp, e1, e2,
1044+ . listd, H, S, getD, getPsi, qtot, temp, e1, e2,
1045 . xij, indxuo, nk, kpoint, wk,
1046 . eo, qo, Dnew, Enew, ef, Entropy,
1047 . Haux, Saux, psi, Dk, Ek, caux,
1048@@ -20,7 +20,9 @@
1049 use sys
1050 use parallel, only : Node, Nodes, BlockSize
1051 use parallelsubs, only : LocalToGlobalOrb
1052+ use writewave, only : writew
1053 use m_fermid, only : fermid, stepf
1054+ use iso_c_binding, only : c_loc, c_f_pointer
1055 #ifdef MPI
1056 use mpi_siesta
1057 #endif
1058@@ -79,8 +81,8 @@
1059 C integer iscf : SCF cycle number
1060 C integer neigwanted : Number of eigenvalues wanted
1061 C *************************** OUTPUT **********************************
1062-C real*8 eo(maxo*4,nk) : Eigenvalues
1063-C real*8 qo(maxo*4,nk) : Occupations of eigenstates
1064+C real*8 eo(maxo*2,nk) : Eigenvalues
1065+C real*8 qo(maxo*2,nk) : Occupations of eigenstates
1066 C real*8 Dnew(maxnd,4) : Output Density Matrix
1067 C real*8 Enew(maxnd,4) : Output Energy-Density Matrix
1068 C real*8 ef : Fermi energy
1069@@ -116,11 +118,15 @@
1070 integer :: neigwanted
1071
1072 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux, Dk, Ek
1073- complex(dp), dimension(2,nuotot,2*nuo) :: psi
1074- complex(dp), dimension(2,nuotot) :: caux
1075- logical getD
1076+ complex(dp), dimension(2,nuotot,2*nuo), target :: psi
1077+ complex(dp), dimension(2,nuotot), target :: caux
1078+ logical, intent(in) :: getD, getPsi
1079
1080 ! Internal variables .............................................
1081+
1082+ ! For interface compliance using c_f_pointer
1083+ real(dp), pointer :: aux(:)
1084+ real(dp), pointer :: psi_real(:)
1085
1086 integer BNode, BTest, ie, ierror, iie, ik, ind, io, iio
1087 integer iuo, j, jo, juo, neigneeded
1088@@ -170,6 +176,9 @@
1089 !
1090 ! 1. Hermiticity imposes H_{i,j}^{is,js}=H_{j,i}^{js,is}^*
1091
1092+ ! Jump point for bands and wfs output only
1093+ if (getPSI .and. (.not. GetD)) goto 10
1094+
1095 ! Find eigenvalues at every k point
1096 do ik = 1,nk
1097
1098@@ -214,10 +223,10 @@
1099 endif
1100 enddo
1101
1102-!-----------------------------------------------------------------------
1103-! Check if we are done
1104-!-----------------------------------------------------------------------
1105- if (.not.getD) goto 1001
1106+ ! Check if we are done (i.e.: pure bands only)
1107+ if (.not.getD .and. .not. getPSI) then
1108+ RETURN
1109+ end if
1110 !-----------------------------------------------------------------------
1111
1112 ! Find new Fermi energy and occupation weights
1113@@ -240,16 +249,23 @@
1114 Dnew(:,:) = 0.0_dp
1115 Enew(:,:) = 0.0_dp
1116
1117-! Find maximum eigenvector that is required for this k point
1118+ 10 continue ! ---- Start here for (getPsi and (not getDM))
1119+
1120 do ik = 1,nk
1121- neigneeded = 0
1122- ie = 2*nuotot
1123- do while (ie.gt.0.and.neigneeded.eq.0)
1124- qe = qo(ie,ik)
1125- if (abs(qe).gt.occtol) neigneeded = ie
1126- ie = ie - 1
1127- enddo
1128-
1129+ ! Find maximum eigenvector index that is required for this k point
1130+ if (getPSI) then
1131+ ! We do not have info about occupation
1132+ neigneeded = neigwanted
1133+ else
1134+ neigneeded = 0
1135+ ie = 2*nuotot ! for mixed spins
1136+ do while (ie.gt.0.and.neigneeded.eq.0)
1137+ qe = qo(ie,ik)
1138+ if (abs(qe).gt.occtol) neigneeded = ie
1139+ ie = ie - 1
1140+ enddo
1141+ endif
1142+
1143 ! Find eigenvectors
1144 Saux = dcmplx(0.0_dp,0.0_dp)
1145 Haux = dcmplx(0.0_dp,0.0_dp)
1146@@ -310,8 +326,25 @@
1147 call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,caux,psi,
1148 . neigneeded,iscf,ierror,2*BlockSize)
1149 endif
1150-
1151-!-----------------------------------------------------------------------
1152+
1153+
1154+ if (getPSI) then
1155+ if (.not. getD) then
1156+ ! Fill in the missing eigenvalue information
1157+ ! This is useful if we are requesting WFS in a "bands" setting
1158+ call c_f_pointer(c_loc(caux),aux,[2*nuotot])
1159+ call kludge_copy(2*nuotot,eo(1,ik),aux)
1160+ endif
1161+ call c_f_pointer(c_loc(psi),psi_real,[2*size(psi)])
1162+ call writew(nuotot,nuo,ik,kpoint(1,ik),1, ! last '1' is 'spin-block number'
1163+ . eo(1,ik), ! energies
1164+ . psi_real,gamma=.false.,non_coll=.true.,
1165+ $ blocksize=2*BlockSize)
1166+ endif
1167+
1168+ if (.not. getD) CYCLE ! process new k-point
1169+
1170+!-----------------------------------------------------------------------
1171 ! Store the products of eigenvectors in matrices Dk and Ek
1172 ! WARNING: Dk and Ek may be EQUIVALENCE'd to Haux and Saux
1173 !-----------------------------------------------------------------------
1174@@ -445,13 +478,22 @@
1175
1176 enddo
1177 enddo
1178- enddo
1179+ enddo ! over k-points
1180
1181- 1001 continue
1182-
1183 #ifdef DEBUG
1184 call write_debug( ' POS diag2k' )
1185 #endif
1186+
1187+ CONTAINS
1188+ ! Work around shape of aux array
1189+ subroutine kludge_copy(n,a,b)
1190+ integer, intent(in) :: n
1191+ real(dp), intent(out) :: a(n)
1192+ real(dp), intent(in) :: b(n)
1193+!$OMP parallel workshare default(shared)
1194+ a(1:n) = b(1:n)
1195+!$OMP end parallel workshare
1196+ end subroutine kludge_copy
1197
1198 end subroutine diag2k
1199
1200
1201=== modified file 'Src/diag3g.F'
1202--- Src/diag3g.F 2018-06-25 11:33:42 +0000
1203+++ Src/diag3g.F 2019-08-18 23:02:58 +0000
1204@@ -5,7 +5,7 @@
1205 ! or http://www.gnu.org/copyleft/gpl.txt.
1206 ! See Docs/Contributors.txt for a list of contributors.
1207 !
1208- subroutine diag3g( nuo, no, maxuo, maxnh, maxnd, maxo,
1209+ subroutine diag3g( nuo, no, maxnh, maxnd, maxo,
1210 . numh, listhptr, listh, numd, listdptr,
1211 . listd, H, S, getD, getPSI, qtot, temp, e1, e2,
1212 . eo, qo, Dnew, Enew, ef, Entropy,
1213@@ -16,8 +16,10 @@
1214 use sys
1215 use parallel, only : Node, Nodes, BlockSize
1216 use parallelsubs, only : LocalToGlobalOrb,GlobalToLocalOrb
1217+ use writewave, only : writew
1218 use m_fermid, only : fermid, stepf
1219 use intrinsic_missing, only: MODP
1220+ use iso_c_binding, only : c_loc, c_f_pointer
1221 #ifdef MPI
1222 use mpi_siesta
1223 #endif
1224@@ -33,7 +35,6 @@
1225 C **************************** INPUT **********************************
1226 C integer nuo : Number of basis orbitals on local node
1227 C integer no : Number of basis orbitals
1228-C integer maxuo : Maximum number of basis orbitals
1229 C integer maxnh : Maximum number of orbitals interacting
1230 C integer maxnd : First dimension of Dnew and Enew
1231 C integer maxo : First dimension of eo and qo
1232@@ -86,7 +87,7 @@
1233 ! Indices is and js are for spin components
1234 ! Indices iuo and juo are for orbital components:
1235 ! *********************************************************************
1236- integer maxo, maxuo, maxnd, maxnh
1237+ integer maxo, maxnd, maxnh
1238 integer no, nuo, nuotot, iscf, neigwanted
1239
1240 integer listh(maxnh), numh(nuo), listhptr(nuo)
1241@@ -96,7 +97,8 @@
1242 real(dp) Entropy, eo(maxo*2), H(maxnh,8), qo(maxo*2)
1243 real(dp) qtot, S(maxnh), temp, occtol
1244
1245- complex(dp), dimension(2,nuotot,2*nuo) :: psi
1246+ complex(dp), dimension(2,nuotot,2*nuo), target :: psi
1247+ real(dp), pointer :: psi_real_1d(:)
1248 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux
1249 complex(dp), dimension(2,nuotot) :: caux
1250 logical getD, getPSI
1251@@ -105,7 +107,7 @@
1252
1253 integer BNode, BTest, ie, ierror, iie, iio
1254 integer ind, io, j, jo, nd, iuo, juo
1255- real(dp) ee, qe, t
1256+ real(dp) ee, qe, t, k(3)
1257 complex(dp) D11, D22, D12, D21
1258 #ifdef MPI
1259 integer MPIerror
1260@@ -193,7 +195,20 @@
1261 call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,eo,psi,
1262 . 2*neigwanted,iscf,ierror,2*BlockSize)
1263 endif
1264-
1265+
1266+ if (getPSI) then
1267+ k(1:3) = 0.0d0
1268+
1269+ ! We do not have info about occupation
1270+ ! In the current implementation, neigneeded
1271+ ! is ALWAYS nuotot.
1272+ ! This is because writewave expects the full spectrum
1273+ call c_f_pointer( c_loc(psi), psi_real_1d, [size(psi)*2] )
1274+ call writew(nuotot,nuo,1,k,1,
1275+ & eo,psi_real_1d,gamma=.true.,
1276+ $ non_coll=.true.,blocksize=2*BlockSize)
1277+ endif
1278+
1279 ! Check if we are done
1280 if (.not.getD) return
1281
1282
1283=== modified file 'Src/diag3k.F'
1284--- Src/diag3k.F 2017-08-06 11:17:47 +0000
1285+++ Src/diag3k.F 2019-08-18 23:02:58 +0000
1286@@ -18,7 +18,9 @@
1287 use sys
1288 use parallel, only : Node, Nodes, BlockSize
1289 use parallelsubs, only : LocalToGlobalOrb
1290+ use writewave, only : writew
1291 use m_fermid, only : fermid, stepf
1292+ use iso_c_binding, only : c_f_pointer, c_loc
1293 #ifdef MPI
1294 use mpi_siesta
1295 #endif
1296@@ -114,12 +116,14 @@
1297 integer :: neigwanted
1298
1299 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux, Dk, Ek
1300- complex(dp), dimension(2,nuotot,2*nuo) :: psi
1301- complex(dp), dimension(2,nuotot) :: caux
1302- logical getD, getPSI
1303-
1304-! TEMPOS, INTERNAL VARIABLES etc.
1305-
1306+ complex(dp), dimension(2,nuotot,2*nuo), target :: psi
1307+ complex(dp), dimension(2,nuotot), target :: caux
1308+ logical, intent(in) :: getD, getPSI
1309+
1310+
1311+ real(dp), pointer :: aux(:)
1312+ real(dp), pointer :: psi_real(:)
1313+
1314 integer BNode, BTest, ie, ierror, iie, ik, ind, io, iio
1315 integer iuo, j, jo, juo, neigneeded
1316 real(dp) ee, qe, t
1317@@ -175,6 +179,9 @@
1318 !
1319 !
1320
1321+ ! Jump point for bands and wfs output only
1322+ if (getPSI .and. (.not. GetD)) goto 10
1323+
1324 ! Find eigenvalues at every k point
1325
1326 do ik = 1,nk
1327@@ -214,11 +221,11 @@
1328 call die('Terminating due to failed diagonalisation')
1329 endif
1330 enddo
1331-
1332-!-----------------------------------------------------------------------
1333-! Check if we are done
1334-!-----------------------------------------------------------------------
1335- if (.not.getD) return
1336+
1337+ ! Check if we are done (i.e.: pure bands only)
1338+ if (.not.getD .and. .not. getPSI) then
1339+ RETURN
1340+ end if
1341 !-----------------------------------------------------------------------
1342
1343 ! Find new Fermi energy and occupation weights
1344@@ -240,16 +247,23 @@
1345 ! New density and energy-density matrices of unit-cell orbitals
1346 Dnew(:,:) = 0.0_dp
1347 Enew(:,:) = 0.0_dp
1348+
1349+ 10 continue ! ---- Start here for (getPsi and (not getDM))
1350
1351-! Find maximum eigenvector that is required for this k point
1352 do ik = 1,nk
1353- neigneeded = 0
1354- ie = 2*nuotot ! for mixed spins
1355- do while (ie.gt.0.and.neigneeded.eq.0)
1356- qe = qo(ie,ik)
1357- if (abs(qe).gt.occtol) neigneeded = ie
1358- ie = ie - 1
1359- enddo
1360+ ! Find maximum eigenvector index that is required for this k point
1361+ if (getPSI) then
1362+ ! We do not have info about occupation
1363+ neigneeded = neigwanted
1364+ else
1365+ neigneeded = 0
1366+ ie = 2*nuotot ! for mixed spins
1367+ do while (ie.gt.0.and.neigneeded.eq.0)
1368+ qe = qo(ie,ik)
1369+ if (abs(qe).gt.occtol) neigneeded = ie
1370+ ie = ie - 1
1371+ enddo
1372+ endif
1373
1374 ! Find eigenvectors
1375 Saux = dcmplx(0.0_dp,0.0_dp)
1376@@ -314,6 +328,22 @@
1377 . neigneeded,iscf,ierror, 2*BlockSize)
1378 endif
1379
1380+ if (getPSI) then
1381+ if (.not. getD) then
1382+ ! Fill in the missing eigenvalue information
1383+ ! This is useful if we are requesting WFS in a "bands" setting
1384+ call c_f_pointer(c_loc(caux),aux,[2*nuotot])
1385+ call kludge_copy(2*nuotot,eo(1,ik),aux)
1386+ endif
1387+ call c_f_pointer(c_loc(psi),psi_real,[2*size(psi)])
1388+ call writew(nuotot,nuo,ik,kpoint(1,ik),1, ! last '1' is 'spin-block number'
1389+ . eo(1,ik), ! energies
1390+ . psi_real,gamma=.false.,non_coll=.true.,
1391+ $ blocksize=2*BlockSize)
1392+ endif
1393+
1394+ if (.not. getD) CYCLE ! process new k-point
1395+
1396 !***********************************************************************
1397 ! BUILD NEW DENSITY MATRIX
1398 !***********************************************************************
1399@@ -429,8 +459,18 @@
1400 enddo
1401 enddo
1402
1403-!***********************************************************************
1404- return
1405+ CONTAINS
1406+ ! Work around shape of aux array
1407+ subroutine kludge_copy(n,a,b)
1408+ integer, intent(in) :: n
1409+ real(dp), intent(out) :: a(n)
1410+ real(dp), intent(in) :: b(n)
1411+!$OMP parallel workshare default(shared)
1412+ a(1:n) = b(1:n)
1413+!$OMP end parallel workshare
1414+ end subroutine kludge_copy
1415+
1416 end subroutine diag3k
1417 !***********************************************************************
1418+
1419
1420
1421=== modified file 'Src/diagg.F'
1422--- Src/diagg.F 2018-06-25 11:33:42 +0000
1423+++ Src/diagg.F 2019-08-18 23:02:58 +0000
1424@@ -91,7 +91,7 @@
1425 use m_spin, only : spinor_dim, e_spin_dim
1426 use alloc
1427 use intrinsic_missing, only: MODP
1428-
1429+ use iso_c_binding, only : c_f_pointer, c_loc
1430 #ifdef MPI
1431 use mpi_siesta
1432 #endif
1433@@ -117,10 +117,9 @@
1434 & qo(maxo,spinor_dim), qtot, qs(spinor_dim), S(maxnh), temp,
1435 & efs(spinor_dim), occtol
1436
1437- real(dp)
1438- & Haux(nuotot,nuo), Saux(nuotot,nuo),
1439- & psi(nuotot,maxuo,spinor_dim)
1440-
1441+ real(dp) Haux(nuotot,nuo), Saux(nuotot,nuo)
1442+ real(dp), target :: psi(nuotot,maxuo,spinor_dim)
1443+ real(dp), pointer :: psi_real_1d(:)
1444 real(dp), dimension(1), parameter :: wk = (/ 1.0_dp /)
1445 integer, parameter :: nk = 1
1446
1447@@ -203,8 +202,11 @@
1448 do ix = 1,3
1449 k(ix) = 0.0d0
1450 enddo
1451+ call c_f_pointer(c_loc(psi(:,:,ispin)),psi_real_1d,
1452+ $ [size(psi,1)*size(psi,2)])
1453 call writew(nuotot,nuo,1,k,ispin,
1454- & eo(1,ispin),psi(1,1,ispin),.true.)
1455+ & eo(1,ispin),psi_real_1d,gamma=.true.,
1456+ $ non_coll=.false.,blocksize=BlockSize)
1457 endif
1458
1459 enddo
1460
1461=== modified file 'Src/diagk.F'
1462--- Src/diagk.F 2017-08-06 09:35:09 +0000
1463+++ Src/diagk.F 2019-08-18 23:02:58 +0000
1464@@ -101,6 +101,7 @@
1465 use writewave, only : writew
1466 use m_fermid, only : fermid, fermispin, stepf
1467 use m_spin, only : spinor_dim, e_spin_dim
1468+ use iso_c_binding, only : c_loc, c_f_pointer
1469 #ifdef MPI
1470 use mpi_siesta
1471 #endif
1472@@ -143,6 +144,7 @@
1473 real(dp) :: qp1, qp2, eqp1, eqp2
1474
1475 real(dp), pointer :: lpsi(:,:)
1476+ real(dp), pointer :: psi_real_1d(:)
1477
1478 logical, allocatable :: done_juo(:)
1479 C ....................
1480@@ -347,8 +349,10 @@
1481 ! This is useful if we are requesting WFS in a "bands" setting
1482 call kludge_copy(nuotot,eo(1,ispin,ik),aux)
1483 endif
1484+ call c_f_pointer(c_loc(psi),psi_real_1d,[size(psi)])
1485 call writew(nuotot,nuo,ik,kpoint(1,ik),ispin,
1486- . aux,psi,.false.)
1487+ . aux,psi_real_1d,gamma=.false.,non_coll=.false.,
1488+ $ blocksize=BlockSize)
1489 endif
1490
1491 if (getD) then
1492
1493=== modified file 'Src/diagon.F'
1494--- Src/diagon.F 2018-11-02 09:03:25 +0000
1495+++ Src/diagon.F 2019-08-18 23:02:58 +0000
1496@@ -266,7 +266,7 @@
1497 if (gamma) then
1498 call diag2g( nuo, no, maxnh, maxnd, maxo, numh,
1499 . listhptr, listh, numd, listdptr, listd,
1500- . H, S, getD, qtot, temp, e1, e2, eo, qo,
1501+ . H, S, getD, getPSI, qtot, temp, e1, e2, eo, qo,
1502 . Dnew, Enew, ef, Entropy,
1503 . Haux, Saux, psi, aux,
1504 . nuotot, occtol, iscf, neigwanted )
1505@@ -281,7 +281,7 @@
1506 else
1507 call diag2k( nuo, no, maxnh, maxnd, maxo, numh,
1508 . listhptr, listh, numd, listdptr, listd,
1509- . H, S, getD, qtot, temp, e1, e2, xij,
1510+ . H, S, getD, getPsi, qtot, temp, e1, e2, xij,
1511 . indxuo, nk, kpoint, wk, eo, qo, Dnew,
1512 . Enew, ef, Entropy,
1513 . Haux, Saux, psi, Haux, Saux, aux,
1514@@ -289,7 +289,7 @@
1515 endif
1516 elseif ( spin%SO ) then
1517 if (gamma) then
1518- call diag3g( nuo, no, maxuo, maxnh, maxnd, maxo, numh,
1519+ call diag3g( nuo, no, maxnh, maxnd, maxo, numh,
1520 . listhptr, listh, numd, listdptr, listd,
1521 . H, S, getD, getPSI, qtot, temp, e1, e2, eo, qo,
1522 . Dnew, Enew, ef, Entropy,
1523
1524=== modified file 'Src/ioeig.f'
1525--- Src/ioeig.f 2018-05-08 11:36:55 +0000
1526+++ Src/ioeig.f 2019-08-18 23:02:58 +0000
1527@@ -19,10 +19,10 @@
1528
1529 implicit none
1530
1531- integer, intent(in) :: no
1532- integer, intent(in) :: nspin
1533+ integer, intent(in) :: no ! no_u: number of orbitals in unit cell
1534+ integer, intent(in) :: nspin ! 'nspin_grid': 1, 2, or 4
1535 integer, intent(in) :: nk
1536- integer, intent(in) :: maxo
1537+ integer, intent(in) :: maxo ! no_u again
1538 integer, intent(in) :: nspinor
1539 integer, intent(in) :: maxk
1540 real(dp), intent(in) :: ef
1541@@ -45,11 +45,17 @@
1542
1543 write(iu,"(e17.9)") ef/eV
1544 if ( nspin > nspinor ) then
1545- write(iu,"(tr1,i10,i2,tr1,i10)") no*2, 1, nk
1546+ ! NC/SOC case: a single block of wavefunctions (without spin tag)
1547+ ! nspin (4) will be used here to signal NC/SOC to utilities such as
1548+ ! Eig2DOS
1549+ write(iu,"(tr1,i10,i2,tr1,i10)") no*2, nspin, nk
1550 else
1551 write(iu,"(tr1,i10,i2,tr1,i10)") no, min(nspin,2), nk
1552 end if
1553 do ik = 1,nk
1554+ ! This statement will correctly print eo in the NC/SOC case,
1555+ ! as the eigenvalues take up two complete 'io' columns,
1556+ ! and nspinor = 2.
1557 write(iu,"(i10,10(tr1,e17.9),/,(tr10,10(tr1,e17.9)))")
1558 . ik, ((eo(io,is,ik)/eV,io=1,no),is=1,nspinor)
1559 enddo
1560@@ -83,7 +89,7 @@
1561 if ( is == 1 .and. nspinor > 1 ) then
1562 call cmlAddProperty(xf=mainXML, value="up",
1563 . dictRef="siesta:spin")
1564- else if ( nspinor > 1 ) then
1565+ else if ( nspinor > 1) then
1566 call cmlAddProperty(xf=mainXML, value="down",
1567 . dictRef="siesta:spin")
1568 end if
1569
1570=== modified file 'Src/iosockets.F90'
1571--- Src/iosockets.F90 2018-11-27 11:01:23 +0000
1572+++ Src/iosockets.F90 2019-08-18 23:02:58 +0000
1573@@ -181,6 +181,8 @@
1574 if (IOnode) then
1575 if (leqi(master,"i-pi") .and. trim(header)=="POSDATA") then
1576 call readbuffer(socket, c, 9)
1577+ ! Please see below for the cell array
1578+ ! If this is to be used, it should *ALSO* be transposed!
1579 call readbuffer(socket, aux, 9) ! not used in siesta
1580 master_xunit = ipi_xunit
1581 master_eunit = ipi_eunit
1582@@ -201,7 +203,15 @@
1583 MPI_Comm_World, MPIerror)
1584 call MPI_Bcast(c,9, MPI_Double_Precision,0, MPI_Comm_World, MPIerror)
1585 #endif
1586- cell = RESHAPE( c, (/3,3/) )
1587+ ! I-Pi assumes row-major order of *only* the cell parameters
1588+ ! So we need to transpose the cell
1589+ ! This is a very bad practice since the same is happening in
1590+ ! ASE I-pi implementation.
1591+ ! The cell is transposed when transfering, but not the coordinates.
1592+ ! Essentially one could leave out *any* transposes in all implementations
1593+ ! and it would work! However, this is now a legacy implementation
1594+ ! that should not be changed, neither in I-pi, nor ASE.
1595+ cell = TRANSPOSE( RESHAPE( c, (/3,3/) ) )
1596
1597 ! Read and check number of atoms
1598 if (ionode) then
1599
1600=== modified file 'Src/m_energies.F90'
1601--- Src/m_energies.F90 2018-07-03 13:43:29 +0000
1602+++ Src/m_energies.F90 2019-08-18 23:02:58 +0000
1603@@ -47,7 +47,18 @@
1604 real(dp):: Eldau
1605 real(dp):: DEldau
1606
1607- real(dp) :: DE_NEGF ! NEGF total energy contribution = - e * \sum_i N_i \mu_i
1608+ real(dp) :: NEGF_DE ! NEGF total energy contribution = - e * \sum_i N_i \mu_i
1609+ ! Generally we should only calculate energies in the regions where we are updating elements
1610+ ! As such we need a specific energy for the NEGF part
1611+ ! Their meaning is directly transferable to the above listed energies (in the updating regions)
1612+ real(dp) :: NEGF_Ebs
1613+ real(dp) :: NEGF_Ekin
1614+ real(dp) :: NEGF_Enl
1615+ real(dp) :: NEGF_Eso
1616+ real(dp) :: NEGF_DEharr
1617+ real(dp) :: NEGF_Eharrs
1618+ real(dp) :: NEGF_Etot
1619+ real(dp) :: NEGF_FreeE
1620
1621 contains
1622
1623@@ -85,7 +96,17 @@
1624 Eso = 0._dp
1625 Eldau = 0._dp
1626 DEldau = 0._dp
1627- DE_NEGF = 0._dp
1628+
1629+ ! NEGF part
1630+ NEGF_DE = 0._dp
1631+ NEGF_Ebs = 0._dp
1632+ NEGF_Ekin = 0._dp
1633+ NEGF_Enl = 0._dp
1634+ NEGF_Eso = 0._dp
1635+ NEGF_DEharr = 0._dp
1636+ NEGF_Eharrs = 0._dp
1637+ NEGF_Etot = 0._dp
1638+ NEGF_FreeE = 0._dp
1639
1640 end subroutine init_Energies
1641
1642@@ -102,27 +123,36 @@
1643 subroutine update_E0()
1644
1645 E0 = Ena + Ekin + Enl + Eso - Eions
1646-
1647+
1648 end subroutine update_E0
1649
1650 subroutine update_Etot()
1651+ use m_ts_global_vars, only: TSrun
1652
1653 ! DUext (external electric field) -- should it be in or out?
1654 Etot = Ena + Ekin + Enl + Eso - Eions + &
1655- DEna + DUscf + DUext + Exc + &
1656- Ecorrec + Emad + Emm + Emeta + Eldau
1657- ! Commented out the NEGF contribution to the total energy
1658- ! We know it is wrong, but we estimate it. See output
1659- ! Etot = Etot + DE_NEGF
1660+ DEna + DUscf + DUext + Exc + &
1661+ Ecorrec + Emad + Emm + Emeta + Eldau
1662
1663+ if ( TSrun ) then
1664+ NEGF_Etot = Ena + NEGF_Ekin + NEGF_Enl + NEGF_Eso - Eions + &
1665+ DEna + DUscf + DUext + Exc + Ecorrec + Emad + Emm + Emeta + &
1666+ Eldau + NEGF_DE
1667+ end if
1668+
1669 end subroutine update_Etot
1670
1671 !> @param kBT the temperature in energy
1672 subroutine update_FreeE( kBT )
1673+ use m_ts_global_vars, only: TSrun
1674 real(dp), intent(in) :: kBT
1675
1676 FreeE = Etot - kBT * Entropy
1677
1678+ if ( TSrun ) then
1679+ NEGF_FreeE = NEGF_Etot - kBT * Entropy
1680+ end if
1681+
1682 end subroutine update_FreeE
1683
1684 !> @param kBT the temperature in energy
1685
1686=== modified file 'Src/m_io_yaml.F90'
1687--- Src/m_io_yaml.F90 2018-05-30 08:58:52 +0000
1688+++ Src/m_io_yaml.F90 2019-08-18 23:02:58 +0000
1689@@ -174,7 +174,6 @@
1690 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DEna", DEna
1691 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DUscf", DUscf
1692 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DUext", DUext
1693- write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Enegf", DE_NEGF
1694 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Exc", Exc
1695 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Ecorrec", Ecorrec
1696 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Emadel", Emad
1697
1698=== modified file 'Src/m_mixing.F90'
1699--- Src/m_mixing.F90 2019-06-20 10:46:56 +0000
1700+++ Src/m_mixing.F90 2019-08-18 23:02:58 +0000
1701@@ -423,25 +423,46 @@
1702
1703 ! Do options so that a pulay option may refer to
1704 ! the actual names of the constants
1705+
1706 if ( m%m == MIX_PULAY ) then
1707-
1708- ! The linear mixing weight
1709- if ( leqi(opt,'weight.linear') &
1710- .or. leqi(opt,'w.linear') ) then
1711-
1712- m%rv(1) = fdf_breals(pline,1)
1713-
1714- else if ( leqi(opt,'svd.cond') ) then
1715-
1716- ! This is only applicable to the Pulay
1717- ! mixing scheme...
1718-
1719- m%rv(I_SVD_COND) = fdf_bvalues(pline,1)
1720-
1721- end if
1722-
1723+ if ( leqi(opt,'weight.linear') &
1724+ .or. leqi(opt,'w.linear') ) then
1725+
1726+ m%rv(1) = fdf_breals(pline,1)
1727+ if ( m%rv(1) <= 0._dp .or. 1._dp < m%rv(1) ) then
1728+ call die("m_mixing: Mixing weight should be 0 < weight <= 1")
1729+ end if
1730+
1731+ else if ( leqi(opt,'svd.cond') ) then
1732+ m%rv(I_SVD_COND) = fdf_bvalues(pline,1)
1733+ end if
1734+
1735+ else if ( m%m == MIX_BROYDEN ) then
1736+
1737+ ! The linear mixing weight
1738+ if ( leqi(opt,'weight.linear') &
1739+ .or. leqi(opt,'w.linear') ) then
1740+
1741+ m%rv(1) = fdf_breals(pline,1)
1742+ if ( m%rv(1) <= 0._dp .or. 1._dp < m%rv(1) ) then
1743+ call die("m_mixing: Linear mixing weight should be 0 < weight <= 1")
1744+ end if
1745+
1746+ else if ( leqi(opt,'weight.prime') &
1747+ .or. leqi(opt,'w.prime') ) then
1748+
1749+ m%rv(2) = fdf_breals(pline,1)
1750+ if ( m%rv(2) < 0._dp .or. 1._dp < m%rv(2) ) then
1751+ call die("m_mixing: Prime weight should be 0 <= weight <= 1")
1752+ end if
1753+
1754+ else if ( leqi(opt,'svd.cond') ) then
1755+
1756+ m%rv(I_SVD_COND) = fdf_bvalues(pline,1)
1757+
1758+ end if
1759+
1760 end if
1761-
1762
1763 ! Generic options for all advanced methods...
1764 if ( leqi(opt,'next.p') ) then
1765@@ -473,6 +494,10 @@
1766 type(tMixer), intent(inout) :: mix
1767 integer :: n
1768
1769+ if ( mix%w <= 0._dp .or. 1._dp < mix%w ) then
1770+ call die("m_mixing: Mixing weight should be: 0 < weight <= 1")
1771+ end if
1772+
1773 ! Correct amount of history in the mixing.
1774 if ( 0 < mix%restart .and. &
1775 mix%restart < mix%n_hist ) then
1776@@ -518,7 +543,7 @@
1777
1778 ! allocate temporary array
1779 mix%n_hist = max(2, mix%n_hist)
1780- n = 1 + mix%n_hist
1781+ n = 2 + mix%n_hist
1782 allocate(mix%rv(I_SVD_COND:n))
1783 mix%rv(1:n) = mix%w
1784
1785@@ -702,7 +727,7 @@
1786 type(tMixer), intent(in), target :: mixers(:)
1787
1788 type(tMixer), pointer :: m
1789- character(len=50) :: fmt
1790+ character(len=64) :: fmt
1791
1792 logical :: bool
1793 integer :: i
1794@@ -795,9 +820,13 @@
1795 write(*,'(2a,t50,''= '',i0)') trim(fmt), &
1796 ' History steps',m%n_hist
1797 write(*,'(2a,t50,''= '',f12.6)') trim(fmt), &
1798- ' Jacobian weight',m%w
1799- write(*,'(2a,t50,''= '',f12.6)') trim(fmt), &
1800- ' Weight prime',m%rv(1)
1801+ ' Linear mixing weight',m%rv(1)
1802+ write(*,'(2a,t50,''= '',f12.6)') trim(fmt), &
1803+ ' Inverse Jacobian weight',m%w
1804+ write(*,'(2a,t50,''= '',f12.6)') trim(fmt), &
1805+ ' Weight prime',m%rv(2)
1806+ write(*,'(2a,t50,''= '',e10.4)') trim(fmt), &
1807+ ' SVD condition',m%rv(I_SVD_COND)
1808 if ( m%rv(I_P_NEXT) > 0._dp ) then
1809 write(*,'(2a,t50,''= '',f6.4)') trim(fmt), &
1810 ' Step mixer parameter',m%rv(I_P_NEXT)
1811@@ -921,8 +950,11 @@
1812 ! For Broyden this is the inverse Jacobian
1813 write(*,'(t3,a,f6.4)') 'weight ', m%w
1814 select case ( m%m )
1815- case ( MIX_PULAY, MIX_BROYDEN )
1816- write(*,'(t3,a,f6.4)') 'weight.linear ', m%rv(1)
1817+ case ( MIX_PULAY )
1818+ write(*,'(t3,a,f6.4)') 'weight.linear ', m%rv(1)
1819+ case ( MIX_BROYDEN )
1820+ write(*,'(t3,a,f6.4)') 'weight.linear ', m%rv(1)
1821+ write(*,'(t3,a,f6.4)') 'weight.prime ', m%rv(2)
1822 end select
1823
1824 if ( m%n_hist > 0 ) then
1825@@ -1685,7 +1717,7 @@
1826 ! This is the modified Broyden algorithm...
1827
1828 ! Retrieve the previous weights
1829- w => mix%rv(2:1+nh)
1830+ w => mix%rv(3:2+nh)
1831 select case ( mix%v )
1832 case ( 2 ) ! Unity Broyden
1833
1834@@ -1779,9 +1811,9 @@
1835
1836 ! Add the diagonal term
1837 ! This should also prevent it from being
1838- ! singular (unless mix%w == 0)
1839+ ! singular (unless mix%rv(2) == 0)
1840 do i = 1 , nh
1841- A(i,i) = mix%rv(1) ** 2 + A(i,i)
1842+ A(i,i) = mix%rv(2) ** 2 + A(i,i)
1843 end do
1844
1845 ! Calculate the inverse
1846@@ -2006,7 +2038,7 @@
1847
1848 end if
1849
1850- ! Get the linear mixing term...
1851+ ! Get the inverse Jacobian term...
1852 G = mix%w
1853
1854 ! if debugging print out the different variables
1855@@ -2242,7 +2274,7 @@
1856
1857 ! Update weights (if necessary)
1858 if ( nh > 1 ) then
1859- do i = 2 , nh
1860+ do i = 3 , nh + 1
1861 mix%rv(i) = mix%rv(i+1)
1862 end do
1863 end if
1864
1865=== modified file 'Src/m_new_dm.F90'
1866--- Src/m_new_dm.F90 2019-08-16 10:13:21 +0000
1867+++ Src/m_new_dm.F90 2019-08-18 23:02:58 +0000
1868@@ -335,7 +335,7 @@
1869 ! Determine how the mixing of the first step should be performed
1870 !
1871 ! The idea is that one will allow mixing on the first SCF step
1872- ! only for atomicly filled orbitals. This will in most cases
1873+ ! only for atomically filled orbitals. This will in most cases
1874 ! be a good initial choice, while in certain systems (spin-orbit)
1875 ! it may not be so good.
1876 ! Subsequently for any MD steps beyond the initial step, we will not
1877@@ -352,8 +352,8 @@
1878 mix_scf_first = .true.
1879 if ( IONode .and. init_method < 0 ) then
1880 ! Warn the user about this
1881- write(*,"(a)") "Mixing first iteration is *forced* although the sparsity pattern has changed..."
1882- write(*,"(a)") "Mixing non-compatible matrices may result in non-idempotency problems."
1883+ write(*,"(a)") "Mixing first scf iteration is *forced* although the sparsity pattern has changed..."
1884+ write(*,"(a)") "Mixing non-compatible matrices might result in problems."
1885 write(*,"(a)") "Please use a linear mixer for the first few steps to remove history effects."
1886 end if
1887 else if ( mix_scf_first .and. init_method < 0 ) then
1888
1889=== modified file 'Src/m_spin.F90'
1890--- Src/m_spin.F90 2019-01-13 16:11:47 +0000
1891+++ Src/m_spin.F90 2019-08-18 23:02:58 +0000
1892@@ -355,6 +355,8 @@
1893 write(*,'(a)') repeat('#',60)
1894 write(*,'(a,t16,a,t60,a)') '#','Spin-orbit coupling is in beta','#'
1895 write(*,'(a,t13,a,t60,a)') '#','Several options may not be compatible','#'
1896+ call message("WARNING","This spin-orbit implementation uses a local approximation.")
1897+ call message("WARNING","You are strongly advised to use the newer version.")
1898 write(*,'(a)') repeat('#',60)
1899 end if
1900
1901
1902=== modified file 'Src/m_transiesta.F90'
1903--- Src/m_transiesta.F90 2019-02-13 17:39:22 +0000
1904+++ Src/m_transiesta.F90 2019-08-18 23:02:58 +0000
1905@@ -48,7 +48,7 @@
1906 sp_dist, sparse_pattern, &
1907 no_aux_cell, ucell, nsc, isc_off, no_u, na_u, lasto, xa, n_nzs, &
1908 H, S, DM, EDM, Ef, &
1909- Qtot, Fermi_correct, DE_NEGF)
1910+ Qtot, Fermi_correct)
1911
1912 use units, only : eV
1913 use alloc, only : re_alloc, de_alloc
1914@@ -75,6 +75,8 @@
1915 use m_ts_gf, only : read_Green
1916 use m_interpolate
1917
1918+ use m_energies, only: NEGF_DE
1919+
1920 ! ********************
1921 ! * INPUT variables *
1922 ! ********************
1923@@ -94,7 +96,6 @@
1924 real(dp), intent(in) :: Qtot
1925 real(dp), intent(inout) :: Ef
1926 logical, intent(in) :: Fermi_correct
1927- real(dp), intent(inout) :: DE_NEGF
1928
1929 ! ******************** IO descriptors ************************
1930 integer, allocatable :: uGF(:)
1931@@ -127,7 +128,7 @@
1932 ! Note that this will *only* be updated in case V /= 0.
1933 ! This energy corresponds to the non-equilibrium energies:
1934 ! e \sum_i N_i * \mu_i
1935- DE_NEGF = 0._dp
1936+ NEGF_DE = 0._dp
1937
1938 if ( TSiscf == 1 ) then
1939 ! We need to initialize TRANSIESTA
1940@@ -256,14 +257,14 @@
1941 nq, uGF, nspin, na_u, lasto, &
1942 sp_dist, sparse_pattern, &
1943 no_u, n_nzs, &
1944- H, S, DM, EDM, Ef, DE_NEGF)
1945+ H, S, DM, EDM, Ef, NEGF_DE)
1946 else
1947 call ts_fullk(N_Elec,Elecs, &
1948 nq, uGF, &
1949 ucell, nspin, na_u, lasto, &
1950 sp_dist, sparse_pattern, &
1951 no_u, n_nzs, &
1952- H, S, DM, EDM, Ef, DE_NEGF)
1953+ H, S, DM, EDM, Ef, NEGF_DE)
1954 end if
1955 else if ( ts_method == TS_BTD ) then
1956 if ( ts_Gamma ) then
1957@@ -271,14 +272,14 @@
1958 nq, uGF, nspin, na_u, lasto, &
1959 sp_dist, sparse_pattern, &
1960 no_u, n_nzs, &
1961- H, S, DM, EDM, Ef, DE_NEGF)
1962+ H, S, DM, EDM, Ef, NEGF_DE)
1963 else
1964 call ts_trik(N_Elec,Elecs, &
1965 nq, uGF, &
1966 ucell, nspin, na_u, lasto, &
1967 sp_dist, sparse_pattern, &
1968 no_u, n_nzs, &
1969- H, S, DM, EDM, Ef, DE_NEGF)
1970+ H, S, DM, EDM, Ef, NEGF_DE)
1971 end if
1972 #ifdef SIESTA__MUMPS
1973 else if ( ts_method == TS_MUMPS ) then
1974@@ -287,14 +288,14 @@
1975 nq, uGF, nspin, na_u, lasto, &
1976 sp_dist, sparse_pattern, &
1977 no_u, n_nzs, &
1978- H, S, DM, EDM, Ef, DE_NEGF)
1979+ H, S, DM, EDM, Ef, NEGF_DE)
1980 else
1981 call ts_mumpsk(N_Elec,Elecs, &
1982 nq, uGF, &
1983 ucell, nspin, na_u, lasto, &
1984 sp_dist, sparse_pattern, &
1985 no_u, n_nzs, &
1986- H, S, DM, EDM, Ef, DE_NEGF)
1987+ H, S, DM, EDM, Ef, NEGF_DE)
1988 end if
1989 #endif
1990 else
1991
1992=== modified file 'Src/m_ts_options.F90'
1993--- Src/m_ts_options.F90 2019-06-11 08:38:16 +0000
1994+++ Src/m_ts_options.F90 2019-08-18 23:02:58 +0000
1995@@ -375,7 +375,7 @@
1996
1997 ! Whether we should always set the DM to bulk
1998 ! values (by reading in from electrode DM)
1999- if ( TS_scf_mode == 1 ) then
2000+ if ( TS_scf_mode == 1 .or. .not. IsVolt ) then
2001 chars = 'bulk'
2002 else
2003 chars = 'diagon'
2004
2005=== modified file 'Src/mixer.F'
2006--- Src/mixer.F 2018-11-27 11:01:23 +0000
2007+++ Src/mixer.F 2019-08-18 23:02:58 +0000
2008@@ -30,7 +30,8 @@
2009 use m_mixing_scf, only: scf_mix
2010 use m_mixing, only: mixing
2011
2012- use m_spin, only: h_spin_dim, SpOrb
2013+ use m_spin, only: spin
2014+
2015 use parallel, only: IONode
2016
2017 implicit none
2018@@ -42,6 +43,7 @@
2019
2020 real(dp) :: dtmp
2021 integer :: iiscf, i, is
2022+ integer :: nspin_mix
2023
2024 external :: mulliken
2025 !-------------------------------------------------------------------- BEGIN
2026@@ -52,15 +54,17 @@
2027 ! Mix Hamiltonian
2028 Xin => Hold
2029 Xout => H
2030+ nspin_mix = spin%H
2031 else
2032 ! Mix density matrix
2033 Xin => Dold
2034 Xout => Dscf
2035+ nspin_mix = spin%DM
2036 end if
2037
2038
2039 ! Create residual function to minimize
2040- allocate(F(maxnh,h_spin_dim))
2041+ allocate(F(maxnh,nspin_mix))
2042
2043 !$OMP parallel default(shared), private(dtmp,i)
2044
2045@@ -103,15 +107,15 @@
2046 ! Upon exit Xout contains the mixed quantity
2047 select case ( mix_spin )
2048 case ( MIX_SPIN_ALL )
2049- call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout)
2050+ call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout)
2051 case ( MIX_SPIN_SPINOR )
2052- call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout,
2053+ call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout,
2054 & nsub=2)
2055 case ( MIX_SPIN_SUM )
2056- call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout,
2057+ call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout,
2058 & nsub=1)
2059 case ( MIX_SPIN_SUM_DIFF )
2060- call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout,
2061+ call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout,
2062 & nsub=2)
2063 end select
2064
2065@@ -148,31 +152,23 @@
2066 ! Correctly handle mixed quantity
2067 ! move over mixed quantity to "input"
2068 if ( mix_scf_first ) then
2069-
2070- ! always allow mixing
2071-!$OMP do
2072- do is = 1 , size(Xin, 2)
2073- do i = 1 , size(Xin, 1)
2074- Xin(i,is) = Xout(i,is)
2075- end do
2076- end do
2077-!$OMP end do nowait
2078-
2079+
2080+ ! always allow mixing
2081+ ! I.e. we do nothing
2082+
2083 else if ( iscf == 1 ) then
2084
2085- ! We are not allowed to mix the first SCF
2086- ! Remember that Xout contains the MIXED
2087- ! quantity and F is the current residual
2088- ! hence:
2089- ! Xout = Xin + F
2090+ ! We are not allowed to mix the first SCF
2091+ ! Remember that Xout contains the MIXED
2092+ ! quantity and F is the current residual
2093+ ! hence for no mixing we re-create Xout:
2094+ ! Xout = Xin + F
2095 !$OMP do
2096- do is = 1 , size(Xin, 2)
2097- do i = 1 , size(Xin, 1)
2098- Xin(i,is) = Xin(i,is) + F(i,is)
2099- ! we require that Xin == Xout:
2100- Xout(i,is) = Xin(i,is)
2101- end do
2102- end do
2103+ do is = 1 , nspin_mix
2104+ do i = 1 , size(Xin, 1)
2105+ Xout(i,is) = Xin(i,is) + F(i,is)
2106+ end do
2107+ end do
2108 !$OMP end do nowait
2109
2110 end if
2111@@ -188,7 +184,7 @@
2112
2113 if (muldeb .and. (.not. MixH) ) then
2114 if (IONode) write (6,"(/a)") 'Using DM after mixing:'
2115- if ( SpOrb .and. orbmoms) then
2116+ if ( spin%SO .and. orbmoms) then
2117 call moments( 1, na_u, no_u, maxnh, numh, listhptr,
2118 . listh, S, Dscf, isa, lasto, iaorb, iphorb,
2119 . indxuo )
2120
2121=== modified file 'Src/print_spin.F90'
2122--- Src/print_spin.F90 2018-04-11 09:52:01 +0000
2123+++ Src/print_spin.F90 2019-08-18 23:02:58 +0000
2124@@ -2,10 +2,10 @@
2125 !
2126 ! Prints spin in output and CML files
2127 !
2128- use m_spin, only: nspin
2129+ use m_spin, only: spin
2130 use atomlist, only: no_l
2131 use sparse_matrices, only: listhptr, numh
2132- use sparse_matrices, only: S, Dscf
2133+ use sparse_matrices, only: S, Dscf ! Dscf could have 1, 2, 4, or 8 components
2134 use siesta_cml
2135 use parallel, only: IOnode
2136 use precision, only: dp
2137@@ -15,58 +15,73 @@
2138
2139 implicit none
2140
2141- real(dp), intent(out) :: qspin(4)
2142+ real(dp), intent(out) :: qspin(spin%Grid)
2143
2144 integer :: ispin, io, j, ind
2145 real(dp) :: qaux
2146 real(dp) :: Stot ! Total spin magnitude
2147 real(dp) :: Svec(3) ! Total spin vector
2148 #ifdef MPI
2149- real(dp) :: qtmp(4)
2150-#endif
2151-
2152- if (nspin .ge. 2) then
2153- do ispin = 1,nspin
2154- qspin(ispin) = 0.0_dp
2155- do io = 1,no_l
2156- do j = 1,numh(io)
2157- ind = listhptr(io)+j
2158- qspin(ispin) = qspin(ispin) + Dscf(ind,ispin) * S(ind)
2159- enddo
2160- enddo
2161- enddo
2162-
2163-#ifdef MPI
2164- ! Global reduction of spin components
2165- call globalize_sum(qspin(1:nspin),qtmp(1:nspin))
2166- qspin(1:nspin) = qtmp(1:nspin)
2167-#endif
2168-
2169- if (nspin .eq. 2) then
2170-
2171- if (IOnode) then
2172- Svec(1) = 0.0_dp
2173- Svec(2) = 0.0_dp
2174- Svec(3) = qspin(1) - qspin(2)
2175- Stot = Svec(3)
2176- write(6,'(5x,a,f10.5,2f10.1,f10.5)') 'spin moment: S , {S} = ', Stot, Svec
2177- endif
2178- if (cml_p) call cmlAddProperty(xf=mainXML, &
2179- value=qspin(1)-qspin(2), dictref='siesta:stot', &
2180- units='siestaUnits:spin')
2181-
2182- elseif (nspin .eq. 4) then
2183-
2184- call spnvec( nspin, qspin, qaux, Stot, Svec )
2185- if (IONode) then
2186- write(6,'(5x,a,4f10.5)') 'spin moment: S , {S} = ', Stot, Svec
2187- if (cml_p) then
2188- call cmlAddProperty(xf=mainXML, value=Stot, &
2189- dictref='siesta:stot', units='siestaUnits:spin')
2190- call cmlAddProperty(xf=mainXML, value=Svec, &
2191- dictref='siesta:svec', units='siestaUnits:spin')
2192- endif !cml_p
2193- endif
2194- endif
2195+ real(dp) :: qtmp(spin%Grid)
2196+#endif
2197+
2198+ qspin(:) = 0.0_dp
2199+
2200+ if ( spin%Grid < 2 ) return
2201+
2202+ if ( spin%SO ) then
2203+
2204+ do io = 1,no_l
2205+ do j = 1,numh(io)
2206+ ind = listhptr(io)+j
2207+ ! In the SOC case, hermitify Dscf
2208+ qspin(1:2) = qspin(1:2) + dscf(ind,1:2) * S(ind)
2209+ qspin(3) = qspin(3) + 0.5_dp*(dscf(ind,3)+dscf(ind,7)) * S(ind)
2210+ qspin(4) = qspin(4) + 0.5_dp*(dscf(ind,4)+dscf(ind,8)) * S(ind)
2211+ end do
2212+ end do
2213+
2214+ else
2215+
2216+ do io = 1,no_l
2217+ do j = 1,numh(io)
2218+ ind = listhptr(io)+j
2219+ qspin(:) = qspin(:) + Dscf(ind,:) * S(ind)
2220+ end do
2221+ end do
2222+
2223 endif
2224+#ifdef MPI
2225+ ! Global reduction of spin components
2226+ call globalize_sum(qspin(1:spin%Grid),qtmp(1:spin%Grid))
2227+ qspin(1:spin%Grid) = qtmp(1:spin%Grid)
2228+#endif
2229+
2230+ ! We are left with printing out to stdout
2231+ if ( .not. IONode ) return
2232+
2233+ if ( spin%Grid == 2) then
2234+
2235+ Svec(1) = 0.0_dp
2236+ Svec(2) = 0.0_dp
2237+ Svec(3) = qspin(1) - qspin(2)
2238+ Stot = Svec(3)
2239+ write(6,'(5x,a,f10.5,2f10.1,f10.5)') 'spin moment: S , {S} = ', Stot, Svec
2240+ if (cml_p) call cmlAddProperty(xf=mainXML, &
2241+ value=qspin(1)-qspin(2), dictref='siesta:stot', &
2242+ units='siestaUnits:spin')
2243+
2244+ else if ( spin%Grid == 4 ) then
2245+
2246+ call spnvec( spin%Grid, qspin, qaux, Stot, Svec )
2247+ write(6,'(5x,a,4f10.5)') 'spin moment: S , {S} = ', Stot, Svec
2248+ if (cml_p) then
2249+ call cmlAddProperty(xf=mainXML, value=Stot, &
2250+ dictref='siesta:stot', units='siestaUnits:spin')
2251+ call cmlAddProperty(xf=mainXML, value=Svec, &
2252+ dictref='siesta:svec', units='siestaUnits:spin')
2253+ end if !cml_p
2254+
2255+ end if
2256+
2257 end subroutine print_spin
2258
2259=== modified file 'Src/read_options.F90'
2260--- Src/read_options.F90 2019-08-16 10:13:21 +0000
2261+++ Src/read_options.F90 2019-08-18 23:02:58 +0000
2262@@ -445,9 +445,9 @@
2263
2264 ! Density Matrix Mixing (proportion of output DM in new input DM)
2265 wmix = fdf_get('DM.MixingWeight',0.25_dp)
2266- if (ionode) then
2267- write(6,6) 'redata: New DM Mixing Weight',wmix
2268- endif
2269+!!$ if (ionode) then
2270+!!$ write(6,6) 'redata: New DM Mixing Weight',wmix
2271+!!$ endif
2272
2273 if (cml_p) then
2274 call cmlAddParameter( xf=mainXML,name='DM.MixingWeight', &
2275
2276=== modified file 'Src/rhoofd.F90'
2277--- Src/rhoofd.F90 2016-09-13 13:22:20 +0000
2278+++ Src/rhoofd.F90 2019-08-18 23:02:58 +0000
2279@@ -294,7 +294,7 @@
2280 r2sp = sum(dxsp**2)
2281 if ( r2sp < r2cut(is) ) then
2282 !$OMP critical
2283- call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )
2284+ call all_phi( is, +1, dxsp, maxoa, nphiloc, phia(:,isp) )
2285 !$OMP end critical
2286 else
2287 phia(:,isp) = 0.0_dp
2288
2289=== modified file 'Src/rhoofdsp.f'
2290--- Src/rhoofdsp.f 2016-01-25 16:00:16 +0000
2291+++ Src/rhoofdsp.f 2019-08-18 23:02:58 +0000
2292@@ -306,7 +306,8 @@
2293 dxsp(:) = xdsp(:,isp) + xdop(:,iop) - dxa(:,ia)
2294 r2sp = sum(dxsp**2)
2295 if (r2sp.lt.r2cut(is)) then
2296- call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )
2297+ call all_phi( is, +1, dxsp, maxoa,
2298+ & nphiloc, phia(:,isp) )
2299 else
2300 phia(:,isp) = 0.0_dp
2301 endif
2302
2303=== modified file 'Src/siesta_analysis.F'
2304--- Src/siesta_analysis.F 2018-06-25 11:33:42 +0000
2305+++ Src/siesta_analysis.F 2019-08-18 23:02:58 +0000
2306@@ -46,8 +46,7 @@
2307 use m_energies
2308 use m_steps, only: final
2309 use m_ntm
2310- use m_spin, only: nspin, spinor_dim, h_spin_dim
2311- use m_spin, only: SpOrb, NonCol, SPpol, NoMagn
2312+ use m_spin, only: spin
2313 use m_dipol
2314 use m_eo
2315 use m_forces, only: fa
2316@@ -68,15 +67,15 @@
2317
2318 real(dp) :: dummy_str(3,3)
2319 real(dp) :: dummy_strl(3,3)
2320- real(dp) :: qspin(4) ! Local
2321+ real(dp) :: qspin(spin%Grid) ! Local
2322
2323- real(dp) :: polxyz(3,nspin) ! Autom., small
2324- real(dp) :: polR(3,nspin) ! Autom., small
2325+ real(dp) :: polxyz(3,spin%Grid) ! Autom., small
2326+ real(dp) :: polR(3,spin%Grid) ! Autom., small
2327 real(dp) :: qaux
2328 real(dp), pointer :: ebk(:,:,:) ! Band energies
2329
2330 integer :: j, ix, ind, ik, io, ispin
2331- integer :: wfs_band_min, wfs_band_max
2332+ integer :: wfs_band_min, wfs_band_max, max_n_states
2333 real(dp) :: g2max, current_ef
2334 type(filesOut_t) :: filesOut ! blank output file names
2335
2336@@ -127,7 +126,7 @@
2337
2338 if (fdf_get("Read-H-from-file",.false.)) then
2339 if (SIESTA_worker) then
2340- call read_spmatrix(maxnh, no_l, h_spin_dim, numh,
2341+ call read_spmatrix(maxnh, no_l, spin%H, numh,
2342 . listhptr, listh, H, found, userfile="H_IN")
2343 if (.not. found) call die("Could not find H_IN")
2344 current_ef = ef
2345@@ -137,7 +136,7 @@
2346
2347 #ifdef SIESTA__PEXSI
2348 if (fdf_get("PEXSI.DOS",.false.)) then
2349- call pexsi_dos(no_u, no_l, spinor_dim,
2350+ call pexsi_dos(no_u, no_l, spin%spinor,
2351 $ maxnh, numh, listhptr, listh, H, S, qtot, ef)
2352
2353 endif
2354@@ -263,6 +262,17 @@
2355 ! latest DM, although this is probably too much).
2356 ! See the logic in siesta_forces.
2357
2358+! Setup the number of states depending on the used method
2359+! For polarized calculations we use no_u and separate spin-channels.
2360+! For NC/SO we have mixed spin-channels and separating makes no
2361+! sense.
2362+ if ( spin%Grid == 4 ) then
2363+! We are NC/SO
2364+ max_n_states = no_u * 2
2365+ else
2366+ max_n_states = no_u
2367+ end if
2368+
2369 ! Find and print wavefunctions at selected k-points
2370 !** This uses H,S, and xa
2371 if (nwk.gt.0) then
2372@@ -270,7 +280,7 @@
2373 if (IONode) print "(a)",
2374 $ "Writing WFSX for selected k-points in "
2375 $ // trim(wfs_filename)
2376- call wwave( no_s, h_spin_dim, spinor_dim, no_u, no_l, maxnh,
2377+ call wwave( no_s, spin, no_u, no_l, maxnh,
2378 & nwk,
2379 & numh, listhptr, listh, H, S, Ef, xijo, indxuo,
2380 & gamma_wavefunctions, nwk, wfk, no_u, occtol )
2381@@ -278,19 +288,20 @@
2382
2383
2384 !** This uses H,S, and xa
2385- if (write_coop) then
2386+ if ( write_coop ) then
2387 ! Output the wavefunctions for the kpoints in the SCF set
2388 ! Note that we allow both a band number and an energy range
2389 ! The user is responsible for using appropriate values.
2390 wfs_band_min = fdf_get("WFS.BandMin",1)
2391- wfs_band_max = fdf_get("WFS.BandMax",no_u)
2392- call setup_wfs_list(nkpnt,no_u,wfs_band_min,wfs_band_max,
2393+ wfs_band_max = fdf_get("WFS.BandMax",max_n_states)
2394+ call setup_wfs_list(nkpnt,max_n_states,
2395+ $ wfs_band_min,wfs_band_max,
2396 $ use_scf_weights=.true.,
2397 $ use_energy_window=.true.)
2398 wfs_filename = trim(slabel)//".fullBZ.WFSX"
2399 if (IONode) print "(a)", "Writing WFSX for COOP/COHP in "
2400 $ // trim(wfs_filename)
2401- call wwave( no_s, h_spin_dim, spinor_dim, no_u, no_l, maxnh,
2402+ call wwave( no_s, spin, no_u, no_l, maxnh,
2403 . nkpnt,
2404 . numh, listhptr, listh, H, S, Ef, xijo, indxuo,
2405 . gamma_SCF, nkpnt, kpoint, no_u, occtol)
2406@@ -299,82 +310,101 @@
2407 ! Compute bands
2408 !** This uses H,S, and xa
2409 nullify( ebk )
2410- call re_alloc( ebk, 1, no_u, 1, spinor_dim, 1, maxbk,
2411- & 'ebk', 'siesta_analysis' )
2412-
2413- if (nbk.gt.0) then
2414+ if ( spin%Grid == 4 ) then
2415+ call re_alloc( ebk, 1, no_u*2, 1, 1, 1, maxbk,
2416+ & 'ebk', 'siesta_analysis' )
2417+ else
2418+ call re_alloc( ebk, 1, no_u, 1, spin%spinor, 1, maxbk,
2419+ & 'ebk', 'siesta_analysis' )
2420+ end if
2421+
2422+ if ( nbk > 0 ) then
2423 if (IONode) print "(a)", "Computing bands..."
2424 getPSI = fdf_get('WFS.Write.For.Bands', .false.)
2425 if (getPSI) then
2426- wfs_filename = trim(slabel)//".bands.WFSX"
2427- if (IONode) print "(a)", "Writing WFSX for bands in "
2428- $ // trim(wfs_filename)
2429- wfs_band_min = fdf_get("WFS.BandMin",1)
2430- wfs_band_max = fdf_get("WFS.BandMax",no_u)
2431- call setup_wfs_list(nbk,no_u,wfs_band_min,wfs_band_max,
2432- $ use_scf_weights=.false.,
2433- $ use_energy_window=.false.)
2434- endif
2435- call bands( no_s, h_spin_dim, spinor_dim, no_u, no_l, maxnh,
2436+ wfs_filename = trim(slabel)//".bands.WFSX"
2437+ if (IONode) print "(a)", "Writing WFSX for bands in "
2438+ $ // trim(wfs_filename)
2439+ wfs_band_min = fdf_get("WFS.BandMin",1)
2440+ wfs_band_max = fdf_get("WFS.BandMax",max_n_states)
2441+ call setup_wfs_list(nbk,max_n_states,
2442+ $ wfs_band_min,wfs_band_max,
2443+ $ use_scf_weights=.false.,
2444+ $ use_energy_window=.false.)
2445+ end if
2446+ call bands( no_s, spin, no_u, no_l, maxnh,
2447 . maxbk,
2448 . numh, listhptr, listh, H, S, Ef, xijo, indxuo,
2449- . .true., nbk, bk, ebk, occtol, getPSI )
2450- if (IOnode) then
2451+ . .true., nbk, bk, ebk, occtol, getPSI )
2452+
2453+ if ( IOnode ) then
2454 if ( writbk ) then
2455- write(6,'(/,a,/,a4,a12)')
2456- & 'siesta: Band k vectors (Bohr**-1):', 'ik', 'k'
2457+ write(6,'(/,a,/,a4,tr1,a12)')
2458+ & 'siesta: Band k vectors (Bohr**-1):', 'ik', 'k'
2459 do ik = 1,nbk
2460- write(6,'(i4,3f12.6)') ik, (bk(ix,ik),ix=1,3)
2461- enddo
2462- endif
2463+ write(6,'(i4,3(tr1,f12.6))') ik, (bk(ix,ik),ix=1,3)
2464+ end do
2465+ end if
2466
2467 if ( writb ) then
2468- write(6,'(/,a,/,a4,a3,a7)')
2469- & 'siesta: Band energies (eV):', 'ik', 'is', 'eps'
2470- do ispin = 1, spinor_dim
2471+ if ( spin%Grid == 4 ) then
2472+ write(6,'(/,a,/,a4,tr1,a9)')
2473+ & 'siesta: Band energies (eV):', 'ik', 'eps'
2474 do ik = 1,nbk
2475- write(6,'(i4,i3,10f7.2)')
2476- & ik, ispin, (ebk(io,ispin,ik)/eV,io=1,min(10,no_u))
2477- if (no_u.gt.10) write(6,'(7x,10f7.2)')
2478- & (ebk(io,ispin,ik)/eV,io=11,no_u)
2479+ write(6,'(i4,10(tr1,f9.4))')
2480+ & ik, (ebk(io,1,ik)/eV,io=1,min(10,2*no_u))
2481+ if ( 2*no_u > 10 ) write(6,'(4x,10(tr1,f9.4))')
2482+ & (ebk(io,1,ik)/eV,io=11,no_u*2)
2483+ end do
2484+
2485+ else
2486+ write(6,'(/,a,/,a4,a3,tr1,a9)')
2487+ & 'siesta: Band energies (eV):', 'ik', 'is', 'eps'
2488+ do ispin = 1, spin%spinor
2489+ do ik = 1,nbk
2490+ write(6,'(i4,i3,10(tr1,f9.4))')
2491+ & ik, ispin, (ebk(io,ispin,ik)/eV,io=1,min(10,no_u))
2492+ if ( no_u > 10 ) write(6,'(7x,10(tr1,f9.4))')
2493+ & (ebk(io,ispin,ik)/eV,io=11,no_u)
2494+ enddo
2495 enddo
2496- enddo
2497+ end if
2498 endif
2499+
2500 endif
2501 endif
2502
2503 ! Print eigenvalues
2504- if (IOnode .and. writeig) then
2505- if ((isolve.eq.SOLVE_DIAGON .or.
2506- & ((isolve.eq.SOLVE_MINIM) .and. minim_calc_eigenvalues))
2507- & .and. no_l.lt.1000) then
2508- if ( h_spin_dim <= 2 ) then
2509- write(6,'(/,a,/,a4,a3,a7)')
2510- & 'siesta: Eigenvalues (eV):', 'ik', 'is', 'eps'
2511- do ik = 1,nkpnt
2512- do ispin = 1,spinor_dim
2513- write(6,'(i4,i3,10f7.2)')
2514+ if ( IOnode .and. writeig .and. no_l < 1000 .and.
2515+ & (isolve.eq.SOLVE_DIAGON .or.
2516+ & (isolve.eq.SOLVE_MINIM .and. minim_calc_eigenvalues)) ) then
2517+
2518+ if ( spin%Grid == 4 ) then
2519+ write(6,'(/,a)') 'siesta: Eigenvalues (eV):'
2520+ do ik = 1,nkpnt
2521+ write(6,'(a,i6)') 'ik =', ik
2522+ write(6,'(10(tr1,f9.4))') (eo(io,1,ik)/eV,io=1,2*neigwanted)
2523+ end do
2524+
2525+ else
2526+ write(6,'(/,a,/,a4,a3,tr1,a9)')
2527+ & 'siesta: Eigenvalues (eV):', 'ik', 'is', 'eps'
2528+ do ik = 1,nkpnt
2529+ do ispin = 1, spin%spinor
2530+ write(6,'(i4,i3,10(tr1,f9.4))')
2531 & ik,ispin,(eo(io,ispin,ik)/eV,io=1,min(10,neigwanted))
2532- if (no_u.gt.10) write(6,'(7x,10f7.2)')
2533+ if (no_u.gt.10) write(6,'(7x,10(tr1,f9.4))')
2534 & (eo(io,ispin,ik)/eV,io=11,neigwanted)
2535- enddo
2536- enddo
2537- else
2538- write(6,'(/,a)') 'siesta: Eigenvalues (eV):'
2539- do ik = 1,nkpnt
2540- write(6,'(a,i6)') 'ik =', ik
2541- write(6,'(10f7.2)')
2542- & ((eo(io,ispin,ik)/eV,io=1,neigwanted),ispin=1,2)
2543- enddo
2544- endif
2545- write(6,'(a,f15.6,a)') 'siesta: Fermi energy =', ef/eV, ' eV'
2546- endif
2547+ end do
2548+ end do
2549+ end if
2550+ write(6,'(a,f15.6,a)') 'siesta: Fermi energy =', ef/eV, ' eV'
2551 endif
2552
2553 if (((isolve.eq.SOLVE_DIAGON).or.
2554 & ((isolve.eq.SOLVE_MINIM).and.minim_calc_eigenvalues))
2555 & .and.IOnode)
2556- & call ioeig(eo,ef,neigwanted,nspin,nkpnt,no_u,spinor_dim,
2557+ & call ioeig(eo,ef,neigwanted,spin%H,nkpnt,no_u,spin%spinor,
2558 & nkpnt,kpoint, kweight)
2559
2560
2561@@ -430,7 +460,7 @@
2562 ! Calculation of the bulk polarization using the Berry phase
2563 ! formulas by King-Smith and Vanderbilt
2564 if (nkpol.gt.0 .and. .not.bornz) then
2565- if (NonCol .or. SpOrb) then
2566+ if ( spin%NCol .or. spin%SO ) then
2567 if (IOnode) then
2568 write(6,'(/a)')
2569 . 'siesta_analysis: bulk polarization implemented only for'
2570@@ -439,7 +469,7 @@
2571 endif
2572 else
2573 call KSV_pol(na_u, na_s, xa_last, rmaxo, scell_last,
2574- & ucell_last,no_u, no_l, no_s, nspin, qspin,
2575+ & ucell_last,no_u, no_l, no_s, spin%Grid, qspin,
2576 & maxnh, nkpol, numh, listhptr, listh,
2577 & H, S, xijo, indxuo, isa, iphorb,
2578 & iaorb, lasto, shape,
2579@@ -449,7 +479,7 @@
2580
2581 ! Calculation of the optical conductivity
2582 call optical(na_u, na_s, xa_last, scell_last, ucell_last,
2583- & no_u, no_l, no_s, nspin, qspin,
2584+ & no_u, no_l, no_s, spin%Grid, qspin,
2585 & maxnh, numh, listhptr, listh, H, S, xijo,
2586 $ indxuo, ebk, ef, temp,
2587 & isa, iphorb, iphKB, lasto, lastkb, shape )
2588@@ -479,7 +509,7 @@
2589 g2max = g2cut
2590 dummy_str = 0.0
2591 dummy_strl = 0.0
2592- call dhscf( nspin, no_s, iaorb, iphorb, no_l,
2593+ call dhscf( spin%Grid, no_s, iaorb, iphorb, no_l,
2594 . no_u, na_u, na_s, isa, xa_last, indxua,
2595 & ntm, 0, 0, 0, filesOut,
2596 & maxnh, numh, listhptr, listh, Dscf, Datm,
2597
2598=== modified file 'Src/siesta_dicts.F90'
2599--- Src/siesta_dicts.F90 2018-09-06 10:00:24 +0000
2600+++ Src/siesta_dicts.F90 2019-08-18 23:02:58 +0000
2601@@ -316,8 +316,19 @@
2602 ('E.spin_orbit'.kvp.Eso)
2603 variables = variables // &
2604 ('E.ldau'.kvp.Eldau)
2605- variables = variables // &
2606- ('E.negf'.kvp.DE_NEGF)
2607+
2608+ variables = variables // &
2609+ ('E.negf.dN'.kvp.NEGF_DE)
2610+ variables = variables // &
2611+ ('E.negf.spin_orbit'.kvp.NEGF_Eso)
2612+ variables = variables // &
2613+ ('E.negf.harris'.kvp.NEGF_Eharrs)
2614+ variables = variables // &
2615+ ('E.negf.total'.kvp.NEGF_Etot)
2616+ variables = variables // &
2617+ ('E.negf.kinetic'.kvp.NEGF_Ekin)
2618+ variables = variables // &
2619+ ('E.negf.band_structure'.kvp.NEGF_Ebs)
2620
2621 ! Add the number of charges to the system
2622 variables = variables // &
2623
2624=== modified file 'Src/siesta_forces.F'
2625--- Src/siesta_forces.F 2018-09-24 07:27:11 +0000
2626+++ Src/siesta_forces.F 2019-08-18 23:02:58 +0000
2627@@ -84,7 +84,6 @@
2628 use m_pexsi, only: pexsi_finalize_scfloop
2629 #endif
2630
2631- use m_energies, only: DE_NEGF
2632 use m_ts_options, only : N_Elec
2633 use m_ts_method
2634 use m_ts_global_vars, only: TSmode, TSinit, TSrun
2635@@ -380,7 +379,7 @@
2636 call transiesta(iscf,spin%H,
2637 & block_dist, sparse_pattern, Gamma_Scf, ucell, nsc,
2638 & isc_off, no_u, na_u, lasto, xa, maxnh, H, S,
2639- & Dscf, Escf, Ef, Qtot, .true., DE_NEGF)
2640+ & Dscf, Escf, Ef, Qtot, .true.)
2641
2642 ! We will not have not converged as we have just
2643 ! changed the Fermi-level
2644
2645=== modified file 'Src/spher_harm.f'
2646--- Src/spher_harm.f 2017-02-19 19:26:15 +0000
2647+++ Src/spher_harm.f 2019-08-18 23:02:58 +0000
2648@@ -68,12 +68,15 @@
2649 PARAMETER (TINY=1.e-14_dp, ZERO=0._dp, HALF=0.5_dp, ONE=1._dp,
2650 . TWO=2._dp, THREE=3._dp, SIX=6._dp)
2651
2652+ real(dp), parameter :: pi = 3.14159265358979323846264338327950_dp
2653+ real(dp), parameter :: pi4 = 4 * pi
2654+
2655 C Internal variables
2656 INTEGER
2657- . I, ILM, ILM0, L, LMXMX, M, MS
2658+ . I, ILM, ILM0, L, LMXMX, M
2659 REAL(DP)
2660 . C(0:MAXLP1*MAXLP1), COSM, COSMM1, COSPHI,
2661- . ZP(0:MAXLP1,0:MAXLP1), FAC, FOURPI, GY(3),
2662+ . ZP(0:MAXLP1,0:MAXLP1), FAC, GY(3),
2663 . P(0:MAXLP1,0:MAXLP1),
2664 . RL(-1:MAXL), RSIZE, RX, RY, RZ, RXY,
2665 . SINM, SINMM1, SINPHI, YY
2666@@ -83,11 +86,10 @@
2667 C Evaluate normalization constants once and for all
2668 IF (LMAX.GT.LMXMX) THEN
2669 IF (LMAX.GT.MAXL) call die('YLM: MAXL too small')
2670- FOURPI=TWO**4*ATAN(ONE)
2671 DO 20 L=0,LMAX
2672 ILM0=L*L+L
2673 DO 15 M=0,L
2674- FAC=(2*L+1)/FOURPI
2675+ FAC=(2*L+1)/pi4
2676 DO 10 I=L-M+1,L+M
2677 FAC=FAC/I
2678 10 CONTINUE
2679@@ -202,27 +204,25 @@
2680 SINM=ZERO
2681 DO 90 M=0,LMAX
2682 DO 80 L=M,LMAX
2683- DO 75 MS = -1,1,2
2684- IF (MS.EQ.-1) THEN
2685- ILM=L*L+L-M
2686- YY=C(ILM)*P(L,M)*SINM
2687- GY(1)=(-ZP(L,M))*RX *RZ *SINM - P(L,M)*M*COSM*SINPHI/RXY
2688- GY(2)=(-ZP(L,M))*RY *RZ *SINM + P(L,M)*M*COSM*COSPHI/RXY
2689- GY(3)= ZP(L,M)*RXY*RXY*SINM
2690- ELSE
2691- ILM=L*L+L+M
2692- YY=C(ILM)*P(L,M)*COSM
2693- GY(1)=(-ZP(L,M))*RX *RZ *COSM + P(L,M)*M*SINM*SINPHI/RXY
2694- GY(2)=(-ZP(L,M))*RY *RZ *COSM - P(L,M)*M*SINM*COSPHI/RXY
2695- GY(3)= ZP(L,M)*RXY*RXY*COSM
2696- ENDIF
2697- GY(1)= GY(1)*C(ILM)/RSIZE
2698- GY(2)= GY(2)*C(ILM)/RSIZE
2699- GY(3)= GY(3)*C(ILM)/RSIZE
2700- RLY(ILM)=RL(L)*YY
2701- GRLY(1,ILM)= RX*L*RL(L-1)*YY + RL(L)*GY(1)
2702- GRLY(2,ILM)= RY*L*RL(L-1)*YY + RL(L)*GY(2)
2703- GRLY(3,ILM)= RZ*L*RL(L-1)*YY + RL(L)*GY(3)
2704+ ILM=L*L+L-M
2705+ GY(1)=(-ZP(L,M))*RX *RZ *SINM - P(L,M)*M*COSM*SINPHI/RXY
2706+ GY(2)=(-ZP(L,M))*RY *RZ *SINM + P(L,M)*M*COSM*COSPHI/RXY
2707+ GY(3)= ZP(L,M)*RXY*RXY*SINM
2708+ YY=C(ILM)*P(L,M)*SINM
2709+ RLY(ILM)=RL(L)*YY
2710+ GRLY(1,ILM)= RX*L*RL(L-1)*YY + RL(L)*GY(1)*C(ILM)/RSIZE
2711+ GRLY(2,ILM)= RY*L*RL(L-1)*YY + RL(L)*GY(2)*C(ILM)/RSIZE
2712+ GRLY(3,ILM)= RZ*L*RL(L-1)*YY + RL(L)*GY(3)*C(ILM)/RSIZE
2713+
2714+ ILM=L*L+L+M
2715+ GY(1)=(-ZP(L,M))*RX *RZ *COSM + P(L,M)*M*SINM*SINPHI/RXY
2716+ GY(2)=(-ZP(L,M))*RY *RZ *COSM - P(L,M)*M*SINM*COSPHI/RXY
2717+ GY(3)= ZP(L,M)*RXY*RXY*COSM
2718+ YY=C(ILM)*P(L,M)*COSM
2719+ RLY(ILM)=RL(L)*YY
2720+ GRLY(1,ILM)= RX*L*RL(L-1)*YY + RL(L)*GY(1)*C(ILM)/RSIZE
2721+ GRLY(2,ILM)= RY*L*RL(L-1)*YY + RL(L)*GY(2)*C(ILM)/RSIZE
2722+ GRLY(3,ILM)= RZ*L*RL(L-1)*YY + RL(L)*GY(3)*C(ILM)/RSIZE
2723 75 CONTINUE
2724 80 CONTINUE
2725 COSMM1=COSM
2726
2727=== added file 'Src/ts_energies.F90'
2728--- Src/ts_energies.F90 1970-01-01 00:00:00 +0000
2729+++ Src/ts_energies.F90 2019-08-18 23:02:58 +0000
2730@@ -0,0 +1,206 @@
2731+!
2732+! Copyright (C) 1996-2016 The SIESTA group
2733+! This file is distributed under the terms of the
2734+! GNU General Public License: see COPYING in the top directory
2735+! or http://www.gnu.org/copyleft/gpl.txt.
2736+! See Docs/Contributors.txt for a list of contributors.
2737+!
2738+! This code segment has been fully created by:
2739+! Nick Papior Andersen, 2019, nickpapior@gmail.com
2740+! Please conctact the author, prior to re-using this code.
2741+
2742+! Module for calculating energy contributions for the transiesta
2743+! calculations.
2744+! Effectively many of the energy contributions stem from Hamiltonian
2745+! and/or DM elements.
2746+! However, in TranSiesta we only update/use a subset of the full
2747+! matrices. As such the energies should only be calculated
2748+! on the used elements rather than the full.
2749+!
2750+! There are many more elements that need to be split, while currently
2751+! we only calculate a subset of what is actually needed.
2752+! The main problem in calculating NEGF energies is:
2753+! 1. the open-boundary problem, and
2754+! 2. how to handle real-space energies such as Exc from dhscf.
2755+module ts_energies_m
2756+
2757+ implicit none
2758+
2759+contains
2760+
2761+ subroutine ts_compute_energies()
2762+
2763+ use precision, only: dp
2764+ use m_ts_options, only: N_Elec, Elecs
2765+ use m_spin, only: spin
2766+
2767+ use sparse_matrices, only: dit => block_dist
2768+ use sparse_matrices, only: n_nzs => maxnh
2769+ use sparse_matrices, only: Dold, Dscf, H
2770+ use sparse_matrices, only: H_kin_1D, H_vkb_1D, H_so_2D
2771+ use sparse_matrices, only: sp => sparse_pattern
2772+
2773+ use m_ts_method
2774+ use parallel, only : Node
2775+#ifdef MPI
2776+ use mpi_siesta
2777+#endif
2778+ use class_OrbitalDistribution
2779+ use class_Sparsity
2780+ use class_dSpData1D
2781+ use class_dSpData2D
2782+
2783+ use geom_helper, only : UCORB
2784+ use m_ts_electype, only: Elec
2785+ use m_energies, only: NEGF_Ebs, NEGF_Ekin, NEGF_Eso, NEGF_Etot, NEGF_Enl
2786+ use m_energies, only: NEGF_DEharr
2787+
2788+! **********************
2789+! * LOCAL variables *
2790+! **********************
2791+ integer, pointer :: l_ncol(:), l_ptr(:), l_col(:)
2792+ integer :: no_lo, no_u, lio, io, ind, jo, ir, jr, r, ispin
2793+ real(dp), pointer :: H_vkb(:), H_kin(:), H_so(:,:)
2794+ real(dp) :: Etmp(5,0:1+1+N_Elec*2)
2795+#ifdef MPI
2796+ real(dp) :: tmp(5,0:1+1+N_Elec*2)
2797+ integer :: MPIerror
2798+#endif
2799+
2800+ H_vkb => val(H_vkb_1D)
2801+ H_kin => val(H_kin_1D)
2802+ if ( spin%SO ) then
2803+ H_so => val(H_so_2D)
2804+ end if
2805+
2806+ ! Retrieve information about the sparsity pattern
2807+ call attach(sp, &
2808+ n_col=l_ncol,list_ptr=l_ptr,list_col=l_col, &
2809+ nrows=no_lo,nrows_g=no_u)
2810+
2811+ ! Initialize energies
2812+ Etmp(:,:) = 0._dp
2813+
2814+!$OMP parallel do default(shared), &
2815+!$OMP&private(lio,io,ir,ind,jo,jr,r,ispin), &
2816+!$OMP&reduction(+:Etmp)
2817+ do lio = 1 , no_lo
2818+
2819+ ! obtain the global index of the orbital.
2820+ io = index_local_to_global(dit,lio,Node)
2821+ ir = orb_type(io)
2822+
2823+ ! Loop number of entries in the row... (index frame)
2824+ do ind = l_ptr(lio) + 1 , l_ptr(lio) + l_ncol(lio)
2825+
2826+ ! as the local sparsity pattern is a super-cell pattern,
2827+ ! we need to check the unit-cell orbital
2828+ ! The unit-cell column index
2829+ jo = UCORB(l_col(ind),no_u)
2830+ jr = orb_type(jo)
2831+
2832+ if ( all((/ir,jr/) == TYP_BUFFER) ) then
2833+ r = 1 ! buffer
2834+ else if ( any((/ir,jr/) == TYP_BUFFER) ) then
2835+ r = 0 ! other
2836+ else if ( all((/ir,jr/) == TYP_DEVICE) ) then
2837+ r = 2 ! device
2838+ else if ( any((/ir,jr/) == TYP_DEVICE) ) then
2839+ r = 4+(ir+jr-1)*2 ! device/electrode
2840+ else if ( ir == jr ) then
2841+ r = 3+(ir-1)*2 ! electrode/electrode
2842+ else
2843+ r = 0 ! other
2844+ end if
2845+
2846+ ! Ebs
2847+ if ( spin%SO ) then
2848+ Etmp(1,r) = Etmp(1,r) + H(ind,1) * Dscf(ind,1) &
2849+ + H(ind,2) * Dscf(ind,2) &
2850+ + H(ind,3) * Dscf(ind,7) &
2851+ + H(ind,4) * Dscf(ind,8) &
2852+ - H(ind,5) * Dscf(ind,5) &
2853+ - H(ind,6) * Dscf(ind,6) &
2854+ + H(ind,7) * Dscf(ind,3) &
2855+ + H(ind,8) * Dscf(ind,4)
2856+ else if ( spin%NCol ) then
2857+ Etmp(1,r) = Etmp(1,r) + H(ind,1) * Dscf(ind,1) &
2858+ + H(ind,2) * Dscf(ind,2) &
2859+ + (H(ind,3) * Dscf(ind,3) &
2860+ + H(ind,4) * Dscf(ind,4) ) * 2
2861+ else
2862+ Etmp(1,r) = Etmp(1,r) + sum(H(ind,:) * Dscf(ind,:) )
2863+ end if
2864+
2865+ do ispin = 1, spin%spinor
2866+ ! Ekin
2867+ Etmp(2,r) = Etmp(2,r) + H_kin(ind) * Dscf(ind,ispin)
2868+ ! Enl
2869+ Etmp(3,r) = Etmp(3,r) + H_vkb(ind) * Dscf(ind,ispin)
2870+ end do
2871+
2872+ ! Eso
2873+ if ( spin%SO ) then
2874+ Etmp(4,r) = Etmp(4,r) + H_so(ind,1)*Dscf(ind,7) + H_so(ind,2)*Dscf(ind,8) &
2875+ + H_so(ind,5)*Dscf(ind,3) + H_so(ind,6)*Dscf(ind,4) &
2876+ - H_so(ind,3)*Dscf(ind,5) - H_so(ind,4)*Dscf(ind,6)
2877+
2878+ end if
2879+
2880+ ! DEharr
2881+ if ( spin%SO ) then
2882+ Etmp(5,r) = Etmp(5,r) + H(ind,1) * ( Dscf(ind,1) - Dold(ind,1) ) &
2883+ + H(ind,2) * ( Dscf(ind,2) - Dold(ind,2) ) &
2884+ + H(ind,3) * ( Dscf(ind,7) - Dold(ind,7) ) &
2885+ + H(ind,4) * ( Dscf(ind,8) - Dold(ind,8) ) &
2886+ - H(ind,5) * ( Dscf(ind,5) - Dold(ind,5) ) &
2887+ - H(ind,6) * ( Dscf(ind,6) - Dold(ind,6) ) &
2888+ + H(ind,7) * ( Dscf(ind,3) - Dold(ind,3) ) &
2889+ + H(ind,8) * ( Dscf(ind,4) - Dold(ind,4) )
2890+ else if ( spin%NCol ) then
2891+ Etmp(5,r) = Etmp(5,r) + H(ind,1) * ( Dscf(ind,1) - Dold(ind,1) ) &
2892+ + H(ind,2) * ( Dscf(ind,2) - Dold(ind,2) ) &
2893+ + 2.0_dp * H(ind,3) * ( Dscf(ind,3) - Dold(ind,3) ) &
2894+ + 2.0_dp * H(ind,4) * ( Dscf(ind,4) - Dold(ind,4) )
2895+ else
2896+ do ispin = 1, spin%spinor
2897+ Etmp(5,r) = Etmp(5,r) + H(ind,ispin) * (Dscf(ind,ispin) - Dold(ind,ispin))
2898+ end do
2899+ end if
2900+
2901+ end do
2902+ end do
2903+!$OMP end parallel do
2904+
2905+ ! Now add the *other* contributions
2906+ do ir = 1, N_Elec
2907+ if ( Elecs(ir)%DM_update >= 1 ) then
2908+ ! add cross-terms
2909+ r = 4 + (TYP_DEVICE+ir - 1) * 2
2910+ Etmp(:,2) = Etmp(:,2) + Etmp(:,r)
2911+ end if
2912+ if ( Elecs(ir)%DM_update == 2 ) then
2913+ r = 3 + (ir - 1) * 2
2914+ ! add diagonal electrode terms
2915+ Etmp(:,2) = Etmp(:,2) + Etmp(:,r)
2916+ end if
2917+ end do
2918+
2919+#ifdef MPI
2920+ call MPI_AllReduce(Etmp(1,2),tmp(1,2),size(Etmp, 1), &
2921+ MPI_Double_Precision,MPI_SUM, MPI_Comm_World,MPIerror)
2922+ Etmp(:,2) = tmp(:,2)
2923+#endif
2924+
2925+ ! Copy data over
2926+ NEGF_Ebs = Etmp(1,2)
2927+ NEGF_Ekin = Etmp(2,2)
2928+ NEGF_Enl = Etmp(3,2)
2929+ NEGF_Eso = Etmp(4,2)
2930+ NEGF_DEharr = Etmp(5,2)
2931+
2932+ end subroutine ts_compute_energies
2933+
2934+end module ts_energies_m
2935+
2936+
2937
2938=== modified file 'Src/vmat.F90'
2939--- Src/vmat.F90 2016-06-22 08:57:57 +0000
2940+++ Src/vmat.F90 2019-08-18 23:02:58 +0000
2941@@ -339,7 +339,7 @@
2942 r2sp = sum(dxsp**2)
2943 if ( r2sp < r2cut(is) ) then
2944 !$OMP critical
2945- call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )
2946+ call all_phi( is, +1, dxsp, maxoa, nphiloc, phia(:,isp) )
2947 !$OMP end critical
2948 else
2949 phia(:,isp) = 0.0_dp
2950
2951=== modified file 'Src/vmatsp.f'
2952--- Src/vmatsp.f 2016-01-25 16:00:16 +0000
2953+++ Src/vmatsp.f 2019-08-18 23:02:58 +0000
2954@@ -309,7 +309,8 @@
2955 enddo
2956 r2sp = sum(dxsp**2)
2957 if (r2sp.lt.r2cut(is)) then
2958- call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )
2959+ call all_phi( is, +1, dxsp, maxoa,
2960+ & nphiloc, phia(:,isp) )
2961 else
2962 phia(:,isp) = 0.0_dp
2963 endif
2964
2965=== modified file 'Src/write_subs.F'
2966--- Src/write_subs.F 2017-11-23 14:17:27 +0000
2967+++ Src/write_subs.F 2019-08-18 23:02:58 +0000
2968@@ -296,7 +296,7 @@
2969 use units
2970 use m_energies
2971 use m_spin
2972- use m_ts_global_vars, only: TSinit, TSrun
2973+ use m_ts_global_vars, only: TSrun
2974 implicit none
2975
2976 integer :: iscf
2977@@ -304,16 +304,10 @@
2978 real(dp), intent(in) :: dHmax ! Max. change in H elements
2979
2980 character(len=64) :: fmt
2981- character(len=6) :: scf_name
2982
2983 logical :: first_scf_step
2984 integer :: i
2985
2986- scf_name = 'scf'
2987- if ( TSrun ) then
2988- scf_name = 'ts-scf'
2989- end if
2990-
2991 first_scf_step = (iscf == 1)
2992 ! Only print out full decomposition at very beginning and end.
2993 if ((istp==1.and.first_scf_step).or.final) then
2994@@ -329,7 +323,6 @@
2995 . 'siesta: DEna =', DEna/eV,
2996 . 'siesta: DUscf =', DUscf/eV,
2997 . 'siesta: DUext =', DUext/eV,
2998- . 'siesta: Enegf =', DE_NEGF/eV,
2999 . 'siesta: Exc =', Exc/eV,
3000 . 'siesta: eta*DQ =', Ecorrec/eV,
3001 . 'siesta: Emadel =', Emad/eV,
3002@@ -339,6 +332,18 @@
3003 . 'siesta: Eharris =', (Eharrs+Ekinion)/eV,
3004 . 'siesta: Etot =', (Etot+Ekinion)/eV,
3005 . 'siesta: FreeEng =', (FreeE+Ekinion)/eV
3006+ if ( TSrun ) then
3007+ write(6,'(a,f17.6)')
3008+ . 'transiesta: E-dN =', NEGF_DE/eV,
3009+ . 'transiesta: Band Stru =', NEGF_Ebs/eV,
3010+ . 'transiesta: Kinetic =', NEGF_Ekin/eV,
3011+ . 'transiesta: Ion-elec =', (Enascf+NEGF_Enl+DUscf-
3012+ . Uscf-Uatm)/eV,
3013+ . 'transiesta: Eso =', NEGF_Eso/eV,
3014+ . 'transiesta: Eharris =', (NEGF_Eharrs+Ekinion)/eV,
3015+ . 'transiesta: Etot =', (NEGF_Etot+Ekinion)/eV,
3016+ . 'transiesta: FreeEng =', (NEGF_FreeE+Ekinion)/eV
3017+ end if
3018 if (cml_p) then
3019 call cmlStartPropertyList(mainXML,
3020 . title='Energy Decomposition')
3021@@ -372,9 +377,6 @@
3022 call cmlAddProperty(xf=mainXML, value=DUext/eV,
3023 . units='siestaUnits:eV',
3024 . dictref='siesta:DUext', fmt='r6')
3025- call cmlAddProperty(xf=mainXML, value=DE_NEGF/eV,
3026- . units='siestaUnits:eV',
3027- . dictref='siesta:Enegf', fmt='r6')
3028 call cmlAddProperty(xf=mainXML, value=Exc/eV,
3029 . units='siestaUnits:eV',
3030 . dictref='siesta:Exc', fmt='r6')
3031@@ -402,6 +404,29 @@
3032 call cmlAddProperty(xf=mainXML, value=(FreeE+Ekinion)/eV,
3033 . units='siestaUnits:eV',
3034 . dictref='siesta:FreeEK', fmt='r6')
3035+
3036+ if ( TSrun ) then
3037+ ! NEGF energies
3038+ call cmlAddProperty(xf=mainXML, value=NEGF_DE/eV,
3039+ . units='siestaUnits:eV',
3040+ . dictref='siesta:EdN-GF', fmt='r6')
3041+ call cmlAddProperty(xf=mainXML, value=NEGF_Ebs/eV,
3042+ . units='siestaUnits:eV',
3043+ . dictref='siesta:Ebs-GF', fmt='r6')
3044+ call cmlAddProperty(xf=mainXML, value=NEGF_Ekin/eV,
3045+ . units='siestaUnits:eV',
3046+ . dictref='siesta:Ekin-GF', fmt='r6')
3047+ call cmlAddProperty(xf=mainXML,
3048+ . value=(NEGF_Eharrs+Ekinion)/eV,
3049+ . units='siestaUnits:eV',
3050+ . dictref='siesta:EharrsK-GF', fmt='r6')
3051+ call cmlAddProperty(xf=mainXML, value=(NEGF_Etot+Ekinion)/eV,
3052+ . units='siestaUnits:eV',
3053+ . dictref='siesta:EtotK-GF', fmt='r6')
3054+ call cmlAddProperty(xf=mainXML, value=(NEGF_FreeE+Ekinion)/eV,
3055+ . units='siestaUnits:eV',
3056+ . dictref='siesta:FreeEK-GF', fmt='r6')
3057+ end if
3058 call cmlEndPropertyList(mainXML)
3059 endif
3060 endif
3061@@ -414,6 +439,11 @@
3062 call cmlAddProperty(xf=mainXML, value=Eharrs/eV,
3063 . units="siestaUnits:eV",
3064 . dictRef="siesta:Eharrs", fmt="r7")
3065+ if ( TSrun ) then
3066+ call cmlAddProperty(xf=mainXML, value=NEGF_Eharrs/eV,
3067+ . units="siestaUnits:eV",
3068+ . dictRef="siesta:Eharrs-GF", fmt="r7")
3069+ end if
3070 if ( .not. harrisfun ) then
3071 ! store dDmax and dHmax
3072 call cmlAddProperty(xf=mainXML, value=dDmax,
3073@@ -438,6 +468,14 @@
3074 call cmlAddProperty(xf=mainXML, value=FreeE/eV,
3075 . units="siestaUnits:eV",
3076 . dictRef="siesta:FreeE", fmt="r7")
3077+ if ( TSrun ) then
3078+ call cmlAddProperty(xf=mainXML, value=NEGF_Etot/eV,
3079+ . units="siestaUnits:eV",
3080+ . dictRef="siesta:Etot-GF", fmt="r7")
3081+ call cmlAddProperty(xf=mainXML, value=NEGF_FreeE/eV,
3082+ . units="siestaUnits:eV",
3083+ . dictRef="siesta:FreeE-GF", fmt="r7")
3084+ end if
3085 if ( fixspin ) then
3086 call cmlAddProperty(xf=mainXML, value=Efs(1)/eV,
3087 . units="siestaUnits:eV",
3088@@ -455,25 +493,49 @@
3089 end if
3090 endif
3091
3092- if ( fixspin ) then
3093- if ( (iscf == 1) .or. muldeb ) then
3094- write(6,'(/,a12,3a16,4a10)')
3095- . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)',
3096- . 'dDmax', 'Ef_up', 'Ef_dn(eV)','dHmax(eV)'
3097- end if
3098- write(6,'(a8,i4,3f16.6,4f10.6)')
3099- . trim(scf_name)//': ',iscf, Eharrs/eV, Etot/eV, FreeE/eV,
3100- . dDmax, Efs(1:2)/eV, dHmax/eV
3101- else ! fixspin
3102- if ( (iscf == 1) .or. muldeb ) then
3103- write(6,'(/,a12,3a16,3a10)')
3104- . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)',
3105- . 'dDmax','Ef(eV)','dHmax(eV)'
3106- end if
3107- write(6,'(a8,i4,3f16.6,3f10.6)')
3108- . trim(scf_name)//': ',iscf, Eharrs/eV, Etot/eV, FreeE/eV,
3109- . dDmax, Ef /eV, dHmax/eV
3110- end if ! fixspin
3111+ if ( TSrun ) then
3112+ if ( fixspin ) then
3113+ if ( (iscf == 1) .or. muldeb ) then
3114+ write(6,'(/,a12,3a16,4a10)')
3115+ . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)',
3116+ . 'dDmax', 'Ef_up', 'Ef_dn(eV)','dHmax(eV)'
3117+ end if
3118+ write(6,'(a8,i4,3f16.6,4f10.6)')
3119+ . 'ts-scf: ',iscf, NEGF_Eharrs/eV, NEGF_Etot/eV,
3120+ . NEGF_FreeE/eV,
3121+ & dDmax, Efs(1:2)/eV, dHmax/eV
3122+ else ! fixspin
3123+ if ( (iscf == 1) .or. muldeb ) then
3124+ write(6,'(/,a12,3a16,3a10)')
3125+ . 'iscf', 'Eharris(eV)', 'E_KS(eV)','FreeEng(eV)',
3126+ . 'dDmax','Ef(eV)','dHmax(eV)'
3127+ end if
3128+ write(6,'(a8,i4,3f16.6,3f10.6)')
3129+ . 'ts-scf: ',iscf, NEGF_Eharrs/eV, NEGF_Etot/eV,
3130+ . NEGF_FreeE/eV,
3131+ & dDmax, Ef /eV, dHmax/eV
3132+ end if ! fixspin
3133+ else ! not NEGF
3134+ if ( fixspin ) then
3135+ if ( (iscf == 1) .or. muldeb ) then
3136+ write(6,'(/,a12,3a16,4a10)')
3137+ . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)',
3138+ . 'dDmax', 'Ef_up', 'Ef_dn(eV)','dHmax(eV)'
3139+ end if
3140+ write(6,'(a8,i4,3f16.6,4f10.6)')
3141+ . 'scf: ',iscf, Eharrs/eV, Etot/eV,
3142+ & FreeE/eV,dDmax, Efs(1:2)/eV, dHmax/eV
3143+ else ! fixspin
3144+ if ( (iscf == 1) .or. muldeb ) then
3145+ write(6,'(/,a12,3a16,3a10)')
3146+ . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)',
3147+ . 'dDmax','Ef(eV)','dHmax(eV)'
3148+ end if
3149+ write(6,'(a8,i4,3f16.6,3f10.6)')
3150+ . 'scf: ',iscf, Eharrs/eV, Etot/eV,
3151+ & FreeE/eV,dDmax, Ef /eV, dHmax/eV
3152+ end if ! fixspin
3153+ end if
3154
3155 elseif ((isolve==SOLVE_ORDERN) .or. (isolve==SOLVE_MINIM)) then
3156
3157@@ -503,12 +565,21 @@
3158 . 'siesta: ', 'Eldau =', Eldau/eV,
3159 . 'siesta: ', 'Eso =', Eso/eV,
3160 . 'siesta: ', 'Ext. field =', DUext/eV,
3161- . 'siesta: ', 'Enegf =', DE_NEGF/eV,
3162 . 'siesta: ', 'Exch.-corr. =', Exc/eV,
3163 . 'siesta: ', 'Ion-electron =', (Enascf+Enl+DUscf-Uscf-Uatm)/eV,
3164 . 'siesta: ', 'Ion-ion =', (Ena+Uatm-Enaatm-Eions)/eV,
3165 . 'siesta: ', 'Ekinion =', Ekinion/eV,
3166 . 'siesta: ', 'Total =', (Etot+Ekinion)/eV
3167+ if ( TSrun ) then
3168+ write(6,'(a,a15,f15.6)')
3169+ . 'transiesta: ', 'E-dN =', NEGF_DE/eV,
3170+ . 'transiesta: ','Band Stru =', NEGF_Ebs/eV,
3171+ . 'transiesta: ', 'Kinetic =', NEGF_Ekin/eV,
3172+ . 'transiesta: ', 'Ion-elec =', (Enascf+NEGF_Enl+DUscf-
3173+ . Uscf-Uatm)/eV,
3174+ . 'transiesta: ', 'Eso =', NEGF_Eso/eV,
3175+ . 'transiesta: ', 'Total =', (NEGF_Etot+Ekinion)/eV
3176+ end if
3177 if ( fixspin ) then
3178 write(6,'(a,a15,f15.6)')
3179 . 'siesta: ', 'Fermi_up =', Efs(1)/eV,
3180@@ -537,9 +608,6 @@
3181 call cmlAddProperty(xf=mainXML, value=DUext/eV,
3182 . units='siestaUnits:eV',
3183 . dictref='siesta:DUext', fmt='r7')
3184- call cmlAddProperty(xf=mainXML, value=DE_NEGF/eV,
3185- . units='siestaUnits:eV',
3186- . dictref='siesta:Enegf', fmt='r7')
3187 call cmlAddProperty(xf=mainXML, value=Exc/eV,
3188 . units='siestaUnits:eV',
3189 . dictref='siesta:Exc', fmt='r7')
3190@@ -557,6 +625,26 @@
3191 call cmlAddProperty(xf=mainXML, value=(Etot+Ekinion)/eV,
3192 . units='siestaUnits:eV',
3193 . dictref='siesta:Etot', fmt='r7')
3194+
3195+ if ( TSrun ) then
3196+ ! NEGF energies
3197+ call cmlAddProperty(xf=mainXML, value=NEGF_DE/eV,
3198+ . units='siestaUnits:eV',
3199+ . dictref='siesta:EdN-GF', fmt='r7')
3200+ call cmlAddProperty(xf=mainXML, value=NEGF_Ebs/eV,
3201+ . units='siestaUnits:eV',
3202+ . dictref='siesta:Ebs-GF', fmt='r7')
3203+ call cmlAddProperty(xf=mainXML, value=NEGF_Ekin/eV,
3204+ . units='siestaUnits:eV',
3205+ . dictref='siesta:Ekin-GF', fmt='r7')
3206+ call cmlAddProperty(xf=mainXML,
3207+ . value=(Enascf+NEGF_Enl+DUscf-Uscf-Uatm)/eV,
3208+ . units='siestaUnits:eV',
3209+ . dictref='siesta:I-e-GF', fmt='r7')
3210+ call cmlAddProperty(xf=mainXML, value=(NEGF_Etot+Ekinion)/eV,
3211+ . units='siestaUnits:eV',
3212+ . dictref='siesta:Etot-GF', fmt='r7')
3213+ end if
3214 call cmlEndPropertyList(mainXML)
3215 endif !cml_p
3216 endif !final
3217
3218=== modified file 'Src/writewave.F'
3219--- Src/writewave.F 2018-10-17 13:04:40 +0000
3220+++ Src/writewave.F 2019-08-18 23:02:58 +0000
3221@@ -40,15 +40,23 @@
3222 USE alloc, only: re_alloc
3223 USE sys, only: die
3224 USE atomlist, only: no_u
3225+ USE m_spin, only: spin
3226
3227 implicit none
3228
3229+ integer :: max_n_states
3230+
3231 ! Find number of k-points for wavefunction printout
3232
3233 nullify(wfk)
3234
3235 nwk = 0
3236- call initwave( no_u, nwk, wfk )
3237+ if ( spin%Grid == 4 ) then
3238+ max_n_states = 2 * no_u
3239+ else
3240+ max_n_states = no_u
3241+ end if
3242+ call initwave( max_n_states, nwk, wfk )
3243
3244 if (nwk .eq. 0) then
3245 gamma_wavefunctions = .true.
3246@@ -96,7 +104,7 @@
3247 call die("WFS.BandMin < 1")
3248 endif
3249 if (wfs_band_max > norb) then
3250- call die("WFS.BandMax > number of orbitals")
3251+ call die("WFS.BandMax > maximum number of states")
3252 endif
3253 if (wfs_band_max < wfs_band_min) then
3254 call message("WARNING","WFS.BandMax < WFS.BandMin." //
3255@@ -126,7 +134,7 @@
3256 C Based on initband routine by J.Soler
3257 C Written by P. Ordejon, June 2003
3258 C **************************** INPUT **********************************
3259-C integer norb : Number of orbitals
3260+C integer norb : Number of orbitals (actually max number of bands)
3261 C *************************** OUTPUT **********************************
3262 C integer nk : Number k points to compute wavefunctions
3263 C real*8 kpoint(3,maxk) : k point vectors
3264@@ -383,7 +391,7 @@
3265
3266 end subroutine initwave
3267
3268- subroutine wwave( no, nspin, maxspn, maxo, maxuo, maxnh,
3269+ subroutine wwave( no, spin, maxo, maxuo, maxnh,
3270 . maxk,
3271 . numh, listhptr, listh, H, S, ef, xij, indxuo,
3272 . gamma, nk, kpoint, nuotot, occtol)
3273@@ -391,10 +399,10 @@
3274 C Finds wavefunctions at selected k-points.
3275 C Written by P. Ordejon, June 2003
3276 C from routine 'bands' written by J.M.Soler
3277+C Changed to use tSpin, N. Papior, August 2019
3278 C **************************** INPUT **********************************
3279 C integer no : Number of basis orbitals
3280-C integer nspin = h_spin_dim : Number of spin components of H, D
3281-C integer maxspn = spinor_dim : Second dimension of ek
3282+C tSpin spin : Contains spin information
3283 C integer maxo : First dimension of ek
3284 C integer maxuo : Second dimension of H and S
3285 C integer maxnh : Maximum number of orbitals interacting
3286@@ -406,7 +414,7 @@
3287 C hamiltonian matrix
3288 C integer listh(maxlh) : Nonzero hamiltonian-matrix element
3289 C column indexes for each matrix row
3290-C real*8 H(maxnh,nspin) : Hamiltonian in sparse form
3291+C real*8 H(maxnh,spin%H) : Hamiltonian in sparse form
3292 C real*8 S(maxnh) : Overlap in sparse form
3293 C real*8 ef : Fermi energy
3294 C real*8 xij(3,maxnh) : Vectors between orbital centers (sparse)
3295@@ -438,7 +446,7 @@
3296 use atmfuncs, only : symfio, cnfigfio, labelfis, nofis
3297 use atomlist, only : iaorb, iphorb
3298 use siesta_geom, only : isa
3299- use m_spin, only : NoMagn, SPpol, NonCol, SpOrb
3300+ use t_spin, only: tSpin
3301 use units, only : eV
3302
3303 #ifdef MPI
3304@@ -449,12 +457,12 @@
3305
3306 implicit none
3307
3308+ type(tSpin), intent(in) :: spin
3309 logical, intent(in) :: Gamma
3310 integer maxk, maxnh, maxo, maxuo, nk, no,
3311- . h_spin_dim, spinor_dim, nspin, maxspn,
3312 . nuotot, indxuo(no), listh(maxnh), numh(*),
3313 . listhptr(*)
3314- real(dp) ef, H(:,:), kpoint(3,maxk),
3315+ real(dp) ef, H(maxnh,spin%H), kpoint(3,maxk),
3316 . S(maxnh), xij(3,maxnh), occtol
3317
3318 external io_assign, io_close, memory
3319@@ -480,9 +488,7 @@
3320 data Dnew, Enew, e1, e2, qk, qtot, temp, wk /8*0.d0/
3321
3322 logical :: SaveParallelOverK
3323-
3324- h_spin_dim=size(H,dim=2)
3325-
3326+
3327
3328 C Get local number of orbitals
3329 #ifdef MPI
3330@@ -505,26 +511,17 @@
3331 endif
3332
3333 C Check spin
3334- if (h_spin_dim .gt. 2) then
3335- if (Node.eq.0) then
3336- write(6,'(/,a,/,a)')
3337- . 'writewave: WARNING: wavefunctions printed is only '
3338- write(6,'(/,a,/,a)')
3339- . ' implemented for nspin = 1 or 2'
3340- endif
3341- goto 999
3342- endif
3343
3344 C Allocate local arrays - only aux is relevant here
3345- if ( h_spin_dim >= 4 ) then
3346+ if ( spin%Grid == 4 ) then
3347 nhs = 2 * (2*nuotot) * (2*nuo)
3348 else
3349 nhs = 2 * nuotot * nuo
3350 endif
3351 call allocDenseMatrix(nhs, nhs, nhs)
3352
3353- allocate(ek(nuotot,maxspn,nk))
3354- call memory('A','D',maxspn*nk*nuotot,'writewave')
3355+ allocate(ek(nuotot,spin%spinor,nk))
3356+ call memory('A','D',nuotot*spin%spinor*nk,'writewave')
3357 naux = 2*nuotot*5
3358 allocate(aux(naux))
3359 call memory('A','D',naux,'writewave')
3360@@ -543,12 +540,12 @@
3361 write(6,'(a)') 'writewave: Wave Functions Coefficients'
3362 write(6,*)
3363 write(6,'(a26,2x,i6)') 'Number of k-points = ', nk
3364- write(6,'(a26,2x,i6)') 'Number of Spins = ', maxspn
3365+ write(6,'(a26,2x,i6)') 'Number of Spins = ', spin%Grid
3366 write(6,'(a26,2x,i6)') 'Number of basis orbs = ',nuotot
3367 write(6,*)
3368 endif
3369 write(iu) nk, gamma
3370- write(iu) maxspn
3371+ write(iu) spin%Grid ! This will be 1, 2, or 4
3372 write(iu) nuotot
3373 write(iu) (iaorb(j),labelfis(isa(iaorb(j))),
3374 . iphorb(j), cnfigfio(isa(iaorb(j)),iphorb(j)),
3375@@ -566,9 +563,9 @@
3376
3377 C Call appropriate diagonalization routine
3378
3379- if (NoMagn .or. SPpol) then
3380+ if ( spin%Grid <= 2 ) then
3381 if (gamma) then
3382- call diagg( h_spin_dim, nuo, maxuo, maxnh, maxnh,
3383+ call diagg( spin%H, nuo, maxuo, maxnh, maxnh,
3384 . maxo, numh, listhptr, listh, numh, listhptr,
3385 . listh, H, S, getD, getPSI,
3386 . fixspin, qtot, qs, temp,
3387@@ -588,7 +585,7 @@
3388 call diag_init()
3389 end if
3390
3391- call diagk( h_spin_dim, nuo, no, maxspn, maxnh, maxnh,
3392+ call diagk( spin%H, nuo, no, spin%spinor, maxnh, maxnh,
3393 . maxo, numh, listhptr, listh, numh, listhptr,
3394 . listh, H, S, getD, getPSI,
3395 . fixspin, qtot, qs, temp,
3396@@ -602,16 +599,16 @@
3397
3398 endif
3399
3400- elseif (NonCol) then
3401+ elseif ( spin%NCol) then
3402 if (gamma) then
3403- call diag2g( nuo, no, maxuo, maxnh, maxnh, maxo, numh,
3404+ call diag2g( nuo, no, maxnh, maxnh, maxo, numh,
3405 . listhptr, listh, numh, listhptr, listh,
3406 . H, S, getD, getPSI, qtot, temp, e1, e2, ek, qk,
3407 . Dnew, Enew, ef, Entropy,
3408 . Haux, Saux, psi, aux,
3409 . nuotot, occtol, 1, nuotot )
3410 else
3411- call diag2k( nuo, no, maxuo, maxnh, maxnh, maxo, numh,
3412+ call diag2k( nuo, no, maxnh, maxnh, maxo, numh,
3413 . listhptr, listh, numh, listhptr, listh,
3414 . H, S, getD, getPSI, qtot, temp, e1, e2, xij,
3415 . indxuo, nk, kpoint, wk, ek, qk, Dnew,
3416@@ -619,18 +616,18 @@
3417 . Haux, Saux, psi, Haux, Saux, aux,
3418 . nuotot, occtol, 1, nuotot )
3419 endif
3420- elseif (SpOrb) then
3421+ elseif ( spin%SO ) then
3422 if (gamma) then
3423 call diag3g( nuo, no, maxnh, maxnh, maxo, numh,
3424 . listhptr, listh, numh, listhptr, listh,
3425- . H, S, getD, qtot, temp, e1, e2, ek, qk,
3426+ . H, S, getD, getPSI, qtot, temp, e1, e2, ek, qk,
3427 . Dnew, Enew, ef, Entropy,
3428 . Haux, Saux, psi, aux,
3429 . nuotot, occtol, 1, nuotot )
3430 else
3431- call diag3k( nuo, no, maxuo, maxnh, maxnh, maxo, numh,
3432+ call diag3k( nuo, no, maxnh, maxnh, maxo, numh,
3433 . listhptr, listh, numh, listhptr, listh,
3434- . H, S, getD, qtot, temp, e1, e2, xij,
3435+ . H, S, getD, getPsi, qtot, temp, e1, e2, xij,
3436 . indxuo, nk, kpoint, wk, ek, qk, Dnew,
3437 . Enew, ef, Entropy,
3438 . Haux, Saux, psi, Haux, Saux, aux,
3439@@ -653,15 +650,16 @@
3440 end subroutine wwave
3441
3442
3443- subroutine writew(nuotot,nuo,ik,k,ispin,eo,psi,gamma)
3444+ subroutine writew(nuotot,nuo,ik,k,ispin,eo,psi,
3445+ $ gamma,non_coll,blocksize)
3446
3447 use precision
3448 use sys
3449 use parallel, only : Node, Nodes
3450+ use parallel, only : Module_Blocksize=>BlockSize
3451 use parallelsubs, only : GlobalToLocalOrb, WhichNodeOrb
3452 use units, only : eV
3453 use kpoint_grid, only : kweight
3454-
3455 #ifdef MPI
3456 use mpi_siesta
3457 #endif
3458@@ -673,16 +671,17 @@
3459 #endif
3460
3461 integer, intent(in) :: nuotot, nuo, ispin, ik
3462- real(dp), intent(in) :: eo(*), psi(*), k(3)
3463+ logical, intent(in) :: non_coll, gamma
3464+ real(dp), intent(in) :: eo(*), k(3)
3465+ real(dp), intent(in) :: psi(:)
3466+ integer, intent(in) :: blocksize
3467
3468- logical gamma
3469
3470 C Internal variables .............................................
3471 integer BNode, iie, iw, indwf, j, ind, iu
3472-
3473+ integer :: blocksize_saved
3474 integer number_of_wfns
3475 integer, allocatable :: ind_wfn(:)
3476-
3477 real(dp) :: kpoint_weight
3478 real(SP), dimension(:,:), allocatable :: aux !! NOTE SP
3479
3480@@ -692,12 +691,17 @@
3481
3482 C Allocate auxiliary arrays
3483
3484- if (gamma) then
3485- allocate(aux(1,nuotot))
3486- call memory('A','D',nuotot,'writewave')
3487+ if (non_coll) then
3488+ allocate(aux(4,nuotot))
3489+ call memory('A','D',4*nuotot,'writewave')
3490 else
3491- allocate(aux(2,nuotot))
3492- call memory('A','D',2*nuotot,'writewave')
3493+ if (gamma) then
3494+ allocate(aux(1,nuotot))
3495+ call memory('A','D',nuotot,'writewave')
3496+ else
3497+ allocate(aux(2,nuotot))
3498+ call memory('A','D',2*nuotot,'writewave')
3499+ endif
3500 endif
3501
3502 C Find file name, and open for Node 0
3503@@ -733,7 +737,11 @@
3504 if (wwf) then
3505 write(6,*)
3506 write(6,'(a22,2x,i6,2x,3f10.6)') 'k-point = ',ik, k(1:3)
3507- write(6,'(a22,2x,i6)') 'Spin component = ',ispin
3508+ if (non_coll) then
3509+ write(6,'(a22,2x,i6)') 'Spin component (non-collinear)= ',0
3510+ else
3511+ write(6,'(a22,2x,i6)') 'Spin component = ',ispin
3512+ endif
3513 write(6,'(a22,2x,i6)') 'Num. wavefunctions = ',nwflist(ik)
3514 write(6,'(a)') 'Use readwfsx utility to print '
3515 $ // "wavefunction coefficients from WFSX file"
3516@@ -748,14 +756,26 @@
3517 write(iu) nwflist(ik)
3518 endif
3519
3520-C Loop over wavefunctions that should be printed
3521-
3522+ ! Loop over wavefunctions that should be stored
3523+
3524+ ! The effective blocksize to use is passed as an argument.
3525+ ! Module_blocksize is the variable in the 'parallel' module that
3526+ ! holds the value that all the helper functions (WhichNodeOrb,
3527+ ! GetNodeOrb, etc) see. Hence, we must temporarily set
3528+ ! Module_blocksize to the passed blocksize.
3529+
3530+ ! Examples: non-collinear calculations need a wf blocksize double
3531+ ! the 'orbital' one
3532+
3533+ blocksize_saved = Module_blocksize
3534+ Module_blocksize = blocksize
3535+
3536 if (Node .eq. 0 .and. debug) then
3537 print *, " -*- Will print ", nwflist(ik), " wfns."
3538 print *, " -*- ", iwf(ik,1:nwflist(ik))
3539 endif
3540 do iw = 1,nwflist(ik)
3541- indwf = iwf(ik,iw)
3542+ indwf = iwf(ik,iw)
3543
3544 ! Determine which node handles this wavefunction
3545 ! Note that the distribution is block cyclic,
3546@@ -770,30 +790,44 @@
3547
3548 if (Node.eq.BNode) then
3549
3550-C Determine the index of the wavefunction in the local node
3551-
3552+ ! Determine the index of the wavefunction in the local node
3553 call GlobalToLocalOrb( indwf, BNode, Nodes, iie)
3554
3555-C Save wavefunction in aux array
3556-
3557-C psi has different structure in diagk and diagg, so the indexing
3558-C must be handled differently
3559-
3560- if (gamma) then
3561- do j = 1,nuotot
3562- ind = j + (iie-1)*nuotot
3563- aux(1,j) = real(psi(ind),kind=sp)
3564- enddo
3565- else
3566- do j = 1,nuotot
3567- ind = 1+(j-1)*2+(iie-1)*2*nuotot
3568- aux(1,j) = real(psi(ind),kind=sp)
3569- aux(2,j) = real(psi(ind+1),kind=sp)
3570- enddo
3571- endif
3572-
3573- endif
3574-
3575+ ! Save wavefunction in aux array
3576+
3577+ ! Despite being passed as a one-dimensional array, psi has
3578+ ! different underlying structures for different cases, so the
3579+ ! indexing must be handled differently
3580+
3581+ if (.not. non_coll) then
3582+ if (gamma) then
3583+ ! Real functions
3584+ do j = 1,nuotot
3585+ ind = j + (iie-1)*nuotot
3586+ aux(1,j) = real(psi(ind),kind=sp)
3587+ enddo
3588+ else
3589+ ! Complex functions: two reals per orbital coefficient
3590+ do j = 1,nuotot
3591+ ind = 1+(j-1)*2+(iie-1)*2*nuotot
3592+ aux(1,j) = real(psi(ind),kind=sp)
3593+ aux(2,j) = real(psi(ind+1),kind=sp)
3594+ enddo
3595+ endif
3596+ else ! non-collinear case, including SOC
3597+ ! Each 'orbital' coefficient is actually four reals: complex up/down
3598+ ! (spinor)
3599+ do j = 1,nuotot
3600+ ind = 1 + (j-1)*4 + (iie-1)*4*nuotot
3601+ aux(1,j) = real(psi(ind),kind=sp)
3602+ aux(2,j) = real(psi(ind+1),kind=sp)
3603+ aux(3,j) = real(psi(ind+2),kind=sp)
3604+ aux(4,j) = real(psi(ind+3),kind=sp)
3605+ enddo
3606+ endif ! non-coll or not
3607+
3608+ endif ! Node == BNode
3609+
3610 #ifdef MPI
3611 C Pass the wf to the master node
3612 if (BNode.ne.0) then
3613@@ -815,19 +849,22 @@
3614 C eigenvector is now stored in aux in Node 0, and can be printed
3615
3616 if (Node .eq. 0) then
3617- write(iu) indwf
3618- write(iu) eo(indwf)/eV
3619- write(iu) (aux(1:,j), j=1,nuotot)
3620- endif
3621+ write(iu) indwf
3622+ write(iu) eo(indwf)/eV
3623+ write(iu) (aux(1:,j), j=1,nuotot)
3624+ endif
3625
3626 enddo
3627-
3628+
3629 C Close output file
3630
3631 if (Node .eq. 0) then
3632 call io_close(iu)
3633 endif
3634
3635+ ! Restore blocksize value in module
3636+ Module_blocksize = blocksize_saved
3637+
3638 C Deallocate auxiliary arrays
3639
3640 call memory('D','D',size(aux),'writewave')
3641
3642=== added file 'Tests/Pseudos/Bi.psf'
3643--- Tests/Pseudos/Bi.psf 1970-01-01 00:00:00 +0000
3644+++ Tests/Pseudos/Bi.psf 2019-08-18 23:02:58 +0000
3645@@ -0,0 +1,3061 @@
3646+ Bi pb rel pcec
3647+ ATM3.3 12-FEB-13 Troullier-Martins
3648+ 6s 2.00r r= 1.98/6p 3.00r r= 1.98/5d10.00r r= 1.48/5f 0.00r r= 2.47/
3649+ 4 3 1216 0.298644840562E-04 0.125000000000E-01 15.0000000000
3650+ Radial grid follows
3651+ 0.375648965487E-06 0.756023013283E-06 0.114118157761E-05 0.153118484027E-05
3652+ 0.192609374007E-05 0.232596998233E-05 0.273087604852E-05 0.314087520605E-05
3653+ 0.355603151811E-05 0.397640985372E-05 0.440207589786E-05 0.483309616171E-05
3654+ 0.526953799306E-05 0.571146958683E-05 0.615895999574E-05 0.661207914108E-05
3655+ 0.707089782362E-05 0.753548773473E-05 0.800592146753E-05 0.848227252823E-05
3656+ 0.896461534767E-05 0.945302529289E-05 0.994757867894E-05 0.104483527808E-04
3657+ 0.109554258454E-04 0.114688771040E-04 0.119887867844E-04 0.125152361234E-04
3658+ 0.130483073800E-04 0.135880838476E-04 0.141346498673E-04 0.146880908412E-04
3659+ 0.152484932455E-04 0.158159446444E-04 0.163905337031E-04 0.169723502025E-04
3660+ 0.175614850526E-04 0.181580303068E-04 0.187620791765E-04 0.193737260458E-04
3661+ 0.199930664855E-04 0.206201972689E-04 0.212552163865E-04 0.218982230613E-04
3662+ 0.225493177644E-04 0.232086022306E-04 0.238761794746E-04 0.245521538066E-04
3663+ 0.252366308489E-04 0.259297175526E-04 0.266315222138E-04 0.273421544909E-04
3664+ 0.280617254217E-04 0.287903474405E-04 0.295281343961E-04 0.302752015692E-04
3665+ 0.310316656905E-04 0.317976449591E-04 0.325732590608E-04 0.333586291869E-04
3666+ 0.341538780531E-04 0.349591299186E-04 0.357745106057E-04 0.366001475192E-04
3667+ 0.374361696666E-04 0.382827076782E-04 0.391398938270E-04 0.400078620503E-04
3668+ 0.408867479698E-04 0.417766889133E-04 0.426778239358E-04 0.435902938416E-04
3669+ 0.445142412058E-04 0.454498103971E-04 0.463971476002E-04 0.473564008384E-04
3670+ 0.483277199970E-04 0.493112568465E-04 0.503071650667E-04 0.513156002701E-04
3671+ 0.523367200269E-04 0.533706838890E-04 0.544176534155E-04 0.554777921974E-04
3672+ 0.565512658836E-04 0.576382422066E-04 0.587388910086E-04 0.598533842682E-04
3673+ 0.609818961272E-04 0.621246029180E-04 0.632816831908E-04 0.644533177417E-04
3674+ 0.656396896410E-04 0.668409842618E-04 0.680573893087E-04 0.692890948476E-04
3675+ 0.705362933350E-04 0.717991796480E-04 0.730779511154E-04 0.743728075476E-04
3676+ 0.756839512688E-04 0.770115871477E-04 0.783559226302E-04 0.797171677714E-04
3677+ 0.810955352687E-04 0.824912404947E-04 0.839045015313E-04 0.853355392033E-04
3678+ 0.867845771134E-04 0.882518416766E-04 0.897375621560E-04 0.912419706984E-04
3679+ 0.927653023708E-04 0.943077951968E-04 0.958696901941E-04 0.974512314119E-04
3680+ 0.990526659693E-04 0.100674244094E-03 0.102316219160E-03 0.103978847730E-03
3681+ 0.105662389593E-03 0.107367107805E-03 0.109093268733E-03 0.110841142093E-03
3682+ 0.112611000993E-03 0.114403121978E-03 0.116217785069E-03 0.118055273812E-03
3683+ 0.119915875318E-03 0.121799880310E-03 0.123707583168E-03 0.125639281974E-03
3684+ 0.127595278559E-03 0.129575878553E-03 0.131581391427E-03 0.133612130549E-03
3685+ 0.135668413223E-03 0.137750560750E-03 0.139858898469E-03 0.141993755811E-03
3686+ 0.144155466353E-03 0.146344367867E-03 0.148560802372E-03 0.150805116190E-03
3687+ 0.153077660002E-03 0.155378788896E-03 0.157708862428E-03 0.160068244677E-03
3688+ 0.162457304301E-03 0.164876414596E-03 0.167325953553E-03 0.169806303917E-03
3689+ 0.172317853247E-03 0.174860993980E-03 0.177436123484E-03 0.180043644130E-03
3690+ 0.182683963349E-03 0.185357493695E-03 0.188064652912E-03 0.190805864001E-03
3691+ 0.193581555280E-03 0.196392160458E-03 0.199238118697E-03 0.202119874683E-03
3692+ 0.205037878698E-03 0.207992586685E-03 0.210984460323E-03 0.214013967098E-03
3693+ 0.217081580378E-03 0.220187779482E-03 0.223333049762E-03 0.226517882671E-03
3694+ 0.229742775847E-03 0.233008233185E-03 0.236314764920E-03 0.239662887705E-03
3695+ 0.243053124689E-03 0.246486005606E-03 0.249962066848E-03 0.253481851558E-03
3696+ 0.257045909710E-03 0.260654798195E-03 0.264309080908E-03 0.268009328839E-03
3697+ 0.271756120160E-03 0.275550040314E-03 0.279391682109E-03 0.283281645808E-03
3698+ 0.287220539228E-03 0.291208977828E-03 0.295247584809E-03 0.299336991212E-03
3699+ 0.303477836016E-03 0.307670766236E-03 0.311916437025E-03 0.316215511778E-03
3700+ 0.320568662235E-03 0.324976568584E-03 0.329439919569E-03 0.333959412598E-03
3701+ 0.338535753852E-03 0.343169658392E-03 0.347861850275E-03 0.352613062667E-03
3702+ 0.357424037954E-03 0.362295527861E-03 0.367228293567E-03 0.372223105827E-03
3703+ 0.377280745092E-03 0.382402001627E-03 0.387587675638E-03 0.392838577400E-03
3704+ 0.398155527374E-03 0.403539356347E-03 0.408990905551E-03 0.414511026802E-03
3705+ 0.420100582631E-03 0.425760446418E-03 0.431491502526E-03 0.437294646446E-03
3706+ 0.443170784931E-03 0.449120836139E-03 0.455145729778E-03 0.461246407249E-03
3707+ 0.467423821797E-03 0.473678938654E-03 0.480012735195E-03 0.486426201089E-03
3708+ 0.492920338453E-03 0.499496162009E-03 0.506154699243E-03 0.512896990565E-03
3709+ 0.519724089472E-03 0.526637062711E-03 0.533636990449E-03 0.540724966439E-03
3710+ 0.547902098192E-03 0.555169507149E-03 0.562528328857E-03 0.569979713147E-03
3711+ 0.577524824313E-03 0.585164841295E-03 0.592900957860E-03 0.600734382792E-03
3712+ 0.608666340081E-03 0.616698069109E-03 0.624830824852E-03 0.633065878069E-03
3713+ 0.641404515504E-03 0.649848040086E-03 0.658397771132E-03 0.667055044556E-03
3714+ 0.675821213075E-03 0.684697646419E-03 0.693685731550E-03 0.702786872874E-03
3715+ 0.712002492463E-03 0.721334030277E-03 0.730782944387E-03 0.740350711205E-03
3716+ 0.750038825715E-03 0.759848801703E-03 0.769782171999E-03 0.779840488712E-03
3717+ 0.790025323474E-03 0.800338267687E-03 0.810780932768E-03 0.821354950407E-03
3718+ 0.832061972814E-03 0.842903672983E-03 0.853881744952E-03 0.864997904068E-03
3719+ 0.876253887253E-03 0.887651453276E-03 0.899192383032E-03 0.910878479813E-03
3720+ 0.922711569596E-03 0.934693501326E-03 0.946826147203E-03 0.959111402979E-03
3721+ 0.971551188249E-03 0.984147446755E-03 0.996902146688E-03 0.100981728100E-02
3722+ 0.102289486770E-02 0.103613695019E-02 0.104954559757E-02 0.106312290497E-02
3723+ 0.107687099388E-02 0.109079201246E-02 0.110488813589E-02 0.111916156673E-02
3724+ 0.113361453523E-02 0.114824929969E-02 0.116306814683E-02 0.117807339212E-02
3725+ 0.119326738016E-02 0.120865248504E-02 0.122423111072E-02 0.124000569139E-02
3726+ 0.125597869185E-02 0.127215260793E-02 0.128852996683E-02 0.130511332754E-02
3727+ 0.132190528125E-02 0.133890845174E-02 0.135612549578E-02 0.137355910358E-02
3728+ 0.139121199916E-02 0.140908694084E-02 0.142718672161E-02 0.144551416959E-02
3729+ 0.146407214849E-02 0.148286355803E-02 0.150189133440E-02 0.152115845074E-02
3730+ 0.154066791756E-02 0.156042278327E-02 0.158042613459E-02 0.160068109711E-02
3731+ 0.162119083569E-02 0.164195855502E-02 0.166298750010E-02 0.168428095675E-02
3732+ 0.170584225211E-02 0.172767475518E-02 0.174978187733E-02 0.177216707284E-02
3733+ 0.179483383946E-02 0.181778571889E-02 0.184102629744E-02 0.186455920647E-02
3734+ 0.188838812306E-02 0.191251677052E-02 0.193694891900E-02 0.196168838608E-02
3735+ 0.198673903735E-02 0.201210478702E-02 0.203778959855E-02 0.206379748523E-02
3736+ 0.209013251085E-02 0.211679879032E-02 0.214380049029E-02 0.217114182983E-02
3737+ 0.219882708109E-02 0.222686056994E-02 0.225524667668E-02 0.228398983668E-02
3738+ 0.231309454112E-02 0.234256533768E-02 0.237240683123E-02 0.240262368455E-02
3739+ 0.243322061911E-02 0.246420241572E-02 0.249557391535E-02 0.252734001988E-02
3740+ 0.255950569281E-02 0.259207596010E-02 0.262505591092E-02 0.265845069845E-02
3741+ 0.269226554070E-02 0.272650572131E-02 0.276117659036E-02 0.279628356527E-02
3742+ 0.283183213155E-02 0.286782784376E-02 0.290427632628E-02 0.294118327428E-02
3743+ 0.297855445453E-02 0.301639570636E-02 0.305471294255E-02 0.309351215023E-02
3744+ 0.313279939187E-02 0.317258080617E-02 0.321286260907E-02 0.325365109467E-02
3745+ 0.329495263626E-02 0.333677368729E-02 0.337912078238E-02 0.342200053836E-02
3746+ 0.346541965526E-02 0.350938491743E-02 0.355390319452E-02 0.359898144260E-02
3747+ 0.364462670523E-02 0.369084611459E-02 0.373764689256E-02 0.378503635184E-02
3748+ 0.383302189713E-02 0.388161102629E-02 0.393081133144E-02 0.398063050026E-02
3749+ 0.403107631707E-02 0.408215666415E-02 0.413387952290E-02 0.418625297511E-02
3750+ 0.423928520426E-02 0.429298449674E-02 0.434735924316E-02 0.440241793970E-02
3751+ 0.445816918938E-02 0.451462170345E-02 0.457178430274E-02 0.462966591901E-02
3752+ 0.468827559639E-02 0.474762249275E-02 0.480771588117E-02 0.486856515137E-02
3753+ 0.493017981117E-02 0.499256948797E-02 0.505574393031E-02 0.511971300930E-02
3754+ 0.518448672026E-02 0.525007518420E-02 0.531648864945E-02 0.538373749326E-02
3755+ 0.545183222339E-02 0.552078347979E-02 0.559060203622E-02 0.566129880198E-02
3756+ 0.573288482358E-02 0.580537128649E-02 0.587876951686E-02 0.595309098331E-02
3757+ 0.602834729873E-02 0.610455022206E-02 0.618171166017E-02 0.625984366969E-02
3758+ 0.633895845891E-02 0.641906838967E-02 0.650018597931E-02 0.658232390262E-02
3759+ 0.666549499382E-02 0.674971224856E-02 0.683498882595E-02 0.692133805065E-02
3760+ 0.700877341488E-02 0.709730858060E-02 0.718695738162E-02 0.727773382573E-02
3761+ 0.736965209695E-02 0.746272655769E-02 0.755697175102E-02 0.765240240295E-02
3762+ 0.774903342471E-02 0.784687991510E-02 0.794595716282E-02 0.804628064890E-02
3763+ 0.814786604909E-02 0.825072923632E-02 0.835488628316E-02 0.846035346436E-02
3764+ 0.856714725940E-02 0.867528435500E-02 0.878478164783E-02 0.889565624705E-02
3765+ 0.900792547704E-02 0.912160688010E-02 0.923671821918E-02 0.935327748066E-02
3766+ 0.947130287716E-02 0.959081285039E-02 0.971182607403E-02 0.983436145664E-02
3767+ 0.995843814462E-02 0.100840755252E-01 0.102112932295E-01 0.103401111355E-01
3768+ 0.104705493713E-01 0.106026283182E-01 0.107363686136E-01 0.108717911549E-01
3769+ 0.110089171021E-01 0.111477678813E-01 0.112883651884E-01 0.114307309919E-01
3770+ 0.115748875367E-01 0.117208573476E-01 0.118686632327E-01 0.120183282870E-01
3771+ 0.121698758960E-01 0.123233297391E-01 0.124787137940E-01 0.126360523398E-01
3772+ 0.127953699607E-01 0.129566915507E-01 0.131200423165E-01 0.132854477819E-01
3773+ 0.134529337920E-01 0.136225265167E-01 0.137942524554E-01 0.139681384404E-01
3774+ 0.141442116418E-01 0.143224995715E-01 0.145030300873E-01 0.146858313974E-01
3775+ 0.148709320649E-01 0.150583610122E-01 0.152481475255E-01 0.154403212592E-01
3776+ 0.156349122409E-01 0.158319508758E-01 0.160314679516E-01 0.162334946434E-01
3777+ 0.164380625180E-01 0.166452035398E-01 0.168549500749E-01 0.170673348966E-01
3778+ 0.172823911905E-01 0.175001525595E-01 0.177206530294E-01 0.179439270538E-01
3779+ 0.181700095197E-01 0.183989357529E-01 0.186307415236E-01 0.188654630520E-01
3780+ 0.191031370137E-01 0.193438005459E-01 0.195874912526E-01 0.198342472111E-01
3781+ 0.200841069775E-01 0.203371095928E-01 0.205932945893E-01 0.208527019963E-01
3782+ 0.211153723468E-01 0.213813466836E-01 0.216506665657E-01 0.219233740749E-01
3783+ 0.221995118222E-01 0.224791229549E-01 0.227622511626E-01 0.230489406848E-01
3784+ 0.233392363172E-01 0.236331834192E-01 0.239308279205E-01 0.242322163288E-01
3785+ 0.245373957366E-01 0.248464138288E-01 0.251593188901E-01 0.254761598125E-01
3786+ 0.257969861031E-01 0.261218478916E-01 0.264507959385E-01 0.267838816424E-01
3787+ 0.271211570486E-01 0.274626748573E-01 0.278084884311E-01 0.281586518042E-01
3788+ 0.285132196903E-01 0.288722474915E-01 0.292357913064E-01 0.296039079395E-01
3789+ 0.299766549099E-01 0.303540904600E-01 0.307362735649E-01 0.311232639414E-01
3790+ 0.315151220577E-01 0.319119091422E-01 0.323136871939E-01 0.327205189914E-01
3791+ 0.331324681028E-01 0.335495988963E-01 0.339719765491E-01 0.343996670589E-01
3792+ 0.348327372530E-01 0.352712547995E-01 0.357152882177E-01 0.361649068888E-01
3793+ 0.366201810665E-01 0.370811818885E-01 0.375479813869E-01 0.380206525002E-01
3794+ 0.384992690841E-01 0.389839059236E-01 0.394746387441E-01 0.399715442236E-01
3795+ 0.404747000046E-01 0.409841847062E-01 0.415000779364E-01 0.420224603046E-01
3796+ 0.425514134342E-01 0.430870199750E-01 0.436293636168E-01 0.441785291017E-01
3797+ 0.447346022381E-01 0.452976699135E-01 0.458678201084E-01 0.464451419099E-01
3798+ 0.470297255257E-01 0.476216622981E-01 0.482210447186E-01 0.488279664418E-01
3799+ 0.494425223005E-01 0.500648083202E-01 0.506949217345E-01 0.513329609999E-01
3800+ 0.519790258112E-01 0.526332171175E-01 0.532956371374E-01 0.539663893754E-01
3801+ 0.546455786380E-01 0.553333110498E-01 0.560296940703E-01 0.567348365110E-01
3802+ 0.574488485517E-01 0.581718417582E-01 0.589039290998E-01 0.596452249665E-01
3803+ 0.603958451873E-01 0.611559070482E-01 0.619255293104E-01 0.627048322290E-01
3804+ 0.634939375715E-01 0.642929686373E-01 0.651020502767E-01 0.659213089102E-01
3805+ 0.667508725488E-01 0.675908708135E-01 0.684414349555E-01 0.693026978775E-01
3806+ 0.701747941533E-01 0.710578600499E-01 0.719520335481E-01 0.728574543643E-01
3807+ 0.737742639724E-01 0.747026056256E-01 0.756426243794E-01 0.765944671136E-01
3808+ 0.775582825554E-01 0.785342213031E-01 0.795224358490E-01 0.805230806036E-01
3809+ 0.815363119199E-01 0.825622881171E-01 0.836011695063E-01 0.846531184146E-01
3810+ 0.857182992113E-01 0.867968783331E-01 0.878890243100E-01 0.889949077922E-01
3811+ 0.901147015762E-01 0.912485806321E-01 0.923967221306E-01 0.935593054714E-01
3812+ 0.947365123105E-01 0.959285265887E-01 0.971355345607E-01 0.983577248240E-01
3813+ 0.995952883483E-01 0.100848418505 0.102117311100 0.103402164398
3814+ 0.104703179161 0.106020558675 0.107354508783 0.108705237919
3815+ 0.110072957135 0.111457880141 0.112860223334 0.114280205834
3816+ 0.115718049514 0.117173979041 0.118648221907 0.120141008466
3817+ 0.121652571968 0.123183148598 0.124732977512 0.126302300874
3818+ 0.127891363894 0.129500414866 0.131129705208 0.132779489500
3819+ 0.134450025523 0.136141574302 0.137854400146 0.139588770687
3820+ 0.141344956924 0.143123233264 0.144923877567 0.146747171187
3821+ 0.148593399018 0.150462849535 0.152355814846 0.154272590729
3822+ 0.156213476684 0.158178775980 0.160168795697 0.162183846781
3823+ 0.164224244087 0.166290306432 0.168382356643 0.170500721605
3824+ 0.172645732318 0.174817723945 0.177017035863 0.179244011719
3825+ 0.181498999484 0.183782351502 0.186094424554 0.188435579904
3826+ 0.190806183363 0.193206605343 0.195637220915 0.198098409867
3827+ 0.200590556764 0.203114051011 0.205669286908 0.208256663716
3828+ 0.210876585717 0.213529462281 0.216215707923 0.218935742377
3829+ 0.221689990652 0.224478883105 0.227302855507 0.230162349109
3830+ 0.233057810713 0.235989692740 0.238958453303 0.241964556277
3831+ 0.245008471372 0.248090674205 0.251211646377 0.254371875547
3832+ 0.257571855505 0.260812086257 0.264093074094 0.267415331678
3833+ 0.270779378118 0.274185739052 0.277634946733 0.281127540106
3834+ 0.284664064895 0.288245073689 0.291871126029 0.295542788493
3835+ 0.299260634785 0.303025245827 0.306837209846 0.310697122470
3836+ 0.314605586818 0.318563213595 0.322570621189 0.326628435765
3837+ 0.330737291365 0.334897830006 0.339110701781 0.343376564959
3838+ 0.347696086090 0.352069940109 0.356498810439 0.360983389099
3839+ 0.365524376815 0.370122483124 0.374778426491 0.379492934417
3840+ 0.384266743551 0.389100599812 0.393995258501 0.398951484416
3841+ 0.403970051979 0.409051745350 0.414197358556 0.419407695608
3842+ 0.424683570631 0.430025807994 0.435435242430 0.440912719175
3843+ 0.446459094095 0.452075233824 0.457762015895 0.463520328878
3844+ 0.469351072522 0.475255157892 0.481233507514 0.487287055517
3845+ 0.493416747780 0.499623542080 0.505908408242 0.512272328288
3846+ 0.518716296594 0.525241320043 0.531848418183 0.538538623387
3847+ 0.545312981013 0.552172549568 0.559118400874 0.566151620234
3848+ 0.573273306602 0.580484572758 0.587786545476 0.595180365703
3849+ 0.602667188740 0.610248184418 0.617924537282 0.625697446779
3850+ 0.633568127441 0.641537809079 0.649607736971 0.657779172060
3851+ 0.666053391149 0.674431687102 0.682915369045 0.691505762570
3852+ 0.700204209943 0.709012070315 0.717930719932 0.726961552352
3853+ 0.736105978659 0.745365427689 0.754741346250 0.764235199349
3854+ 0.773848470418 0.783582661552 0.793439293738 0.803419907093
3855+ 0.813526061110 0.823759334896 0.834121327420 0.844613657765
3856+ 0.855237965379 0.865995910331 0.876889173573 0.887919457198
3857+ 0.899088484711 0.910398001296 0.921849774087 0.933445592447
3858+ 0.945187268246 0.957076636146 0.969115553883 0.981305902564
3859+ 0.993649586955 1.00614853578 1.01880470203 1.03162006325
3860+ 1.04459662188 1.05773640551 1.07104146728 1.08451388612
3861+ 1.09815576714 1.11196924189 1.12595646876 1.14011963329
3862+ 1.15446094849 1.16898265524 1.18368702257 1.19857634807
3863+ 1.21365295823 1.22891920880 1.24437748517 1.26003020271
3864+ 1.27587980720 1.29192877518 1.30817961432 1.32463486385
3865+ 1.34129709495 1.35816891111 1.37525294859 1.39255187681
3866+ 1.41006839876 1.42780525143 1.44576520624 1.46395106948
3867+ 1.48236568271 1.50101192327 1.51989270465 1.53901097703
3868+ 1.55836972768 1.57797198143 1.59782080118 1.61791928835
3869+ 1.63827058336 1.65887786615 1.67974435665 1.70087331529
3870+ 1.72226804351 1.74393188429 1.76586822263 1.78808048615
3871+ 1.81057214554 1.83334671519 1.85640775365 1.87975886427
3872+ 1.90340369570 1.92734594250 1.95158934569 1.97613769335
3873+ 2.00099482121 2.02616461325 2.05165100230 2.07745797066
3874+ 2.10358955072 2.13004982559 2.15684292975 2.18397304967
3875+ 2.21144442449 2.23926134667 2.26742816266 2.29594927357
3876+ 2.32482913590 2.35407226217 2.38368322170 2.41366664124
3877+ 2.44402720577 2.47476965919 2.50589880507 2.53741950740
3878+ 2.56933669136 2.60165534408 2.63438051540 2.66751731870
3879+ 2.70107093167 2.73504659715 2.76944962388 2.80428538742
3880+ 2.83955933092 2.87527696601 2.91144387364 2.94806570496
3881+ 2.98514818222 3.02269709962 3.06071832426 3.09921779703
3882+ 3.13820153355 3.17767562512 3.21764623963 3.25811962258
3883+ 3.29910209801 3.34060006953 3.38262002127 3.42516851894
3884+ 3.46825221082 3.51187782883 3.55605218957 3.60078219536
3885+ 3.64607483536 3.69193718664 3.73837641528 3.78539977751
3886+ 3.83301462082 3.88122838514 3.93004860395 3.97948290551
3887+ 4.02953901404 4.08022475091 4.13154803587 4.18351688827
3888+ 4.23613942837 4.28942387854 4.34337856458 4.39801191703
3889+ 4.45333247245 4.50934887480 4.56606987675 4.62350434107
3890+ 4.68166124202 4.74054966673 4.80017881664 4.86055800892
3891+ 4.92169667795 4.98360437676 5.04629077856 5.10976567822
3892+ 5.17403899384 5.23912076824 5.30502117059 5.37175049796
3893+ 5.43931917693 5.50773776526 5.57701695349 5.64716756663
3894+ 5.71820056586 5.79012705022 5.86295825839 5.93670557037
3895+ 6.01138050935 6.08699474343 6.16356008749 6.24108850501
3896+ 6.31959210998 6.39908316875 6.47957410194 6.56107748643
3897+ 6.64360605730 6.72717270979 6.81179050138 6.89747265375
3898+ 6.98423255493 7.07208376132 7.16103999985 7.25111517012
3899+ 7.34232334655 7.43467878061 7.52819590302 7.62288932603
3900+ 7.71877384566 7.81586444408 7.91417629189 8.01372475051
3901+ 8.11452537459 8.21659391444 8.31994631847 8.42459873571
3902+ 8.53056751830 8.63786922409 8.74652061919 8.85653868060
3903+ 8.96794059886 9.08074378075 9.19496585200 9.31062466004
3904+ 9.42773827678 9.54632500149 9.66640336356 9.78799212549
3905+ 9.91111028577 10.0357770819 10.1620119932 10.2898347443
3906+ 10.4192653076 10.5503239070 10.6830310207 10.8174073843
3907+ 10.9534739945 11.0912521120 11.2307632649 11.3720292520
3908+ 11.5150721466 11.6599142992 11.8065783418 11.9550871910
3909+ 12.1054640515 12.2577324201 12.4119160890 12.5680391497
3910+ 12.7261259968 12.8862013316 13.0482901662 13.2124178274
3911+ 13.3786099605 13.5468925332 13.7172918401 13.8898345064
3912+ 14.0645474923 14.2414580970 14.4205939632 14.6019830812
3913+ 14.7856537934 14.9716347988 15.1599551573 15.3506442942
3914+ 15.5437320053 15.7392484607 15.9372242104 16.1376901885
3915+ 16.3406777181 16.5462185166 16.7543447000 16.9650887886
3916+ 17.1784837114 17.3945628120 17.6133598530 17.8349090221
3917+ 18.0592449366 18.2864026495 18.5164176548 18.7493258926
3918+ 18.9851637554 19.2239680933 19.4657762201 19.7106259186
3919+ 19.9585554472 20.2096035454 20.4638094399 20.7212128509
3920+ 20.9818539982 21.2457736076 21.5130129171 21.7836136832
3921+ 22.0576181879 22.3350692450 22.6160102069 22.9004849709
3922+ 23.1885379870 23.4802142641 23.7755593770 24.0746194741
3923+ 24.3774412842 24.6840721237 24.9945599044 25.3089531406
3924+ 25.6273009569 25.9496530957 26.2760599253 26.6065724474
3925+ 26.9412423053 27.2801217917 27.6232638573 27.9707221188
3926+ 28.3225508672 28.6788050764 29.0395404119 29.4048132394
3927+ 29.7746806335 30.1492003866 30.5284310183 30.9124317841
3928+ 31.3012626850 31.6949844765 32.0936586784 32.4973475845
3929+ 32.9061142720 33.3200226114 33.7391372768 34.1635237557
3930+ 34.5932483594 35.0283782331 35.4689813669 35.9151266059
3931+ 36.3668836611 36.8243231206 37.2875164601 37.7565360547
3932+ 38.2314551894 38.7123480715 39.1992898414 39.6923565847
3933+ 40.1916253442 40.6971741316 41.2090819399 41.7274287558
3934+ 42.2522955719 42.7837643999 43.3219182828 43.8668413082
3935+ 44.4186186215 44.9773364390 45.5430820614 46.1159438878
3936+ 46.6960114289 47.2833753214 47.8781273423 48.4803604225
3937+ 49.0901686624 49.7076473457 50.3328929547 50.9660031853
3938+ 51.6070769622 52.2562144546 52.9135170915 53.5790875777
3939+ 54.2530299100 54.9354493933 55.6264526570 56.3261476718
3940+ 57.0346437664 57.7520516448 58.4784834034 59.2140525488
3941+ 59.9588740149 60.7130641818 61.4767408931 62.2500234750
3942+ 63.0330327543 63.8258910779 64.6287223315 65.4416519592
3943+ 66.2648069827 67.0983160219 67.9423093140 68.7969187350
3944+ 69.6622778191 70.5385217805 71.4257875341 72.3242137170
3945+ 73.2339407101 74.1551106601 75.0878675017 76.0323569800
3946+ 76.9887266734 77.9571260167 78.9377063242 79.9306208136
3947+ 80.9360246297 81.9540748691 82.9849306040 84.0287529079
3948+ 85.0857048800 86.1559516713 87.2396605100 88.3370007278
3949+ 89.4481437863 90.5732633040 91.7125350830 92.8661371368
3950+ 94.0342497182 95.2170553471 96.4147388393 97.6274873352
3951+ 98.8554903293 100.098939700 101.358029738 102.632957179
3952+ 103.923921233 105.231123615 106.554768580 107.895062949
3953+ 109.252216145 110.626440227 112.017949920 113.426962651
3954+ 114.853698579 116.298380637 117.761234558 119.242488916
3955+ Down Pseudopotential follows (l on next line)
3956+ 0
3957+ -0.344168687199E-05 -0.692679840936E-05 -0.104554786075E-04 -0.140289478131E-04
3958+ -0.176469065595E-04 -0.213107567387E-04 -0.250204576271E-04 -0.287769247868E-04
3959+ -0.325806108655E-04 -0.364321472444E-04 -0.403321296066E-04 -0.442811671561E-04
3960+ -0.482798785096E-04 -0.523288870839E-04 -0.564288249121E-04 -0.605803351020E-04
3961+ -0.647840642146E-04 -0.690406688999E-04 -0.733508169255E-04 -0.777151789328E-04
3962+ -0.821344370388E-04 -0.866092832973E-04 -0.911404171782E-04 -0.957285444134E-04
3963+ -0.100374383087E-03 -0.105078660462E-03 -0.109842108281E-03 -0.114665475116E-03
3964+ -0.119549512171E-03 -0.124494981798E-03 -0.129502657329E-03 -0.134573322717E-03
3965+ -0.139707770074E-03 -0.144906798902E-03 -0.150171224552E-03 -0.155501868603E-03
3966+ -0.160899563188E-03 -0.166365152228E-03 -0.171899491848E-03 -0.177503443427E-03
3967+ -0.183177883715E-03 -0.188923699707E-03 -0.194741789671E-03 -0.200633063791E-03
3968+ -0.206598437413E-03 -0.212638847878E-03 -0.218755239624E-03 -0.224948563469E-03
3969+ -0.231219789284E-03 -0.237569898767E-03 -0.243999884013E-03 -0.250510745727E-03
3970+ -0.257103505071E-03 -0.263779192527E-03 -0.270538847013E-03 -0.277383530413E-03
3971+ -0.284314307686E-03 -0.291332263400E-03 -0.298438495416E-03 -0.305634110901E-03
3972+ -0.312920236998E-03 -0.320298011876E-03 -0.327768587213E-03 -0.335333130229E-03
3973+ -0.342992825129E-03 -0.350748865287E-03 -0.358602464327E-03 -0.366554852417E-03
3974+ -0.374607266828E-03 -0.382760967092E-03 -0.391017229999E-03 -0.399377344966E-03
3975+ -0.407842615531E-03 -0.416414364742E-03 -0.425093936433E-03 -0.433882682943E-03
3976+ -0.442781975768E-03 -0.451793210712E-03 -0.460917792987E-03 -0.470157145969E-03
3977+ -0.479512717321E-03 -0.488985968172E-03 -0.498578376470E-03 -0.508291441805E-03
3978+ -0.518126684904E-03 -0.528085638490E-03 -0.538169859579E-03 -0.548380926392E-03
3979+ -0.558720431066E-03 -0.569189991536E-03 -0.579791242488E-03 -0.590525841147E-03
3980+ -0.601395464919E-03 -0.612401810050E-03 -0.623546599492E-03 -0.634831572710E-03
3981+ -0.646258492993E-03 -0.657829147133E-03 -0.669545340929E-03 -0.681408907375E-03
3982+ -0.693421699779E-03 -0.705585592158E-03 -0.717902488767E-03 -0.730374313785E-03
3983+ -0.743003014199E-03 -0.755790564062E-03 -0.768738961224E-03 -0.781850230270E-03
3984+ -0.795126417336E-03 -0.808569598877E-03 -0.822181876116E-03 -0.835965373103E-03
3985+ -0.849922245115E-03 -0.864054673918E-03 -0.878364867097E-03 -0.892855059288E-03
3986+ -0.907527515729E-03 -0.922384529582E-03 -0.937428421625E-03 -0.952661542551E-03
3987+ -0.968086271856E-03 -0.983705021111E-03 -0.999520230194E-03 -0.101553436936E-02
3988+ -0.103174994242E-02 -0.104816948220E-02 -0.106479555412E-02 -0.108163075600E-02
3989+ -0.109867771954E-02 -0.111593910674E-02 -0.113341761563E-02 -0.115111597786E-02
3990+ -0.116903695686E-02 -0.118718335562E-02 -0.120555800661E-02 -0.122416378234E-02
3991+ -0.124300359171E-02 -0.126208037470E-02 -0.128139711482E-02 -0.130095683031E-02
3992+ -0.132076257612E-02 -0.134081744734E-02 -0.136112457800E-02 -0.138168714216E-02
3993+ -0.140250835038E-02 -0.142359145705E-02 -0.144493975754E-02 -0.146655658590E-02
3994+ -0.148844532051E-02 -0.151060938240E-02 -0.153305223304E-02 -0.155577738053E-02
3995+ -0.157878837581E-02 -0.160208881254E-02 -0.162568233360E-02 -0.164957262462E-02
3996+ -0.167376341905E-02 -0.169825849540E-02 -0.172306168210E-02 -0.174817685571E-02
3997+ -0.177360793793E-02 -0.179935890471E-02 -0.182543377914E-02 -0.185183663442E-02
3998+ -0.187857159765E-02 -0.190564284529E-02 -0.193305460649E-02 -0.196081116681E-02
3999+ -0.198891686110E-02 -0.201737608151E-02 -0.204619327567E-02 -0.207537294460E-02
4000+ -0.210491964952E-02 -0.213483800646E-02 -0.216513268980E-02 -0.219580843389E-02
4001+ -0.222687003166E-02 -0.225832233589E-02 -0.229017026197E-02 -0.232241878590E-02
4002+ -0.235507294657E-02 -0.238813784596E-02 -0.242161865126E-02 -0.245552059364E-02
4003+ -0.248984896921E-02 -0.252460914425E-02 -0.255980654798E-02 -0.259544668067E-02
4004+ -0.263153511248E-02 -0.266807747986E-02 -0.270507949465E-02 -0.274254693828E-02
4005+ -0.278048566374E-02 -0.281890160054E-02 -0.285780075085E-02 -0.289718919271E-02
4006+ -0.293707308036E-02 -0.297745864603E-02 -0.301835220049E-02 -0.305976013253E-02
4007+ -0.310168891261E-02 -0.314414509310E-02 -0.318713530681E-02 -0.323066627127E-02
4008+ -0.327474478879E-02 -0.331937774578E-02 -0.336457211763E-02 -0.341033496529E-02
4009+ -0.345667343898E-02 -0.350359478007E-02 -0.355110631966E-02 -0.359921548145E-02
4010+ -0.364792978309E-02 -0.369725683598E-02 -0.374720434733E-02 -0.379778012281E-02
4011+ -0.384899206375E-02 -0.390084817209E-02 -0.395335655179E-02 -0.400652540639E-02
4012+ -0.406036304381E-02 -0.411487787704E-02 -0.417007842325E-02 -0.422597330795E-02
4013+ -0.428257126561E-02 -0.433988113901E-02 -0.439791188309E-02 -0.445667256572E-02
4014+ -0.451617236864E-02 -0.457642058816E-02 -0.463742663840E-02 -0.469920005260E-02
4015+ -0.476175048225E-02 -0.482508770102E-02 -0.488922160617E-02 -0.495416221868E-02
4016+ -0.501991968523E-02 -0.508650428109E-02 -0.515392641063E-02 -0.522219660830E-02
4017+ -0.529132554178E-02 -0.536132401262E-02 -0.543220295856E-02 -0.550397345475E-02
4018+ -0.557664671513E-02 -0.565023409580E-02 -0.572474709487E-02 -0.580019735488E-02
4019+ -0.587659666606E-02 -0.595395696545E-02 -0.603229034113E-02 -0.611160903342E-02
4020+ -0.619192543528E-02 -0.627325209739E-02 -0.635560172752E-02 -0.643898719207E-02
4021+ -0.652342152155E-02 -0.660891790876E-02 -0.669548971258E-02 -0.678315046118E-02
4022+ -0.687191385112E-02 -0.696179375249E-02 -0.705280420957E-02 -0.714495944286E-02
4023+ -0.723827385261E-02 -0.733276201933E-02 -0.742843870724E-02 -0.752531886677E-02
4024+ -0.762341763553E-02 -0.772275034225E-02 -0.782333250835E-02 -0.792517985007E-02
4025+ -0.802830828179E-02 -0.813273391813E-02 -0.823847307625E-02 -0.834554227819E-02
4026+ -0.845395825439E-02 -0.856373794583E-02 -0.867489850587E-02 -0.878745730443E-02
4027+ -0.890143192960E-02 -0.901684019035E-02 -0.913370012038E-02 -0.925202997978E-02
4028+ -0.937184825856E-02 -0.949317367915E-02 -0.961602519960E-02 -0.974042201633E-02
4029+ -0.986638356739E-02 -0.999392953552E-02 -0.101230798505E-01 -0.102538546932E-01
4030+ -0.103862744986E-01 -0.105203599580E-01 -0.106561320239E-01 -0.107936119118E-01
4031+ -0.109328211039E-01 -0.110737813534E-01 -0.112165146865E-01 -0.113610434064E-01
4032+ -0.115073900977E-01 -0.116555776284E-01 -0.118056291541E-01 -0.119575681221E-01
4033+ -0.121114182747E-01 -0.122672036526E-01 -0.124249485988E-01 -0.125846777631E-01
4034+ -0.127464161050E-01 -0.129101888979E-01 -0.130760217336E-01 -0.132439405254E-01
4035+ -0.134139715126E-01 -0.135861412653E-01 -0.137604766867E-01 -0.139370050196E-01
4036+ -0.141157538490E-01 -0.142967511066E-01 -0.144800250762E-01 -0.146656043970E-01
4037+ -0.148535180687E-01 -0.150437954557E-01 -0.152364662917E-01 -0.154315606851E-01
4038+ -0.156291091222E-01 -0.158291424736E-01 -0.160316919980E-01 -0.162367893472E-01
4039+ -0.164444665716E-01 -0.166547561246E-01 -0.168676908680E-01 -0.170833040770E-01
4040+ -0.173016294453E-01 -0.175227010909E-01 -0.177465535609E-01 -0.179732218369E-01
4041+ -0.182027413410E-01 -0.184351479405E-01 -0.186704779543E-01 -0.189087681585E-01
4042+ -0.191500557914E-01 -0.193943785603E-01 -0.196417746466E-01 -0.198922827123E-01
4043+ -0.201459419062E-01 -0.204027918690E-01 -0.206628727408E-01 -0.209262251666E-01
4044+ -0.211928903026E-01 -0.214629098235E-01 -0.217363259277E-01 -0.220131813450E-01
4045+ -0.222935193430E-01 -0.225773837335E-01 -0.228648188798E-01 -0.231558697034E-01
4046+ -0.234505816912E-01 -0.237490009025E-01 -0.240511739760E-01 -0.243571481378E-01
4047+ -0.246669712081E-01 -0.249806916087E-01 -0.252983583713E-01 -0.256200211442E-01
4048+ -0.259457302009E-01 -0.262755364476E-01 -0.266094914309E-01 -0.269476473466E-01
4049+ -0.272900570471E-01 -0.276367740504E-01 -0.279878525477E-01 -0.283433474127E-01
4050+ -0.287033142096E-01 -0.290678092021E-01 -0.294368893620E-01 -0.298106123784E-01
4051+ -0.301890366666E-01 -0.305722213773E-01 -0.309602264055E-01 -0.313531124008E-01
4052+ -0.317509407757E-01 -0.321537737164E-01 -0.325616741917E-01 -0.329747059631E-01
4053+ -0.333929335954E-01 -0.338164224657E-01 -0.342452387746E-01 -0.346794495561E-01
4054+ -0.351191226886E-01 -0.355643269047E-01 -0.360151318030E-01 -0.364716078582E-01
4055+ -0.369338264326E-01 -0.374018597873E-01 -0.378757810933E-01 -0.383556644432E-01
4056+ -0.388415848627E-01 -0.393336183227E-01 -0.398318417505E-01 -0.403363330428E-01
4057+ -0.408471710774E-01 -0.413644357256E-01 -0.418882078650E-01 -0.424185693919E-01
4058+ -0.429556032346E-01 -0.434993933658E-01 -0.440500248167E-01 -0.446075836893E-01
4059+ -0.451721571710E-01 -0.457438335476E-01 -0.463227022174E-01 -0.469088537054E-01
4060+ -0.475023796773E-01 -0.481033729543E-01 -0.487119275273E-01 -0.493281385719E-01
4061+ -0.499521024637E-01 -0.505839167927E-01 -0.512236803796E-01 -0.518714932908E-01
4062+ -0.525274568542E-01 -0.531916736753E-01 -0.538642476538E-01 -0.545452839991E-01
4063+ -0.552348892476E-01 -0.559331712794E-01 -0.566402393351E-01 -0.573562040333E-01
4064+ -0.580811773879E-01 -0.588152728261E-01 -0.595586052059E-01 -0.603112908345E-01
4065+ -0.610734474870E-01 -0.618451944242E-01 -0.626266524125E-01 -0.634179437422E-01
4066+ -0.642191922474E-01 -0.650305233253E-01 -0.658520639562E-01 -0.666839427236E-01
4067+ -0.675262898348E-01 -0.683792371411E-01 -0.692429181594E-01 -0.701174680925E-01
4068+ -0.710030238516E-01 -0.718997240773E-01 -0.728077091620E-01 -0.737271212719E-01
4069+ -0.746581043702E-01 -0.756008042395E-01 -0.765553685052E-01 -0.775219466590E-01
4070+ -0.785006900830E-01 -0.794917520732E-01 -0.804952878649E-01 -0.815114546564E-01
4071+ -0.825404116352E-01 -0.835823200026E-01 -0.846373430000E-01 -0.857056459349E-01
4072+ -0.867873962071E-01 -0.878827633359E-01 -0.889919189872E-01 -0.901150370009E-01
4073+ -0.912522934190E-01 -0.924038665135E-01 -0.935699368157E-01 -0.947506871447E-01
4074+ -0.959463026370E-01 -0.971569707764E-01 -0.983828814243E-01 -0.996242268501E-01
4075+ -0.100881201762 -0.102154003341 -0.103442831266 -0.104747887757
4076+ -0.106069377596 -0.107407508169 -0.108762489496 -0.110134534266
4077+ -0.111523857870 -0.112930678438 -0.114355216875 -0.115797696895
4078+ -0.117258345058 -0.118737390808 -0.120235066511 -0.121751607491
4079+ -0.123287252070 -0.124842241607 -0.126416820539 -0.128011236417
4080+ -0.129625739953 -0.131260585056 -0.132916028877 -0.134592331850
4081+ -0.136289757737 -0.138008573670 -0.139749050195 -0.141511461321
4082+ -0.143296084559 -0.145103200976 -0.146933095237 -0.148786055652
4083+ -0.150662374229 -0.152562346719 -0.154486272668 -0.156434455467
4084+ -0.158407202404 -0.160404824712 -0.162427637628 -0.164475960444
4085+ -0.166550116560 -0.168650433540 -0.170777243170 -0.172930881512
4086+ -0.175111688963 -0.177320010316 -0.179556194816 -0.181820596220
4087+ -0.184113572863 -0.186435487718 -0.188786708455 -0.191167607514
4088+ -0.193578562163 -0.196019954566 -0.198492171854 -0.200995606188
4089+ -0.203530654832 -0.206097720225 -0.208697210048 -0.211329537301
4090+ -0.213995120374 -0.216694383128 -0.219427754963 -0.222195670903
4091+ -0.224998571674 -0.227836903780 -0.230711119590 -0.233621677419
4092+ -0.236569041612 -0.239553682630 -0.242576077140 -0.245636708102
4093+ -0.248736064857 -0.251874643224 -0.255052945593 -0.258271481015
4094+ -0.261530765306 -0.264831321141 -0.268173678157 -0.271558373054
4095+ -0.274985949700 -0.278456959238 -0.281971960190 -0.285531518572
4096+ -0.289136208003 -0.292786609821 -0.296483313199 -0.300226915260
4097+ -0.304018021203 -0.307857244423 -0.311745206638 -0.315682538015
4098+ -0.319669877300 -0.323707871956 -0.327797178291 -0.331938461602
4099+ -0.336132396313 -0.340379666122 -0.344680964143 -0.349036993060
4100+ -0.353448465277 -0.357916103076 -0.362440638776 -0.367022814894
4101+ -0.371663384312 -0.376363110447 -0.381122767425 -0.385943140255
4102+ -0.390825025013 -0.395769229022 -0.400776571049 -0.405847881487
4103+ -0.410984002564 -0.416185788534 -0.421454105891 -0.426789833574
4104+ -0.432193863189 -0.437667099224 -0.443210459276 -0.448824874287
4105+ -0.454511288773 -0.460270661071 -0.466103963587 -0.472012183046
4106+ -0.477996320756 -0.484057392872 -0.490196430670 -0.496414480825
4107+ -0.502712605700 -0.509091883635 -0.515553409252 -0.522098293762
4108+ -0.528727665281 -0.535442669156 -0.542244468293 -0.549134243505
4109+ -0.556113193856 -0.563182537024 -0.570343509669 -0.577597367811
4110+ -0.584945387217 -0.592388863802 -0.599929114041 -0.607567475384
4111+ -0.615305306690 -0.623143988675 -0.631084924364 -0.639129539560
4112+ -0.647279283329 -0.655535628489 -0.663900072128 -0.672374136119
4113+ -0.680959367663 -0.689657339842 -0.698469652187 -0.707397931265
4114+ -0.716443831281 -0.725609034700 -0.734895252882 -0.744304226741
4115+ -0.753837727420 -0.763497556990 -0.773285549162 -0.783203570028
4116+ -0.793253518819 -0.803437328691 -0.813756967525 -0.824214438764
4117+ -0.834811782265 -0.845551075180 -0.856434432865 -0.867464009815
4118+ -0.878642000631 -0.889970641011 -0.901452208776 -0.913089024927
4119+ -0.924883454731 -0.936837908845 -0.948954844477 -0.961236766571
4120+ -0.973686229046 -0.986305836060 -0.999098243319 -1.01206615943
4121+ -1.02521234728 -1.03853962550 -1.05205086991 -1.06574901507
4122+ -1.07963705584 -1.09371804903 -1.10799511505 -1.12247143963
4123+ -1.13715027564 -1.15203494491 -1.16712884011 -1.18243542675
4124+ -1.19795824513 -1.21370091251 -1.22966712518 -1.24586066070
4125+ -1.26228538022 -1.27894523077 -1.29584424774 -1.31298655736
4126+ -1.33037637928 -1.34801802927 -1.36591592189 -1.38407457340
4127+ -1.40249860462 -1.42119274396 -1.44016183048 -1.45941081716
4128+ -1.47894477410 -1.49876889194 -1.51888848536 -1.53930899664
4129+ -1.56003599940 -1.58107520235 -1.60243245323 -1.62411374287
4130+ -1.64612520928 -1.66847314195 -1.69116398623 -1.71420434781
4131+ -1.73760099741 -1.76136087545 -1.78549109705 -1.80999895693
4132+ -1.83489193468 -1.86017769997 -1.88586411799 -1.91195925505
4133+ -1.93847138425 -1.96540899136 -1.99278078075 -2.02059568159
4134+ -2.04886285410 -2.07759169597 -2.10679184890 -2.13647320537
4135+ -2.16664591544 -2.19732039378 -2.22850732681 -2.26021767994
4136+ -2.29246270505 -2.32525394800 -2.35860325636 -2.39252278717
4137+ -2.42702501497 -2.46212273977 -2.49782909535 -2.53415755743
4138+ -2.57112195219 -2.60873646467 -2.64701564744 -2.68597442919
4139+ -2.72562812354 -2.76599243779 -2.80708348181 -2.84891777686
4140+ -2.89151226458 -2.93488431585 -2.97905173969 -3.02403279220
4141+ -3.06984618532 -3.11651109565 -3.16404717314 -3.21247454964
4142+ -3.26181384737 -3.31208618720 -3.36331319673 -3.41551701821
4143+ -3.46872031616 -3.52294628471 -3.57821865466 -3.63456170020
4144+ -3.69200024513 -3.75055966881 -3.81026591149 -3.87114547925
4145+ -3.93322544825 -3.99653346845 -4.06109776666 -4.12694714885
4146+ -4.19411100170 -4.26261929334 -4.33250257322 -4.40379197100
4147+ -4.47651919457 -4.55071652687 -4.62641682179 -4.70365349879
4148+ -4.78246053642 -4.86287246459 -4.94492435553 -5.02865181354
4149+ -5.11409096334 -5.20127843717 -5.29025136051 -5.38104733656
4150+ -5.47370442940 -5.56826114602 -5.66475641720 -5.76322957738
4151+ -5.86372034375 -5.96626879460 -6.07091534726 -6.17770073588
4152+ -6.28666598936 -6.39785240976 -6.51130155164 -6.62705520293
4153+ -6.74515536764 -6.86564425127 -6.98856424948 -7.11395794080
4154+ -7.24186808425 -7.37233762281 -7.50540969370 -7.64112764658
4155+ -7.77953507092 -7.92067583371 -8.06459412901 -8.21133454068
4156+ -8.36094211997 -8.51346247950 -8.66894190539 -8.82742748915
4157+ -8.98896728108 -9.15361046658 -9.32140756668 -9.49241066360
4158+ -9.66667365155 -9.84425251142 -10.0252056246 -10.2095939263
4159+ -10.3974823175 -10.5889348994 -10.7840293936 -10.9828626984
4160+ -11.1853196453 -11.3921745678 -11.6014146806 -11.8102642499
4161+ -12.0221168165 -12.2393026908 -12.4612848983 -12.6884521500
4162+ -12.9209454725 -13.1589193608 -13.4025296562 -13.6519202652
4163+ -13.9072279100 -14.1685803710 -14.4360957615 -14.7098813807
4164+ -14.9900323702 -15.2766301735 -15.5697408098 -15.8694129709
4165+ -16.1756759491 -16.4885373999 -16.8079809489 -17.1339636438
4166+ -17.4664132738 -17.8052255636 -18.1502612474 -18.5013430814
4167+ -18.8582527990 -19.2207280440 -19.5884593430 -19.9610871550
4168+ -20.3381990609 -20.7193271547 -21.1039457167 -21.4914692423
4169+ -21.8812509020 -22.2725815555 -22.6646893867 -23.0567402679
4170+ -23.4478389742 -23.8370313261 -24.2233073996 -24.6056058837
4171+ -24.9828196743 -25.3538028593 -25.7173790806 -26.0723516897
4172+ -26.4175138431 -26.7516675473 -27.0736188969 -27.3822418944
4173+ -27.6764275575 -27.9551168402 -28.2174096239 -28.4624161308
4174+ -28.6893783236 -28.8977228152 -29.0870050447 -29.2569811613
4175+ -29.4076063318 -29.5390590615 -29.6517549196 -29.7463586359
4176+ -29.8237911770 -29.8852306873 -29.9321054028 -29.9660762971
4177+ -29.9890067262 -30.0029158517 -30.0099116235 -30.0121007544
4178+ -30.0114611539 -30.0097026191 -30.0080225717 -30.0069049966
4179+ -30.0060710840 -30.0053029068 -30.0046205298 -30.0040312326
4180+ -30.0035039851 -30.0030426788 -30.0026365663 -30.0022805302
4181+ -30.0019688109 -30.0016964272 -30.0014588623 -30.0012520615
4182+ -30.0010723889 -30.0007919083 -30.0005824716 -30.0004266961
4183+ -30.0003112940 -30.0002261473 -30.0001635825 -30.0001178034
4184+ -30.0000844500 -30.0000602557 -30.0000427842 -30.0000302250
4185+ -30.0000212399 -30.0000148431 -30.0000103117 -30.0000071190
4186+ -30.0000048815 -30.0000033227 -30.0000022433 -30.0000015006
4187+ -30.0000009936 -30.0000006497 -30.0000004188 -30.0000002651
4188+ -30.0000001639 -30.0000000983 -30.0000000563 -30.0000000300
4189+ -30.0000000140 -30.0000000045 -29.9999999993 -29.9999999966
4190+ -29.9999999955 -29.9999999953 -29.9999999956 -29.9999999961
4191+ -29.9999999966 -29.9999999972 -29.9999999977 -29.9999999982
4192+ -29.9999999985 -29.9999999989 -29.9999999991 -29.9999999993
4193+ -29.9999999995 -29.9999999996 -29.9999999997 -29.9999999998
4194+ -29.9999999998 -29.9999999999 -29.9999999999 -29.9999999999
4195+ -29.9999999999 -30.0000000000 -30.0000000000 -30.0000000000
4196+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4197+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4198+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4199+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4200+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4201+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4202+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4203+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4204+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4205+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4206+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4207+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4208+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4209+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4210+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4211+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4212+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4213+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4214+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4215+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4216+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4217+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4218+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4219+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4220+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4221+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4222+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4223+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4224+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4225+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4226+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4227+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4228+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4229+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4230+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4231+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4232+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4233+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4234+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4235+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4236+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4237+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4238+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4239+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4240+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4241+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4242+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4243+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4244+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4245+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4246+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4247+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4248+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4249+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4250+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4251+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4252+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4253+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4254+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4255+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4256+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4257+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4258+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4259+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4260+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4261+ Down Pseudopotential follows (l on next line)
4262+ 1
4263+ -0.786726987868E-05 -0.158336314041E-04 -0.238999287762E-04 -0.320680913533E-04
4264+ -0.403385375993E-04 -0.487133963666E-04 -0.571933630364E-04 -0.657800985343E-04
4265+ -0.744748102476E-04 -0.832788937899E-04 -0.921937186901E-04 -0.101220677731E-03
4266+ -0.110361182966E-03 -0.119616661227E-03 -0.128988558068E-03 -0.138478340352E-03
4267+ -0.148087488755E-03 -0.157817504536E-03 -0.167669910693E-03 -0.177646243857E-03
4268+ -0.187748063028E-03 -0.197976948170E-03 -0.208334497833E-03 -0.218822328139E-03
4269+ -0.229442079013E-03 -0.240195411154E-03 -0.251084001479E-03 -0.262109555631E-03
4270+ -0.273273793914E-03 -0.284578459976E-03 -0.296025320787E-03 -0.307616166434E-03
4271+ -0.319352807822E-03 -0.331237076059E-03 -0.343270831077E-03 -0.355455952178E-03
4272+ -0.367794342520E-03 -0.380287930522E-03 -0.392938670449E-03 -0.405748535632E-03
4273+ -0.418719528758E-03 -0.431853676924E-03 -0.445153032842E-03 -0.458619675656E-03
4274+ -0.472255704380E-03 -0.486063254911E-03 -0.500044485317E-03 -0.514201575315E-03
4275+ -0.528536739129E-03 -0.543052218464E-03 -0.557750281272E-03 -0.572633220160E-03
4276+ -0.587703364445E-03 -0.602963069219E-03 -0.618414714668E-03 -0.634060720818E-03
4277+ -0.649903527853E-03 -0.665945612864E-03 -0.682189483749E-03 -0.698637675451E-03
4278+ -0.715292760847E-03 -0.732157342024E-03 -0.749234052993E-03 -0.766525561953E-03
4279+ -0.784034572967E-03 -0.801763818385E-03 -0.819716070163E-03 -0.837894136405E-03
4280+ -0.856300852166E-03 -0.874939094857E-03 -0.893811779500E-03 -0.912921854350E-03
4281+ -0.932272302646E-03 -0.951866148270E-03 -0.971706457279E-03 -0.991796325901E-03
4282+ -0.101213889145E-02 -0.103273733778E-02 -0.105359488061E-02 -0.107471477662E-02
4283+ -0.109610032984E-02 -0.111775488111E-02 -0.113968181171E-02 -0.116188454855E-02
4284+ -0.118436656387E-02 -0.120713136650E-02 -0.123018251438E-02 -0.125352361184E-02
4285+ -0.127715830262E-02 -0.130109028205E-02 -0.132532328834E-02 -0.134986110872E-02
4286+ -0.137470757737E-02 -0.139986657444E-02 -0.142534203426E-02 -0.145113793551E-02
4287+ -0.147725830883E-02 -0.150370723689E-02 -0.153048885025E-02 -0.155760733591E-02
4288+ -0.158506693080E-02 -0.161287192251E-02 -0.164102665927E-02 -0.166953553994E-02
4289+ -0.169840301733E-02 -0.172763360284E-02 -0.175723186358E-02 -0.178720242570E-02
4290+ -0.181754996965E-02 -0.184827923930E-02 -0.187939503688E-02 -0.191090222138E-02
4291+ -0.194280571745E-02 -0.197511051106E-02 -0.200782164925E-02 -0.204094424185E-02
4292+ -0.207448346545E-02 -0.210844456117E-02 -0.214283283485E-02 -0.217765365978E-02
4293+ -0.221291247608E-02 -0.224861479443E-02 -0.228476619280E-02 -0.232137231903E-02
4294+ -0.235843889447E-02 -0.239597170995E-02 -0.243397662988E-02 -0.247245959258E-02
4295+ -0.251142661225E-02 -0.255088377594E-02 -0.259083724983E-02 -0.263129327730E-02
4296+ -0.267225817775E-02 -0.271373835479E-02 -0.275574028687E-02 -0.279827053830E-02
4297+ -0.284133575623E-02 -0.288494266590E-02 -0.292909808371E-02 -0.297380890900E-02
4298+ -0.301908212662E-02 -0.306492481102E-02 -0.311134412561E-02 -0.315834732454E-02
4299+ -0.320594174977E-02 -0.325413483908E-02 -0.330293412379E-02 -0.335234722726E-02
4300+ -0.340238187107E-02 -0.345304587413E-02 -0.350434715105E-02 -0.355629371915E-02
4301+ -0.360889369526E-02 -0.366215529637E-02 -0.371608684688E-02 -0.377069677277E-02
4302+ -0.382599360753E-02 -0.388198599001E-02 -0.393868267019E-02 -0.399609250803E-02
4303+ -0.405422447136E-02 -0.411308764570E-02 -0.417269122798E-02 -0.423304453034E-02
4304+ -0.429415698470E-02 -0.435603813908E-02 -0.441869766175E-02 -0.448214534580E-02
4305+ -0.454639110288E-02 -0.461144497211E-02 -0.467731711911E-02 -0.474401783481E-02
4306+ -0.481155754316E-02 -0.487994679670E-02 -0.494919628094E-02 -0.501931681700E-02
4307+ -0.509031936114E-02 -0.516221500701E-02 -0.523501498935E-02 -0.530873068297E-02
4308+ -0.538337360614E-02 -0.545895542163E-02 -0.553548794000E-02 -0.561298311935E-02
4309+ -0.569145306729E-02 -0.577091004734E-02 -0.585136647267E-02 -0.593283491538E-02
4310+ -0.601532810637E-02 -0.609885893296E-02 -0.618344044900E-02 -0.626908587034E-02
4311+ -0.635580857788E-02 -0.644362212370E-02 -0.653254022846E-02 -0.662257678578E-02
4312+ -0.671374586374E-02 -0.680606170801E-02 -0.689953874356E-02 -0.699419157546E-02
4313+ -0.709003499379E-02 -0.718708397520E-02 -0.728535368272E-02 -0.738485947144E-02
4314+ -0.748561688982E-02 -0.758764168048E-02 -0.769094978641E-02 -0.779555734893E-02
4315+ -0.790148071287E-02 -0.800873642987E-02 -0.811734125839E-02 -0.822731216809E-02
4316+ -0.833866634263E-02 -0.845142118104E-02 -0.856559430122E-02 -0.868120354425E-02
4317+ -0.879826697305E-02 -0.891680287901E-02 -0.903682978492E-02 -0.915836644425E-02
4318+ -0.928143184752E-02 -0.940604522469E-02 -0.953222604599E-02 -0.965999402772E-02
4319+ -0.978936913468E-02 -0.992037158122E-02 -0.100530218369E-01 -0.101873406291E-01
4320+ -0.103233489455E-01 -0.104610680372E-01 -0.106005194232E-01 -0.107417248941E-01
4321+ -0.108847065126E-01 -0.110294866201E-01 -0.111760878394E-01 -0.113245330772E-01
4322+ -0.114748455279E-01 -0.116270486786E-01 -0.117811663119E-01 -0.119372225086E-01
4323+ -0.120952416529E-01 -0.122552484359E-01 -0.124172678591E-01 -0.125813252387E-01
4324+ -0.127474462085E-01 -0.129156567261E-01 -0.130859830747E-01 -0.132584518677E-01
4325+ -0.134330900549E-01 -0.136099249232E-01 -0.137889841038E-01 -0.139702955757E-01
4326+ -0.141538876685E-01 -0.143397890697E-01 -0.145280288272E-01 -0.147186363530E-01
4327+ -0.149116414313E-01 -0.151070742191E-01 -0.153049652533E-01 -0.155053454558E-01
4328+ -0.157082461358E-01 -0.159136989976E-01 -0.161217361440E-01 -0.163323900812E-01
4329+ -0.165456937250E-01 -0.167616804045E-01 -0.169803838685E-01 -0.172018382903E-01
4330+ -0.174260782727E-01 -0.176531388543E-01 -0.178830555140E-01 -0.181158641771E-01
4331+ -0.183516012208E-01 -0.185903034801E-01 -0.188320082532E-01 -0.190767533070E-01
4332+ -0.193245768841E-01 -0.195755177082E-01 -0.198296149894E-01 -0.200869084317E-01
4333+ -0.203474382383E-01 -0.206112451178E-01 -0.208783702913E-01 -0.211488554983E-01
4334+ -0.214227430034E-01 -0.217000756026E-01 -0.219808966303E-01 -0.222652499661E-01
4335+ -0.225531800416E-01 -0.228447318474E-01 -0.231399509396E-01 -0.234388834475E-01
4336+ -0.237415760811E-01 -0.240480761373E-01 -0.243584315086E-01 -0.246726906896E-01
4337+ -0.249909027845E-01 -0.253131175162E-01 -0.256393852321E-01 -0.259697569133E-01
4338+ -0.263042841826E-01 -0.266430193115E-01 -0.269860152291E-01 -0.273333255307E-01
4339+ -0.276850044858E-01 -0.280411070461E-01 -0.284016888548E-01 -0.287668062552E-01
4340+ -0.291365162992E-01 -0.295108767561E-01 -0.298899461225E-01 -0.302737836304E-01
4341+ -0.306624492569E-01 -0.310560037340E-01 -0.314545085570E-01 -0.318580259953E-01
4342+ -0.322666191016E-01 -0.326803517212E-01 -0.330992885033E-01 -0.335234949098E-01
4343+ -0.339530372265E-01 -0.343879825726E-01 -0.348283989119E-01 -0.352743550633E-01
4344+ -0.357259207109E-01 -0.361831664160E-01 -0.366461636272E-01 -0.371149846918E-01
4345+ -0.375897028676E-01 -0.380703923337E-01 -0.385571282023E-01 -0.390499865307E-01
4346+ -0.395490443328E-01 -0.400543795915E-01 -0.405660712706E-01 -0.410841993272E-01
4347+ -0.416088447247E-01 -0.421400894443E-01 -0.426780164991E-01 -0.432227099465E-01
4348+ -0.437742549009E-01 -0.443327375480E-01 -0.448982451573E-01 -0.454708660964E-01
4349+ -0.460506898448E-01 -0.466378070072E-01 -0.472323093285E-01 -0.478342897078E-01
4350+ -0.484438422127E-01 -0.490610620945E-01 -0.496860458026E-01 -0.503188909999E-01
4351+ -0.509596965780E-01 -0.516085626726E-01 -0.522655906793E-01 -0.529308832691E-01
4352+ -0.536045444051E-01 -0.542866793580E-01 -0.549773947230E-01 -0.556767984367E-01
4353+ -0.563849997934E-01 -0.571021094624E-01 -0.578282395057E-01 -0.585635033950E-01
4354+ -0.593080160296E-01 -0.600618937546E-01 -0.608252543789E-01 -0.615982171935E-01
4355+ -0.623809029905E-01 -0.631734340817E-01 -0.639759343180E-01 -0.647885291083E-01
4356+ -0.656113454397E-01 -0.664445118972E-01 -0.672881586834E-01 -0.681424176394E-01
4357+ -0.690074222652E-01 -0.698833077405E-01 -0.707702109462E-01 -0.716682704853E-01
4358+ -0.725776267051E-01 -0.734984217188E-01 -0.744307994279E-01 -0.753749055446E-01
4359+ -0.763308876150E-01 -0.772988950416E-01 -0.782790791069E-01 -0.792715929975E-01
4360+ -0.802765918275E-01 -0.812942326630E-01 -0.823246745469E-01 -0.833680785235E-01
4361+ -0.844246076635E-01 -0.854944270905E-01 -0.865777040056E-01 -0.876746077145E-01
4362+ -0.887853096537E-01 -0.899099834173E-01 -0.910488047840E-01 -0.922019517454E-01
4363+ -0.933696045327E-01 -0.945519456461E-01 -0.957491598827E-01 -0.969614343654E-01
4364+ -0.981889585728E-01 -0.994319243683E-01 -0.100690526030 -0.101964960283
4365+ -0.103255426327 -0.104562125870 -0.105885263159 -0.107225045013
4366+ -0.108581680854 -0.109955382740 -0.111346365400 -0.112754846265
4367+ -0.114181045504 -0.115625186058 -0.117087493677 -0.118568196949
4368+ -0.120067527344 -0.121585719246 -0.123123009988 -0.124679639895
4369+ -0.126255852316 -0.127851893665 -0.129468013459 -0.131104464359
4370+ -0.132761502205 -0.134439386062 -0.136138378257 -0.137858744421
4371+ -0.139600753531 -0.141364677952 -0.143150793478 -0.144959379382
4372+ -0.146790718451 -0.148645097035 -0.150522805094 -0.152424136239
4373+ -0.154349387781 -0.156298860778 -0.158272860081 -0.160271694382
4374+ -0.162295676263 -0.164345122247 -0.166420352845 -0.168521692608
4375+ -0.170649470176 -0.172804018335 -0.174985674062 -0.177194778585
4376+ -0.179431677434 -0.181696720493 -0.183990262059 -0.186312660897
4377+ -0.188664280296 -0.191045488124 -0.193456656892 -0.195898163807
4378+ -0.198370390835 -0.200873724759 -0.203408557242 -0.205975284889
4379+ -0.208574309309 -0.211206037177 -0.213870880301 -0.216569255687
4380+ -0.219301585601 -0.222068297643 -0.224869824808 -0.227706605557
4381+ -0.230579083890 -0.233487709410 -0.236432937398 -0.239415228888
4382+ -0.242435050734 -0.245492875687 -0.248589182473 -0.251724455864
4383+ -0.254899186761 -0.258113872263 -0.261369015759 -0.264665126995
4384+ -0.268002722164 -0.271382323987 -0.274804461791 -0.278269671602
4385+ -0.281778496222 -0.285331485322 -0.288929195529 -0.292572190509
4386+ -0.296261041067 -0.299996325230 -0.303778628344 -0.307608543167
4387+ -0.311486669963 -0.315413616600 -0.319389998647 -0.323416439471
4388+ -0.327493570341 -0.331622030528 -0.335802467406 -0.340035536559
4389+ -0.344321901886 -0.348662235708 -0.353057218876 -0.357507540882
4390+ -0.362013899971 -0.366577003253 -0.371197566820 -0.375876315858
4391+ -0.380613984768 -0.385411317285 -0.390269066600 -0.395187995479
4392+ -0.400168876392 -0.405212491635 -0.410319633463 -0.415491104213
4393+ -0.420727716442 -0.426030293056 -0.431399667445 -0.436836683624
4394+ -0.442342196367 -0.447917071353 -0.453562185302 -0.459278426128
4395+ -0.465066693080 -0.470927896893 -0.476862959938 -0.482872816377
4396+ -0.488958412319 -0.495120705975 -0.501360667820 -0.507679280753
4397+ -0.514077540265 -0.520556454604 -0.527117044943 -0.533760345557
4398+ -0.540487403989 -0.547299281235 -0.554197051920 -0.561181804481
4399+ -0.568254641350 -0.575416679144 -0.582669048855 -0.590012896042
4400+ -0.597449381028 -0.604979679101 -0.612604980713 -0.620326491686
4401+ -0.628145433422 -0.636063043114 -0.644080573960 -0.652199295382
4402+ -0.660420493246 -0.668745470088 -0.677175545343 -0.685712055576
4403+ -0.694356354720 -0.703109814309 -0.711973823731 -0.720949790466
4404+ -0.730039140342 -0.739243317789 -0.748563786097 -0.758002027682
4405+ -0.767559544350 -0.777237857572 -0.787038508760 -0.796963059547
4406+ -0.807013092074 -0.817190209278 -0.827496035191 -0.837932215238
4407+ -0.848500416544 -0.859202328242 -0.870039661792 -0.881014151299
4408+ -0.892127553843 -0.903381649810 -0.914778243232 -0.926319162128
4409+ -0.938006258858 -0.949841410476 -0.961826519097 -0.973963512262
4410+ -0.986254343317 -0.998700991797 -1.01130546381 -1.02406979244
4411+ -1.03699603815 -1.05008628918 -1.06334266201 -1.07676730172
4412+ -1.09036238248 -1.10413010797 -1.11807271183 -1.13219245815
4413+ -1.14649164188 -1.16097258937 -1.17563765882 -1.19048924079
4414+ -1.20552975870 -1.22076166936 -1.23618746347 -1.25180966620
4415+ -1.26763083770 -1.28365357365 -1.29988050589 -1.31631430294
4416+ -1.33295767061 -1.34981335263 -1.36688413124 -1.38417282784
4417+ -1.40168230361 -1.41941546018 -1.43737524033 -1.45556462861
4418+ -1.47398665211 -1.49264438111 -1.51154092987 -1.53067945733
4419+ -1.55006316788 -1.56969531216 -1.58957918782 -1.60971814036
4420+ -1.63011556394 -1.65077490224 -1.67169964932 -1.69289335048
4421+ -1.71435960322 -1.73610205810 -1.75812441974 -1.78043044773
4422+ -1.80302395767 -1.82590882212 -1.84908897170 -1.87256839606
4423+ -1.89635114505 -1.92044132971 -1.94484312351 -1.96956076342
4424+ -1.99459855110 -2.01996085413 -2.04565210721 -2.07167681344
4425+ -2.09803954555 -2.12474494729 -2.15179773470 -2.17920269753
4426+ -2.20696470062 -2.23508868531 -2.26357967093 -2.29244275629
4427+ -2.32168312121 -2.35130602804 -2.38131682331 -2.41172093930
4428+ -2.44252389574 -2.47373130148 -2.50534885624 -2.53738235233
4429+ -2.56983767651 -2.60272081176 -2.63603783923 -2.66979494005
4430+ -2.70399839735 -2.73865459822 -2.77377003571 -2.80935131090
4431+ -2.84540513495 -2.88193833129 -2.91895783772 -2.95647070865
4432+ -2.99448411726 -3.03300535784 -3.07204184804 -3.11160113119
4433+ -3.15169087868 -3.19231889232 -3.23349310675 -3.27522159191
4434+ -3.31751255544 -3.36037434521 -3.40381545179 -3.44784451097
4435+ -3.49247030628 -3.53770177150 -3.58354799326 -3.63001821347
4436+ -3.67712183197 -3.72486840895 -3.77326766751 -3.82232949613
4437+ -3.87206395109 -3.92248125895 -3.97359181887 -4.02540620495
4438+ -4.07793516848 -4.13118964014 -4.18518073209 -4.23991973998
4439+ -4.29541814487 -4.35168761496 -4.40874000730 -4.46658736924
4440+ -4.52524193977 -4.58471615069 -4.64502262748 -4.70617419008
4441+ -4.76818385331 -4.83106482712 -4.89483051643 -4.95949452074
4442+ -5.02507063336 -5.09157284027 -5.15901531855 -5.22741243438
4443+ -5.29677874055 -5.36712897347 -5.43847804961 -5.51084106131
4444+ -5.58423327202 -5.65867011078 -5.73416716597 -5.81074017827
4445+ -5.88840503279 -5.96717775028 -6.04707447730 -6.12811147550
4446+ -6.21030510965 -6.29367183458 -6.37822818085 -6.46399073910
4447+ -6.55097614295 -6.63920105049 -6.72868212411 -6.81943600870
4448+ -6.91147930804 -7.00482855941 -7.09950020610 -7.19551056795
4449+ -7.29287580964 -7.39161190669 -7.49173460907 -7.59325940222
4450+ -7.69620146543 -7.80057562742 -7.90639631901 -8.01367752275
4451+ -8.12243271931 -8.23267483065 -8.34441615960 -8.45766832601
4452+ -8.57244219906 -8.68874782577 -8.80659435555 -8.92598996058
4453+ -9.04694175207 -9.16945569209 -9.29353650104 -9.41918756057
4454+ -9.54641081190 -9.67520664950 -9.80557381009 -9.93750925686
4455+ -10.0710080591 -10.2060632670 -10.3426657822 -10.4808042232
4456+ -10.6204647875 -10.7616311084 -10.9042841091 -11.0484018527
4457+ -11.1939593889 -11.3409285989 -11.4892780376 -11.6389727745
4458+ -11.7899742343 -11.9422400377 -12.0957238430 -12.2503751910
4459+ -12.4061393529 -12.5629571835 -12.7207649812 -12.8794943563
4460+ -13.0390721098 -13.1994201243 -13.3604552701 -13.5220893281
4461+ -13.6842289332 -13.8467755397 -14.0096254135 -14.1726696535
4462+ -14.3357942460 -14.4988801559 -14.6618034591 -14.8244355200
4463+ -14.9866432189 -15.1482892329 -15.3092323756 -15.4693279995
4464+ -15.6284284640 -15.7863836724 -15.9430416970 -16.0982492953
4465+ -16.2518537434 -16.4036985526 -16.5536384383 -16.7015454972
4466+ -16.8470786609 -16.9907860453 -17.1304291968 -17.2630082265
4467+ -17.3916950955 -17.5186022815 -17.6429800079 -17.7650106218
4468+ -17.8846367581 -18.0018241640 -18.1165513928 -18.2287984911
4469+ -18.3385538778 -18.4458148854 -18.5505895102 -18.6528979269
4470+ -18.7527740015 -18.8502668082 -18.9454421711 -19.0383842437
4471+ -19.1291971409 -19.2180066292 -19.3049618876 -19.3902373357
4472+ -19.4740345486 -19.5565842523 -19.6381483910 -19.7190222998
4473+ -19.7995369524 -19.8800612771 -19.9610045438 -20.0428187832
4474+ -20.1260012146 -20.2110966222 -20.2986996275 -20.3894567566
4475+ -20.4840681812 -20.5832890169 -20.6879299683 -20.7988571108
4476+ -20.9169905638 -21.0433017254 -21.1788087493 -21.3245698477
4477+ -21.4816739744 -21.6512284780 -21.8343431398 -22.0321104415
4478+ -22.2455796747 -22.4757334352 -22.7234333871 -22.9894274945
4479+ -23.2742354596 -23.5781112300 -23.9010755557 -24.2426861525
4480+ -24.6020748277 -24.9779155742 -25.3682866811 -25.7706674995
4481+ -26.1818737878 -26.5980375239 -27.0146020196 -27.4263499290
4482+ -27.8274705686 -28.2116764077 -28.5723789514 -28.9029350281
4483+ -29.1969752129 -29.4488270662 -29.6540467726 -29.8100771572
4484+ -29.9170421718 -29.9787342448 -30.0037403026 -30.0069047125
4485+ -30.0060710840 -30.0053029068 -30.0046205298 -30.0040312326
4486+ -30.0035039851 -30.0030426788 -30.0026365663 -30.0022805302
4487+ -30.0019688109 -30.0016964272 -30.0014588623 -30.0012520615
4488+ -30.0010723889 -30.0007919083 -30.0005824716 -30.0004266961
4489+ -30.0003112940 -30.0002261473 -30.0001635825 -30.0001178034
4490+ -30.0000844500 -30.0000602557 -30.0000427842 -30.0000302250
4491+ -30.0000212399 -30.0000148431 -30.0000103117 -30.0000071190
4492+ -30.0000048815 -30.0000033227 -30.0000022433 -30.0000015006
4493+ -30.0000009936 -30.0000006497 -30.0000004188 -30.0000002651
4494+ -30.0000001639 -30.0000000983 -30.0000000563 -30.0000000300
4495+ -30.0000000140 -30.0000000045 -29.9999999993 -29.9999999966
4496+ -29.9999999955 -29.9999999953 -29.9999999956 -29.9999999961
4497+ -29.9999999966 -29.9999999972 -29.9999999977 -29.9999999982
4498+ -29.9999999985 -29.9999999989 -29.9999999991 -29.9999999993
4499+ -29.9999999995 -29.9999999996 -29.9999999997 -29.9999999998
4500+ -29.9999999998 -29.9999999999 -29.9999999999 -29.9999999999
4501+ -29.9999999999 -30.0000000000 -30.0000000000 -30.0000000000
4502+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4503+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4504+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4505+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4506+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4507+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4508+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4509+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4510+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4511+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4512+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4513+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4514+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4515+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4516+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4517+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4518+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4519+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4520+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4521+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4522+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4523+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4524+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4525+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4526+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4527+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4528+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4529+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4530+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4531+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4532+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4533+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4534+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4535+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4536+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4537+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4538+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4539+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4540+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4541+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4542+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4543+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4544+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4545+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4546+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4547+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4548+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4549+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4550+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4551+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4552+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4553+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4554+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4555+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4556+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4557+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4558+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4559+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4560+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4561+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4562+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4563+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4564+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4565+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4566+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4567+ Down Pseudopotential follows (l on next line)
4568+ 2
4569+ -0.140097856392E-04 -0.281959262620E-04 -0.425602379214E-04 -0.571056340534E-04
4570+ -0.718335295773E-04 -0.867470623356E-04 -0.101847949390E-03 -0.117138886199E-03
4571+ -0.132622127695E-03 -0.148300130212E-03 -0.164175337344E-03 -0.180250229448E-03
4572+ -0.196527319830E-03 -0.213009150428E-03 -0.229698295930E-03 -0.246597366531E-03
4573+ -0.263709000627E-03 -0.281035871752E-03 -0.298580689931E-03 -0.316346193748E-03
4574+ -0.334335159278E-03 -0.352550398867E-03 -0.370994758950E-03 -0.389671119228E-03
4575+ -0.408582399102E-03 -0.427731554839E-03 -0.447121575220E-03 -0.466755494254E-03
4576+ -0.486636377319E-03 -0.506767330058E-03 -0.527151498565E-03 -0.547792069399E-03
4577+ -0.568692267504E-03 -0.589855355812E-03 -0.611284644090E-03 -0.632983479711E-03
4578+ -0.654955252370E-03 -0.677203395722E-03 -0.699731388200E-03 -0.722542746476E-03
4579+ -0.745641035992E-03 -0.769029866255E-03 -0.792712892292E-03 -0.816693815716E-03
4580+ -0.840976378419E-03 -0.865564379841E-03 -0.890461662517E-03 -0.915672111820E-03
4581+ -0.941199669082E-03 -0.967048324845E-03 -0.993222117891E-03 -0.101972513393E-02
4582+ -0.104656151795E-02 -0.107373546353E-02 -0.110125121249E-02 -0.112911306989E-02
4583+ -0.115732538467E-02 -0.118589256668E-02 -0.121481908089E-02 -0.124410944393E-02
4584+ -0.127376823529E-02 -0.130380008892E-02 -0.133420969624E-02 -0.136500180874E-02
4585+ -0.139618123998E-02 -0.142775285835E-02 -0.145972159869E-02 -0.149209245922E-02
4586+ -0.152487049264E-02 -0.155806082192E-02 -0.159166863586E-02 -0.162569918512E-02
4587+ -0.166015778429E-02 -0.169504981794E-02 -0.173038074248E-02 -0.176615607459E-02
4588+ -0.180238140248E-02 -0.183906239170E-02 -0.187620477091E-02 -0.191381434132E-02
4589+ -0.195189698351E-02 -0.199045864727E-02 -0.202950535567E-02 -0.206904321060E-02
4590+ -0.210907839295E-02 -0.214961715427E-02 -0.219066582972E-02 -0.223223083578E-02
4591+ -0.227431866371E-02 -0.231693589218E-02 -0.236008917901E-02 -0.240378526776E-02
4592+ -0.244803098613E-02 -0.249283324544E-02 -0.253819904934E-02 -0.258413548438E-02
4593+ -0.263064972822E-02 -0.267774905012E-02 -0.272544080730E-02 -0.277373245401E-02
4594+ -0.282263153552E-02 -0.287214568940E-02 -0.292228265597E-02 -0.297305026887E-02
4595+ -0.302445645887E-02 -0.307650925910E-02 -0.312921680267E-02 -0.318258732663E-02
4596+ -0.323662916769E-02 -0.329135077203E-02 -0.334676069071E-02 -0.340286757874E-02
4597+ -0.345968020452E-02 -0.351720744612E-02 -0.357545829164E-02 -0.363444184154E-02
4598+ -0.369416731323E-02 -0.375464403951E-02 -0.381588146931E-02 -0.387788917118E-02
4599+ -0.394067683322E-02 -0.400425426757E-02 -0.406863140774E-02 -0.413381831190E-02
4600+ -0.419982516719E-02 -0.426666228642E-02 -0.433434011288E-02 -0.440286922132E-02
4601+ -0.447226032072E-02 -0.454252425195E-02 -0.461367199482E-02 -0.468571466686E-02
4602+ -0.475866352296E-02 -0.483252996429E-02 -0.490732552972E-02 -0.498306190762E-02
4603+ -0.505975093368E-02 -0.513740458692E-02 -0.521603500361E-02 -0.529565446988E-02
4604+ -0.537627542513E-02 -0.545791046697E-02 -0.554057235143E-02 -0.562427399565E-02
4605+ -0.570902847577E-02 -0.579484903592E-02 -0.588174908680E-02 -0.596974220508E-02
4606+ -0.605884214054E-02 -0.614906281612E-02 -0.624041832726E-02 -0.633292294983E-02
4607+ -0.642659113792E-02 -0.652143752553E-02 -0.661747693476E-02 -0.671472437103E-02
4608+ -0.681319503003E-02 -0.691290429661E-02 -0.701386775159E-02 -0.711610117172E-02
4609+ -0.721962052859E-02 -0.732444199960E-02 -0.743058196276E-02 -0.753805700162E-02
4610+ -0.764688391095E-02 -0.775707969426E-02 -0.786866156908E-02 -0.798164697271E-02
4611+ -0.809605355718E-02 -0.821189919934E-02 -0.832920200113E-02 -0.844798028960E-02
4612+ -0.856825262596E-02 -0.869003780231E-02 -0.881335484739E-02 -0.893822303048E-02
4613+ -0.906466186229E-02 -0.919269109848E-02 -0.932233074477E-02 -0.945360105732E-02
4614+ -0.958652254740E-02 -0.972111598392E-02 -0.985740239814E-02 -0.999540308482E-02
4615+ -0.101351396057E-01 -0.102766337973E-01 -0.104199077662E-01 -0.105649839000E-01
4616+ -0.107118848682E-01 -0.108606336222E-01 -0.110112534062E-01 -0.111637677546E-01
4617+ -0.113182004968E-01 -0.114745757647E-01 -0.116329179918E-01 -0.117932519194E-01
4618+ -0.119556025997E-01 -0.121199954007E-01 -0.122864560095E-01 -0.124550104349E-01
4619+ -0.126256850144E-01 -0.127985064171E-01 -0.129735016456E-01 -0.131506980436E-01
4620+ -0.133301232988E-01 -0.135118054459E-01 -0.136957728744E-01 -0.138820543289E-01
4621+ -0.140706789159E-01 -0.142616761093E-01 -0.144550757524E-01 -0.146509080640E-01
4622+ -0.148492036440E-01 -0.150499934761E-01 -0.152533089339E-01 -0.154591817871E-01
4623+ -0.156676442026E-01 -0.158787287529E-01 -0.160924684218E-01 -0.163088966056E-01
4624+ -0.165280471217E-01 -0.167499542137E-01 -0.169746525541E-01 -0.172021772528E-01
4625+ -0.174325638617E-01 -0.176658483785E-01 -0.179020672545E-01 -0.181412573998E-01
4626+ -0.183834561887E-01 -0.186287014645E-01 -0.188770315476E-01 -0.191284852409E-01
4627+ -0.193831018338E-01 -0.196409211108E-01 -0.199019833572E-01 -0.201663293647E-01
4628+ -0.204340004373E-01 -0.207050383997E-01 -0.209794856026E-01 -0.212573849284E-01
4629+ -0.215387797999E-01 -0.218237141855E-01 -0.221122326073E-01 -0.224043801469E-01
4630+ -0.227002024526E-01 -0.229997457481E-01 -0.233030568375E-01 -0.236101831135E-01
4631+ -0.239211725663E-01 -0.242360737880E-01 -0.245549359829E-01 -0.248778089746E-01
4632+ -0.252047432118E-01 -0.255357897797E-01 -0.258710004054E-01 -0.262104274653E-01
4633+ -0.265541239969E-01 -0.269021437033E-01 -0.272545409631E-01 -0.276113708404E-01
4634+ -0.279726890898E-01 -0.283385521687E-01 -0.287090172444E-01 -0.290841422027E-01
4635+ -0.294639856584E-01 -0.298486069628E-01 -0.302380662140E-01 -0.306324242665E-01
4636+ -0.310317427396E-01 -0.314360840280E-01 -0.318455113115E-01 -0.322600885640E-01
4637+ -0.326798805645E-01 -0.331049529070E-01 -0.335353720102E-01 -0.339712051283E-01
4638+ -0.344125203616E-01 -0.348593866674E-01 -0.353118738694E-01 -0.357700526705E-01
4639+ -0.362339946627E-01 -0.367037723380E-01 -0.371794591011E-01 -0.376611292796E-01
4640+ -0.381488581360E-01 -0.386427218796E-01 -0.391427976782E-01 -0.396491636705E-01
4641+ -0.401618989779E-01 -0.406810837173E-01 -0.412067990128E-01 -0.417391270095E-01
4642+ -0.422781508857E-01 -0.428239548655E-01 -0.433766242333E-01 -0.439362453457E-01
4643+ -0.445029056450E-01 -0.450766936750E-01 -0.456576990917E-01 -0.462460126794E-01
4644+ -0.468417263650E-01 -0.474449332309E-01 -0.480557275304E-01 -0.486742047030E-01
4645+ -0.493004613884E-01 -0.499345954416E-01 -0.505767059489E-01 -0.512268932430E-01
4646+ -0.518852589185E-01 -0.525519058478E-01 -0.532269381979E-01 -0.539104614455E-01
4647+ -0.546025823942E-01 -0.553034091916E-01 -0.560130513448E-01 -0.567316197393E-01
4648+ -0.574592266549E-01 -0.581959857835E-01 -0.589420122479E-01 -0.596974226186E-01
4649+ -0.604623349323E-01 -0.612368687107E-01 -0.620211449790E-01 -0.628152862848E-01
4650+ -0.636194167169E-01 -0.644336619256E-01 -0.652581491413E-01 -0.660930071950E-01
4651+ -0.669383665383E-01 -0.677943592639E-01 -0.686611191259E-01 -0.695387815611E-01
4652+ -0.704274837097E-01 -0.713273644375E-01 -0.722385643568E-01 -0.731612258487E-01
4653+ -0.740954930856E-01 -0.750415120530E-01 -0.759994305735E-01 -0.769693983288E-01
4654+ -0.779515668834E-01 -0.789460897088E-01 -0.799531222067E-01 -0.809728217337E-01
4655+ -0.820053476265E-01 -0.830508612252E-01 -0.841095259001E-01 -0.851815070768E-01
4656+ -0.862669722613E-01 -0.873660910672E-01 -0.884790352418E-01 -0.896059786926E-01
4657+ -0.907470975151E-01 -0.919025700201E-01 -0.930725767613E-01 -0.942573005638E-01
4658+ -0.954569265528E-01 -0.966716421821E-01 -0.979016372638E-01 -0.991471039979E-01
4659+ -0.100408237002 -0.101685233343 -0.102978292565 -0.104287616725
4660+ -0.105613410419 -0.106955880819 -0.108315237703 -0.109691693487
4661+ -0.111085463260 -0.112496764818 -0.113925818696 -0.115372848202
4662+ -0.116838079455 -0.118321741420 -0.119824065939 -0.121345287775
4663+ -0.122885644640 -0.124445377240 -0.126024729308 -0.127623947645
4664+ -0.129243282154 -0.130882985884 -0.132543315068 -0.134224529162
4665+ -0.135926890887 -0.137650666269 -0.139396124679 -0.141163538881
4666+ -0.142953185069 -0.144765342910 -0.146600295594 -0.148458329871
4667+ -0.150339736099 -0.152244808290 -0.154173844155 -0.156127145153
4668+ -0.158105016532 -0.160107767385 -0.162135710691 -0.164189163368
4669+ -0.166268446324 -0.168373884501 -0.170505806933 -0.172664546793
4670+ -0.174850441447 -0.177063832504 -0.179305065876 -0.181574491823
4671+ -0.183872465016 -0.186199344588 -0.188555494192 -0.190941282055
4672+ -0.193357081041 -0.195803268705 -0.198280227352 -0.200788344101
4673+ -0.203328010940 -0.205899624794 -0.208503587579 -0.211140306272
4674+ -0.213810192972 -0.216513664963 -0.219251144784 -0.222023060289
4675+ -0.224829844719 -0.227671936767 -0.230549780649 -0.233463826171
4676+ -0.236414528802 -0.239402349743 -0.242427756002 -0.245491220464
4677+ -0.248593221969 -0.251734245383 -0.254914781675 -0.258135327998
4678+ -0.261396387762 -0.264698470713 -0.268042093018 -0.271427777339
4679+ -0.274856052922 -0.278327455674 -0.281842528251 -0.285401820141
4680+ -0.289005887751 -0.292655294495 -0.296350610881 -0.300092414601
4681+ -0.303881290623 -0.307717831280 -0.311602636367 -0.315536313230
4682+ -0.319519476867 -0.323552750020 -0.327636763277 -0.331772155165
4683+ -0.335959572257 -0.340199669270 -0.344493109169 -0.348840563269
4684+ -0.353242711344 -0.357700241733 -0.362213851445 -0.366784246271
4685+ -0.371412140899 -0.376098259018 -0.380843333439 -0.385648106208
4686+ -0.390513328720 -0.395439761842 -0.400428176031 -0.405479351454
4687+ -0.410594078113 -0.415773155967 -0.421017395060 -0.426327615650
4688+ -0.431704648334 -0.437149334183 -0.442662524874 -0.448245082823
4689+ -0.453897881319 -0.459621804670 -0.465417748333 -0.471286619061
4690+ -0.477229335046 -0.483246826061 -0.489340033611 -0.495509911080
4691+ -0.501757423879 -0.508083549605 -0.514489278189 -0.520975612060
4692+ -0.527543566296 -0.534194168789 -0.540928460410 -0.547747495168
4693+ -0.554652340384 -0.561644076854 -0.568723799026 -0.575892615170
4694+ -0.583151647555 -0.590502032628 -0.597944921194 -0.605481478601
4695+ -0.613112884922 -0.620840335145 -0.628665039364 -0.636588222969
4696+ -0.644611126843 -0.652735007563 -0.660961137595 -0.669290805499
4697+ -0.677725316138 -0.686265990881 -0.694914167820 -0.703671201981
4698+ -0.712538465541 -0.721517348046 -0.730609256640 -0.739815616284
4699+ -0.749137869988 -0.758577479043 -0.768135923253 -0.777814701177
4700+ -0.787615330366 -0.797539347612 -0.807588309192 -0.817763791119
4701+ -0.828067389400 -0.838500720290 -0.849065420556 -0.859763147739
4702+ -0.870595580426 -0.881564418518 -0.892671383510 -0.903918218768
4703+ -0.915306689813 -0.926838584608 -0.938515713849 -0.950339911262
4704+ -0.962313033899 -0.974436962444 -0.986713601519 -0.999144879999
4705+ -1.01173275132 -1.02447919382 -1.03738621102 -1.05045583202
4706+ -1.06369011177 -1.07709113143 -1.09066099875 -1.10440184836
4707+ -1.11831584215 -1.13240516963 -1.14667204832 -1.16111872405
4708+ -1.17574747140 -1.19056059404 -1.20556042514 -1.22074932774
4709+ -1.23612969515 -1.25170395138 -1.26747455149 -1.28344398205
4710+ -1.29961476157 -1.31598944086 -1.33257060353 -1.34936086640
4711+ -1.36636287992 -1.38357932869 -1.40101293183 -1.41866644353
4712+ -1.43654265344 -1.45464438722 -1.47297450699 -1.49153591181
4713+ -1.51033153822 -1.52936436073 -1.54863739230 -1.56815368494
4714+ -1.58791633018 -1.60792845961 -1.62819324549 -1.64871390123
4715+ -1.66949368200 -1.69053588532 -1.71184385157 -1.73342096469
4716+ -1.75527065267 -1.77739638825 -1.79980168949 -1.82249012045
4717+ -1.84546529176 -1.86873086133 -1.89229053500 -1.91614806721
4718+ -1.94030726167 -1.96477197208 -1.98954610282 -2.01463360968
4719+ -2.04003850057 -2.06576483630 -2.09181673130 -2.11819835439
4720+ -2.14491392959 -2.17196773688 -2.19936411304 -2.22710745243
4721+ -2.25520220787 -2.28365289145 -2.31246407544 -2.34164039311
4722+ -2.37118653967 -2.40110727316 -2.43140741540 -2.46209185289
4723+ -2.49316553782 -2.52463348898 -2.55650079282 -2.58877260443
4724+ -2.62145414856 -2.65455072067 -2.68806768803 -2.72201049075
4725+ -2.75638464292 -2.79119573374 -2.82644942863 -2.86215147043
4726+ -2.89830768056 -2.93492396027 -2.97200629181 -3.00956073973
4727+ -3.04759345215 -3.08611066202 -3.12511868851 -3.16462393830
4728+ -3.20463290697 -3.24515218042 -3.28618843625 -3.32774844527
4729+ -3.36983907289 -3.41246728070 -3.45564012799 -3.49936477325
4730+ -3.54364847583 -3.58849859752 -3.63392260419 -3.67992806748
4731+ -3.72652266650 -3.77371418957 -3.82151053597 -3.86991971777
4732+ -3.91894986162 -3.96860921064 -4.01890612632 -4.06984909042
4733+ -4.12144670695 -4.17370770414 -4.22664093650 -4.28025538686
4734+ -4.33456016846 -4.38956452707 -4.44527784318 -4.50170963416
4735+ -4.55886955649 -4.61676740805 -4.67541313036 -4.73481681096
4736+ -4.79498868571 -4.85593914122 -4.91767871723 -4.98021810908
4737+ -5.04356817017 -5.10773991447 -5.17274451901 -5.23859332648
4738+ -5.30529784778 -5.37286976458 -5.44132093197 -5.51066338106
4739+ -5.58090932163 -5.65207114476 -5.72416142551 -5.79719292554
4740+ -5.87117859577 -5.94613157906 -6.02206521282 -6.09899303162
4741+ -6.17692876983 -6.25588636415 -6.33587995617 -6.41692389487
4742+ -6.49903273905 -6.58222125974 -6.66650444248 -6.75189748964
4743+ -6.83841582248 -6.92607508328 -7.01489113724 -7.10488007434
4744+ -7.19605821096 -7.28844209145 -7.38204848945 -7.47689440906
4745+ -7.57299708580 -7.67037398730 -7.76904281379 -7.86902149827
4746+ -7.97032820643 -8.07298133619 -8.17699951691 -8.28240160820
4747+ -8.38920669835 -8.49743410226 -8.60710335889 -8.71823422818
4748+ -8.83084668746 -8.94496092711 -9.06059734569 -9.17777654431
4749+ -9.29651932020 -9.41684665950 -9.53877972918 -9.66233986795
4750+ -9.78754857627 -9.91442750515 -10.0429984439 -10.1732833067
4751+ -10.3053041175 -10.4390829942 -10.5746421304 -10.7120037766
4752+ -10.8511902190 -10.9922237566 -11.1351266764 -11.2799212272
4753+ -11.4266295902 -11.5752738480 -11.7258759511 -11.8784576819
4754+ -12.0330406154 -12.1896460784 -12.3482951041 -12.5090083844
4755+ -12.6718062191 -12.8367084608 -13.0037344570 -13.1729029870
4756+ -13.3442321965 -13.5177395259 -13.6934416362 -13.8713543283
4757+ -14.0514924583 -14.2338698480 -14.4184991889 -14.6053919419
4758+ -14.7945582299 -14.9860067254 -15.1797445311 -15.3757770542
4759+ -15.5741078742 -15.7747386035 -15.9776687403 -16.1828955157
4760+ -16.3904137312 -16.6002155899 -16.8122905198 -17.0266249881
4761+ -17.2432023084 -17.4620024391 -17.6830017746 -17.9061729270
4762+ -18.1314845009 -18.3589008597 -18.5883818846 -18.8198827259
4763+ -19.0533535476 -19.2887392652 -19.5259792779 -19.7650071954
4764+ -20.0057505605 -20.2481305680 -20.4920617822 -20.7374518527
4765+ -20.9842012313 -21.2322028915 -21.4813420515 -21.7314959047
4766+ -21.9825333587 -22.2343147854 -22.4866917863 -22.7395069756
4767+ -22.9925937839 -23.2457762882 -23.4988690703 -23.7516771105
4768+ -24.0039957191 -24.2556105132 -24.5062974431 -24.7558228753
4769+ -25.0039437369 -25.2504077302 -25.4949536218 -25.7373116138
4770+ -25.9772038034 -26.2143447360 -26.4484420730 -26.6791971819
4771+ -26.9063070769 -27.1294602789 -27.3483519672 -27.5626903829
4772+ -27.7719665532 -27.9765569609 -28.1740481625 -28.3612623456
4773+ -28.5411910965 -28.7157646026 -28.8840494793 -29.0460438002
4774+ -29.2015059739 -29.3502183357 -29.4919776604 -29.6265847183
4775+ -29.7538520630 -29.8736055161 -29.9856868833 -30.0899564464
4776+ -30.1862954484 -30.2746085609 -30.3548263321 -30.4269076066
4777+ -30.4908419022 -30.5466517209 -30.5943947724 -30.6341660697
4778+ -30.6660998777 -30.6903714661 -30.7071986147 -30.7168428591
4779+ -30.7196104031 -30.7158526445 -30.7059662756 -30.6903928831
4780+ -30.6696179872 -30.6441694381 -30.6146150967 -30.5815596972
4781+ -30.5456407748 -30.5075235671 -30.4678947167 -30.4274546204
4782+ -30.3869082529 -30.3469542200 -30.3082718212 -30.2715058102
4783+ -30.2372485058 -30.2060189331 -30.1782384624 -30.1542028008
4784+ -30.1340478716 -30.1177179503 -30.1049026076 -30.0950341320
4785+ -30.0871613879 -30.0801780141 -30.0738500694 -30.0680896888
4786+ -30.0628188469 -30.0580018355 -30.0535686536 -30.0494667609
4787+ -30.0456405375 -30.0420387803 -30.0386144876 -30.0353269058
4788+ -30.0321436171 -30.0290429129 -30.0260161581 -30.0230697709
4789+ -30.0202262970 -30.0175239775 -30.0150137190 -30.0127546360
4790+ -30.0107981094 -30.0091915038 -30.0079147003 -30.0069051317
4791+ -30.0060710840 -30.0053029068 -30.0046205298 -30.0040312326
4792+ -30.0035039851 -30.0030426788 -30.0026365663 -30.0022805302
4793+ -30.0019688109 -30.0016964272 -30.0014588623 -30.0012520615
4794+ -30.0010723889 -30.0007919083 -30.0005824716 -30.0004266961
4795+ -30.0003112940 -30.0002261473 -30.0001635825 -30.0001178034
4796+ -30.0000844500 -30.0000602557 -30.0000427842 -30.0000302250
4797+ -30.0000212399 -30.0000148431 -30.0000103117 -30.0000071190
4798+ -30.0000048815 -30.0000033227 -30.0000022433 -30.0000015006
4799+ -30.0000009936 -30.0000006497 -30.0000004188 -30.0000002651
4800+ -30.0000001639 -30.0000000983 -30.0000000563 -30.0000000300
4801+ -30.0000000140 -30.0000000045 -29.9999999993 -29.9999999966
4802+ -29.9999999955 -29.9999999953 -29.9999999956 -29.9999999961
4803+ -29.9999999966 -29.9999999972 -29.9999999977 -29.9999999982
4804+ -29.9999999985 -29.9999999989 -29.9999999991 -29.9999999993
4805+ -29.9999999995 -29.9999999996 -29.9999999997 -29.9999999998
4806+ -29.9999999998 -29.9999999999 -29.9999999999 -29.9999999999
4807+ -29.9999999999 -30.0000000000 -30.0000000000 -30.0000000000
4808+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4809+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4810+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4811+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4812+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4813+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4814+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4815+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4816+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4817+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4818+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4819+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4820+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4821+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4822+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4823+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4824+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4825+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4826+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4827+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4828+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4829+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4830+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4831+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4832+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4833+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4834+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4835+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4836+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4837+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4838+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4839+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4840+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4841+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4842+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4843+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4844+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4845+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4846+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4847+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4848+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4849+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4850+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4851+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4852+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4853+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4854+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4855+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4856+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4857+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4858+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4859+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4860+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4861+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4862+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4863+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4864+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4865+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4866+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4867+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4868+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4869+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4870+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4871+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4872+ -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
4873+ Down Pseudopotential follows (l on next line)
4874+ 3
4875+ -0.107149210866E-04 -0.215647528627E-04 -0.325507900762E-04 -0.436754183009E-04
4876+ -0.549395179543E-04 -0.663456856534E-04 -0.778950904275E-04 -0.895898728082E-04
4877+ -0.101431725821E-03 -0.113422536828E-03 -0.125564173289E-03 -0.137858532184E-03
4878+ -0.150307536104E-03 -0.162913128839E-03 -0.175677279408E-03 -0.188601984719E-03
4879+ -0.201689262162E-03 -0.214941156460E-03 -0.228359740913E-03 -0.241947109373E-03
4880+ -0.255705385072E-03 -0.269636719304E-03 -0.283743289134E-03 -0.298027296475E-03
4881+ -0.312490974413E-03 -0.327136584268E-03 -0.341966411135E-03 -0.356982776480E-03
4882+ -0.372188024182E-03 -0.387584529304E-03 -0.403174698174E-03 -0.418960968280E-03
4883+ -0.434945806071E-03 -0.451131706442E-03 -0.467521201466E-03 -0.484116851038E-03
4884+ -0.500921247470E-03 -0.517937017003E-03 -0.535166820502E-03 -0.552613346785E-03
4885+ -0.570279323029E-03 -0.588167509931E-03 -0.606280703030E-03 -0.624621733644E-03
4886+ -0.643193462417E-03 -0.661998796463E-03 -0.681040674760E-03 -0.700322067764E-03
4887+ -0.719845990381E-03 -0.739615495070E-03 -0.759633670736E-03 -0.779903641263E-03
4888+ -0.800428577704E-03 -0.821211687472E-03 -0.842256213797E-03 -0.863565450605E-03
4889+ -0.885142722970E-03 -0.906991404004E-03 -0.929114908900E-03 -0.951516691304E-03
4890+ -0.974200254355E-03 -0.997169142100E-03 -0.102042694236E-02 -0.104397728915E-02
4891+ -0.106782386447E-02 -0.109197039095E-02 -0.111642064325E-02 -0.114117844479E-02
4892+ -0.116624765874E-02 -0.119163220352E-02 -0.121733604829E-02 -0.124336320869E-02
4893+ -0.126971774876E-02 -0.129640378678E-02 -0.132342549699E-02 -0.135078709771E-02
4894+ -0.137849286250E-02 -0.140654712570E-02 -0.143495426805E-02 -0.146371872584E-02
4895+ -0.149284499760E-02 -0.152233763364E-02 -0.155220124000E-02 -0.158244048368E-02
4896+ -0.161306009267E-02 -0.164406484728E-02 -0.167545959298E-02 -0.170724923781E-02
4897+ -0.173943874559E-02 -0.177203314838E-02 -0.180503753791E-02 -0.183845707193E-02
4898+ -0.187229697243E-02 -0.190656252480E-02 -0.194125908630E-02 -0.197639207639E-02
4899+ -0.201196698467E-02 -0.204798937111E-02 -0.208446486213E-02 -0.212139915942E-02
4900+ -0.215879803364E-02 -0.219666732544E-02 -0.223501295559E-02 -0.227384091531E-02
4901+ -0.231315726979E-02 -0.235296816308E-02 -0.239327981549E-02 -0.243409852716E-02
4902+ -0.247543067358E-02 -0.251728271499E-02 -0.255966119158E-02 -0.260257272215E-02
4903+ -0.264602401331E-02 -0.269002185538E-02 -0.273457312248E-02 -0.277968477448E-02
4904+ -0.282536386127E-02 -0.287161752087E-02 -0.291845297985E-02 -0.296587755640E-02
4905+ -0.301389865999E-02 -0.306252379544E-02 -0.311176055996E-02 -0.316161664597E-02
4906+ -0.321209984516E-02 -0.326321804474E-02 -0.331497923188E-02 -0.336739149433E-02
4907+ -0.342046302276E-02 -0.347420210810E-02 -0.352861714809E-02 -0.358371664578E-02
4908+ -0.363950920862E-02 -0.369600355709E-02 -0.375320851562E-02 -0.381113302404E-02
4909+ -0.386978613488E-02 -0.392917700901E-02 -0.398931492910E-02 -0.405020929181E-02
4910+ -0.411186961069E-02 -0.417430552071E-02 -0.423752677801E-02 -0.430154326207E-02
4911+ -0.436636497321E-02 -0.443200204100E-02 -0.449846472245E-02 -0.456576340083E-02
4912+ -0.463390859238E-02 -0.470291094583E-02 -0.477278124120E-02 -0.484353039724E-02
4913+ -0.491516946873E-02 -0.498770964757E-02 -0.506116227046E-02 -0.513553881359E-02
4914+ -0.521085089902E-02 -0.528711029305E-02 -0.536432891239E-02 -0.544251882361E-02
4915+ -0.552169224146E-02 -0.560186153925E-02 -0.568303924301E-02 -0.576523803590E-02
4916+ -0.584847076323E-02 -0.593275042936E-02 -0.601809020237E-02 -0.610450341919E-02
4917+ -0.619200357988E-02 -0.628060435712E-02 -0.637031959577E-02 -0.646116331228E-02
4918+ -0.655314970302E-02 -0.664629314035E-02 -0.674060817769E-02 -0.683610955269E-02
4919+ -0.693281218743E-02 -0.703073119123E-02 -0.712988186505E-02 -0.723027970106E-02
4920+ -0.733194038664E-02 -0.743487980616E-02 -0.753911404486E-02 -0.764465938928E-02
4921+ -0.775153232993E-02 -0.785974956837E-02 -0.796932801160E-02 -0.808028478209E-02
4922+ -0.819263721838E-02 -0.830640287333E-02 -0.842159952506E-02 -0.853824517309E-02
4923+ -0.865635804216E-02 -0.877595658914E-02 -0.889705950116E-02 -0.901968570078E-02
4924+ -0.914385434827E-02 -0.926958484556E-02 -0.939689683873E-02 -0.952581021961E-02
4925+ -0.965634513158E-02 -0.978852197191E-02 -0.992236139241E-02 -0.100578843060E-01
4926+ -0.101951118890E-01 -0.103340655824E-01 -0.104747670995E-01 -0.106172384244E-01
4927+ -0.107615018182E-01 -0.109075798233E-01 -0.110554952642E-01 -0.112052712528E-01
4928+ -0.113569311926E-01 -0.115104987804E-01 -0.116659980111E-01 -0.118234531832E-01
4929+ -0.119828888980E-01 -0.121443300677E-01 -0.123078019192E-01 -0.124733299942E-01
4930+ -0.126409401571E-01 -0.128106585979E-01 -0.129825118347E-01 -0.131565267203E-01
4931+ -0.133327304455E-01 -0.135111505418E-01 -0.136918148878E-01 -0.138747517132E-01
4932+ -0.140599896025E-01 -0.142475574989E-01 -0.144374847103E-01 -0.146298009143E-01
4933+ -0.148245361598E-01 -0.150217208748E-01 -0.152213858704E-01 -0.154235623447E-01
4934+ -0.156282818876E-01 -0.158355764875E-01 -0.160454785352E-01 -0.162580208276E-01
4935+ -0.164732365755E-01 -0.166911594066E-01 -0.169118233722E-01 -0.171352629517E-01
4936+ -0.173615130576E-01 -0.175906090427E-01 -0.178225867036E-01 -0.180574822871E-01
4937+ -0.182953324970E-01 -0.185361744975E-01 -0.187800459209E-01 -0.190269848732E-01
4938+ -0.192770299384E-01 -0.195302201876E-01 -0.197865951827E-01 -0.200461949818E-01
4939+ -0.203090601492E-01 -0.205752317581E-01 -0.208447513981E-01 -0.211176611833E-01
4940+ -0.213940037560E-01 -0.216738222957E-01 -0.219571605251E-01 -0.222440627163E-01
4941+ -0.225345736990E-01 -0.228287388663E-01 -0.231266041823E-01 -0.234282161898E-01
4942+ -0.237336220161E-01 -0.240428693821E-01 -0.243560066089E-01 -0.246730826249E-01
4943+ -0.249941469743E-01 -0.253192498247E-01 -0.256484419745E-01 -0.259817748607E-01
4944+ -0.263193005680E-01 -0.266610718362E-01 -0.270071420679E-01 -0.273575653379E-01
4945+ -0.277123964013E-01 -0.280716907013E-01 -0.284355043793E-01 -0.288038942824E-01
4946+ -0.291769179731E-01 -0.295546337376E-01 -0.299371005954E-01 -0.303243783085E-01
4947+ -0.307165273905E-01 -0.311136091165E-01 -0.315156855319E-01 -0.319228194627E-01
4948+ -0.323350745256E-01 -0.327525151367E-01 -0.331752065234E-01 -0.336032147329E-01
4949+ -0.340366066429E-01 -0.344754499734E-01 -0.349198132954E-01 -0.353697660424E-01
4950+ -0.358253785222E-01 -0.362867219261E-01 -0.367538683409E-01 -0.372268907607E-01
4951+ -0.377058630979E-01 -0.381908601939E-01 -0.386819578319E-01 -0.391792327486E-01
4952+ -0.396827626459E-01 -0.401926262026E-01 -0.407089030880E-01 -0.412316739731E-01
4953+ -0.417610205435E-01 -0.422970255129E-01 -0.428397726347E-01 -0.433893467167E-01
4954+ -0.439458336331E-01 -0.445093203379E-01 -0.450798948798E-01 -0.456576464143E-01
4955+ -0.462426652188E-01 -0.468350427063E-01 -0.474348714396E-01 -0.480422451459E-01
4956+ -0.486572587314E-01 -0.492800082964E-01 -0.499105911497E-01 -0.505491058244E-01
4957+ -0.511956520931E-01 -0.518503309834E-01 -0.525132447937E-01 -0.531844971096E-01
4958+ -0.538641928192E-01 -0.545524381306E-01 -0.552493405877E-01 -0.559550090872E-01
4959+ -0.566695538958E-01 -0.573930866672E-01 -0.581257204596E-01 -0.588675697539E-01
4960+ -0.596187504704E-01 -0.603793799884E-01 -0.611495771633E-01 -0.619294623457E-01
4961+ -0.627191574007E-01 -0.635187857257E-01 -0.643284722710E-01 -0.651483435587E-01
4962+ -0.659785277021E-01 -0.668191544269E-01 -0.676703550901E-01 -0.685322627015E-01
4963+ -0.694050119442E-01 -0.702887391955E-01 -0.711835825486E-01 -0.720896818337E-01
4964+ -0.730071786402E-01 -0.739362163388E-01 -0.748769401038E-01 -0.758294969360E-01
4965+ -0.767940356855E-01 -0.777707070747E-01 -0.787596637228E-01 -0.797610601685E-01
4966+ -0.807750528950E-01 -0.818018003543E-01 -0.828414629915E-01 -0.838942032706E-01
4967+ -0.849601856992E-01 -0.860395768552E-01 -0.871325454115E-01 -0.882392621636E-01
4968+ -0.893599000557E-01 -0.904946342079E-01 -0.916436419435E-01 -0.928071028167E-01
4969+ -0.939851986412E-01 -0.951781135176E-01 -0.963860338634E-01 -0.976091484411E-01
4970+ -0.988476483886E-01 -0.100101727248 -0.101371580998 -0.102657408082
4971+ -0.103959409440 -0.105277788541 -0.106612751414 -0.107964506680
4972+ -0.109333265586 -0.110719242036 -0.112122652626 -0.113543716677
4973+ -0.114982656271 -0.116439696283 -0.117915064419 -0.119408991249
4974+ -0.120921710245 -0.122453457818 -0.124004473352 -0.125574999245
4975+ -0.127165280945 -0.128775566989 -0.130406109040 -0.132057161930
4976+ -0.133728983698 -0.135421835629 -0.137135982298 -0.138871691609
4977+ -0.140629234837 -0.142408886671 -0.144210925260 -0.146035632250
4978+ -0.147883292834 -0.149754195795 -0.151648633548 -0.153566902193
4979+ -0.155509301553 -0.157476135227 -0.159467710634 -0.161484339065
4980+ -0.163526335728 -0.165594019799 -0.167687714471 -0.169807747007
4981+ -0.171954448791 -0.174128155375 -0.176329206540 -0.178557946340
4982+ -0.180814723165 -0.183099889789 -0.185413803428 -0.187756825796
4983+ -0.190129323160 -0.192531666402 -0.194964231070 -0.197427397445
4984+ -0.199921550594 -0.202447080433 -0.205004381792 -0.207593854468
4985+ -0.210215903297 -0.212870938212 -0.215559374310 -0.218281631915
4986+ -0.221038136647 -0.223829319485 -0.226655616838 -0.229517470614
4987+ -0.232415328285 -0.235349642962 -0.238320873464 -0.241329484392
4988+ -0.244375946198 -0.247460735264 -0.250584333974 -0.253747230791
4989+ -0.256949920333 -0.260192903451 -0.263476687308 -0.266801785461
4990+ -0.270168717937 -0.273578011321 -0.277030198834 -0.280525820418
4991+ -0.284065422825 -0.287649559697 -0.291278791658 -0.294953686401
4992+ -0.298674818778 -0.302442770888 -0.306258132175 -0.310121499513
4993+ -0.314033477308 -0.317994677587 -0.322005720101 -0.326067232416
4994+ -0.330179850018 -0.334344216412 -0.338560983222 -0.342830810295
4995+ -0.347154365808 -0.351532326368 -0.355965377127 -0.360454211883
4996+ -0.364999533196 -0.369602052495 -0.374262490193 -0.378981575801
4997+ -0.383760048046 -0.388598654982 -0.393498154117 -0.398459312528
4998+ -0.403482906984 -0.408569724070 -0.413720560314 -0.418936222310
4999+ -0.424217526849 -0.429565301050 -0.434980382490 -0.440463619338
5000+ -0.446015870493 -0.451638005715 -0.457330905772 -0.463095462575
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: