=======================================================================
                  SIESTA CHANGES: TOP IS MOST RECENT
=======================================================================


** CHANGES ALONG trunk
-----------------------------------------------------------------------
2017-11-10                                                    trunk-644
Fix lp:1729863 
A small bug fixed in compilation while using -DDEBUG flag.

*Src/m_initwf.F90

-----------------------------------------------------------------------
2017-02-04                                                    trunk-603
Fix lp:1659577 
The DM calculation in evlog, chgbasis, and siesta_tddft is now condensed
into a subroutine compute_tddm. 

*Src/Makefile
*Src/changebasis.F90
*Src/evolg.F90
*Src/m_evolve.F90
*Src/siesta_tddft.F90
*Src/wavefunctions.F90

-----------------------------------------------------------------------
2016-06-23                                                    trunk-525
Merged 4.0-500

* Update list of contributors.
* Electric-field/slab-dipole-correction fix.
* Fix to avoid ps reparametrization in bessel case
* Remove Util/pseudo-xml
* Other minor changes in README files


-----------------------------------------------------------------------
...
...
-----------------------------------------------------------------------
2016-05-29                                                    trunk-504
Update makefile in Util/Gen-basis after ldau inclusion

Some extra modules are needed in Gen-basis

modified:
  Util/Gen-basis/Makefile

-----------------------------------------------------------------------
2016-05-18                                                    trunk-503
Merged fix lp:1582978 (from rel-4.0)

-----------------------------------------------------------------------
2016-05-10                                                    trunk-502
Revise mentions to now-standalone ATOM program. Revert Tests/test.mk.

* The ATOM program is not bundled with Siesta due to licensing
  differences.  Mentions to it throughout the documentation and
  example files have been updated accordingly.

* The file Tests/test.mk has been reverted to the revno 488 version.
  Note that the proper way to run the tests for a given version is
  to descend into the 'Tests' directory directly below the compilation
  directory ('Obj' or other) rather than going to the top-level 'Tests'.

* Syntax changes for compiler complaints reported by Mariella Ippolito
  from CINECA.

* Completion of changes to licensing headers.

modified:
  Docs/siesta.tex
  Examples/README
  Examples/Vps/README
  Src/SiestaXC/vv_vdwxc.F90
  Src/fsiesta_mpi.F90
  Src/write_inp_wannier.F90
  Src/ldau.F
  Src/ldau_specs.f
  Tests/test.mk
  + Header changes in a number of files
  
-----------------------------------------------------------------------
2016-05-05                                                    trunk-501
Fix in 'fat' utility. Write spin info in 'eigfat2plot'

The 'fat' program in Util/COOP computes the projections of specific
band states onto sets of orbitals. Due to an error, the program did
not function correctly when a subset of upper bands was selected with
the '-b' and '-B' flags.

The 'eigfat2plot' utility in Util/Bands now prints an extra field giving
the spin of the state.

modified:
  Util/Bands/eigfat2plot.f90
  Util/COOP/fat.f90
  Util/COOP/main_vars.f90

-----------------------------------------------------------------------
2016-05-03                                                    trunk-500
Fix for handling of geometry info in bands/wfns calculation

The computation of bands and/or wavefunctions in 'siesta_analysis'
requires an initial setup of the k-point sets involved.  These are
input in ad-hoc fdf blocks with two possible options for the scaling:
'pi/a' and 'ReciprocalLatticeVectors'.

The 'pi/a' option needs a lattice constant, which is determined by
issuing an 'fdf_get' call, whereas the reciprocal lattice vector
option triggers a call to 'redcel' to determine the unit cell.

An immediate problem is the absence of lattice constant or unit-cell
information in the fdf file. This may happen, for example, when the
'use-struct-file' or 'use-save-xv' options are in effect. The program
would either stop when not finding the lattice constant, or, worse,
would implicitly compute a zero unit cell and crash later with
linear-algebra related errors such as faulty Cholesky
decompositions. (The zero-unit-cell case is an unfortunate consequence
of the implicit convention that an absent unit cell means that the
user wants an automatic one.)

A second problem is that, even if the required geometry information is
given in the fdf file, the band/wfn calculation might be happening at
the end of a cell relaxation or MD run, so the actual unit cell is not
that in the fdf file. This should be considered bad practice, but it
might happen.

The minimal solution adopted (encoded in routine get_kpoints_scale)
consists of attempting to read the lattice constant for the 'pi/a'
case, as before, but to use the unit-cell information in the
'siesta_geom' module for the reciprocal-lattice-vectors case.  This
information is not enough for the 'pi/a' option, since no record is
kept of any centering options for cubic systems, so 'a' cannot be
directly determined from the volume of the unit cell.  Note that the
setup information is handled at the beginning of the run (during the
initialization in 'siesta_init'.

A message is printed to warn the user about possible inconsistencies
if the unit-cell changes by the end of the run. In any case, the
practice of computing bands or wavefunctions at the end of a
geometry-changing run should be discouraged.

added:
  Src/get_kpoints_scale.f90
modified:
  Src/Makefile
  Src/bands.F
  Src/writewave.F
	
-----------------------------------------------------------------------
2016-05-02                                                    trunk-499
Allowed neglecting KB projectors with LDA+U

- The LDA+U projectors are now not dependent
  on the NeglNonOverlapInt option which only
  deals with KB projectors.

- Streamlined calculation of rmaxo/rmaxkb in
  hsparse, ldau, nlefsm,

  Basically they looped over the entire structure
  to find only the species orbital/projector
  ranges.
  Thus it is more efficient in those routines.

modified:
  Src/Makefile
  Src/hsparse.F
  Src/ldau.F
  Src/nlefsm.f
  Src/siesta_init.F
  Src/state_init.F

-----------------------------------------------------------------------
2016-05-02                                                    trunk-498
Fixed imports

modified:
  Src/ldau_specs.f
  Src/m_cite.F90

-----------------------------------------------------------------------
2016-05-01                                                    trunk-497
Added LDA+U citation of the implementation paper

modified:
  Src/ldau_specs.f
  Src/m_cite.F90

-----------------------------------------------------------------------
2016-04-29                                                    trunk-495
Fixed rmaxh for correct range of Hamiltonian elements

- The rmaxh was too short in case of LDAU projectors
  bigger than the KB projectors.

  This fixes the calculation of the correct rmaxh
  when the LDAU projectors are used.

modified:
  Src/atomlist.f
  Src/siesta_init.F

-----------------------------------------------------------------------
2016-04-29                                                    trunk-494
Cleaned LDA+U

- Moved H_ldau to sparse_matrices.
  This makes the global memory of "standard" matrix
  elements common in the common module.
  This requires that it is passed on every call to
  Hubbard_term.
  
- Moved several saved variables in the hubbard_term
  to the module level.
  This makes it easier to distinguish global variables.

- Removed all commented out debugging statements.

- Improved the logic of the options in the LDA+U implementation

  REMARK: The logic is exactly the same but clearer from the
          input options point of view.

  1. ldau_init is now forced to .true. if ldau_shift is true.
  2. There is no need to store the current geometry setup
     Now the H_ldau is reset when state_init is called.

- Removed a print-out of:

  "Adding Hamiltonian contribution."

  This is implicit in each SCF cycle (from after the
  initial occupations have been calculated).

  I have tested this on an MD run as well.

modified:
  Src/Makefile
  Src/final_H_f_stress.F
  Src/ldau.F
  Src/ldau_specs.f
  Src/scfconvergence_test.F
  Src/setup_hamiltonian.F
  Src/sparse_matrices.F
  Src/state_init.F

-----------------------------------------------------------------------
2016-04-29                                                    ldau-499
Cleaned up the ldau modules by moving variables

- The ldau_specs module had several variables defined
  as module variables while they where only needed
  in one subroutine.
  They have been moved there.

  Now also the projector arrays are deallocated after
  having created the actual projectors used.

  Thus saving additional memory.

modified:
  Src/ldau.F
  Src/ldau_specs.f

-----------------------------------------------------------------------
2016-04-28                                                    ldau-498
Removed _tmp/tmp_ in ldau shells, removed double references

- Removed all double references in the code of ldaushells
  from the derived type.

- Changed tmp names to standard conforming names.
  This is more intuitive to grasp.

modified:
  Src/Makefile
  Src/basis_types.f
  Src/ldau_specs.f

-----------------------------------------------------------------------
2016-04-28                                                    ldau-497
Die if requesting non-existing PAO LDAU projectors

- If the requested quantum number LDAU is not found
  in the list of PAO objects then siesta will die.

modified:
  Src/ldau_specs.f

-----------------------------------------------------------------------
2016-04-28                                                    ldau-496
Cosmetic update of ldau code

- Easier logistic in the loops in ldau

- Cosmetic changes for the interface of hubbard_term which
  now passes the local number of orbitals.

- Beautification of the DEBUG_PAO print-out.

modified:
  Src/final_H_f_stress.F
  Src/hsparse.F
  Src/ldau.F
  Src/register_rfs.F90
  Src/setup_hamiltonian.F

-----------------------------------------------------------------------
2016-04-28                                                    ldau-495
Fix possible double counting of Hldau

- If recompute_H_after_scf it is required that
  we use H_tmp in final_H_f_stress.

  This is now fixed.

modified:
  Src/final_H_f_stress.F

-----------------------------------------------------------------------
2016-04-28                                                    ldau-494
Almost fixed parallel version

- Implemented Alberto's fixes for the basis specifications
  in parallel with some minor corrections.
  
  This is because the basis_specs are only on Node == 0.
  However, the specifications should be broadcasted
  to the other nodes.

  This is now performed by dublicating the LDAU radial
  functions to the other nodes and retaining the
  data on all nodes.

  I have added the remaining Bcast which where required.

- Added bcast of the LDAU variables in broadcast_basis.
  Several variables are required Bcasted.

- Reduced memory requirements slightly

- Reverted globalization of DEldau as entered by
  Nick in r488.
  This is not needed as the DEldau is calculated
  from globalized occupations.

- Removed un-needed ldaushell in the basis_species.
  Only the *_tmp is used so we do not need the second.

- Fix for "SpinPolarized false" regarding occupations

- TODO move Hldau to sparse_matrices such that it may
  be calculated "one time" and stored in a generic place.

modified:
  Src/Makefile
  Src/atm_types.f
  Src/basis_types.f
  Src/broadcast_basis.F
  Src/final_H_f_stress.F
  Src/hsparse.F
  Src/ldau.F
  Src/ldau_specs.f
  Src/setup_hamiltonian.F

-----------------------------------------------------------------------
2016-04-28                                                    ldau-493
Fixed r491 with rofi array size

- Correspondance with Javier brought this
  fix.

modified:
  Src/ldau_specs.f

-----------------------------------------------------------------------
2016-04-27                                                    ldau-492
Added die when user reads basis + LDAU

- Reading the basis from NetCDF or ascii files
  is not allowed when using LDA+U.

  This feature is simply not implemented yet.
  (but could be)

modified:
  Src/initatom.f

-----------------------------------------------------------------------
2016-04-27                                                    ldau-491
Fixes for pointers and possible seg-fault

- Pointers in ldau.F where only nullified in
  the first run. However, they should be
  in each SCF.
  Fixed.

- Print-out of LDAU parameters in the basis-specification
  This makes easy identification of the used LDA+U
  basis.

- A possible seg-fault for accessing array elements beyond
  dimension was found in the ldau_specs.f.

  A possible fix has been added.

  TODO: Check validity for other systems.
  For Javier's initial test MnO the results are identical.

modified:
  Src/basis_types.f
  Src/ldau.F
  Src/ldau_specs.f

-----------------------------------------------------------------------
2016-04-25                                                    ldau-490
Second patches by Nick Andersen

* The files that have been added or modified are:

- hsparse.F:             Call to basis_parameters only if switch_ldau
- matel_registry.F90:    Cosmetic changes on show_pool
- register_rfs.F90:      Writing of part of the output only done if
                         the directive DEBUG_PAO is switched
- siesta_init.F:         Remove the call to test_register 

-----------------------------------------------------------------------
2016-04-25                                                    ldau-488
First patches by Nick Andersen

* The files that have been added or modified are:

- final_H_f_stress.F:    Globalization of the sum of DEldau added
- ldau.F:                Writing on some of the output only on Node 0,
                         globalization of dnmax
- siesta_init.F:         Initialization of Eldau and DEldau

-----------------------------------------------------------------------
2016-04-25                                                    ldau-487
Corrected version in the CHANGES file

-----------------------------------------------------------------------
2016-04-25                                                    ldau-486
Calculation of the Hubbard-like matrix elements, and their contribution
to forces and stresses

* The files that have been added or modified are: 

- atmfuncs.f:       New function ldau_gindex added
- basis_io.F:       The information of the LDA+U projectors is dumped into 
                    the corresponding files
- compute_energies.F90:  The Hubbard energy is added to the total energy
- compute_max_diff.F:    The maximum difference between the input and the 
                         output density matrices is saved in the public
                         variable dDmax_current, that is required within
                         the hubbard_term subroutine in order to know
                         whether the population of the LDA+U projector is 
                         updated or not.
- final_H_f_stress.F:    Last call to hubbard_term in order to compute the
                         forces and stresses once the self-consistency is 
                         achieved
- hsparse.F:        The eventual overlap with the LDA+U projectors is 
                    considered, as it was done with the KB projectors
- initatom.f:       Call to the subroutine ldau_proj_gen to generate the
                    LDA+U projectors
- m_energies.F90:   The Hubbard energies are included in the variables
- scfconvergence_test.F: The criterion on the convergence of the population of
                         the LDA+U is added to the requirements to determine
                         whether the SCF is achieved
- setup_hamiltonian.F:   Call to hubbard_term to add the contribution of the
                         Hubbard-like terms to the Hamiltonian
- write_subs.F:     The information of the Hubbard like energies is dumped
- ldau.F:           New subroutine that computes the Hubbard-like 
                    contribution to matrix elements, forces, and stresses
- Makefile:         Customaty changes to include the new files and dependencies
- Docs/siesta.tex:  A new section on the LDA+U calculations has been written

-----------------------------------------------------------------------
2016-02-22                                                    ldau-485
Generation of the LDA+U projections compatible with new matel

* The files that have been added or modified are: 
- ldau_specs.f:     Module ldau_specs to read the input file,
                    generate the projectors and populate the derived types.
- atm_transfer.f:   Call to populate_species_info_ldau to populate the 
                    variables in the species derived type related with the 
                    LDA+U projectors.
- atm_types.f:      New variables related with the LDA+U projectors 
                    defined in the derived type species. 
                    Essentially, they are a copy of the corresponding variables
                    for the KB projector
- atom.F:           The following subroutines declared public: 
                    schro_eq, rc_vs_e, build_vsoft
- basis_specs.f:    The subroutine label2species is declared public.
                    It will be used afterwards in read_ldau_specs.
- basis_types.f:    New derived type ldaushell_t defined, and the 
                    corresponding subroutines for initialization, print, etc 
                    are introduced.
- broadcast_basis.F:The broadcast of the species derived type has been 
                    generalized to include also the corresponding variables 
                    related with the LDA+U projectors
- initatom.f:       Here we read the info related with the LDA+U projs 
                    in the fdf file (calling the subroutine read_ldau_specs) 
                    and we call the subroutine in charge of generating them
                    (ldau_proj_gen)
- register_rfs.F90: Subroutine modified to include the LDA+U projectors 
                    in the pool
- Makefile:         Customaty changes to include the new files and dependencies


added:
  Src/ldau_specs.f
modified:
  Src/Makefile
  Src/atm_transfer.f
  Src/atm_types.f
  Src/atom.F
  Src/basis_specs.f
  Src/basis_types.f
  Src/broadcast_basis.F
  Src/initatom.f
  Src/register_rfs.F90


-----------------------------------------------------------------------
2016-03-21                                                    trunk-493
Merged Ramon SO changes + fixes

- Merged Ramon's SO changes.

- Changed alot of interfaces from Ramon initial
  commit.
  This is to better conform with the transiesta merge
  to happen shortly.

- Clarified a lot of output for the user when performing
  SO / non-collinear calculations.

- Reduce memory usage from Ramon's version considerably in
  terms of the sparsity pattern.
  In Ramon's implementation the H_kin/H_vkb/H_so where
  full spin-matrices.
  However, this is not needed.
  H_kin/H_vkb == same for all spin
  H_so == only has 6 components

- Fixed calculation of total energy if one requests mixing charge

- Fixed potential memory overflow in dfscf where V was
  allocated on the stack.

- Moved spin-spiral options to m_spin module

- Enabled one flag for controlling the spin-configuration

    Magnetization non-polarized/polarized/non-collinear/spin-orbit

  with some variations of short-hands.
  These are merely added for consistency

    Magnetization NP/P/NC/SO

  This removes the obscure choice of several options for _one_
  selection of computational type.

  For backwards compatibility the old flags still exist and are
  the basis for the initial option for Magnetization.

- Diagonalization options moved to a common module
  TODO extend this to streamline r/c-diag.
  TODO externalize the diagonalization modules for easier
       abstraction.

removed:
  Src/m_diagon.F
added:
  Src/diag3g.F
  Src/diag3k.F
  Src/m_diagon_opt.F90
  Src/moments.F
  Src/pdos2g.F
  Src/pdos2k.F
  Src/pdos3g.F
  Src/pdos3k.F
  Src/spinorbit.f
  Tests/SpinOrbit/
  Tests/SpinOrbit/FePt-L1_0-so/
  Tests/SpinOrbit/FePt-L1_0-so/README
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/x-axis/
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/x-axis/Fe.psf
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/x-axis/Pt.psf
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/x-axis/fept.fdf
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/x-axis/fept.out
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/y-axis/
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/y-axis/Fe.psf
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/y-axis/Pt.psf
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/y-axis/fept.fdf
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/y-axis/fept.out
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/z-axis/
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/z-axis/Fe.psf
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/z-axis/Pt.psf
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/z-axis/fept.fdf
  Tests/SpinOrbit/FePt-L1_0-so/X-alignment/z-axis/fept.out
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/x-axis/
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/x-axis/Fe.psf
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/x-axis/Pt.psf
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/x-axis/fept.fdf
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/x-axis/fept.out
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/y-axis/
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/y-axis/Fe.psf
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/y-axis/Pt.psf
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/y-axis/fept.fdf
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/y-axis/fept.out
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/z-axis/
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/z-axis/Fe.psf
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/z-axis/Pt.psf
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/z-axis/fept.fdf
  Tests/SpinOrbit/FePt-L1_0-so/Z-alignment/z-axis/fept.out
  Tests/SpinOrbit/FePt-L1_0-so/config
  Tests/SpinOrbit/FePt-L1_0-so/makefile
  Tests/SpinOrbit/FePt-L1_0-so/script-fept.sh
  Tests/SpinOrbit/Pt2-so-bis/
  Tests/SpinOrbit/Pt2-so-bis/README
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/x-axis/
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/x-axis/Pt.psf
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/x-axis/pt2.fdf
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/x-axis/pt2.out
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/y-axis/
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/y-axis/Pt.psf
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/y-axis/pt2.fdf
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/y-axis/pt2.out
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/z-axis/
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/z-axis/Pt.psf
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/z-axis/pt2.fdf
  Tests/SpinOrbit/Pt2-so-bis/X-alignment/z-axis/pt2.out
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/x-axis/
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/x-axis/Pt.psf
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/x-axis/pt2.fdf
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/x-axis/pt2.out
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/y-axis/
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/y-axis/Pt.psf
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/y-axis/pt2.fdf
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/y-axis/pt2.out
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/z-axis/
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/z-axis/Pt.psf
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/z-axis/pt2.fdf
  Tests/SpinOrbit/Pt2-so-bis/Z-alignment/z-axis/pt2.out
  Tests/SpinOrbit/Pt2-so-bis/config
  Tests/SpinOrbit/Pt2-so-bis/makefile
  Tests/SpinOrbit/Pt2-so-bis/script-pt2.sh
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/bands.F
  Src/born_charge.F
  Src/cdiag.F
  Src/compute_dm.F
  Src/compute_energies.F90
  Src/compute_norm.F
  Src/compute_rhog.F
  Src/dfscf.f
  Src/dhscf.F
  Src/diag2g.F
  Src/diag2k.F
  Src/diagg.F
  Src/diagk.F
  Src/diagon.F
  Src/final_H_f_stress.F
  Src/grdsam.F
  Src/initatom.f
  Src/iodm_netcdf.F90
  Src/ioeig.f
  Src/local_DOS.F
  Src/m_broyden_mixing.f
  Src/m_energies.F90
  Src/m_fire_mixing.f
  Src/m_pulay.F90
  Src/m_spin.F90
  Src/mixer.F
  Src/new_dm.F
  Src/pdos.F
  Src/periodic_table.f
  Src/post_scf_work.F
  Src/projected_DOS.F
  Src/rdiag.F
  Src/reoptical.F
  Src/rhoofd.F
  Src/save_density_matrix.F
  Src/scfconvergence_test.F
  Src/setup_H0.F
  Src/setup_hamiltonian.F
  Src/siesta_analysis.F
  Src/siesta_init.F
  Src/sparse_matrices.F
  Src/state_analysis.F
  Src/state_init.F
  Src/vmat.F
  Src/write_subs.F
  Src/writewave.F
  Src/xc.f

-----------------------------------------------------------------------
2016-03-07                                                    trunk-492
Initial k-displacements are now 0

modified:
  Src/kgridinit.F
  Src/kpoint_grid.F90
  Src/kpoint_pdos.F90
  Src/m_ts_kpoints.F90
  Src/setup_kscell.F

-----------------------------------------------------------------------
2016-03-07                                                    trunk-491
Fixed k-grid displacement reading

- There was no need for not reading 0 as a displacement
  in the kgrid_monkhorst_pack block.

  Previously siesta would error when:
   %block kgrid_monkhorst_pack
    1 0 0 0
    0 1 0 0
    0 0 1 0
   %endblock
  while now this will works

modified:
  Src/kgridinit.F
  Src/kpoint_grid.F90
  Src/kpoint_pdos.F90
  Src/m_ts_kpoints.F90
  Src/setup_kscell.F

-----------------------------------------------------------------------
2016-03-05                                                    trunk-490
Automatic reading of #atoms, and species without denoting count

- The NumberOfSpecies flag is now not needed any more.

  This reflects an easier usage as it first reads the lines
  in the ChemicalSpeciesLabel block and counts the number
  of species from this block.

  A small bug has also been fixed in that the first
  number is now correctly inserted in the slot
  that it intents.

  The NumberOfSpecies flag still has precedence in case
  you want a reduced number of elements.

  +manual

- The NumberOfAtoms is now not needed any more.

  Similar to the NumberOfSpecies flag we now count the
  number of atoms from the block by default.

  The NumberOfAtoms flag still has precedence in case
  you want a reduced number of atoms.

  +manual

- Output of chemical species is now more concise and aligned.
  This is just a visual change.

modified:
  Docs/siesta.tex
  Src/chemical.f
  Src/coor.F

-----------------------------------------------------------------------
2016-03-03                                                    trunk-489
[merge] Tests fix, REFERENCE_DIR and SIESTA

- After having build siesta in the Obj directory
  a natural procedure would be to go to Tests
  and run the tests:
      make
  However, the default SIESTA is not pointing to
  the Obj.
  Further the REFERENCE_DIR is not pointing to the
  correct reference directory when in the top Tests
  directory.

  Hence the procedure is:
  1. cd Obj
  2. ../Src/obj_setup.sh
  3. <create arch.make>
  4. make
  5. cd ../Tests/
  6. make

modified:
  Tests/test.mk

2016-02-26                                                    trunk-488
Add generic citation helper

- It was previously difficult to figure
  out which papers where of significance when
  using SIESTA.
  This addition adds the capability of on-the-fly
  creation of .bib files for users to easier find
  the papers that are being used in their corresponding
  run.

added:
  Src/m_cite.F90
modified:
  Src/Makefile
  Src/m_efield.F
  Src/siesta_init.F
  Src/ts_init.F90

-----------------------------------------------------------------------
2016-02-17                                                    trunk-486
Fixed auxiliary array usage for ksv and optical

- ksv:
  This routine used Hkin as a work-array for calculating
  certain quantities for polarization calculations.

  This may lead to inadvertently destroying reliance
  across calculations which are not intended.

  This bug has been fixed by introducing the allocation
  of the work-array in the ksv routine, directly.

  Furthermore, we have explicitly added the => null()
  when initializing several of the pointers.

- optical:
  This routine used Eold, Dold and Hkin as
  work-arrays for calculating optical properties.

  We have fixed these issues and moved allocation into
  the routine.

  Furthermore there were several "saved" variables
  which were not needed to be saved.

  All variables were re-calculated on each entry-point.
  This has also been fixed.

  Streamlined the algorithm for calculating transition-rates.

- phirphi_opt:
  Reduced memory by ENDLESS.
  It allocated an enourmous amount of memory of which only 1 element
  was used at a time.
  If the full matrix is going to be needed, then re-instantiate the
  comments !N.
  The si-optical test yields the same result and I see no problem
  in the current algorithm.

modified:
  Src/born_charge.F
  Src/ksv.f
  Src/optical.F
  Src/phirphi_opt.f
  Src/siesta_analysis.F

-----------------------------------------------------------------------
2016-02-17                                                    trunk-485
Add GPL notices and headers

* Include proper headers
* Add Docs/Contributors.txt and NOTICE.txt files.
* Update READMEs and LICENSE files in several directories.
* Remove Pseudo/atom, Util/test-xml
* Remove DOM files from Src/xmlparser
* Replace old copyright notice in Src/Confs

This revision touches a large number of files due to the
change in licensing and copyright.

The other major change is the removal of the Pseudo/atom subtree,
which is now distributed independently.

-----------------------------------------------------------------------
2016-02-05                                                    trunk-484
Merge fixes from rel-4.0 branch

* Fix Tests/test.mk and Genbasis makefile

The reference directory's path was incorrect in Tests/test.mk

In Util/Gen-basis/Makefile, the treatment of COMP_LIBS can be improved
with a form suggested by Pedro Brandimarte, which will work even if
there are multiple files in COMP_LIBS.

* Fix peak alloc report in MPI

When alloc-report-level is 1 or 3, a report should be printed at every
peak. This hanged in MPI runs. Now only the root node peaks are
printed.

(Thanks to Nick R. Papior)
  
* Some older .CHANGES files have been moved to the 'branch-changes'
  directory, and older release notes moved to the
  'older-release-notes' directory.

modified:
  Tests/test.mk
  Util/Gen-basis/Makefile
  Src/alloc.F90
  Docs/siesta.tex
added:
  Docs/branch-changes/
  Docs/older-release-notes/

-----------------------------------------------------------------------
2015-12-18   10:25:00 GMT                                     trunk-483
Add lapack and blas code in Libs to support OMM and SVD

* To enable quick compilation with no external libraries, some
  lapack/blas routines have been added to the Src/Libs directory.

  A minimal example of arch.make: Src/Sys/nolibs.make

  Note that some optional features do depend on the availability of
  external libraries, such as netCDF and fftw.
  
added:
  Src/Libs/svd_omm_lapack.f
modified:
  Src/Libs/blas.f
  Src/Libs/makefile
  Src/Sys/nolibs.make
  Util/Gen-basis/Makefile  

-----------------------------------------------------------------------
2015-12-17   16:25:00 GMT                                     trunk-482
New versions of grid2cube and gnubands. Laplacian of grid functions

* Updated new.gnubands in Util/Bands to enhance spin processing
  and optional production of labels in tick marks.

  (Nick R. Papior)
  
* A new experimental program g2c_ng in Util/Grid offers extended
  and cleaner functionality over the classic grid2cube.

* A new program cdf_laplacian in Util/Grid computes the laplacian
  of a grid function in netCDF format.

  (A. Garcia)
  
added:
  Util/Grid/cdf_laplacian.F90
  Util/Grid/g2c_ng.f
  Util/Grid/m_gridfunc.F90
  Util/Grid/m_struct.f90
modified:
  Util/Bands/Makefile
  Util/Bands/README
  Util/Bands/new.gnubands.f90
  Util/Grid/README
  Util/Grid/makefile
  Util/build_all.sh
		    

-----------------------------------------------------------------------
2015-11-26   15:10:00 GMT                                     trunk-481
Increase the number of allowed iterations in minvec

The default value of 100 was inadequate for the needs of
k-point supercells for large multipliers.

modified:
  Src/minvec.f
      
-----------------------------------------------------------------------
2015-11-26   13:50:00 GMT                                     trunk-480
Fix bug in heapsort routine

(Thanks to Nick Papior)

* The recent re-implementation of the heapsort algorithm in routine
  'ordix' in 'sorting.f' (trunk revno 468)  was buggy.

  This affected:

  - The siesta.BONDS file, which did not have optimal ordering of the
    bond-lengths.

  - Some calculations using k-points, as routine 'minvec', used in the
    definition of the effective k-point supercell, calls 'ordix'.
    (The reference outputs for the 'var_cell' and 'si2x1h' tests have
    been modified.)

  - (probably) The re-use of density-matrix information, as the ordering
    of interactions in 'hsparse' also depended on 'ordix' through calls to
    'ordvec'.

  - (maybe) The operation of the "rho-mixing" routines, which use 'ordix'
    for the sorting of stars.

modified:
  Src/sorting.f
  Tests/Reference/si2x1h.out
  Tests/Reference/var_cell.out

-----------------------------------------------------------------------
2015-10-04   00:40:00 GMT                                     trunk-479
Assorted fixes and cleanup. Update reference outputs

- Replace pointers by allocatables in {zm,cell}_broyden_optim.
- Split-off read_options from siesta_options to reduce
  dependencies and clarify hidden symbol associations.
- Remove dependency in sparse_matrices
- Fix dependencies in makefiles in Util
- Remove Reference-xml
- Update Reference-out files
- Provide a simple-minded mechanism to flag differences in the
  test outputs ('make check').

removed:
  Tests/Reference-xml/
  Tests/Reference/partial.out
added:
  Src/read_options.F90
  Tests/Reference/TranSiesta-TBTrans/ts_au_100/au_100.AVTRANS
  Tests/Reference/TranSiesta-TBTrans/ts_au_100/au_100.TEIG
  Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/au_100.AVTRANS
  Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/au_100.TEIG
  Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/au_100.AVTRANS
  Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/au_100.TEIG
  Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/au_100.AVTRANS
  Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/au_100.TEIG
  Tests/TranSiesta-TBTrans/copy_to_reference.sh
  Tests/TranSiesta-TBTrans/run_tests.sh
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/cell_broyden_optim.F
  Src/diagon.F
  Src/final_H_f_stress.F
  Src/obj_setup.sh
  Src/projected_DOS.F
  Src/proximity_check.F
  Src/siesta_analysis.F
  Src/siesta_forces.F
  Src/siesta_init.F
  Src/siesta_move.F
  Src/siesta_options.F90
  Src/sparse_matrices.F
  Src/state_analysis.F
  Src/state_init.F
  Src/struct_init.F
  Src/write_md_record.F
  Src/write_subs.F
  Src/zm_broyden_optim.F
  Tests/Makefile
  Tests/README
  Tests/Reference/*
  Tests/cmp_digest.sh
  Tests/partial/README
  Tests/test.mk
  Util/Denchar/Src/Makefile
  Util/Gen-basis/Makefile
  Util/STM/ol-stm/Src/Makefile
  Util/SiestaSubroutine/README
  Util/TBTrans/Makefile
  Util/TBTrans_rep/Makefile
  Util/VCA/Makefile
  Util/build_all.sh
      


	  


-----------------------------------------------------------------------
2015-09-29   10:25:00 GMT                                     trunk-478
Fixes: OCCS file, pdoskp, processorY

* The OCCS file, containing the occupation at each k-point,
  is now created only during the scf cycle, in 'diagon'. This
  fixes problems that appeared when 'diagk' was called from
  other routines.
  
* Some arrays in pdoskp were not dimensioned correctly on
  input in pdoskp.

* Added a sanity check for the user-entered ProcessorY.

(Thanks to Nick P. Andersen)

modified:
  Src/diagk.F
  Src/diagk_file.F
  Src/diagon.F
  Src/initparallel.F
  Src/pdoskp.F

-----------------------------------------------------------------------
2015-09-17   13:25:00 GMT                                     trunk-477
Fixes: pi/a mode in bands; low-n interpolation; others

* Fix handling of n<3 cases in interpolation.f90 
* Made global variable 'saved' in matel_registry
  (J. Soler, with thanks to Nick P. Andersen)

* Fix uninitialized variable in interpolation.f90.
* Proper check on number of atoms in zmatrix.F.
* Avoid underflow in sorting.f.

  (Thanks to P. Brandimarte)

* In bands.F, only check for LatticeConstant input
  in the "pi/a" case.

modified:
  Src/bands.F
  Src/interpolation.f90
  Src/matel_registry.F90
  Src/sorting.f
  Src/zmatrix.F

-----------------------------------------------------------------------
2015-07-16   15:05:00 GMT                                     trunk-476
Fix the geometry and DM and H logic for consistency in analysis

-*-*-*-*-* 
IMPORTANT NOTE: This patch will slightly change the output
of most calculations and the detailed results of any
post-processing. Keep this in mind if you need to maintain coherency
within a project. See the rest of the text for ways to restore
backward compatibility.  The reference output files in Tests/Reference
have *not* been updated yet.
-*-*-*-*-*
  
This is the initial patch in a long-overdue clarification work related
to the "outer geometry loop" in Siesta and its interaction with the
analysis of the electronic structure.

The most important changes, following the actual refactoring logic, are:

* Superfluous calls to 'superx' to propagate the new coordinates to
  the auxiliary supercell in 'siesta_move' have been removed, as they
  are already done by 'state_init'.

* The above change has the side effect of leaving inconsistent sets of
  unit cell and supercell coordinates in 'siesta_analysis' if the unit
  cell coordinates used in the latter are those 'moved' by the
  geometry-update routines. To avoid this, and to do the analysis
  using the actual coordinates used in the computation of the
  electronic structure, the coordinates are reset to those values
  (using the *_last arrays) in 'siesta_analysis'.  The old behavior
  can be recovered by using by setting the backward compatibility
  switch 'compat-pre-v4-dynamics' to 'true'.


* To guarantee that the DM and H used in the analysis correspond to
  the latest electronic structure computed, there should be no mixing
  at the end of the scf loop. This behavior, which was optional until
  now (controlled by the value of scf-mix-after-convergence) is now
  the default. The use of DM_out instead of DM_mixed provides also a
  truly variational total-energy and more consistent forces. If the
  scf cycle is carried out mixing H, H(DM_in) is recovered by
  re-setting H to Hold in siesta_forces at the end of the cycle.

  Also, to preserve the right H for analysis it is necessary to
  avoid overwriting it in post_scf_work. This is now done by default,
  except if the option 'scf-recompute-h-after-scf' is 'true'.

  There is another switch for pre-v4.0 compatibility in this context:
  If 'compat-pre-v4-dm-h' is 'true', the 'scf-mix-after-convergence'
  and 'scf-recompute-h-after-scf' options are activated too.

  Some comments have been added to siesta_forces to document possible
  further clarifications.

* For clarity, each MD or geometry-optimization flavor has now its own
  self-contained logic block in 'siesta_move'. This has uncovered a
  few issues that have been corrected:

  - The quenched forms of the Verlet and Parrinello-Rahman (PR)
    schemes, which are actually relaxations, did not check for
    convergence before moving the atoms (PR did not check at any
    point).  Now the 'constrained' forces and stress are checked
    before invoking the routines. In the case of PR, a 'target stress'
    can optionally be subtracted from the constrained stress (a
    further form of constraint that was previously only available
    (internally) in the standard relaxation routines). A future update
    might put all these constraint conditions in 'fixed', but care
    should be taken to study their interaction with the MD
    variable-cell routines. A future revision might look into the
    effectiveness of the variable-cell routines.
    There is a new example in Tests for quenched MD relaxation.

  - The geometry output in 'siesta_move' is now exclusively done for
    checkpointing purposes, and typically involves the 'moved'
    geometries.  The current geometry output is done in 'state_init',
    and any final output in 'siesta_analysis'.

  - Some output calls have been removed where they did not make much
    sense (as in the FC or server blocks).

  - The deprecated 'phonon' support has been removed.

* Siesta_analysis outputs the 'current' final geometry, and not the
  'moved' one. The old behavior can be recovered by using the
  'compat-pre-v4-dynamics' switch.

* The default 'dynamics' option has been changed from 'verlet' to 'CG'.
  There should really be a new 'single-point' default which completely
  avoids 'siesta_move'. The old behavior can be recovered by using the
  'compat-pre-v4-dynamics' switch.

* Single-point calculations do not write .STRUCT_NEXT_ITER files, and
  the coordinates in the XV file are the current ones, unmoved.
  Extra output in siesta_options is avoided for this case.

* The headings for the beginning of the dynamics blocks are now
  more concrete.

Other minor changes:

* Fix the IO field widths in the bonds routine to support more atoms.

* Add a few more deallocations in several routines, and change the
  'routine' field in some deallocations to match the allocations
  (notably for arrays in the 'sparse_matrices' module)

* Cosmetic changes in the output format for dynamics headings

* Atomic displacements for force-constant runs are output in Ang.

removed:
  Src/phonon.F
added:
  Src/m_target_stress.F
  Tests/si2x1h-quench/
  Tests/si2x1h-quench/makefile
  Tests/si2x1h-quench/si2x1h-quench.fdf
  Tests/si2x1h-quench/si2x1h-quench.pseudos
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/atomlist.f
  Src/bonds.f
  Src/dhscf.F
  Src/diag2g.F
  Src/diag2k.F
  Src/final_H_f_stress.F
  Src/fixed.F
  Src/ioxv.F
  Src/m_check_supercell.f
  Src/m_pulay.F90
  Src/new_dm.F
  Src/post_scf_work.F
  Src/save_density_matrix.F
  Src/siesta_analysis.F
  Src/siesta_forces.F
  Src/siesta_init.F
  Src/siesta_move.F
  Src/siesta_options.F90
  Src/sparse_matrices.F
  Src/state_analysis.F
  Src/state_init.F
  Src/write_subs.F

-----------------------------------------------------------------------
2015-07-08   11:00:00 GMT                                     trunk-475
Minor fixes and cosmetic changes after Wannier merge

* Associate auxiliary array auxloc in slave nodes even if
  not used in mpi_reduce call (Nick P. Andersen).

* Add missing files in Test/wannier.

* Streamline the wannier interface output.

added:
  Tests/wannier/makefile
  Tests/wannier/wannier.pseudos
modified:
  Src/compute_pw_matrix.F90
  Src/m_digest_nnkp.F90
  Src/write_inp_wannier.F90

-----------------------------------------------------------------------
2015-07-07   08:30:00 GMT                                     trunk-474
Merge code for interoperation with Wannier90

(Javier Junquera, after work by Richard Korytar, and Alberto Garcia)

Siesta can now read the .nnkp file produced by Wannier90 and output
the *.amn, *.mmn, *.eig (see below), and UNK* files needed by
post-processing with that program, which generates maximally-localized
Wannier functions.

The most relevant changes in the code needed to support this
functionality are detailed below. For practical guidance, see the
manual, the simple test in Tests/wannier, and the suite of Wannier90
examples adapted for Siesta in

   http://personales.unican.es/junqueraj/Wannier-examples.tar.gz


* To implement support for "projection functions", which might not be
  pure radial functions, but hybrids with mixed angular momentum and
  varying spatial orientation, as well as to provide support of
  arbitrary kinds of radial functions for future developments, the
  'matel' framework has been extended:

  Matel (actually renamed to 'new_matel') now accepts two generalized
  indexes instead of the two pairs of indexes previously used. The
  generalized indexes can represent either a normal "radial function",
  as in previous Siesta usage, or a "projection function". The indexes
  are obtained via a "check-in" into a registry of functions, which
  keeps track of the nature of the functions and provides the needed
  evaluators and accessors for 'new_matel'.

  The relevant code is in 'matel_registry', 'new_matel', and
  'register_rfs'. The latter shows how to "register" the usual radial
  functions for PAOs, KB projectors, etc. 

* Bloch states are computed and saved, instead of being recomputed as
  needed, to avoid problems with irreproducible random phases and
  linear combinations within degenerate subspaces.

* At this point the parallelization of the new code is only "over
  orbitals". It is not yet possible to parallelize the operations over
  the k-points on the grid. The production of the UNK* files can be
  slow if there are many k-points and bands.

* There is not yet support for "spinor wavefunctions". In the case of
  spin-polarized calculations, separate spin-up and spin-down
  processings are needed.

* There is not yet support for interaction with Wannier90 in "library
  mode", due to licensing issues.

* The "eigenvalue file" for Wannier90 has extension .eigW to avoid
  clashes with the standard Siesta eigenvalue file in case-insensitive
  filesystems.

removed:
  Src/matel.f
added:
  Src/amn.F90
  Src/broadcast_projections.F
  Src/compute_pw_matrix.F90
  Src/delk.F
  Src/diagonalizeHk.F90
  Src/m_digest_nnkp.F90
  Src/m_noccbands.f
  Src/m_orderbands.F
  Src/m_overkkneig.F90
  Src/m_planewavematrix.F90
  Src/m_planewavematrixvar.F90
  Src/m_trialorbitalclass.f90
  Src/m_writedelk.F
  Src/matel_registry.F90
  Src/mmn.F90
  Src/new_matel.f
  Src/register_rfs.F90
  Src/reordpsi.F
  Src/siesta2wannier90.F90
  Src/write_inp_wannier.F90
  Tests/wannier/		-- New test
  Tests/wannier/wannier.fdf
  Tests/wannier/wannier.nnkp
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/alloc.F90		-- New z3 and z4 generics
  Src/m_mpi_utils.F
  Src/atm_types.f       -- Fields for global index storage
  Src/atmfuncs.f        -- Global index management
  Src/dhscf.F           -- New routine to compute PW matrix elements
  Src/mneighb.f         -- Added 'x0' module variable
  Src/parallelsubs.F	-- Catch special blocksize case
  Src/mesh.F		-- Extra bookeeping
  Src/meshdscf.F
  Src/meshsubs.F
  Src/kinefsm.f		-- New matel
  Src/naefs.f
  Src/nlefsm.f
  Src/overfsm.f
  Src/overlap.f
  Src/phirphi.f
  Src/phirphi_opt.f
  Src/siesta_analysis.F		-- Actual w90 processing
  Src/siesta_init.F
  Src/siesta_options.F90
  Src/spher_harm.f		-- Two implementations of YLMEXP.

    
-----------------------------------------------------------------------
2015-06-29   15:20:00 GMT                                     trunk-473
Merge code for 'server' operation via sockets and i-PI interface

(Michele Ceriotti, Jose Soler)

* A new infrastructure for socket handling in f90 has been
implemented by Michele Ceriotti (EPFL), who is also the author
of the i-PI framework. From its web-page:

  i-PI is a Path Integral Molecular Dynamics (PIMD) wrapper code
  designed to be used together with ab initio evaluation of the
  interactions between the atoms. i-PI should be run as a separate
  program, and communicates with one or more instances of an
  electronic structure code using internet (or UNIX) sockets. The
  communication is regulated by a simple protocol, and requires
  patching the client code to handle the exchange of data with i-PI.

This revision implements the interface to the i-PI protocol. In
Siesta, the new socket functionality can also be used as a new form of
'server' operation.

See Util/Sockets for examples of the f90 socket interface,
Util/SiestaSubroutine for examples of the server operation (including
via sockets) and Tests/i-pi-test for a simple test of interoperability
with i-PI.

added:
  Src/fsiesta_sockets.F90
  Src/fsockets.f90
  Src/iosockets.F90
  Src/sockets.c
  Tests/ipi-test/
  Util/SiestaSubroutine/SimpleTest/README
  Util/SiestaSubroutine/SimpleTest/socket.fdf
  Util/SiestaSubroutine/SimpleTest/sockets.sh
  Util/Sockets/
renamed:
  Util/SiestaSubroutine/SimpleTest/Src/simple_pipes_parallel.f90 => 
    Util/SiestaSubroutine/SimpleTest/Src/simple_parallel.f90
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/fsiesta_mpi.F90
  Src/fsiesta_pipes.F90
  Src/siesta_master.f90
  Src/siesta_options.F90
  Src/struct_init.F
  Util/README
  Util/SiestaSubroutine/FmixMD/Src/para.f90
  Util/SiestaSubroutine/README
  Util/SiestaSubroutine/SimpleTest/Src/Makefile
  Util/SiestaSubroutine/SimpleTest/h2o.fdf
  Util/SiestaSubroutine/SimpleTest/test.sh
  Util/SiestaSubroutine/SimpleTest/Src/simple_parallel.f90

-----------------------------------------------------------------------
2015-06-22   9:35:00 GMT                                     trunk-472
Revert previous change affecting FA and FC files. FAC/FCC files.

* At revno 464, a change was introduced to output the constrained
  forces to the FA and FC files.  This had unintended consequences for
  some analysis tools.

  The change has been reverted, and the FC/FA files are now created as
  before. In addition, if constraints are used, new FCC/FAC files
  will be created with the constrained forces.

  The vibra utility will default to use the FCC files if the
  GeometryConstraints block exists, and in any case the
  force-constants file to use can be specified with the Vibra.FC fdf
  option.

  To support these changes, the write_forces subroutine has now 
  the geometry step as an additional argument.

  The writing of forces has been moved to its appropriate place in the
  write_subs modules.

* Some more cosmetic changes in the Vibra package.

modified:
  Docs/siesta.tex
  Src/Makefile
  Src/iofa.f
  Src/ofc.f
  Src/siesta_analysis.F
  Src/siesta_forces.F
  Src/state_analysis.F
  Src/write_subs.F
  Util/Vibra/Docs/CHANGES
  Util/Vibra/Docs/vibra.tex
  Util/Vibra/Examples/README
  Util/Vibra/Examples/si54.bands
  Util/Vibra/Examples/si54.fdf
  Util/Vibra/Src/Makefile
  Util/Vibra/Src/fcbuild.f
  Util/Vibra/Src/recoor.f
  Util/Vibra/Src/vibra.f

-----------------------------------------------------------------------
2015-06-17   8:50:00 GMT                                     trunk-471
Fix SiestaXC makefile. Clarifiy docs for WriteDenchar

* Fix a typo in SiestaXC/makefile that was preventing
  the correct processing of the "dist" target.
  (J. Soler)

* Update the WriteDenchar documentation in the Siesta manual.
  (G. Huhs)

modified:
  Docs/siesta.tex
  Src/SiestaXC/makefile

-----------------------------------------------------------------------
2015-06-10  12:30:00 GMT                                     trunk-470
Build fixes in Util and SiestaXC

* Bring up to date the code in STM/ol-stm.

* Fixes for compilation of various programs
  in Util after the NR changeover.

added:
  Util/Gen-basis/local_die.F
  Util/STM/ol-stm/Src/handlers.f
modified:
  Src/SiestaXC/atomxc.F90
  Src/SiestaXC/mesh1d.f90
  Util/Denchar/Src/Makefile
  Util/Gen-basis/Makefile
  Util/Gen-basis/gen-basis.F
  Util/STM/ol-stm/Src/Makefile
  Util/STM/ol-stm/Src/atompla.f
  Util/STM/ol-stm/Src/extrapolate.f
  Util/STM/ol-stm/Src/fftw3_mymod.f90
  Util/STM/ol-stm/Src/readstm.f
  Util/STM/ol-stm/Src/reinitstm.f
  Util/STM/ol-stm/Src/stm.f
  Util/SiestaSubroutine/FmixMD/Src/Makefile
  Util/build_all.sh*

-----------------------------------------------------------------------
2015-06-02  09:45:00 GMT                                     trunk-469
Cosmetic fix for errorf.f

Put proper end statements

modified:
 Src/errorf.f

-----------------------------------------------------------------------
2015-06-02  07:10:00 GMT                                     trunk-468
Replacement of NR routines. Fix for charge-conf variables.

* Replaced FFT 1d routine by a version based on Temperton's GPFA
  
  Calls to the 'four1' routine have been replaced by calls to
  'fft_gpfa_ez' with the same arguments. This routine lives
  in a new module in 'm_fft_gpfa.F', which also contains the
  legacy code by Temperton and the original entry points.
  
  The cdf_fft program in Util/Grid now uses Temperton's GPFA package.

  (A. Garcia)

* Replaced tred2/tqli by Lapack calls in m_filter (E. Artacho)
  
* Replaced derf/derfc by Netlib versions          (E. Artacho)

* Replaced random number routine                  (E. Artacho)
  
* Some routines from Numerical Recipes reimplemented
  
  Some routines from Numerical Recipes have been reimplemented with
  (mostly) the same algorithms.
  
  (Jose Soler, with minor changes by A. Garcia)
  
    - spline interpolation routines rewritten and moved to interpolation module
    - polint Lagrange interpolation rewritten and moved to interpolation module
    - ordix subroutine recoded
    - chebfd re-styled to remove remaining similarities with NR chebft
    - choldc and cholsl fully re-styled and renamed as cholDcmp and cholLinSys
    - zbrent substituted by a simple bisection root finder
    - amoeba method re-implemented
  
  (+ Interface to external routine 'die' simplified: it now
     requires a string argument) (A. Garcia)
  
* Bugfix for soft confinement charge
  
    A shell was not initialized properly if the PAO.Basis block was
    not defined. Now the initialization routine is called before
    setting up the orbital.
  
    Also changed the comments about the magnitude of the charge
    confinement width.
  
    (Nick P. Andersen)
  
----------------(Inserted missing records)-----------------------------
2015-03-04 11:47:32 +0100                            [trunk-467]
Fix import of idyn in save_density_matrix (rc-4.0) 
  
  * The idyn variable was not imported from siesta_options 
    in standard "siesta" mode
  
  (thanks to J. Junquera)
  
  modified:
    Src/save_density_matrix.F
------------------------------------------------------------
2015-02-03 15:28:00 +0100                            [trunk-466]
Fixed IO statements for molecularmechanics module 
  
  (Nick .P. Andersen)
  
  * IO print-outs was still abundant in parallel runs.
    Now only the IO node will print out.
  
  * The manual has been corrected to correctly state
    that any unit is allowed in the MM.* block.
  
  modified:
    Docs/siesta.tex
    Src/molecularmechanics.F90
------------------------------------------------------------
2015-01-07 11:35:12 +0100                        [trunk-465]
Merge fix from rc-4.0: MPI tag in SiestaXC/mesh3d
  
  * The variable Mpitag was not initialized, leading to problems whenever
    its value was not zero or considered as MPI_ANY_TAG in a Recv operation.
  
  (Nick P. Andersen)
  
  modified:
    Src/SiestaXC/mesh3d.F90
------------------------------------------------------------
2014-11-08 17:26:37 +0100                             [trunk-464]
Merge fixes from rc-4.0: constr. forces, MPI compilation, mm.potentials
  
  -- Fabiano Corsetti: Fix output to show constrained forces
  
  * Changed the calling of the iofa and ofc routines inside write_subs,
    so that the forces with constraints are written to file in each case
    instead of the uncorrected forces. 
  
  modified:
    Src/write_subs.F
  
  
  -- Alberto Garcia:   Fix 'clean' rule in  MPI Makefile
  
  The interface library libmpi_f90.a was not removed when issuing a
  'make clean', possibly leading to strange errors if the MPI
  compilation environment was later changed.
  
  modified:
    Src/MPI/Makefile
  
  -- Nick P Andersen:  Fix shortcomings in reading of empirical potential block
  
  * The number of potential lines is now arbitrary.
  * Units handling has been improved, to allow arbitrary
    length and energy units.
  
  modified:
    Src/molecularmechanics.F90

-----------------------------------------------------------------------
2014-11-08  16:15:00 GMT                                     trunk-463
Added restart file for smooth continuation of annealing runs

* Added the writing and reading of an .ANNEAL_RESTART file, along the
  same lines of the .VERLET_RESTART file. This fixes a small problem
  for restarting annealing calculations when a continuous smooth run
  is desired.

(Fabiano Corsetti)

added:
  Tests/anneal-cont/
  Tests/anneal-cont/README
  Tests/anneal-cont/makefile
  Tests/anneal-cont/script.sh
modified:
  Docs/siesta.tex
  Src/dynamics.f

-----------------------------------------------------------------------
2014-05-29  12:40:00 GMT                                     trunk-462
Improved MPI version of siesta as a subroutine (J.M.Soler)

* The MPI version of fsiesta now creates a directory for each siesta
  process, and writes in it all output and continuation files

* New example Util/SiestaSubroutine/ProtoNEB/

added:
  Util/SiestaSubroutine/ProtoNEB/
  Util/SiestaSubroutine/ProtoNEB/NH3-point01.fdf
  Util/SiestaSubroutine/ProtoNEB/NH3-point02.fdf
  Util/SiestaSubroutine/ProtoNEB/NH3-point03.fdf
  Util/SiestaSubroutine/ProtoNEB/NH3.fdf
  Util/SiestaSubroutine/ProtoNEB/Src/
  Util/SiestaSubroutine/ProtoNEB/Src/Makefile
  Util/SiestaSubroutine/ProtoNEB/Src/protoNEB.F90
modified:
  Src/fsiesta_mpi.F90
  Util/SiestaSubroutine/README

-----------------------------------------------------------------------
2014-05-29  10:45:00 GMT                                     trunk-461
%files added to Util/JobList options (J.M.Soler)

added:
  Util/JobList/Examples/Ice/dummyFile
modified:
  Util/JobList/Examples/Ice/iceChecks.jobs
  Util/JobList/README
  Util/JobList/Src/jobList.f90

-----------------------------------------------------------------------
2014-05-29  10:30:00 GMT                                     trunk-460
New GGA and VDW functionals (M.Fritz & J.M.Soler)

* Added 4 GGA functionals by Capelle et al
  Refs: L.S.Pedroza et al, PRB 79, 201106 (2009) and
        M.M.Odashima et al, J. Chem. Theory Comp. 5, 798 (2009)

* Added 2 VDW-DF functionals of 
        V.R.Cooper, PRB 81, 161104(R) (2010)
        K. Berland and P. Hyldgaard, PRB 89, 035412 (2014)

* Fixed PW91 and BLYP GGA functionals 

* Corrected a minor bug in vdwxc.F90 (parameter nq->mq)

* Updated and extended XC testers

* Added some test outputs in SiestaXC/Testers/Reference

* m_timer.F90 added to SIESTA_SRCS in SiestaXC/makefile

(+ fix syntax error in Pseudo/atom/pxf.F90)
(+ increase patch level in Pseudo/atom/version.h)

added:
  Docs/gga.CHANGES
  Src/SiestaXC/Testers/Reference/
  Src/SiestaXC/Testers/Reference/test1.out
  Src/SiestaXC/Testers/Reference/test2.out
  Src/SiestaXC/Testers/Reference/test3.out
  Src/SiestaXC/Testers/Reference/test4.out
  Src/SiestaXC/Testers/test6.f90
  Src/SiestaXC/Testers/test6.m
renamed:
  Src/SiestaXC/Testers/test2.f90 => Src/SiestaXC/Testers/test2.F90
modified:
  Docs/siesta.tex
  Pseudo/atom/Docs/atom.tex
  Pseudo/atom/pseudoXML.f
  Pseudo/atom/pxf.F90
  Pseudo/atom/velect.f
  Pseudo/atom/version.h
  Src/SiestaXC/Testers/makefile
  Src/SiestaXC/Testers/test1.f90
  Src/SiestaXC/Testers/test3.F90
  Src/SiestaXC/Testers/test4.F90
  Src/SiestaXC/Testers/test5.f90
  Src/SiestaXC/atomxc.F90
  Src/SiestaXC/cellxc.F90
  Src/SiestaXC/ggaxc.f
  Src/SiestaXC/ldaxc.f
  Src/SiestaXC/makefile
  Src/SiestaXC/siestaxc.F90
  Src/SiestaXC/vdwxc.F90
  Src/SiestaXC/vv_vdwxc.F90
  Src/SiestaXC/xcmod.f90
  Src/atom.F
  Src/xc.f
  Src/SiestaXC/Testers/test2.F90

-----------------------------------------------------------------------
2014-03-25  12:40:00 GMT                                     trunk-459
Fix bug when reading spin-polarized deformation charge

When reading a spin-polarized deformation charge (in netCDF form)
the added atomic-superposition charge was too large by a factor of two.

modified:
  Src/dhscf.F

-----------------------------------------------------------------------
2014-03-05  09:15:00 GMT                                     trunk-458
Fixes and new features in fdf

* Fix handling of empty value for fdf_string

When a line contains only a label, fdf_string incorrectly tried to
read beyond the first token.  It has now been fixed, assigning an
empty string to the function value.

* Nullify fdf buffer pointer at declaration

(+ fix the assignment of the name for the debug file)

* New list functionality in fdf (Nick P Andersen)

See Src/fdf/sample.F90 and sample.fdf for examples.

* A more flexible fdf_init (JM Soler)

The routine fdf_init can be called without arguments in the most
common case when reading from standard input (unit 5). See the new
code in fdf.F90 for details. Note that Siesta does not yet use the new
possibilities.

added:
  Docs/fdf.CHANGES
modified:
  Src/fdf/fdf.F90
  Src/fdf/parse.F90
  Src/fdf/sample.F90
  Src/fdf/sample.fdf
  version.info

-----------------------------------------------------------------------
2014-03-05  09:10:00 GMT                                     trunk-457
Fix printed charges for transiesta in spin-polarized case

* When using spin the shown charges were wrong, however, the computations
  are correct.
  The charges are now consistent.
  (Thanks to Paula Abufager and Nicolas Lorente for pointing this out)
  
modified:
  Src/m_ts_in_siesta.F

-----------------------------------------------------------------------
2014-02-20  11:30:00 GMT                                     trunk-456
Bug fixes and feature changes in charge-density mixing

* The criterion for participation of a node in the DIIS procedure was
faulty.

* For spin-polarized systems, the rho(G=0) components were not mixed,
  as they should.

* Several option labels have changed:

The "old"  ThomasFermiK2  option has been renamed to

SCF.Kerker.q0sq  [ physical energy ]

The default remains 0.0 Ry, although the program now prints several
possible heuristic values:

- The actual Thomas-Fermi wavevector squared
- The square of 2*pi/L, where L is the length of the longest cell vector.

SCF.RhoG.DIIS.Cutoff  (physical energy)

determines the sub-set of G vectors which will undergo the DIIS
procedure.  Default: 9 Ry.

SCF.RhoG.DIIS.Depth

determines the maximum number of previous steps considered in the DIIS
procedure. Default: 0

SCF.RhoG.Metric.Preconditioner.Cutoff (physical energy)

determines the value of "q1^2" in the weighing of the different G
components in the scalar products among residuals in the DIIS
procedure. Following the KF ansatz, this parameter is chosen so that
the smallest (non-zero) G has a weight 20 times larger than that of
the smallest G vector in the DIIS set.  Default: The KF prescription.

SCF.DebugRhogMixing

controls the level of debugging output in the mixing procedure
(basically whether the first few stars worth of Fourier components are
printed). Default: False.  Note that this feature will only display
the components in the master node...

* By default, the DIIS procedure uses a method based on
  singular-value-decomposition to find the coefficients.  

  To turn off SVD, use 'SCF.RhoG.DIIS.UseSVD F'

  To modify the threshold for removal of small singular values (set by
  default to a ratio of 1.0e-8 with respect to the maximum
  sing. value) use 'SCF.RhoG.DIIS.RcondSVD <value>'

  Use 'debug-diis T' to see debugging information. 

modified:
  Docs/siesta.tex
  Src/Makefile
  Src/m_rhog.F90
  Src/m_diis.F90
  Tests/h2o-rhog-mixing/h2o-rhog-mixing.fdf

-----------------------------------------------------------------------
2014-02-10  09:40:00 GMT                                     trunk-455
Charge-density mixing

With the fdf option

    MixCharge T

the self-consistent-field convergence acceleration will be carried out
by mixing the charge density (actually the Fourier-components of the
charge). Both a simple Kerker-preconditioning and a DIIS procedure with
a subset of the Fourier components are implemented.

The implementation follows the ideas in Kresse+Furthmuller,
Comp.Mat.Sci. 6, 15-50 (1996), KF in what follows).

Relvant parameters:

  ThomasFermiK2   (physical energy)

determines the Thomas-Fermi wavevector squared (in Ry) featuring in
the Kerker mixing, which is always performed on all components of
rho(G), even those treated with the DIIS scheme. Default: 0 Ry.


  RhoGMixingCutoff  (physical energy)

determines the sub-set of G vectors which will undergo the DIIS
procedure.  Only those with kinetic energies below this cutoff will be
considered.  The optimal extrapolation of the rho(G) elements will be
replaced in the fourier series before performing the Kerker
mixing. Default: 9 Ry.

  RhoG-DIIS-Depth

determines the maximum number of previous steps considered in the DIIS
procedure. Default: 0

  RhoG-SP-Preconditioner-Cutoff (physical energy)

determines the value of "q1^2" in the weighing of the different G
components in the scalar products among residuals in the DIIS
procedure. Following the KF ansatz, this parameter is chosen so that
the smallest (non-zero) G has a weight 20 times larger than that of
the smallest G vector in the DIIS set.  Default: The KF prescription.

  DebugDIIS

controls the level of debugging output in the DIIS procedure. Default:
False.

  DebugRhogMixing

controls the level of debugging output in the mixing procedure
(basically whether the first few stars worth of Fourier components are
printed). Default: False.  Note that this feature will only display
the components in the master node...

  SCF.MixCharge.SCF1

controls whether mixing is done in the first scf step. Default:
false. (This seems to speed up convergence in some cases. More data is
needed.)

 The information about rhog_in and rhog_out in first scf iteration is
not added to the DIIS history. This seems to improve the convergence.

* Added h2o-rhog-mixing test

Note that the default convergence criteria remains based on the
differences in the density matrix, but in this case the differences
are from step to step, not the more fundamental DM_out-DM_in. Perhaps
some other criterion should be made the default (max |Delta rho(G)|,
convergence of the free-energy...)

Note that with charge mixing the Harris energy as it is currently
computed in Siesta loses its meaning, since there is no "DM_in". The
program prints zeroes in the Harris energy field.

Note that the KS energy is correctly computed throughout the scf cycle,
as there is an extra step for the calculation of the charge stemming from
DM_out, which also updates the energies. Forces and final energies are
correctly computed with the final DM_out, regardless of the setting of 
the option for mixing after scf convergence.

The program now prints a more accurate summary of the criterion used
for scf cycle termination.

Note that the criterion for total-energy convergence now uses the free
electronic energy, which is the appropriate magnitude to monitor in
the general case of possibly fractional occupancies.

The mixing flavor should be made into a first-class option variable,
instead of being encoded in two separate logicals (mix_charge,
mixH)...

The new code uses a circular stack implemented using a
"reference-counting" paradigm.

-----------------------------------------------------------------------
2014-01-31  15:15:00 GMT                                     trunk-454
Allow the handling of ghosts of synthetic atoms

Species with "atomic number" < -200 are now correctly treated as
ghosts of synthetic atoms.

(Thanks to A. Vozny and A. Suarez)

modified:
  Docs/siesta.tex
  Src/atm_transfer.f
  Src/atom.f
  Src/chemical.f
  Src/periodic_table.f

-----------------------------------------------------------------------
2014-01-16  15:35:00 GMT                                     trunk-453
Added a simple ps-->inp converter for ATOM

This program is useful when the INP file is no longer available.

It has a few limitations: note in particular that it cannot possibly
reconstruct the partial core radius.

(A. Garcia)

added:
  Pseudo/atom/Util/Ps2Inp/
  Pseudo/atom/Util/Ps2Inp/die.F
  Pseudo/atom/Util/Ps2Inp/flib_spline.f90
  Pseudo/atom/Util/Ps2Inp/make_ps_input.f90
  Pseudo/atom/Util/Ps2Inp/pseudopotential.f

-----------------------------------------------------------------------
2014-01-15  11:40:00 GMT                                     trunk-452
Fixed a wrong threshold for the bias for transiesta runs

* Due to a programming error, at low bias the Voltage was considered
  to be too low at 0.1 V instead of at 10^(-4) V.
  
modified:
  Src/m_ts_options.F90

-----------------------------------------------------------------------
2013-12-04  14:00:00 GMT                                     trunk-451
Use electronic entropy from current SCF step. EHarris update fix.

* The electronic entropy is computed (in 'compute_dm') once the
  electronic structure is known. The -TS term in the electronic free
  energy was previously computed using the information from the
  previous SCF step (by having it added to Etot in
  'setup_hamiltonian', using an intermediate variable). Now it is
  added in 'scfconvergence_test' and it corresponds to the current SCF
  step. (The last entropy computed in the scf cycle is also added to
  the final Etot in 'post_scf_work'.) There is not much theoretical
  justification for the previous choice, and the new one looks more
  appropriate in general, and notably if E_KS(out) is computed (as
  with H mixing).

* The Harris energy update DEharr is computed in 'compute_dm', and
  corresponds to Tr(H*(DM_out-DM_in)).
  
  In 'post_scf_work' there was a statement
  
        Eharrs = Etot + DEharr

  Since this Etot is computed with DM_mixed (the DM predicted by
  'mixer' for a hypothetical next SCF iteration) or with DM_out
  (depending on whether a final mixing is done at the end of the
  cycle) this value for Eharrs is suspect. This value was never
  actually printed, since printing routines used 'Eharrs1', which is
  the last value of Eharrs computed in the SCF cycle (set in
  'scfconvergence_test'). To reproduce that behavior, the above
  statement has been removed, and Eharris1 replaced by Eharrs
  everywhere.

* Added a message detailing which DM is used in 'post_scf_work',
  and suggesting the use of "SCF.MixAfterConvergence F"

modified:
  Src/Makefile
  Src/compute_dm.F
  Src/final_H_f_stress.F
  Src/local_DOS.F
  Src/m_energies.F90
  Src/post_scf_work.F
  Src/scfconvergence_test.F
  Src/setup_hamiltonian.F
  Src/siesta_init.F
  Src/write_md_record.F
  Src/write_subs.F

-----------------------------------------------------------------------
2013-11-22  15:30:00 GMT                                     trunk-450
Fix SiestaXC/mesh3d to avoid overflow of distributions and/or tasks

(Thanks to Nick P. Andersen)

Due to two bugs in mesh3d.F90, the number of mesh distributions 
and/or communication tasks overflowed in some cases, specially
when using vdW and a variable cell. Fixed.

modified:
  Src/SiestaXC/cellxc.F90 : improved output to debugXC
  Src/SiestaXC/mesh3d.F90 : bug fixes + improved debugXC output

-----------------------------------------------------------------------
2013-11-15  15:20:00 GMT                                     trunk-449
Fix Tbtrans runs at Gamma when using Transiesta k-point data

(Thanks to Nick P. Andersen)

When a calculation was performed with k-points in transiesta and a
subsequent tbtrans calculation was performed ONLY at the Gamma point,
the calculated transmission was wrong.

This has now been fixed.

modified:
  Util/TBTrans_rep/tbtrans.F90

-----------------------------------------------------------------------
2013-10-31  19:30:00 GMT                                     trunk-448
Minor fixes in XC library (JMS)

- Due to roundoff errors, the first mesh point generated by mesh1d
  might be slightly outside the given range. This has been fixed.
- The maximum number of mesh distributions in mesh3d has been increased.
- To reduce the executable file, the allocation of some large arrays in 
  vdwxc.F90 and vv_vdwxc.F90 has changed from static to dynamic.
- To avoid compiler warnings, some real-to-integer conversions in
  vv_vdwxc.F90 have been changed from implicit to explicit.

modified:
  Src/SiestaXC/makefile
  Src/SiestaXC/mesh1d.f90
  Src/SiestaXC/mesh3d.F90
  Src/SiestaXC/vdwxc.F90
  Src/SiestaXC/vv_vdwxc.F90

-----------------------------------------------------------------------
2013-10-22  14:10:00 GMT                                     trunk-447
Improve the estimation of the orbital distribution blocksize

For small problems or a too-large number of processors (heuristically,
when nprocs*24 > norbs), the estimation of the default blocksize for
orbital distribution could lead to some processors being idle, or to a
large imbalance in the distribution.

This has been fixed. The imbalance (the ratio of maximum to minimum
number of orbitals assigned to a processor) is now not larger than 2 for
those badly designed runs.

The imbalance is printed to the output file.

(A. Garcia)

modified:
  Src/initparallel.F
  Src/m_dminim.F90
  Src/m_zminim.F90
  Src/parallelsubs.F
  Docs/siesta.tex

-----------------------------------------------------------------------
2013-10-16  12:30:00 GMT                                     trunk-446
Output file names for dhscf packed in a derived type (JMS)

   The file names passed to dhscf, for output densities and potentials 
on the grid, have been packed into a derived type defined in files.f
   Also, a new density file .RHOXC, with the density passed to cellxc
(i.e. including the nonlocal core corrections), can be written by 
activating SaveRhoXC in the .fdf file.
   As a minor point, file .VNA was being written in every call to
dhscf (provided that SaveNeutralAtomPotential was active). Now it is
written only when dhscf is called by siesta_analysis, as the other
output files.
   
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/dhscf.F
  Src/files.f
  Src/grdsam.F
  Src/local_DOS.F
  Src/setup_hamiltonian.F
  Src/siesta_analysis.F
  Src/siesta_options.F90

-----------------------------------------------------------------------
2013-09-30  10:30:00 GMT                                     trunk-445
New mixing options and simplification of scf loop

* If the option

   MixHamiltonian T

is used, the program will mix the Hamiltonian instead of the density
matrix to achieve self-consistency.

Note that the "dDmax" column in the output will reflect the changes in
H, not in the DM.

The Kohn-Sham energy will converge more uniformly, as it is computed
using a DM_out, instead of a (mixed) DM_in.


* Optionally avoid mixing DM or H after scf-convergence

If the option

   SCF.MixAfterConvergence F

is used, the program will exit the scf loop without a final mixing.
The DM coming out of the cycle will then be DM_out (regardless of
whether we are mixing H or the DM).  The hamiltonian coming out of the
cycle is H_out (generated with DM_out), but H_in ("Hold" in the code)
is also kept if the option is set, so it could be reset if needed in
the future.

Not mixing after convergence will improve the quality of the final
Kohn-Sham energy and forces in calculations that use DM mixing.
The effect should be very small for well-converged calculations.

The DM is saved during the scf cycle for restarting purposes (unless
overridden by the user). If there is no mix after convergence, the
final DM_out is saved.


* A number of options have been added to control the behavior of the
Pulay mixer:

- Pulay mixing might kick in only after a specified number of history
steps have been built up:

    pulay_minimum_history = fdf_get("SCF.PulayMinimumHistory",2)

- Pulay mixing might not work well if far from the fixed point. This
option will avoid inserting the current X_in, X_out pair in the
history stack if the maximum difference is above the specified number.

    max_dmax_for_pulay = fdf_get("SCF.PulayDmaxRegion",1000.0_dp) 

There is no effect by default.

- The "damping" term applied after the DIIS minimization can be
different from that used for linear mixing:

    alpha_pulay = fdf_get("SCF.Pulay.Damping",-1.0_dp) 

By default, alpha_pulay would be set to the linear-mixing parameter.

- The damping of the DIIS-predicted X_in is done to avoid introducing
linear dependencies into the Pulay history stack. Alternatively (or
simultaneously) one can use the most recent X_in, X_out pair in a
linear mixing step, and use a possibly different mixing
parameter. This would be akin to a "kick", but without removing all
the history information.

    linear_mixing_after_pulay = fdf_get("SCF.LinearMixingAfterPulay",.false.)
    alpha_after_pulay = fdf_get("SCF.MixingWeightAfterPulay",0.5_dp)

- Instead of direct matrix inversion, the more robust SVD algorithm can
be used to perform the DIIS extrapolation:

    use_svd_in_pulay = fdf_get("SCF.Pulay.UseSVD",.false.)
    debug_svd_in_pulay = fdf_get("SCF.Pulay.DebugSVD",.true.)
    ! Note that 1.0e-6 seems too conservative
    rcond_svd_pulay = fdf_get("SCF.Pulay.RcondSVD",1.0e-8_dp)


* The loop logic in 'siesta_forces' has been revised to make it more
clear, maintaining the old behavior with the exception of:

- The maximum number of scf iterations is that set by the user,
instead of one less, since the final forces phase is not counted as an
iteration.

- Upon the beginning of a GF TranSiesta run, when mixing H, the
hamiltonian will be recomputed with the proper bias, instead of
inheriting H from the previous normal Siesta initialization. 

(+ The DM is now normalized in 'compute_dm' and 'new_dm')

(+ replaced the "siesta:" prefix by "scf:" in the relevant scf cycle
output)

(+ changed the order of the monitor_forces_in_scf block, so that it is
executed before mixing).


added:
  Src/compute_max_diff.F
  Src/m_svd.F90
  Src/save_density_matrix.F
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/compute_dm.F
  Src/final_H_f_stress.F
  Src/m_pulay.F90
  Src/m_ts_global_vars.f90
  Src/m_ts_options.F90
  Src/mixer.F
  Src/new_dm.F
  Src/normalize_dm.F
  Src/post_scf_work.F
  Src/scfconvergence_test.F
  Src/setup_hamiltonian.F
  Src/siesta_forces.F
  Src/siesta_options.F90
  Src/sparse_matrices.F
  Src/state_init.F
  Src/write_subs.F

-----------------------------------------------------------------------
2013-08-28  10:30:00 GMT                                     trunk-444
Bug fixes to the preconditioner in the OMM modules
(Fabiano Corsetti)

modified:
  Docs/siesta.tex
  Src/m_dminim.F90
  Src/m_zminim.F90

-----------------------------------------------------------------------
2013-07-31  16:05:00 GMT                                     trunk-443
Update to gnubands program
                                                              
(Nick P. Andersen)

Added a fermi shift flag (-F), and energy range flags (-e -E) to
specify in which range one needs the window. This energy range
specification can be used at the same time as the band-index
specification.

Fixed a bug when printing for spin-polarized calculations.

modified.
  Util/Bands/new.gnubands.f90

-----------------------------------------------------------------------
2013-07-31  16:00:00 GMT                                     trunk-442
Synch patch-logs from siesta-3.0 branch up to siesta-3.2 release

Did a "merge" followed by a "revert ." to keep only the patch logs, to
maintain the ability to merge fixes applied initially to the
siesta-3.0 branch.

(no changes)

-----------------------------------------------------------------------
2013-07-05  15:40:00 GMT                                     trunk-441
Cosmetic fixes to please Cray compiler. Arch.make files for PRACE computers

(Fabiano Corsetti)

* Some cosmetic changes for Cray compiler.

* Added some arch.make files for PRACE computers to Src/Sys

added:
  Src/Sys/arch.make.curie
  Src/Sys/arch.make.fermi
  Src/Sys/arch.make.hermit
  Src/Sys/arch.make.juqueen
  Src/Sys/arch.make.marenostrum
  Src/Sys/arch.make.supermuc
modified:
  Src/m_partial_charges.F
  Src/rhoofd.F
  Src/vmat.F

-----------------------------------------------------------------------
2013-07-04  16:00:00 GMT                                     trunk-440
Avoid allocation of auxiliary index arrays in the general case

* Some auxiliary index arrays intended only for O(N) calculations were
  allocated unconditionally. This has been fixed.

modified:
  Src/initparallel.F

-----------------------------------------------------------------------
2013-06-21  11:10:00 GMT                                     trunk-439
Siesta as subroutine using MPI. Vydrov-VanVoorhis vdW functional

(Implemented by Jose Soler)

* Siesta as a subroutine using MPI.

A new version of fsiesta (siesta forces as a subroutine) that uses MPI
to keep different siesta jobs, with their corresponding memory
allocations, separated as different MPI processes. Each siesta job can
itself run in parallel using its own MPI communicator.

See Util/SiestaSubroutine for more information.

* Implementation of Vydrov-VanVoorhis (VV) vdW functional.

Ref: O.A.Vydrov & T.vanVoorhis, JCP 133, 244103 (2010)
Conditions have been added in vdwxc to trap the VV case, calling the 
corresponding routines in vv_vdwxc, where most of the new code is.


* Minor changes:

Array copy in mesh3d expanded in do loops to circunvent an apparent
compiler bug

Incresed length of some character strings that hold file names

Increased parameter minloc in rhoofd and vmat for better efficiency

Two minor bugs corrected in vdwxc.f90

vdw_exchng changed to vdw_localxc in m_vdwxc

The coefficients for interpolation of phi(d1,d2) in the upper boundary
of d1 and d2 have been corrected in vdwxc:bcucof. But since these
boundary values may be never encountered, this correction is probably
irrelevant.  Additionally, a couple of comments have been corrected,
and the reference output of the graphite_vdw_df test has been updated.

A trap has been added in rdiag and cdiag to handle the trivial
eigenvalue problem for matrices of dimension one, which was not
treated correctly by the LAPACK routines.

Consistency of array names in calls to re_alloc and de_alloc

added:
  Src/SiestaXC/Testers/test2.m
  Src/SiestaXC/Testers/test5.f90
  Src/SiestaXC/Testers/test5.m
  Src/SiestaXC/vv_vdwxc.F90
  Src/fsiesta_mpi.F90
  Src/siesta_master.f90
  Util/SiestaSubroutine/SimpleTest/
  Util/SiestaSubroutine/SimpleTest/Src/
  Util/SiestaSubroutine/SimpleTest/Src/Makefile
  Util/SiestaSubroutine/SimpleTest/Src/phonons.f90
  Util/SiestaSubroutine/SimpleTest/Src/simple_mpi_parallel.f90
  Util/SiestaSubroutine/SimpleTest/Src/simple_pipes_parallel.f90
  Util/SiestaSubroutine/SimpleTest/Src/simple_serial.f90
  Util/SiestaSubroutine/SimpleTest/h2o.fdf
  Util/SiestaSubroutine/SimpleTest/h2o.out
  Util/SiestaSubroutine/SimpleTest/test.sh
renamed:
  Src/fsiesta.F90 => Src/fsiesta_pipes.F90
modified:
  Docs/siesta.tex
  Pseudo/atom/pseudoXML.f
  Pseudo/atom/velect.f
  Src/MPI/mpi_siesta.f90
  Src/Makefile
  Src/SiestaXC/Testers/makefile
  Src/SiestaXC/Testers/test2.f90
  Src/SiestaXC/Testers/test3.F90
  Src/SiestaXC/Testers/test4.F90
  Src/SiestaXC/atomxc.F90
  Src/SiestaXC/cellxc.F90
  Src/SiestaXC/lib-00-README
  Src/SiestaXC/lib-makefile
  Src/SiestaXC/makefile
  Src/SiestaXC/mesh3d.F90
  Src/SiestaXC/siestaxc.F90
  Src/SiestaXC/vdwxc.F90
  Src/SiestaXC/xcmod.f90
  Src/atmfuncs.f
  Src/cdiag.F
  Src/fft.F
  Src/m_timer.F90
  Src/moreParallelSubs.F90
  Src/new_dm.F
  Src/pxf.F90
  Src/rdiag.F
  Src/reinit.F
  Src/rhoofd.F
  Src/setspatial.f
  Src/siesta_end.F
  Src/siesta_forces.F
  Src/siesta_init.F
  Src/siesta_move.F
  Src/struct_init.F
  Src/vmat.F
  Tests/Reference/graphite_vdw_df.out
  Tests/graphite_vdw_df/graphite_vdw_df.fdf
  Util/SiestaSubroutine/README
  Util/Vibra/Src/outbands.f
  Util/Vibra/Src/vibrator.f
  version.info
  Src/fsiesta_pipes.F90


-----------------------------------------------------------------------
2013-06-10  14:20:00 GMT                                     trunk-438
Bug fixes in constraints routine

* Make sure that the atomic indices are in the correct range.

* Add code to guarantee the enlargement of an array in the
general case.

(Thanks to Nick P. Andersen)

modified:
  Src/fixed.F

-----------------------------------------------------------------------
2013-06-10  14:10:00 GMT                                     trunk-437
New option for KB projector generation (J. Junquera)

With the option

KB.New.Reference.Orbitals  T

the routine to generate KB projectors will use slightly different
parameters for the construction of the reference orbitals involved
(Rmax=60 bohr both for integration and normalization).

modified:
  Docs/siesta.tex
  Src/atom.F
  Src/atom_options.F90

-----------------------------------------------------------------------
2013-06-05  13:00:00 GMT                                     trunk-436
Charge confinement and filteret basis generation options

Two experimental features related to basis-set generation:

* Charge confinement feature for basis set generation
(Emilio Artacho)

Present soft confinement produces bad polarisation orbitals if the
original atomic orbitals are unbound or very wide (automatic
polarisation still gives too wide orbitals).

A Q/r potential with Yukawa decay can now be added to the atomic and
soft-confinement potentials. Soft-confinement sshould now be used only
for the soft tail cutting with r_in ~ 0.9 r_c.

See the manual for more details.

* New 'filteret' basis-set scheme.  
(Julian Gale)

New options to use the filterets (functions appearing in the filtering
mechanism proposed by Anglada and Soler) as a systematic basis
set. The size of the basis set is controlled by the filter cut-off for
the orbitals.  

See the manual for more details.

(Thanks to Tristana Sondon for help in merging)

added:
  Tests/Reference/chargeconf-h2o.out
  Tests/Reference/h2o_filteret_basis.out
  Tests/chargeconf-h2o/
  Tests/chargeconf-h2o/chargeconf-h2o.fdf
  Tests/chargeconf-h2o/chargeconf-h2o.pseudos
  Tests/chargeconf-h2o/makefile
  Tests/h2o_filteret_basis/
  Tests/h2o_filteret_basis/h2o_filteret_basis.fdf
  Tests/h2o_filteret_basis/h2o_filteret_basis.pseudos
  Tests/h2o_filteret_basis/makefile
modified:
  Docs/siesta.tex
  Src/atm_transfer.f
  Src/atm_types.f
  Src/atmparams.f
  Src/atom.F
  Src/basis_specs.f
  Src/basis_types.f
  Src/initatom.f
  Src/m_filter.f90
  Src/old_atmfuncs.f

-----------------------------------------------------------------------
2013-06-05  12:40:00 GMT                                     trunk-435
Compilation fixes for tbtrans. Cosmetic changes

The old symbol "DAT_double" was still being used in one of the
routines of the new tbtrans program (in Util/TBTrans_rep).  References
related to new timer_tree module were missing in both versions of
tbtrans.

In parallel operation, the "bye" routine now produces output only
in the master node.

In runs which are requested to end after the initial processing of
the structure, XMOL output is produced if requested.

modified:
  Src/siesta_init.F
  Src/sys.F
  Util/TBTrans/Makefile
  Util/TBTrans_rep/Makefile
  Util/TBTrans_rep/m_tbt_iotshs.F90
  Util/TBTrans_rep/m_tbt_read_tshs.F90

-----------------------------------------------------------------------
2013-03-31  19:00:00 GMT                                     trunk-434
Experimental timer with call-tree awareness

A new timer, based on wall time in the master node, and keeping track
of the tree-structure of the timed sections, can be enabled by setting

UseTreeTimer T

in the fdf file.

It works in tandem with the default timer, and it currently produces a
report at the end of the output file in which the parent-child
relationships are represented by simple indentation.

Some new timing calls have been added in the code.

added:
  Src/die.F
  Src/timer_tree.f90
modified:
  Src/Makefile
  Src/SiestaXC/makefile
  Src/fft.F
  Src/m_hsx.F
  Src/m_iodm.F
  Src/m_timer.F90
  Src/m_walltime.f90
  Src/matel.f
  Src/molecularmechanics.F90
  Src/setup_H0.F
  Src/setup_hamiltonian.F
  Src/siesta_forces.F
  Src/siesta_init.F
  Src/timer.F90


-----------------------------------------------------------------------
2013-03-26  12:35:00 GMT                                      trunk-433
Implemented the non-O(N) version of the Ordejon-Mauri functional

(Work by Fabiano Corsetti)

* This re-implementation of Ordejon-Mauri will be referred to as the Orbital
  Minimization Method (OMM); it is now a third available option for the keyword
  SolutionMethod, alongside diagon and OrderN.
* The OMM is not an O(N) functional at present, since no localization is imposed
  on the trial orbitals; in future, it can be extended to include this option
* The functional is contained in two new modules: m_dminim (double
  precision routines) and m_zminim (double complex routines)
* The modules works in serial with LAPACK, or in parallel with MPI and
  ScaLAPACK
* The double precision module (for Gamma point calculations) has the option of
  using sparse matrix-dense matrix multiplications, with custom-coded algorithms
  that interface between SIESTA's native sparse matrix scheme and (Sca)LAPACK's
  dense matrix scheme
* The SIESTA manual has been updated to include a list of all OMM-related
  keywords, with detailed explanations and notes to the user

added:
  Docs/CHANGES.minim
  Src/m_dminim.F90
  Src/m_zminim.F90
  Tests/OMM_h2o/
  Tests/OMM_h2o/Makefile
  Tests/OMM_h2o/OMM_h2o.fdf
  Tests/OMM_h2o/OMM_h2o.pseudos
  Tests/OMM_si/
  Tests/OMM_si/Makefile
  Tests/OMM_si/OMM_si.fdf
  Tests/OMM_si/OMM_si.pseudos
  Tests/Reference-xml/OMM_h2o.xml
  Tests/Reference-xml/OMM_si.xml
  Tests/Reference/OMM_h2o.out
  Tests/Reference/OMM_si.out
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/compute_dm.F
  Src/local_DOS.F
  Src/post_scf_work.F
  Src/projected_DOS.F
  Src/siesta_analysis.F
  Src/siesta_options.F90
  Src/write_subs.F
  Tests/Makefile

-----------------------------------------------------------------------
2013-01-24  14:30:00 GMT                                      trunk-432
Export some MPI symbols explicitly. Remove obsolete symbols

Author: A. Garcia

Some PGI compilers do not consider symbols public by default
when they are inherited through a chain of module 'uses'. This
affected in particular some MPI symbols in the mpi_siesta module.
The symbols are now made 'public' explicitly.

The symbols DAT_single, DAT_double, etc, which were necessary to
deal with machines (old Crays) with different meanings for single
and double precision, have now been removed from the MPI interface
modules. They still appear in some routines as aliases for imports.

modified:
  Src/MPI/mpi.F
  Src/MPI/mpi_siesta.f90
  Src/m_glob_sparse.F90
  Src/m_ts_electrode.F90
  Src/m_ts_gf.F90
  Src/m_ts_in_siesta.F
  Src/m_ts_scattering.F

-----------------------------------------------------------------------
2013-01-21  11:15:00 GMT                                      trunk-431
Fix possible problems in temporary file name

Author: A. Garcia

The name of the temporary file used to dump the contents of the fdf file
could be malformed in certain situations. The algorithm has now been
changed.

(Thanks to Romuald Carpentier)

(+ Remove fossil DEBUG sections)

modified:
  Src/reinit.F

-----------------------------------------------------------------------
2013-01-21  10:45:00 GMT                                      trunk-430
Rationalize fdf logging and debugging

Author: A. Garcia

In runs with many processors, the default logging behavior was affecting
performance. The policy is now as follows.

* Debugging and logging.

By default, all the fdf requests are logged, printing the final value
extracted (if it is the default value, it is identified as such).
In MPI operation, only the master node does the logging, unless the
"output-level" is set to a value >= 2. This can be done directly in
the fdf file:

fdf-output 2  # Turn on logging for all nodes
fdf-output 0  # Turn off logging completely

No debugging is done, unless the "debug-level" is set to a value greater
than zero. The most meaningful way to use this feature is to set the
debugging level before the fdf data structures are built. This can be
achieved by calling the routine fdf_setdebug with the appropriate level
and file name *before* the call to fdf_init.  This gives full control
over the behavior. This is not currently used in Siesta.

Alternatively, if the library is compiled with the pre-processor symbol
FDF_DEBUG defined, it will set the debug level to 2 (exhaustive) for all
nodes in the system. (It will also set the output level to 2 (all nodes)).

If the debugging level (>=2) is only specified in the fdf file itself,
the library will provide a print-out of the final data structure generated
(in all nodes).

fdf-debug 2

(+ Support for FDF_DEBUG in the Makefile)
(+ Cosmetic improvement to the numerical field in the log files)

modified:
  Src/Makefile
  Src/fdf/fdf.F90
  Src/fdf/fdf.Standard
  Src/reinit.F

-----------------------------------------------------------------------
2013-01-18  10:30:00 GMT                                      trunk-429
JobList utility to organize and run multiple jobs 

Author: J. Soler

The JobList directory contains utilities to organize, to run or queue,
and to collect results of multiple siesta jobs. It is particularly
suited for preliminary convergence tests, and it uses only fortran
codes and minimal shell scripts.
  
added:
  Util/JobList/
modified:
  Src/siesta_end.F
  Src/siesta_init.F
  Util/README
-----------------------------------------------------------------------
2012-12-13  17:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-428
Bugfix in spin calculations for TBTrans_rep

(This fixes a problem in the new TBtrans by N.P. Andersen)

* The current and the averaged arrays were not initialized correctly
  for the case of spin:

  - TAv, TEigAv, TDOSAv, PDOSAv, Current
  
modified:
  Util/TBTrans_rep/tbtrans.F90

-----------------------------------------------------------------------
2012-12-10  09:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-427
More fixes and tests for new transiesta/tbtrans_rep code

Several new bug fixes and clarifications have been added to the new
TranSiesta/TBTrans code, as well as more tests. Be sure to see the file
Docs/TranSiestaUpdate.pdf for information about the new features and
behavior changes.

* Added deallocation routine to glob_sparse module
* Added preliminary code for doing calculations in TBtrans without
  inner cell distances (for now this has no importance but provides
  a stepping stone for future development)
* Bugfix for 'forces' run (bcast of coordinates was not performed)
* Wrap mulliken-charges message in MPI runs

* Added new test cases:

  - The voltage test case au_111_capacitor sometimes exhibits problems of 
    accuracy, dependent on compiler and execution options, due to the small
    conductance. More rigorous tests have been added:

    + ts_au_100
    + ts_au_100_repetition
    + ts_au_100_0.25V
    + ts_au_100_repetition_0.25V

    which optionally exercise both the new "repetition" option and the
    applied bias. They are based on an Au-chain in between gold 100 surfaces.
    
  - These tests are quite large and thus take a significant amount of CPU 
    time. They might not be needed if the old tests still perform well and
    the outputs agree with those in the Tests/Reference.

added:
  Tests/Reference/TranSiesta-TBTrans/ts_au_100/
  Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/
  Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/
  Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/
  Tests/TranSiesta-TBTrans/ts_au_100/
  Tests/TranSiesta-TBTrans/ts_au_100_0.25V/
  Tests/TranSiesta-TBTrans/ts_au_100_repetition/
  Tests/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/
modified:
  Docs/TranSiestaUpdate.pdf
  Src/iopipes.F90
  Src/m_glob_sparse.F90
  Src/m_hs_matrix.f90
  Src/m_ts_electrode.F90
  Src/m_ts_gf.F90
  Src/m_ts_in_siesta.F
  Src/mixer.F
  Src/ts_init.F90
  Util/TBTrans_rep/m_tbt_options.F90
  Util/TBTrans_rep/tbtrans.F90


-----------------------------------------------------------------------
2012-11-20  09:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-426
Bug fixes for new transiesta/tbtrans_rep code

Several bug fixes and clarifications have been added to the new
TranSiesta/TBTrans code. Be sure to see the file
Docs/TranSiestaUpdate.pdf for information about the new features and
behavior changes.

* Corrected the DOS calculations with spin factors
* Bugfix for units in AtomPDOS and COOP calculations (TBtrans_rep)
* Renamed FDF-option TS.ReUseGF to TS.TBT.ReUseGF (TBtrans_rep)
* Fixed options not being seen (TS.TBT.CalcIEig)
* Added all output files to the documentation
* Added Header information for all TBtrans_rep data files
* Added dummy routine in m_glob_sparse for non-MPI compilations
* Avoid f2003 features for pointer handling
* Use alloc module in m_hs_matrix
* Handling of FDF-log files corrected in TBtrans_rep (late merge)

modified:
  Docs/TS-npa.CHANGES
  Docs/TranSiestaUpdate.pdf
  Docs/siesta.tex
  Src/Makefile
  Src/m_glob_sparse.F90
  Src/m_hs_matrix.f90
  Src/m_ts_contour.f90
  Src/m_ts_electrode.F90
  Src/m_ts_gf.F90
  Src/ts_init.F90
  Util/TBTrans_rep/atompdos.F90
  Util/TBTrans_rep/coop.F90
  Util/TBTrans_rep/m_tbt_options.F90
  Util/TBTrans_rep/m_tbt_out.f90
  Util/TBTrans_rep/tbt_reinit.F90
  Util/TBTrans_rep/tbtrans.F90

-----------------------------------------------------------------------
2012-11-14  18:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-425
Use scratch fdf log files for non-master nodes

Unless the FDF_DEBUG preprocessor compilation option is in effect,
non-master nodes in MPI operation do not use named log files. Instead,
they use "scratch" files which the operating system opens in
appropriate places.  This will reduce clutter.

(Note that this feature is in general dangerous if the files are
large, as they can inadvertently fill up filesystems or otherwise
create havoc. However, the fdf log files are quite small.)

(Contributed by Nick P. Andersen)

(+ rearranged the statements that update INCFLAGS in the fdf
makefile. This could trap some incorrect settings of this variable in
the top arch.make)

modified:
  Src/fdf/fdf.F90
  Src/fdf/makefile

-----------------------------------------------------------------------
2012-10-31   9:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-424
Bug fixes for array bounds 

There were array bounds problems in:

- The new code to print the initial spin polarization, for the case
  of non-collinear spin.

- The 'transition_rate' routine: ek and ek_local were wrongly
  dimensioned to no_l, instead of no_u.

- The mesh1d file in SiestaXC

(+ removed old debugging code in 'domain_decomposition')

modified:
  Src/domain_decom.F
  Src/new_dm.F
  Src/transition_rate.F
  Src/SiestaXC/mesh1d.f90

-----------------------------------------------------------------------
2012-10-30   9:50:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-423
Transiesta and TBTrans enhancements by Nick P. Andersen

A number of enhancements to the TranSiesta and TBTrans subsystems have
been added by Nick Papior Andersen, of the Technical Univ. of Denkmark.

A full list of the changes follows. Users are advised to read the file
Docs/TranSiestaUpdate.pdf, as well as the manual, to get a primer on
the new features and things to watch out for and explore in the new
version.

* Added the repetition of the electrode unit cells to limit the Transiesta
  calculation time.
  - Through the options:
    + TS.ReplicateA1Left
    + TS.ReplicateA2Left
    + TS.ReplicateA1Right
    + TS.ReplicateA2Right
  - We take advantage of Bloch's theorem to accomplish this.

* All contour related variables have been assigned a contour type which 
  gathers the information about the energy points. This will provide a cleaner
  interface for those wishing to extend the contour method.

* Changed the contour energy points to be shown in eV, rather than Ry
  - I.e. they can not be compared in the out-file directly

* Simplified the contour distribution so as to not have any parallel arrays

* The surface Green's function files are now created during option reading
  This accomodates two important things:
  1. The GF files are now entirely moved out of the transiesta routine for
     clarity,
  2. Any wrong setup of the system will be caught immediately instead of after
     the diagon run.

* The GF files have been renamed using <systemlabel>.TSGF[L|R]

* Added proper checks of the atomic coordinates when using the electrodes,
  will now exit if not correctly setup. (checks down to 1e-4)

* Added checks of the unit cell setup, so that in transiesta runs the
  unitcell must have a distinct z-direction 

* Added checks of the electrodes to show a warning if the electrodes extend
  into a third neighbouring cell in the transport direction.

* Clarified the fermi level in the electrodes, it was in fact the electrode
  fermi level shift

* Added a lot of systematic output for clarification about the Transiesta
  parsing of the system. It will provide how the systems are setup in buffer
  regions, electrode region and scattering region.

* Informational output regarding the charge re-distribution during the SCF 
  cycles.

* Fully parallelized the Greens function creation.

* Bugfix in the Transiesta package regarding the DM.UseSaveDM T

* Added a general operator which yields the parallelised number of iterations
  of an arbitrary loop (.PARCOUNT.), see parallel.F90

* Memory-optimized several routines in the transiesta package

* GFGammaGF has recieved an overhaul which speeds it up by a factor of two 
  and limits memory substantially!

* Renamed <systemlabel>.CONTOUR to <systemlabel>.TSCC

* Added a ts_init routine for gathering of the required initializations

* Added notices to users about the use of non-optimal energy points in 
  transiesta runs.

* In case of electrodes not matching with the Transiesta setup it will print
  out a high-precision block which can be used for the FDF block.

* Added 'chargecorrection' feature, maybe not exact enough to be used,
  however, it can be used to force the charges to be "correct"

* Changed the Transiesta k-points to be written to file <systemlabel>.TSKP
  instead of overwriting the <systemlabel>.KP

* Cleaned up a lot of code in all transiesta modules. 
  One can still clean up some more code, however, we have made good ground.

* Added a precision for transiesta in precision.F90
  - Currently not used, however, could be the future of limiting Transiesta memory  

* Added -DTRANSIESTA_DEBUG statements to also debug Transiesta

* Added a new TBTrans utility which can be found in Util/TBTtrans_rep
  - Fully parallel across energy points and forward parallel across k-points
  - This is tightly integrated with transiesta
  - Has all the features in Transiesta (parallel GF creation, repetition, etc.)
  - Has reenabled the calculation of Atomic PDOS
    + Needs to be checked
  - Has reenabled the calculation of COOP
    + Needs to be checked
  - Prepared to automatically add flags for user defined formats.
  - The GF files have been renamed using <systemlabel>.TBTGF[L|R]
  - The regions output also shows which atoms are in the PDOS region
  - Added a tbt_kgrid_Monkhorst_Pack block which is only read by TBtrans,
    if it does not exist, it will read kgrid_Monkhorst_Pack instead.

* Bugfix in Tests/script_ts to be able to use bash

* Added a new test:
  - Tests/TranSiesta-TBTrans/ts_au_repetition/
    This will default to use the new TBTrans_rep code.

*** General SIESTA changes:

* Added a new fdf option MinSCFIterations to prevent the second iteration
  jump in MD simulations.

* Increased the width of the output field for dDmax, to improve
  the monitoring of the convergence of the density matrix.

* Added IPO flags for the Makefile to be able to abstract from that.
  Libraries should not be compiled with IPO for obvious reasons.
* Bugfix in the configure command upon checking the NetCDF linking (netcdf
  is now generally a two library linking, which requires "-marks)
* Added 'obsolete' and 'deprecated' keys for the FDF library

* For creating the Hamiltonian at various k-points new modules have been added:
  - m_hs_matrix.f90 
    + Used to generate a square (dense) matrix from the sparse matrix.
      Supplying a k-point will create the equivalent k-point Hamiltonian
    + One can also use this to acquire the transfer matrices
    + Symmetrizing the hamiltonian and trimming it is also enabled.
  - m_glob_sparse.f90
    + Will globalize any arrays which are distributed in SIESTA mpi runs
    + Used in MPIruns in combination with m_hs_matrix.

* Added a makefile for the manual (make siesta, make final, make extra)
* Added hyperref to the manual

* Added note about GCC 4.7.1 not being compatible with the forces type run,
  they have disregarded the piped files in the compiler. Revert to GCC 4.6
  or older.

removed:
  Docs/siesta.ind
  Src/m_ts_contour.F
added:
  Docs/Makefile
  Docs/TS-npa.CHANGES
  Docs/TranSiestaUpdate.pdf
  Src/kpoint_convert.f90
  Src/m_glob_sparse.F90
  Src/m_hs_matrix.f90
  Src/m_ts_cctype.f90
  Src/m_ts_contour.f90
  Src/m_ts_gf.F90
  Src/m_ts_voltage.F90
  Src/ts_init.F90
  Src/ts_show_regions.f90
  Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/
  Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.AVTRANS
  Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.TEIG
  Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.TRANS
  Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.out
  Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/elec_au_111_abc.out
  Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/tbt_au_111_capacitor.out
  Tests/TranSiesta-TBTrans/ts_au_repetition/
  Tests/TranSiesta-TBTrans/ts_au_repetition/Au.psf
  Tests/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.fdf
  Tests/TranSiesta-TBTrans/ts_au_repetition/elec_au_111_abc.fdf
  Tests/TranSiesta-TBTrans/ts_au_repetition/makefile
  Tests/TranSiesta-TBTrans/ts_au_repetition/script.sh
  Util/TBTrans_rep/
  Util/TBTrans_rep/Makefile
  Util/TBTrans_rep/atompdos.F90
  Util/TBTrans_rep/coop.F90
  Util/TBTrans_rep/m_lowdin.f90
  Util/TBTrans_rep/m_tbt_iotshs.F90
  Util/TBTrans_rep/m_tbt_kpoints.F90
  Util/TBTrans_rep/m_tbt_options.F90
  Util/TBTrans_rep/m_tbt_out.f90
  Util/TBTrans_rep/m_tbt_read_tshs.F90
  Util/TBTrans_rep/tbt_init.F90
  Util/TBTrans_rep/tbt_reinit.F90
  Util/TBTrans_rep/tbtrans.F90
  Util/TBTrans_rep/transmission.f90
  Util/TBTrans_rep/tt_eig.f90
modified:
  Docs/README
  Docs/siesta.tex
  Src/MPI/Makefile
  Src/Makefile
  Src/compute_dm.F
  Src/configure
  Src/dhscf.F
  Src/diagkp.F
  Src/fdf/fdf.F90
  Src/m_ts_aux_rout.F
  Src/m_ts_electrode.F90
  Src/m_ts_in_siesta.F
  Src/m_ts_io.F90
  Src/m_ts_kpoints.F90
  Src/m_ts_options.F90
  Src/m_ts_scattering.F
  Src/parallel.F
  Src/precision.F
  Src/scfconvergence_test.F
  Src/siesta_forces.F
  Src/siesta_init.F
  Src/siesta_options.F90
  Src/version.F90
  Src/write_subs.F
  Tests/TranSiesta-TBTrans/README
  Tests/script_ts.mk
  Util/SiestaSubroutine/README
  Util/TBTrans/Makefile

-----------------------------------------------------------------------
2012-10-25  10:45:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-422
Fix handling of debugging preprocessor symbol in fdf

The generic DEBUG symbol has been replaced by FDF_DEBUG.  

The declaration of the recently added 'filedebug' local variable has
been moved out of a preprocessor block.

modified:
  Src/fdf/fdf.F90

-----------------------------------------------------------------------
2012-10-24  14:45:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-421
Add rp and rv options to XML pseudopotential handling

The RPBE and revPBE XC flavors were not correctly handled by
the XML routines.

modified:
  Pseudo/atom/pseudoXML.f
  Util/pseudo-xml/xml2psf_helper.f

-----------------------------------------------------------------------
2012-10-24  13:50:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-420
Enable MD continuation runs even if the restart file is not available

(Fabiano Corsetti)

If the user has selected MD.UseSaveXV to continue an MD run from a
previously computed set of positions and velocities (in the XV file),
but the appropriate restart file is not found, the positions x(t) and
velocities v(t-dt) are read from the XV file, and the positions are
then backward-propagated by one time step using the Euler method to
start the MD run from time (t-dt) with a consistent set of positions
and velocities.

In previous versions the program complained if the appropriate restart
file was not available. This patch enables cross-restarts (i.e., an
Annealing calculation followed by a Nose simulation) within the simple
"reuse-the-XV-file" framework. The last point computed in the previous
simulation will be basically repeated in the continuation run. For
"seamless" continuations, the flavor-specific restart file is needed.

N.B.: The value of the time step of the previous run (from which the
XV file has been generated) should be equal to that of the current
run. This information is not saved in the XV file, and so it is not
possible for the code to tell whether the two runs are consistent.

N.B. 2: The backward-propagation is only used for runs with more than
one time step, and is done in routine 'struct_init'.

This fix applies to Verlet, Nose, PR, and NPR runs.

* New tests:  

   md-single-run, md-cont, md-cont-no-restart-file

   md-anneal-cont

(+ used correct fdf option for annealing flavor in md_anneal test)

added:
  Tests/md-anneal-cont/
  Tests/md-anneal-cont/README
  Tests/md-anneal-cont/makefile
  Tests/md-anneal-cont/script.sh
  Tests/md-cont/
  Tests/md-cont-no-restart-file/
  Tests/md-cont-no-restart-file/README
  Tests/md-cont-no-restart-file/makefile
  Tests/md-cont-no-restart-file/script.sh
  Tests/md-cont/README
  Tests/md-cont/makefile
  Tests/md-cont/script.sh
  Tests/md-single-run/
  Tests/md-single-run/README
  Tests/md-single-run/makefile
  Tests/md-single-run/script.sh
modified:
  Docs/siesta.ind
  Docs/siesta.tex
  Src/Makefile
  Src/dynamics.f
  Src/iomd.f
  Src/struct_init.F
  Tests/md_anneal/md_anneal.fdf

-----------------------------------------------------------------------
2012-10-24  13:30:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-419
Add option to turn off time-reversal symmetry for k-points

If the fdf option TimeReversalSymmetryForKpoints is set to "false",
the program will keep all the k-points in the BZ, without using the (k,-k)
implicit symmetry which is valid in the absence of external magnetic
fields or spin-orbit coupling. This feature is added for completeness and
test purposes.

In spin-polarized calculations, the code now prints a summary of the
initial spin polarization when the density-matrix is initialized.

modified:
  Docs/siesta.tex
  Src/Makefile
  Src/find_kgrid.F
  Src/kpoint_grid.F90
  Src/kpoint_pdos.F90
  Src/new_dm.F

-----------------------------------------------------------------------
2012-10-24  13:20:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-418
Use actual number of electrons in optical calculations

The 'optical' routine now uses the actual number of electrons (rather
than the nominal number of valence electrons) for non-spin-polarized
calculations. This affects only systems with a net charge. Note that
spin-polarized calculations were already using the actual number
of electrons.

(Thanks to Alexander Vozny)

modified:
  Src/Makefile
  Src/optical.F

-----------------------------------------------------------------------
2012-10-23  14:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-417
Allow doping feature for all systems

The "SimulateDoping" option is now enabled for "bulk" systems, in the
interest of generality and to fix an inconsistency in the logic for
charge removal. (Thanks to N. P. Andersen)

modified:
  Src/dhscf.F

-----------------------------------------------------------------------
2012-10-23  14:05:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-416
Fix spin loop in initialization in Eig2DOS program

The initialization code was missing a loop over spin.

(+ changes to fix compiler-dependent complaints)

(Thanks to N.P. Andersen)

( + Update reference outputs for si_fatbands test )


modified:
  Tests/Reference-xml/si_fatbands.xml
  Tests/Reference/si_fatbands.out
  Util/Eig2DOS/Eig2DOS.f90

-----------------------------------------------------------------------
2012-10-23  14:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-415
New options for wavefunction output. 'Fatbands' analysis. Mprop enhancements

(A. Garcia)

* Enhanced 'bands' routine to write out the wavefunctions

If the fdf symbol

WFS.Write.For.Bands

is set to .true., the program will write out the wavefunctions
corresponding to the bands specified in the BandLines block.

There are now different file names for wavefunction output:

SystemLabel.bands.WFSX      : produced by BandLines + WFS.Write.For.Bands
SystemLabel.fullBZ.WFSX     : for COOP/COHP-related use
SystemLabel.selected.WFSX   : produced by WaveFuncKPoints

Note that for down-stream processing, some of these files might have
to be renamed to simply 'SystemLabel.WFSX'.

A subset of the bands (for both the BandLines and COOP/COHP cases) can
be specified by the fdf keywords:

WFS.Band.Min  (int, default: 1)
WFS.Band.Max  (int, default: number of orbitals)

The energy window options 

WFS.Energy.Min
WFS.Energy.Max

are not in effect for BandLines.


* New 'Fatbands' functionality

A new utility program ('fat') has been added to generate 'fatband'
information. It processes .WFSX files (typically produced during a
"bands" calculation) and .HSX files to produce 'EIGFAT' files
containing both the eigenvalues ("eig") and the value of the
projection of the wavefunction on a given orbital set ("fat"). Most of
the code is shared with the PDOS/COOP/COHP program mprop, hence its
location in the Util/COOP directory.

A new plotting converter, eigfat2plot, has been placed in the
Util/Bands directory. It is suitable for simple 'gnuplot' use.

Added Tests/si_fatbands


* Modified Denchar to read WFSX files

Denchar now reads directly the newer-format WFSX files,
which are more compact.

Also, added a new full example in Util/Denchar/Examples, and
two python scripts for contour plots, courtesy of Pablo Aguado.

* Moved gnubands.f program to new directory Util/Bands
* Added new 'gnubands' program, with more options (Util/Bands/new.gnubands)

* Mprop enhancements

- New energy-range and band-index options in mprop.

* Upgrade of the Util/COOP/mprop program, with new options and
  clarification of existing ones:

- Allow specification of subsets of bands in Util/COOP/mprop

New options "-b min_band -B max_band" to allow the use of restricted
band sets in the generation of PDOS, COOP, and COHP curves.

- Clearer energy-range options in mprop program

The -m/-M options now refer to eigenvalues.  Together with the band
options (-b/-B), they determine the eigenvectors actually taken into
account.

- Add plotting window options to mprop. Cosmetics

The plotting window can now be specified with the -w/-W options. By
default it is determined on the basis of the eigenvalue range.

(+ add missing declaration to dm_creator.f90)

added:
  Tests/Reference-xml/si_fatbands.xml
  Tests/Reference/si_fatbands.out
  Tests/si_fatbands/
  Tests/si_fatbands/makefile
  Tests/si_fatbands/si_fatbands.fdf
  Tests/si_fatbands/si_fatbands.pseudos
  Util/Bands/
  Util/Bands/Makefile
  Util/Bands/README
  Util/Bands/eigfat2plot.f90
  Util/Bands/f2kcli.F90
  Util/Bands/fat.gplot
  Util/Bands/m_getopts.f90
  Util/Bands/new.gnubands.f90
  Util/COOP/Tests/si_fatbands/
  Util/COOP/Tests/si_fatbands/README
  Util/COOP/Tests/si_fatbands/fatbands.mpr
  Util/COOP/fat.f90
  Util/Denchar/Examples/2dplot.py
  Util/Denchar/Examples/FullExample.fdf
  Util/Denchar/Examples/Si.psf
  Util/Denchar/Examples/surf.py
  Util/Denchar/Src/readwavesx.f
renamed:
  Util/gnubands.f => Util/Bands/gnubands.f
modified:
  Docs/siesta.ind
  Docs/siesta.tex
  Src/Makefile
  Src/bands.F
  Src/diagk.F
  Src/siesta_analysis.F
  Src/writewave.F
  Util/COOP/Makefile
  Util/COOP/README
  Util/COOP/Tests/README
  Util/COOP/dm_creator.F90
  Util/COOP/main_vars.f90
  Util/COOP/mprop.f90
  Util/COOP/subs.f90
  Util/Denchar/Docs/CHANGES
  Util/Denchar/Docs/denchar.tex
  Util/Denchar/Src/Makefile
  Util/Denchar/Src/denchar.f
  Util/Eig2DOS/Eig2DOS.f90
  Util/README

-----------------------------------------------------------------------
2012-10-23  13:50:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-414
Hirshfeld and Voronoi charges. Bader analysis output

The Hirshfeld and Voronoi methods are partial-charge estimations based
directly on the charge density. They thus complement the Mulliken analysis
which depends on the density-matrix.

Relevant fdf keywords:

WriteHirshfeldPop T
WriteVoronoiPop T

See the manual for details.

(Code for Hirshfeld and Voronoi analysis contributed by P. Ordejon.
Integrated into the dhscf workflow by A. Garcia.)

* Implementation of Bader charge output

If the option

  SaveBaderCharge T

is used, the program will write the electronic charge density with an
extra set of model core charges, useful for post-processing by a Bader
"atoms in molecules" analysis. See the manual for important details.

The grid2cube program in Util has been extended to deal with the .BADER
file.

* New test: h2o-pop

-----------------------------------------------------------------------
2012-09-25  10:12:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-413
Use a 'unique' string in fdf log files

In MPI operation, the fdf subsystem writes log files (and optionally
debug files) to the /tmp filesystem. Up to now the file names were not
unique across jobs, which led to failures. Now a string based on the
5 least significant digits of the current time is added to the file
prefix. 

Also, removed the printing of a log message regarding the number of
lines processed while setting up the fdf data structures, which could
potentially confuse some systems.

modified:
  Src/reinit.F
  Src/fdf/fdf.F90

-----------------------------------------------------------------------
2012-08-27  10:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-412
Nullify pointers in diagkp

Pointers were not properly nullified in diagkp.

(Thanks to Nick P. Andersen)

(+ clean up extra path dependencies in Denchar Makefile)

modified:
  Src/diagkp.F

-----------------------------------------------------------------------
2012-06-21  10:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-411
Fix bug in fdf_bbackspace. No .ion.nc files for ghosts

A bug in fdf_bbackspace made it take two steps back when at the end of
an fdf block. This has now been fixed, removing also the superfluous
'pline' argument.

When dealing with ghost atoms, the .ion.nc files containing ionic
information in netCDF format cannot yet be read back properly. Their
generation has been deactivated for now. Users can still use the
standard .ion files in ASCII format with the option 'UserBasis T'.

modified:
  Docs/siesta.tex
  Src/basis_io.F
  Src/basis_specs.f
  Src/fdf/fdf.F90

-----------------------------------------------------------------------
2012-06-15  15:09:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-410
Improved the estimation of the size of the automatic cell

If not specified, Siesta generates automatically a unit cell for
"molecular" or "atomic" systems. The criterion is that the cell is big
enough to avoid interactions between orbitals in two different cells.

Up to now, the estimation of the size of the orbitals was given by
the cutoff of Vna. But if the basis set contains large orbitals which
are not occupied in the ground state, this estimate is too short.

The "size of the atom" is now estimated as the largest of rc(Vna) and
the cutoffs of all the orbitals. 

modified:
  Src/Makefile
  Src/automatic_cell.f

-----------------------------------------------------------------------
2012-04-13  15:05:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-409
Extended the functionality of the 'eig2dos' program

A new directory Util/Eig2DOS holds an updated version of the
venerable 'eig2dos' program, with a new command-line interface
that allows to specify all the parameters and new capabilities:

-- Optional use of the k-point weight information in a .KP file.
-- Selection of a range of bands for the calculation of the DOS.

Invoke the program as  'Eig2DOS -h' for a synopsis.

(A. Garcia)

added:
  Util/Eig2DOS/
  Util/Eig2DOS/Eig2DOS.f90
  Util/Eig2DOS/Makefile
  Util/Eig2DOS/m_getopts.f90
renamed:
  Util/eig2dos.f => Util/Eig2DOS/original.eig2dos.f
modified:
  Docs/siesta.ind
  Docs/siesta.tex
  Util/README

-----------------------------------------------------------------------
2012-04-04  10:40:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-408
Close netCDF file descriptors for DM and DMHS files

The descriptors for the DM.nc and DMHS.nc netCDF files are kept open
during the SCF cycle, but should be closed at the end of it to avoid
resource exhaustion in, say, MD runs. This was not done due to a
programming error.  They are now closed at the beginning of the next
SCF cycle.

(Thanks to Nick Papior Andersen)

modified:
  Src/iodm_netcdf.F90
  Src/iodmhs_netcdf.F90

-----------------------------------------------------------------------
2012-03-09  15:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-407
Extend DM normalization diagnostics

In order to conserve the number of electrons N, the density matrix
(DM) has to be normalized: Tr[S*DM]=N, where S is the overlap matrix.

The DM might not be normalized because it has been re-used (and
re-arranged) from a previous geometry step, or because of some error
in its computation during the scf cycle.  The two cases are now
reported differently:

In the first scf step, the fractional tolerance is 0.001 (tighter than
the previous default of 0.01), and a "Note" is printed.

In subsequent steps, the fractional tolerance can be specified
by means of the fdf symbol

DM.Normalization.Tolerance  Tol

and is 1.0e-5 by default.  The program now aborts if this threshold is
breached.

NOTE: The DM might not be normalized upon entry to the (first
geometry) scf loop because of a possible "folding" of the overlap
matrix in gamma-point calculations with small unit cells: the overlaps
of a given unit-cell orbital with multiple images are accumulated
instead of being kept separate. Then, the trace Tr[S*DM_atomic] will
not give the number of electrons.
The folding (which is reported if detected by the program) is done for
efficiency reasons, but might cause problems for further analysis
(i.e., Mulliken charges, or COOP/COHP calculations).

modified:
  Src/Makefile
  Src/normalize_dm.F
  Src/setup_hamiltonian.F
  Src/siesta_options.F90

-----------------------------------------------------------------------
2012-03-08  16:55:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-406
Fix reading of position constraints in block

In %block GeometryConstraints, the simple option

  position  i  j  k  l ...

to list atoms to be kept fixed, was not implemented correctly.

(Thanks to J. Junquera for the bug report and fix)

modified:
  Src/fixed.F

-----------------------------------------------------------------------
2012-03-08  10:40:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-405
Change position of force-monitoring block

The optional calculation of forces inside the scf loop is now done
after printing the current energies. Otherwise the output for etot
would correspond to that for the following iteration, and EHarris
would be wrong.

modified:
  Src/siesta_forces.F

-----------------------------------------------------------------------
2012-03-07  14:25:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-404
Add force convergence diagnostic

When the option to monitor the forces during the SCF cycle is in effect, the
program will print the maximum absolute value of the change in forces from one
step to the next. Other statistics could be implemented.

modified:
  Src/siesta_forces.F

-----------------------------------------------------------------------
2012-03-06  15:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-403
Allow monitoring of forces during SCF cycle

Using the fdf symbol

MonitorForcesInSCF T

the program will compute the forces and stresses at every scf step. 
Use in combination with WriteForces.

modified:
  Src/Makefile
  Src/siesta_forces.F
  Src/siesta_options.F90

-----------------------------------------------------------------------
2012-02-23  9:40:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-402
Update of Andrei Postnikov's utilities to V0.4

Added also the fmpdos program, an alternative to pdosxml.

added:
  Util/Contrib/APostnikov/00README
  Util/Contrib/APostnikov/fmpdos.f
  Util/Contrib/APostnikov/test_mdc.f
modified:
  Util/Contrib/APostnikov/Makefile
  Util/Contrib/APostnikov/README
  Util/Contrib/APostnikov/eig2bxsf.f
  Util/Contrib/APostnikov/md2axsf.f
  Util/Contrib/APostnikov/rho2xsf.f
  Util/Contrib/APostnikov/vib2xsf.f
  Util/Contrib/APostnikov/wraxsf1.f
  Util/Contrib/APostnikov/wraxsf2.f

-----------------------------------------------------------------------
2012-02-22  13:50:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-401
Assorted cosmetic and compilation fixes

* Include missing LDFLAGS symbol in some Util makefiles

modified:
  Util/COOP/Makefile
  Util/Contrib/APostnikov/Makefile
  Util/test-xml/makefile

* Obsolete debug information was still being written to unit 23 in
  domain_decom, including a call to "flush".
  
modified:
  Src/domain_decom.F

* Fix makefile symbols in Util/STM/ol-stm
  The new domain_decomposition symbols and dependencies were missing.

modified:
  Util/STM/ol-stm/Src/Makefile

* Updated bug reporting guidelines

added:
  Docs/REPORTING_BUGS
modified:
  Docs/siesta.tex
  README

* Do not count ghost atoms when printing ionic charge

This was purely cosmetic, but misleading: the variable
zvaltot now records only the sum of (pseudo)protons in
non-ghost species.

(+ cosmetic fix in the printing of lmxkb for ghosts
species in .ion files)

modified:
  Src/atomlist.f
  Src/basis_types.f

* Fix the script in Tests/partial
  Now it can automatically compile the 'fractional' program

modified:
  Tests/partial/script.sh

* Add Util/clean_all.sh script
* Remove scratch fdf directories in Util/GenBasis and Util/Vibra

removed:
  Util/Gen-basis/fdf/
  Util/Vibra/Src/fdf/
added:
  Util/clean_all.sh



-----------------------------------------------------------------------
2012-02-21  17:50:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-400
Assorted bugfixes and cosmetics

Bugfixes for recent features:

* Include support for domain_decom in Denchar makefile

Cosmetic changes:

 - State that the units for mprop distances are Ang
 - Clarify error message in ts_iohs regarding nspin
 - Write eigenvalues in eV in CML file (ioeig)
 - Use $(AR) instead of 'ar' in all makefiles
 - Specify Ry units for H in DMHS netcdf files
 - Fix call to 'memory' in Denchar/stsofr.f

modified:
  Src/Libs/makefile
  Src/MPI/Makefile
  Src/Sys/DOCUMENTED-TEMPLATE.make
  Src/iodmhs_netcdf.F90
  Src/ioeig.f
  Src/m_ts_io.F90
  Src/wxml/makefile
  Src/xmlparser/makefile
  Util/COOP/subs.f90
  Util/Denchar/Src/Makefile
  Util/Denchar/Src/stsofr.f

-----------------------------------------------------------------------
2012-02-21  17:05:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-399
Some cleanup and new options for O(N) solver code

The O(N) solver code is being cleaned up, and more options are being
added, but should still be used with care and for systems for which
it is appropriate.

* More documentation and better variable names and structure in some
  files.

* Stop if O(N) chemical potential calculation is requested in parallel
  
  The code in chempot is not correctly parallelized yet.  Now the
  program stops at the beginning of the run if any of the relevant fdf
  options is enabled.
  
* Implement graph-based domain decomposition for O(N) routines
  
  Based on code by Rogeli Grima (BSC).
  
  It is enabled by defining
  
  UseDomainDecomposition T
  
  in the fdf file. NOTE that if you use NetCDF you also need:
  
  WriteDMNetcdf F
  WriteDMHS-netcdf F
  
  until a non-local call to LocalToGlobalOrb is fixed.
  
  The METIS library (www.cs.umn.edu/~metis) is also needed. Calls to
  this library are wrapped in preprocessor blocks controlled by the
  symbol
  
  ON_DOMAIN_DECOMP
  
  which needs to be specified at (parallel) compile time if domain
  decomposition is desired.

  Now, by default, Julian's Gale spatial decomposition code is
  bypassed, unless the fdf variable

        UseSpatialDecomposition 

  is set.  The default is now to use block-cyclic decomposition, but
  any serious calculation should use one of the two more sophisticated
  approaches. A further refinement is in the pipeline.

* Add the Util/ON directory with lwf2cdf program

  This utility program converts the information in the LWF file 
  to netCDF format.

(A. Garcia, May-July 2011, Feb 2012)
(Backported from 3.1)

-----------------------------------------------------------------------
2012-02-21  14:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-398
Avoid broadcast after fdf operation in m_ts_options

With the new fdf interface all nodes get the appropriate values
without a broadcast. There was a fossil mpi_bcast in m_ts_options.

modified:
  Src/m_ts_options.F90

-----------------------------------------------------------------------
2012-02-20  16:45:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-397
More documentation for tests. New .make file.

* Added a new README file for the Tests directory and for the
  new-style Transiesta-TBTrans tests

* Add arch.make file for Marenostrum IBM supercomputer using ESSL
    
  Added the necessary LAPACK libraries in order to compile using ESSL on IBM.
  ESSL are a set of system-optimized BLAS functions and subroutines.
    
  Use the following lines in your arch.make:
    COMP_LIBS = essl_lapack.a
    LIBS      = -lessl
  
  The new file Src/Sys/marenostrum-mpi-essl-netcdf-64.make is appropriate
  for 64 bit operation.
    
  (Thanks to Oscar Paz)
  
  added:
    Src/Sys/marenostrum-mpi-essl-netcdf-64.make
    Src/Libs/essl_lapack.f
  modified:
    Src/Libs/makefile
    Src/Makefile

* Make sure 'partial' is compiled in test
  
  The 'partial' test is not completely set up for transparent operation,
  and the needed executable in Util/VCA needs to be pre-compiled.
  
  The script stops with a message if this is not done (note that this
  test is not executed by default from the top Makefile).
  
  modified:
    Tests/partial/script.sh

-----------------------------------------------------------------------
2012-02-20  16:30:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-396
Fixes: pointer initialization, logical assignment

In cgvc_zmatrix, two scratch pointers were not properly initialized
before use.

In nlefsm, two logical arrays were initialized with '0', instead of
'.false.' (Thanks to Carlos Sanz for pointing this out).

modified:
  Src/cgvc_zmatrix.F
  Src/nlefsm.f

-----------------------------------------------------------------------
2012-02-20  15:50:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-395
Avoid broadcast after fdf operation in tbtrans

With the new fdf interface all nodes get the appropriate values
without a broadcast. Tbtrans (in routine reinit_tb) still called
mpi_bcast. This led to errors in some systems.

modified:
  Util/TBTrans/reinit_tb.F

-----------------------------------------------------------------------
2012-02-20  13:50:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-394
Update TranSiesta tests. Cosmetics

*  Update the TranSiesta-TBTrans test directories
  
  TranSiesta-TBTrans specific tests now reside in
  Tests/TranSiesta-TBTrans. These tests (currently ts_fast and ts_au)
  only make sense if the "transiesta" flavor of Siesta has been compiled
  in (by executing "make transiesta" in a fresh build directory), so
  they are not executed by default.
  
  Reference outputs can now be found in
  Tests/Reference/TranSiesta-TBTrans.  Note that these reference
  outputs have not yet been updated: they correspond to siesta-3.1.
  
  The manual has been updated to refer to the Examples/TranSiesta
  directory (which has been created) for the guided calculation.
  
  removed:
    Tests/transiesta/Fast/
    Tests/transiesta/au_111_capacitor/
    Tests/transiesta/bulk_au_111/
    Tests/transiesta/elec_au_111_abc/
  added:
    Tests/Reference/TranSiesta-TBTrans/
    Tests/Reference/TranSiesta-TBTrans/ts_au/
    Tests/Reference/TranSiesta-TBTrans/ts_fast/
    Tests/TranSiesta-TBTrans/ts_au/
    Examples/TranSiesta
  renamed:
    Tests/transiesta/ => Tests/TranSiesta-TBTrans/
    Tests/ts_fast/ => Tests/TranSiesta-TBTrans/ts_fast/
  modified:
    Tests/TranSiesta-TBTrans/ts_fast/makefile
    Tests/TranSiesta-TBTrans/ts_fast/script.sh
    Tests/Makefile
    Tests/script_ts.mk
    Docs/siesta.tex

*  Removed call to BLAS routine zdotc in tbtrans. Replaced it
   by an explicit loop.

*  Clarify the mention of "hybrid" functionals in the manual
  
  modified:
    Docs/siesta.tex

*  Remove order-N test from standard list. Add note.

  As it does not run well in parallel, the order-N
  test has been removed from the standard list
  in the Makefile for the Tests directory.
  
  added:
    Tests/h2o_orderN/000README
  modified:
    Tests/Makefile

-----------------------------------------------------------------------
2012-02-16  15:25:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-393
Fix pointer initialization in moremeshsubs

Two workspace pointers were not properly nullified before allocation.

Thanks to Olivier Coulaud for the report and the fix.

modified:
  Src/moremeshsubs.F

-----------------------------------------------------------------------
2012-02-16  10:35:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-392
Proper closing of files in m_iorho

Due to a programming error, the calls to io_close in read_rho and
check_rho were incorrectly placed.

Thanks to Carlos Sanz for the report and the fix.

modified:
  Src/m_iorho.F

-----------------------------------------------------------------------
2012-02-15  18:05:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-391
Clarify flow of data in setup_H0

The routine setup_H0 pre-computes the matrix elements of the kinetic
and non-local pseudopotential pieces of the Hamiltonian, which do not
depend on the density matrix.

Routines kinefsm and nlfesm also compute Ekin and Enl, respectively,
but since they are not called anymore in the SCF cycles, Ekin and Enl
are not updated, and are only printed at the first and last
iterations.

In order to make this more explicit, H0 has been substituted by two
arrays, H_kin and H_vkb, to hold the pieces of H. Ekin and Enl are now
computed in setup_hamiltonian, with the appropriate density matrix.  A
minor cosmetic issue now is that, in setup_H0, the routines 'kinefsm'
and 'nlefsm' must be called with a value of 1 for nspin, as befits the
structure of H_kin and H_vkb. The density matrix array is not
referenced.

Other changes:

* The variable 'nh' has been substituted by its equivalent maxnh
throughout the code.

* The use of H0 as a work array in calls to the ksv_pol routine has
been made clearer by importing H_kin and renaming it 'Work'.

modified:
  Docs/KNOWN.ISSUES.BSC-patch
  Src/Makefile
  Src/born_charge.F
  Src/compute_dm.F
  Src/final_H_f_stress.F
  Src/hsparse.F
  Src/kinefsm.f
  Src/nlefsm.f
  Src/normalize_dm.F
  Src/post_scf_work.F
  Src/setup_H0.F
  Src/setup_hamiltonian.F
  Src/siesta_analysis.F
  Src/siesta_init.F
  Src/sparse_matrices.F
  Src/state_init.F

-----------------------------------------------------------------------
2011-10-28  10:45:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-390
Avoid temporary arrays in SiestaXC/mesh3d

Calls with a re-shaped array as argument, and with
array-section arguments, were inducing some compilers
to create temporary arrays.

modified:
  Src/SiestaXC/mesh3d.F90

-----------------------------------------------------------------------
2011-10-28  10:35:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-389
Re-instate reading of charge netcdf files

This feature had been turned off after the BSC merge pending
clarification.

modified:
  Src/dhscf.F

-----------------------------------------------------------------------
2011-10-28  10:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-388
Grid file utilities. User-specified mesh sizes

Two new programs are available to generate grid files
(density, potential):

-- grid_rotate: cyclically rotates the coordinates of
                a grid file.
-- grid_supercell: generates the grid file appropriate
                   for a supercell.

The user can now specify the mesh sizes to be used
by the program, by inserting a block definition in 
the fdf file:

%block Mesh-sizes
  40 56 120
%endblock Mesh-sizes

This feature is useful when coupled to the above utilities,
since the "magic" fft numbers might not be appropriate.

added:
  Docs/Grid.CHANGES
  Util/Grid/grid_rotate.F90
  Util/Grid/grid_supercell.F90
modified:
  Src/Makefile
  Src/meshsubs.F
  Util/Grid/makefile

-----------------------------------------------------------------------
2011-09-16  09:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-387
Fix bug in BandLines processing

The processing of the BandLines block was faulty, resulting
in most cases in the skipping of the 'bands' calculation.

modified:
  Src/bands.F

-----------------------------------------------------------------------
2011-09-12  09:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-386
Fix fdf_defined to take blocks into account

The new version of fdf_defined was only checking
for the existence of single labels. It has been
fixed to check for blocks too.

modified:
  Src/fdf/fdf.F90
  Src/fdf/sample.F90

-----------------------------------------------------------------------
2011-08-30  09:50:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-385
Fix two minor bugs in Denchar

Some compilers had trouble with a block pointer. It has
been made into a normal variable.

An attempt was made to close an I/O unit that had not
ben opened in the spin-unpolarized case.

(Thanks to T. Sondon)

modified:
  Util/Denchar/Src/atompla.f
  Util/Denchar/Src/rhoofr.f

-----------------------------------------------------------------------
2011-08-26  12:40:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-384
Print information about grid distributions

New code has been added to show information about
the different grid data distributions.

modified:
  Src/moremeshsubs.F

-----------------------------------------------------------------------
2011-05-19  15:20:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-383
Fix and clarify code for KB projector orthogonalization

In routine kbproj, a saved variable was used to keep track
of the number of previous KB projectors with the same l. This
variable was only reset upon a change in l. This can lead
to errors if a species with a single l=0 KB complex is used.

The code has been streamlined, passing explicitly an index
that determines the sequence number of the projector.

modified:
  Src/atom.f

-----------------------------------------------------------------------
2011-05-03  16:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-382
Fix declaration in cgwf.F

A previous commit introduced a spurious dummy argument
"node", which should really be imported from a module.

modified:
  Src/cgwf.F

-----------------------------------------------------------------------
2011-05-03  14:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-381
Clarify mixing code in TranSiesta mode

If the TranSiesta code is compiled in, the user can choose between two
mixing options in the self-consistent cycle: density-matrix, or
Hamiltonian. The option chosen takes effect both for the initial
normal Siesta-style calculation, if needed, and for the "transiesta
mode" section.

The code in mixer.F and elsewhere has been streamlined, to make it
clear what the mixed objects are and avoid extraneous global
dependencies.

modified:
  Src/Makefile
  Src/m_ts_global_vars.f90
  Src/mixer.F
  Src/new_dm.F
  Src/state_init.F

-----------------------------------------------------------------------
2011-05-03  14:05:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-380
Make auxiliary variable double precision in line minimization

In routine linmin4, the complex variable "c" was declared
as single-precision. It is now a double.

modified:
  Src/cgwf.F

-----------------------------------------------------------------------
2011-05-03  13:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-379
Fix mixing bug in Transiesta + tbtrans wrap + pulayx warnings

* Fix mixing bug in TranSiesta

In TranSiesta mode, the program first might carry out a calculation at
zero bias and with periodic boundary conditions, just as a normal
Siesta calculation. Then the program goes into "transiesta mode"
proper, during which a new mixing cycle takes place.

In late June 2010, a change in the structure of the mixing code
introduced a bug: the counter holding the number of history records
was not properly initialized upon the ending of the preliminary
siesta-style calculation.

The mixing counter is now properly reset.

modified:
  Src/scfconvergence_test.F

* In tbtrans some auxiliary files were written to by all the nodes.

(+ Also, make sure that the transiesta capability appears at
the top of the transiesta output file)

modified:
  Src/Makefile
  Util/TBTrans/tbtrans.F

* Avoid reporting unstable inversion in pulayx

Typically, inversion problems in the DIIS procedure occur when the
error estimate for a step is very small compared to the previous
ones. This is harmless, and the reporting of a failure in the output
file is confusing.

In case it is needed, a hook to allow a full diagnosis 
can be compiled in with the preprocessor flag

DEBUG_PULAY_INVERSE

(+ Also, initialize "found" variable in new_dm.F in transiesta mode)

modified:
  Src/m_pulay.F90
  Src/new_dm.F

* Increase field sizes in OCCS file

Some fields overflowed when a large number of k-points was used.

modified:
  Src/diagk.F
  Src/diagk_file.F

-----------------------------------------------------------------------
2011-05-03  12:45:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-378
Fix manual re: non-collinear GGA and zmatrix input. FoX cosmetics

* The manual incorrectly stated that GGA was not compatible with
non-collinear-spin calculations.

The order of the spherical coordinates for the second atom in the
zmatrix format input is now explicitly stated.

modified:
  Docs/siesta.tex

* Cosmetic changes to avoid xlf compiler diagnostics in dummy FoX

If the "trap undefined variables" option is enabled in the xlf
compiler, some stray symbols in the dummy version of the FoX library
produce diagnostics. They have been re-wrapped.

(Thanks to Oscar Paz)

modified:
  Src/FoX/common/m_common_attrs.F90
  Src/FoX/utils/fox_m_utils_uri.F90

-----------------------------------------------------------------------
2011-04-14  09:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-377
Avoid the creation of temporary and log files for fdf in parallel

The standard mode of operation of the new fdf library is "cluster", in
which the root node reads and processes the fdf file(s) and sends
relevant information to the rest of the nodes. At the end of the setup
process every node has a private copy of a pre-parsed fdf structure
that can be consulted quickly.

In the first version by Raul de la Cruz the root node sent raw text
information to the other nodes, and these used a temporary scratch
file to dump it to. Later these nodes invoked the digesting routine on
the scratch file to create the memory structure.

Now the root node serializes its own memory structure and sends it
over to the other nodes. These just need to de-serialize the
information and re-create the memory structure.

Log files were also produced by all nodes by default. Now non-root
nodes create the log files under "/tmp", with names of the form
"tmp/fdf.log.N", where N is a representation of the MPI rank. Only
the root node creates a "fdf.log" file in the working directory.
This is useful for cluster settings in which non-root nodes might not
be able to write efficiently to common areas.

Any debug files are created in the same way, with names of the form
"tmp/fdf.debug.N". At the end of the run they will contain a dump
of the fdf memory structure.

Alberto Garcia, April 2011

modified:
  Docs/KNOWN.ISSUES.BSC-patch
  Src/fdf/fdf.F90
  Src/fdf/parse.F90


-----------------------------------------------------------------------
2011-03-29  13:30:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-376
Remove earlier patch for calculation of chemical potential

Undo the changes to chempot (and the calling sequences in ordern and
compute_dm) introduced in November 2007 by P. Ordejon, as they are not
completely correct. This routine determines an approximate chemical
potential for O(N) calculations. Note that parallel operation is still
not possible.

(Did not take back the changes in denmat.F and denmatlomem.F, which
simply force an unconditional rescaling of the density matrix to
produce the correct charge density.)

(+ Fixed the code so that arbitrarily large Chebyshev's orders
are in principle possible in Chempot)

(+ Instrumented the O(N) line-minimization routine to print extra
information if the preprocessor symbol DEBUG_LINMIN4 is used)

modified:
  Src/cgwf.F
  Src/chempot.F
  Src/compute_dm.F
  Src/ordern.F

-----------------------------------------------------------------------
2011-03-22  10:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-375
Clarify folding warning for gamma-point calculations

For gamma-point calculations with unit cells not large enough to avoid
interactions with images, a warning was produced even though it was
only relevant for calculations intended for COOP/COHP analysis. The
warning now appears only in that case.

The manual has been updated to cover the point above, and also to make
it clear that the Use.New.Diagk option is not compatible with the
Diag.Parallel.Over.K mode.

(+ cosmetic changes to avoid compiler warnings related to duplicate
use statements)

modified:
  Docs/siesta.ind
  Docs/siesta.tex
  Src/Makefile
  Src/hsparse.f
  Src/m_ts_scattering.F

-----------------------------------------------------------------------
2011-03-14  10:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-374
Experimental output comparison tool

A simple "output digest" script in awk extracts key information fields from the output
file with default precisions, and generates a small file. These digest files can then
be compared to check for differences.

This is an experimental feature. It is not yet integrated in the automatic test
framework. Note that the reference output files in Tests/Reference have not yet
been updated, pending a review.

added:
  Tests/cmp_digest.sh               ! Script to compare digest files
  Tests/out_digest.awk              ! Digest generator
  Tests/out_digest_template.awk     ! Template for optional precision changes
modified:
  Src/obj_setup.sh                  ! It now creates a symbolic link to the ref directory.

-----------------------------------------------------------------------
2011-03-09  16:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-373
Fix two bugs in Vibra package

The code to read the coordinates-and-masses block did not process the
masses properly. It now also warns when there are not enough values in
each line (a common error).

Variable 'nlines' was not properly set in routine 'klines'.

modified:
  Util/Vibra/Src/klines.f
  Util/Vibra/Src/recoor.f

-----------------------------------------------------------------------
2011-03-04  14:45:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-372
Re-enable write_rho routine

The write_rho routine had been modified for debugging purposes, but
was not re-enabled. It now has been brought back to normal.

modified:
  Src/m_iorho.F

-----------------------------------------------------------------------
2011-02-25  10:20:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-371
Fixes in pdosxml and denchar

(Ported from siesta-3.0 branch)

*Some compilers might have trouble with the shorthand
array syntax used in the update of data arrays in m_pdos.f90.
The bounds are now explicitly indicated.

(Thanks to Miguel Pruneda)

modified:
  Util/pdosxml/m_pdos.f90

* In 2D wavefunction mode, denchar was printing two blank lines
between coordinate blocks.

modified:
  Util/Denchar/Src/denchar.f  -- removed duplicate 'use' statement
  Util/Denchar/Src/rhoofr.f   -- interblock spacing
  Util/Denchar/Src/wavofr.f   --   "

-----------------------------------------------------------------------
2011-02-18  15:55:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-370
Re-initialize data array in timer routine

Apparently it fixes some strangeness with some compilers.

(by Jose Soler)

modified:
  Src/m_timer.F90

-----------------------------------------------------------------------
2011-02-18  15:50:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-369
Remove mentions to SLEPC

The mentions to SLEPC were fossils from a side branch and they have been
removed.

modified:
  Src/siesta_init.F

-----------------------------------------------------------------------
2011-02-03  11:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-368
Incorporation of BSC code: mesh optimization; parallel fdf library

* The ongoing collaboration with the Barcelona Supercomputer Center
(through the department of Computer Applications in Science and
Engineering) has resulted in two new main enhancements:

- New code to improve the load-balance among processors in the
operations carried out in the real-space mesh (involved in the
computation of charge density, exchange-correlation potential, and
matrix elements of the hamiltonian, among others).

Since the different operations have different work-load patterns, it
has been necessary to define and handle three separate data
distributions, with appropriately optimized communication patterns.
Most of the new code is contained in new specialized modules, and
there are calls for data distribution handling in higher-level
modules, notably dhscf.

An overview of the rationale and implementation of the new functionality
can be found in

An efficient implementation of a QM-MM method in SIESTA,
C. F. Sanz-Navarro, R. Grima, A. Garcia, E. A. Bea, A. Soba,
J.M. Cela, and P. Ordejon, 
Theoretical Chemistry Accounts. Online pub Sep 2010. 
DOI: 10.1007/s00214-010-0816-5

We are working on a set of developer-oriented notes to facilitate
future enhancements.

- A new fdf library which avoids the 'master node bottleneck': each
MPI processor now holds a copy of the relevant information, and can
satisfy fdf queries without the need for interprocess communication or
file access.

The most noticeable change is in the processing of fdf blocks. The previous
version of the library provided a Fortran unit number from which the
user code could read the block contents. Now the user is given an
abstract handle with which to perform explicitly the operations of reading
lines, parse, and extract useful information. This paradigm was already
present as a wrapper in previous versions of Siesta, but it is now mandatory.

The two new developments, while formally independent, have been merged
at the same time due to historical and logistical reasons. Even though
the mesh enhancements affect directly only a relatively small number
of files, many others have been modified: some by changes in memory
allocation syntax and indentation, and some to clarify code patterns
or interfaces (see below). The new treatment of fdf blocks and the
removal of the explicit broadcast step in some existing fdf calls has
meant changes to many other files. In all, this patch affects several
dozen files in the Siesta distribution.

* Other significant changes

- The interface to the spherical-harmonics module in matel has been
changed to avoid the creation of temporary arrays at run time. Also,
some internal arrays in the spherical-harmonics module are now
pre-allocated to avoid overhead.

- Throughout the code most 'allocatable' arrays have been turned into
pointers, to be able to exploit the functionality in the alloc module
to resize them concisely. It can be argued that we have gone too far
in some cases.

We have invested a lot of effort in this work, but it is very likely
that some issues have escaped us. A list of those known at this
time can be found in the file Docs/KNOWN.ISSUES.BSC-patch

removed:
  Src/FoX/arch.make
  Src/doping.F
  Src/fdf/fdf.f
  Src/fdf/fdf.h
  Src/fdf/fdf_mod.f
  Src/fdf/fdfdefs.h
  Src/fdf/io_for_fdf_tests.f
  Src/fdf/io_sample.f
  Src/fdf/parse.f
  Src/fdf/sample.f
  Src/m_efield.F
  Tests/bsc-compare.sh
  Tests/std-compare.sh
  Util/Denchar/Src/fdf/.dummy_dir
  Util/Gen-basis/fdf/.dummy_directory
  Util/TBTrans/Libs/
  Util/TBTrans/Libs/.dummy_directory
  Util/TBTrans/MPI/
  Util/TBTrans/MPI/.dummy_dir
  Util/TBTrans/fdf/
  Util/VCA/fdf/.dummy_directory
  Util/Vibra/Src/fdf/.dummy_directory
added:
  .bzrignore
  Docs/BSC.CHANGES
  Docs/KNOWN.ISSUES.BSC-patch
  Src/FoX/arch.make
  Src/Libs/dgetrs_lapack.f
  Src/Libs/dspev_lapack.f
  Src/Sys/altix-32b-par.make
  Src/Sys/altix-32b-ser.make
  Src/Sys/atto-pgf95-openmpi.make
  Src/Sys/finisterrae.make.moved
  Src/Sys/g95-macosx-netcdf.make
  Src/Sys/gfortran-macosx-netcdf.make
  Src/Sys/intel-mpi-checks-metis.make
  Src/Sys/intel10-openmpi.make
  Src/Sys/intel11-openmpi.make
  Src/Sys/macosx-openmpi.make
  Src/Sys/marenostrum-lanczos.make
  Src/Sys/marenostrum-mpi-metis-64.make
  Src/Sys/mn-32b-par.make
  Src/Sys/mn-32b-ser.make
  Src/Sys/mn-openmp.make
  Src/Sys/nano-intel10-mvapich.make
  Src/Sys/pgf95-pgimpi.make
  Src/Sys/rogeli-intel-par.make
  Src/bsc_cellxc.F
  Src/bsc_xcmod.F
  Src/cellxc_mod.F
  Src/debugmpi.F
  Src/doping_uniform.F
  Src/fdf.Standard
  Src/fdf/XY.fdf
  Src/fdf/arch.make
  Src/fdf/fdf.F90
  Src/fdf/hostfile
  Src/fdf/io_fdf.F90
  Src/fdf/iso_fortran_env.F90
  Src/fdf/parse.F90
  Src/fdf/prec.F90
  Src/fdf/sample.F90
  Src/fdf/submit.sh
  Src/fdf/tags
  Src/fdf/utils.F90
  Src/final_H_f_stress.F
  Src/m_diagon.F
  Src/m_dscfcomm.F
  Src/m_efield.F
  Src/mesh.F
  Src/meshcomm.F
  Src/meshphi.F
  Src/moremeshsubs.F
  Src/qsort.F
  Src/schecomm.F
  Src/setup_H0.F
  Src/walltime.c
  Src/xc.f
  Tests/mgc-force/
  Tests/mgc-force/makefile
  Tests/mgc-force/mgc-force.fdf
  Tests/mgc-force/mgc-force.pseudos
  Util/Denchar/Src/timer_local.f
renamed:
  Src/atom.f => Src/atom.F
  Src/forhar.f => Src/forhar.F
  Src/hsparse.f => Src/hsparse.F
  Src/meshmatrix.F => Src/meshdscf.F
  Src/parallelsubs.f => Src/parallelsubs.F
  Src/rhooda.f => Src/rhooda.F
  Src/rhoofd.f => Src/rhoofd.F
  Src/sparse_matrices.F90 => Src/sparse_matrices.F
  Src/timer.f90 => Src/timer.F90
  Src/vmat.f => Src/vmat.F
modified:
  Docs/siesta.ind
  Docs/siesta.tex
  Src/MPI/generate.sh
  Src/MPI/mpi.F
  Src/MPI/mpi__include.f90
  Src/Makefile
  Src/SiestaXC/lib-makefile
  Src/SiestaXC/makefile
  Src/Sys/finisterrae.make
  Src/Sys/gfortran-netcdf.make
  Src/Sys/marenostrum-mpi-32.make
  Src/Sys/nano-intel-mpi-cdf.make
  Src/Sys/nano-intel-mpi.make
  Src/alloc.F90
  Src/arw.f
  Src/atm_transfer.f
  Src/atm_types.f
  Src/atmfuncs.f
  Src/atomlist.f
  Src/atomlwf.F
  Src/bands.F
  Src/basis_io.F
  Src/basis_specs.f
  Src/basis_types.f
  Src/bonds.f
  Src/born_charge.F
  Src/broadcast_basis.F
  Src/broyden_optim.F
  Src/cdiag.F
  Src/cell_broyden_optim.F
  Src/cell_fire_optim.F
  Src/cgvc.F
  Src/cgvc_zmatrix.F
  Src/cgwf.F
  Src/chemical.f
  Src/chempot.F
  Src/compute_dm.F
  Src/conjgr.f
  Src/constr.f
  Src/coor.F
  Src/denmat.F
  Src/denmatlomem.F
  Src/densematrix.f
  Src/detover.F
  Src/dfscf.f
  Src/dhscf.F
  Src/diag2g.F
  Src/diag2k.F
  Src/diagg.F
  Src/diagk.F
  Src/diagk_file.F
  Src/diagkp.F
  Src/diagon.F
  Src/diagpol.f
  Src/diagsprl.F
  Src/dipole.F
  Src/dnaefs.f
  Src/dynamics.f
  Src/egandd.F
  Src/eggbox.F
  Src/electrostatic.f
  Src/ener3.F
  Src/ener3lomem.F
  Src/fdf/Otherfile
  Src/fdf/README
  Src/fdf/coords.fdf
  Src/fdf/fdf.Standard
  Src/fdf/makefile
  Src/fdf/sample.fdf
  Src/fermid.F
  Src/fft.F
  Src/find_kgrid.F
  Src/fire_optim.F
  Src/fixed.F
  Src/get_target_stress.f
  Src/globalise.F
  Src/gradient.F
  Src/gradientlomem.F
  Src/grdsam.F
  Src/initatom.f
  Src/initparallel.F
  Src/iocg.f
  Src/iodm.F
  Src/iodm_netcdf.F90
  Src/iodmhs_netcdf.F90
  Src/ioeig.f
  Src/iofa.f
  Src/iogrid_netcdf.F90
  Src/iokp.f
  Src/iolwf.F
  Src/iomd.f
  Src/iopipes.F90
  Src/ioxv.F
  Src/iozm.F
  Src/kgrid.F
  Src/kgridinit.F
  Src/kinefsm.f
  Src/kpoint_grid.F90
  Src/kpoint_pdos.F90
  Src/ksv.f
  Src/ksvinit.F
  Src/linpack.F
  Src/listsc.f
  Src/local_DOS.F
  Src/m_broyden_mixing.f
  Src/m_fire_mixing.f
  Src/m_history.f90
  Src/m_iodm.F
  Src/m_iorho.F
  Src/m_iostruct.f
  Src/m_memory.F
  Src/m_mpi_utils.F
  Src/m_pulay.F90
  Src/m_sparse.F
  Src/m_spin.F90
  Src/m_ts_in_siesta.F
  Src/m_ts_kpoints.F90
  Src/m_ts_options.F90
  Src/matel.f
  Src/memory.F
  Src/memoryinfo.F
  Src/meshsubs.F
  Src/metaforce.F
  Src/mixer.F
  Src/mneighb.f
  Src/molecularmechanics.F90
  Src/moreParallelSubs.F90
  Src/mulliken.F
  Src/naefs.f
  Src/new_dm.F
  Src/nlefsm.f
  Src/normalize_dm.F
  Src/obc.f
  Src/old_atmfuncs.f
  Src/optical.F
  Src/ordern.F
  Src/outcoor.f
  Src/overfsm.f
  Src/overlap.f
  Src/pdos.F
  Src/pdosg.F
  Src/pdosk.F
  Src/pdoskp.F
  Src/phirphi.f
  Src/phirphi_opt.f
  Src/phonon.F
  Src/pixmol.f
  Src/plcharge.F
  Src/poison.F
  Src/post_scf_work.F
  Src/precision.F
  Src/projected_DOS.F
  Src/proximity_check.F
  Src/pseudopotential.f
  Src/pxf.F90
  Src/radfft.f
  Src/radial.f
  Src/rdiag.F
  Src/read_xc_info.F
  Src/readsp.F
  Src/redcel.F
  Src/reinit.F
  Src/reoptical.F
  Src/reord.f
  Src/rhoofdsp.f
  Src/savepsi.F
  Src/scfconvergence_test.F
  Src/setatomnodes.F
  Src/setspatial.f
  Src/setup_hamiltonian.F
  Src/setup_kscell.F
  Src/shaper.f
  Src/show_distribution.f
  Src/siesta.F
  Src/siesta_analysis.F
  Src/siesta_end.F
  Src/siesta_forces.F
  Src/siesta_init.F
  Src/siesta_move.F
  Src/siesta_options.F90
  Src/sorting.f
  Src/spher_harm.f
  Src/state_analysis.F
  Src/state_init.F
  Src/struct_init.F
  Src/vmatsp.f
  Src/vmb.F
  Src/write_md_record.F
  Src/write_subs.F
  Src/writewave.F
  Src/wxml/m_wxml_array_str.f90
  Src/wxml/m_wxml_buffer.f90
  Src/wxml/m_wxml_core.f90
  Src/wxml/m_wxml_dictionary.f90
  Src/wxml/m_wxml_elstack.f90
  Src/zm_broyden_optim.F
  Src/zm_fire_optim.F
  Src/zmatrix.F
  Tests/Makefile
  Util/Contrib/APostnikov/Makefile
  Util/Denchar/Src/Makefile
  Util/Denchar/Src/atompla.f
  Util/Denchar/Src/denchar.f
  Util/Denchar/Src/local_reinit.f
  Util/Denchar/Src/readpla.f
  Util/Denchar/Src/readsts.f
  Util/Gen-basis/Makefile
  Util/Gen-basis/gen-basis.F
  Util/HSX/iohs.F
  Util/Helpers/Makefile
  Util/Optimizer/Makefile
  Util/TBTrans/Makefile
  Util/TBTrans/green4.F
  Util/TBTrans/m_tbt_gf.F90
  Util/TBTrans/m_tbt_options.F90
  Util/TBTrans/mkqgrid.f
  Util/TBTrans/reinit_tb.F
  Util/TBTrans/tbtrans.F
  Util/VCA/Makefile
  Util/Vibra/Src/Makefile
  Util/Vibra/Src/fcbuild.f
  Util/Vibra/Src/klines.f
  Util/Vibra/Src/recoor.f
  Util/Vibra/Src/vibrator.f
  version.info
  Src/atom.F
  Src/forhar.F
  Src/hsparse.F
  Src/meshdscf.F
  Src/parallelsubs.F
  Src/rhooda.F
  Src/rhoofd.F
  Src/sparse_matrices.F
  Src/timer.F90
  Src/vmat.F






-----------------------------------------------------------------------
2011-01-07  15:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-367
Initialized pointers in moreParallelSubs. Timer call

* Several pointers were used without nullification in routine copyfile in
file moreParallelSubs.F90.

* A "turn-off" call to timer was needed in cdiag in case of early termination.

modified:
  Src/cdiag.F
  Src/moreParallelSubs.F90

-----------------------------------------------------------------------
2010-11-30  13:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-366
Work around bugs in Intel compilers: FoX generics, k-grid

* Work around a bug in Intel12 compiler in k-grid setup

A dummy internal write is used to re-focus the compiler
treatment of a few integer variables.

modified:
  Src/find_kgrid.F
  Src/kgrid.F
  Src/kgridinit.F

* Avoid use of generics in declarations in FoX format routine

The use of generic functions in declaration statements was confusing
the Fortran compiler (version >= 11). They have been replaced by calls
to the specific versions.

modified:
  Src/FoX/fsys/fox_m_fsys_format.F90

-----------------------------------------------------------------------
2010-11-26  15:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-365
Fix setting of applied electric field in parallel

Due to a programming error, the user-specified electric
field was not correctly set in non-master nodes.

Thanks to Alexander Vozny for the bug report.

modified:
  Src/m_efield.F

-----------------------------------------------------------------------
2010-11-18  08:45:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-364
Clarify the output of the timing routine

The timing routine now prints zeros instead of NaNs in the
communications section if the variable MPI_TIMING is not defined,
and an informational note.

modified:
  Src/m_timer.F90

-----------------------------------------------------------------------
2010-11-18  08:40:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-363
Modify bonds routine to print real locations of neighbors

In routine bonds (called at the beginning and at the end of the
program) we now print the real location of the neighbor atom in space,
and not, as in earlier versions, the location of the equivalent
representative in the unit cell.

modified:
  Src/bonds.f

-----------------------------------------------------------------------
2010-11-12  16:20:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-362
Merge 3.0 fixes: ps reparametrization, getopts, ioncat, atm manual

* Cosmetic fixes in Gen-basis/{ioncat,ionplot.sh}

modified:
  Util/Gen-basis/ioncat.f
  Util/Gen-basis/ionplot.sh

* Fix test in m_getopts

A double if test gives problems with some compilers when
bounds checking is in effect.

modified:
  Src/m_getopts.f90

* Improved grid for re-parametrization of pseudopotentials

When the option Reparametrize.Pseudos is in effect, the program
resamples the pseudopotential data into a new logarithmic grid with
parameters chosen so that the grid-point separation at the typical rcs
for orbitals is small enough (of the order of 0.01 bohr). The previous
choice of parameters resulted in grid-point separations of the order
of 0.005 bohr near the origin, which apparently is not fine enough for
s orbitals, leading to oscillations in the gradient near the origin.

A new set of default parameters has been chosen to provide a finer
grid spacing (1.e-5 bohr) near the origin and 0.01 bohr around r=10
bohr. This results in grids with around 10000 points, which is still
manageable.

( Also, a few extra diagnostic files are produced if the option
  Write.Ion.Plot.Files is in effect, and the .psdump file now
  contains the core charge )

modified:
  Src/atmparams.f
  Src/atom.f
  Src/basis_specs.f
  Src/pseudopotential.f
  Docs/siesta.tex

* Update atom manual

- Include a mention of the "fractional atomic number" capability.

- Update the link to Jose Luis Martins' version of the atom program, and
  the contact information in the README file.

modified:
  Pseudo/atom/Docs/atom.tex
  Pseudo/atom/README

-----------------------------------------------------------------------
2010-10-01  10:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-361
Improved documentation of VDW-KBM functional

(J. Soler)

modified:
  Docs/siesta.tex
  Src/SiestaXC/atomxc.F90
  Src/SiestaXC/cellxc.F90
  Src/SiestaXC/siestaxc.F90
  Src/SiestaXC/vdwxc.F90
  Src/SiestaXC/xcmod.f90

-----------------------------------------------------------------------
2010-08-05  15:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-360
(Admin) Incorporate logs of recent patches from 3.0 branch

The siesta-3.0 branch can be considered as a sort of "bug-fix" branch
for "trunk". Hence, periodic merges are needed. This merges
have up to now been done in a "cherry-picking" manner, since 3.0
contains other material that is not supposed to go into trunk. This
has the unfortunate feature that the patch logs are not incorporated
into the trunk, and a "bzr missing" command will keep reporting
spurious differences.

The logs of all the recently applied patches, corresponding to 3.0
patches up to 3.0-rc2, have now been incorporated by doing a normal
merge followed by "bzr revert ." to remove all file changes (changes
already incorporated in local revnos from 349 up to this one).  This
has the effect of marking those patches in siesta-3.0 as "known" to
this branch, and will simplify the porting of future patches from the
3.0 branch. Note that the patch logs do not appear in "bzr log" unless
the "-n0" option is used. This is desirable, as a casual user might
find the output confusing.

Note that revno 355 in this branch already incorporated (without
explicit mention in the commit log, due to an oversight) the relevant
3.0 patches up to 3.0-rc1.

The version string has been set to trunk-360 in both version.info and
siesta.tex.

-----------------------------------------------------------------------
2010-08-05  14:40:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-359
Fixes for portability (FoX str, pulay, MD rewind, reshape)

* The PGI compiler had trouble with the "str" function exported from
  FoX. The call has been replaced by an internal write to an auxiliary
  variable.

* In m_pulay, some compilers evaluated both sub-clauses of an "and"
  expression, even if the first was .false.. This led to a division by
  zero in a mod operation. The expression has been replaced by more
  robust code.

* The MD file repositioning code in iomd.f gave problems in some
  systems. It has been removed, and substituted by an explicit
  'position="append"' clause in the open statement.

* In SiestaXC/mesh3d.F90, work around a gfortran bug in the reshape
  intrinsic by specifying a zero lower bound. The bug only appears
  if bounds checking is in effect.

modified:
 Src/m_pulay.F90
 Src/siesta_cmlsubs.F90
 Src/iomd.f
 Src/SiestaXC/mesh3d.F90

-----------------------------------------------------------------------
2010-08-05  14:05:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-358
Cosmetic fixes (larger fields in atm files, vibra manual)

* Use larger output fields for atm diagnostic files

The atm program generates, among others, the files FOURIER_QMAX and
ECONF_DIFFS, which contain information useful for optimization
runs. The output fields were quite tight and sometimes
overflowed. They have beeen made larger.

modified:
  Pseudo/atom/prdiff.f
  Pseudo/atom/wrapup.f

* Clarify the meaning of the supercell options in the Vibra manual

New wording to make it clear that the supercell options refer
to the number of augmentation shells around the unit cell.

modified:
  Util/Vibra/Docs/vibra.tex

-----------------------------------------------------------------------
2010-08-05  14:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-357
Compute and print band-structure energy. Updates to Util/COOP/mprop

* The band-structure energy Ebs = Tr(DM*H) is now computed at every 
  iteration and printed at the beginning and end of the SCF cycle, both
  in the output file and in the CML file. The calculation is done in  
  compute_dm, so DM is the "output DM" from the diagonalization of H.

* The mprop program has been updated to output the integrated
  band-structure energy as a function of energy as a third column in
  the integrated-dos file. The " -n " option has been documented.

* Creation of Util/COOP/Docs, and addition of some notes on the units
  and meaning of the COOP and COHP curves.

added:
  Util/COOP/Docs/
  Util/COOP/Docs/UnitsAndMeaningOfCurves.txt
  Util/COOP/Tests/README
modified:
  Src/Makefile
  Src/compute_dm.F
  Src/m_energies.F90
  Src/write_subs.F
  Util/COOP/README
  Util/COOP/main_vars.f90
  Util/COOP/mprop.f90
  Util/COOP/subs.f90

-----------------------------------------------------------------------
2010-08-05  13:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-356
Make the HSX format the default for H,S files

The old HS format was highly inefficient, as each piece of data was
written to its own record. In addition, it only contained information
about the inter-orbital vectors Xij if k-points were used in the
calculation.

The new HSX file format was introduced at the time of the first
COOP/COHP implementation. It is more tightly packed, and the real
arrays (H, S, and Xij) are written in single-precision.

The HSX format is now the default in Siesta (TranSiesta has its own
format).

The programs hsx2hs and hs2hsx in Util/HSX are provided to facilitate
the transition. Note however that an HS file written by Siesta during
a Gamma-only calculation will not contain information about the
inter-orbital vectors Xij, and hs2hsx will refuse to create an HSX
file from it.

See Util/HSX/README for more details.

The file iohs.F has been moved to Util/HSX from the main source
directory.

added:
  Util/HSX/hs2hsx.f90
  Util/HSX/hsx2hs.f90
  Util/HSX/makefile
renamed:
  Src/iohs.F => Util/HSX/iohs.F
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/setup_hamiltonian.F
  Util/HSX/README
  Util/HSX/hsx_m.f90

-----------------------------------------------------------------------
2010-08-05  10:55:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-355
Hook to output the initial charge density

If the fdf variable SaveInitialChargeDensity is "true", the program
generates a RHO_INIT (and a RhoInit.grid.nc file if netCDF is compiled
in) containing the charge density used to start the first
self-consistency step, and it stops. Note that if an initial density
matrix (DM file) is used, it is not normalized. This is useful to
generate the charge density associated to "partial" DMs.

modified:
  Docs/siesta.tex
  Src/dhscf.F
  Src/setup_hamiltonian.F
  Src/siesta_options.F90

-----------------------------------------------------------------------
2010-08-05  10:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-354
Fixes and new functionality in Pulay mixing

* The "kick" functionality intended to "shake" periodically the Pulay
mixing procedure was incorrectly implemented. This has now been fixed,
with the added feature that the Pulay history is completely reset
after a kick.

* Additionally, support has been added to specify whether the first
density-matrix residual of the SCF cycle and the first residual after
a kick are included in the Pulay history. It can be argued that in
these cases the "output" DM might be significantly different from the
"input" DM. To preserve backwards compatibility, these residuals are
kept in the Pulay history unless the fdf variable

      DM.Pulay.Avoid.First.After.Kick

is set to "true" in the input file.

* The above changes have forced a temporary disabling of the "Pulay on
  file" feature, which will be re-implemented in a form that works
  well in parallel.

* Updated the manual.

(A. Garcia)

renamed:
  Src/m_pulay.F => Src/m_pulay.F90
modified:
  Src/mixer.F
  Src/siesta_options.F90
  Src/m_pulay.F90
  Docs/siesta.tex

-----------------------------------------------------------------------
2010-08-05  10:00:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-353
Fixes and improvements in the optical spectra code

* Fixed a bug in optical.F: the call to subroutine kgridinit nwas
  causing problems and providing results that were not compatible any
  longer with those of subroutine kgrid.

* Modified call to subroutine transition_rate: wmin and wmax passed to
  subroutine so that only the relevant transition probabilities are
  explicitly calculated.

* Added a new test (Tests/si-optical) to exercise the optical code.

(Daniel Sanchez Portal)

added:
  Tests/Reference-xml/si-optical.xml
  Tests/Reference/si-optical.out
  Tests/si-optical/
  Tests/si-optical/makefile
  Tests/si-optical/si-optical.fdf
  Tests/si-optical/si-optical.pseudos
modified:
  Docs/CHANGES
  Src/optical.F
  Src/transition_rate.F

-----------------------------------------------------------------------
2010-08-04  15:40:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-352
Updates and fixes to the TranSiesta/tbtrans code (F.D. Novaes)

This patch includes bug fixes (in TranSiesta and tbtrans), a cleanup
involving removal of dead code, proper declarations of variables, and
a new prototype test framework for TranSiesta and tbtrans.

1. Fixed the issues related to the density matrix in a TS run, due to the
changes in new_dm.F
  
* The new module m_ts_iodm.F is the equivalent of m_iodm.F, created to
handle .TSDE files. These, are just like .DM files but where the Escf
sparse matrix and the Fermi Energy are written at the end of the
file. The makefile was modified in order to include this module.

* The new_dm module now has a cleaner Transiesta related structure.
The possibility of doing a "continuation run" (where a .TSDE file is
read and the run starts with a TS calculated density matrix), is
handled by calling the routine read_dynamic_ts_dm.  Since Transiesta
also stores and reads Escf, the variable EDM_tmp has been created and
is used in the same way as D_tmp.  The routine change_sparsity is also
used for Escf. But these parts of the code have not been tested yet,
since it would require a change in the sparsity., by atomic
rearrangements.
  

added:
  Src/m_ts_iodm.F
modified:
  Src/Makefile
  Src/new_dm.F


2. Changed the way mixH or mixDM are internally handled. Added a
global_vars module.

* Created the module m_ts_global_vars.f90 that contains the TS
variables that are accessed in different parts of the code and are not
passed as dummy arguments.

* Considerable changes were made in the way the possibility of mixing
either the density matrix or the hamiltonian is handled internally.
The VIn and VOut pointers are still used, but now, instead of
allocating some memory and copying the values of Dscf (H) to them,
they directly point to either the Dscf and Dold matrices OR to H and
HOld. The latter vector is allocated only whe mixH=.true., and this
implies that in this case more memory will be required since Dold is
also allocated because it is used in other parts of the code.  In any
case, this leads to a smaller amount of allocated memory. The coding
is clearer also, specially at the siesta_forces routine.


added:
  Src/m_ts_global_vars.f90
modified:
  Src/Makefile
  Src/compute_dm.F
  Src/dhscf.F
  Src/m_ts_iodm.F
  Src/m_ts_options.F90
  Src/mixer.F
  Src/new_dm.F
  Src/scfconvergence_test.F
  Src/setup_hamiltonian.F
  Src/siesta_forces.F
  Src/state_init.F
  Src/write_subs.F

3. Cleaning of m_ts modules; set grid variables to be defined with
grid_p; and smaller changes.

* Removed unused variables and dummy arguments (all m_ts modules).
Also specified what is used from each module with the idiom "use
MODULE, only:"

* For the TSVHFix and TSvoltage2 subroutines (m_ts_in_siesta.F90
module), fixed the precision of the "v" variable (real space
potential) to be grid_p.

* The following cosmetic declaration changes were made:

real*8 --> real(dp)
complex*16 --> complex(dp)
double precision --> real(dp)

where "dp" comes from the precision module.

* IOnode was incorrectly set to be node=1, now it is node=0
  (m_ts_in_siesta.F)

* Removed the initH variable from several routines. (new_dm,
scfconvergence_test, setup_hamiltonian,siesta_forces)
  
  
modified:
  Src/compute_dm.F
  Src/m_ts_contour.F
  Src/m_ts_electrode.F90
  Src/m_ts_in_siesta.F
  Src/m_ts_io.F90
  Src/m_ts_options.F90
  Src/m_ts_scattering.F
  Src/new_dm.F
  Src/scfconvergence_test.F
  Src/setup_hamiltonian.F
  Src/siesta_forces.F

4. Assortment of changes/fixes in TBTrans.

* The original version of TBTrans (by M. Brandbyge) was not
parallelized.  Some of the original properties computed by tbtrans
(the transmission function and the pdos) have been "ported" to work
also in the parallelized version of the code, but some have not. Those
who have not, have been, for now, deleted (atompdos, coop and NetCDF
related things).

* The transmission function is now multiplied by two in the
case of non spin-polarized calculations. As a consequence, the
computed current is multiplied too.

* The printed value of the pdos (averaged over all the k-points), when 
running in parallel with more than one node, was not correct: only the values 
coming from the node=0 were being printed. This has been fixed.

* Some smaller changes were done on the way the results are written in the output 
files (e.g. including blank lines in between values for each k-point, so that 
the file can be directly plotted with xmgrace).  Also changed the name of the 
routine "Tsiokp" (m_tbt_kpoints.F90) to "get_kp_on_node" since it represents 
better what it really does.

removed:
  Util/TBTrans/atompdos.F
  Util/TBTrans/coop.f
  Util/TBTrans/OutputRegionData.F
  Util/TBTrans/OutputRegionData.NoLowdin.F
  Util/TBTrans/netcdfwrite.F
modified:
  Util/TBTrans/Makefile
  Util/TBTrans/m_tbt_gf.F90
  Util/TBTrans/m_tbt_kpts.F90
  Util/TBTrans/m_tbt_options.F90
  Util/TBTrans/tbtrans.F

5. Created a test directory (ts_fast) to test TranSIESTA and
TBTrans. (F.D.Novaes/A.Garcia)

* An automatic test for transiesta and tbtrans can be run by going to 
the $OBJDIR/Tests directory, and typing:

  make ts

and to clean:

  make clean_ts

For now, only the tests contained in the ts_fast directory will be
executed, and more tests with similar structure will be added in the
near future.  The script first runs the electrode calculation, then
the scattering region calculation and finally tbtrans. If during any
of these steps there is an error message sent to stderr, the script
will stop and the following step will not start. The error message is
printed to an output file (err_elec.out or err_scat.out or
err_tbt.out). It only creates the "completed" file if it reaches the
end.

Parallel compilations can be tested by changing to the ts_fast directory 
and (for example) typing:
 
  make TS="/opt/openmpi.gcc.gfortran/bin/mpirun -np 2 ../../../transiesta"

By default, tbtrans will be (re)compiled using the arch.make located
in the $OBJDIR.  To use an already compiled version of tbtrans (again,
inside the ts_fast directory) type:
  
  make TBT=/some/path/to/tbtrans

NOTE: Since the compilation of tbtrans is automatic and unattended,
you will need to specify in your arch.make the linear algebra libraries
needed for tbtrans in your system. For example:

  TBTRANS_LINALG=linalg.a # Or maybe only: zgeev_lapack.a zgesv_lapack.a

* The functionality for the TS tests is kept in the new file scrip_ts.mk.

added:
  Tests/script_ts.mk
  Tests/ts_fast/
  Tests/ts_fast/H.psf
  Tests/ts_fast/elec.fast.fdf
  Tests/ts_fast/makefile
  Tests/ts_fast/scat.fast.fdf
  Tests/ts_fast/script.sh
modified:
  Tests/Makefile

-----------------------------------------------------------------------
2010-08-04  15:10:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-351
Fix for out-of-box atoms in meshsubs

In InitAtomMesh, during the calculation of the relative position of an
atom with respect to the grid, make sure we consider the equivalent
position inside the cell, even if the atom is outside.

(Possible problem detected by P. Ordejon, fixed by J. Soler)

modified:
  Src/meshsubs.F

-----------------------------------------------------------------------
2010-08-03  15:35:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-350
Port several small patches from 3.0 branch up to 3.0-rc2

* Fix initialization of target_stress in some cell-only relaxations
  
When using the RelaxCellOnly option in tandem with Broyden relaxation,
the target stress was not properly initialized.

(Thanks to Marcos Verissimo Alves for pointing out the bug and fix)

  modified:
    Src/cell_broyden_optim.F

* Print value of dipole if applying correcting field
  
If the SlabDipoleCorrection option is active, print the computed
value of the total system dipole at every iteration, to help
diagnose possible problems.

Added note in the manual warning about the use of non-corrected
density matrices with this option.
  
(+ fix MPI wrap of output in m_efield)

  modified:
    Src/Makefile
    Src/dhscf.F
    Src/m_efield.F
    Docs/siesta.tex

* Correction of error in siesta.tex (as discovered by J. Junquera)

The FDF labels DM.Energy.Tolerance and DM.Harris.Tolerance
were wrongly stated as "real" instead of "real energy", and their
default value stated with no units when its units are eV.

  modified:
    Docs/siesta.tex

-----------------------------------------------------------------------
2010-08-03  15:15:00 GMT Alberto Garcia <albertog@icmab.es>   trunk-349
Tentative fix for DM reuse bug

In some cases the re-use of the DM after a geometry change led to
large values of ddmax and instabilities in SCF convergence. The
tentative cause was the re-allocation of Dscf right after the call to
hsparse for the new geometry, and before new_dm, combined with a
"sparsity pattern change" in-place. When the re-allocation is deferred
to new_dm, and the plain "change_sparsity" routine is used, the
problem seems to disappear. 

Thanks to Oswaldo Dieguez for his sleuthing work.

More testing is needed to close the bug definitively.
  
Modified:
  Src/Makefile
  Src/new_dm.F
  Src/state_init.F

-----------------------------------------------------------------------
2010-06-23 12:20:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-348

Use DEBUG_XC preprocessor symbol to wrap SiestaXC debugging (J. Gale)

 * Comments wrapped by ! DEBUG in several SiestaXC routines (and in
   related sections of siesta_init and siesta_end) have been replaced
   by #ifdef DEBUG_XC ... #endif so that the writing of debugging files
   can be turned off easily at compile time.

   Note that this has forced the change in file extension of a few
   files in Src/SiestaXC, with concommitant changes in the makefiles.

renamed:
  Src/SiestaXC/atomxc.f90 => Src/SiestaXC/atomxc.F90
  Src/SiestaXC/cellxc.f90 => Src/SiestaXC/cellxc.F90
  Src/SiestaXC/fft3d.f90 => Src/SiestaXC/fft3d.F90
  Src/SiestaXC/fftr.f90 => Src/SiestaXC/fftr.F90
  Src/SiestaXC/siestaxc.f90 => Src/SiestaXC/siestaxc.F90
  Src/SiestaXC/vdwxc.f90 => Src/SiestaXC/vdwxc.F90
modified:
  Src/SiestaXC/lib-arch.make
  Src/SiestaXC/lib-makefile
  Src/SiestaXC/makefile
  Src/SiestaXC/mesh3d.F90
  Src/siesta_end.F
  Src/siesta_init.F
  Src/SiestaXC/atomxc.F90
  Src/SiestaXC/cellxc.F90
  Src/SiestaXC/fft3d.F90
  Src/SiestaXC/fftr.F90
  Src/SiestaXC/siestaxc.F90
  Src/SiestaXC/vdwxc.F90

-----------------------------------------------------------------------
2010-06-23 12:02:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-347

Make sure that units are closed with io_close (J. Gale)

 * 'Close' replaced by call to 'io_close' in several routines to
   prevent luns overload.

 * Unused declarations of io_assign and io_close removed from diagon.F
   and ksv.f

 (Julian Gale)

 modified:
   Src/diagon.F
   Src/ksv.f
   Src/m_timer.F90
   Src/moreParallelSubs.F90
   Src/write_orb_indx.f90
-----------------------------------------------------------------------
2010-06-23 02:19:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-346

Support for LMKLL and KBM vdW functionals in ATOM (A. Garcia)

 The pseudopotential generation program now accepts the "vl" xc code to
 request the Lee et al. (LMKLL) version of the vdW functional
 (arXiv:1003.5255v1 (2010)), and the "vk" xc code for the vdW
 parametrization of Klimes et al. (KBM) (JPCM 22, 022201 (2009)).

 The id strings in .xml pseudo files are, respectively,
 'Lee-et-al--LMKLL', and 'Klimes-et-al--KBM'. For consistency, the id
 string for the Dion functional has been extended to
 'Dion-et-al--DRSLL'

 The ATOM manual has been updated, and the version number set to
 3.3.1.

 Obsolete xc routines (pre-SiestaXC) have been removed from the
 Pseudo/atom directory.

 removed:
   Pseudo/atom/blypxc.f
   Pseudo/atom/ggaxc.f
   Pseudo/atom/ldaxc.f
   Pseudo/atom/pw92xc.f
   Pseudo/atom/pzxc.f
   Pseudo/atom/revpbexc.f
   Pseudo/atom/rpbexc.f
 modified:
   Pseudo/atom/Docs/atom.tex
   Pseudo/atom/Makefile
   Pseudo/atom/pseudoXML.f
   Pseudo/atom/velect.f
-----------------------------------------------------------------------
2010-04-20 00:53:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-345

Updated makefile dependencies (J. M. Soler)
  
modified:
  Src/Makefile
  Src/SiestaXC/makefile
  
-----------------------------------------------------------------------
2010-04-20 00:48:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-344

Added parametrization of Klimes et al for vdW-DF (J. M. Soler)
  
modified:
    Docs/siesta.tex                  ! Added VDW/KBM
    Src/SiestaXC/Testers/test1.f90   ! Call to B88 GGA exchange
    Src/SiestaXC/atomxc.f90          ! Added VDW/KBM comment
    Src/SiestaXC/cellxc.f90          ! Added VDW/KBM comment
    Src/SiestaXC/ggaxc.f             ! Added Becke-88 exchange routine
    Src/SiestaXC/siestaxc.f90        ! Added VDW/KBM comment
    Src/SiestaXC/vdwxc.f90           ! Call to B88 exchange
    Src/SiestaXC/xcmod.f90           ! Call to vdw_set_author for KBM

-----------------------------------------------------------------------
2010-04-20 00:44:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-343

Documentation completed on LMKLL flavour of vdW-DF (J. M. Soler)
  
modified:
    Docs/siesta.tex
    Src/SiestaXC/siestaxc.f90
    Src/SiestaXC/vdwxc.f90

-----------------------------------------------------------------------
2010-04-20 00:38:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-342

A bug corrected in testers (J. M. Soler)
  
modified:
    Src/SiestaXC/Testers/test2.f90  ! Avoid using DRSLL & LMKLL together
    Src/SiestaXC/Testers/test3.F90
    Src/SiestaXC/Testers/test4.F90

-----------------------------------------------------------------------
2010-04-20 00:34:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-341

Added the vdW functional flavour of K.Lee et al, arXiv:1003.5255v1 (2010) (J.M. Soler)
  
modified:
    Src/SiestaXC/Testers/test1.f90  ! Added PW86
    Src/SiestaXC/Testers/test2.f90  ! Added VDW/LMKLL
    Src/SiestaXC/Testers/test3.F90  ! Added VDW/LMKLL
    Src/SiestaXC/Testers/test4.F90  ! Added VDW/LMKLL
    Src/SiestaXC/atomxc.f90         ! Call to vdw_exchng
    Src/SiestaXC/cellxc.f90         ! Call to vdw_exchng
    Src/SiestaXC/ggaxc.f            ! Added PW86 and PW86R exchange functionals
    Src/SiestaXC/vdwxc.f90          ! Added vdw_exchng and vdw_set_author
    Src/SiestaXC/xcmod.f90          ! Call to vdw_set_author

-----------------------------------------------------------------------
2010-03-08 12:23:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-340

Update FoX to version 4.1.0 (A. Walker)
  
  Version 4.1.0 of FoX, used to produce our XML output was released 
  on 2010-02-09. This patch updates the version shipped with Siesta 
  to this version. 

  Changes that affect Siesta are that the build process for FoX can
  now take advantage of possible parallelization (make -j), we can 
  ask FoX to generate an abort signal if it kills the process and 
  the inclusion of work arounds for compiler bugs in recent versions 
  of the pgi compiler. Some of these changes existed in an (unrelased)
  version of FoX shipped with Siesta since revision 320.
 
  modified:
      Src/FoX/FoX-config.in
      Src/FoX/LICENSE
      Src/FoX/Makefile
      Src/FoX/common/FoX_common.F90
      Src/FoX/configure
      Src/FoX/wxml/FoX_wxml.f90
      Src/FoX/wxml/m_wxml_core.F90
      version.info
      
-----------------------------------------------------------------------
2010-02-04  03:50:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-339

  Fix bug in previous patch regarding CG DM extrapolation (A. Garcia)
  
  The logic of a previous patch was wrong, and the resulting
  code prevented the proper restructuring of a reused DM in
  the course of CG relaxations.
  
  To make it clear now: For "CG" calculations, the default is not to
  extrapolate the DM (unless requested by explicitly setting
  'DM.AllowExtrapolation' to "true"). The previous step's DM is reused.
  
  modified:
    Docs/siesta.tex
    Src/new_dm.F
    
-----------------------------------------------------------------------
2010-02-04  03:36:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-338

  Avoid extrapolation of DM during geometry optimization (A. Garcia)
  
  When performing a geometry optimization (CG, Broyden, etc) (idyn=0 in
  the code), there might be sudden jumps in the geometry (e.g., at the
  end of a line-minimization) that render a extrapolation of the DM
  risky. Hence DM extrapolation is turned off in this case.
  
  One might argue that DM re-use should be avoided too.
  
  modified:
    Docs/siesta.tex
    Src/new_dm.F

-----------------------------------------------------------------------
2010-02-03  02:34:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-337

Patch for problem in the iVec computers (J. M. Soler)
  
  A persistent problem in Australia's iVec supercomputers was traced to an 
  apparent ifort compiler error, producing a core dump in re_alloc's line
    array(c(1,1):c(2,1)) = old_array(c(1,1):c(2,1))
  that disappeared when substituted by
    do i = c(1,1),c(2,1)
      array(i) = old_array(i)
    enddo
  Since, in the offending call, no array copy was really neaded, the problem
  was solved insted by adding copy=.false. in that call by initMesh.
  
  Independently of the former, a number of corrections or improvements
  were done in various files, to solve small deficiencies located during
  the process of debugging the previous problem.
  
  modified:
    Src/SiestaXC/debugxc.f90   ! Corrected file name in closeDebugOutputFile
    Src/SiestaXC/ggaxc.f       ! Added spin bounds in array copy
    Src/SiestaXC/mesh3d.F90    ! Added several checks for range of iDistr
    Src/fermid.F               ! Removed a duplicated printout
    Src/meshsubs.F             ! Added copy=.false. in call to re_alloc

-----------------------------------------------------------------------
2010-02-03  02:28:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-336

Corrected call to MPI_AllReduce in SiestaXC/Testers/test4.F90 (J.M. Soler)
  
  modified:
    Src/SiestaXC/Testers/test1.f90  ! Increased number of densities tried
    Src/SiestaXC/Testers/test4.F90  ! Corrected call to MPI_AllReduce
    
-----------------------------------------------------------------------
2010-02-03  02:22:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-335

MPI_grid_real kind adapted to new standard (J.M. Soler)
  
  modified:
    Src/MPI/mpi.F   ! MPI_grid_real=DAT_double unless def GRID_SP
    
-----------------------------------------------------------------------
2010-02-03  00:17:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-334

A bug corrected by J.D.Gale in the am05 functional (J.M. Soler)
  
  modified:
    Src/SiestaXC/Testers/makefile   ! Copy ../*.mod
    Src/SiestaXC/am05.f90           ! Bug corrected
    Src/SiestaXC/ggaxc.f            ! Corrected call to am05wbs
    
-----------------------------------------------------------------------
2010-02-02  10:57:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-333

Two minor bugs found by Alberto Garcia (J.M. Soler)
  
  modified:
    Src/SiestaXC/Testers/test3.F90  ! Add MPI_Finalize
    Src/SiestaXC/Testers/test4.F90  ! Add MPI_Finalize
    Src/SiestaXC/lib-makefile       ! Add am05.o
    
-----------------------------------------------------------------------
2010-02-01  20:55:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-332

Include AM05 functional in SiestaXC/Testers (J.M. Soler)
  
  The recently-added AM05 functional has been added to those tested by the
  SiestaXC/Testers.
  
  modified:
    Src/SiestaXC/Testers/test1.f90
    Src/SiestaXC/Testers/test2.f90
    Src/SiestaXC/Testers/test3.F90
    Src/SiestaXC/Testers/test4.F90

---------------------------------------------------------------------
2010-01-15  18:40:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-331

  Two mesh-related bugs (From J.M.Soler)
  
  In routine phiOnMesh, function 'size' was used with unassociated pointers.
  This is a bug, although most compilers tolerate it. Unrelated to this,
  in routine divideBox1D, the limits of the first and last boxes was not
  correctly initialized.
  
  modified:
    Src/SiestaXC/mesh3d.F90  ! Initialize partBox(1,1) and partBox(2,nParts)
    Src/meshsubs.F           ! Check pointer associations

---------------------------------------------------------------------
2010-01-15  18:40:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-330

  Two bugs in MPI communications (From J.M.Soler)
  
  The length increase of strings XCfunc and XCauth in trunk-320-JMS-3 had not
  been considered in their MPI communication calls. Also, unrelated to this,
  a conditional return made node 0 not participate in a global broadcast,
  leaving the other nodes hunging.
  
  modified:
    Src/m_efield.F       ! Removed conditional return
    Src/read_xc_info.F   ! Corrected string length in MPI_Bcast

---------------------------------------------------------------------
2010-01-15  18:40:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-329

  Bug correction in mesh3d (From J.M.Soler)
  
  A case not taken care of, in routine sameMeshDistr, created an
  out-of-bounds condition that was noticed by J.D.Gale and others.
  Also, a use statement was added for MPI routines in m_mpi_utils.
  
  modified:
    Src/SiestaXC/mesh3d.F90  ! Bug corrected in sameMeshDistr
    Src/m_mpi_utils.F        ! Added use statement for MPI routines
    Src/meshsubs.F           ! Variable JDGdistr saved and initialized

---------------------------------------------------------------------
2010-01-15  18:10:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-328

  Print vacuum level (From J.M.Soler)
  
  The vacuum level, defined as the effective potential at grid points with
  zero density, is printed in the standard output. This is done whenever
  there are such points and either SaveElectrostaticPotential or
  SaveTotalPotential are true. This will be useful to calculate the work 
  function of a surface.
  
  added:
    Src/vacuum_level.f90      ! Computes the vacuum level
  modified:
    Docs/siesta.tex           ! Document side effect of SaveTotalPotential
    Src/Makefile              ! Add vacuum_level.o. Update dependencies
    Src/dhscf.F               ! Call vacuum_level and print it
    Src/moreParallelSubs.F90  ! Make public miscAllReduceInt

---------------------------------------------------------------------
2010-01-15  18:10:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-327

  Make doping routine call global fdf version (From J.M.Soler)
  
  An error was occurring because all nodes were calling the old (serial) fdf
  routines, which should be called only by node=0. The fdf_global version can
  handle such global calls.
  
  modified:
    Src/Makefile  ! Updated dependencies
    Src/doping.F  ! Call global fdf version

---------------------------------------------------------------------
2010-01-15  17:55:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-326

  New GGA functionals with PBE form and parameters from Capelle et al (From J.M.Soler)
  
  The four new functionals, with author labels PBE(JsJrLO), PBE(JsJrHEG), 
  PBE(GcGxLO), and PBE(GcGxHGE), have the PBE functional form, but use
  modified values for parameters beta, mu, and kappa. 
  Refs: L.S.Pedroza et al, PRB 79, 201106 (2009)
        M.M.Odashima et al, J. Chem. Theory Comp. 5, 798 (2009)
  
  modified:
    Src/SiestaXC/ggaxc.f     ! New functionals implemented
    Src/SiestaXC/xcmod.f90   ! Increased length for XCfunc and XCauth strings
    Src/atom.f               ! Let xc_check continue even if func. not known
    Src/read_xc_info.F       ! Increased length for XCfunc and XCauth strings

---------------------------------------------------------------------
2010-01-15  17:40:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-325

Document in manual the file on orbital indexes (From J.M.Soler)
  
Added to the manual documentation on file (label).ORB_INDX
  
modified:
    Docs/siesta.ind
    Docs/siesta.tex   ! File ORB_INDX documented.
    
---------------------------------------------------------------------
2010-01-15  17:40:00 GMT Jose A Torres <jose.torres.alonso@uam.es>  trunk-324

Write orbital indexes  (From J.M.Soler)
  
  To assist users in interpreting files like (label).DM and (label).HS, a new
  file called (label).ORB_INDX is written with info on the orbital index order.
  
  added:
    Src/write_orb_indx.f90   ! Writes (label).ORB_INDX
  
  modified:
    Src/Makefile             ! Added write_orb_indx.o + Dependencies updated
    Src/atmfuncs.f           ! Orbital symmetry names completed up to g orbitals
    Src/compute_dm.F         ! Added call to write_orb_indx
    
---------------------------------------------------------------------
2010-01-15  17:02:00 GMT  Jose A Torres <jose.torres.alonso@uam.es>  trunk-323

Name of functional updated in AM05XC to correctly be AM05 (From J. Gale)

modified:
  Src/SiestaXC/ggaxc.f
  
---------------------------------------------------------------------
2010-01-15  16:43:00 GMT  Jose A Torres <jose.torres.alonso@uam.es>  trunk-322

Changes to the default precision of grid magnitudes (From A. Garcia)

The grid functions (charge densities, potentials, etc) are now in
double precision by default. The 'phi' array that holds the values of
the basis orbitals on the real-space grid is kept in single precision.

The following pre-processing symbols at compile time control the 
precision selection:

#ifdef GRID_SP
    integer, parameter :: grid_p = sp
    integer, parameter :: phi_grid_p = sp
#elif defined(GRID_DP)
    integer, parameter :: grid_p = dp
    integer, parameter :: phi_grid_p = dp
#else
    integer, parameter :: grid_p = dp
    integer, parameter :: phi_grid_p = sp
#endif

GRID_DP will lead to a sizable memory increase, as 'phi' is the main
user of memory on the grid. On the other hand, the gains in accuracy
are negligible, as the operations over 'phi' are accumulated in double
precision variables.

GRID_SP recovers the old Siesta default. It will not free much
memory, and it will show some numerical differences.

modified:
  Docs/siesta.ind
  Docs/siesta.tex
  Src/meshsubs.F
  Src/precision.F

---------------------------------------------------------------------
2010-01-15  16:43:00 GMT  Jose A Torres <jose.torres.alonso@uam.es>     trunk-321

 Fixed the precision of real and complex variables in m_ts* modules. (From F.D.Novaes)
  
  * For the TSVHFix and TSvoltage2 subroutines (m_ts_in_siesta.F90 module),
    fixed the precision of the "v" variable (real space potential) 
    to be grid_p.
  
  * In all the modified modules, the following changes were made:
  
    real*8 --> real(dp)
    complex*16 --> complex(dp)
    double precision --> real(dp)
  
    where "dp" comes from the precision module.   
  
  modified:
    Src/m_ts_aux_rout.F
    Src/m_ts_contour.F
    Src/m_ts_electrode.F90
    Src/m_ts_in_siesta.F
    Src/m_ts_io.F90
    Src/m_ts_scattering.F

---------------------------------------------------------------------
2009-12-07  18:43:00 GMT  Jose A Torres <jtorres.sp@gmail.com>     trunk-320

 Make WriteXML option consistent (XML.Write) and document (From A. Walker)

 Document the two new XML options: XML.AbortOnErrors and
 XML.AbortOnWarnings in siesta.tex (documentation is in the
 XML appendix).

 Rename undocumented WriteXML option to XML.Write for
 consistancy. Document this option in siesta.tex.
 
 modified:
  Docs/siesta.tex
  Src/siesta_cmlsubs.F90
 
---------------------------------------------------------------------
2009-12-07  18:28:00 GMT  Jose A Torres <jtorres.sp@gmail.com>     trunk-319

Update FoX library and add XML.AbortOnErrors and XML.AbortOnWarnings (From A. Walker)

It is sometimes useful for warnings or errors generated by the FoX
libary to result in an abort to generate a core dump or stack trace to
see where in Siesta the call causing the error is being made. It is
now possible to turn on this behaviour at runtime using two new fdf
boolean tags:

 XML.AbortOnErrors  XML.AbortOnWarnings

Both are boolean and default to .false. (which mirrors the current
stopping behaviour).

These features have been made possible by an update in the FoX library
that adds an interface to allow errors and warnings to result in an
abort signal. In the update there is also a fix to work around a PGI
bug for the overloaded wxml interfaces (aparently not used in Siesta)
and a change to the prng to avoid using initalised data in prng_init.

added:
  Src/FoX/arch.make
modified:
  Src/FoX/Makefile
  Src/FoX/common/FoX_common.F90
  Src/FoX/common/m_common_error.F90
  Src/FoX/common/makefile
  Src/FoX/fsys/fox_m_fsys_abort_flush.F90
  Src/FoX/utils/fox_m_utils_uuid.F90
  Src/FoX/utils/makefile
  Src/FoX/wcml/m_wcml_molecule.F90
  Src/FoX/wcml/makefile
  Src/FoX/wxml/m_wxml_core.F90
  Src/FoX/wxml/m_wxml_overloads.F90
  Src/FoX/wxml/makefile
  Src/siesta_cml.f90
  Src/siesta_cmlsubs.F90

------------------------------------------------------------------------------
2009-12-04  16:21:00 GMT  Jose A Torres <jtorres.sp@gmail.com>      trunk-318

Fixes to compilation of Utils (From A. Garcia)

After the merge of SiestaXC the building of many Util programs was broken.
The problems have been fixed.

modified:
  Pseudo/atom/Makefile
  Pseudo/atom/divdif.f
  Util/Denchar/Src/Makefile
  Util/Gen-basis/Makefile
  Util/Helpers/Makefile
  Util/Optimizer/Makefile
  Util/STM/ol-stm/Src/Makefile
  Util/STM/simple-stm/plstm.f
  Util/TBTrans/Makefile
  Util/VCA/Makefile

------------------------------------------------------------------------------
2009-11-27  19:56:00 GMT  Jose A Torres <jtorres.sp@gmail.com>      trunk-317

Minor change in cellxc.f90 to make it compatible with xlf

In cellxc.f90 
The code:
timeDisp=huge(timeDisp)  
Seems to give compilation problems when using xlf
It has been replaced by
timeDisp=huge(1.0_dp)  
 
modified:
  Src/SiestaXC/cellxc.f90 

------------------------------------------------------------------------------
2009-11-27  19:35:00 GMT  Jose A Torres <jtorres.sp@gmail.com>      trunk-316

Position of checking statement corrected in cellxc.f90 

The variable GGA was being used before being defined in 
SiestaXC/cellxc.f90. This modification fixes that bug. 
The following block:
"  if (present(dVxcdD) .and. GGA) &
    call die(errHead//'dVxcdD available only for LDA')
"
Has been moved to a new position, just after GGA has been defined.
 
modified:
  Src/SiestaXC/cellxc.f90 

------------------------------------------------------------------------------
2009-11-27  18:56:00 GMT  Jose A Torres <jtorres.sp@gmail.com>      trunk-315

Modularize efield and doping modules. Restructure CML interfaces. (From A. Garcia)

* The code in efield.F (now m_efield.F) has been split in several
  routines. 

* The code in doping.F has been split in several routines.

* Siesta_cml is now the main interface to CML in Siesta.
  Siesta_cmlsubs is a client of siesta_cml and only exports
  siesta_cml_init and siesta_cml_exit.
  
  For unknown reasons, it has been necessary to declare all the
  symbols in siesta_cml explicitly "public" and add the "private"
  global statement to avoid compiler crashes (intel V10) upon
  compiling several modules.  A number of explicit "only" clauses have
  been added to a few CML import statements in several modules.

removed:
  Src/efield.F
added:
  Src/m_efield.F
modified:
  Src/Makefile
  Src/dhscf.F
  Src/doping.F
  Src/post_scf_work.F
  Src/setup_hamiltonian.F
  Src/siesta_cml.f90
  Src/siesta_cmlsubs.F90
  Src/siesta_end.F
  Src/siesta_move.F
  Src/state_init.F
  
------------------------------------------------------------------------------
2009-11-27  18:45:00 GMT  Jose A Torres <jtorres.sp@gmail.com>      trunk-314

Fix test scripts for correct executable path (From A. Garcia)

* Some scripts in Tests/Scripts still referred to the old "Src"-style
  siesta executable.

* Tests/test.mk had a path to the executable which assumed that it ran
  under the default Obj directory.

modified:
  Tests/Scripts/matterhorn-gm.sge
  Tests/Scripts/matterhorn-mpich.sge
  Tests/Scripts/nano.pbs
  Tests/Scripts/nano4.sh
  Tests/Scripts/simple_parallel.sh
  Tests/test.mk
  
------------------------------------------------------------------------------
2009-11-25  09:34:00 GMT  Jose A Torres <jtorres.sp@gmail.com>      trunk-313

siestaXC.f90 renamed siestaxc.f90 (From J. Soler)

To avoid case ambiguities, that cause compilation problems, the name of file
siestaXC.f90 has been renamed as siestaxc.f90

renamed:
  Src/SiestaXC/siestaXC.f90 => Src/SiestaXC/siestaxc.f90
modified:
  Src/SiestaXC/lib-00-README  ! siestaXC.mod -> siestaxc.mod
  Src/SiestaXC/lib-makefile   ! siestaXC.f90,o -> siestaxc.f90,o
  Src/SiestaXC/makefile       ! siestaXC.f90,o -> siestaxc.f90,o

------------------------------------------------------------------------
2009-11-23  09:54:00 GMT Jose A Torres <jtorres.sp@gmail.com>    trunk-312

Support for the Armiento and Mattson's  functional added (From J. Gale)

Support for the AM05 functional has been added to routines in SiestaXC 
and Pseudo. This is done using the AM05 subroutines distributed by 
Armiento and Mattson, under the terms of the conditions contained within 
the header to their software allowing modification and redistribution 
provider the original copyright header remains. 

A new module, am05, contained within the file SiestaXC/am05.f90, has been 
added containing the code from Armiento and Mattsson. Within ggaxc.f90 
a wrapper has been added, am05xc, to pass the variables from ggaxc to 
am05 subroutines and handle the return arguments appropriately. 

In the atom program the two-letter symbol "am" has been added for AM05.
In SIESTA the GGA Authors are "AM05".

A test of the AM05 functional added in h2o_am05.

added:
  Pseudo/atom/am05.f
  Src/SiestaXC/am05.f90
  Tests/Pseudos/H_am05.psf
  Tests/Pseudos/O_am05.psf
  Tests/Reference/h2o_am05.out
  Tests/h2o_am05/
  Tests/h2o_am05/README
  Tests/h2o_am05/h2o_am05.fdf
  Tests/h2o_am05/h2o_am05.pseudos
  Tests/h2o_am05/makefile
modified:
  Docs/siesta.tex
  Pseudo/atom/Docs/atom.tex
  Pseudo/atom/pseudoXML.f
  Pseudo/atom/velect.f
  Src/Makefile
  Src/SiestaXC/atomxc.f90
  Src/SiestaXC/cellxc.f90
  Src/SiestaXC/ggaxc.f
  Src/SiestaXC/makefile
  Src/SiestaXC/siestaXC.f90
  Src/SiestaXC/xcmod.f90
  Src/atom.f
  
------------------------------------------------------------------------
2009-11-10  20:30:00 GMT Jose M Soler <jose.soler@uam.es>      trunk-311

Avoid repetition of routine name in allocation report

Since the introduction of the routine name in the allocation report, in
revno 301, some arrays appeared with a repeated routine name, since this
is also given in the array name. Also, the module name has been added in
calls to re_alloc, within module neighbour.

modified:
  Src/SiestaXC/atomxc.f90   ! Call to alloc_default commented out
  Src/SiestaXC/cellxc.f90   ! 'routine' removed from call to alloc_default
  Src/matel.f               ! 'routine' removed from call to alloc_default
  Src/mneighb.f             ! Module name used in calls to re_alloc
 

------------------------------------------------------------------------
2009-11-10 18:25:00 GMT Jose A. Torres <jtorres.sp@gmail.com>   trunk-310

Increased parameter nr in vdwxc, to avoid an out-of-bounds condition(J. Soler)

An out of bounds condition was occurring in vdwxc when called by atom
pseudopotential generation program. With ifort, this lead to program
crash or to an overflow of the system memory. To solve this, parameter 
nr been increased from 1024 to 2048, and a check has been added.

modified:
  Src/SiestaXC/vdwxc.f90   ! Parameter nr increased

------------------------------------------------------------------------
2009-11-10 17:59:00 GMT Jose A. Torres <jtorres.sp@gmail.com>   trunk-309

Clarification of the use of *_last geometry information (A. Garcia)

The variables xa_last (formerly xalast), ucell_last, and scell_last
are used to hold the information related to the last geometry for
which the electronic structure has been computed. This is necessary
since the "siesta_move" routine updates the geometry after every step.
By using the "*_last" variables instead of "xa", "ucell", and "scell",
we make sure that "siesta_analysis", when calculating the
polarization, optical properties, etc, uses the coordinates actually
used to compute the electronic structure.

The *_last variables are set at the beginning of "siesta_move", before
the actual displacements. Due to a bug in the program, however, this
was being done only at the final scheduled step ('fincoor'), instead
of inconditionally after every step. Thus they could be used undefined
if, for example, a relaxation finishes before the scheduled number of
steps (which is typical).

While fixing this bug, it became apparent that some other sections of
"siesta_analysis" are using the "predicted" coordinates (the output of
coordinates in various formats) instead of the last "used"
coordinates. This can be considered a feature or a bug.

Similarly, the computation of the spin polarization uses a density
matrix that is actually the result of a mixing after the last SCF
step.

(Fix prepared by A. Garcia after the discovery of the bug by J. Gale)

modified:
  Src/atomlist.f
  Src/born_charge.F
  Src/local_DOS.F
  Src/siesta_analysis.F
  Src/siesta_geom.F90
  Src/siesta_move.F
 
------------------------------------------------------------------------
2009-11-10  17:53:00 GMT Jose A. Torres <jtorres.sp@gmail.com> trunk-308

Fix bug in electric field initialization (J. Junquera)

When using the ExternalElectricField option (block), a bug prevented
the actual use of the field to generate the potential ramp on the grid
(but not the calculation of an extra contribution to the energy).


modified:
  Src/efield.F

------------------------------------------------------------------------
2009-11-06  19:34 GMT Jose A. Torres <jtorres.sp@gmail.com>     trunk-307

Error fixed for MPI_Waitall, Call to write_raw_efs limited to I/O node (J.Gale)

Introduced some patches from J.Gale's branch:

* Error in mpi_siesta.f90 fixed for MPI_Waitall. The interface had 
  the wrong set of arguments passed through.

    +     call MPI_WAITALL(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR)
    ---
    -     call MPI_WAITALL(COUNT, ARRAY_OF_REQUESTS, INDEX, STATUS, IERROR)

* Call to write_raw_efs from state_analysis now limited to I/O node only.

    +       if (IOnode) call write_raw_efs(stress,na_u,fa,FreeE)
    ---
    -       call write_raw_efs(stress,na_u,fa,FreeE)

* Some comments changed in Src/m_timer.F90


modified:
  Src/MPI/mpi_siesta.f90   !  
  Src/m_timer.F90
  Src/state_analysis.F

------------------------------------------------------------------------
2009-11-03  11:15:00 GMT Jose M Soler <jose.soler@uam.es>      trunk-306
Correct number of orbital nodes with 'nodes' option

The (mainly obsolete) 'nodes' option for basis orbital generation was
producing orbitals with one excess radial node (i.e. one and two nodes
for double zeta, instead of zero and one node). Corrected.

A goto statement, out of a start-stop-timer piece of code, lead to
a program die within timer in some cases. Corrected.

modified:
  Src/atom.f        ! Radial nodes decresed for 'nodes' option
  Src/m_timer.F90   ! A small correction of output format
  Src/rdiag.F       ! Added call to stop_timer within rdiag3 section

------------------------------------------------------------------------
2009-10-15  21:00:00 GMT Jose M Soler <jose.soler@uam.es>      trunk-305
Match arguments between re_alloc and de_alloc calls

For a correct accounting of array allocations, both the 'name' and
'routine' arguments should be identical (including case sensitivity)
in the corresponding calls to re_alloc and de_alloc of an array.
The two arguments are combined into an internal name as 
trim(routine)//' '//name, so that (name='rho',routine='dhscf') 
is equivalent to (name='dhscf rho'). This is the name printed in
the allocation report.

When the array is allocated and deallocated in different subroutines, 
it is clearer not to use the 'routine' argument, or give it the value 
of the array 'owner' (for example its module name). 

Our most complicated case is that of arrays declared in one or more 
subroutines and allocated in a subroutine called by them (as done in
find_kgrid). In this case, the 'routine' name must be that of the
allocating subroutine, but the arrays of the different calling
routines will be reported as a single array. Thus, array kpoint of 
routine kpoint_grid and array kpoints_pdos of routine kpoint_pdos 
will be reported together as array points of routine find_kgrid.

I see no solution if more than one called subroutine (not in the 
same module) were allocating or deallocating an array, but there
is no such a case in siesta.

For the previous reasons, until now, only the 'name' argument was used.
But this made it difficult to identify the siesta routines allocating
many arrays. So from now on, the whole routine+name will be used.

The calls to printmemory have been commented out: its output has
become unrealistic, since most allocations occur in re_alloc and
they are no longer transmitted to routine memory.

modified:
  Src/SiestaXC/fft3d.f90
  Src/SiestaXC/mesh3d.F90
  Src/alloc.F90
  Src/atomlwf.F
  Src/bands.F
  Src/basis_types.f
  Src/bonds.f
  Src/cgvc_zmatrix.F
  Src/detover.F
  Src/dhscf.F
  Src/fft.F
  Src/find_kgrid.F
  Src/fire_optim.F
  Src/forhar.f
  Src/hsparse.f
  Src/kinefsm.f
  Src/ksv.f
  Src/m_broyden_mixing.f
  Src/m_fire_mixing.f
  Src/m_iodm.F
  Src/m_pulay.F
  Src/m_sparse.F
  Src/memory.F
  Src/meshmatrix.F
  Src/molecularmechanics.F90
  Src/moreParallelSubs.F90
  Src/new_dm.F
  Src/nlefsm.f
  Src/old_atmfuncs.f
  Src/outcoor.f
  Src/overfsm.f
  Src/pdos.F
  Src/pdosg.F
  Src/pdosk.F
  Src/pdoskp.F
  Src/phirphi.f
  Src/poison.F
  Src/pseudopotential.f
  Src/reord.f
  Src/rhoofd.f
  Src/rhoofdsp.f
  Src/savepsi.F
  Src/setup_hamiltonian.F
  Src/siesta_analysis.F
  Src/siesta_end.F
  Src/siesta_init.F
  Src/siesta_move.F
  Src/spher_harm.f
  Src/state_init.F
  Src/vmat.f
  Src/vmatsp.f
  Src/zm_broyden_optim.F
  Src/zm_fire_optim.F
  Src/zmatrix.F

------------------------------------------------------------------------
2009-10-13  08:05:00 GMT Alberto Garcia <albertog@icmab.es>    trunk-304
Array indexp distributed among parallel processors (J. Soler)

* Array indexp translates the mesh index from the extended supercell
  to the part of unit cell stored locally by each node. It has been 
  distributed, so that now it translated to myBox from myExtBox, which
  are my processor's mesh box and the same box extended by lateral 
  'wings'.

* Documentation of meshsubs has been considerably extended


------------------------------------------------------------------------
2009-10-12  16:05:00 GMT Alberto Garcia <albertog@icmab.es>    trunk-303
Add dependency line in SiestaXC. Add missing Supercell docs

* A dependency for timer.o was missing in the SiestaXC makefile, thus
breaking the multithreaded compilation ("make -j N") feature. (A. Walker)

* The documentation for the Supercell option had been inadvertently
  left out of the manual after the reorganization.

------------------------------------------------------------------------
2009-10-12  13:35:00 GMT Alberto Garcia <albertog@icmab.es>    trunk-302
Assorted fixes after vdw merge

* Fix copy operation for modules in SiestaXC, to work around down-casing
  by Intel compiler and the possible need of visibility of included modules
  for other compilers.  (Thanks to A. Walker)

* Add XC dependency to TranSiesta compilation (F.D. Novaes)

* Wrap pre-broadcast section in rdiag (J. Gale)

* Trap for potential out of bounds access to string in m_timer.F90 (J. Gale)

* Format change in atomlist (J. Gale)
      
  Format of write statement modified to allow for the fact that the 
  number of orbitals and projectors is much larger than the number of
  atoms, often leading to overflow.

* License header update in SiestaXC directory.
* Use lib-arch.make to compile stand-alone library, for clarity.

------------------------------------------------------------------------
2009-10-05  14:15:00 GMT Alberto Garcia <albertog@icmab.es>    trunk-301
New siestaXC library including van der Waals functional

Implementation of the non local van der Waals density functional 
of Dion et al (PRL 92, 246401 (2004), PRL 103, 096102 (2009)).

The codes for the new functional are 

XC.functional           VDW
XC.authors              DRSLL

in Siesta and 'vw' (or 'vf') in Atom.

All the exchange-correlation routines have been placed in a library
called siestaXC, whose unique entry point is module m_siestaXC. The
sources are in subdirectory Src/SiestaXC, whose makefile allows to
create a self-contained distribution in file siestaXC.tgz, that can
be used in programs other than siesta. The library sources that are
used by siesta also outside the library (like alloc.F90) remain in
Src, and are copied by SiestaXC/makefile into siestaXC.tgz.

The library is used to compile siesta itself, with a scheme similar
to that used for MPI, fdf and FoX. Pseudo/atom has been also adapted
to use the siestaXC library.

The implementation of the non local van der Waals density functional
has led to a whole rewritting of cellxc and a major one of atomxc.
File xc has been splitted in m_atomxc, m_ldaxc, and m_ggaxc, which
are now modules. The VDW-specific routines are in module m_vdwxc.

The new parallelization of cellxc has led to several new modules, of
which mesh3d is the largest one. It allows new distributions of mesh
points among processors, that can change dynamically. Other relevant
modules are fftr, for 3-D FFTs of real functions. fft3d has changed
to allow (complex) 3-D FFTs using the new distributions of mesh points.
Module mesh1d provides radial (1-D) mesh utilities. Module m_debugXC
writes reports debugXC.node$$ with details of mesh distributions.

The new m_timer module, together with changes in MPI/mpi_siesta, allows
the profiling of MPI communication times, for each routine that calls 
timer, after compiling with -DMPI_TIMING. Routine timer itself remains 
external, but it uses m_timer operationally.

The full accounting and reporting of allocated arrays is now done in
module alloc, and printed in (SystemLabel).alloc. The old 'memory'
routine now passes information to alloc for this accounting, rather
than the other way around. Therefore, the 'total' allocation sizes
given by memory routine are no longer complete, though they are still
printed.

(Jose Soler (UAM), with help by Alberto Garcia (ICMAB), Rogeli Grima
(BSC) , and Jose Maria Cela (BSC))


------------------------------------------------------------------------
2009-09-29  10:30:00 GMT Alberto Garcia <albertog@icmab.es>    trunk-300
TranSiesta updates. Assorted fixes and cleanup. Update outputs and banner.

* Make local copy of reinit in Util/Denchar
* Add comment to the manual re: MeshSubDivisions
* Put unit of current in tbtrans. Updated outputs in Tests/transiesta
* Merge changes to TS code by F. Novaes
* Change Copyright dates. Now they are of the form 1996- 
* Remove xmlparser/Test directory. Remove test-xml fossils
* Update out and xml reference files. Update Tests/Makefile
* Fix script.mk and Tests/partial/script.sh

------------------------------------------------------------------------
2009-09-29  10:30:00 GMT Alberto Garcia <albertog@icmab.es>    trunk-299
Update of TS section of manual. Assorted fixes.

* Update of the TranSiesta section of the manual (P. Ordejon, F. Novaes)

* Fixes and streamlined compilation of tbtrans program in Util/TBTrans
  (F. Novaes, A. Garcia)

* Update of 'doping' routine for doped slabs (P. Ordejon)

* New 'si2x1h-dipole' test for the dipole correction feature (P. Ordejon)

* Fixes to the building system (A. Walker, A. Garcia)

* Fixes in 'bands.F' routine (A. Walker, J. Gale)

* Added Util/WFS/info_wfsx.f program (A. Garcia)

* New utility Util/Helpers/get_chem_labels (A. Garcia)

* Added zero-point-motion to Util/Vibra/Src/vibrator.f (J. Gale)

* Fix to avoid the handling of 'reduced_vlocal' when reading .ion files.
  (A. Garcia)

* Remove obsolete files from Src/fdf and clarify usage (A. Garcia)
 
------------------------------------------------------------------------
2009-09-11  11:30:00 GMT Alberto Garcia <albertog@icmab.es>    trunk-298
Re-organization of the manual. Building fixes. Update of Contrib utils

* The manual has been thoroughy re-sectioned, and some obscure points
clarified.

* In some cases, it has been necessary to make minor changes to the
code to be consistent with the behavior implied by the manual:

-- The forces file (.FA) is always created.  

-- There is no longer a coupling of the WriteCoorStep and WriteMDXMol
   options.

* Fix of the long-standing "mis-feature/bug" in the generation of
  perturbative polarization orbitals. The fix is turned off by
  default, unless the variable PAO.OldStylePolOrbs is set to
  ".false.".  (See manual.)

* Changes to streamline compilation, and new version of
  the arch.make template in Src/Sys/DOCUMENTED_TEMPLATE.make
  There are minor changes needed in arch.make files:

  -  Use of NETCDF_INCFLAGS instead of simply INCFLAGS
  -  Deprecation of the use of DEFS instead of FPPFLAGS

  A new Util/build_all.sh script automates the building
  of all the utility programs.

* Simplification of TranSiesta compilation:

      The target "transiesta" in the makefile defines its
      own -DTRANSIESTA pre-processor flag, so the user does
      not need to worry about it.
      
      Additionally, the makefile checks whether the last
      compilation taking place in the building directory
      was a "plain siesta", or a "transiesta", and complains
      in case of a mismatch. 

* Removal of all remaining mentions to the "Src" directory in the
  automated tests in Tests.

* Update of Andrei Postnikov's utilities in Util/Contrib/APostnikov to
  V. 0.3, and integration into the standard building mechanism.

(Alberto Garcia, with help from E. Artacho, J. Soler, O. Dieguez, and
J. Junquera.  The polarization-orbital fix is due to E. Anglada.)


------------------------------------------------------------------------
2009-09-02  13:50:00 GMT Alberto Garcia <albertog@icmab.es>    trunk-297
Code to treat slabs with net dipole and charged slabs (P. Ordejon)

If the FDF option 'SlabDipoleCorrection' is set to "true", Siesta
calculates the electric field required to compensate the dipole of the
system. The potential added to the grid corresponds to that of a
dipole layer at the middle of the vacuum layer. For slabs, this
exactly compensates the electric field at the vacuum, created by the
dipole moment of the system, thus allowing to deal with asymmetric
slabs (including systems with an adsorbate on one surface) and compute
properties such as the work funcion of each of the surfaces.

The FDF option SimulateDoping, if "true", instructs the program to add
a background charge density to simulate doping.  The new "doping"
routine calculates the net charge of the system, and adds a
compensating background charge that makes the system neutral. This
background charge is constant at points of the mesh near the atoms,
and zero at points far from the atoms.  This simulates situations like
doped slabs, where the extra electrons (holes) are compensated by
oposite charges at the material (the ionized dopant impurities), but
not at the vacuum.  This serves to simulate properly doped systems in
which there are large portions of vacuum, such as doped slabs.

New test: sic-slab

During the implementation of these features, a bug related to the 
calculation of the distance between Bravais planes was discovered
and fixed in efield.

------------------------------------------------------------------------
2009-08-30  17:15:00 GMT Alberto Garcia <albertog@icmab.es>    trunk-296
TS manual and updates. Building rationalization. Hsparse speedup

* Added TranSIESTA sections to the manual (Docs/siesta.tex) (by
  J.A. Torres).

* TranSIESTA and TBTrans updates (by F.D. Novaes):

- Reimplementation of getGF_Tri, that obtains the Green's Function
 using the fact that the Hamiltonian is tridiagonal.

- Fixed the generation of listudg in the transiesta routine
 (m_ts_in_siesta.F).  Now, when the TS.UpdateDMCR is set to
 .false. the cross terms between the electrodes and the contact region
 of the density matrix are also updated in the TS iteration
 process. If set to .true., only the elements of the contact region
 are changed during the self consistent cycle.

- In weightDM and weightDMC (m_ts_scattering.F), changed the weights
 of the cross terms elements, since when using Tri_Diag the
 non-equilibrium contributions are zero the way it used to be.

- In new_dm.F, added a condition that does not sets the energy-density
 matrix to zero in the first iteration of the SCF cycle.

- (with A. Garcia) New building scheme for TBTrans.

* Building rationalization (by A. Garcia):

- Move auxiliary programs from Src to individual directories in Util

 -- gen-basis and ioncat now live in Util/Gen-basis
 -- mixps and fractional have been moved to Util/VCA
 -- The programs to test the MPI installation are now in Util/MPI_test

- Update building mechanisms in Util/STM

(Some of the above building improvements use new functionality in
the fdf and MPI makefiles that allows these modules to be compiled in
"private subdirectories" anywhere: see Denchar and TBTrans for examples.)

* Hsparse has been dramatically speeded-up by removing a superfluous
  inner loop (by A. Garcia).

* Other updates to the manual by A. Garcia
 

** CHANGES ALONG siesta-2.6 series of trunk

-----------------------------------------------------------------------
2009-08-20  09:25:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.32
Documentation updates. Building and cosmetic fixes. Eggbox checker.

* Added a draft of release_notes_3.0

* New experimental directory Docs/ExtraDocs containing files with
  information relevant to a specific feature. They should complement
  the "manual", which is really a reference manual and not very useful
  for feature discovery. This is work in progress and subject to major
  changes.

* Updated the content of a number of README files.

* Updated several sections of Docs/siesta.tex.

* Created new Util/test-xml directory to keep a separate version of
  the XML checker.

* New Util/Scripting/eggbox_checker.py script for eggbox diagnostics.

* Added Src/Sys/DOCUMENTED-TEMPLATE.make to help users with the subtle
  points of arch.make generation. More documentation about the
  building process in several places.

* Warn about deprecation of PHONON interface.

* Update siesta.tex with DM reuse information. Better header
  information in new_dm.F. Remove references to iodm in Siesta
  files. It is still needed for some utility programs.

* Clarify target of 'goto' in atomlwf (this was a bug introduced in
  previous patches).

* Give the Src/obj_setup.sh the ability to override the Src link in
  the object directory. Now it should be possible to completely update
  the object directory even if it moves.

* Proper test for gfortran macros
  
  gfortran now defines the __GFORTRAN__ macro, so it is 
  no longer necessary to define GFORTRAN in makefiles, but
  it is still supported. The proper idiom for the gfortran 
  test in f2kcli is now:
  
  #if  !defined(GFORTRAN) && !defined(__GFORTRAN__)

* Removed the Src/filter debug directory.

* Updates to some makefiles and many cosmetic fixes.

-----------------------------------------------------------------------
2009-08-14  16:20:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.31
Speed-up of density-matrix building in diagk

By computing only the products of eigenvector components which are
really needed, the building of the density-matrix has been
significantly speeded-up in diagk.  A similar idea can be applied in
diagkp and diag2k (here saving in memory too), but these are not
implemented yet.

NOTE that the diagk_file version of the routine is still significantly
faster, and should be the method of choice when NetCDF is compiled in.

modified:
  Src/diagk.F

-----------------------------------------------------------------------
2009-08-07  16:20:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.30
Assorted fixes, dealing mostly with the building system

* (IMPORTANT) The default building directory is now Obj, instead of Src.
  This change is necessary to support multiple compilation with the
  same source. See Obj/README for more details.

* Many fixes to smooth compilation in several systems, notably on IBM
  computers. 

* The default makefile in Pseudo/atom is now the 'modern' version with
  CML support.

* Clearer diagnostics in case of FoX configuration problems. 

* Removed obsolete .make files from Src/Sys. Added 64bit versions of
  the MareNostrum files.

* The 'MaximumWallClockTime' option is no longer available.

* Fixes in the NetCDF iodm* routines to properly handle a pointer.

removed:
  Src/Sys/eth-hreidar-mpi.make
  Src/Sys/lahey-lam.make
  Src/Sys/lahey-mpich.make
  Src/Sys/lahey-nolibs.make
  Src/Sys/lahey.make
  Src/Sys/osfdxml-mpich.make
  Src/Sys/osfdxml.make
  Src/Sys/osfdxmlcdf.make
  Src/Sys/pgf90-lam.make
  Src/Sys/pgf90-mpich.make
  Src/Sys/pgf90-nolibs.make
  Src/Sys/pgf90.make
  Src/Sys/sgi-altix.make
  Src/Sys/sgi.make
  Src/Sys/sgi64-cdf.make
  Src/Sys/sgi64-lam-cdf.make
  Src/Sys/sgi64-lam.make
  Src/Sys/sgi64-mpi_fermat.make
  Src/Sys/sgi64-mpich-cdf.make
  Src/Sys/sgi64-mpich.make
  Src/Sys/sgin32-mpi.make
  Src/Sys/sun-nolibs.make
  Src/Sys/t3e.make
  Util/COOP/precision.f
added:
  Obj/
  Obj/README
  Src/Sys/marenostrum-mpi-64.make
  Src/Sys/marenostrum-mpi-netcdf-64.make
renamed:
  Pseudo/atom/makefile => Pseudo/atom/makefile-old
  Pseudo/atom/makefile-xml => Pseudo/atom/Makefile
  Src/Sys/marenostrum-mpi.make => Src/Sys/marenostrum-mpi-32.make
  Util/COOP/sys.f90 => Util/COOP/sys_local.f90
  Util/Vibra/Vibra/ => Util/Vibra/Src/
modified:
  Docs/siesta.ind
  Docs/siesta.tex
  Src/FoX/configure
  Src/Makefile
  Src/Sys/README
  Src/Sys/cscs-cray-mpi.make
  Src/Sys/cscs-cray.make
  Src/Sys/cscs-ibm-blanc.make
  Src/Sys/finisterrae.make
  Src/Sys/marenostrum-mpi-netcdf-32.make
  Src/iodm_netcdf.F90
  Src/iodmhs_netcdf.F90
  Src/molecularmechanics.F90
  Src/obj_setup.sh
  Src/siesta_options.F90
  Src/timer.F
  Util/COOP/Makefile
  Util/COOP/mprop.f90
  Util/Denchar/Src/Makefile
  Util/DensityMatrix/makefile
  Util/Grid/makefile
  Util/Projections/makefile
  Util/Vibra/Src/Makefile
  Util/WFS/makefile
  Util/pdosxml/makefile
  Util/pseudo-xml/makefile
  Pseudo/atom/makefile-old
  Pseudo/atom/Makefile
  Src/Sys/marenostrum-mpi-32.make

-----------------------------------------------------------------------
2009-07-03  14:00:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.29
TranSiesta: New saving options and file format (M. Paulsson, F.D. Novaes)

  * Changed format and filenames for saved TSHS files.
  * Enabled transiesta to save a TSHS file for each step in a FC run.
  * Transiesta keyword TS.onlyS (T/F) to save overlap matrix in .TSHS
  file format and quit without any SCF cycle.
  * New "onlyS" option to stop after generating the overlap matrix.
  * Disabled proximity check for onlyS run.

(+ Fix a few glitches in FoX-enabled compilation of TranSiesta)

Thanks to M. Paulsson and F.D. Novaes for this patch.

** NOTE: The Intel compiler V. 11.{0,1} does not compile correctly
         this version.
         
removed:
  Util/TBTrans/TSiohs2.F
modified:
  Src/Makefile
  Src/m_ts_electrode.F90
  Src/m_ts_io.F90
  Src/m_ts_options.F90
  Src/proximity_check.F
  Src/setup_hamiltonian.F
  Src/siesta_forces.F
  Src/state_init.F
  Src/write_subs.F
  Util/TBTrans/Makefile
  Util/TBTrans/TSiohs.F
  Util/TBTrans/work.pcl


-----------------------------------------------------------------------
2009-06-24  12:50:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.28
Update of CMLComp output. Integration of FoX library (A. Walker, T. White)

A subset of the FoX library has been integrated into the source tree.
It is configured and built by the Siesta Makefile, and is compatible
with the use of VPATH for multiple compilation.

The XML output from Siesta now conforms to the CMLComp subset of
version 2.2 of the Chemical Markup Language (CML).

A new directory Util/CMLComp has been created to hold the ccViz tool
to convert the XML output file into an XHTML file that can be opened
with any browser.

FoX is also used (optionally) by atm to produce pseudopotential files
in XML format, replacing the older wxml library by A. Garcia.

Thanks to Andrew Walker and Toby White for most of the technology
involved in this patch. A. Garcia fixed a few issues of the
interaction of FoX with the rest of the build process.

NOTE: The output reference XML files in Tests/Reference-xml have
been updated. A review of the test list and a final check is due
before release.


-----------------------------------------------------------------------
2009-06-24  12:25:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.27
Fix TranSiesta compilation issue after recent patches (F.D. Novaes)

A compilation error occurred because "found" variable is no longer used
in mixer.F (chages in io of density matrix)
  
Made "found" an optinal argument in TSiodm of the m_ts_io.F90 module.
     
In new_dm.F, in the call for TSiodm made explicit the use of the
optional "found", since it is used to determine if it should start
with a TS calculation, or a diagon calcualtion.
 
In mixer.F, the call for TSiodm no longer uses the "found" variable.
  
modified:
  Src/m_ts_io.F90
  Src/mixer.F
  Src/new_dm.F


-----------------------------------------------------------------------
2009-06-24  12:15:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.26
Fix behavior of extra pdos sampling for gamma case

The new "extra sampling" feature for the PDOS
incorrectly changed the behavior of the program for
gamma-only calculations. Now "gamma_pdos" is set to
.true. if the user does not specify any extra
sampling requirements.

Thanks to Jaime Ferrer for spotting the bug.

modified:
  Src/kpoint_pdos.F90

-----------------------------------------------------------------------
2009-06-15  12:45:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.25
Fix bug in verlet restart in parallel (A. Aguado)

The variable old_dt was read by Node zero from the VERLET_RESTART
file, but was not broadcast to the other nodes.

Symptoms of this bug were crashes with a Cholesky-type error, poor
energy conservation, and bad self-consistency of the density matrix
when running restarted microcanonical simulations in parallel.

Thanks to Andres Aguado <aguado@metodos.fam.cie.uva.es>
for diagnosing and fixing the bug.

modified:
  Src/dynamics.f

-----------------------------------------------------------------------
2009-06-15  12:45:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.24
Fixes: denchar, pathscale_mpi. DM(HS) history files. Makefiles

* Added nano .make and script files. Fixed ag test.

- The ag test had a very small MeshCutoff, and crashed.
- Added netCDF-enabled .make file for nano.
- Updated README file in Src/Sys
- Added pbs and sh scripts for test execution on nano.

* More complete DM and DMHS history files

The DM and DMHS history files have now names of
the form DM-NNNN.nc and DMHS-NNNN.nc, respectively,
to hold information for all geometry steps. This
expanded history option is turned off by default.

(+ experimental analysis scripts in Util/SCF)

* Better makefiles for some Util subdirectories

The WFS, DensityMatrix, and pseudo-xml subdirectories
of Util now have makefiles instrumented to use the
new OBJDIR variable.

* Cosmetic fix for Pathscale MPI

File mpi.F was not processed correctly by the Pathscale compiler.

* Fix double empty-line bug in denchar

The 2D data files contained extra blank lines in between blocks.

* Proper citation for ATOM in Pseudo/atom/README


added:
  Src/Sys/nano-intel-mpi-cdf.make
  Tests/Scripts/nano.pbs
  Tests/Scripts/nano4.sh
  Util/SCF/README
  Util/SCF/g_dm.py
  Util/SCF/g_dm3.py
  Util/SCF/g_els_out.py
  Util/SCF/g_hh.py
  Util/SCF/g_hist.py
  Util/WFS/makefile
modified:
  Docs/siesta.ind
  Docs/siesta.tex
  Pseudo/atom/README
  Src/MPI/mpi.F
  Src/Sys/README
  Src/iodm_netcdf.F90
  Src/iodmhs_netcdf.F90
  Src/state_init.F
  Tests/ag/ag.fdf
  Util/Denchar/Src/rhoofr.f
  Util/DensityMatrix/makefile
  Util/pseudo-xml/makefile
  version.info


-----------------------------------------------------------------------
2009-06-15  11:00:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.23
Implementation of PBEsol functional (J. Gale)

Implemented the PBE functional for solids of Perdew et al, PRL 100,
136406 (2008).

The xc_authors string in Siesta is 'PBEsol'.  In atom, the two-letter
symbol is 'ps'

The XML interface in Pseudo/atom and the converter in Util/pseudo-xml
have been updated.

  Docs/siesta.tex
  Pseudo/atom/Docs/atom.tex
  Pseudo/atom/makefile-xml
  Pseudo/atom/pseudoXML.f
  Pseudo/atom/velect.f
  Pseudo/atom/xc.f
  Src/atom.f
  Src/xc.f
  Util/pseudo-xml/xml2psf_helper.f

-----------------------------------------------------------------------
2009-06-15  11:00:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.22
Optional k-point sampling for PDOS calculations (J. Gale)

Separate grid of K-points introduced for PDOS so that greater
resolution can be achieved.  To do this, a new module based on the SCF
kpoint module has been introduced with separate data structures for
the PDOS k-points. In the case that no PDOS grid is specified then the
SCF grid is used as present.

Handle the case where a gamma point calculation is performed for the
SCF and then a non-gamma calculation is requested for the PDOS
evaluation. Here the need for the auxiliary cell is trapped in
siesta_init by a call to the new routine init_projected_dos.  If
do_pdos is true, then the gamma flag is set to be false if gamma_pdos
is false.

Note added to the manual to suggest that PDOS evaluations be performed
using a restart if the SCF case involves the gamma point while the
PDOS grid involves general k-points.

(AG added the si_pdos_kgrid test)

added:
  Src/kpoint_pdos.F90
  Tests/Reference-xml/si_pdos_kgrid.xml
  Tests/Reference/si_pdos_kgrid.out
  Tests/si_pdos_kgrid/
  Tests/si_pdos_kgrid/makefile
  Tests/si_pdos_kgrid/si_pdos_kgrid.fdf
  Tests/si_pdos_kgrid/si_pdos_kgrid.pseudos
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/projected_DOS.F
  Src/siesta_init.F

-----------------------------------------------------------------------
2009-05-07  10:35:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.21
Parallel fixes: Diag.ParallelOverK for wf generation; idle nodes

* Patches in diagg and diagk for the corner case in which a node has no 
assigned orbitals (Julian Gale).

* The option to parallelize over k-points is only implemented for the
SCF loop. The bands routine had already been coded to fall back on the
standard parallelization over orbitals, but the wwave routine (used to
generate wavefunctions for analysis) had not. This bug has been
corrected, and now both routines print a warning to the user when the
Diag.ParallelOverK option is used.

modified:
  Src/bands.F
  Src/diagg.F
  Src/diagk.F
  Src/writewave.F
  Docs/siesta.tex
  Docs/siesta.ind

-----------------------------------------------------------------------
2009-04-02  12:55:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.20
More flexible compilation of Util code

By a simple change to the makefiles (involving an OBJDIR variable that
can be set to "Src" or to the name of the optional compiler-dependent
object directory), the code in Util can be compiled with multiple
options.

The use of VPATH within Util also allows the re-use of common utility
files such as f2kcli.F90.

Work in progress. Really a temporary solution util Util is integrated in
the architecture-or-compiler-dependent object directories.

+ The pdos program in Util/pdosxml has been renamed to pdosxml.

removed:
  Util/COOP/f2kcli.F90
  Util/pdosxml/f2kcli.F90
added:
  Util/Projections/makefile
renamed:
  Util/pdosxml/pdos.f90 => Util/pdosxml/pdosxml.f90
modified:
  Util/COOP/Makefile
  Util/Grid/makefile
  Util/Vibra/Vibra/Makefile
  Util/Vibra/Vibra/vibrator.f
  Util/pdosxml/README
  Util/pdosxml/makefile
  Util/pdosxml/pdosxml.f90

-----------------------------------------------------------------------
2009-04-02  12:50:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.19
New version of denchar in Util/Denchar

A new version of denchar, able to process complex wavefunctions and
multiple k-points, has been put back in the Util/Denchar/Src directory.
It can be compiled by re-using code in the top Src directory. 

(Thanks to Pablo Ordejon)

removed:
  Src/denchar.F
  Src/m_denchar_geom.f
  Src/m_denchar_init.F
  Src/m_denchar_io.F
  Src/m_denchar_neighb.f
  Src/m_denchar_work.f
  Util/Denchar/README-Source
added:
  Util/Denchar/Src/
  Util/Denchar/Src/Makefile
  Util/Denchar/Src/README
  Util/Denchar/Src/atompla.f
  Util/Denchar/Src/colinear.f
  Util/Denchar/Src/denchar.f
  Util/Denchar/Src/fdf/
  Util/Denchar/Src/fdf/makefile
  Util/Denchar/Src/itochar.f
  Util/Denchar/Src/length.f
  Util/Denchar/Src/matvect.f
  Util/Denchar/Src/neighb.f
  Util/Denchar/Src/planed.f
  Util/Denchar/Src/ranger.f
  Util/Denchar/Src/readpla.f
  Util/Denchar/Src/readsts.f
  Util/Denchar/Src/readwaves.f
  Util/Denchar/Src/redata_denchar.f
  Util/Denchar/Src/reinit.f
  Util/Denchar/Src/rhoofr.f
  Util/Denchar/Src/stsofr.f
  Util/Denchar/Src/wavofr.f
  Util/Denchar/Src/wrout.f
modified:
  Docs/siesta.tex
  Src/Makefile
  Util/Denchar/Docs/CHANGES
  Util/Denchar/Docs/denchar.tex


-----------------------------------------------------------------------
2009-04-02  12:45:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.18
Added general-purpose optimizer in Util/Optimizer

Alpha version of the general-purpose optimization program, useful,
among other things, for pseudopotential and basis-set generation.

added:

  Util/Optimizer/
  Util/Optimizer/Examples/
  Util/Optimizer/Examples/Basis-Optim-Bond/
  Util/Optimizer/Examples/Basis-Optim-Bond/H.psf
  Util/Optimizer/Examples/Basis-Optim-Bond/O.psf
  Util/Optimizer/Examples/Basis-Optim-Bond/SWARM_PARAMS
  Util/Optimizer/Examples/Basis-Optim-Bond/TEMPLATE
  Util/Optimizer/Examples/Basis-Optim-Bond/VARS
  Util/Optimizer/Examples/Basis-Optim-Bond/run_script.sh
  Util/Optimizer/Examples/Basis_Harris/
  Util/Optimizer/Examples/Basis_Harris/DeltaRho.grid.nc
  Util/Optimizer/Examples/Basis_Harris/H.psf
  Util/Optimizer/Examples/Basis_Harris/O.psf
  Util/Optimizer/Examples/Basis_Harris/PARAMS
  Util/Optimizer/Examples/Basis_Harris/README
  Util/Optimizer/Examples/Basis_Harris/TEMPLATE
  Util/Optimizer/Examples/Basis_Harris/VARS
  Util/Optimizer/Examples/Basis_Harris/run_script.sh
  Util/Optimizer/Examples/Basis_Optim/
  Util/Optimizer/Examples/Basis_Optim/H.psf
  Util/Optimizer/Examples/Basis_Optim/O.psf
  Util/Optimizer/Examples/Basis_Optim/PARAMS
  Util/Optimizer/Examples/Basis_Optim/README
  Util/Optimizer/Examples/Basis_Optim/TEMPLATE
  Util/Optimizer/Examples/Basis_Optim/VARS
  Util/Optimizer/Examples/Basis_Optim/run_script.sh
  Util/Optimizer/Examples/Basis_Optim_Accel/
  Util/Optimizer/Examples/Basis_Optim_Accel/DeltaRho.grid.nc
  Util/Optimizer/Examples/Basis_Optim_Accel/H.psf
  Util/Optimizer/Examples/Basis_Optim_Accel/O.psf
  Util/Optimizer/Examples/Basis_Optim_Accel/PARAMS
  Util/Optimizer/Examples/Basis_Optim_Accel/README
  Util/Optimizer/Examples/Basis_Optim_Accel/TEMPLATE
  Util/Optimizer/Examples/Basis_Optim_Accel/VARS
  Util/Optimizer/Examples/Basis_Optim_Accel/run_script.sh
  Util/Optimizer/Examples/Pseudo-Optim-Constrained/
  Util/Optimizer/Examples/Pseudo-Optim-Constrained/PARAMS
  Util/Optimizer/Examples/Pseudo-Optim-Constrained/PSGEN.TEMPLATE
  Util/Optimizer/Examples/Pseudo-Optim-Constrained/README
  Util/Optimizer/Examples/Pseudo-Optim-Constrained/SWARM_PARAMS
  Util/Optimizer/Examples/Pseudo-Optim-Constrained/Test.inp
  Util/Optimizer/Examples/Pseudo-Optim-Constrained/VARS
  Util/Optimizer/Examples/Pseudo-Optim-Constrained/run_script.sh
  Util/Optimizer/Makefile
  Util/Optimizer/README
  Util/Optimizer/amoeba.f
  Util/Optimizer/io.f
  Util/Optimizer/minimizer.f90
  Util/Optimizer/parse.f
  Util/Optimizer/precision.f90
  Util/Optimizer/simplex.f90
  Util/Optimizer/swarm.f90
  Util/Optimizer/sys.f
  Util/Optimizer/vars_module.f90

-----------------------------------------------------------------------
2009-04-02  12:40:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.17
New utility programs and features 

* Orbital projection program

Integrated a new version of the "orbmol" program, by Rurali and
Lorente, including the k-points functionality later implemented by
Tabares and Ordejon. The program is now called "orbmol_proj", and
is more economical in memory and hopefully run-time. 

The program uses the new WFSX wavefunction format (the new program
wfs2wfsx.f can be used for legacy data).

* New tool for creation of partial density matrices

A new program 'dm_creator' has been created in Util/COOP.
Given an HSX and a WFSX file, and an optional energy range, dm_creator
computes a "partial density matrix" with only those states in the
energy range. This density matrix can then be used with Denchar
for plotting (or for other more or less devious applications...)

* Scripting

- New cutoff.py example script
- Enhancements to the ASE interface:
     - "copy" method for Atom class
     - pseudopotential handler for ListOfAtoms

* Enhanced WFS utilities

The wavefunction-handling programs have been moved to Util/WFS. Added
wfsnc2wfsx (useful for New-Diagk calculations) and wfs2wfsx.

* Enhanced grid utilities in Util/Grid

- Increase bounds of work array in Util/Grid/libfft.f
- Added octave/matlab scripts for plane averages

* New Util/HSX directory

Up to now it only contains an experimental module hsx_m.f90 to process HSX files.

* New program dm_filter in Util/DensityMatrix

The DM filter program produces a new density-matrix in which only the
contributions of specified orbitals are retained (with minor modifications it can
delete those and keep the rest).

added:
  Util/COOP/dm_creator.F90
  Util/COOP/iodm_netcdf.F90
  Util/COOP/write_dm.f
  Util/DensityMatrix/README
  Util/DensityMatrix/dmfilter.f90
  Util/Grid/average_x.m
  Util/Grid/average_z.m
  Util/HSX/
  Util/HSX/hsx_m.f90
  Util/Projections/
  Util/Projections/Example/
  Util/Projections/Example/Na-on-Na-4A/
  Util/Projections/Example/Na-on-Na-4A/Na.psf
  Util/Projections/Example/Na-on-Na-4A/coo.gplot
  Util/Projections/Example/Na-on-Na-4A/coo.mpr
  Util/Projections/Example/Na-on-Na-4A/molecule.fdf
  Util/Projections/Example/Na-on-Na-4A/orbmol.gplot
  Util/Projections/Example/Na-on-Na-4A/orbmol.input
  Util/Projections/Example/Na-on-Na-4A/pdos.mpr
  Util/Projections/Example/Na-on-Na-4A/system.fdf
  Util/Projections/Example/Na-on-Na-6A/
  Util/Projections/Example/Na-on-Na-6A/Na.psf
  Util/Projections/Example/Na-on-Na-6A/coo.gplot
  Util/Projections/Example/Na-on-Na-6A/coo.mpr
  Util/Projections/Example/Na-on-Na-6A/molecule.fdf
  Util/Projections/Example/Na-on-Na-6A/orbmol.gplot
  Util/Projections/Example/Na-on-Na-6A/orbmol.input
  Util/Projections/Example/Na-on-Na-6A/pdos.mpr
  Util/Projections/Example/Na-on-Na-6A/system.fdf
  Util/Projections/README
  Util/Projections/orbmol_proj.f90
  Util/Scripting/cutoff.py
  Util/WFS/
  Util/WFS/wfs2wfsx.f
  Util/WFS/wfsnc2wfsx.f90
renamed:
  Util/readwf.f => Util/WFS/readwf.f
  Util/readwfx.f => Util/WFS/readwfx.f
  Util/wfsx2wfs.f => Util/WFS/wfsx2wfs.f
modified:
  Src/diagk_file.F
  Src/iowfs_netcdf.F90
  Util/COOP/Makefile
  Util/COOP/README
  Util/COOP/io_hs.f90
  Util/COOP/mprop.f90
  Util/COOP/subs.f90
  Util/DensityMatrix/cdf2dm.f90
  Util/DensityMatrix/dm2cdf.f90
  Util/DensityMatrix/makefile
  Util/Grid/libfft.f
  Util/Scripting/Siesta/Interface.py


-----------------------------------------------------------------------
2009-04-02  11:00:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.16
Assorted new (small) features

* Write Neutral-atom potential on the grid

If the fdf symbol SaveNeutralAtomPotential is set to 'True', the neutral-atom
potential is written to file SystemLabel.VNA (and optionally to Vna.grid.nc)
This feature is exercised in the h2o test.

* Warnings for multiple images at Gamma, with optional forcing of supercell

For a gamma-point calculation, it is still possible to have overlap of multiple
images. This could be because the cell is not big enough, if the user wants
to save CPU time and sacrifice a bit of accuracy.

This is harmless for the calculation of the electronic structure, as the program
just adds up all the relevant matrix elements, with phase factor 1.

For a COOP/COHP calculation, the resulting xij array is *wrong*, as
only the vector for one representative of the class of interactions is
kept. Thus a warning is produced by hsparse.

A new fdf symbol, "ForceAuxCell", has been introduced to allow the user to 
request a (more expensive) "k-point" calculation with an auxiliary cell if
needed. At this point, the very first iteration might give different results,
since the initial normalization of the density-matrix is different.

* Update the Src/ioncat.f program

It can now process the core charge and the charge associated to the
local pseudopotential

* Write also a (new format) HSX file whenever an HS file is requested.

* Add new .make files to Src/Sys

* Show message from 'die' also on standard error

* Disallow repeated species labels

* Use species label instead of atomic symbol in dump files.

* Set near-zero lattice vector components to zero

If the LatticeParameters option is used, and due to roundoff error in the
trigonometry, some components of the lattice vectors turned out very small
but non-zero. Now they are set to zero for cosmetic reasons.

* Disallow the use of non-diagonal supercells

Their use is not well-defined in all cases.





-----------------------------------------------------------------------
2009-04-02  10:30:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.15
Assorted fixes (hsparse warnings, xc_check...)

* Fix for overzealous multiple-image detection in hsparse

Hsparse raised a warning regarding connectivity of multiple images
without actually checking that the currently considered neighbor did
indeed overlap with the base atom.

* Add missing line in Util/Grid/grid2cube.f
  (P. Ordejon)

* Initialize nspin_data in Util/pdosxml/m_pdos.f90. Update cli code.
  (Reported by P. Ordejon)

* Fix revPBE section in xc_check in atom.f

* Fixed calculation of fermi level for charged systems in Util/COOP/mprop.f90
  (Thanks to Manuel Cobian)

* Fixed labels and file names in some tests.
  (Reported by I. Silanes, IFCA)

* Fix declarations in function numb in chempot
  (Thanks to Manuel Cobian)

* Increase the number of fields for energy differences in Pseudo/atom/prdiff.f
  (Reported by V. Maslyuk)

added:
  Tests/pd_ice/pd_ice.pseudos
renamed:
  Tests/h3po4_atomlists_1 => Tests/h3po4_1
  Tests/h3po4_atomlists_1/h3po4.fdf => Tests/h3po4_1/h3po4_1.fdf
  Tests/h3po4_atomlists_1/h3po4.pseudos => Tests/h3po4_1/h3po4_1.pseudos
  Tests/h3po4_atomlists_2 => Tests/h3po4_2
  Tests/h3po4_atomlists_2/h3po4.fdf => Tests/h3po4_2/h3po4_2.fdf
  Tests/h3po4_atomlists_2/h3po4.pseudos => Tests/h3po4_2/h3po4_2.pseudos
  Tests/h3po4_atomlists_3 => Tests/h3po4_3
  Tests/h3po4_atomlists_3/h3po4.fdf => Tests/h3po4_3/h3po4_3.fdf
  Tests/h3po4_atomlists_3/h3po4.pseudos => Tests/h3po4_3/h3po4_3.pseudos
  Tests/pd_h2o => Tests/pd_ice
modified:
  Pseudo/atom/prdiff.f
  Src/atom.f
  Src/chempot.F
  Src/hsparse.f
  Tests/h3po4_1/makefile
  Tests/h3po4_2/makefile
  Tests/h3po4_3/makefile
  Tests/pd_ice/makefile
  Tests/ptcda/ptcda.fdf
  Util/COOP/io_hs.f90
  Util/COOP/main_vars.f90
  Util/COOP/mprop.f90
  Util/Grid/grid2cube.f
  Util/pdosxml/f2kcli.F90
  Util/pdosxml/m_pdos.f90
  Tests/h3po4_1/h3po4_1.fdf
  Tests/h3po4_2/h3po4_2.fdf
  Tests/h3po4_3/h3po4_3.fdf


-----------------------------------------------------------------------
2009-03-28  17:20:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.14
Added a translator for pseudopotential files in XML format

Directory Util/pseudo-xml contains code by J. Junquera and A. Garcia
to convert pseudopotential files in the XML format designed by
Junquera, Garcia, and Verstraete (to be published) to ".psf" format.
  
Also:
 - Use of "force_underflow" to avoid very small numbers in output.
 - Use exact traditional marker messages in psf file.

added:
  Util/pseudo-xml/Fe.xml
  Util/pseudo-xml/io.f
  Util/pseudo-xml/makefile
  Util/pseudo-xml/pseudopotential.f
  Util/pseudo-xml/sys.f90
  Util/pseudo-xml/xml2psf.f90
  Util/pseudo-xml/xml2psf_helper.f
renamed:
  Src/pseudo-xml => Util/pseudo-xml
modified:
  Docs/siesta.tex
  Pseudo/atom/pseudoXML.f
  Util/README
  Util/pseudo-xml/README


-----------------------------------------------------------------------
2009-03-19  11:00:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.13
Fix evaluation of atomic radial functions near r=0

Spherical functions with l=0 must have a zero gradient at the
origin. However, after a change somewhere between v0.9 and v0.11, the
splines used have been constructed using the "natural" boundary
condition of zero second derivative. This causes numerical problems
stemming from the discontinuity of the gradient, notably extraneous
forces when atoms move slightly away from exact grid-point positions.

The problem has been fixed by specifying explicitly "yp1=0" in the
construction of the splines. It has also been necessary to augment the
rad_setup_d2 and radial_read_ascii functions with extra arguments, so
that tables in .ion or .ion.nc files can be processed adequately.

The changes affect the orbitals and the projectors (their tables
contain R(r)/r**l, so they have zero derivative at zero for all l),
the pseudocore charge, the local pseudopotential charge density, and
Vna.  Only the "reduced Vlocal" function (which is not really used by
Siesta) uses a natural spline, as it has a finite slope at r=0 (maybe
because this is not a "volume function" but a synthetic one).

A related problem is the extrapolation to r=0 of magnitudes computed
on the radial grid. Typically the construction procedure starts or
ends with the first non-zero value of the radius, and a final
extrapolation is done. This can be linear, quadratic, or "flat"
(involving just a copy of the value at the first nonzero
radius...). In particular, a "flat" extrapolation was used for the
pseudocore charge (which led again to extraneous contributions to
forces) and for the effective charge density associated to the local
pseudopotential (in this case there does not seem to be a sizable
contribution to the forces).  A quadratic extrapolation is now used
for those magnitudes.

The gradient was not computed properly in a "danger area" with an
approximate radius 2* r_c /500, where 500 is the number of points in
the interpolation table and r_c is the cutoff of the function
considered. Thus for a very localized pseudo-core charge (rc=1.5 bohr)
the effects might be felt when the atoms move by up to around 0.006
bohr from a grid point. 

The bug might have affected phonon calculations starting from
high-symmetry atomic positions, since a very small displacement might
then give meaningless results. Other effects might be extra noise in
molecular dynamics calculations when an atom falls by chance in the
"danger area", and puzzlingly high residual forces for particular
values of atomic coordinates, which might have complicated the analysis
of the eggbox effect.

Credits: D. Sanchez Portal found the spline issue. A. Garcia coded the
         fix, found the extrapolation bug, and analyzed the issues involved.

+: The "ioncat" program has been updated to process the pseudo-core charge
   and the local-pseudopotential charge density.
+: A new function rchlocal has been added to atmfuncs.f

modified:
  Src/atmfuncs.f
  Src/atom.f
  Src/basis_io.F
  Src/electrostatic.f
  Src/ioncat.f
  Src/radial.f
  Docs/siesta.tex

-----------------------------------------------------------------------
2009-03-19  10:00:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.12
Fix of non-collinear-spin patch

Due to an oversight, the patch leading to version 2.6.9 was missing
two essential fdf calls relating to spin polarization in module m_spin.
Requests for spin-polarized or non-collinear-spin calculations were
silently ignored. 

This has now been fixed and the documentation of the m_spin module
improved.

Thanks to Oswaldo Dieguez for reporting the bug.

modified:
  Src/m_spin.F90
  Docs/siesta.tex

-----------------------------------------------------------------------
2009-03-16  16:30:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.11
Re-design of DM re-use code plus reallocation bug fix

* A redesigned m_new_dm module prepares a starting density matrix for a
new geometry iteration. This DM can be:

1. Synthesized directly from atomic occupations (not idempotent)
2. Read from file
3. Extrapolated from (two) previous steps
3.a The DM of the previous iteration

In cases 2 and 3, a check is done to guarantee that the structure
of the read or extrapolated DM conforms to the current sparsity.
If it does not, the information is re-arranged.

Special cases:
       Harris: The matrix is always initialized
       Force calculation: The DM should be written to disk
                          at the time of the "no displacement"
                          calculation and read from file at
                          every subsequent step.
       Variable-cell calculation:
         If the auxiliary cell changes, the DM is forced to be
         initialized (conceivably one could rescue some important
         information from an old DM, but it is too much trouble 
         for now). NOTE that this is a change in policy with respect
         to previous versions of the program, in which a (blind?)
         re-use was allowed.


* The physical dimensions of the DM array were not allowed to shrink
upon reallocation, thus introducing mismatches between the actual size
and what several subroutines expected. This bug, which affected with
particular severity spin-polarized calculations, has now been fixed.

* New symbols for control of DM reuse and extrapolation

The FDF symbols:

DM.AllowReuse          (default .TRUE.)
DM.AllowExtrapolation  (default .TRUE.)

control whether the DM can be re-used from one geometry step to another, and
whether it can be extrapolated using information from the two previous steps.

If DM.AllowReuse is .false., the DM is not read from file even if DM.UseSaveDM is .true.

The default for ReinitialiseDM has been changed to ".true.". Hence the DM is
reset (and not read from file) when the auxiliary supercell shape changes, as sanity
dictates.

* Re-design of new_dm and extrapol

    * Use new functionality in module m_sparse to simplify the logic and
    hide the ---old index arrays.
    
    * Initdm is now part of the new_dm module.
    
    (* While debugging a hard-to-track zeroth allocation of DMsaved made a
    note in alloc.F90)

* Split of read/write functionality in iodm. Sparsity module. Input check

    * A new module m_iodm based in iodm has been added (the old code remains).
      Reading and writing are now done by separate routines, read_dm and write_dm,   
      respectively. 
    
    * New module m_sparse, containing code to check for sparsity changes and
      to re-structure a sparse matrix to conform to a new pattern (inspired by
      code in extrapol).
    
    * Initdm now calls read_dynamic_dm, which generates a completely fresh
      DM.  Then the input sparsity pattern is compared to the current one,
      and updated if needed. If the file cannot be used, perform a proper bailout
      (supersedes a previous patch by Emilio and Andrew on iodm.f)


removed:
  Src/extrapol.F
  Src/initdm.F
added:
  Src/compute_norm.F
  Src/m_iodm.F
  Src/m_sparse.F
modified:
  Docs/CHANGES
  Src/Makefile
  Src/alloc.F90
  Src/diagk.F
  Src/hsparse.f
  Src/iodm.F
  Src/mixer.F
  Src/new_dm.F
  Src/post_scf_work.F
  Src/siesta_init.F
  Src/siesta_options.F90
  Src/sparse_matrices.F90
  Src/state_init.F
  Src/version.F90
  version.info

------------------------------------------------------------------
2009-02-22  22:00:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.10
Fixed non-collinear spin calculation in parallel
  
  * The diagonalization with mixed spins requires doubling
  the effective blocksize for scalapack. This has been
  fixed.
    
  Credits: Volodymyr Maslyuk, Alberto Garcia
  
  Note that the option Diag.ParallelOverK cannot yet
  be used with non-collinear spin.
  
  Other fixes:
  
  * In non-collinear spin calculations there is no CML output.
  Thus the relevant CML module should not be opened.

  New test:  fe_noncol_kp  
  
added:
  Tests/fe_noncol_kp/
  Tests/fe_noncol_kp/fe_noncol_kp.fdf
  Tests/fe_noncol_kp/fe_noncol_kp.pseudos
  Tests/fe_noncol_kp/makefile
modified:
  Docs/siesta.tex
  Src/Makefile
  Src/cdiag.F
  Src/diag2g.F
  Src/diag2k.F
  Src/diagon.F
  Src/m_spin.F90
  Src/mulliken.F
  Tests/fe_clust_noncollinear/fe_clust_noncollinear.fdf

------------------------------------------------------------------
2009-02-06  14:30:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.9
Implementation of new filtering logic

See the manual for instructions on how to use the new
FDF symbols FilterCutoff and FilterTol.

* Note that there are no safeguards for failures of the filtering
routine. In particular, if FilterTol is set to a "large" value, some
orbitals will not be filtered correctly, and the tables will be
corrupted.

* The implementation of automatic meshcutoff is not ready yet.

* Updated the "filter" tests.

* In atom, moved the call to 'comcore' after orbital setup.  This is
needed to apply an orbital-determined cutoff to the partial-core
charge. The orbitals themselves are generated with the "raw" core
charge from the pseudopotential file, and then filtered. Then the PCC
is filtered.

* Apart from the fdf symbols discussed in the manual, the following
undocumented ones can be used for now: (see the code)

PCC.Filter
PAO.Filter
VNA.Filter

(booleans). Fine-tune which things are filtered.
(make sure other options and defaults are compatible)

XXX.FilterFactor: fine-tune the default factors used

XXX.FilterCutoff: fine-tune the cutoff

XXX.FilterTol: set the diagnostic Kin Energy tolerance
for an estimate of the hardness of the function. This
defaults to 0.003 Ry.

removed:
  Tests/Reference-xml/pb_filter_all.xml
  Tests/Reference-xml/pb_filter_basis.xml
  Tests/Reference-xml/pb_filter_pcc.xml
  Tests/Reference-xml/pb_filter_vna.xml
  Tests/Reference/pb_filter_all.out
  Tests/Reference/pb_filter_basis.out
  Tests/Reference/pb_filter_nopcc.out
  Tests/Reference/pb_filter_pcc.out
  Tests/Reference/pb_filter_vna.out
  Tests/Reference/var_cell_filter.out
  Tests/pb_filter_basis/
  Tests/pb_filter_basis/makefile
  Tests/pb_filter_basis/pb_filter_basis.fdf
  Tests/pb_filter_basis/pb_filter_basis.pseudos
  Tests/pb_filter_nopcc/
  Tests/pb_filter_nopcc/makefile
  Tests/pb_filter_nopcc/pb_filter_nopcc.fdf
  Tests/pb_filter_nopcc/pb_filter_nopcc.pseudos
  Tests/pb_filter_pcc/
  Tests/pb_filter_pcc/makefile
  Tests/pb_filter_pcc/pb_filter_pcc.fdf
  Tests/pb_filter_pcc/pb_filter_pcc.pseudos
  Tests/pb_filter_vna/
  Tests/pb_filter_vna/makefile
  Tests/pb_filter_vna/pb_filter_vna.fdf
  Tests/pb_filter_vna/pb_filter_vna.pseudos
  Tests/var_cell_filter/
  Tests/var_cell_filter/makefile
  Tests/var_cell_filter/var_cell_filter.fdf
  Tests/var_cell_filter/var_cell_filter.pseudos
  Tests/var_cell_stress/
  Tests/var_cell_stress/makefile
  Tests/var_cell_stress/var_cell_stress.fdf
  Tests/var_cell_stress/var_cell_stress.pseudos
added:
  Docs/filtering.CHANGES
  Tests/Reference-xml/pb_filter_cutoff.xml
  Tests/Reference-xml/pb_filter_tol.xml
  Tests/Reference/pb_filter_cutoff.out
  Tests/Reference/pb_filter_tol.out
  Tests/pb_filter_tol/
  Tests/pb_filter_tol/makefile
  Tests/pb_filter_tol/pb_filter_tol.fdf
  Tests/pb_filter_tol/pb_filter_tol.pseudos
renamed:
  Tests/pb_filter_all => Tests/pb_filter_cutoff
  Tests/pb_filter_all/pb_filter_all.fdf => Tests/pb_filter_cutoff/pb_filter_cutoff.fdf
  Tests/pb_filter_all/pb_filter_all.pseudos => Tests/pb_filter_cutoff/pb_filter_cutoff.pseudos
modified:
  Docs/CHANGES
  Docs/siesta.ind
  Docs/siesta.tex
  Src/atom.f
  Tests/pb_filter_cutoff/makefile
  Tests/std-Makefile
  version.info
  Tests/pb_filter_cutoff/pb_filter_cutoff.fdf

------------------------------------------------------------------
2008-12-06  17:50:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.8
Optimize and fix COOP/COHP/PDOS analysis program

The mprop program in Util/COOP has been revamped to decrease
drastically the amount of memory needed and to speed up execution.
Now it should be competitive with, and more flexible than, Siesta's
built-in PDOS computation.

In the process of optimization several bugs were found and fixed.
Users are advised to revise the results of old calculations,
particularly if k-points or multiple-zeta orbital were used.

(+ The OCCS file needs to be opened at the right place in diagk)


added:
  Tests/Reference-xml/si64_coop.xml
  Tests/Reference/si64_coop.out
modified:
  Src/diagk.F
  Tests/si64_coop/si64_coop.fdf
  Util/COOP/Makefile
  Util/COOP/Tests/n_chain/coo.N-N.gplot
  Util/COOP/io_hs.f90
  Util/COOP/main_vars.f90
  Util/COOP/mprop.f90
  Util/COOP/read_curves.f90
  Util/COOP/subs.f90

------------------------------------------------------------------
2008-11-28  16:15:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.7
Assorted bug fixes: iodm, pdos, fdf, cdf_fft

* Fix latest patch for iodm.F (formatting, messages)
* Fix long-standing bug in pdos XML output
* Cosmetic fix in experimental file Util/Grid/cdf_fft.f90
* Fix obscure bug in fdf

modified:
  Src/fdf/fdf.f
  Src/iodm.F
  Src/wxml/m_wxml_text.F90
  Util/Grid/cdf_fft.f90

   	------------------------------------------------------------
   	revno: 271
   	committer: Alberto Garcia <albertog@icmab.es>
   	branch nick: trunk-ag
   	timestamp: Mon 2008-10-27 22:42:54 +0100
   	message:
   	  Do not use volume factor in cdf_fft
   	  
   	  The factor only makes sense for charge-density files.
   	  
   	  modified:
   	    Util/Grid/cdf_fft.f90
   	------------------------------------------------------------
   	revno: 270
   	committer: Alberto Garcia <albertog@icmab.es>
   	branch nick: trunk-ag
   	timestamp: Mon 2008-10-27 22:37:48 +0100
   	message:
   	  Close the output channel in fdf_shutdown 
   	  
   	  If fdf is re-invoked, an error was triggered because
   	  fdf_shutdown did not close the previous run's output channel.
   	  Bug spotted by Eduardo Hernandez.
   	  
   	  modified:
   	    Src/fdf/fdf.f
   	------------------------------------------------------------
   	revno: 269
   	committer: Alberto Garcia <albertog@icmab.es>
   	branch nick: trunk-ag
   	timestamp: Mon 2008-10-27 22:35:55 +0100
   	message:
   	  Fix a long-standing bug in pdos xml output
   	  
   	  In Src/wxml/m_wxml_text.F90, the arguments to the sign function were
   	  reversed, causing badly formatted records in the pdos xml file.
   	  Thanks to Rogeli Grima for spotting the bug.
   	  
   	  modified:
   	    Src/wxml/m_wxml_text.F90


------------------------------------------------------------------
2008-11-28  14:25:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.6
Avoid MPI deadlock when DM file is not acceptable (A. Walker)

        Since r263.1.1 it was possible for the test 
    
         if ( maxnd .lt. ndmax ) then
           okdim = .false.
           ... skip DM reading ...
    
    
        to be true on some nodes and false on others 
        as ndmax was local to the node. This condition
        leads to some nodes to wait at globalize_max
        in m_pulay.F (near line 53) and the other to wait 
        at the MPI_Wait in iodm.F (near line 293). Avoid 
        this by detecting whether maxnd and ndmax are
        different between nodes. The test is done on all nodes and 
        all must be ok to use the .DM file.
    
        modified:
          Src/iodm.F
          version.info

------------------------------------------------------------------
2008-10-15  10:50:00 GMT Alberto Garcia <albertog@icmab.es>	 2.6.5
Assorted fixes (deprecated constructs, zmatrix, cg restarts) (A. Walker)

	-------------------------------------------------------------------------
	2008-10-13	Andrew Walker	2.6.4--awalker-trunk-fixes-5
	Remove use of features deleted in Fortran 95
	
	Specifically, one use of PAUSE and one GOTO an
	ENDDO statment. GOTO now jumps to the next line
	and the PAUSE is replaced to an (MPI safe) call
	to die().
	
	modified:
	  Docs/CHANGES.awalker-trunk-fixes
	  Src/atomlwf.F
	  Src/m_ts_aux_rout.F
	  version.info
	
	-------------------------------------------------------------------------
	2008-10-13	Andrew Walker	2.6.4--awalker-trunk-fixes-4
	Simple bugfix for fixed cell restarts.
	
	In the case of a tightend ftol after a sucessful CG run, relaxed
	is set to .true. by the read from iocg. This results in the test
	for convergence being skipped within conjgr. Setting relaxed to
	.false. here avoids this. In the case of a variable cell relaxed
	is set below anyway and the converence test is always performed.
	A better solution (moving the test out into a seperate routine)
	will follow in a later version. 
	
	modified:
	  Docs/CHANGES.awalker-trunk-fixes
	  Src/cgvc.F
	  version.info
	
	-------------------------------------------------------------------------
	2008-10-13	Andrew Walker	2.6.4--awalker-trunk-fixes-3
	NAG issues with transiesta
	
	Even with -dcfuns the NAG f95 compiler does not like the
	"non-standard double precision complex intrinsic function"
	dcexp. Use the generic exp instead.
	
	modified:
	  Docs/CHANGES.awalker-trunk-fixes
	  Src/m_ts_electrode.F90
	  Src/m_ts_in_siesta.F
	  Src/m_ts_scattering.F
	
	-------------------------------------------------------------------------
	2008-10-13	Andrew Walker	2.6.4--awalker-trunk-fixes-2
	Fix errors in some zmatrix tests
	
	According to the documentation and code in zmatrix.F the
	fdf flags to control zmatrix force tolerance and optimizer
	step size are ZM.ForceTolLength, ZM.ForceTolAngle,
	ZM.MaxDisplLength and ZM.MaxDisplAngle - in some tests
	they were shortened to ...Ang and ...Len. This patch
	corrects this. The values in the tests were set to the 
	defaults so test output is not changed.
	
	modified:
	  Docs/CHANGES.awalker-trunk-fixes
	  Tests/benzene/benzene.fdf
	  Tests/fire_benzene/fire_benzene.fdf
	  Tests/h2oZ/h2oZ.fdf
	  Tests/zmatrix/zmatrix.fdf
	
	-------------------------------------------------------------------------
	2008-10-13	Andrew Walker	2.6.4--awalker-trunk-fixes-1
	Make obj_setup.sh executable.
	
	This needs to be executed in order to do VPATH make.
	
	added:
	  Docs/CHANGES.awalker-trunk-fixes
	modified:
	  Src/obj_setup.sh*
	  version.info
	

------------------------------------------------------------------
2008-09-12  13:45:00 Alberto Garcia <albertog@icmab.es>	 2.6.4
Extended Ordejon-Mauri ordern functional to atoms with odd number of electrons

Patch by: Emilio Artacho <emilio@esc.cam.ac.uk>
timestamp: Sat 2008-08-30 18:38:45 +0100
  
In the initial assigning of LWF centers to atoms, it assigns n/2 to
atoms with n even, and (n+1)/2 or (n-1)/2 in an alternating sequence
to atoms with odd number. The sequence runs in the order of input in
the atomic coordinates block; the user can control the assignment by
defining the order there.
  
modified:
  Docs/siesta.tex
  Src/atomlwf.F

------------------------------------------------------------------
2008-09-12  13:25:00 Alberto Garcia <albertog@icmab.es>	 2.6.3
Siesta moves on with fresh DM instead of stopping when wrong DM file

Patch by: Emilio Artacho <emilio@esc.cam.ac.uk>
timestamp: Thu 2008-08-28 15:53:19 +0100
  
Simple patch removing chkdim calls in iodm.F and substituting them by
if statements. If the dimensions are wrong it sends back found=.false.
  
There is a 'goto' statement introduced to minimise impact on present
structure (pending the up-and-coming revision of DM handling)
  
modified:
  Src/iodm.F

------------------------------------------------------------------
2008-09-11  11:50:00 Alberto Garcia <albertog@icmab.es>	 2.6.2
Incorporate new filtering functionality

Pending the merge of the new atom-clean structure, the new filtering
functionality of Jose Soler and Eduardo Anglada has been incorporated
temporarily into this branch.

The filtering routines are in Src/m_filter.f90, a self-contained
module with no dependencies. A new subdirectory Src/filter with
the same code is meant to serve as a test framework for now.
Eventually it would be turned into a "library" subdirectory, 
and Src/m_filter.f90 removed.

The old filtering routines have been removed.
Minimal documentation has been added to Docs/siesta.tex.

removed:
  Src/filter.f90
  Src/filter_subs.f
added:
  Src/filter/
  Src/filter/README
  Src/filter/ba-6s-orb.dat
  Src/filter/core.dat
  Src/filter/f2kcli.F90
  Src/filter/m_filter.f90
  Src/filter/m_getopts.f90
  Src/filter/makefile
  Src/filter/test_filter.f90
  Src/filter/ti-3p-orb.dat
  Src/filter/ti-4p-orb.dat
  Src/m_filter.f90
modified:
  Docs/CHANGES
  Docs/siesta.ind
  Docs/siesta.tex
  Src/Makefile
  Src/atom.f
  Src/version.F90
  version.info


2008-09-11  11:10:00 GMT  Alberto Garcia <albertog@icmab.es>	2.6.1
Fix bug related to vna introduced at a previous patch

A patch introduced in 2.5.29 in meshsubs.F was wrong. Vna must
be kept in "gradients" calculations. Its intent has been set 
to "inout" and the extra initialization removed.

The bug was spotted by Rogeli Grima.

modified:
  Src/meshsubs.F
  Src/version.F90
  version.info

____________________________________________________________________
** CHANGES ALONG siesta@uam.es--2006/siesta-devel--reference--2.5
--------------------------------------------------------------------

2008-07-18  08:30:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-33

Summary: Fix in dhscf.F . Added OUT directories int Tests/transiesta 

(F.D. Novaes) 

* Corrected the position of MPI #endif in dhscf.

* Added output files of transiesta runs in OUT directories
and of tbtrans runs in OUT_TBT in the tests located in Tests/transiesta

2008-07-16  15:30:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-32

Summary: Added tests for Transiesta and /Util/TBTrans (F.D. Novaes)

Tests/transiesta contains some (not quite automatic)
tests for transiesta and tbtrans.

Util/TBTrans contains the source code for tbtrans.

README_TRANSIESTA in the top directory explains
the basic features and organization for transiesta.

2008-07-16  07:40:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-31

Summary: Added support for Lapack routine zgesv for transiesta

For systems without pre-compiled libraries, zgesv_lapack.f has
been added to Src/Libs. It is added by default to linalg.a

2008-07-15  08:40:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-30

Summary: Merge of Transiesta code -- F. D. Novaes version

Brief Description: 

The TranSIESTA code consists in a a set of additional routines for the
SIESTA package for the computation of electronic transport
properties. It was originally developed by Mads Brandbyge, Jose-Luiz
Mozos, Pablo Ordejon, Jeremy Taylor and Kurt Stokbro (Phys. Rev. B 65,
165401 (02)), and first implemented in the SIESTA 1.3p version.

The present distribution was adapted to the SIESTA 2.5 structure. With
respect to the first implementation, it has the additional feature of
allowing for the use of a k-point sampling other than the gamma point
(for the 2D Brillouin zone perpendicular to the transport
direction). These modifications were done by F. D. Novaes
(fdnovaes@icmab.es)

Source code Structure: 

In this implementation, the original TranSIESTA routines were grouped
in a set of modules, that all begin with m_ts (m_ts_electrode.F90,
e.g.), together with the addition of some new subroutines. These
modules are located in the Src directory.  The interface for
TranSIESTA also requires the modification of some of the SIESTA
routines. Presently, this is controlled by compilation directives
(#ifdef TRANSIESTA), so that only when compiling with the -DTRANSIESTA
FPPFLAGS option that the objects will contain the modifications.

Compiling:

Add -DTRANSIESTA to the FPPFLAGS variable in the arch.make file, and
type 

make transiesta

The Makefile was modified in such a way to link the m_ts modules and
create a binary called transiesta.


2008-07-08  13:45:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-29

Summary: Patches by A. Walker: undefined variables and pointers, intents

The original names of the patch files are retained for reference.

* NAG-01-null.patch -- makes various undefined pointers disassociated
(in fft3d.F, dfscf.f, pseudopotential.f, hsparse.f, optical.F,
writewave.F and zmatrix) and wraps a pointer declaration that is only
used under -DMPI with the ifdef in optical.F.

* NAG-02-intent.patch -- attempts to deal with a couple of issues with
the intent of variables. Intent(out) results in the variable being
undefined at the start of the called subroutine (and in the caller, if
it is not changed). In vmb.F there is a call to fixed with a couple of
variables being used in two places (on intent(in) and another
intent(out)) - I don't know what the strictly correct behavior is in
this case, but under NAG this results in the intent(in) variable being
undefined in fixed. I've worked around this with a pair temporary
variables. The alternative is to rework the interface to fixed using
intent(inout). The second issue is similar and in meshsubs.f: Vna
ended up undefined if gradient was true. I've dealt with this by
setting Vna to 0.0, but a reworking using intent(inout) may also be a
better solution.

* NAG-03-dhfcs.patch -- deals with a couple of pointers in
dhscf.F. These need to have the save attribute or they will be
undefined rather than disassociated on the second and subsequent
calls. I've also added a comma to a data block.

* NAG-04-filter.patch Changes the dimensions of f0 from nr to n so to
avoid a mismatch in array dimensions of x in the call to the
interpolation function at line 169. As far as I can tell this is the
correct fix: yold is known at the xold positions and ynew will be
calculated at the xnew positions, so ynew (which is f0) should be of
the same dimensions as xnew (which is x), and yold (f) should be of
the same dimensions as xold (r).

* NAG-05-init -- In dynamics.f initialize magv and magf in the uphill
case. In forhar.f initialize stressl array. In m_cell.f initialize
celli as it is used in the case of a zmatrix molecule without a cell
before the box size is calculated. In m_kinetic.F90 initialize
thermostat parameters.


2008-06-29  22:45:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-28

Summary: Minor cosmetic fixes to avoid compilation warnings

*   Fix cycle statement in m_denchar_work.f

*   Fix cycle statements in pdos routines -- warning in atomlwf.F

*   Some debugging support for KB generation

If Atom.Debug.KB.Generation is "true", 'AtomLabel-KBproj'.index
files are produced showing the non-interpolated projectors.

*   Fixes for NAG compiler contributed by Toby White:

chempot: intent of mu in numb routine.
writewave: remove references to paste routine
fft3d.F: explicit array-ness of trigs in calls to setup routines.

2008-06-29  22:40:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-27

Summary: Fixed bug affecting MP occupation smearing.

Fixed a bug (reported by Francois Willaime of CEA/Saclay)
which affected calculations in metals using the Hermite-Gauss
broadening scheme proposed by Methfessel and Paxton
(OccupationFunction MP).

The following test on state occupancy was performed:

if (qe.gt.occtol)

where qe is the state occupancy, and occtol, the tolerance (set to
10**-12 by default).  If one uses the Methfessel-Paxton smearing, qe
may take negative values and this test therefore yields wrong results.

The bug has be fixed by replacing the test by 

if (abs(qe).gt.occtol)

in all diag*.F routines.


2008-06-29  18:20:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-26

Summary: Remove residual (k,-k) pairs of k-points

The original algorithm sometimes left pairs of k-points related
by inversion. A new routine "trim_kpoint_list" in find_kgrid.F
now takes care of them.

A file NON_TRIMMED_KP_LIST is created with the "raw" list produced
by the first part of the process, for debugging purposes.

NOTE: Some pairs are *still* not removed properly. A fix is in the works.

Credits: Eduardo Machado (CEA) implemented a preliminary version
         modifying the original algorithm.

* Write KP file unconditionally (regardless of WriteKpoints setting)

2008-06-29  18:15:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-25

Summary: Assorted geometry-related cosmetic fixes

* Do not pretend to update zmatrix info during MD runs

The zmatrix form of structural information is only kept up
to date when performing geometry relaxations. In molecular
dynamics runs, only the cartesian coordinates are updated, and
the zmatrix variables are kept frozen at their initial values.

This is potentially confusing, so a warning is now issued and
the zmatrix "updates" are no longer printed.

* Fix shape script in Utils/MD

* Compute bond information for all server steps

  If the server option is used, the program will compute the bond-length
  information at every step. 

  The first file has now extension ".BONDS_INITIAL", and every successive 
  one, simply ".BONDS". The final one is still "SystemLabel.BONDS_FINAL".

* More flexibility and error detection in reading of atomic coordinates

(Patch by Andrew Walker)

In coor.F, new logic has been implemented to detect malformed input lines
in the AtomicCoordinatesAndAtomicSpecies block. As a by-product, comments
and blank lines can now be present in the block.


(Unrelated)

* Temporarily move xml-pseudopotential to xmlparser directory
  The file is not ready for production, but could interfere with the
  automatic dependency analysis.

2008-06-29  17:45:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-24

Summary: Generalized SCF convergence criteria. Optional enforcement

New criterion for SCF convergence based on the Harris energy. This
is useful if only energies are needed, as the Harris energy tends
to converge faster than the Kohn-Sham energy.

This new criterion joins the two already implemented:

- The standard criterion is based on the convergence of the density
matrix, with the relevant parameter being DM.Tolerance.

- Optionally, one can require that the total energy changes are
also below a prescribed tolerance:

DM.RequireEnergyConvergence T

In this case, DM.EnergyTolerance is the total-energy tolerance

The new criterion is requested by

DM.RequireHarrisConvergence  T

DM.HarrisTolerance is the harris-energy tolerance (default 1e-4 eV)

(Note that DM convergence is not needed in this case).

The user is responsible for using the correct energies in further
processing, e.g., the Harris energy if the Harris criterion is used.

To help in basis-optimization tasks, a new file BASIS_HARRIS_ENTHALPY
is provided, holding the same information as BASIS_ENTHALPY but using
the Harris energy instead of the Kohn-Sham energy. 


The energy criteria are implemented using "convergers", new objects
defined and implemented in m_convergence.f90. It is probably overkill
as of now, but it can be enhanced to provide new functionality.


*  Added Andrew Walker's patch for convergence enforcement

If the fdf symbol SCFMustConverge is set to 'true', the program will abort
if convergence is not achieved after the specified number of iterations
(set with MaxSCFIterations, or currently 50 by default).

* Added explicit support for flush and abort for gfortran in pxf.F

2008-06-29  17:30:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-23

Summary:  Patch by Andrew Walker for maximum wall-clock time

If MaximumWallClockTime is set (to a time specification of
the form 

     15 s
     7  mins
     2  hours
     3  days 
     ...      )

the program will abort if the specific wall-time is exceeded.
The checks are done with the granularity of the calls to 'timer' (i.e.,
there might be some slack). If the maximum time is 0 (the default), or is
negative, the time is unlimited.


* Added -DFC_HAVE_FLUSH -DFC_HAVE_ABORT to the gfortran*.make files

2008-06-29  16:30:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-22

Summary: Integration of new STM-images code. Better makefiles.

Util/STM/ol-stm contains the code by Pablo Ordejon and Nicolas Lorente
that implements the Tersoff-Hamann approximation to STM images, with a
previous step of extrapolation of wave functions from a reference
plane. It is thus more accurate than the simple code to be found now
in Util/STM/simple-stm.

Note that for now the fftw3 library needs to be available for this
code to work.

Bug fixes found upon integration:

- Bug fix in Util/STM/ol-stm/Src/extrapol.f: the interpretation of the
layout of the lattice vectors in the "cell" array was wrong.

- fftw3 "estimation" call moved outside a loop in extrapol.f (there is
more scope for optimization here).

* The makefiles for several utilities have been streamlined,
and the compilation of the ol-stm program uses a VPATH
functionality to avoid duplicating code in the top-level
Src directory. The old neighb/ranger routines are retained for now.

Some changes were needed to implement this correctly:

iodm.F: 

- Removed support for old-style control files.
- Wrapping of LocalToGlobalOrbital call in iodm.F in a MPI preprocessor block.

spher_harm.f: Used dot_product instead of ddot.

* Other changes:

Src/Sys/cscs-ibm-blanc.make: netcdf compilation.
Util/Grid/makefile: more targets, FC_SERIAL support.
Util/Macroave/Src/Makefile: FC_SERIAL support.

Fix for Finisterrae .make file and .sge script in Tests/Scripts.

2008-06-29  15:30:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-21

Summary: A faster diagk with eigenvector storage

The  new k-point-mode diagonalization routine diagk_file stores
the eigenvectors on file to avoid re-computation after fermi-level
determination. The file is in netCDF form, allowing a more
flexible dispatching of eigenvectors to and from the master node.
(At the time of building the new density matrix, the eigenvectors
are read by and transferred from the root node in blocks.)

This routine should be very useful for relatively large systems, but
the speedup is noticeable for all but the very small.

In order to use the new routine, netCDF support should be compiled in,
and the symbol UseNewDiagk must be set to "true" in the fdf
file. Specifying a number of eigenvectors to store is possible through
the symbol NumberOfEigenstates. Note that for now, for safety, all
eigenvectors for a given k-point and spin are computed by the
diagonalization routine, but only that number specified by the user
are stored. If they are insufficient, the program stops.  A rule of
thumb to select the number of eigenvectors to store is to count the
number of electrons and divide by two, and then apply a "safety
factor" of around 1.1-1.2 to take into account fractional occupations
and band overlaps.

A new file "OCCS" is produced with information about the number of
states occupied.

Note that this routine is NOT yet set up to be used for band-structure
computations, or to "write out" wavefunctions. It should only be used
in the SCF loop, i.e., from routine "diagon". 

The old diagk routine is kept, for use in smaller systems and to be
called from driver routines which provide other functionality.

The size of the transfer block is set to n_eigenvectors/Nodes (note
that the user is responsible for setting n_eigenvectors). The loops in
the density-matrix building section have been rearranged. Now each DM
scan loop (with potential inefficiencies for indirection) has more
work to do, and it is no longer cost-effective to fill the dense
matrices Dk and Ek first.

The size of the block could in principle be increased for free to
Min(no_l), and psi_block made into a pointer to Haux. Preliminary
tests seem to indicate a lower performance, however (?).

To Do:

Clarify the use of work arrays. Haux and Saux should probably be allocated
inside the diagonalization routines, and not in diagon.


* The timing sections have been split into "build HS", "eigenvalues/eigenvectors"
and "buildD" components.

2008-06-29  13:30:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-20

Summary: NetCDF I/O of Grid magnitudes. Density re-starts

New module iogrid_netcdf implements a general-purpose dumper
of grid magnitudes in netCDF format. If netCDF support is
enabled, files with extension .grid.nc are produced for
whatever grid magnitude is requested to be saved (charge density 
(Rho), deformation density (DeltaRho), potential, etc).

The use of grid descriptors for each node and the addressable netCDF
file format greatly simplify the communication needs for the
output of grid variables.

Module iogrid_netcdf implements a "grid descriptor calculator" for
the standard uniform distribution, but the routine which outputs
grid functions is in principle able to work with any distribution.

Util/Grid contains new utilities for conversion and analysis
of the .grid.nc files.

If the keywords SCF.Read.Charge.NetCDF or
SCF.Read.Deformation.Charge.NetCDF are true, the charge density
(respectively the deformation charge density) is read from file
Rho.IN.grid.nc (respectively DeltaRho.IN.grid.nc).

This feature allows the easier re-use of electronic-structure
information from a previous run. It is not necessary that the basis
sets are "similar" (a requirement if density-matrices are to be read
in). The deformation charge is particularly useful to give a good
starting point for slightly different geometries.

To Do:

- Improve the handling of possibly conflicting features, such as the
use of the Harris functional or the mixing of the DM after the first
iteration.

- Extend the flexibility of the reading options (to use them, for
example, in molecular dynamics or phonon calculations). Currently the
density is only read once, at the beginning of the run.

- Support reading of charge densities in FFT boxes of different sizes
  (via resampling). Auxiliary code for this is in Util/Grid/cdf_fft.f90.


-  References to the NetCDF directory under Src and to NETCDF_INTERFACE
   in the Makefile have been removed.


IMPLEMENTATION NOTES:

The grid magnitudes are stored in single precision in the .grid.nc files.


*  Added .make and script file for Finisterrae at CESGA


2008-06-29  13:00:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-19

Summary: Bug fix in grid2val. Added permute program to Macroave suite.

* Fix bug in grid2val (utility to compute values of grid functions
  at arbitrary points).

The cell vectors were declared as single precision, while in fact they
are stored as double precision by Siesta.

Added also tips on compilation.

* Added permute.F program to Macroave suite

Sometimes it is useful to have "x" as the direction perpendicular to 
the slab. Macroave is hard-wired to work with "z", so the program 
"permute.F" has been written to carry out a preliminary rotation of
the axes in the grid file. 

Streamlined the compilation steps in Util/Macroave/Src.

2008-06-29  12:50:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-18

Summary: NetCDF I/O for DM, H, and S

Experimental support for DM output in netCDF form, optionally with
complete history of a SCF cycle.

The netCDF format allows for flexible and portable I/O, and supports
the extension of arrays into a "time-record" dimension. 

A DM-only netCDF file (DM.nc) with the same information as the
traditional DM file is created if Write.DM.NetCDF is 'true' (default
with netCDF support). In this case, the DM values are written in
routine mixer (as is common practice in Siesta, despite the fact that
the resulting DM does not correspond to the last electronic structure
computed).

If WriteDMHS.NetCDF is true (default with netCDF support), a DMHS.nc
file containing the overlap matrix S, DM_in, H, and DM_out is written
to in compute_dm, right after the computation of DM_out.

The default in both cases is not to use the optional time dimension
and overwrite the previous SCF step's information.
To keep the whole history of (the last) SCF cycle, use
WriteDM.History.NetCDF  or WriteDMHS.History.NetCDF, respectively.
The DMHS history might be useful to diagnose SCF convergence issues.
(See new test Test/h2o_netcdf)

With the new DM to netCDF (dm2cdf) and netCDF to DM (cdf2dm) converters in
the Util/DensityMatrix directory, the information in the .nc files can be easily converted
to and from the legacy DM format, allowing the re-use of DM information
in computers with incompatible floating point formats.

Util/SCF/dm.py is a simple example of processing of netCDF with a Python script.

To use the netCDF functionality, Siesta must have been compiled with
the appropriate netCDF libraries.  Example .make files can be found in
the Src/Sys directory (notably gfortran-netcdf.make and
marenostrum-mpi-netcdf-XX.make files).

The .nc files can also be displayed with the shell utility "ncdump",
installed by default when the netCDF library is compiled.


IMPLEMENTATION NOTES:

- The DM, H, and S information is stored in the .nc files in *single precision*.
To change this in the future, an fdf symbol might be used to trigger the replacement
of "float" by "double" in the definition of the variables in the netCDF files. Care
should be taken to adapt all the other utilities. Single precision seems to be
perfectly adequate, however.

- No attempt has been made to optimize the memory use or allocation/deallocation
 overhead, giving priority to clarity. The netCDF format allows a huge simplification
of the MPI communications involved in the I/O, so this is a minor issue.

- The functionality is included in the iodm_netcdf.F90 and iodmhs_netcdf.F90 files.
  The new flags are stored and processed in the siesta_options.F90 module.

2008-05-06  12:30:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-17

Summary: Update of atom to 3.2.8: xml, optimization hooks, tutorial update.

* Integrated Javier Junquera's XML-generating routines
  Added pseudoXML.f and supporting files.
  (Note that the XML support in Siesta itself is not yet implemented, 
  pending retroffiting of the VCA and other enhancements. The relevant
  files have been put in a new directory 'Src/pseudo-xml'.

* Write pseudo wavefunctions in PSWFFMT

* Updated version.h to include the variable "atom_id", now used
  in various places to set the creator string.

* A simpler makefile has been written when XML support is not needed
so that no symbols from the main Siesta directory need to be
included. The full makefile is called makefile-xml. To use it it is
only necessary to have built libwxml.a in the Src hierarchy of Siesta
(after creating the necessary arch.make)

* ATOM now recognizes the FREE_FORMAT_RC_INPUT directive, useful
for optimization runs.

* A new estimation of ps hardness (qmax) is written to FOURIER_QMAX file.

* The fourier area calculation has been moved to the "down" section,
since the "up" potentials are not always generated.

* Avoid very small numbers that might need a three-character
exponent field in formatted output.

* The Tutorial has been brought up to date, using the version employed
in the latest Siesta schools. Note that the location of the
scripts used to run the examples has changed. They are now in the
Pseudo/atom/Tutorial/Utils directory.

* Extended the periodic-table structures in input.f and nucl_z.f


2008-05-06  10:30:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-16

Summary: Make the production of small ionic files optional -- fdf.log

* Files with prefix ORB, KB, CHCORE, SPLIT_SCAN, etc, and
pseudopotential dump files, which are useful for plotting basis
orbitals and other ion-related information, are now optional. To
create them, the user should set

 WriteIonPlotFiles T

in the fdf file.

Note that the same functionality is available in gen-basis.

The corresponding option variable "write_ion_plot_files" is now kept
in an "atom-specific" options module, to avoid a dependency cascade.

* Fixed the makefile sections for some auxiliary programs.

* The file "out.fdf" has been renamed to "fdf.log"

2008-04-08  16:30:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-15

Summary: Implemented a Grimme-type  molecular-mechanics potential for dispersion effects

A dispersion potential of the Grimme type (similar to the C6 type but
with a different damping function) has been implemented. See
S. Grimme, J. Comput. Chem. Vol 27, 1787-1799 (2006)).

The parameters are specified in the MM.Potentials block, using the
"Grimme" keyword.

Hooks for changing the "d" and "s6" parameters are provided
(MM.Grimme.D and MM.Grimme.S6).

A minor cosmetic addition: the kind of molecular mechanics potential
between species is now printed upon encoutering the relevant line in
the block.

2008-04-08  15:00:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-14

Summary: Changes for portability and cosmetics 

Portability:

  *  Use character(*) in MPI character modules.

       Previously character(1) was used, leading to complaints by some compilers.

Usability:

  *  Extra fdf symbol for struct_file input specification

       The manual mentions "Use.Struct.File" as the relevant alias, but
       the code used "MD.Use.Struct.File". Both are now accepted.

Makefile and makefile templates:

  *  Fix mixps section in Makefile
  *  Add .make file for snake at ICMAB
  *  Fix tabs in eth-hreidar-mpi.make

2008-03-08  23:56:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-13

Summary: Remove 'multiple images' warning in gamma-point-only calculations

The calculation of the xij array (vector distances to interacting
neighbors) was enabled in 2.5.1 also for the case of gamma-point-only
calculations. This is needed for the post-processing of COOP curves.
In a gamma-point-only calculation several atoms might still
see images of themselves as interacting if the cell is not that
big. The xijorb code warned about that, even though the calculation of
the matrix elements is of course correct, as k=0 and there are no
phase factors to worry about. The warning has been now turned off.

2008-03-08  23:55:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-12

Summary: Fix the constraint of static C.M. in initial velocities

Routine vmb sets the initial velocities according to an approximate
Maxwell-Boltzmann distribution, with the extra constraint of static
center of mass. Due to an oversight, the routine only enforced this
constraint for the case of a single species. It has been fixed.

2008-01-11  16:25:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-11

Summary: Proper fix of cell management for zmatrix case. Enthalpy cosmetics

A recent previous patch (8) broke the unit cell handling in the zmatrix case.
It has been fixed.

The assorted "enthalpy" output has been rationalized,
reserving the use of the word "enthalpy" for the original case
of "target enthalpy".

(Fixed syntax error in std-test.mk)

2008-01-11  14:05:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-10

Summary: Make diagonalization the default solution method regardless of size

Make diagonalization the default solution method regardless of system size.

2008-01-11  14:00:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-9

Summary: Fix test.mk scripts

The std-test.mk script did not copy the output file to the main test directory.
The bsc-test.mk did not remove all the scratch files.

Fixed a typo in the input to the si2x1h test.

2008-01-11  13:55:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-8

Summary: Fix for structural supercell construction

Due to the accidental mis-use of a module variable, the routine coor
did not generate the supercell correctly when a %supercell block was used.

Added and additional warning if such a block is used when the structure is
input in Zmatrix form.

2007-12-17  14:25:00 GMT  Alberto Garcia <albertog@icmab.es>	patch-7

Summary: Fix memory leak in dhscf

The array dvxcdn was allocated but never deallocated in dhscf. Actually,
it was never used in cellxc, so it has now been dimensioned trivially
to (1,1,1). The bug was introduced in the bsc-master-2.1 branch, at 
patch 27.

2007-11-22  18:45:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-6

Summary: New 'fdf' target in Makefile for tests

(E. Anglada)

New target for the test option: fdf calls. 
Requested by BSC so they can test the new fdf.

New files (new tests and missing xml output files for reference)
A/ Tests/var_cell_stress
A  Tests/Reference-xml/fire_benzene.xml
A  Tests/Reference-xml/si_coop.xml
A  Tests/var_cell_stress/.arch-ids/=id
A  Tests/var_cell_stress/.arch-ids/makefile.id
A  Tests/var_cell_stress/.arch-ids/var_cell_stress.fdf.id
A  Tests/var_cell_stress/.arch-ids/var_cell_stress.pseudos.id
A  Tests/var_cell_stress/makefile
A  Tests/var_cell_stress/var_cell_stress.fdf
A  Tests/var_cell_stress/var_cell_stress.pseudos


Modified files
M  Src/siesta_move.F : remove debug info
M  Src/remove_intramol_pressure.f90 : remove debug info
M  Tests/std-Makefile Xmlcheck enabled by default. New targets: fdf, all
M  Tests/std-test.mk 
M  Tests/si2x1h/si2x1h.fdf New option
M  Src/atom.f  Remove debug info.

2007-11-22  18:30:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-5

Summary: xml tester update (Eduardo Anglada)

New files:
A  Src/xmlparser/corresponding_node.f90
A  Src/xmlparser/string_utilities.f90

Changes in the xml output:
M  Src/state_analysis.F
M  Src/siesta_move.F
M  Src/setup_hamiltonian.F
M  Src/siesta_forces.F
M  Src/scfconvergence_test.F
M  Src/post_scf_work.F

Changes in the xml tester:
M  Src/wxml/m_wxml_core.f90
M  Src/wxml/flib_wstml.f90
M  Src/xmlparser/makefile               
M  Src/xmlparser/m_dom_element.f90
M  Src/xmlparser/m_strings.f90
M  Src/xmlparser/compare_m.f90
M  Src/xmlparser/test.f90

Changes in the tests makefiles
M  Tests/std-Makefile
M  Tests/std-test.mk

Upgraded xml reference outputs:
...

2007-11-22  17:55:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-4

Summary: Fixes for denchar compilation and wavefunction output

* The makefile section for denchar had several errors.

* siesta_analysis used maxwk as a local variable, instead of importing
  it from writewave, thus preventing the call to wwave from working.

* (NOTE: the need for a lattice constant or cell vectors in the fdf file
   if the wavefunctions need to be output should be removed)

2007-11-22  17:45:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-3

Summary: Fixed computation of chemical potential in O(N) (P.Ordejon)

* Chempot, rather than updated, has been substituted by the version
in the "cecam" branch of the 2.0 fixes branch. However, some constructions
have been updated to the post-BSC-cleaning structure:

- Use of the smarter mneighb routine.
- Some arrays are now pointers instead of allocatables.

* A new test (Tests/h2o_4) has been added.

* NOTE that the new code does not yet work in Parallel.

2007-11-22  17:40:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-2

Summary: Optimization enhancements (fire algorithm, step control).


* Step-size control has been add to the Broyden optimizers (Standard, ZM,
  and Cell-only). There is no theoretical justification for this procedure,
  so the Hessian is not likely to improve very much... it is probably best
  to combine a size-limited CG series with another small-Jinv Broyden series.

* New FORCE_STRESS for direct output of the energy, forces, and stress
  (in internal Siesta units).

* Re-implemented the FIRE optimization algorithm, both for geometry
  and (experimentally) for SCF.

  The advantages for the SCF mixing are:

  * Trivial algorithm (also in parallel)
  * Initial dt can be just set to alpha. 
  * Adaptive changes to alpha.
  * There should be no need for kicks.

  (Set DM.FIRE.Mixing to T to enable)
  Could also set DM.Fire.Nmin  to 2, 3, 4  instead of the default 5
  (Actually, this number could be akin to the DM.Number{Pulay,Broyden}...)

* Added .make files for opterons and matgas cluster at ICMAB in parallel.

* Compilation fixes(uncovered by a new version of g95)

  * External statements referring to obsolete names
  * Continuation lines.
  * Statement order.


2007-11-22  17:35:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-1

Summary: Merged COOP/COHP functionality

Merged the COOP/COHP/PDOS code from the 2.1 branch complex.

¡-- Functionality changes:

* The wavefunction file is now in WFSX format (well-packed, single-precision, and thus
significantly smaller). The Util/wfsx2wfs program can be used to re-generate the old format.

* The xijo array (for relative positions between interacting orbitals) is always produced.

-- New features:

Option COOP.Write triggers the creation of a wavefunction file (for the SCF-k-point set)
and an HSX file (enhanced HS format) that can later be processed by Util/COOP/mprop
for the off-line generation of COOP/COHP/(P)DOS.


____________________________________________________________________
** CHANGES ALONG siesta@uam.es--2006/siesta-devel--reference--2.3
--------------------------------------------------------------------

2007-11-22  17:30:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-2

Summary: Add a proper account of the BSC changes that went into the merge

In the Docs/CHANGES file, a new section detailing the changes made
along the BSC branches has been prepared, and the history of the
reference--2.1 branch after the branching has been reinstated.
The BSC section is in chronological order, to ease the understading.


2007-11-21 10:30:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-1

Summary: Direct merge into master branch of initial BSC changes

The changes along the BSC branches, up to the end of the restructuring
of siesta.F and associated changes, have been merged into a direct
descendant of the main development line. The BSC work originally
started as a branch of siesta-devel--reference--2.1--patch-29. Development
along 2.1 continued, and a new continuation branch 2.3 has been created
specifically for this merge.

A description of the changes along the BSC branches follows, in 
chronological order. To re-take the history of the 2.1 branch before
the merge, search for "2.1-before-BSC-merge" forward.

====================================================
*** BSC-Changes from January 2007 up to the merge into reference--2.3
    in November 2007 (initial restructuring).
====================================================

Revision: siesta-bsc--reference--2.1--patch-1
Archive: siesta@uam.es--2006
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Jan 25 14:17:04 CET 2007
Standard-date: 2007-01-25 13:17:04 GMT
New-files: Src/.arch-ids/compute_dm.F.id
    Src/.arch-ids/mixer.F.id
    Src/.arch-ids/post_scf_work.F.id
    Src/.arch-ids/scfconvergence_test.F.id
    Src/.arch-ids/setup_hamiltonian.F.id
    Src/.arch-ids/siesta_analysis.F.id
    Src/.arch-ids/siesta_end.F.id
    Src/.arch-ids/siesta_init.F.id
    Src/.arch-ids/siesta_move.F.id
    Src/.arch-ids/siesta_todo.F.id
    Src/.arch-ids/state_init.F.id
    Src/Sys/.arch-ids/marenostrum-mpi.make.id
    Src/Sys/marenostrum-mpi.make Src/compute_dm.F
    Src/mixer.F Src/post_scf_work.F
    Src/scfconvergence_test.F Src/setup_hamiltonian.F
    Src/siesta_analysis.F Src/siesta_end.F Src/siesta_init.F
    Src/siesta_move.F Src/siesta_todo.F Src/state_init.F
    Tests/.arch-ids/bsc-Makefile.id
    Tests/.arch-ids/bsc-test.mk.id
    Tests/.arch-ids/compara.id
    Tests/.arch-ids/compare.sh.id
    Tests/Reference/.arch-ids/force_constants.out.id
    Tests/Reference/force_constants.out Tests/bsc-Makefile
    Tests/bsc-test.mk Tests/compara Tests/compare.sh
    Tests/force_constants/.arch-ids/=id
    Tests/force_constants/.arch-ids/FC.fdf.id
    Tests/force_constants/.arch-ids/force_constants.fdf.id
    Tests/force_constants/.arch-ids/force_constants.pseudos.id
    Tests/force_constants/.arch-ids/makefile.id
    Tests/force_constants/FC.fdf
    Tests/force_constants/force_constants.fdf
    Tests/force_constants/force_constants.pseudos
    Tests/force_constants/makefile
New-directories: Tests/force_constants
    Tests/force_constants/.arch-ids
Modified-files: Src/Makefile Src/siesta.F Src/version.F90
    version.info
New-patches: siesta@uam.es--2006/siesta-bsc--reference--2.1--patch-1
Summary: First stage of siesta.F splitting at BSC
Keywords: 

The first coding session at BSC on January 19, 2007 resulted in a first
splitting of siesta.F into blocks.

A new module "siesta_todo.F" was created holding most of the variables
declared in siesta.F, as well as all the 'use' statements. External
subroutines are kept for now in siesta.F. "siesta_todo.F" also
contains the output routines which were formerly internal routines of
the main program.

Several new files were created:

siesta_init
 state_init
  setup_hamiltonian
  compute_dm
  mixer
  scfconvergence_test
  post_scf_work
 siesta_move
siesta_analysis
siesta_end

siesta.F is now much smaller, and has calls to those routines plus
the minimum logic to control the geometry and scf loops. No attempt
has been made to tidy up any of the blocks yet.

The scf loop has been re-structured to separate the "last" pass which
was performed after scf convergence. Some more work is needed to
clarify the behavior in borderline and non-standard cases.

The Makefile was updated.

Added new file Src/Sys/marenostrum-mpi.make.

Added new file Tests/compare.sh to automate comparisons with reference
output (works best if the reference output is from the same platform,
to avoid rounding differences).

Added new test Tests/force_constants to exercise the idyn=6 code.

Revision: siesta-bsc--reference--2.1--patch-2
Archive: siesta@uam.es--2006
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Jan 31 11:06:37 CET 2007
Standard-date: 2007-01-31 10:06:37 GMT
New-files: Src/.arch-ids/struct_init.F.id Src/struct_init.F
    Tests/Reference/.arch-ids/force_2.out.id
    Tests/Reference/force_2.out Tests/force_2/.arch-ids/=id
    Tests/force_2/.arch-ids/FC.fdf.id
    Tests/force_2/.arch-ids/force_2.fdf.id
    Tests/force_2/.arch-ids/force_2.pseudos.id
    Tests/force_2/.arch-ids/makefile.id
    Tests/force_2/FC.fdf Tests/force_2/force_2.fdf
    Tests/force_2/force_2.pseudos Tests/force_2/makefile
New-directories: Tests/force_2 Tests/force_2/.arch-ids
Modified-files: Src/Makefile Src/atomlist.f Src/initatom.f
    Src/redata.F Src/siesta_init.F Src/siesta_todo.F
New-patches: agarcia@siesta.arch--2006/siesta-bsc--agarcia--2.1--patch-1
    agarcia@siesta.arch--2006/siesta-bsc--agarcia--2.1--patch-2
    siesta@uam.es--2006/siesta-bsc--reference--2.1--patch-2
Summary: Created struct_init for initial geometry setup. New test force_2
Keywords: 

Struct_init has been detached from siesta_init to perform a self-contained
geometry setup.

Notes:

* Ns is now set in initatom, and it is "intent(in)" in redata.

* Those variables which have to do with structural input 
are read twice: once in struct_init, and then in redata, pending a
re-structuring of the latter. In some cases local variables are
used.

* iza is still set up in initatomlists. This means that some of the
structural output has to be kept in siesta_init for now. The fix is to
compute iza in coor or in read_struct.

* va and vcell are zeroed out if an XV file is not used. But the
zmatrix i/o routine is in principle able to read vcell (?).

* Put the calls to struct_init and initatomlists closer.
Do the array initialization inside of initatomlists.

New test "force_2" for force-constant calculation with a smaller
runtime than "force_constants"

(Note: the initial coordinate output and other details are now output
in a different order from that in the base version)

Revision: siesta-bsc--reference--2.1--patch-3
Archive: siesta@uam.es--2006
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Jan 31 11:11:28 CET 2007
Standard-date: 2007-01-31 10:11:28 GMT
New-files: Src/.arch-ids/write_md_record.F.id
    Src/write_md_record.F
Modified-files: Docs/CHANGES Src/Makefile Src/siesta.F
    Src/siesta_init.F Src/siesta_move.F Src/state_init.F
    version.info
New-patches: agarcia@siesta.arch--2006/siesta-bsc--agarcia--2.1--patch-3
    siesta@uam.es--2006/siesta-bsc--reference--2.1--patch-3
Summary: Consolidate geometry updates at the end of loop
Keywords: 

* Move comment about start of geometry loop to the right place in
 siesta.F 

* For idyn cases 6 (force constant), 7 (phonon interface), and 8
(server calculation), move the coordinate updates from the beginning
to the end of the geometry loop. The logic of geometry output to file XV
has been maintained. For cases 6 and 7, any output to a MD history file
is now done with the current (distorted) coordinates, instead of with
the restored (undisplaced) coordinates (bug of original version).

Note that the logic of XV output for the true MD cases has been maintained.
(next step's geometry, current step's velocities).

The MD output (together with any pixmol output) has been encapsulated
in a new file write_md_record.F

Revision: siesta-bsc--reference--2.1--patch-4
Archive: siesta@uam.es--2006
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Jan 31 11:15:47 CET 2007
Standard-date: 2007-01-31 10:15:47 GMT
Modified-files: Docs/CHANGES Src/m_check_supercell.f
    version.info
New-patches: agarcia@siesta.arch--2006/siesta-bsc--agarcia--2.1--patch-4
    siesta@uam.es--2006/siesta-bsc--reference--2.1--patch-4
Summary: Initialize vol2 correctly in m_check_supercell.f
Keywords: 

(This patch is needed so that tests run in a predictable manner:
the uninitialized vol2 had an influence on code path and led to
erratic differences in outputs).
The base version (in siesta-devel--bsc--base--2.1, a branch of
siesta-devel--reference--2.1--patch-29) has also been corrected.


Revision: siesta-bsc--reference--2.1--patch-5
Archive: siesta@uam.es--2006
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Jan 31 11:17:22 CET 2007
Standard-date: 2007-01-31 10:17:22 GMT
New-files: Src/.arch-ids/kpoint_grid.F90.id
    Src/.arch-ids/proximity_check.F.id Src/kpoint_grid.F90
    Src/proximity_check.F
Modified-files: Docs/CHANGES Src/Makefile Src/bands.F
    Src/kgridinit.F Src/siesta_analysis.F Src/siesta_init.F
    Src/siesta_todo.F Src/state_init.F version.info
New-patches: agarcia@siesta.arch--2006/siesta-bsc--agarcia--2.1--patch-5
    siesta@uam.es--2006/siesta-bsc--reference--2.1--patch-5
Summary: Kgrid setup streamlined. Bands. Proximity check. Hsparse allocation 
Keywords: 

* The kgrid handling is now done through a new module kpoint_grid, which exports
the new routine setup_Kpoint_grid, and holds kpoint and other arrays.

The kgrid is initialized for the first geometry in siesta_init, and then 
updated in the geometry loop (the conditions of the update are those of the
original reference version: varcel or server calculation)

Kgridinit (still outside the new module) has had its nkpnt argument
made "intent(out)".

* The setup of the band k-points has been moved to a new routine
'setup_bands' in module 'band' in file 'bands.F', which also holds
now nbk, maxbk, and bk. The setup routine is called right before the
band calculation *after* the geometry loop, instead of at the beginning
of the run (with the initial geometry).
The influence of nbk on 'gamma' has been removed, as it could conflict with
the self-consistent calculation.

(* The similar Writewave and KSV initializations have not been
refactored yet)

* The 'proximity check' code has been put into a new subroutine with
that name. Some of the local loop variables have been renamed.

* After the call to hsparse, the code for allocation of some arrays
has been simplified.

(This was the end of the second iteration of work at BSC by JMC, MQ, and AG
on 30 January).

Revision: siesta-bsc--reference--2.1--patch-6
Archive: siesta@uam.es--2006
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Feb  7 08:20:02 CET 2007
Standard-date: 2007-02-07 07:20:02 GMT
New-files: Src/.arch-ids/local_DOS.F.id
    Src/.arch-ids/new_dm.F.id
    Src/.arch-ids/normalize_dm.F.id
    Src/.arch-ids/projected_DOS.F.id Src/local_DOS.F
    Src/new_dm.F Src/normalize_dm.F Src/projected_DOS.F
Modified-files: Docs/CHANGES Src/Makefile Src/compute_dm.F
    Src/mixer.F Src/post_scf_work.F Src/setup_hamiltonian.F
    Src/siesta.F Src/siesta_analysis.F Src/siesta_end.F
    Src/siesta_init.F Src/siesta_move.F Src/state_init.F
    version.info
New-patches: mquero@siesta.arch--2006/siesta-bsc--mquero--2.1--patch-2
    siesta@uam.es--2006/siesta-bsc--reference--2.1--patch-6
Summary: Work by Manuel Quero before the meeting on Feb 7th
Keywords: 

New routines:

* new_dm          (code formerly in state_init)
* normalize_dm    (code formerly in setup_hamiltonian)
* local_DOS
* projected_DOS   (code formerly in siesta_analysis)

All the new routines split off from siesta.F have been placed in modules.

(kgrid and kgridinit are still not in the kgrid module, as they are used
in the KSV and optical sections -- more analysis is needed)

(Jose Soler's new version of the siesta_todo module is still not used)

(Code edited by Alberto Garcia from a package sent by Manuel Quero)


Revision: siesta-bsc--reference--2.1--patch-7
Archive: siesta@uam.es--2006
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Feb  7 08:28:59 CET 2007
Standard-date: 2007-02-07 07:28:59 GMT
New-files: Src/.arch-ids/born_charge.F.id Src/born_charge.F
    Tests/born/.arch-ids/=id Tests/born/.arch-ids/FC.fdf.id
    Tests/born/.arch-ids/born.fdf.id
    Tests/born/.arch-ids/born.pseudos.id
    Tests/born/.arch-ids/makefile.id Tests/born/FC.fdf
    Tests/born/born.fdf Tests/born/born.pseudos
    Tests/born/makefile
New-directories: Tests/born Tests/born/.arch-ids
Modified-files: Docs/CHANGES Src/Makefile Src/siesta_move.F
    Tests/Makefile Tests/compare.sh version.info
New-patches: agarcia@siesta.arch--2006/siesta-bsc--agarcia--2.1--patch-6
    agarcia@siesta.arch--2006/siesta-bsc--agarcia--2.1--patch-7
    agarcia@siesta.arch--2006/siesta-bsc--agarcia--2.1--patch-8
    siesta@uam.es--2006/siesta-bsc--reference--2.1--patch-7
Summary: Moved the Born-effective-charge code
Keywords: 

Created a new module in born_charge.F.

The code is now executed by a call to born_charge() right after the
end of the force calculation at the end of the geometry loop. There is
no need to save xalast for this, as the coordinates have not yet been
moved. (Note that KSV_pol is called with xa instead of xalast).

Created new test 'born' and updated compare.sh


Revision: siesta-bsc--master--2.1--patch-1
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Feb  8 10:52:48 CET 2007
Standard-date: 2007-02-08 09:52:48 GMT
New-files: Src/.arch-ids/m_siesta.jose.F.id
    Src/m_siesta.jose.F
Modified-files: Docs/CHANGES Src/local_DOS.F Src/m_cell.f
    Src/siesta.F Src/siesta_analysis.F Src/siesta_move.F
    Src/siesta_todo.F version.info
New-patches: ag@bsc--2007/siesta-bsc--ag--2.1--patch-2
    ref@bsc--2007/siesta-bsc--master--2.1--patch-1
Summary: Use of xalast in analysis routines. Exit of geometry loop
Keywords: 

The conditions for the setting and use of xalast have been clarified.

The analysis routines (KSVpol, optical, dhscf (in plotting mode),
local_DOS) now use the xalast array, which always refers to the atomic
positions for which the density matrix was computed at the last
geometry iteration performed (i.e., it is set before moving the atoms).

For consistency, new arrays ucell_last and scell_last are similarly handled.

Apart from those routines, the new setting conditions for xalast affect the
computation of the virial correction to the "molecular pressure".

In the geometry loop, the ending condition for istep has been
corrected: it is not increased if the structure is relaxed.

(Work done at BSC in the morning of Feb 7)


Revision: siesta-bsc--master--2.1--patch-2
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Feb  8 11:35:15 CET 2007
Standard-date: 2007-02-08 10:35:15 GMT
New-files: Src/.arch-ids/siesta_options.F.id
    Src/siesta_options.F
Removed-files: Src/.arch-ids/m_smearing.f.id
    Src/.arch-ids/redata.F.id Src/m_smearing.f Src/redata.F
Modified-files: Docs/CHANGES Src/Makefile Src/compute_dm.F
    Src/local_DOS.F Src/mixer.F Src/new_dm.F
    Src/post_scf_work.F Src/projected_DOS.F
    Src/proximity_check.F Src/scfconvergence_test.F
    Src/setup_hamiltonian.F Src/siesta.F
    Src/siesta_analysis.F Src/siesta_init.F
    Src/siesta_move.F Src/siesta_todo.F Src/state_init.F
    Src/struct_init.F Src/write_md_record.F version.info
New-patches: ag@bsc--2007/siesta-bsc--ag--2.1--patch-3
    ref@bsc--2007/siesta-bsc--master--2.1--patch-2
Summary: Creation of a module to hold the siesta options
Keywords: 

A new module 'siesta_options' has been created to hold the program
options (typically those variables that can be specified in the fdf file).
The catch-all module 'siesta_todo' has been slimmed down accordingly.

Routine redata has been put in the module, renamed as 'read_options'.

A few other option-setting statements in the old siesta.F have been put
into read_options. 

Some others remain scattered:

1. Those in the Broyden routines.
2. Those needed to process the initial geometry, read in struct_init.

(Work done at the BSC on Feb 7)


Revision: siesta-bsc--master--2.1--patch-3
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Feb  8 11:58:38 CET 2007
Standard-date: 2007-02-08 10:58:38 GMT
New-files: Src/.arch-ids/siesta_geom.F90.id
    Src/siesta_geom.F90
Modified-files: Docs/CHANGES Src/Makefile Src/atomlist.f
    Src/coor.F Src/diagsprl.F Src/iozm.F Src/local_DOS.F
    Src/m_cell.f Src/m_iostruct.f Src/outcoor.f Src/pdos.F
    Src/siesta_analysis.F Src/siesta_init.F
    Src/siesta_move.F Src/siesta_options.F Src/siesta_todo.F
    Src/struct_init.F Src/writewave.F Src/zmatrix.F
    version.info
New-patches: ag@bsc--2007/siesta-bsc--ag--2.1--patch-4
    ref@bsc--2007/siesta-bsc--master--2.1--patch-3
Summary: New geometry module
Keywords: 

A new module siesta_geom has been created to hold basic geometry
information.

Thus the atomic coordinates no longer live in 'atomlists', and the unit
cell no longer lives in 'm_cell'. Supercell variables have also be put
in the new module.

+ Some more slimming down of 'siesta_todo'.

Revision: siesta-bsc--master--2.1--patch-4
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Feb  8 12:15:51 CET 2007
Standard-date: 2007-02-08 11:15:51 GMT
New-files: Src/.arch-ids/sparse_matrices.F90.id
    Src/sparse_matrices.F90
Modified-files: Docs/CHANGES Src/Makefile Src/born_charge.F
    Src/compute_dm.F Src/local_DOS.F Src/mixer.F Src/new_dm.F
    Src/normalize_dm.F Src/post_scf_work.F
    Src/projected_DOS.F Src/setup_hamiltonian.F
    Src/siesta_analysis.F Src/siesta_init.F
    Src/siesta_move.F Src/siesta_todo.F Src/state_init.F
    version.info
New-patches: ag@bsc--2007/siesta-bsc--ag--2.1--patch-5
    ref@bsc--2007/siesta-bsc--master--2.1--patch-4
Summary: New stub module for sparse matrices
Keywords: 

A stub module to hold the sparse matrices ('sparse_matrices') has been
created.  It just holds the relevant variables, without any attempt to
create derived types yet.

(Work done at BSC in the afternoon of Feb 7)

Revision: siesta-bsc--master--2.1--patch-5
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Fri Feb  9 11:48:32 CET 2007
Standard-date: 2007-02-09 10:48:32 GMT
New-files: Tests/.arch-ids/bsc-compare.sh.id
    Tests/bsc-compare.sh
Renamed-files: Tests/.arch-ids/Makefile.id Tests/.arch-ids/std-Makefile.id
    Tests/.arch-ids/compare.sh.id Tests/.arch-ids/std-compare.sh.id
    Tests/.arch-ids/test.mk.id Tests/.arch-ids/std-test.mk.id
    Tests/Makefile Tests/std-Makefile
    Tests/compare.sh Tests/std-compare.sh
    Tests/test.mk Tests/std-test.mk
Modified-files: Tests/README Tests/bsc-Makefile
    Tests/bsc-test.mk Tests/std-compare.sh
New-patches: ref@bsc--2007/siesta-bsc--master--2.1--patch-5
Summary: More options for running tests
Keywords: 

Several versions of Makefile and test.mk are provided in Tests:

bsc-Makefile, bsc-test.mk  : For BSC work
std-Makefile, std-test.mk  : Standard, complete versions

The user should link the chosen versions to Makefile and test.mk


Revision: siesta-bsc--master--2.1--patch-6
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Fri Feb 16 03:07:23 CET 2007
Standard-date: 2007-02-16 02:07:23 GMT
New-files: Src/.arch-ids/find_kgrid.F.id
    Src/.arch-ids/setup_kscell.F.id Src/find_kgrid.F
    Src/setup_kscell.F
Removed-files: Src/.arch-ids/repol.F.id Src/repol.F
Renamed-files: Src/.arch-ids/ksvinit.f.id Src/.arch-ids/ksvinit.F.id
    Src/ksvinit.f Src/ksvinit.F
Modified-files: Src/Makefile Src/bands.F Src/born_charge.F
    Src/dhscf.F Src/diagg.F Src/diagk.F Src/fermid.F
    Src/kpoint_grid.F90 Src/ksv.f Src/ksvinit.F
    Src/siesta_analysis.F Src/siesta_init.F
    Src/siesta_todo.F Src/state_init.F Src/writewave.F
    Tests/born/born.fdf
New-patches: ag@bsc--2007/siesta-bsc--ag--2.1--patch-7
    ag@bsc--2007/siesta-bsc--ag--2.1--patch-8
    ag@bsc--2007/siesta-bsc--ag--2.1--patch-11
    ag@bsc--2007/siesta-bsc--ag--2.1--patch-12
    ag@bsc--2007/siesta-bsc--ag--2.1--patch-13
    ref@bsc--2007/siesta-bsc--master--2.1--patch-6
Summary: Encapsulation of k-point handling
Keywords: 

The different k-point grids now live in different modules,
and are set up (or their size estimated) early in siesta_init.

The scf kgrid has its own module, kpoint_grid, and a more
sophisticated (but equivalent) logic inside.  (Except for a cosmetic
change when the auxiliary k-point supercell is the trivial one but
with permuted rows).

The others, notably the polarization grid, are just
encapsulated, without much change.

Patches applied:

 * ag@bsc--2007/siesta-bsc--ag--2.1--patch-7
   New utilities for scf kgrid construction

 * ag@bsc--2007/siesta-bsc--ag--2.1--patch-8
   Fix use of uninitialized maxk

 * ag@bsc--2007/siesta-bsc--ag--2.1--patch-11
   Move band initialization back to siesta_init

 * ag@bsc--2007/siesta-bsc--ag--2.1--patch-12
   Encapsulate k-point processing for wavefunction printout

 * ag@bsc--2007/siesta-bsc--ag--2.1--patch-13
   Encapsulation of polarization k-point setup
Revision: siesta-bsc--master--2.1--patch-7
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Fri Feb 16 03:08:19 CET 2007
Standard-date: 2007-02-16 02:08:19 GMT
Modified-files: Src/atomlist.f Src/struct_init.F
New-patches: ag@bsc--2007/siesta-bsc--ag--2.1--patch-10
    ref@bsc--2007/siesta-bsc--master--2.1--patch-7
Summary: Initialize iza in struct_init
Keywords: 

The array iza might be needed by ioxv in struct_init, but it was initialized
only later in atomlist.


Revision: siesta-bsc--master--2.1--patch-8
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Fri Feb 16 03:10:07 CET 2007
Standard-date: 2007-02-16 02:10:07 GMT
Modified-files: Src/Makefile Src/born_charge.F
    Src/compute_dm.F Src/coor.F Src/hsparse.f Src/local_DOS.F
    Src/m_broyden_mixing.f Src/mixer.F Src/new_dm.F
    Src/normalize_dm.F Src/post_scf_work.F
    Src/projected_DOS.F Src/proximity_check.F
    Src/scfconvergence_test.F Src/setup_hamiltonian.F
    Src/siesta.F Src/siesta_analysis.F Src/siesta_end.F
    Src/siesta_geom.F90 Src/siesta_init.F Src/siesta_move.F
    Src/siesta_options.F Src/siesta_todo.F
    Src/sparse_matrices.F90 Src/state_init.F
    Src/struct_init.F Src/write_md_record.F Src/xcmod.F
New-patches: ag@bsc--2007/siesta-bsc--ag--2.1--patch-14
    mqag@bsc--2007/siesta-bsc--mqag--2.1--patch-3
    mqag@bsc--2007/siesta-bsc--mqag--2.1--patch-4
    ref@bsc--2007/siesta-bsc--master--2.1--patch-8
Summary: Siesta_todo slimming by M. Quero
Keywords: 

Module imports in siesta_todo have been almost eliminated.

Only the variables declared explicitly as local in the old siesta.F
remain in siesta_todo. (Work done by Manuel Quero after the third meeting)

(Note: the cosmetic changes in neighb.f, ranger.f, and struct_init.F90,
have not been applied)

A bug in born_charge.F has been fixed by AG.

Patches applied:

 * mqag@bsc--2007/siesta-bsc--mqag--2.1--patch-3
   Progressive emptying of siesta_todo

 * mqag@bsc--2007/siesta-bsc--mqag--2.1--patch-4
   Add siesta_geom imports to born_charge.F

Revision: siesta-bsc--master--2.1--patch-9
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Feb 15 22:39:24 CET 2007
Standard-date: 2007-02-15 21:39:24 GMT
Modified-files: Src/born_charge.F
New-patches: ref@bsc--2007/siesta-bsc--master--2.1--patch-9
Summary: Fix import of no_l in born_charge
Keywords: 

Revision: siesta-bsc--master--2.1--patch-10
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Feb 15 23:13:10 CET 2007
Standard-date: 2007-02-15 22:13:10 GMT
Renamed-files: Src/.arch-ids/siesta_options.F.id Src/.arch-ids/siesta_options.F90.id
    Src/.arch-ids/zheevds.f.id Src/.arch-ids/zheevds.F90.id
    Src/.arch-ids/zmatrix.F.id Src/.arch-ids/zmatrix.F90.id
    Src/siesta_options.F Src/siesta_options.F90
    Src/zheevds.f Src/zheevds.F90
    Src/zmatrix.F Src/zmatrix.F90
Modified-files: Src/siesta_options.F90 Src/zheevds.F90
    Src/zmatrix.F90
New-patches: ag@bsc--2007/siesta-bsc--ag--2.1--patch-16
    mqag@bsc--2007/siesta-bsc--mqag--2.1--patch-5
    ref@bsc--2007/siesta-bsc--master--2.1--patch-10
Summary: Some conversions to Fortran90 by M. Quero
Keywords: 

zmatrix.F90, zheevs.F90, siesta_options.F90


Revision: siesta-bsc--master--2.1--patch-11
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Sat Feb 17 20:34:42 CET 2007
Standard-date: 2007-02-17 19:34:42 GMT
New-files: Docs/.arch-ids/BSC-Issues.id Docs/BSC-Issues
    Src/.arch-ids/state_analysis.F.id
    Src/.arch-ids/stress.F90.id
    Src/.arch-ids/write_subs.F.id
    Src/Sys/.arch-ids/intel-checks.make.id
    Src/Sys/intel-checks.make Src/state_analysis.F
    Src/stress.F90 Src/write_subs.F
Removed-files: Tests/.arch-ids/compara.id Tests/compara
Modified-files: Docs/CHANGES Src/Makefile Src/alloc.F90
    Src/bsd.f Src/coor.F Src/fixed.F Src/kpoint_grid.F90
    Src/ksvinit.F Src/local_DOS.F Src/m_mpi_utils.F
    Src/parallel.f Src/post_scf_work.F Src/pulayx.F
    Src/scfconvergence_test.F Src/setup_hamiltonian.F
    Src/siesta.F Src/siesta_analysis.F Src/siesta_geom.F90
    Src/siesta_init.F Src/siesta_move.F Src/siesta_todo.F
    Src/sparse_matrices.F90 Src/state_init.F
    Src/struct_init.F Src/zheevds.F90 Tests/bsc-Makefile
    Tests/bsc-compare.sh Tests/bsc-test.mk
    Tests/h2oZ/h2oZ.fdf version.info
New-patches: mq@bsc--2007/mq--feb16--1.0--patch-1
    ref@bsc--2007/siesta-bsc--master--2.1--patch-11
Summary: Fourth session at the BSC
Keywords: 

* New routine state_analysis.F split from siesta_move.F

* Some variables taken out of siesta_todo and moved to
various places:

 - New module m_stress in stress.F90 holds stress et al
  (Some variables could actually be turned into locals
   in several routines, except perhaps 'stress'.)
 - mscell et al moved to siesta_geom
 - nh and nhmax moved to sparse_matrices

* write_subs now holds the siesta_write_XX routines
  formerly in siesta_todo

* Some allocatables changed to pointers in fixed.F and pulayx.F
  (First step: just use re_alloc instead of allocate/memory
   In a second step work arrays will live outside)

* Cosmetic changes in m_mpi_utils.F90 (in the context of the
analysis of the MPI interface)

* Changes in coor.F:
  - mscell, nsc changed to coor_mscell and coord_nsc
  - routine superx_coor taken out of the coor scope, to
    avoid clashes with the imported variables in coor.
    (this supercell does not have anything to do with the
     auxiliary supercell for matrix elements)

AG upon merging:

* Fix typo in zmatrix declarations
* Declare etime in bsd.f
* New trick in Makefile to remove the dependency
  of siesta_cmlsubs.o on version.o after doing "make dep".
* Put an explicit unit cell in h2oZ.fdf to avoid a bug.
Revision: siesta-bsc--master--2.1--patch-12
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Mon Feb 19 00:08:23 CET 2007
Standard-date: 2007-02-18 23:08:23 GMT
New-files: Src/.arch-ids/overlap.f.id Src/overlap.f
Modified-files: Src/Makefile Src/local_DOS.F
    Src/post_scf_work.F Src/setup_hamiltonian.F Src/siesta.F
    Src/siesta_analysis.F Src/siesta_init.F
    Src/siesta_todo.F Src/state_analysis.F Src/state_init.F
    Src/stress.F90 Src/write_subs.F
New-patches: ag@bsc--2007/vars-mem--ag--0.1--base-0
    ag@bsc--2007/vars-mem--ag--0.1--patch-1
    ag@bsc--2007/vars-mem--ag--0.1--patch-2
    ref@bsc--2007/siesta-bsc--master--2.1--patch-12
Summary: Clarification of the scope of the stress variables
Keywords: 

A number of changes to rationalize the use of 'stress':

* New routine 'overlap': a simplified version of overfsm adequate
for calling from state_init, where only the overlap matrix is needed,
and the stress was zero.

* Routine setup_hamiltonian now globalizes the stress, and calls
the 'twobody' routine. Variable 'stressl' made into a local.

* local_DOS, and the writing of charge and potentials, do no need
to use the 'stress' variable at all.

Revision: siesta-bsc--master--2.1--patch-13
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Mon Feb 19 00:09:35 CET 2007
Standard-date: 2007-02-18 23:09:35 GMT
Modified-files: Src/Makefile Src/siesta.F
    Src/siesta_analysis.F
New-patches: ag@bsc--2007/vars-mem--ag--0.1--patch-3
    ref@bsc--2007/siesta-bsc--master--2.1--patch-13
Summary: Creation of siesta_forces
Keywords: 

Finally, siesta_forces has been created, clarifying in the process the
parameters of siesta_write_energies.

Revision: siesta-bsc--master--2.1--patch-14
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Mon Feb 19 00:13:17 CET 2007
Standard-date: 2007-02-18 23:13:17 GMT
New-files: Src/.arch-ids/siesta_forces.F.id
    Src/siesta_forces.F
Modified-files: Src/Makefile Src/born_charge.F
    Src/siesta_analysis.F Src/siesta_init.F
    Src/siesta_todo.F Src/state_init.F
New-patches: ag@bsc--2007/vars-mem--ag--0.1--patch-4
    ag@bsc--2007/vars-mem--ag--0.1--patch-5
    ref@bsc--2007/siesta-bsc--master--2.1--patch-14
Summary: Replacement of some allocatables by pointers and automatics
Keywords: 

eo, qo        : pointers
fa, cfa, fal  : pointers

polxyz, polR  : automatic arrays, as they are small

(+ really add siesta_forces.F from previous patch)
Revision: siesta-bsc--master--2.1--patch-15
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Sat Feb 24 15:04:53 CET 2007
Standard-date: 2007-02-24 14:04:53 GMT
New-files: Src/.arch-ids/m_energies.F90.id
    Src/.arch-ids/m_steps.F90.id Src/m_energies.F90
    Src/m_steps.F90
Removed-files: Src/.arch-ids/m_siesta.jose.F.id
    Src/m_siesta.jose.F
Modified-files: Src/Makefile Src/compute_dm.F
    Src/kpoint_grid.F90 Src/local_DOS.F Src/mixer.F
    Src/new_dm.F Src/post_scf_work.F
    Src/scfconvergence_test.F Src/setup_hamiltonian.F
    Src/siesta.F Src/siesta_analysis.F Src/siesta_forces.F
    Src/siesta_init.F Src/siesta_move.F Src/siesta_todo.F
    Src/state_analysis.F Src/state_init.F
    Src/write_md_record.F Src/write_subs.F
New-patches: ag@bsc--2007/ag--vars--1.0--base-0
    ag@bsc--2007/ag--vars--1.0--patch-1
    ag@bsc--2007/ag--vars--1.0--patch-2
    ag@bsc--2007/ag--vars--1.0--patch-3
    ag@bsc--2007/ag--vars--1.0--patch-4
    ref@bsc--2007/siesta-bsc--master--2.1--patch-15
Summary: New m_energies and m_steps modules. Back to old k-point behavior
Keywords: 

More steps in the slimming of siesta_todo:

* Module m_energies contains the energy components
* Module m_steps contains inicoor, fincoor, istp, final
* Variable dDmax has been turned into an argument of
  mixer and scfconvergence_test

*The old code had a bug in the update of k-points with cell changes:
the kscell matrix was kept constant, instead of re-calculating it.
This was fixed in the re-structured version, but of course the fix
leads to differences in the outputs of some tests, notably var_cell.

The bug has been re-activated in kpoint_grid.F90 by commenting out
the update of kscell.

The resetting of kscell to the unit matrix in case of gamma
calculations has been deferred for the same reason.




Revision: siesta-bsc--master--2.1--patch-16
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Sun Feb 25 21:04:19 CET 2007
Standard-date: 2007-02-25 20:04:19 GMT
New-files: Src/.arch-ids/m_auxpul.F90.id
    Src/.arch-ids/m_dipol.F90.id Src/.arch-ids/m_eo.F90.id
    Src/.arch-ids/m_forces.F90.id
    Src/.arch-ids/m_kinetic.F90.id
    Src/.arch-ids/m_ntm.F90.id
    Src/.arch-ids/m_numbs_neighb.F90.id
    Src/.arch-ids/m_rmaxh.F90.id
    Src/.arch-ids/m_spin.F90.id Src/m_auxpul.F90
    Src/m_dipol.F90 Src/m_eo.F90 Src/m_forces.F90
    Src/m_kinetic.F90 Src/m_ntm.F90 Src/m_numbs_neighb.F90
    Src/m_rmaxh.F90 Src/m_spin.F90
Removed-files: Src/.arch-ids/spin_init.f.id Src/spin_init.f
Renamed-files: Src/.arch-ids/stress.F90.id Src/.arch-ids/m_stress.F90.id
    Src/stress.F90 Src/m_stress.F90
Modified-files: Docs/CHANGES Src/.arch-ids/m_stress.F90.id
    Src/.arch-ids/state_analysis.F.id
    Src/.arch-ids/write_subs.F.id Src/Makefile
    Src/atomlist.f Src/born_charge.F Src/broyden_optim.F
    Src/cgvc.F Src/cgvc_zmatrix.F Src/compute_dm.F
    Src/dhscf.F Src/diagkp.F Src/dynamics.f Src/fixed.F
    Src/kpoint_grid.F90 Src/ksv.f Src/local_DOS.F
    Src/m_denchar_geom.f Src/m_energies.F90 Src/m_steps.F90
    Src/m_stress.F90 Src/mixer.F Src/molecularmechanics.F90
    Src/new_dm.F Src/normalize_dm.F Src/phonon.F
    Src/post_scf_work.F Src/projected_DOS.F
    Src/proximity_check.F Src/setup_hamiltonian.F
    Src/siesta.F Src/siesta_analysis.F Src/siesta_geom.F90
    Src/siesta_init.F Src/siesta_move.F
    Src/siesta_options.F90 Src/siesta_todo.F
    Src/sparse_matrices.F90 Src/state_analysis.F
    Src/state_init.F Src/struct_init.F Src/write_md_record.F
    Src/write_subs.F version.info
New-patches: ag@bsc--2007/ag--vars--1.0--patch-5
    ag@bsc--2007/ag--vars--1.0--patch-6
    ag@bsc--2007/ag--vars--1.0--patch-7
    ag@bsc--2007/ag--vars--1.0--patch-8
    mq@bsc--2007/mq--feb21--1.0--base-0
    mq@bsc--2007/mq--feb21--1.0--patch-1
    mq@bsc--2007/mq--feb21--1.0--patch-2
    ref@bsc--2007/siesta-bsc--master--2.1--patch-16
Summary: Merge of removal of integer and real variables from siesta_todo
Keywords: 

Inital work done at BSC by M. Quero from Feb 19 to 23, 2007. A. Garcia
then consolidated some of the modules and removed others, turning some
variables into locals or arguments (See ag@bsc--2007/ag--vars--1.0)

Some fine tuning still needs to be done, and note that the
'high-level' handling of major variables, for example as

	call siesta_forces(geom,force_stress)

has not started yet.

New modules:

m_auxpul.F90        : Pulay variables. Will go into a "pulay" module.
m_dipol.F90         : Dipole
m_spin.F90          : nspin, qs, efs, plus routine init_spin (replaces
                      spin_init). Readsp not included, as it needs work.
m_eo.F90            : eo, qo arrays
m_forces.F90        : fa, cfa, and ntcon. At the same level as stress.F90,
                      which has been renamed to m_stress.F90
m_kinetic.F90       : Kinetic energies of Parrinello/Rahman variables
m_ntm.F90           : Mesh multipliers. Should probably go in meshsubs.
m_numbs_neighb.F90  : Variables related to the neighbor calculations.
m_rmaxh.F90         : Hamiltonian maximum range. Should be clarified.

* Module atomlist now includes no_l
* Module siesta_geom now includes va (atomic velocities), plus
  a new variable volume_of_some_cell to pass volume information (to
  mimic a very likely bug in the old code)
* Array xijo is now in sparse_matrices



Revision: siesta-bsc--master--2.1--patch-17
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Mon Feb 26 09:21:36 CET 2007
Standard-date: 2007-02-26 08:21:36 GMT
New-files: Src/.arch-ids/show_distribution.f.id
    Src/show_distribution.f Tests/born_spin/.arch-ids/=id
    Tests/born_spin/.arch-ids/FC.fdf.id
    Tests/born_spin/.arch-ids/born_spin.fdf.id
    Tests/born_spin/.arch-ids/born_spin.pseudos.id
    Tests/born_spin/.arch-ids/makefile.id
    Tests/born_spin/FC.fdf Tests/born_spin/born_spin.fdf
    Tests/born_spin/born_spin.pseudos
    Tests/born_spin/makefile
New-directories: Tests/born_spin Tests/born_spin/.arch-ids
Modified-files: Docs/CHANGES Src/Makefile
    Src/broadcast_basis.F Src/iohs.F Src/ksv.f Src/optical.F
    Src/savepsi.F Src/siesta_init.F Src/writewave.F
    Tests/std-Makefile version.info
New-patches: ag@bsc--2007/ag--bugs--1.0--base-0
    ag@bsc--2007/ag--bugs--1.0--patch-1
    ref@bsc--2007/siesta-bsc--master--2.1--patch-17
    siesta@uam.es--2006/siesta-devel--reference--2.1--patch-31
    siesta@uam.es--2006/siesta-devel--reference--2.1--patch-42
    siesta@uam.es--2006/siesta-devel--reference--2.1--patch-43
    siesta@uam.es--2006/siesta-devel--reference--2.1--patch-45
    siesta@uam.es--2006/siesta-devel--reference--2.1--patch-46
Summary: Fixes for troublesome bugs in reference code
Keywords:  

Retrofitted from -devel--reference.

Patches applied:

 * siesta@uam.es--2006/siesta-devel--reference--2.1--patch-31
   Parallel bug fix and cleanup in writewave.F

 * siesta@uam.es--2006/siesta-devel--reference--2.1--patch-42
   zval wrongly treated as MPI_integer in broadcast_basis

 * siesta@uam.es--2006/siesta-devel--reference--2.1--patch-43
   Wrap io_close for MPI in iohs.F

 * siesta@uam.es--2006/siesta-devel--reference--2.1--patch-45
   Clean up handling of ntote in ksv and optical

 * siesta@uam.es--2006/siesta-devel--reference--2.1--patch-46
   Fix allocation of temporary array in savepsi in parallel


Revision: siesta-bsc--master--2.1--patch-18
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Feb 28 12:30:16 CET 2007
Standard-date: 2007-02-28 11:30:16 GMT
New-files: Src/.arch-ids/m_gamma.F90.id Src/m_gamma.F90
Removed-files: Src/.arch-ids/siesta_todo.F.id
    Src/siesta_todo.F
Modified-files: Docs/CHANGES Src/Makefile Src/born_charge.F
    Src/compute_dm.F Src/hsparse.f Src/local_DOS.F
    Src/matel.f Src/mixer.F Src/new_dm.F Src/normalize_dm.F
    Src/post_scf_work.F Src/projected_DOS.F
    Src/proximity_check.F Src/reinit.F
    Src/scfconvergence_test.F Src/setup_hamiltonian.F
    Src/siesta.F Src/siesta_analysis.F Src/siesta_end.F
    Src/siesta_forces.F Src/siesta_geom.F90
    Src/siesta_init.F Src/siesta_move.F
    Src/siesta_options.F90 Src/state_analysis.F
    Src/state_init.F Src/struct_init.F Src/sys.F
    Src/write_md_record.F Src/write_subs.F version.info
New-patches: ag@bsc--2007/ag--vars--1.0--patch-9
    mq@bsc--2007/mq--feb26--1.0--patch-1
    mq@bsc--2007/mq--feb26--1.0--patch-2
    ref@bsc--2007/siesta-bsc--master--2.1--patch-18
Summary: Final cleanup of siesta_todo
Keywords: 

(During and after meeting at BSC on Feb 26, 2007)

* New module m_gamma.
* 'shape' put in siesta_geom.
* 'sname' put in siesta_options.
* Signaling role of 'foundxv' taken over by 'xv_file_read' in ioxv.F

* All the other variables have been made local to the appropriate routines.

+ Cosmetic changes in state_init and hsparse: conversion of implicit
  loops with goto to explicit 'do while' loops.

+ Conversion of scfconvergence_test and proximity_check into modules.


Revision: siesta-bsc--master--2.1--patch-19
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Mar  1 13:00:45 CET 2007
Standard-date: 2007-03-01 12:00:45 GMT
Modified-files: Docs/CHANGES Src/alloc.F90 version.info
New-patches: ag@bsc--2007/ag--vars--1.0--patch-10
    ref@bsc--2007/siesta-bsc--master--2.1--patch-19
Summary: Add character(len=*) routines to alloc.F90
Keywords: 

New module procedures realloc_s1 and dealloc_s1

Revision: siesta-bsc--master--2.1--patch-20
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Mar 15 17:08:31 CET 2007
Standard-date: 2007-03-15 16:08:31 GMT
Modified-files: Docs/CHANGES Src/fixed.F Src/setspatial.f
    Tests/bsc-Makefile Tests/std-Makefile version.info
New-patches: ag@bsc--2007/ag--vars--1.0--patch-12
    ag@bsc--2007/ag--vars--1.0--patch-13
    ref@bsc--2007/siesta-bsc--master--2.1--patch-20
Summary: Pointers in fixed and setspatial. si2x1h test added to bsc-Makefile
Keywords: 

Revision: siesta-bsc--master--2.1--patch-21
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Mar 15 17:10:48 CET 2007
Standard-date: 2007-03-15 16:10:48 GMT
Removed-files: Src/.arch-ids/m_auxpul.F90.id
    Src/m_auxpul.F90
Renamed-files: Src/.arch-ids/pulayx.F.id Src/.arch-ids/m_pulay.F.id
    Src/pulayx.F Src/m_pulay.F
Modified-files: Docs/CHANGES Src/Makefile Src/m_pulay.F
    Src/mixer.F Src/state_init.F version.info
New-patches: ag@bsc--2007/ag--vars--1.0--patch-14
    ref@bsc--2007/siesta-bsc--master--2.1--patch-21
Summary: Re-organization of pulay module
Keywords: 

Pulayx is now part of a module "m_pulay", which contains the
nauxpul and auxpul variables. Module m_auxpul has been removed.

The calling sequence for pulayx has been simplified, as some of
the arguments are now module variables. Argument maxo was innecesary.
Internal work arrays are now pointers.

The changes affect mixer and state_init (which calls a new routine
init_pulay_arrays)


Revision: siesta-bsc--master--2.1--patch-22
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Mar 15 17:19:58 CET 2007
Standard-date: 2007-03-15 16:19:58 GMT
New-files: Src/.arch-ids/m_neighbors.f90.id
    Src/m_neighbors.f90
Removed-files: Src/.arch-ids/m_numbs_neighb.F90.id
    Src/.arch-ids/xijorb.f.id Src/m_numbs_neighb.F90
    Src/xijorb.f
Modified-files: Docs/CHANGES Src/Makefile Src/alloc.F90
    Src/born_charge.F Src/hsparse.f Src/overlap.f
    Src/post_scf_work.F Src/proximity_check.F
    Src/setup_hamiltonian.F Src/siesta_analysis.F
    Src/state_init.F version.info
New-patches: ag@bsc--2007/ag--vars--1.0--patch-15
    ag@bsc--2007/ag--vars--1.0--patch-16
    ag@bsc--2007/ag--vars--1.0--patch-17
    ag@bsc--2007/ag--vars--1.0--patch-18
    ag@bsc--2007/ag--vars--1.0--patch-19
    ref@bsc--2007/siesta-bsc--master--2.1--patch-22
Summary: Reorganization of hsparse/xijorb calls with new neighbor module
Keywords: 

* Deactivated 's' routines in alloc.F90, as they are seen as extremely
dangerous.

* New module m_neighbors houses maxna, jna, r2ij, and xij, and the new
routine init_neighbor_arrays, which simplifies the logic of the block
formerly in state_init.  The initialization routine is invoked with a
larger rmax, appropriate for the workings of hsparse, so that there is
no need to check again for the appropriate sizes. Actually, this rmax
is the largest ever needed by the calculation of neighbors, so maxna
is set once and for all.

* Old module m_numb_neighbs has been removed.

This new module (which supersedes m_numb_neighb) could be used
by other second-level routines (nlefsm, phirphi, etc).

* Hsparse is now called just once from state_init. It allocates listh
(and xijo, if applicable), and returns the size "nh" of the sparse
matrices.

* maxnh is always set to nh (and not to some larger value if nh > (the
old maxnh)).

* The sparse arrays are always re_alloc'ated, as these calls are very
cheap if they have the right size.

* The code for xijorb and hsparse is almost identical.  It has been
merged, adding two new arguments to hsparse: gamma and xijo, so that
hsparse fills xijo also if gamma is false. Multiple-image detection is
still active.

* Routine xijorb has been deleted.

* Allocatables have been turned into pointers inside hsparse.

Revision: siesta-bsc--master--2.1--patch-23
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu Mar 15 17:22:35 CET 2007
Standard-date: 2007-03-15 16:22:35 GMT
New-files: Src/.arch-ids/obj_setup.sh.id Src/obj_setup.sh
Modified-files: Docs/CHANGES Src/MPI/Makefile
    Src/MPI/generate.sh Src/Makefile Src/fdf/makefile
    version.info
New-patches: ag@bsc--2007/ag--vars--1.0--patch-20
    agarcia@siesta.arch--2006/vpath--agarcia--0.1--patch-1
    agarcia@siesta.arch--2006/vpath--agarcia--0.1--patch-2
    agarcia@siesta.arch--2006/vpath--agarcia--0.1--patch-3
    ref@bsc--2007/siesta-bsc--master--2.1--patch-23
Summary: VPATH-aware compilation for multiple executable versions
Keywords: 

Added Src/obj_setup.sh script, to be called from any directory on
which the build is going to take place, and modified slightly some
makefiles to make them VPATH-proof.  The Tests directory is replicated
in the "build" directory (and a fake symbolic link called "Src" added
so that all the test-running scripts work without change).

(The pristine Src should be "clean", without any object files)

Example. From the top Siesta directory:

mkdir Objs
cd Objs
sh ../Src/obj_setup.sh
../Src/configure --enable-fast
make
cd Tests
make clean; make
cd    # Now a parallel version
mkdir ParaObjs
cd ParaObjs
sh ../Src/obj_setup.sh
cp ../Src/Sys/parallel.make ./arch.make
make
cd Tests
make clean; make

Revision: siesta-bsc--master--2.1--patch-24
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Mon Mar 19 09:37:33 CET 2007
Standard-date: 2007-03-19 08:37:33 GMT
Modified-files: Docs/CHANGES Src/Makefile Src/alloc.F90
    Src/atom.f Src/detover.F Src/dfscf.f Src/fft3d.F
    Src/meshmatrix.F Src/old_atmfuncs.f Src/optical.F
    Src/overfsm.f Src/rhoofd.f Src/rhoofdsp.f Src/savepsi.F
    Src/siesta_analysis.F Src/spher_harm.f
    Src/transition_rate.F Src/vmat.f Src/vmatsp.f Src/xc.f
    version.info
New-patches: ag@bsc--2007/vars--mqag--1.0--base-0
    ag@bsc--2007/vars--mqag--1.0--patch-1
    ag@bsc--2007/vars--mqag--1.0--patch-2
    ag@bsc--2007/vars--mqag--1.0--patch-3
    ag@bsc--2007/vars--mqag--1.0--patch-4
    ag@bsc--2007/vars--mqag--1.0--patch-5
    ag@bsc--2007/vars--mqag--1.0--patch-6
    ag@bsc--2007/vars--mqag--1.0--patch-7
    ag@bsc--2007/vars--mqag--1.0--patch-8
    ag@bsc--2007/vars--mqag--1.0--patch-9
    ag@bsc--2007/vars--mqag--1.0--patch-10
    ag@bsc--2007/vars--mqag--1.0--patch-11
    ag@bsc--2007/vars--mqag--1.0--patch-12
    ag@bsc--2007/vars--mqag--1.0--patch-13
    ref@bsc--2007/siesta-bsc--master--2.1--patch-24
Summary: Allocatables to pointers  I
Keywords: 

First merge of the changes Based on work by Manuel Quero from Feb 28 to Mar 16. 
Allocatable arrays have been turned into pointers in several routines.

Patches applied:

 * ag@bsc--2007/vars--mqag--1.0--base-0
   tag of ref@bsc--2007/siesta-bsc--master--2.1--patch-23

 * ag@bsc--2007/vars--mqag--1.0--patch-1
   Siesta_analysis, sphere_harm

 * ag@bsc--2007/vars--mqag--1.0--patch-2
   Transition_rate

 * ag@bsc--2007/vars--mqag--1.0--patch-3
   Vmat and vmatsp

 * ag@bsc--2007/vars--mqag--1.0--patch-4
   Added _z1, _z2, and _r4 support to alloc.F90

 * ag@bsc--2007/vars--mqag--1.0--patch-5
   Detover, allocating complex arrays

 * ag@bsc--2007/vars--mqag--1.0--patch-6
   Fft3d 

 * ag@bsc--2007/vars--mqag--1.0--patch-7
   Old_atmfuncs 

 * ag@bsc--2007/vars--mqag--1.0--patch-8
   Savepsi

 * ag@bsc--2007/vars--mqag--1.0--patch-9
   Explicit array-ness in calls to spline

 * ag@bsc--2007/vars--mqag--1.0--patch-10
   Meshmatrix and routines which use DscfL

 * ag@bsc--2007/vars--mqag--1.0--patch-11
   xc.f

 * ag@bsc--2007/vars--mqag--1.0--patch-12
   Overfsm

 * ag@bsc--2007/vars--mqag--1.0--patch-13
   Optical


Revision: siesta-bsc--master--2.1--patch-25
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Tue Mar 20 23:49:17 CET 2007
Standard-date: 2007-03-20 22:49:17 GMT
Modified-files: Docs/CHANGES Src/Makefile Src/bonds.f
    Src/hsparse.f Src/m_neighbors.f90 Src/nlefsm.f Src/pdos.F
    Src/pdosg.F Src/pdosk.F Src/pdoskp.F Src/phirphi.f
    Src/poison.F Src/proximity_check.F Src/radfft.f
    Src/reord.f Src/setup_hamiltonian.F Src/shaper.f
    Tests/mgco3/mgco3.fdf version.info
New-patches: ag@bsc--2007/vars--mqag--1.0--patch-14
    ag@bsc--2007/vars--mqag--1.0--patch-15
    ag@bsc--2007/vars--mqag--1.0--patch-16
    ag@bsc--2007/vars--mqag--1.0--patch-17
    ag@bsc--2007/vars--mqag--1.0--patch-18
    ag@bsc--2007/vars--mqag--1.0--patch-19
    ag@bsc--2007/vars--mqag--1.0--patch-20
    ag@bsc--2007/vars--mqag--1.0--patch-21
    ref@bsc--2007/siesta-bsc--master--2.1--patch-25
Summary: Allocatables to pointers  II
Keywords: 

Second merge of the changes Based on work by Manuel Quero from Feb 28 to Mar 16. 
Allocatable arrays have been turned into pointers in several routines.

+ Clarification of the use of the new m_neighbors module.
+ vpath-aware "make dep" target

Patches applied:

 * ag@bsc--2007/vars--mqag--1.0--patch-14
   radfft

 * ag@bsc--2007/vars--mqag--1.0--patch-15
   poison

 * ag@bsc--2007/vars--mqag--1.0--patch-16
   reord

 * ag@bsc--2007/vars--mqag--1.0--patch-17
   phirphi

 * ag@bsc--2007/vars--mqag--1.0--patch-18
   PDOS routines

 * ag@bsc--2007/vars--mqag--1.0--patch-19
   Clarification of m_neighbors use. Nlefsm converted

 * ag@bsc--2007/vars--mqag--1.0--patch-20
   bonds. Vpath-aware makedepend

 * ag@bsc--2007/vars--mqag--1.0--patch-21
   shaper


Revision: siesta-bsc--master--2.1--patch-26
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Tue Apr 10 09:03:36 CEST 2007
Standard-date: 2007-04-10 07:03:36 GMT
Removed-files: Src/.arch-ids/numbvect.f.id Src/numbvect.f
Modified-files: Docs/CHANGES Src/Makefile Src/alloc.F90
    Src/atomlist.f Src/atomlwf.F Src/bands.F
    Src/basis_types.f Src/born_charge.F Src/broyden_optim.F
    Src/cellxc.F Src/chempot.F Src/coor.F Src/denmat.F
    Src/denmatlomem.F Src/forhar.f Src/hsparse.f
    Src/initatom.f Src/kinefsm.f Src/ksv.f Src/listsc.f
    Src/m_broyden_mixing.f Src/m_iostruct.f
    Src/molecularmechanics.F90 Src/nlefsm.f Src/obc.f
    Src/ofc.f Src/old_atmfuncs.f Src/ordern.F Src/outcoor.f
    Src/pseudopotential.f Src/setatomnodes.F
    Src/show_distribution.f Src/siesta_geom.F90
    Src/struct_init.F version.info
New-patches: ag@bsc--2007/vars--mqag--1.0--patch-22
    ag@bsc--2007/vars--mqag--1.0--patch-23
    ag@bsc--2007/vars--mqag--1.0--patch-24
    ag@bsc--2007/vars--mqag--1.0--patch-25
    ag@bsc--2007/vars--mqag--1.0--patch-26
    ag@bsc--2007/vars--mqag--1.0--patch-27
    ag@bsc--2007/vars--mqag--1.0--patch-28
    ag@bsc--2007/vars--mqag--1.0--patch-29
    ag@bsc--2007/vars--mqag--1.0--patch-30
    ag@bsc--2007/vars--mqag--1.0--patch-31
    ag@bsc--2007/vars--mqag--1.0--patch-32
    ag@bsc--2007/vars--mqag--1.0--patch-33
    ag@bsc--2007/vars--mqag--1.0--patch-34
    ag@bsc--2007/vars--mqag--1.0--patch-35
    ag@bsc--2007/vars--mqag--1.0--patch-36
    ag@bsc--2007/vars--mqag--1.0--patch-37
    ag@bsc--2007/vars--mqag--1.0--patch-38
    ag@bsc--2007/vars--mqag--1.0--patch-39
    ag@bsc--2007/vars--mqag--1.0--patch-40
    ag@bsc--2007/vars--mqag--1.0--patch-41
    ag@bsc--2007/vars--mqag--1.0--patch-42
    ref@bsc--2007/siesta-bsc--master--2.1--patch-26
Summary: Allocatables to pointers III
Keywords:

Third installment in the merging of the allocatables->pointers work at BSC.

Patches applied:

 * ag@bsc--2007/vars--mqag--1.0--patch-22
   cisa in siesta_geom

 * ag@bsc--2007/vars--mqag--1.0--patch-23
   MolecularMechanics

 * ag@bsc--2007/vars--mqag--1.0--patch-24
   Forhar

 * ag@bsc--2007/vars--mqag--1.0--patch-25
   Deallocate basis spec arrays

 * ag@bsc--2007/vars--mqag--1.0--patch-26
   Fix names in re_alloc/de_alloc statements

 * ag@bsc--2007/vars--mqag--1.0--patch-27
   kinefsm

 * ag@bsc--2007/vars--mqag--1.0--patch-28
   ksv

 * ag@bsc--2007/vars--mqag--1.0--patch-29
   listsc

 * ag@bsc--2007/vars--mqag--1.0--patch-30
   m_broyden_mixing

 * ag@bsc--2007/vars--mqag--1.0--patch-31
   Rationalization of chempot

 * ag@bsc--2007/vars--mqag--1.0--patch-32
   Setatomnodes. Stop if bad load balancing

 * ag@bsc--2007/vars--mqag--1.0--patch-33
   obc rationalization

 * ag@bsc--2007/vars--mqag--1.0--patch-34
   ofc rationalization

 * ag@bsc--2007/vars--mqag--1.0--patch-35
   outcoor

 * ag@bsc--2007/vars--mqag--1.0--patch-36
   pseudopotential

 * ag@bsc--2007/vars--mqag--1.0--patch-37
   elem in atomlist and struct_init

 * ag@bsc--2007/vars--mqag--1.0--patch-38
   atomlwf

 * ag@bsc--2007/vars--mqag--1.0--patch-39
   bands

 * ag@bsc--2007/vars--mqag--1.0--patch-40
   broyden_optim

 * ag@bsc--2007/vars--mqag--1.0--patch-41
   cellxc

 * ag@bsc--2007/vars--mqag--1.0--patch-42
   denmat and denmatlomem

Revision: siesta-bsc--master--2.1--patch-27
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Apr 11 13:04:23 CEST 2007
Standard-date: 2007-04-11 11:04:23 GMT
Removed-files: Src/.arch-ids/m_neighbors.f90.id
    Src/.arch-ids/neighb.f.id Src/.arch-ids/ranger.f.id
    Src/m_neighbors.f90 Src/neighb.f Src/ranger.f
Modified-files: Docs/CHANGES Src/Makefile Src/atomlwf.F
    Src/basis_io.F Src/bonds.f Src/born_charge.F
    Src/chempot.F Src/compute_dm.F Src/dhscf.F Src/dnaefs.f
    Src/hsparse.f Src/initatom.f Src/kinefsm.f Src/ksv.f
    Src/meshsubs.F Src/mneighb.f Src/naefs.f Src/nlefsm.f
    Src/optical.F Src/overfsm.f Src/overlap.f Src/phirphi.f
    Src/phirphi_opt.f Src/post_scf_work.F
    Src/proximity_check.F Src/setup_hamiltonian.F
    Src/shaper.f Src/siesta_analysis.F Src/siesta_init.F
    Src/state_init.F version.info
New-patches: ag@bsc--2007/vars--mqag--1.0--patch-43
    ag@bsc--2007/vars--mqag--1.0--patch-44
    ag@bsc--2007/vars--mqag--1.0--patch-45
    ag@bsc--2007/vars--mqag--1.0--patch-46
    ag@bsc--2007/vars--mqag--1.0--patch-47
    ag@bsc--2007/vars--mqag--1.0--patch-48
    ref@bsc--2007/siesta-bsc--master--2.1--patch-27
Summary: Allocatables to pointers IV -- new neighbor code + nspecies fix
Keywords: 

Further changes for allocatables->pointers conversion.  

Neighb and ranger removed in favor of 'mneighb' approach, as it is
more robust and less confusing.

There has been a slight change in mneighb: maxnna is now a module
variable, and not an argument of mneighb. Maxnna is given an initial
value, and the module arrays initialized to that size in the first
invocation.

Patches applied:

 * ag@bsc--2007/vars--mqag--1.0--patch-43
   First stages of changeover to mneighb paradigm

 * ag@bsc--2007/vars--mqag--1.0--patch-44
   New functionality in mneighb. Convert chempot

 * ag@bsc--2007/vars--mqag--1.0--patch-45
   Converted phirphi*, ksv, and optical

 * ag@bsc--2007/vars--mqag--1.0--patch-46
   Final changeover to new neighb paradigm

 * ag@bsc--2007/vars--mqag--1.0--patch-47
   dhscf. Minor change in meshsubs. Cosmetic cleanup of mneighb.

Also: Fix setting of number of species for user basis option

The number of species was not set correctly if the options User.Basis
or User.Basis.Netcdf were used.



Revision: siesta-bsc--master--2.1--patch-28
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Mon May  7 16:32:55 CEST 2007
Standard-date: 2007-05-07 14:32:55 GMT
Modified-files: Docs/CHANGES Src/Makefile Src/cellxc.F
    Src/initatom.f version.info
New-patches: ref@bsc--2007/siesta-bsc--master--2.1--patch-28
Summary: Explicit array-ness in calls in initatom and cellxc
Keywords: 

The Marenostrum compiler complains if actual arguments with
array indexes beginning at 0 are written in the old f77 style:

Thus one has to write in initatom:

                call ....
                 nkbl(0:,is), erefkb(1,0:,is),lmxo(is),

instead of:
                call ....
                 nkbl(0,is), erefkb(1,0,is),lmxo(is),

* In cellxc, a similar specification is necessary:

          call HowManyMeshPerNode(MeshNsm,Pleft3,Nodes,NMeshPN,
     .      PMesh(1:,3))

Revision: siesta-bsc--master--2.1--patch-29
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Tue May  8 00:03:35 CEST 2007
Standard-date: 2007-05-07 22:03:35 GMT
Modified-files: Docs/CHANGES Src/cellxc.F version.info
New-patches: ref@bsc--2007/siesta-bsc--master--2.1--patch-29
Summary: Fix wrong allocations in cellxc.F
Keywords: 

A few typos in the conversion of allocatables to pointers in cellxc caused
crashes. Fixed allocation of dbuffer and bvxc.

Revision: siesta-bsc--master--2.1--patch-30
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Tue May  8 22:04:56 CEST 2007
Standard-date: 2007-05-08 20:04:56 GMT
Modified-files: Docs/CHANGES Src/initatom.f version.info
New-patches: ref@bsc--2007/siesta-bsc--master--2.1--patch-30
Summary: Explicit array extents in initatom.f
Keywords: 

More fixes for compiler handling of array arguments:

The actual argument (in call to atom in initatom.f):

	nzeta(0:,1,is)

is wrong. It should be:   nzeta(0:,1:,is)

The 0: form was put in a previous patch to avoid an mismatched interface
error with the Marenostrum compiler. But once this is done, apparently
one has to go all the way with explicit array extents. Otherwise bad
code is produced by other compilers (at least by Intel's).

This is mildly confusing, as the dummy arguments are declared
in f77 style in atom.f:

      integer, intent(in) :: nzeta(0:lmaxd,nsemx)

(or are they?).

There might be other instances of this usage.

Revision: siesta-bsc--master--2.1--patch-31
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu May 10 13:02:23 CEST 2007
Standard-date: 2007-05-10 11:02:23 GMT
Modified-files: Src/Makefile Src/extrapol.F Src/hsparse.f
    Src/new_dm.F Src/state_init.F
New-patches: ref@bsc--2007/siesta-bsc--master--2.1--patch-31
Summary: Avoid shrinking of density-matrix arrays for extrapol.
Keywords: 

Routine extrapol has to deal with density-matrices with possibly different
sparsity patterns. It is essential that their "value" and "list" arrays be
large enough to allow proper processing.

After the cleanup, the allocation section after the call to hsparse in
state_init called re_alloc inconditionally, regardless of whether the
total size of Dscf (nh) had increased or not. Sometimes this led to a
*shrinking* ofthe arrays, and bounds errors in extrapol. The option
'shrink=.false.' has now been used. (Also, for good measure, shrinking
is avoided in the allocation of listh, now done inside hsparse.)

Extrapol has been turned into a module, and the assumed-shape idiom used
to declare the relevant arrays (otherwise bounds errors would result from
the comparison with the nominal nmax).

* Other: cosmetic change in the 'dep' target to deal properly with
degenerate vpaths.
Revision: siesta-bsc--master--2.1--patch-32
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Fri May 11 16:57:28 CEST 2007
Standard-date: 2007-05-11 14:57:28 GMT
Modified-files: Docs/CHANGES Src/state_init.F version.info
New-patches: ref@bsc--2007/siesta-bsc--master--2.1--patch-32
Summary: Fix typo in state_init.F
Keywords: 

A loose 'endif' in state_init.F has been removed.

Update of CHANGES for patch-31.


Revision: siesta-bsc--master--2.1--patch-33
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Thu May 17 17:59:40 CEST 2007
Standard-date: 2007-05-17 15:59:40 GMT
Modified-files: Docs/CHANGES Src/siesta_forces.F
    version.info
New-patches: ref@bsc--2007/siesta-bsc--master--2.1--patch-33
Summary: Execute SCF loop when nscf=1
Keywords: 

When nscf=1, the scf loop was not entered, and
the program went directly to the "post-scf" section.

Now, unless nscf<=0, the scf loop is executed at least once.

Revision: siesta-bsc--master--2.1--patch-34
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Jun  6 10:23:24 CEST 2007
Standard-date: 2007-06-06 08:23:24 GMT
Modified-files: Docs/CHANGES Src/siesta_forces.F
    version.info
New-patches: ref@bsc--2007/siesta-bsc--master--2.1--patch-34
Summary: Clarify bounds of SCF loop in siesta_forces.
Keywords: 

The exit criterion of the scf loop in siesta_forces
has been clarified: It now exits before completing
the last scheduled iteration (i.e., iteration number
nscf) as it is assumed (notably for Harris-functional
calculations) that it corresponds to the final pass
for force and stress calculation.

The check on the sign of wmix has been deleted.

================================

The changes on branch ref@bsc--2007/siesta-bsc--master--2.3 were
mainly merges of new features and fixes along devel-2.1.  The patches
were first put in ag@bsc--2007/merge-devel--ag--2.3 (up to patch-18)
and were then copied verbatim into
ref@bsc--2007/siesta-bsc--master--2.3.

Some other bug-fixes along bsc--2.1--master were also merged into the
2.3--master branch.

The only other changes were:

* Fix typo in state_init.F

* BSC cosmetic change to zmatrix.F90 taken back.
  In detail: synched patch-38, and copied zmatrix.F from reference-2.1
  after doing a 'tla mv zmatrix.F0 zmatrix.F.

* siesta_geom was needed in zmatrix.F

Revision: siesta-bsc--master--2.3--patch-25
Archive: ref@bsc--2007
Creator: Alberto Garcia <albertog@icmab.es>
Date: Wed Jun  6 10:33:04 CEST 2007
Standard-date: 2007-06-06 08:33:04 GMT
Modified-files: Docs/CHANGES Src/kpoint_grid.F90
    version.info
New-patches: ref@bsc--2007/siesta-bsc--master--2.3--patch-25
Summary: Avoid MP-grid permutations in trivial gamma case
Keywords: 

For completeness, the effective Monkhorst-Pack grid is
printed even if only the gamma point is used. The algorithm
to generate it might sometimes permute the lattice vectors.
This is now corrected.


====END OF LOG OF BSC CHANGES==================================

2.1-before-BSC-merge
____________________________________________________________________
** CHANGES ALONG siesta@uam.es--2006/siesta-devel--reference--2.1
--------------------------------------------------------------------

2007-06-05 13:30 GMT	Alberto Garcia <albertog@icmab.es>	patch-63

Summary: Correct pseudo in ch4 test

2007-06-05 13:30 GMT	Alberto Garcia <albertog@icmab.es>	patch-62

Summary: Wrap write_struct and zmatrix output for MPI

In siesta.F, the geometry output calls before moving the atoms
were done by all nodes.

2007-06-04 15:40 GMT	Alberto Garcia <albertog@icmab.es>	patch-61

Summary: Zmatrix optimization enhancements. Sign change in MM stress.

* Added constant-volume optimization option to the Zmatrix code.

* Broyden option for Zmatrix optimization.

* The zmatrix optimization code for the "variable cell" case has been
partially fixed. It now fails to work only if some of the coordinates
of an atom specifed in "cartesian" form are variables (i.e., allowed
to relax) and others are not.

For example:

cartesian  
...
     1  0.3 0.4 0.5    1 0 1
...

will fail as the second coordinate is not allowed to relax.

     1 0.4 0.2 -0.7    0 0 0         OK
     1 0.4 0.2 -0.7    1 1 1         OK


* New file cell_broyden_optim.F implements "cell-only" optimizations.

This feature is enabled by setting the symbol

MD.RelaxCellOnly 

to .true..

Only the cell parameters are relaxed (by the Broyden method).  The
atomic coordinates are re-scaled to the new cell, keeping the
fractional coordinates constant. For Zmatrix calculations, the
fractional position of the first atom in each molecule is kept fixed,
and no attempt is made to rescale the bond distances or angles.

* Removal of intra-molecular pressure

If the symbol

MD.RemoveIntramolecularPressure

is set to .true., the contribution to the stress coming from the
internal degrees of freedom of the molecules will be subtracted.  This
is done in an approximate manner, using the virial form of the stress,
and assumming that the "mean force" over the coordinates of the
molecule represents the "inter-molecular" stress. The correction term
was already computed in earlier versions ("Pmol"). The correction is
now computed molecule-by-molecule if the Zmatrix format is used.

NOTE: The reported "Molecular Pressure" might change slightly from
previous versions as the "current" and not the "next iteration" coordinates
are used for the computation of the virial term.


If the intra-molecular stress is removed, the corrected static and
total stresses are printed in addition to the uncorrected items.

The corrected Voigt form is also printed.

(New test ch4 to exemplify this feature)


* Correction of the sign of the stress in molecularmechanics.F90

For MM potentials, attractive interactions are represented by
*positive* C coefficients in the MM.Potentials block. Then the
MM energy is negative, as it should be. However, the sign of
the stress was wrong in the original implementation. Now (also
printed as MM-Stress) it should come out as a positive contribution
(negative pressure), forcing the cell to contract.

(Updated graphite_full test)


* New Utils/MM_Examples directory.

An example of the use of MM potentials to introduce van der Waals
interactions in an approximate manner (for the artificial example
of fcc He).

* Additional enthalpy-analog output.

The enthalpy is computed in two ways: as the "target enthalpy" using
the target pressure, and as the "real" enthalpy using the trace of the
current stress tensor as an estimation of the pressure. Ideally, both
values should be identical at convergence, but the "target enthalpy"
might have significant errors coming from the tolerances.


* NEW STRUCTURE OUTPUT FILES:

OUT.UCELL.ZMATRIX

It contains the structural information in fdf form, with
blocks for unit-cell vectors and for Zmatrix coordinates. The
Zmatrix block is in a ``canonical'' form with the following
characteristics:

1. No symbolic variables or constants are used.
2. The position coordinates of the first atom in each molecule
   are absolute cartesian coordinates.
3. Any coordinates in ``cartesian'' blocks are also absolute cartesians.
4. There is no provision for output of constraints.
5. The units used are those initially specified by the user, and are
   noted also in fdf form.

Note that the geometry reported is the last one for which forces and
stresses were computed.

NEXT_ITER.UCELL.ZMATRIX

In the same format but with a possibly updated geometry.

Label.STRUCT_NEXT_ITER.

Structure in crystallographic format (same as Label.STRUCT_OUT) for a
possibly updated geometry.

(Call performed in siesta_write_positions, which is called after the
structure has moved after the application of forces/stress.)


* New .make file for Hreidar at ETH Zurich.

2007-05-09 14:40 GMT	Alberto Garcia <albertog@icmab.es>	patch-8

Summary: New features for variable-cell optimization. MM Stress sign fix

* New file cell_broyden_optim.F implements "cell-only" optimizations.
This feature is enabled by setting the symbol

MD.RelaxCellOnly 

to .true..

* Removal of intra-molecular pressure
If the symbol

MD.RemoveIntramolecularPressure

is set to .true., the contribution to the stress coming from the
internal degrees of freedom of the molecules will be subtracted.  This
is done in an approximate manner, using the virial form of the stress,
and assumming that the "mean force" over the coordinates of the
molecule represents the "inter-molecular" stress. The correction term
was already computed in earlier versions ("Pmol"). The correction is
now computed molecule-by-molecule if the Zmatrix format is used.

* More stress output items.

If the intra-molecular stress is removed, the corrected static and
total stresses are printed in addition to the uncorrected items.

The corrected Voigt form is also printed.

* New form for the enthalpy

The enthalpy is computed in two ways: as the "target enthalpy" using
the target pressure, and as the "real" enthalpy using the trace of the
current stress tensor as an estimation of the pressure. Ideally, both
values should be identical at convergence, but the "target enthalpy"
might have significant errors coming from the tolerances.

* Correction of the sign of the stress in molecularmechanics.F90

For MM potentials, attractive interactions are represented by
*positive* C coefficients in the MM.Potentials block. Then the
MM energy is negative, as it should be. However, the sign of
the stress was wrong in the original implementation. Now (also
printed as MM-Stress) it should come out as a positive contribution
(negative pressure), forcing the cell to contract.

* New Utils/MM_Examples directory.

An example of the use of MM potentials to introduce van der Waals
interactions in an approximate manner (for the artificial example
of fcc He).

* New .make file for Hreidar at ETH Zurich.

2007-06-4 14:40 GMT	Alberto Garcia <albertog@icmab.es>	patch-60

Summary: Origin shift was applied after possible coordinate scaling

In routine coor, the origin shift was applied after the section in
which the coordinates are re-scaled (from Ang to Bohr, or from fractional
to cartesian, etc). However, it is clear in the manual that the shift
vector is in the same units and format as the input coordinates.

The shift is now applied right after reading the coordinate block.

NOTE: This does not apply to the Zmatrix routine, which has *its own*
conventions for origin shift, neither to coordinates read from an XV
file or a Struct file.

2007-06-4 14:30 GMT	Alberto Garcia <albertog@icmab.es>	patch-59

Summary: Undefined var in kgridinit, iohs MPI write, pdosg array bound

* Initialize "genlogic" to .false. before it is used in kgridinit.

* Fix index in write statement in iohs in parallel affecting list array.

* Fix dimension of dpr in pdosg. Clarify names of variables in pdos.
  In pdosg, dpr was wrongly dimensioned to no_l (modern notation) instead of no_u.

2007-05-17 900:12 GMT	Alberto Garcia <albertog@icmab.es>	patch-58

Summary: Refinements of XML tester. New ioncat program

Eduardo Anglada's bugfixes to the XML tester package:

* Apply bugfixes to compare_m.f90.
* Initialize variable 'len' in m_reader.f90 to suit buggy compilers.
* Use the 'normalize' DOM function to consolidate adjacent text nodes.
  (rather than changing the pcdata processing in the SAX parser).
* Add removal of tolerances.dat and diff output to the 'clean' target
  in test.mk

New features:

* Use the command-line options processor. Valid options:

 -d       : enable debugging output.
 -t FILE  : specify tolerances file.
 -g LOGTOL: specify (minus log10 of) global tolerance
 -s       : stop after first error
 -e NUM   : stop after NUM errors

* By default, the tester does not stop after errors.

* Enhance xmlparser/Tests/compare.sh to accept options.

* Modified f2kcli.F90 to fit gfortran (this compiler
already implements all the functionality, so a 
preprocessor symbol is used to disable the module).

* Added Src/Sys/gfortran.make

-------------

* New program "ioncat" in Src to analyze the content of .ion files.

 Usage: ioncat [options] Species_Label
 Options:
  
  -s          : Show header information
  -i          : Print indexes of unique orbitals
  -j          : Print indexes of unique KB projectors
  -o ORBINDEX : Generate table for orbital ORBINDEX
  -k KBINDEX  : Generate table for KB proj KBINDEX
  -v          : Generate table for Vna potential
  -Z          : Zoom in near rc for table generation
  -h          : Print this help message

The accompanying script ionplot.sh shows how to drive 
ioncat to plot the results.

2007-05-13 20:00:12 GMT	Alberto Garcia <albertog@icmab.es>	patch-57

Summary: MareNostrum fixes. zdrot to blas. obj_setup. compare_m syntax

* Add "." to MPI_INCLUDE, and INCFLAGS to default rules in MN's .make file.
* Remove old MN .make file.
* Do not link Reference-xml in obj_setup.sh
* Move zdrot routine from dc_lapack.f to blas.f

2007-05-12 18:00:12 GMT	Alberto Garcia <albertog@icmab.es>	patch-56

Summary: Fixes for compilation of test-xml and MPI tests

* A warning is now printed if the user tries to invoke 'make'
from the xmlparser or MPI directories to compile test-xml or
the MPI tests, so that the proper VPATH is used.

* Add pxf.o dependency to test-xml

* Add INCFLAGS to default suffix rule to Intel mkl .make file.

2007-05-07 09:50:12 GMT	Alberto Garcia <albertog@icmab.es>	patch-55

Summary: Portability fixes: xmlparser split. New mpich pe in matterhorn

* Split the compilation of libxmlparser.a and the xml-test program, as the
  PGI compiler cannot deal with the DOM part.
* Compile test programs in Src/MPI at main compilation time. (It is harder
  to do it later if vpath is used.)

* New mpich .make files for matterhorn
  (the oci.q queue does not support myrinet). New script in Tests/Scripts.

2007-04-30 08:50:12 GMT	Alberto Garcia <albertog@icmab.es>	patch-54

Summary: Portability fixes (matterhorn/pgf90). Wider basis enthalpy field.

 * agarcia@siesta.arch--2006/siesta-fix--matterhorn--0.1--patch-1
   More denchar and gen-basis objs

 * agarcia@siesta.arch--2006/siesta-fix--matterhorn--0.1--patch-2
   Wider field in BASIS_ENTHALPY

 * agarcia@siesta.arch--2006/siesta-fix--matterhorn--0.1--patch-3
   Fix matterhorn Sys files for VPATH compilation


2007-04-27 16:15:12 GMT	Alberto Garcia <albertog@icmab.es>	patch-53

Summary: Merge of XML tester by Eduardo Anglada
Keywords: 

* New command-line interface
* Merged new functionality into old test.mk

* Some of the new tests are not yet properly integrated.
  (reference output files and xml files have to be
   re-generated).

2007-04-17 13:54:12 GMT	Alberto Garcia <albertog@icmab.es>	patch-52

Summary: New method for split-norm calculation

The method for generating multiple-zeta orbitals is based on fitting a
function of the form r^l (C_1*r^2 +C_2) at a certain point of the
initial (1st zeta) orbital.

The criterion spelled out in the Siesta JPC paper seems to imply that
the split-norm parameter refers to the norm of the tail of the initial
orbital (i.e., the region to the right of the fitting point). However,
the actual code in Siesta takes it to mean the norm of the tail *plus*
the norm of the parabolic function in the inner region. The reasons
are mostly historical, having to do with finding a "good enough, universal"
default value for the split-norm parameter. 

The problem with the "parabola+tail" method is that it does not always
work, and this is bad for an unsupervised method like the simplex. For
example, if the first-zeta orbital has a relatively large slope at or
near rc , the smallest parabola one can fit (for radii very close to
rc) has a significant norm, and there is a minimum value for the
split-norm parameter. Thus the method will not work if the user (or
simplex) requests a split-norm greater than this value, and Siesta
will stop.  This behavior is not uncommon.

On the other hand, the norm of the tail region is of course smooth and
covers monotonically the whole range 0-1. It has very low contrast
near rc, meaning that in order to fit a 2nd-zeta orbital with a 10%
reduction in rc, one might need to use "tail-split-norms" of 0.001 or
smaller.

New code for multiple split orbitals has been written to address these
issues, while at the same time maintaining backwards compatibility with
the old procedure. The code is controlled by the new fdf symbols:

* PAO.NewSplitCode

Enables a new, simpler way to match the multiple-zeta radii.

If an old-style (tail+parabola) calculation is being done, perform a
scan of the tail+parabola norm in the whole range of the 1st-zeta
orbital, and store that in split_table. The construction of the
2nd-zeta orbital involves simply scanning split_table to find the
appropriate place. Due to the idiosyncracies of the old algorithm,
the new one is not guaranteed to produce exactly the same results,
as it might settle on a neighboring grid point for the matching.

* PAO.SplitTailNorm

split_table is set to sqrt(1-norm(r)), to more closely match the
spirit of the JPC paper (the square root is introduced to make the
split norm values larger for 2nd-zeta radii in the vicinity of rc).

* PAO.FixSplitTable

The old-style split-table is fixed by applying a damping function that
takes it to zero at the 1st-zeta orbital radius. This option enables
PAO.NewSplitCode.


By default, all three symbols are .false., resulting in the use of the old
code. In this case, the program now stops if the requested split_norm
is smaller than the values on the table, and prints an explanation.

2007-04-17 09:54:12 GMT	Alberto Garcia <albertog@icmab.es>	patch-51

    Summary:
      Fix tag in MPI send/receive in mulliken
    Revision:
      siesta-devel--reference--2.1--patch-51

    * The undefined variable 'io' was used as tag... changed to itot, the
    orbital index.
    
    * Trimmed mpibuff before writing.
    
    

    modified files:
     Src/mulliken.F

    new patches:
     agarcia@siesta.arch--2006/mulliken--agarcia--0.1--patch-1


2007-03-19 14:18:58 GMT	Alberto Garcia <albertog@icmab.es>	patch-50

    Summary:
      Add molecular mechanics documentation
    Revision:
      siesta-devel--reference--2.1--patch-50

    Patches applied:
    
     * agarcia@siesta.arch--2006/mulliken--agarcia--0.1--patch-1
       Fix tag in MPI send and receive in calculation of overlap
    

    modified files:
     Docs/siesta.ind Docs/siesta.tex

2007-03-14 22:30:31 GMT	Alberto Garcia <albertog@icmab.es>	patch-49

Summary: VPATH-aware compilation for multiple executable versions

Added Src/obj_setup.sh script, to be called from any directory on
which the build is going to take place, and modified slightly some
makefiles to make them VPATH-proof.  The Tests directory is replicated
in the "build" directory.

(The pristine Src directory should be "clean", without objects, or else
the compilation in the build directories will get confused)

Example. From the top Siesta directory:

mkdir Objs
cd Objs
sh ../Src/obj_setup.sh
../Src/configure --enable-fast
make
cd Tests
make clean; make
cd    # Now a parallel version
mkdir ParaObjs
cd ParaObjs
sh ../Src/obj_setup.sh
cp ../Src/Sys/parallel.make ./arch.make
make
cd Tests
make clean; make

2007-03-09 9:40:31 GMT	Alberto Garcia <albertog@icmab.es>	patch-48

Summary: Option to use fractional rc's for multiple zeta

If the rc's for multiple-zeta orbitals are given as negative numbers
in the PAO.Basis block, they are interpreted as the corresponding
fractions of the rc for the first-zeta orbital.

This is useful in basis optimization, to avoid having to include
explicitly the constraint that rc(izeta>1) < rc(izeta=1).

Note however that, if the rc's are significantly larger than the
natural size of the atomic orbital, multiple-zeta orbitals will tend
to be very similar to the first (this is now flagged by the program as
a warning). The best procedure to avoid this is to use an explicit
split-norm value.

2007-03-08 19:30:31 GMT	Alberto Garcia <albertog@icmab.es>	patch-47

Summary: First implementation of basis_enthalpy calculation

New file BASIS_ENTHALPY contains the "effective basis enthalpy"
of Anglada et al. The pressure is determined from the fdf symbol
"BasisPressure", with a 0.2 GPa default.

Further work: different weights to different species.

2007-02-25 20:30:31 GMT	Alberto Garcia <albertog@icmab.es>	patch-46

Summary: Fix allocation of temporary array in savepsi in parallel

Some nodes might not have any occupied orbitals assigned to them, so
one has to be careful in the allocation of a buffer array in MPI.
Allocate using the dimensions on the master node.

+ Add 'show_distribution' routine to warn (for now) the user
  when there are nodes which do not handle any orbitals.

+ Add experimental 'compare' target to Makefile.

+ Add 'born_spin' test.

2007-02-23 16:17:31 GMT	Alberto Garcia <albertog@icmab.es>	patch-45

    Summary:
      Clean up handling of ntote in ksv and optical
    Revision:
      siesta-devel--reference--2.1--patch-45


    modified files:
     Src/ksv.f Src/optical.F


2007-02-23 16:16:10 GMT	Alberto Garcia <albertog@icmab.es>	patch-44

    Summary:
      Wrap writes for MPI
    Revision:
      siesta-devel--reference--2.1--patch-44


    modified files:
     Src/broyden_optim.F Src/siesta.F


2007-02-23 15:37:15 GMT	Alberto Garcia <albertog@icmab.es>	patch-43

    Summary:
      Wrap io_close for MPI in iohs.F
    Revision:
      siesta-devel--reference--2.1--patch-43

    The calls to io_close were not restricted to the master node.
    
    

    modified files:
     Src/iohs.F


2007-02-23 15:14:11 GMT	Alberto Garcia <albertog@icmab.es>	patch-42

    Summary:
      zval wrongly treated as MPI_integer in broadcast_basis
    Revision:
      siesta-devel--reference--2.1--patch-42

    After the introduction of the hybrid-atom capability, zval is a real
    number. It was however treated as MPI_integer in broadcast_basis.
    

    modified files:
     Src/broadcast_basis.F


2007-02-22 17:35:07 GMT	Alberto Garcia <albertog@icmab.es>	patch-41

    Summary:
      New compilation and test-running files for arina
    Revision:
      siesta-devel--reference--2.1--patch-41

    New file Src/Sys/arina-mlib.make for the new library setup
    at the itanium machine at the UPV. Src/Confs/arina-mpi.conf
    is now obsolete.
    
    Update of Tests/Scripts/arina.pbs.
    

    new files:
     Src/Sys/.arch-ids/arina-mlib.make.id Src/Sys/arina-mlib.make

    modified files:
     Docs/CHANGES Docs/siesta.ind Src/Confs/arina-mpi.conf
     Tests/Scripts/arina.pbs version.info


2007-02-21 11:09:21 GMT	Alberto Garcia <albertog@icmab.es>	patch-40

    Summary:
      Update reference output for benzene test. New script for matterhorn
    Revision:
      siesta-devel--reference--2.1--patch-40

    * The old Reference/benzene.out contained debugging output.
    * Updated script to run parallel jobs under SGE on matterhorn.
    * Declare etime in bsd.f
    

    modified files:
     Docs/CHANGES Docs/siesta.tex Src/bsd.f
     Tests/Reference/benzene.out Tests/Scripts/matterhorn-gm.sge
     version.info


2007-02-21 10:49:20 GMT	Alberto Garcia <albertog@icmab.es>	patch-39

    Summary:
      Fix units conversion in Util/Optical/optical.f
    Revision:
      siesta-devel--reference--2.1--patch-39

    (Daniel Sanchez)
    
    Optical.f is a program to analyze the file .EPSIMG and obtain the
    optical properties. A unit conversion was done from eV to Ry instead
    of to Ha.
    

    modified files:
     Docs/CHANGES Docs/siesta.tex Src/version.F90
     Util/Optical/optical.f version.info


2007-02-21 10:38:40 GMT	Alberto Garcia <albertog@icmab.es>	patch-38

    Summary:
      Fix of zmatrix code to deal with degenerate case
    Revision:
      siesta-devel--reference--2.1--patch-38

    (Colin Glass, Alberto Garcia)
    
    The first three atoms in a zmatrix molecule are special.  The torsion
    angle of the third is specified with respect to a plane formed by the
    first two atoms and a notional atom located along the z axis from the
    second. If the second atom is located also along the z axis from the
    first, the plane is undefined. 
    
    The routine to compute the cartesian coordinates from the Zmatrix
    coordinates deals now with the third atom in a more controlled way,
    and uses the phi angle of the second atom (which should be specified
    even if theta=0) to determine correctly the reference plane for the
    torsion.
    
    Notation: the atoms used as reference for the calculation of the
    position of the current atom are:
    
    i: determines the bond length
    j: together with i, determines the angle theta
    k: together with i and j, determines the reference plane for the torsion.
    
    In case of alignment of i,j, and k, we use the azimuth (phi) of i with
    respect to j to fix the reference plane.
    
    If "i" is the first atom in the Zmatrix, its Zmatrix coordinates are X
    Y Z, and we cannot use its "phi angle" as reference, but in fact this
    angle can be easily computed as phi_ref = phi_ji - pi, where phi_ji is
    the azimuth of the j atom with respect to i.
    
    Routine z2cgen is passed phi_ref after checking the above conditions.
    
    This fix only applies only to the calculation of the coordinates of the third
    atom, but it could presumably be generalized to intercept singular cases
    at any link of the zmatrix, at which i, j, and k could lie along a line.
    
    * New checks to detect attempts to use "fractional coordinates" when
    the unit cell is not yet defined at the time of reading the Zmatrix.
    
    * New test "benzene"
    

    new files:
     Tests/Reference/.arch-ids/benzene.out.id
     Tests/Reference/benzene.out Tests/benzene/.arch-ids/=id
     Tests/benzene/.arch-ids/benzene.fdf.id
     Tests/benzene/.arch-ids/benzene.pseudos.id
     Tests/benzene/.arch-ids/makefile.id Tests/benzene/benzene.fdf
     Tests/benzene/benzene.pseudos Tests/benzene/makefile

    modified files:
     Docs/CHANGES Src/version.F90 Src/zmatrix.F Tests/Makefile
     version.info

    new directories:
     Tests/benzene Tests/benzene/.arch-ids

    new patches:
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--base-0
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--patch-1
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--patch-2
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--patch-3
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--patch-4
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--patch-5
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--patch-6
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--patch-7
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--patch-8
     agarcia@siesta.arch--2006/siesta--zmatrix--0.1--patch-9


2007-02-20 16:23:24 GMT	Alberto Garcia <albertog@icmab.es>	patch-37

    Summary:
      Correction to k-point grid update fix
    Revision:
      siesta-devel--reference--2.1--patch-37

    The previous k-point fix was incorrect, as it changed the interface of
    kgridinit and kgrid, which are used in other parts of the program. A
    cleaner approach uses a module to hold the information about the
    k-point grid for selfconsistency.
    
    The k-point grid used for achieving self-consistency is now
    re-computed inside the geometry loop if:
    
    The calculation is a cell-optimization one (i.e., if MD.VariableCell
    is .true.), or if it is a "siesta-server" run. This is the old default.
    
    Additionally, if the user sets the fdf flag "ChangeKgridInMD" to
    .true., the grid will be recomputed also during MD runs that potentially
    change the unit cell: Parrinello-Rahman, Nose-Parrinello-Rahman, and
    Anneal.
    
    New test: born
    

    new files:
     Src/.arch-ids/find_kgrid.F.id Src/.arch-ids/kpoint_grid.F90.id
     Src/Sys/.arch-ids/intel-checks.make.id
     Src/Sys/intel-checks.make Src/find_kgrid.F Src/kpoint_grid.F90
     Tests/Reference/.arch-ids/born.out.id Tests/Reference/born.out
     Tests/born/.arch-ids/=id Tests/born/.arch-ids/FC.fdf.id
     Tests/born/.arch-ids/born.fdf.id
     Tests/born/.arch-ids/born.pseudos.id
     Tests/born/.arch-ids/makefile.id Tests/born/FC.fdf
     Tests/born/born.fdf Tests/born/born.pseudos
     Tests/born/makefile

    modified files:
     Docs/CHANGES Docs/siesta.ind Docs/siesta.tex Src/Makefile
     Src/kgrid.F Src/kgridinit.F Src/siesta.F Tests/Makefile
     version.info

    new directories:
     Tests/born Tests/born/.arch-ids


2007-02-02 10:14:02 GMT	Alberto Garcia <albertog@icmab.es>	patch-36

    Summary:
      Add graphite_c6_full test for more realistic vdW test
    Revision:
      siesta-devel--reference--2.1--patch-36

    The original graphite test prepared by J. Gale to show an
    example of adding two-body potentials to simulate van der Waals 
    interactions has been added as graphite_c6_full. It is not
    executed by default as it requires significant CPU time.
    
    + Minor cosmetic changes in filter_subs.f and kgridinit.F
    
    

    new files:
     Tests/Pseudos/.arch-ids/C.pbe.psf.id Tests/Pseudos/C.pbe.psf
     Tests/graphite_c6_full/.arch-ids/=id
     Tests/graphite_c6_full/.arch-ids/graphite_c6_full.fdf.id
     Tests/graphite_c6_full/.arch-ids/graphite_c6_full.pseudos.id
     Tests/graphite_c6_full/.arch-ids/makefile.id
     Tests/graphite_c6_full/graphite_c6_full.fdf
     Tests/graphite_c6_full/graphite_c6_full.pseudos
     Tests/graphite_c6_full/makefile

    modified files:
     Docs/CHANGES Src/filter_subs.f Src/kgridinit.F version.info

    new directories:
     Tests/graphite_c6_full Tests/graphite_c6_full/.arch-ids


2007-01-31 16:53:19 GMT	Alberto Garcia <albertog@icmab.es>	patch-35

    Summary:
      Merge filtering package by Eduardo Anglada
    Revision:
      siesta-devel--reference--2.1--patch-35

    Code that implements the ideas in 
    
    Anglada E, Soler JM
    Filtering a distribution simultaneously in real and Fourier space 
    PHYSICAL REVIEW B 73 (11): Art. No. 115122 MAR 2006 
    
    has been merged.
    
    The filtering is selected by fdf directives of the form:
    
    PAO.Filter .true.
    VNA.filter .true.
    PCC.filter .true.
    
    and the default parameters are determined by heuristics based
    on the value of the MeshCutoff.
    
    (A manual entry is being written)
    
    New tests:
    
    Tests/pb_bulk
    Tests/pb_bulk_1000
    Tests/pb_filter_all
    Tests/pb_filter_basis
    Tests/pb_filter_nopcc
    Tests/pb_filter_pcc
    Tests/pb_filter_vna
    Tests/var_cell_filter
    

    new files:
     Src/.arch-ids/filter.f90.id Src/.arch-ids/filter_subs.f.id
     Src/filter.f90 Src/filter_subs.f
     Tests/Pseudos/.arch-ids/Pb.psf.id Tests/Pseudos/Pb.psf
     Tests/Reference/.arch-ids/pb_bulk.out.id
     Tests/Reference/.arch-ids/pb_bulk_1000.out.id
     Tests/Reference/.arch-ids/pb_filter_all.out.id
     Tests/Reference/.arch-ids/pb_filter_basis.out.id
     Tests/Reference/.arch-ids/pb_filter_nopcc.out.id
     Tests/Reference/.arch-ids/pb_filter_pcc.out.id
     Tests/Reference/.arch-ids/pb_filter_vna.out.id
     Tests/Reference/.arch-ids/var_cell_filter.out.id
     Tests/Reference/pb_bulk.out Tests/Reference/pb_bulk_1000.out
     Tests/Reference/pb_filter_all.out
     Tests/Reference/pb_filter_basis.out
     Tests/Reference/pb_filter_nopcc.out
     Tests/Reference/pb_filter_pcc.out
     Tests/Reference/pb_filter_vna.out
     Tests/Reference/var_cell_filter.out
     Tests/pb_bulk/.arch-ids/=id
     Tests/pb_bulk/.arch-ids/makefile.id
     Tests/pb_bulk/.arch-ids/pb_bulk.fdf.id
     Tests/pb_bulk/.arch-ids/pb_bulk.pseudos.id
     Tests/pb_bulk/makefile Tests/pb_bulk/pb_bulk.fdf
     Tests/pb_bulk/pb_bulk.pseudos Tests/pb_bulk_1000/.arch-ids/=id
     Tests/pb_bulk_1000/.arch-ids/makefile.id
     Tests/pb_bulk_1000/.arch-ids/pb_bulk_1000.fdf.id
     Tests/pb_bulk_1000/.arch-ids/pb_bulk_1000.pseudos.id
     Tests/pb_bulk_1000/makefile
     Tests/pb_bulk_1000/pb_bulk_1000.fdf
     Tests/pb_bulk_1000/pb_bulk_1000.pseudos
     Tests/pb_filter_all/.arch-ids/=id
     Tests/pb_filter_all/.arch-ids/makefile.id
     Tests/pb_filter_all/.arch-ids/pb_filter_all.fdf.id
     Tests/pb_filter_all/.arch-ids/pb_filter_all.pseudos.id
     Tests/pb_filter_all/makefile
     Tests/pb_filter_all/pb_filter_all.fdf
     Tests/pb_filter_all/pb_filter_all.pseudos
     Tests/pb_filter_basis/.arch-ids/=id
     Tests/pb_filter_basis/.arch-ids/makefile.id
     Tests/pb_filter_basis/.arch-ids/pb_filter_basis.fdf.id
     Tests/pb_filter_basis/.arch-ids/pb_filter_basis.pseudos.id
     Tests/pb_filter_basis/makefile
     Tests/pb_filter_basis/pb_filter_basis.fdf
     Tests/pb_filter_basis/pb_filter_basis.pseudos
     Tests/pb_filter_nopcc/.arch-ids/=id
     Tests/pb_filter_nopcc/.arch-ids/makefile.id
     Tests/pb_filter_nopcc/.arch-ids/pb_filter_nopcc.fdf.id
     Tests/pb_filter_nopcc/.arch-ids/pb_filter_nopcc.pseudos.id
     Tests/pb_filter_nopcc/makefile
     Tests/pb_filter_nopcc/pb_filter_nopcc.fdf
     Tests/pb_filter_nopcc/pb_filter_nopcc.pseudos
     Tests/pb_filter_pcc/.arch-ids/=id
     Tests/pb_filter_pcc/.arch-ids/makefile.id
     Tests/pb_filter_pcc/.arch-ids/pb_filter_pcc.fdf.id
     Tests/pb_filter_pcc/.arch-ids/pb_filter_pcc.pseudos.id
     Tests/pb_filter_pcc/makefile
     Tests/pb_filter_pcc/pb_filter_pcc.fdf
     Tests/pb_filter_pcc/pb_filter_pcc.pseudos
     Tests/pb_filter_vna/.arch-ids/=id
     Tests/pb_filter_vna/.arch-ids/makefile.id
     Tests/pb_filter_vna/.arch-ids/pb_filter_vna.fdf.id
     Tests/pb_filter_vna/.arch-ids/pb_filter_vna.pseudos.id
     Tests/pb_filter_vna/makefile
     Tests/pb_filter_vna/pb_filter_vna.fdf
     Tests/pb_filter_vna/pb_filter_vna.pseudos
     Tests/var_cell_filter/.arch-ids/=id
     Tests/var_cell_filter/.arch-ids/makefile.id
     Tests/var_cell_filter/.arch-ids/var_cell_filter.fdf.id
     Tests/var_cell_filter/.arch-ids/var_cell_filter.pseudos.id
     Tests/var_cell_filter/makefile
     Tests/var_cell_filter/var_cell_filter.fdf
     Tests/var_cell_filter/var_cell_filter.pseudos

    modified files:
     Docs/CHANGES Src/Makefile Src/atom.f version.info

    new directories:
     Tests/pb_bulk Tests/pb_bulk/.arch-ids Tests/pb_bulk_1000
     Tests/pb_bulk_1000/.arch-ids Tests/pb_filter_all
     Tests/pb_filter_all/.arch-ids Tests/pb_filter_basis
     Tests/pb_filter_basis/.arch-ids Tests/pb_filter_nopcc
     Tests/pb_filter_nopcc/.arch-ids Tests/pb_filter_pcc
     Tests/pb_filter_pcc/.arch-ids Tests/pb_filter_vna
     Tests/pb_filter_vna/.arch-ids Tests/var_cell_filter
     Tests/var_cell_filter/.arch-ids


2007-01-25 17:34:07 GMT	Alberto Garcia <albertog@icmab.es>	patch-34

    Summary:
      k-point sampling update when kgrid_cutoff is specified
    Revision:
      siesta-devel--reference--2.1--patch-34

    The user can specify a kgrid_cutoff or a Monkhorst-Pack grid
    to determine the k-point sampling. If there are unit-cell
    changes during the calculation, the k-point set does not
    change if a MP grid has been specified (the sampling accuracy changes
    implicitly).
    
    On the other hand, the k-point set should change in principle if a
    kgrid_cutoff has been given and the cell volume changes, but due to a
    programming error the k-point grid was fixed after the first
    iteration.
    
    The error affects variable-cell calculations specifying a
    kgrid_cutoff.  "Variable-cell" means that the unit cell changes
    during a calculation, as in cell optimization and the MD flavors
    Parrinello-Rahman, Nose-Parrinello-Rahman, and Annealing runs. 
    
    A user might want to avoid sudden changes in the k-point set
    while performing molecular dynamics runs or cell optimizations,
    notably if the calculations are not very well converged. In that
    case a MP grid, and not a kgrid_cutoff, should be specified.
    
    A related problem that has been fixed in this patch is the 
    possible overriding of the user's MP displacement specification after
    the first iteration.
    
    There is no backwards compatibility after this bugfix. To recover the
    old behavior when a kgrid_cutoff was specified, the user should check
    the old output, extract the information about the MP grid generated
    automatically by the program, and put it in an MP block.
    
    (Regeneration of reference outputs)

    modified files:
     Docs/CHANGES Docs/siesta.ind Docs/siesta.tex Src/kgrid.F
     Src/kgridinit.F Src/siesta.F Tests/Reference/batio3.out
     Tests/Reference/bessel.out Tests/Reference/constant_volume.out
     Tests/Reference/fe.out Tests/Reference/fe_broyden.out
     Tests/Reference/floating.out Tests/Reference/graphite_c6.out
     Tests/Reference/h2o.out Tests/Reference/h2oZ.out
     Tests/Reference/h2o_basis.out Tests/Reference/h2o_dos.out
     Tests/Reference/h2o_findp_bug.out
     Tests/Reference/h2o_op_broyden.out
     Tests/Reference/h2o_orderN.out
     Tests/Reference/h2o_radialgrid.out
     Tests/Reference/h2o_reparam.out Tests/Reference/md_anneal.out
     Tests/Reference/md_nose.out Tests/Reference/md_npr.out
     Tests/Reference/md_pr.out Tests/Reference/md_verlet.out
     Tests/Reference/mgco3.out Tests/Reference/oxyn.out
     Tests/Reference/partial.out Tests/Reference/si2x1h.out
     Tests/Reference/si64.out Tests/Reference/si_bandpoints.out
     Tests/Reference/sih.out Tests/Reference/sih_fire.out
     Tests/Reference/sih_op_broyden.out
     Tests/Reference/var_cell.out Tests/Reference/zmatrix.out
     version.info

2007-01-22 19:50:32 GMT	Alberto Garcia <albertog@icmab.es>	patch-33

    Summary:
      Initialize vol2 correctly in m_check_supercell.f
    Revision:
      siesta-devel--reference--2.1--patch-33


    modified files:
     Src/m_check_supercell.f


2007-01-22 14:30:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-32

Summary: New treatment of fractional atoms in VCA. Bug fix in lmxo

Instead of mixing with a "zero" pseudopotential, pseudopotentials
for a "fractionally occupied" site can be generated by simply
multiplying the potential and charges by the appropriate factor,
using the 'fractional' program, which resides in the top source
directory.

There is no longer any need for the "zero" pseudopotential files.

Bug fix: lmxo was not being set correctly for synthetic atoms.

Test update: 'oxyn' and 'partial' reference outputs have been
regenerated. 'partial' now uses the 'fractional' program.

NOTE: there are some instabilities in the outputs on the intel
compiler+library platform.


2007-01-10 9:24:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-31

(Interim manual entry -- to be replaced by the automatic version later)

Summary: Parallel bug fix and cleanup in writewave.F
Keywords: 

(Julian Gale)

The code in writewave.F has been cleaned up a bit and a fix for a bug
appearing in parallel execution has been fixed.

2007-01-10 9:00:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-30

Summary: Update of CHANGES and siesta.tex for rmax.radial.grid feature


2006-12-18 16:00:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-29

(Interim manual entry -- to be replaced by the automatic version later)

Summary: Point at infinity set closer in atom for reparametrized calculations
Keywords:

If the reference energy of a KB projector is not specified, the
program first computes a solution of Schrodinger's equation which is
zero at r(nrval), i.e., the largest radius, which is typically of the
order of 120 bohr (this is determined by the pseudopotential file).

If the pseudopotential is reparametrized the number of radial points
needed increases substantially. This uncovers a weakness in the
routines in arw.f: they do not rescale the wavefunction as they
integrate the equation, so overflows can occur in some situations
(this has been seen with the pgf90 on opterons and with the NAG
compiler on a Mac).

One solution (error-prone) could be to re-write the arw routines.
Another one is to re-define the point-at-infinity so that overflows do
not occur. It has been found that setting Rmax.Radial.Grid (new fdf
symbol) to 50.0 (implicit bohr units) removes the problem, while
maintaining numerical accuracy up to 10^-4 eV in total energy.  (The
eigenvalues for KB generation (reported as "el" in the output) are of
course higher, and in some cases the corresponding rc is slightly
larger.) This insensitivity is due to the fact that all the relevant
KB projector information is constructed from the shape of the radial
function inside a much smaller box of radius 6 bohrs (harwired in the
program).

PAOs (which need a similar integration to infinity if an energy shift
is used) are not affected at all by the change.

The new fdf symbol Rmax.Radial.Grid does not need to be used if
Reparametrize.Pseudos is set (its default is then set to 50.0).


2006-12-17 22:30:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-28

    (Manual entry)

    Summary:
      Update of CHANGES file and Reference outputs (Siesta-BSC-base-C1)
    Revision:
      siesta-devel--reference--2.1--patch-28

    Final packaging for the Siesta-BSC-base candidate.
    

2006-12-17 18:36:41 GMT	Alberto Garcia <albertog@icmab.es>	patch-27

    Summary:
      Safeguard in floating point comparison in sorting routine
    Revision:
      siesta-devel--reference--2.1--patch-27

    To avoid instabilities leading to compiler-dependent
    behavior, a smearing in the .LT. tests has been introduced
    in routine ordix in module sorting.
    
    The smearing parameter has been set to
    
          double precision, parameter :: delta = 1.0d-12
    
    

    modified files:
     Src/sorting.f Src/version.F90 version.info

    new patches:
     siesta@uam.es--2006/siesta--release--2.0--patch-27


2006-12-17 18:26:01 GMT	Alberto Garcia <albertog@icmab.es>	patch-26

    Summary:
      Allow lifting of even/odd restrictions in radial grid
    Revision:
      siesta-devel--reference--2.1--patch-26

    The old code in arw.f needed to work with an odd number of points in 
    the radial grid. That restriction has been lifted by coding a new
    "Simpson" integration routine (routine integrator in arw.f).
    
    Those sections of atom.f in which the number of points is redefined
    to make it odd (thus shifting the cutoff radii in the process) have
    been wrapped in if tests. If the fdf symbol 'Restricted.Radial.Grid' is
    set to .false., those sections will not be executed. 
    
    Together with the 'Reparametrize.Pseudos' feature, this change will
    allow a tighter mapping between the rc's specified externally (e.g.,
    by a simplex driver) and those actually used by the program.
    
    * New test:
    
        h2o_radialgrid

    new files:
     Tests/h2o_radialgrid/.arch-ids/=id
     Tests/h2o_radialgrid/.arch-ids/h2o_radialgrid.fdf.id
     Tests/h2o_radialgrid/.arch-ids/h2o_radialgrid.pseudos.id
     Tests/h2o_radialgrid/.arch-ids/makefile.id
     Tests/h2o_radialgrid/h2o_radialgrid.fdf
     Tests/h2o_radialgrid/h2o_radialgrid.pseudos
     Tests/h2o_radialgrid/makefile

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/Makefile Src/arw.f
     Src/atom.f Src/basis_specs.f Src/version.F90 Tests/Makefile
     Tests/h2o_basis/h2o_basis.fdf version.info

    new directories:
     Tests/h2o_radialgrid Tests/h2o_radialgrid/.arch-ids


2006-12-17 18:01:18 GMT	Alberto Garcia <albertog@icmab.es>	patch-25

    Summary:
      Allow user-directed switching of 'findp bug'
    Revision:
      siesta-devel--reference--2.1--patch-25

    * In order to make it easier to compare with previous calculations,
    a new symbol, PAO.Keep.Findp.Bug, is now read. If .true., the old
    code in findp is enabled.
    
    * Other fixes: 
    
     - Removal of a spurious io_close call in atom.f 
     - More clear warning when rc(nzeta > 1) /= 0 if a per-shell
       split-norm is specified.
    
    * New test:
      
      h2o_findp_bug
    

    new files:
     Tests/Reference/.arch-ids/h2o_findp_bug.out.id
     Tests/Reference/h2o_findp_bug.out
     Tests/h2o_findp_bug/.arch-ids/=id
     Tests/h2o_findp_bug/.arch-ids/h2o_findp_bug.fdf.id
     Tests/h2o_findp_bug/.arch-ids/h2o_findp_bug.pseudos.id
     Tests/h2o_findp_bug/.arch-ids/makefile.id
     Tests/h2o_findp_bug/h2o_findp_bug.fdf
     Tests/h2o_findp_bug/h2o_findp_bug.pseudos
     Tests/h2o_findp_bug/makefile

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/Sys/macosx-xlf.make
     Src/atom.f Src/basis_specs.f Tests/Makefile

    new directories:
     Tests/h2o_findp_bug Tests/h2o_findp_bug/.arch-ids


2006-12-14 18:34:34 GMT	Alberto Garcia <albertog@icmab.es>	patch-24

    Summary:
      Fixes for latest features.
    Revision:
      siesta-devel--reference--2.1--patch-24

    * In basis_specs.f, the explicit rc's for multiple-zeta orbitals were set
      erroneously to zero. Now the user is warned of a possible conflict with
      the specified split_norm parameter.
    
    * In pseudopotential.f, a call to io_close was missing in the dumping routine.
    
    * Function symbol was called inside I/O statements in pixmol, coxmol,
      and coceri.
    
    * Molecularmechanics.F90 always printed a sentence about two-body potentials,
      even if they were not used. Removed.
    
    * oxyn and partial tests added to Tests/Makefile.
    
    * Tests/partial/script.sh now compiles mixps if it is not built.
    
    * Src/Sys/macosx-xlf.make modified to compile parsing.f without optimization.
    
    * Tests/h2o/h2o.fdf is back to the classic version (removal of
      reparametrization option)
    

    modified files:
     Src/Sys/macosx-xlf.make Src/basis_specs.f Src/basis_types.f
     Src/coceri.f Src/coxmol.f Src/molecularmechanics.F90
     Src/periodic_table.f Src/pixmol.f Src/pseudopotential.f
     Src/version.F90 Tests/Makefile Tests/h2o/h2o.fdf
     Tests/partial/script.sh version.info


2006-12-14 11:13:48 GMT	Alberto Garcia <albertog@icmab.es>	patch-23

    Summary:
      Add grid function evaluator program
    Revision:
      siesta-devel--reference--2.1--patch-23

    
    New program /Util/grid2val : a "stream evaluator" for functions
    defined on the grid.
    

    new files:
     Util/.arch-ids/grid2val.f.id Util/grid2val.f

    modified files:
     Src/version.F90 Util/README version.info

    new patches:
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-24


2006-12-14 10:52:11 GMT	Alberto Garcia <albertog@icmab.es>	patch-22

    Summary:
      New auxiliary files for compilation and execution
    Revision:
      siesta-devel--reference--2.1--patch-22

    Added pdlaprnt.f file from PBLAS to Src/MPI, with an optional Makefile symbol
    to enable its compilation. That routine is missing in some system libraries,
    and it is needed to compile the pblas test.
    
    Modified Confs/matterhorn* to add a warning related to the need to compile
    some files without optimization
    
    Added Confs/macosx-nag-cdf.sh
    
    Tests/Scripts now contains cryst-mpd.sge and simple_parallel.sh for runs
    on a Rocks cluster (batch and single-node-interactive) using mpd.
    
    Added Src/Sys/mare-nostrum.make (experimental)
    
    

    new files:
     Src/Confs/.arch-ids/macosx-nag-cdf.conf.id
     Src/Confs/macosx-nag-cdf.conf Src/MPI/.arch-ids/pdlaprnt.f.id
     Src/MPI/pdlaprnt.f Src/Sys/.arch-ids/mare-nostrum.make.id
     Src/Sys/mare-nostrum.make
     Tests/Scripts/.arch-ids/cryst-mpd.sge.id
     Tests/Scripts/cryst-mpd.sge

    modified files:
     Src/Confs/matterhorn-gm.conf Src/Confs/matterhorn-serial.conf
     Src/MPI/Makefile Tests/Scripts/matterhorn-gm.sge

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-24
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-37


2006-12-13 15:12:04 GMT	Alberto Garcia <albertog@icmab.es>	patch-21

    Summary:
      Packaging of soft-confinement code in a subroutine
    Revision:
      siesta-devel--reference--2.1--patch-21

    The computation of the soft-confinement potential has been moved to
    the routine "build_vsoft" at the end of the atom module.
    
    The naming convention for the relevant files has changed. There is
    now a file per (l,nsm) shell, with a name of the form
    
    AtomLabel.Ll.nsm.confpot
    
    where l is the angular momentum.
    

    modified files:
     Src/atom.f Src/version.F90 version.info


2006-12-13 14:05:57 GMT	Alberto Garcia <albertog@icmab.es>	patch-20

    Summary:
      Update CHANGES. Set version to 2.1.20
    Revision:
      siesta-devel--reference--2.1--patch-20


    modified files:
     Docs/CHANGES Src/version.F90 version.info

2006-12-13 13:55:55 GMT	Alberto Garcia <albertog@icmab.es>	patch-19

    Summary:
      Printout of info on interatomic distances
    Revision:
      siesta-devel--reference--2.1--patch-19

    A new routine "bonds" based on "shaper" has been created to compute
    the interatomic distances. Output is to file "slabel.BONDS" upon first
    reading the structural information, and to file "slabel.BONDS_FINAL"
    after the last geometry iteration. The neighbors are identified by
    atom number and symbol, but the positions reported are those of the
    equivalent atom in the unit cell.
    
    Distances are computed up to a maximum of Max.Bond.Distance (default
    6.0 Bohr).
    
    A new routine "sort" based on indexx from Numerical Recipes has been
    added to file "recipes.f".
    

    new files:
     Src/.arch-ids/bonds.f.id Src/bonds.f

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/Makefile Src/recipes.f
     Src/siesta.F version.info

    new patches:
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-23
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-38


2006-12-13 11:26:57 GMT	Alberto Garcia <albertog@icmab.es>	patch-18

    Summary:
      Simple molecular mechanics and metadynamics
    Revision:
      siesta-devel--reference--2.1--patch-18

    (From Julian Gale's jgale@siesta.arch--2005/siesta-general--jgale--2.1)
    
    * molecularmechanics.f90 - new routine added and called from siesta.F to
     compute a C6/C8/C10 dispersion term using either the undamped Cn/r**n
     or the Tang-Toennes damped forms. 
    
    * siesta.F has been modified and a routine metaforce.F added to
    introduce a Gaussian force between a pair of atoms. This is useful for
    a metadynamics approach.
    
    New test: graphite_c6  (stripped-down version)

    new files:
     Src/.arch-ids/metaforce.F.id
     Src/.arch-ids/molecularmechanics.F90.id Src/metaforce.F
     Src/molecularmechanics.F90
     Tests/Reference/.arch-ids/graphite_c6.out.id
     Tests/Reference/graphite_c6.out
     Tests/graphite_c6/.arch-ids/=id
     Tests/graphite_c6/.arch-ids/graphite_c6.fdf.id
     Tests/graphite_c6/.arch-ids/graphite_c6.pseudos.id
     Tests/graphite_c6/.arch-ids/makefile.id
     Tests/graphite_c6/graphite_c6.fdf
     Tests/graphite_c6/graphite_c6.pseudos
     Tests/graphite_c6/makefile

    modified files:
     Src/Makefile Src/basis_specs.f Src/redata.F Src/siesta.F
     Tests/Makefile

    new directories:
     Tests/graphite_c6 Tests/graphite_c6/.arch-ids

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-49
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-51


2006-12-13 10:49:32 GMT	Alberto Garcia <albertog@icmab.es>	patch-17

    Summary:
      Scripting utilities
    Revision:
      siesta-devel--reference--2.1--patch-17

    Util/Scripting contains some proof-of-concept and prototype
    python modules and scripts. 
    
    Most of the functionality is based on the ASE package of the CAMPOS
    project. See http://oldwww.fysik.dtu.dk/CAMPOS
    
    The necessary modules are in the Siesta directory. The package can
    also be installed in the appropriate Python directory using the
    setup.py file provided. The scripts in the top directory could
    then be transported anywhere.
    
    Note that the location of the siesta executable must be specified
    in the scripts at this point.
    
    Directory scripts/ contains some general-purpose utilities.

    new files:
     Util/Scripting/.arch-ids/=id
     Util/Scripting/.arch-ids/README.id
     Util/Scripting/.arch-ids/amoeba.py.id
     Util/Scripting/.arch-ids/ase.py.id
     Util/Scripting/.arch-ids/ase_newton.py.id
     Util/Scripting/.arch-ids/ase_relax.py.id
     Util/Scripting/.arch-ids/ase_verlet.py.id
     Util/Scripting/.arch-ids/bond.py.id
     Util/Scripting/.arch-ids/client.py.id
     Util/Scripting/.arch-ids/h2o.py.id
     Util/Scripting/.arch-ids/setup.py.id
     Util/Scripting/.arch-ids/simplex_optim.py.id
     Util/Scripting/README Util/Scripting/Siesta/.arch-ids/=id
     Util/Scripting/Siesta/.arch-ids/Interface.py.id
     Util/Scripting/Siesta/.arch-ids/__init__.py.id
     Util/Scripting/Siesta/.arch-ids/calculator.py.id
     Util/Scripting/Siesta/.arch-ids/read_struct.py.id
     Util/Scripting/Siesta/.arch-ids/server.py.id
     Util/Scripting/Siesta/.arch-ids/siesta.py.id
     Util/Scripting/Siesta/Interface.py
     Util/Scripting/Siesta/__init__.py
     Util/Scripting/Siesta/calculator.py
     Util/Scripting/Siesta/read_struct.py
     Util/Scripting/Siesta/server.py
     Util/Scripting/Siesta/siesta.py Util/Scripting/amoeba.py
     Util/Scripting/ase.py Util/Scripting/ase_newton.py
     Util/Scripting/ase_relax.py Util/Scripting/ase_verlet.py
     Util/Scripting/bond.py Util/Scripting/client.py
     Util/Scripting/h2o.py Util/Scripting/scripts/.arch-ids/=id
     Util/Scripting/scripts/.arch-ids/plot_struct_jmol.py.id
     Util/Scripting/scripts/.arch-ids/plot_struct_rasmol.py.id
     Util/Scripting/scripts/.arch-ids/pr_after_nose.py.id
     Util/Scripting/scripts/.arch-ids/struct_to_bplot.py.id
     Util/Scripting/scripts/.arch-ids/struct_to_cif.py.id
     Util/Scripting/scripts/.arch-ids/struct_to_pdb.py.id
     Util/Scripting/scripts/.arch-ids/transf.py.id
     Util/Scripting/scripts/plot_struct_jmol.py
     Util/Scripting/scripts/plot_struct_rasmol.py
     Util/Scripting/scripts/pr_after_nose.py
     Util/Scripting/scripts/struct_to_bplot.py
     Util/Scripting/scripts/struct_to_cif.py
     Util/Scripting/scripts/struct_to_pdb.py
     Util/Scripting/scripts/transf.py Util/Scripting/setup.py
     Util/Scripting/simplex_optim.py

    modified files:
     Docs/siesta.ind Docs/siesta.tex

    new directories:
     Util/Scripting Util/Scripting/.arch-ids Util/Scripting/Siesta
     Util/Scripting/Siesta/.arch-ids Util/Scripting/scripts
     Util/Scripting/scripts/.arch-ids

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-5
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-6
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-12
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-15
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-19
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-25


2006-12-12 18:20:47 GMT	Alberto Garcia <albertog@icmab.es>	patch-16

    Summary:
      Change handling of default charge for basis generation
    Revision:
      siesta-devel--reference--2.1--patch-16

    Formerly, if the user did not specify the charge to be used
    for the generation of the basis, it was assumed to be zero. Thus
    there was no way to distinguish a "zero value" from a "non specified
    value". This caused problems in some cases if the pseudopotential
    was generated with an ionic configuration. A "zero charge" would not
    then override the ionic charge setting.

    modified files:
     Src/atom.f Src/basis_types.f

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-46
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-47
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-48


2006-12-12 18:18:34 GMT	Alberto Garcia <albertog@icmab.es>	patch-15

    Summary:
      More flexible basis-generation options
    Revision:
      siesta-devel--reference--2.1--patch-15

    * Allow more symbols as PAO.BasisSize specification:
    
      SZ
      SZP, SZSP, SZ1P, SZP1          
      DZ
      DZP, DZSP, DZP1, DZ1P              
      DZDP, DZP2, DZ2P              
      TZ
      TZP, TZSP, TZP1, TZ1P
      TZDP, TZP2, TZ2P
      TZTP, TZP3, TZ3P
    
      np or pn means n polarization shells. 
      sp, dp, tp: singly, doubly, triply polarized
    
      (Julian Gale, Alberto Garcia)
    
    * Per-shell split-valence specification
    
    Using the idiom "S number" anywhere on the first line of a shell entry
    in PAO.Basis, one can select the split norm parameter for the multiple
    zeta generation on that shell. If no indication is given, the program will
    use the global default split_norm (0.15) or one introduced through the
    appropriate fdf symbol. Optimizing a basis set using S numbers is more
    robust than using extra rc's.
    
    Example:
    
    %block PAO.Basis
    Ta         3  3.28
     n=6   0   2  S 0.25  E  44.5  1.98
       5.872      0.0
       1.000      1.000   
     n=6   1  1 E  89.0  0.6
       7.5896
       1.000      
     n=5   2   2 S 0.37  E  31.1  1.717
       5.633       0.0
       1.000       1.0
    %endblock PAO.Basis
    
    (Alberto Garcia)
    
    * A new global fdf symbol PAO.SplitNormH controls the split-norm
      parameter for hydrogen atoms (defined as those with atomic number 1).
      There is no default: it falls back to the value of PAO.SplitNorm
      (Julian Gale)
    
    * Implemented default soft-confinement settings through fdf symbols
      (Julian Gale)
      It is triggered by fdf_boolean('PAO.SoftDefault',.false.)
      Then, the following symbols are searched for, with the 
      indicated defaults:
    
          softRc = fdf_double('PAO.SoftInnerRadius',0.9d0)
          softPt = fdf_double('PAO.SoftPotential',40.0d0)
    
    * Negative values of rinn in the E section of PAO.Basis mean that
      rinn will be the given fraction of the PAO cutoff.
    
    * Simplified the handling of defaults for soft confinement and
      split_norm values by setting them in basis_specs.f
    
    * Documented new features in siesta.tex
      (added also the options for reparametrization of pseudopotentials)
    
    * Assorted cosmetic fixes for module accesibility
    

    new files:
     Tests/Reference/.arch-ids/h2o_basis.out.id
     Tests/Reference/h2o_basis.out Tests/h2o_basis/.arch-ids/=id
     Tests/h2o_basis/.arch-ids/h2o_basis.fdf.id
     Tests/h2o_basis/.arch-ids/h2o_basis.pseudos.id
     Tests/h2o_basis/.arch-ids/makefile.id
     Tests/h2o_basis/h2o_basis.fdf
     Tests/h2o_basis/h2o_basis.pseudos Tests/h2o_basis/makefile

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/atom.f Src/basis_specs.f
     Src/basis_types.f Src/gen-basis.F Src/initatom.f
     Src/parallel.f Src/parsing.f Src/periodic_table.f
     Src/precision.F Src/wxml/m_wxml_error.f90 Src/xcmod.F
     Tests/Makefile Tests/h2o/h2o.fdf version.info

    new directories:
     Tests/h2o_basis Tests/h2o_basis/.arch-ids

    new patches:
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-22
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-42
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-45


2006-12-12 17:01:53 GMT	Alberto Garcia <albertog@icmab.es>	patch-14

    Summary:
      Update CHANGES
    Revision:
      siesta-devel--reference--2.1--patch-14


    modified files:
     Docs/CHANGES version.info


2006-12-12 16:55:30 GMT	Alberto Garcia <albertog@icmab.es>	patch-13

    Summary:
      Reparametrization of pseudopotentials
    Revision:
      siesta-devel--reference--2.1--patch-13

    * By changing the a and b parameters of the logarithmic grid, a new one
    with a more homogeneous overall grid-point separation can be used for
    the generation of basis sets and projectors. For example, by using
    a=5x10-4 and b=10, the grid point separations at r=0 and 10 bohrs are 0.005
    and 0.01 bohrs, respectively. More points are needed to reach r's of the order
    of a hundred bohrs, but the extra computational effort is negligible.
    
    This behavior is triggered by the boolean fdf symbol Reparametrize.Pseudos.
    
    Further tuning can be achieved by the use of two other fdf symbols. The
    processing syntax and defaults are:
    
             new_a = fdf_double("NewAParameter",5.0e-4_dp)
             new_b = fdf_double("NewBParameter",10.0_dp)
    
    * New test: h2o_reparam
    
    * Bug fix:
    
    In routine findp in atom.f, the radius was wrongly computed as
    
    r = b*(exp(a*(i-1)) + 1)
    
    instead of
    
    r = b*(exp(a*(i-1)) - 1)
    
    The bug was dramatically exposed when using a re-parametrization in which
    b is no longer small (10.0 vs 1.0e-4).
    
    

    new files:
     Tests/Reference/.arch-ids/h2o_reparam.out.id
     Tests/Reference/h2o_reparam.out
     Tests/h2o_reparam/.arch-ids/=id
     Tests/h2o_reparam/.arch-ids/h2o_reparam.fdf.id
     Tests/h2o_reparam/.arch-ids/h2o_reparam.pseudos.id
     Tests/h2o_reparam/.arch-ids/makefile.id
     Tests/h2o_reparam/h2o_reparam.fdf
     Tests/h2o_reparam/h2o_reparam.pseudos
     Tests/h2o_reparam/makefile

    modified files:
     Src/Makefile Src/atmparams.f Src/atom.f Src/basis_specs.f
     Src/pseudopotential.f Tests/Makefile

    new directories:
     Tests/h2o_reparam Tests/h2o_reparam/.arch-ids

    new patches:
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-20
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-21
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-41


2006-12-12 14:26:27 GMT	Alberto Garcia <albertog@icmab.es>	patch-12

    Summary:
      Changes to support synthetic atoms (VCA)
    Revision:
      siesta-devel--reference--2.1--patch-12

    Support for dealing with "synthetic atoms" has been added. Their basic
    feature is that they cannot be assigned a true integer atomic number:
    
     - One could mix the pseudopotentials of two elements to generate
       an appropriate hybrid to be used in a "virtual crystal approximation".
       (See description of mixps program below)
       (Note that the ATOM program also allows the treatment of "atoms" with
        a fractional Z. This is an alternative choice for mixtures involving
        atoms which are contiguous in the periodic table.
        See Pseudo/atom/Tutorial/ON)
    
     - By mixing a true atom's pseudopotential with a "null" pseudopotential,
       a "partial occupation" can be simulated.
    
    Comparatively minor changes were needed to have Siesta process correctly
    synthetic species:
    
    * Atomic numbers greater than 200 signal a synthetic atom. The symbol
      returned (in module periodic_table) is SX, where X is an integer from
      1 to 9. 
      In order to generate an appropriate "neutral atom" configuration, some
      extra information is needed about the "ground state" of the synthetic
      atom.  It is taken from a SyntheticAtoms block (read in basis_specs.f).
      For example:
    
             %block Chemical_Species_label
                1   201 ON-0.50000
             %endblock Chemical_Species_label
             %block SyntheticAtoms
             1               # Species index
             2 2 3 4         # n numbers for valence states  with l=0,1,2,3
             2.0 3.5 0.0 0.0 # occupations of valence states with l=0,1,2,3
             %endblock SyntheticAtoms
    
    * Changes in data structures and helper functions to support synthetic
      species:
    
      New logical component "synthetic" in basis_types.f
      In atm_types, zval is now a real number.
      In atmfuncs, izvalfis has been renamed zvalfis, and now returns a real.
      (Same in old_atmfuncs, where the izvaltb array has been renamed zvaltb
       and now holds real numbers).
      Atm_transfer uses zvalfis.
      In basis_io, zval is now printed as a real number. Filename length enlarged
      to support long labels.
    
      Calculation of total number of "pseudoprotons" in atomlist. Printed
      in siesta, together with the total number of electrons.
      
      Electrostatic.f uses real instead of integer nuclear charges.
      Optical.F and ksv.F use now a real "total number of electrons"
    
    * Pseudopotential module changes:
    
      - New routine read_ps_conf to crack the information about the configuration
        used to generate the pseudopotential (and used in atom to set the vps
        charge). Synthetic species do not have the appropriate text block in the
        .psf file, so the ability to process a new field ("gen_zval") has been
        added to read_pseudo_formatted (this extra field is optional and appears
        only in "synthetic" .psf files).
    
      - New routine write_pseudo_formatted added.
    
    * Atom.f changes:
    
      - The code now in pseudopotential::read_ps_conf has been removed.
      - The species label and not the atomic number is now used for
        identification of the species.
      - Routine prinput now outputs a SyntheticAtoms block if needed.
    
    * The output format in Outcoor.f has been changed to allow for long
      species labels. The label now comes last, and the atom number next
      to last. This could break non-supported user scripts.
    
    
    A new program (mixps) has been written to mix pseudopotentials. It
    takes as command-line arguments the names (actually labels) of the two
    atoms involved (A and B), and the mixing parameter. Then it combines
    the information in A.psf and B.psf and creates a new file AB-0.xxxxx.psf,
    where 0.xxxxx is the mixing parameter (to five decimal places) specified.
    It outputs also a SyntheticAtoms block suitable for use by Siesta, and
    a MIXLABEL file which contains the final label used (useful for scripts).
    
    This program is located in the top directory to ease compilation.
    
    The new directory Util/VCA contains some documentation and the
    Programs zerops.f and zerops_rel.f to generate "null
    pseudopotentials".  The resulting pseudos can also be found in
    Tests/Pseudos.
    
    
    New tests:
    
    oxyn:    Molecule made up of ON hybrids
    partial: Molecule made up of O-Zero hybrids (a very artificial 
                                                 partial occupation)
    
    The 'partial' test introduces a new idiom for tests: the use of
    a general script to perform more complicated operations. The handling
    of paths is still very primitive.
    
    NOTES:
    
    - The basis set is generated by Siesta using the "mixed"
    pseudopotential. There is no provision at this time to "mix" basis
    sets, or in general to build a basis set using information about the
    basis sets for the atoms involved in the mix. On the other hand, basis
    sets for synthetic atoms can be optimized as usual.
    
    - PseudoCore charges are mixed if they exist in the individual atoms'
    pseudopotential files. This might lead to extra non-linearities in the
    solid-state calculation.
    
    - Once Siesta reads the new .psf file for the hybrid, it generates a
    local-pseudopotential charge and a local pseudopotential from it. Note
    that this means that the local pseudopotential is not a true mix of
    the local pseudopotentials of the individual atoms.
    
    - Once Siesta reads the "neutral-atom configuration" from the
    SyntheticAtoms block, it generates the appropriate neutral-atom potential
    using the local pseudopotential and the atomic charge density.

    new files:
     Pseudo/atom/Tutorial/ON/.arch-ids/=id
     Pseudo/atom/Tutorial/ON/.arch-ids/ON.tm2.inp.id
     Pseudo/atom/Tutorial/ON/.arch-ids/README.id
     Pseudo/atom/Tutorial/ON/ON.tm2.inp
     Pseudo/atom/Tutorial/ON/README
     Src/.arch-ids/flib_spline.f90.id Src/.arch-ids/mixps.f.id
     Src/flib_spline.f90 Src/mixps.f Tests/.arch-ids/script.mk.id
     Tests/Pseudos/.arch-ids/ON-0.34560.psf.id
     Tests/Pseudos/.arch-ids/Zero.nrl.psf.id
     Tests/Pseudos/.arch-ids/Zero.rel.psf.id
     Tests/Pseudos/ON-0.34560.psf Tests/Pseudos/Zero.nrl.psf
     Tests/Pseudos/Zero.rel.psf
     Tests/Reference/.arch-ids/oxyn.out.id
     Tests/Reference/.arch-ids/partial.out.id
     Tests/Reference/oxyn.out Tests/Reference/partial.out
     Tests/oxyn/.arch-ids/=id Tests/oxyn/.arch-ids/makefile.id
     Tests/oxyn/.arch-ids/oxyn.fdf.id
     Tests/oxyn/.arch-ids/oxyn.pseudos.id Tests/oxyn/makefile
     Tests/oxyn/oxyn.fdf Tests/oxyn/oxyn.pseudos
     Tests/partial/.arch-ids/=id
     Tests/partial/.arch-ids/makefile.id
     Tests/partial/.arch-ids/script.sh.id Tests/partial/makefile
     Tests/partial/script.sh Tests/script.mk Util/VCA/.arch-ids/=id
     Util/VCA/.arch-ids/README.id Util/VCA/.arch-ids/zerops.f.id
     Util/VCA/.arch-ids/zerops_rel.f.id Util/VCA/README
     Util/VCA/zerops.f Util/VCA/zerops_rel.f

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/Makefile
     Src/atm_transfer.f Src/atm_types.f Src/atmfuncs.f Src/atom.f
     Src/atomlist.f Src/basis_io.F Src/basis_specs.f
     Src/basis_types.f Src/chemical.f Src/electrostatic.f Src/ksv.f
     Src/old_atmfuncs.f Src/optical.F Src/outcoor.f
     Src/periodic_table.f Src/pseudopotential.f Src/siesta.F
     Src/sys.F Util/README version.info

    new directories:
     Pseudo/atom/Tutorial/ON Pseudo/atom/Tutorial/ON/.arch-ids
     Tests/oxyn Tests/oxyn/.arch-ids Tests/partial
     Tests/partial/.arch-ids Util/VCA Util/VCA/.arch-ids

    new patches:
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--base-0
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-1
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-2
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-3
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-4
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-5
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-6
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-7
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-8
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-9
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-11
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-12
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-13
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-14
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-16
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-17
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-18
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-19
     agarcia@siesta.arch--2006/siesta--alchemy--0.1--patch-25
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-39
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-40


    Summary:
      Update CHANGES
    Revision:
      siesta-devel--reference--2.1--patch-11

2006-12-12 09:56:36 GMT	Alberto Garcia <albertog@icmab.es>	patch-10

    Summary:
      Appropriate supercell for elongated unit cells
    Revision:
      siesta-devel--reference--2.1--patch-10

        The algorithm used to construct the auxiliary supercell for the
        calculation of matrix elements with k-point sampling simply multiplies
        each lattice vector by the appropriate factor (diagonal
        supercell). This causes a problem when the unit cell is elongated (see
        for example the mgco3 test in Tests/). In these cases, some lattice
        points are actually closer than the shortest cell vector would
        indicate, with the result that the supercell is too small and some
        atoms "see" multiple images. This appears in the program as a warning
        of the type:
        
           xijorb: WARNING: orbital pair      1   341 is multiply connected
        
        The resulting numerical errors are typically very small.
    
        The fix involves an iterative increase of the supercell factors until
        the minimum-distance criterion is satisfied. (See new file
        m_check_supercell.f)
        
        The old behavior can be recovered by setting the fdf variable
        NaiveAuxiliaryCell to .true. .

    new files:
     Src/.arch-ids/m_check_supercell.f.id Src/m_check_supercell.f

    modified files:
     Docs/siesta.tex Src/Makefile Src/siesta.F version.info

    new patches:
     siesta@uam.es--2006/siesta--release--2.0--patch-18
     siesta@uam.es--2006/siesta--release--2.0--patch-22


2006-12-11 16:29:55 GMT	Alberto Garcia <albertog@icmab.es>	patch-9

    Summary:
      Fixes for Siesta-as-Server (from 2.0.1)
    Revision:
      siesta-devel--reference--2.1--patch-9

    A number of fixes were needed for the proper functioning of the
    Siesta-as-Server package (also known as "SiestaAsSubroutine")
    (in addition to the purely cosmetic of openning the right CML context,
    already committed):
    
    - iopipes.F90 had to be properly parallelized.
    
    - fsiesta.f90 has been moved from Util/... to the main source directory
      in order to be compiled with the proper flushing routine.
      A couple of issues having to do with optional arguments have also been fixed.
    
    - The makefile in Util/SiestaSubroutine/FmixMD/Src has been modified to
      deal with the new place for fsiesta.f90.
    
    - Two new tests have been added. One of them tests the driving of a parallel
      Siesta calculation. A new script "test.sh" automates these tests.
    
    In the main code, it has been noted that the "Forces" option (i.e.,
    the computation of energy, forces, and stresses from geometry read
    through pipes from a client program) should be assimilated to a
    "variable cell" calculation, in the sense that the unit cell might be
    different from call to call. Appropriate checks have been included to
    regenerate k-point and supercell information if needed.
    
    In the same vein, if the client inputs a null unit cell, Siesta should
    generate an automatic one, at any step. A new routine "automatic_cell.f"
    has been written and is now called at the beginning of the initialization
    section, and after every reading of geometry from pipes. 
    
    A null unit cell will be input whenever siesta_forces is not passed 
    the optional "cell" parameter. This might happen during MD or relaxation
    for a molecule. The actual unit cell used will then vary from step to
    step. To avoid this, the cell should be passed explicitly in siesta_forces,
    at every step (as it is done in the 'driver?' exampl).
    
    Other changes:
    
    - New Sys/intel9-cmkl8-mpi.make file for parallel compilation in Rocks cluster.
    
    - A new script in Tests/Scripts automates the handling of mpd daemons
    in an interactive single-nod run (when allowed).
    
    Changes over 2.0.1 fix:
    
    * fsiesta.f90 renamed to fsiesta.F90 to enable NAG-specific module handling.
    * Makefile: rerun of "make dep".

    new files:
     Src/.arch-ids/automatic_cell.f.id
     Src/Sys/.arch-ids/intel9-cmkl8-mpi.make.id
     Src/Sys/intel9-cmkl8-mpi.make Src/automatic_cell.f
     Tests/Scripts/.arch-ids/simple_parallel.sh.id
     Tests/Scripts/simple_parallel.sh
     Util/SiestaSubroutine/FmixMD/.arch-ids/parallel.sh.id
     Util/SiestaSubroutine/FmixMD/.arch-ids/test.sh.id
     Util/SiestaSubroutine/FmixMD/Src/.arch-ids/para.f90.id
     Util/SiestaSubroutine/FmixMD/Src/.arch-ids/simple.f90.id
     Util/SiestaSubroutine/FmixMD/Src/para.f90
     Util/SiestaSubroutine/FmixMD/Src/simple.f90
     Util/SiestaSubroutine/FmixMD/parallel.sh
     Util/SiestaSubroutine/FmixMD/test.sh

    removed files:
     Util/SiestaSubroutine/FmixMD/Src/.arch-ids/fsiesta.f90.id
     Util/SiestaSubroutine/FmixMD/Src/fsiesta.f90

    modified files:
     Src/Makefile Src/fsiesta.F90 Src/iopipes.F90 Src/siesta.F
     Util/SiestaSubroutine/FmixMD/README
     Util/SiestaSubroutine/FmixMD/Src/Makefile
     Util/SiestaSubroutine/FmixMD/Src/fmixmd.f90
     Util/SiestaSubroutine/README

    renamed files:
     Util/SiestaSubroutine/.arch-ids/fsiesta.f90.id
       ==> Src/.arch-ids/fsiesta.F90.id
     Util/SiestaSubroutine/FmixMD/Src/.arch-ids/makefile.id
       ==> Util/SiestaSubroutine/FmixMD/Src/.arch-ids/Makefile.id
     Util/SiestaSubroutine/FmixMD/Src/makefile
       ==> Util/SiestaSubroutine/FmixMD/Src/Makefile
     Util/SiestaSubroutine/fsiesta.f90
       ==> Src/fsiesta.F90

    new patches:
     siesta@uam.es--2006/siesta--release--2.0--patch-23


2006-12-11 15:58:25 GMT	Alberto Garcia <albertog@icmab.es>	patch-8

    Summary:
      Fixes from release-2.0 branch
    Revision:
      siesta-devel--reference--2.1--patch-8

    A new set of fixes carried over from the 2.0 release branch.
    See individual patch logs or the 2.0.1 release notes for
    more information.
    
    Patches applied:
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-11
       Fix syntax error in preprocessor block in mpi.F
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-12
       Add COMP_LIBS to gen-basis link stage
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-13
       Export all the environment in sge_run.sh
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-14
       Fix bug in iohs.F (write statement)
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-16
       Fix format issue in DxFormat.f90
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-17
       Fixes in Makefile: denchar deps and netcdf interface
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-19
       Parallel handling of spin check for KSV
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-20
       Enhancement of iohs to deal with k-points
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-21
       Bugfix in iohs for parallel execution
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-25
       Set target stress to zero in constant-volume variable-cell runs
    

    modified files:
     Src/MPI/mpi.F Src/Makefile Src/arch.make.in Src/cgvc.F
     Src/configure Src/configure.ac Src/iohs.F Src/siesta.F
     Tests/Scripts/sge_run.sh Tests/fe/fe.fdf Tests/h2o/h2o.fdf
     Util/Contrib/FElMellouhi/DxFormat.f90

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-13
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-16
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-29
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-36
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-43
     jgale@siesta.arch--2005/siesta-general--jgale--2.1--patch-25
     siesta@uam.es--2006/siesta--release--2.0--patch-11
     siesta@uam.es--2006/siesta--release--2.0--patch-12
     siesta@uam.es--2006/siesta--release--2.0--patch-13
     siesta@uam.es--2006/siesta--release--2.0--patch-14
     siesta@uam.es--2006/siesta--release--2.0--patch-16
     siesta@uam.es--2006/siesta--release--2.0--patch-17
     siesta@uam.es--2006/siesta--release--2.0--patch-19
     siesta@uam.es--2006/siesta--release--2.0--patch-20
     siesta@uam.es--2006/siesta--release--2.0--patch-21
     siesta@uam.es--2006/siesta--release--2.0--patch-25


2006-12-11 15:32:32 GMT	Alberto Garcia <albertog@icmab.es>	patch-7

    Summary:
      Enhancements to the vibra package
    Revision:
      siesta-devel--reference--2.1--patch-7

    (Julian Gale)
    
    An option has been introduced to compute infra-red intensities. In
    order to do this the Born effective charges must have been computed
    along with the force constants and the .BC file must be present in the
    current directory. The intensities are estimated according to formula
    (6) in the paper by Fernandez-Torre et al in J. Phys.  Chem. A, 108,
    10535-10541 (2004).
    
    Explicit copy of fdf.mod to deal with faulty arch.make's.
    
    Removal of chkdim call from klines.
    
    AG: Fixes for portability in Makefile and vibrator.f
    
    Patches applied:
    
     * jgale@siesta.arch--2005/siesta-general--jgale--2.1--patch-1
       Call to chkdim removed from klines
    
     * jgale@siesta.arch--2005/siesta-general--jgale--2.1--patch-19
       Copying of fdf module to Vibra directory for build automated
    
     * jgale@siesta.arch--2005/siesta-general--jgale--2.1--patch-20
       Calculation of the IR intensities added to the Vibra package
    

    modified files:
     Util/Vibra/Docs/CHANGES Util/Vibra/Docs/vibra.tex
     Util/Vibra/Vibra/Makefile Util/Vibra/Vibra/klines.f
     Util/Vibra/Vibra/vibrator.f

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--2.1--patch-50
     jgale@siesta.arch--2005/siesta-general--jgale--2.1--patch-1
     jgale@siesta.arch--2005/siesta-general--jgale--2.1--patch-19
     jgale@siesta.arch--2005/siesta-general--jgale--2.1--patch-20


2006-12-11 15:30:16 GMT	Alberto Garcia <albertog@icmab.es>	patch-6

    Summary:
      New "fire-quench" damped-dynamics optimization algorithm
    Revision:
      siesta-devel--reference--2.1--patch-6

    (Emilio Artacho)
    
    A damped dynamics (named FIRE) by Bitzek et al, PRL 97, 170201 (2006).
    Introduced in subroutine verlet2 (velocity Verlet), in dynamics.f,
    just after the power quench option. Convergence is controlled by
    MaxForceTol. No variable cell option included at this point. The
    parameters controlling the algorithm have been taken from the original
    paper and harwired into the routine.
    Controlled by MD.FireQuench (logical), partly tunable by changing
    the initial time step MD.LengthTimeStep, and the block AtomicMass.
    
    (New test sih_fire )
    
    

    new files:
     Tests/Reference/.arch-ids/sih_fire.out.id
     Tests/Reference/sih_fire.out Tests/sih_fire/.arch-ids/=id
     Tests/sih_fire/.arch-ids/makefile.id
     Tests/sih_fire/.arch-ids/sih_fire.fdf.id
     Tests/sih_fire/.arch-ids/sih_fire.pseudos.id
     Tests/sih_fire/makefile Tests/sih_fire/sih_fire.fdf
     Tests/sih_fire/sih_fire.pseudos

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/Makefile Src/dynamics.f
     Src/redata.F Src/siesta.F Tests/Makefile

    new directories:
     Tests/sih_fire Tests/sih_fire/.arch-ids

    new patches:
     eartacho@siesta.arch--2005/siesta-devel--eartacho--2.1--patch-4


2006-12-11 14:19:35 GMT	Alberto Garcia <albertog@icmab.es>	patch-5

    Summary:
      New block BandPoints accepts arbitrary k-points
    Revision:
      siesta-devel--reference--2.1--patch-5

    (Emilio Artacho)
    
    Instead of introducing lines of k-points for band calculations,
    BandPoints allows for arbitrary k-points. Useful for other purposes
    such as obtaining densities of states etc.
    
    New test: Tests/si_bandpoints 
    Reference values in Tests/Reference/si_bandpoints.bands
    
    new files:
     Tests/Reference/.arch-ids/si_bandpoints.bands.id
     Tests/Reference/si_bandpoints.bands
     Tests/si_bandpoints/.arch-ids/=id
     Tests/si_bandpoints/.arch-ids/makefile.id
     Tests/si_bandpoints/.arch-ids/si_bandpoints.fdf.id
     Tests/si_bandpoints/.arch-ids/si_bandpoints.pseudos.id
     Tests/si_bandpoints/makefile
     Tests/si_bandpoints/si_bandpoints.fdf
     Tests/si_bandpoints/si_bandpoints.pseudos

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/bands.F Tests/Makefile

    new directories:
     Tests/si_bandpoints Tests/si_bandpoints/.arch-ids

    new patches:
     eartacho@siesta.arch--2005/siesta-devel--eartacho--2.1--patch-1
     eartacho@siesta.arch--2005/siesta-devel--eartacho--2.1--patch-2
     eartacho@siesta.arch--2005/siesta-devel--eartacho--2.1--patch-3


2006-10-02 09:09:00 GMT	Alberto Garcia <albertog@icmab.es>	patch-4

    Summary:
      Update CHANGES
    Revision:
      siesta-devel--reference--2.1--patch-4


    modified files:
     Docs/CHANGES
2006-10-02 09:08:05 GMT Alberto Garcia <albertog@icmab.es>      patch-3

    Summary:
      Implementation of the Wu-Cohen functional
    Revision:
      siesta-devel--reference--2.1--patch-3

    A new routine "wcxc" has been added to xc.f (courtesy of Marivi
    Fdez. Serra and Julian Gale, with contributions from Alberto Garcia).
    
    The new xc code (for both Atom and Siesta) is "wc".

    modified files:
     Docs/CHANGES Docs/siesta.ind Docs/siesta.tex
     Pseudo/atom/ChangeLog Pseudo/atom/Docs/atom.tex
     Pseudo/atom/makefile Pseudo/atom/velect.f
     Pseudo/atom/version.h Pseudo/atom/xc.f Src/atom.f Src/xc.f
     Src/xcmod.F

2006-05-24 18:56:49 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-2

    Summary:
      New logic for k-point grid generation from kgrid_cutoff
    Revision:
      siesta-devel--reference--2.1--patch-2

    The previous algorithm created a diagonal supercell so that the length
    of the shortest vector was greater than twice the kgrid_cutoff.  But
    there might be an equivalent supercell (same volume, generating the
    same lattice points), but with shorter vectors (more "spherical").  Half of
    the shortest resulting lattice vector is the effective cutoff.  This
    effective cutoff was just reported, but the more spherical
    cell was not used anymore.  The kgrid was generated as the reciprocal cell of
    the chosen diagonal supercell.  In some cases, the program ended
    up using a much shorter cutoff than requested.
    
    The fix, as suggested by Jose Soler, is to start the procedure with
    the most "spherical" unit cell, thus generating an optimal supercell
    in the spirit of the Moreno-Soler paper.
    
    A number of other changes have been made to the code:
    
    1. Minvec has been turned into a module, and the routine now reports
    also the transformation matrix.  (Change to gchkmx needed, including
    an auxiliary array to avoid aliasing of arguments).
    
    2. Even though the program can find the optimal k-grid displacements,
    those given by the user in a Monkhorst-Pack block are not overriden
    (in case there are good reasons for the choice, such as the need to
    have the gamma point in the set). The program will nevertheless print
    a line telling the user about the more suitable displacement(s).
    
    3. The program now reports the effective cutoff even for Gamma-point-only
    calculations.
    
    4. The multiplication factors of the effective supercell are made
    explicitly positive (changing kdsc and mr after the call to idiag). This
    might fix a long-standing issue with non-diagonal MP supercells.
    
    Version info updated for development branch.
    
    Note: There is *no provision for backward compatibility*, although it is
    still possible to re-use the kgrid supercells reported by previous versions
    to reproduce the old behavior for a given kgrid_cutoff.
    
    To Do: Tidy up the kgridinit/kgrid code redundancy.
    
    The manual has been updated to reflect the new algorithm outline, and
    to stress the format of the MP supercell input.
    
    Also, the manual now mentions the Divide and Conquer issue, and 
    the version number on the cover has been changed to 2.0.X.
    
    

    modified files:
     Docs/siesta.tex Src/Makefile Src/chkgmx.f Src/kgrid.F
     Src/kgridinit.F Src/minvec.f Src/siesta.F version.info


2006-05-24 14:00:50 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-1

    Summary:
      Merge patches from release-2.0 branch
    Revision:
      siesta-devel--reference--2.1--patch-1

    Assorted bugfixes backported to the development branch:
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-1
       Remove external declaration of 'timer' in spher_harm and radfft.
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-2
       Bug fix in dlaed6 in dc_lapack.f
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-3
       Use dc_lapack.f together with any system libraries
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-4
       Fix import of dp in optical.F
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-5
       Fix reading of nspin variable in pdosxml
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-6
       Add revPBE to xc_check in atom.f -- tidy 
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-7
       Fix version.F90 triad.
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-8
       Siesta-server steps treated correctly for CML output
    
     * siesta@uam.es--2006/siesta--release--2.0--patch-9
       Fix file prefix identification in m_denchar_init
    

    new files:
     Src/Confs/.arch-ids/intel9mkl8-safe.conf.id
     Src/Confs/intel9mkl8-safe.conf

    modified files:
     Pseudo/atom/Tutorial/ae.sh Pseudo/atom/Tutorial/pg.sh
     Pseudo/atom/Tutorial/pt.sh Src/Libs/dc_lapack.f Src/atom.f
     Src/configure Src/configure.ac Src/m_denchar_init.F
     Src/optical.F Src/radfft.f Src/siesta.F Src/spher_harm.f
     Util/pdosxml/m_pdos.f90 version.info


____________________________________________________________________
** CHANGES ALONG siesta@uam.es--2005/siesta--pre-release--2.0
--------------------------------------------------------------------

2006-02-24 16:06:00 GMT Alberto Garcia <wdpgaara@lg.ehu.es>	patch-30

	2.0 release point
	Will move to new branch siesta--release--2.0

2006-02-24 15:39:13 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-29

    Summary:
      Add pathscale .make files
    Revision:
      siesta--pre-release--2.0--patch-29


    new files:
     Src/Sys/.arch-ids/pathscale-mpi.make.id
     Src/Sys/.arch-ids/pathscale.make.id Src/Sys/pathscale-mpi.make
     Src/Sys/pathscale.make

    modified files:
     Src/Sys/cscs-cray-mpi.make


2006-02-24 14:55:21 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-28

    Summary:
      Remove version.o dependency from Makefile
    Revision:
      siesta--pre-release--2.0--patch-28


    modified files:
     Src/Makefile


2006-02-24 12:06:18 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-27

    Summary:
      Update Reference outputs + cosmetic changes in version.F90 
    Revision:
      siesta--pre-release--2.0--patch-27

    * New outputs in Tests/Reference
    * New SGE script in Tests/Scripts
    * Cosmetic change to version line in version.F90
    

    new files:
     Tests/Reference/.arch-ids/si2x1h.out.id
     Tests/Reference/si2x1h.out
     Tests/Scripts/.arch-ids/sge_run.sh.id Tests/Scripts/sge_run.sh

    modified files:
     Src/version.F90 Tests/Makefile Tests/Reference/batio3.out
     Tests/Reference/bessel.out Tests/Reference/constant_volume.out
     Tests/Reference/fe.out Tests/Reference/fe_broyden.out
     Tests/Reference/floating.out Tests/Reference/h2o.out
     Tests/Reference/h2oZ.out Tests/Reference/h2o_dos.out
     Tests/Reference/h2o_op_broyden.out
     Tests/Reference/h2o_orderN.out Tests/Reference/md_anneal.out
     Tests/Reference/md_nose.out Tests/Reference/md_npr.out
     Tests/Reference/md_pr.out Tests/Reference/md_verlet.out
     Tests/Reference/mgco3.out Tests/Reference/si64.out
     Tests/Reference/sih.out Tests/Reference/sih_op_broyden.out
     Tests/Reference/var_cell.out Tests/Reference/zmatrix.out


2006-02-24 11:48:08 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-26

    Summary:
      Update top-file README and SIESTA_LICENCE
    Revision:
      siesta--pre-release--2.0--patch-26


    new files:
     .arch-ids/SIESTA_LICENCE.id SIESTA_LICENCE

    modified files:
     README


2006-02-24 11:33:10 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-25

    Summary:
      Include information about pdf manual files
    Revision:
      siesta--pre-release--2.0--patch-25


    new files:
     Docs/.arch-ids/README.id Docs/README
     Util/Denchar/Docs/.arch-ids/README.id Util/Denchar/Docs/README

    modified files:
     Docs/release.notes_2.0 Pseudo/atom/Docs/README README
     Util/Denchar/Docs/denchar.tex


2006-02-24 10:56:42 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-24

    Summary:
      Remove ancillary files from top of distribution
    Revision:
      siesta--pre-release--2.0--patch-24

    Old release-related and administrative files have been removed from
    the code distribution, as well as the Specs directory.
    
    

    removed files:
     .arch-ids/PACKAGING.id .arch-ids/Siesta-licence.pdf.id
     .arch-ids/Siesta-licence.txt.id .arch-ids/build_parallel.sh.id
     .arch-ids/build_serial.sh.id .arch-ids/copyright.id
     .arch-ids/cover.collab.id .arch-ids/cover.indeps.id
     .arch-ids/cover.parallel.id .arch-ids/dempi.py.id
     .arch-ids/put_copyright.sh.id .arch-ids/user.list.id PACKAGING
     Siesta-licence.pdf Siesta-licence.txt Specs/.arch-ids/=id
     Specs/.arch-ids/Broyden.specs.id Specs/Broyden.specs
     build_parallel.sh build_serial.sh copyright cover.collab
     cover.indeps cover.parallel dempi.py put_copyright.sh
     user.list

    removed directories:
     Specs Specs/.arch-ids


2006-02-24 10:52:25 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-23

    Summary:
      Update MD restart info and output options in manual
    Revision:
      siesta--pre-release--2.0--patch-23


    modified files:
     Docs/siesta.ind Docs/siesta.tex


2006-02-23 22:24:47 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-22

    Summary:
      Deactivated pre-commit hook to update version.info. Set to 2.0-release
    Revision:
      siesta--pre-release--2.0--patch-22

    The atomatic updating of version.info has been deactivated 
    (in file {arch}/=hook) in the pre-release branch so that the
    version string can be fixed to "siesta-2.0-release".
    

    modified files:
     version.info {arch}/=hook


2006-02-23 22:21:50 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-21

    Summary:
      Declare variable in md_out.F90
    Revision:
      siesta--pre-release--2.0--patch-21


    modified files:
     Src/md_out.F90


2006-02-23 19:09:10 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-20

    Summary:
      Use slabel-prefixed restart files in dynamics.f
    Revision:
      siesta--pre-release--2.0--patch-20


    modified files:
     Src/dynamics.f


2006-02-23 15:08:40 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-19

    Summary:
      Close MD netCDF file at each step. Wrap netcdf code completely
    Revision:
      siesta--pre-release--2.0--patch-19

    * Surround all the MD netcdf code with preprocessor directives.
    * Close MD netcdf file at each step to avoid leaving it in an
      undefined state.
    

    modified files:
     Src/md_out.F90 Src/siesta.F


2006-02-23 11:59:15 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-18

    Summary:
      Remove -u flag from g95-cdf.conf
    Revision:
      siesta--pre-release--2.0--patch-18


    modified files:
     Src/Confs/g95-cdf.conf


2006-02-23 11:50:54 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-17

    Summary:
      Update affiliations in Siesta-licence.txt
    Revision:
      siesta--pre-release--2.0--patch-17


    modified files:
     Siesta-licence.txt


2006-02-23 11:40:55 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-16

    Summary:
      Update dependencies in Makefile
    Revision:
      siesta--pre-release--2.0--patch-16


    modified files:
     Src/Makefile


2006-02-23 11:27:25 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-15

    Summary:
      Correct typos
    Revision:
      siesta--pre-release--2.0--patch-15


    modified files:
     Src/atom.f Src/m_denchar_geom.f Src/m_denchar_init.F
     Src/m_denchar_io.F Src/outcoor.f


2006-02-23 10:58:05 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-14

    Summary:
      Enable experimental netCDF output for MD + md.py script in Util/MD
    Revision:
      siesta--pre-release--2.0--patch-14

    * Simple netCDF output enabled in siesta.F (netCDF needs to be compiled in).
      Produces a slabel.MD.nc file.
    * A new experimental python script for processing of the new netCDF format MD 
      file has been added to Util/MD.
    * Add option to write MD history to md_anneal test.
    
    * Vienese output file now called slabel.MD_CAR.
    
    
    

    new files:
     Src/Confs/.arch-ids/g95-cdf.conf.id Src/Confs/g95-cdf.conf
     Util/MD/.arch-ids/md.py.id Util/MD/md.py

    modified files:
     Src/md_out.F90 Src/siesta.F Tests/md_anneal/md_anneal.fdf


2006-02-23 10:29:37 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-13

    Summary:
      Removed Outs directory from Tests
    Revision:
      siesta--pre-release--2.0--patch-13

    The old tests outputs will move to a web-page, but will not be part of the distribution.
    

    removed files:
     Tests/Outs/.arch-ids/=id Tests/Outs/.arch-ids/README.id
     Tests/Outs/.arch-ids/batio3.out.id
     Tests/Outs/.arch-ids/constant_volume.out.id
     Tests/Outs/.arch-ids/fe.out.id
     Tests/Outs/.arch-ids/fe_broyden.out.id
     Tests/Outs/.arch-ids/h2o.out.id
     Tests/Outs/.arch-ids/h2oZ.out.id
     Tests/Outs/.arch-ids/h2o_dos.out.id
     Tests/Outs/.arch-ids/h2o_orderN.out.id
     Tests/Outs/.arch-ids/mgco3.out.id
     Tests/Outs/.arch-ids/si.out.id
     Tests/Outs/.arch-ids/si64.out.id
     Tests/Outs/.arch-ids/sih.out.id
     Tests/Outs/.arch-ids/var_cell.out.id Tests/Outs/README
     Tests/Outs/batio3.out Tests/Outs/constant_volume.out
     Tests/Outs/fe.out Tests/Outs/fe_broyden.out Tests/Outs/h2o.out
     Tests/Outs/h2oZ.out Tests/Outs/h2o_dos.out
     Tests/Outs/h2o_orderN.out Tests/Outs/mgco3.out
     Tests/Outs/si.out Tests/Outs/si64.out Tests/Outs/sih.out
     Tests/Outs/var_cell.out

    removed directories:
     Tests/Outs Tests/Outs/.arch-ids


2006-02-23 10:25:10 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-12

    Summary:
      XML output fixes
    Revision:
      siesta--pre-release--2.0--patch-12

    * Units attribute in XML output now specified with siestaUnits prefix.
    * Namespace and stylesheet declarations in siesta_cmlsubs.F90
    * Bug fixes and extensions in wxml/flib_cml.f90 and wxml/flib_wstml.f90
    

    modified files:
     Src/efield.F Src/ioeig.f Src/meshsubs.F Src/ordern.F
     Src/redata.F Src/siesta.F Src/siesta_cmlsubs.F90
     Src/wxml/flib_wcml.f90 Src/wxml/flib_wstml.f90

    new patches:
     twhite@siesta.arch--2005/siesta-devel--release--1.5--patch-4
     twhite@siesta.arch--2005/siesta-devel--xmltidy--1.5--patch-3
     twhite@siesta.arch--2005/siesta-devel--xmltidy--1.5--patch-4


2006-02-23 08:46:59 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-11

    Summary:
      Upgrade to latest Starlink fortran.m4 - m4 copyright merge
    Revision:
      siesta--pre-release--2.0--patch-11

    * Upgrade fortran.m4 to latest version which properly
    supports case-insensitive filesystems.
    
    (Undocumented in previous patch: copyright stamping of m4 files)
    (Configure.ac has now Version 2.0 instead of 1.4)
    

    modified files:
     Src/aclocal.m4 Src/configure Src/m4/fortran.m4

    new patches:
     twhite@siesta.arch--2005/siesta-devel--release--1.5--patch-3


2006-02-23 08:42:23 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-10

    Summary:
      Mention DivAndConq problem in manual
    Revision:
      siesta--pre-release--2.0--patch-10

    Patches applied:
    
     * twhite@siesta.arch--2005/siesta-devel--release--1.5--patch-1
       Documentation update
    
     * twhite@siesta.arch--2005/siesta-devel--release--1.5--patch-2
       m4 copyright notices
    

    modified files:
     Docs/siesta.tex Src/aclocal.m4 Src/configure.ac
     Src/m4/ACX_MPI.m4 Src/m4/TW_CHECK_BLACS.m4
     Src/m4/TW_CHECK_FC_90.m4 Src/m4/TW_CHECK_FC_95.m4
     Src/m4/TW_CHECK_FC_FPP.m4 Src/m4/TW_CHECK_FC_FPP_90.m4
     Src/m4/TW_CHECK_FC_TR15580.m4 Src/m4/TW_CHECK_FC_TR15581.m4
     Src/m4/TW_CHECK_SCALAPACK.m4 Src/m4/TW_FC_CHECK_ABORT.m4
     Src/m4/TW_FC_CHECK_DCFUNS.m4 Src/m4/TW_FC_CHECK_FLUSH.m4
     Src/m4/TW_FC_ID.m4 Src/m4/TW_FC_ID_FLAGS.m4
     Src/m4/TW_FC_KINDS.m4 Src/m4/TW_FIND_FC_BLAS.m4
     Src/m4/TW_FIND_LAPACK.m4 Src/m4/TW_PATH_NETCDF.m4
     Src/m4/TW_TRY_DC_LAPACK.m4 Src/m4/ac_config_aux_dirs.m4

    new patches:
     twhite@siesta.arch--2005/siesta-devel--release--1.5--patch-1
     twhite@siesta.arch--2005/siesta-devel--release--1.5--patch-2


2006-02-22 10:19:05 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-9

    Summary:
      Removed Out directories from Examples
    Revision:
      siesta--pre-release--2.0--patch-9


    removed files:
     Examples/Fe/Out/.arch-ids/=id
     Examples/Fe/Out/.arch-ids/Fe.out.id Examples/Fe/Out/Fe.out
     Examples/H2O/Out/.arch-ids/=id
     Examples/H2O/Out/.arch-ids/h2o.out.id Examples/H2O/Out/h2o.out
     Examples/MgO/Out/.arch-ids/=id
     Examples/MgO/Out/.arch-ids/MgO.out.id Examples/MgO/Out/MgO.out
     Examples/SiH/Out/.arch-ids/=id
     Examples/SiH/Out/.arch-ids/sih.ANI.id
     Examples/SiH/Out/.arch-ids/sih.out.id Examples/SiH/Out/sih.ANI
     Examples/SiH/Out/sih.out

    modified files:
     Examples/README

    removed directories:
     Examples/Fe/Out Examples/Fe/Out/.arch-ids Examples/H2O/Out
     Examples/H2O/Out/.arch-ids Examples/MgO/Out
     Examples/MgO/Out/.arch-ids Examples/SiH/Out
     Examples/SiH/Out/.arch-ids


2006-02-16 13:53:40 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-8

    Summary:
      Update configure
    Revision:
      siesta--pre-release--2.0--patch-8


    modified files:
     Src/configure


2006-02-16 13:53:17 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-7

    Summary:
      Update version number and add copyright to configure.ac
    Revision:
      siesta--pre-release--2.0--patch-7


    modified files:
     Src/configure Src/configure.ac


2006-02-16 13:49:09 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-6

    Summary:
      Divide and Conquer default was wrong in manual
    Revision:
      siesta--pre-release--2.0--patch-6


    modified files:
     Docs/siesta.tex


2006-02-15 15:32:54 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-5

    Summary:
      Clarify Pulay line in redata output
    Revision:
      siesta--pre-release--2.0--patch-5

    (D. Grimwood) The text output next to the value of "maxsav" was ambiguous.
    

    modified files:
     Src/redata.F


2006-02-14 09:14:02 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-4

    Summary:
      Small cosmetic changes
    Revision:
      siesta--pre-release--2.0--patch-4

    Patches applied:
    
     * eartacho@siesta.arch--2005/siesta--my-changes--0.3--patch-1
       Cosmetics output
    

    modified files:
     Src/atomlist.f Src/siesta.F

    new patches:
     eartacho@siesta.arch--2005/siesta--my-changes--0.3--patch-1


2006-02-13 17:09:08 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-3

    Summary:
      Update to CHANGES file
    Revision:
      siesta--pre-release--2.0--patch-3


    modified files:
     Docs/CHANGES

2006-02-13 17:02:08 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-2

    Summary:
      Added a Drude term for optical properties of metals
    Revision:
      siesta--pre-release--2.0--patch-2

    Up to now only the contribution from inter-band transitions was
    taken into account for the calculation of the dielectric function.
    This is enough for insulators or semiconductors. However, for 
    metals it is necessary to include a term associated with intra-band
    transitions. Here we  assume that it has the form of the Drude 
    dielectric function 
    
    epsilon_intraband(w)= 1 -wp^2/w*(w+i*gamma),
    
    where wp^2 is calculated by SIESTA, while gamma (the inverse of 
    the relaxation time) is considered an empirical parameter with 
    which we can play during the analysis of the data.
    
    (Updated also Util/Optical)

    modified files:
     Src/optical.F Src/transition_rate.F Util/Optical/README
     Util/Optical/input.f Util/Optical/optical.f
     Util/Optical/si.EPSIMG

    new patches:
     dsanchez@siesta.arch--2005/siesta--optical--0.2--patch-1


2006-02-13 16:59:36 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-1

    Summary:
      Cosmetic changes for switch to 2.0
    Revision:
      siesta--pre-release--2.0--patch-1

    * version triad in version.F90 set to 2.0.0
    * release_notes_1.5 moved to release_notes_2.0
    * Top-level README updated
    * Docs/siesta.tex updated.

    modified files:
     Docs/release.notes_2.0 Docs/siesta.tex README Src/version.F90
     version.info

    renamed files:
     Docs/.arch-ids/release.notes_1.5.id
       ==> Docs/.arch-ids/release.notes_2.0.id
     Docs/release.notes_1.5
       ==> Docs/release.notes_2.0

2006-02-13 16:06:52 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	base-0

    Summary:
      tag of siesta@uam.es--2005/siesta--copyright-stamp--1.5--patch-3
    Revision:
      siesta--pre-release--2.0--base-0

    (automatically generated log message)

--------------------------------------------------------------------
** A Special branch was used for copyright stamping, leading up to

      siesta@uam.es--2005/siesta--copyright-stamp--1.5--patch-3

____________________________________________________________________
** CHANGES ALONG siesta@uam.es--2005/siesta-devel--reference--1.5
--------------------------------------------------------------------

2006-02-13 15:00:00 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-37

    Summary:
      Update to CHANGES file
    Revision:
      siesta-devel--reference--1.5--patch-37

2006-02-13 14:43:00 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-36

    Summary:
      More documentation and fixes for Examples, Tutorials, and Util
    Revision:
      siesta-devel--reference--1.5--patch-36

    * Expanded and created README files for Examples, Tutorials, and Util
    * Cleaned up Denchar (removed Tests directory from distribution) 
      and Vibra (new compilation scheme, using the top-level arch.make)
    * Fixed end-of-file handling in sies2arc.
    
    

    new files:
     Tests/.arch-ids/README.id Tests/README
     Tutorials/.arch-ids/README.id Tutorials/README
     Util/Vibra/Vibra/.arch-ids/io.f.id Util/Vibra/Vibra/io.f

    removed files:
     Util/Basis/.arch-ids/=id Util/Basis/.arch-ids/gen-basis.sh.id
     Util/Basis/.arch-ids/kbs.gplot.id
     Util/Basis/.arch-ids/kbs.gps.id
     Util/Basis/.arch-ids/orbs.gplot.id
     Util/Basis/.arch-ids/orbs.gps.id
     Util/Basis/.arch-ids/setup_plot.sh.id
     Util/Basis/.arch-ids/subkb.gplot.id
     Util/Basis/.arch-ids/suborb.gplot.id
     Util/Basis/.arch-ids/vdens.gplot.id
     Util/Basis/.arch-ids/vdens.gps.id Util/Basis/gen-basis.sh
     Util/Basis/kbs.gplot Util/Basis/kbs.gps Util/Basis/orbs.gplot
     Util/Basis/orbs.gps Util/Basis/setup_plot.sh
     Util/Basis/subkb.gplot Util/Basis/suborb.gplot
     Util/Basis/vdens.gplot Util/Basis/vdens.gps
     Util/Denchar/Src/.arch-ids/=id
     Util/Denchar/Src/MPI/.arch-ids/=id
     Util/Denchar/Src/NetCDF/.arch-ids/=id
     Util/Denchar/Src/fdf/.arch-ids/=id
     Util/Denchar/Tests/.arch-ids/=id
     Util/Denchar/Tests/Si/.arch-ids/=id
     Util/Denchar/Tests/Si/2D/.arch-ids/=id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.DEL.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.SCF.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.WF1.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.WF2.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.WF3.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.WF4.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.WF5.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.WF6.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.WF7.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.CON.WF8.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.fdf.id
     Util/Denchar/Tests/Si/2D/.arch-ids/Si.psf.id
     Util/Denchar/Tests/Si/2D/.arch-ids/contour.gplot.id
     Util/Denchar/Tests/Si/2D/Si.CON.DEL
     Util/Denchar/Tests/Si/2D/Si.CON.SCF
     Util/Denchar/Tests/Si/2D/Si.CON.WF1
     Util/Denchar/Tests/Si/2D/Si.CON.WF2
     Util/Denchar/Tests/Si/2D/Si.CON.WF3
     Util/Denchar/Tests/Si/2D/Si.CON.WF4
     Util/Denchar/Tests/Si/2D/Si.CON.WF5
     Util/Denchar/Tests/Si/2D/Si.CON.WF6
     Util/Denchar/Tests/Si/2D/Si.CON.WF7
     Util/Denchar/Tests/Si/2D/Si.CON.WF8
     Util/Denchar/Tests/Si/2D/Si.fdf
     Util/Denchar/Tests/Si/2D/Si.psf
     Util/Denchar/Tests/Si/2D/contour.gplot
     Util/Denchar/Tests/Si/3D/.arch-ids/=id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.DRHO.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.RHO.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.WF1.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.WF2.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.WF3.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.WF4.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.WF5.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.WF6.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.WF7.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.WF8.cube.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.fdf.id
     Util/Denchar/Tests/Si/3D/.arch-ids/Si.psf.id
     Util/Denchar/Tests/Si/3D/Si.DRHO.cube
     Util/Denchar/Tests/Si/3D/Si.RHO.cube
     Util/Denchar/Tests/Si/3D/Si.WF1.cube
     Util/Denchar/Tests/Si/3D/Si.WF2.cube
     Util/Denchar/Tests/Si/3D/Si.WF3.cube
     Util/Denchar/Tests/Si/3D/Si.WF4.cube
     Util/Denchar/Tests/Si/3D/Si.WF5.cube
     Util/Denchar/Tests/Si/3D/Si.WF6.cube
     Util/Denchar/Tests/Si/3D/Si.WF7.cube
     Util/Denchar/Tests/Si/3D/Si.WF8.cube
     Util/Denchar/Tests/Si/3D/Si.fdf
     Util/Denchar/Tests/Si/3D/Si.psf
     Util/Denchar/Tests/SiH3/.arch-ids/=id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/=id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/H.psf.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/Si.psf.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.DEL.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.DOWN.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.MAG.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.UP.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF1.DOWN.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF1.UP.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF2.DOWN.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF2.UP.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF3.DOWN.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF3.UP.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF4.DOWN.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF4.UP.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF5.DOWN.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF5.UP.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF6.DOWN.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.CON.WF6.UP.id
     Util/Denchar/Tests/SiH3/2D/.arch-ids/SiH3.fdf.id
     Util/Denchar/Tests/SiH3/2D/H.psf
     Util/Denchar/Tests/SiH3/2D/Si.psf
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.DEL
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.DOWN
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.MAG
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.UP
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF1.DOWN
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF1.UP
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF2.DOWN
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF2.UP
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF3.DOWN
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF3.UP
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF4.DOWN
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF4.UP
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF5.DOWN
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF5.UP
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF6.DOWN
     Util/Denchar/Tests/SiH3/2D/SiH3.CON.WF6.UP
     Util/Denchar/Tests/SiH3/2D/SiH3.fdf
     Util/Denchar/Tests/SiH3/3D/.arch-ids/=id
     Util/Denchar/Tests/SiH3/3D/.arch-ids/H.psf.id
     Util/Denchar/Tests/SiH3/3D/.arch-ids/Si.psf.id
     Util/Denchar/Tests/SiH3/3D/.arch-ids/SiH3.DRHO.cube.id
     Util/Denchar/Tests/SiH3/3D/.arch-ids/SiH3.RHO.DOWN.cube.id
     Util/Denchar/Tests/SiH3/3D/.arch-ids/SiH3.RHO.UP.cube.id
     Util/Denchar/Tests/SiH3/3D/.arch-ids/SiH3.WF5.DOWN.cube.id
     Util/Denchar/Tests/SiH3/3D/.arch-ids/SiH3.WF5.UP.cube.id
     Util/Denchar/Tests/SiH3/3D/.arch-ids/SiH3.fdf.id
     Util/Denchar/Tests/SiH3/3D/H.psf
     Util/Denchar/Tests/SiH3/3D/Si.psf
     Util/Denchar/Tests/SiH3/3D/SiH3.DRHO.cube
     Util/Denchar/Tests/SiH3/3D/SiH3.RHO.DOWN.cube
     Util/Denchar/Tests/SiH3/3D/SiH3.RHO.UP.cube
     Util/Denchar/Tests/SiH3/3D/SiH3.WF5.DOWN.cube
     Util/Denchar/Tests/SiH3/3D/SiH3.WF5.UP.cube
     Util/Denchar/Tests/SiH3/3D/SiH3.fdf
     Util/Vibra/Vibra/Sys/.arch-ids/=id
     Util/Vibra/Vibra/Sys/.arch-ids/cray.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/freebsd.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/hp.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/ibm.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/ibmessl.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/linux.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/osf.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/osfdxml.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/sgi.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/t3e.make.id
     Util/Vibra/Vibra/Sys/.arch-ids/unknown.make.id
     Util/Vibra/Vibra/Sys/cray.make
     Util/Vibra/Vibra/Sys/freebsd.make Util/Vibra/Vibra/Sys/hp.make
     Util/Vibra/Vibra/Sys/ibm.make
     Util/Vibra/Vibra/Sys/ibmessl.make
     Util/Vibra/Vibra/Sys/linux.make Util/Vibra/Vibra/Sys/osf.make
     Util/Vibra/Vibra/Sys/osfdxml.make
     Util/Vibra/Vibra/Sys/sgi.make Util/Vibra/Vibra/Sys/t3e.make
     Util/Vibra/Vibra/Sys/unknown.make
     Util/Vibra/Vibra/fdf/.arch-ids/=id
     Util/Vibra/Vibra/fdf/.arch-ids/Coords.dat.id
     Util/Vibra/Vibra/fdf/.arch-ids/Otherfile.id
     Util/Vibra/Vibra/fdf/.arch-ids/README.id
     Util/Vibra/Vibra/fdf/.arch-ids/TODO.id
     Util/Vibra/Vibra/fdf/.arch-ids/coords.fdf.id
     Util/Vibra/Vibra/fdf/.arch-ids/fdf.Standard.id
     Util/Vibra/Vibra/fdf/.arch-ids/fdf.f.id
     Util/Vibra/Vibra/fdf/.arch-ids/fdf.f90.id
     Util/Vibra/Vibra/fdf/.arch-ids/fdf.h.id
     Util/Vibra/Vibra/fdf/.arch-ids/fdfdefs.h.id
     Util/Vibra/Vibra/fdf/.arch-ids/io.f.id
     Util/Vibra/Vibra/fdf/.arch-ids/io_sample.f.id
     Util/Vibra/Vibra/fdf/.arch-ids/makefile.id
     Util/Vibra/Vibra/fdf/.arch-ids/sample.f.id
     Util/Vibra/Vibra/fdf/.arch-ids/sample.f90.id
     Util/Vibra/Vibra/fdf/.arch-ids/sample.fdf.id
     Util/Vibra/Vibra/fdf/Coords.dat Util/Vibra/Vibra/fdf/Otherfile
     Util/Vibra/Vibra/fdf/README Util/Vibra/Vibra/fdf/TODO
     Util/Vibra/Vibra/fdf/coords.fdf
     Util/Vibra/Vibra/fdf/fdf.Standard Util/Vibra/Vibra/fdf/fdf.f
     Util/Vibra/Vibra/fdf/fdf.f90 Util/Vibra/Vibra/fdf/fdf.h
     Util/Vibra/Vibra/fdf/fdfdefs.h Util/Vibra/Vibra/fdf/io.f
     Util/Vibra/Vibra/fdf/io_sample.f Util/Vibra/Vibra/fdf/makefile
     Util/Vibra/Vibra/fdf/sample.f Util/Vibra/Vibra/fdf/sample.f90
     Util/Vibra/Vibra/fdf/sample.fdf

    modified files:
     Docs/siesta.ind Docs/siesta.tex Examples/README README
     Tests/Makefile Util/Denchar/Docs/denchar.tex
     Util/PyAtom/README.scripts Util/README Util/Vibra/Docs/CHANGES
     Util/Vibra/Docs/vibra.tex Util/Vibra/README
     Util/Vibra/Vibra/Makefile Util/Vibra/Vibra/fcbuild.f
     Util/Vibra/Vibra/klines.f Util/Vibra/Vibra/outbands.f
     Util/Vibra/Vibra/parse.f Util/Vibra/Vibra/recoor.f
     Util/Vibra/Vibra/vibrator.f Util/sies2arc/sies2arc.f

    renamed files:
     Util/Denchar/Src/.arch-ids/README.id
       ==> Util/Denchar/.arch-ids/README-Source.id
     Util/Denchar/Src/README
       ==> Util/Denchar/README-Source

    removed directories:
     Util/Basis Util/Basis/.arch-ids Util/Denchar/Src
     Util/Denchar/Src/.arch-ids Util/Denchar/Src/MPI
     Util/Denchar/Src/MPI/.arch-ids Util/Denchar/Src/NetCDF
     Util/Denchar/Src/NetCDF/.arch-ids Util/Denchar/Src/fdf
     Util/Denchar/Src/fdf/.arch-ids Util/Denchar/Tests
     Util/Denchar/Tests/.arch-ids Util/Denchar/Tests/Si
     Util/Denchar/Tests/Si/.arch-ids Util/Denchar/Tests/Si/2D
     Util/Denchar/Tests/Si/2D/.arch-ids Util/Denchar/Tests/Si/3D
     Util/Denchar/Tests/Si/3D/.arch-ids Util/Denchar/Tests/SiH3
     Util/Denchar/Tests/SiH3/.arch-ids Util/Denchar/Tests/SiH3/2D
     Util/Denchar/Tests/SiH3/2D/.arch-ids
     Util/Denchar/Tests/SiH3/3D
     Util/Denchar/Tests/SiH3/3D/.arch-ids Util/Vibra/Vibra/Sys
     Util/Vibra/Vibra/Sys/.arch-ids Util/Vibra/Vibra/fdf
     Util/Vibra/Vibra/fdf/.arch-ids

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-50
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-51


2006-02-12 20:04:44 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-35

    Summary:
      Re-organization of Tutorials and Tests
    Revision:
      siesta-devel--reference--1.5--patch-35

       Updated script in Tutorials/Bases so that it works out of the box
       Removed Tutorials/Intro 
       Moved Tests from Src to top directory
       Removed mgo test and added si2x1h test (formerly in Tutorials/Intro)
    

    new files:
     Tests/si2x1h/.arch-ids/=id Tests/si2x1h/.arch-ids/makefile.id
     Tests/si2x1h/.arch-ids/si2x1h.fdf.id
     Tests/si2x1h/.arch-ids/si2x1h.pseudos.id Tests/si2x1h/makefile
     Tests/si2x1h/si2x1h.fdf Tests/si2x1h/si2x1h.pseudos

    removed files:
     Src/Tests/mgo/.arch-ids/=id Src/Tests/mgo/.arch-ids/Kgrid.id
     Src/Tests/mgo/.arch-ids/makefile.id
     Src/Tests/mgo/.arch-ids/mgo.STRUCT_IN.id
     Src/Tests/mgo/.arch-ids/mgo.fdf.id
     Src/Tests/mgo/.arch-ids/mgo.pseudos.id
     Src/Tests/mgo/.arch-ids/mydefaults.fdf.id Src/Tests/mgo/Kgrid
     Src/Tests/mgo/makefile Src/Tests/mgo/mgo.STRUCT_IN
     Src/Tests/mgo/mgo.fdf Src/Tests/mgo/mgo.pseudos
     Src/Tests/mgo/mydefaults.fdf Tutorials/Intro/.arch-ids/=id
     Tutorials/Intro/Fe/.arch-ids/=id
     Tutorials/Intro/Fe/.arch-ids/Fe.fdf.id
     Tutorials/Intro/Fe/.arch-ids/Fe.psf.id
     Tutorials/Intro/Fe/.arch-ids/README.id
     Tutorials/Intro/Fe/.arch-ids/bands.sh.id
     Tutorials/Intro/Fe/.arch-ids/dos.gplot.id
     Tutorials/Intro/Fe/Fe.fdf Tutorials/Intro/Fe/Fe.psf
     Tutorials/Intro/Fe/README Tutorials/Intro/Fe/bands.sh
     Tutorials/Intro/Fe/dos.gplot Tutorials/Intro/MgO/.arch-ids/=id
     Tutorials/Intro/MgO/.arch-ids/Mg.psf.id
     Tutorials/Intro/MgO/.arch-ids/MgO.fdf.id
     Tutorials/Intro/MgO/.arch-ids/O.psf.id
     Tutorials/Intro/MgO/.arch-ids/README.id
     Tutorials/Intro/MgO/.arch-ids/cont.gplot.id
     Tutorials/Intro/MgO/.arch-ids/plot.sh.id
     Tutorials/Intro/MgO/.arch-ids/raw.in.id
     Tutorials/Intro/MgO/Mg.psf Tutorials/Intro/MgO/MgO.fdf
     Tutorials/Intro/MgO/O.psf Tutorials/Intro/MgO/README
     Tutorials/Intro/MgO/cont.gplot Tutorials/Intro/MgO/plot.sh
     Tutorials/Intro/MgO/raw.in Tutorials/Intro/Si/.arch-ids/=id
     Tutorials/Intro/Si/.arch-ids/README.fit.id
     Tutorials/Intro/Si/.arch-ids/README.id
     Tutorials/Intro/Si/.arch-ids/README.plot.id
     Tutorials/Intro/Si/.arch-ids/Si.fdf.id
     Tutorials/Intro/Si/.arch-ids/Si.psf.id
     Tutorials/Intro/Si/.arch-ids/Si_strele.fdf.id
     Tutorials/Intro/Si/.arch-ids/bands.sh.id
     Tutorials/Intro/Si/.arch-ids/cont.gplot.id
     Tutorials/Intro/Si/.arch-ids/dos.gplot.id
     Tutorials/Intro/Si/.arch-ids/fit.sh.id
     Tutorials/Intro/Si/.arch-ids/plot.sh.id
     Tutorials/Intro/Si/.arch-ids/raw.in.id
     Tutorials/Intro/Si/README Tutorials/Intro/Si/README.fit
     Tutorials/Intro/Si/README.plot Tutorials/Intro/Si/Si.fdf
     Tutorials/Intro/Si/Si.psf Tutorials/Intro/Si/Si_strele.fdf
     Tutorials/Intro/Si/bands.sh Tutorials/Intro/Si/cont.gplot
     Tutorials/Intro/Si/dos.gplot Tutorials/Intro/Si/fit.sh
     Tutorials/Intro/Si/plot.sh Tutorials/Intro/Si/raw.in
     Tutorials/Intro/Si_surface/.arch-ids/=id
     Tutorials/Intro/Si_surface/.arch-ids/H.psf.id
     Tutorials/Intro/Si_surface/.arch-ids/Si.psf.id
     Tutorials/Intro/Si_surface/.arch-ids/Si2x1.fdf.id
     Tutorials/Intro/Si_surface/H.psf
     Tutorials/Intro/Si_surface/Si.psf
     Tutorials/Intro/Si_surface/Si2x1.fdf
     Tutorials/Intro/Water_molecule/.arch-ids/=id
     Tutorials/Intro/Water_molecule/.arch-ids/README.id
     Tutorials/Intro/Water_molecule/README
     Tutorials/Intro/Water_molecule/h2o/.arch-ids/=id
     Tutorials/Intro/Water_molecule/h2o/.arch-ids/H.psf.id
     Tutorials/Intro/Water_molecule/h2o/.arch-ids/O.psf.id
     Tutorials/Intro/Water_molecule/h2o/.arch-ids/cont.gplot.id
     Tutorials/Intro/Water_molecule/h2o/.arch-ids/h2o.fdf.id
     Tutorials/Intro/Water_molecule/h2o/.arch-ids/plot.sh.id
     Tutorials/Intro/Water_molecule/h2o/.arch-ids/raw.in.id
     Tutorials/Intro/Water_molecule/h2o/H.psf
     Tutorials/Intro/Water_molecule/h2o/O.psf
     Tutorials/Intro/Water_molecule/h2o/cont.gplot
     Tutorials/Intro/Water_molecule/h2o/h2o.fdf
     Tutorials/Intro/Water_molecule/h2o/plot.sh
     Tutorials/Intro/Water_molecule/h2o/raw.in
     Tutorials/Intro/Water_molecule/h2o_cell/.arch-ids/=id
     Tutorials/Intro/Water_molecule/h2o_cell/.arch-ids/H.psf.id
     Tutorials/Intro/Water_molecule/h2o_cell/.arch-ids/O.psf.id
     Tutorials/Intro/Water_molecule/h2o_cell/.arch-ids/h2o_cell.fdf.id
     Tutorials/Intro/Water_molecule/h2o_cell/H.psf
     Tutorials/Intro/Water_molecule/h2o_cell/O.psf
     Tutorials/Intro/Water_molecule/h2o_cell/h2o_cell.fdf
     Tutorials/Intro/Water_molecule/h2o_relax/.arch-ids/=id
     Tutorials/Intro/Water_molecule/h2o_relax/.arch-ids/O.psf.id
     Tutorials/Intro/Water_molecule/h2o_relax/.arch-ids/h2o_relax.fdf.id
     Tutorials/Intro/Water_molecule/h2o_relax/O.psf
     Tutorials/Intro/Water_molecule/h2o_relax/h2o_relax.fdf

    modified files:
     Tests/Makefile Tests/Scripts/arina.pbs
     Tests/Scripts/matterhorn-gm.sge Tests/test.mk
     Tutorials/Bases/000README Tutorials/Bases/gen-basis.sh

    renamed files:

	All in Src/Tests...

    new directories:
     Tests/.arch-ids Tests/Outs/.arch-ids Tests/Pseudos/.arch-ids
     Tests/Reference/.arch-ids Tests/Scripts/.arch-ids
     Tests/batio3/.arch-ids Tests/bessel/.arch-ids
     Tests/constant_volume/.arch-ids Tests/fe/.arch-ids
     Tests/fe_broyden/.arch-ids Tests/floating/.arch-ids
     Tests/h2o/.arch-ids Tests/h2oZ/.arch-ids
     Tests/h2o_dos/.arch-ids Tests/h2o_op_broyden/.arch-ids
     Tests/h2o_orderN/.arch-ids Tests/md_anneal/.arch-ids
     Tests/md_nose/.arch-ids Tests/md_npr/.arch-ids
     Tests/md_pr/.arch-ids Tests/md_verlet/.arch-ids
     Tests/mgco3/.arch-ids Tests/si2x1h Tests/si2x1h/.arch-ids
     Tests/si64/.arch-ids Tests/sih/.arch-ids
     Tests/sih_op_broyden/.arch-ids Tests/var_cell/.arch-ids
     Tests/zmatrix/.arch-ids

    removed directories:
     Src/Tests/.arch-ids Src/Tests/Outs/.arch-ids
     Src/Tests/Pseudos/.arch-ids Src/Tests/Reference/.arch-ids
     Src/Tests/Scripts/.arch-ids Src/Tests/batio3/.arch-ids
     Src/Tests/bessel/.arch-ids Src/Tests/constant_volume/.arch-ids
     Src/Tests/fe/.arch-ids Src/Tests/fe_broyden/.arch-ids
     Src/Tests/floating/.arch-ids Src/Tests/h2o/.arch-ids
     Src/Tests/h2oZ/.arch-ids Src/Tests/h2o_dos/.arch-ids
     Src/Tests/h2o_op_broyden/.arch-ids
     Src/Tests/h2o_orderN/.arch-ids Src/Tests/md_anneal/.arch-ids
     Src/Tests/md_nose/.arch-ids Src/Tests/md_npr/.arch-ids
     Src/Tests/md_pr/.arch-ids Src/Tests/md_verlet/.arch-ids
     Src/Tests/mgco3/.arch-ids Src/Tests/mgo
     Src/Tests/mgo/.arch-ids Src/Tests/si64/.arch-ids
     Src/Tests/sih/.arch-ids Src/Tests/sih_op_broyden/.arch-ids
     Src/Tests/var_cell/.arch-ids Src/Tests/zmatrix/.arch-ids
     Tutorials/Intro Tutorials/Intro/.arch-ids Tutorials/Intro/Fe
     Tutorials/Intro/Fe/.arch-ids Tutorials/Intro/MgO
     Tutorials/Intro/MgO/.arch-ids Tutorials/Intro/Si
     Tutorials/Intro/Si/.arch-ids Tutorials/Intro/Si_surface
     Tutorials/Intro/Si_surface/.arch-ids
     Tutorials/Intro/Water_molecule
     Tutorials/Intro/Water_molecule/.arch-ids
     Tutorials/Intro/Water_molecule/h2o
     Tutorials/Intro/Water_molecule/h2o/.arch-ids
     Tutorials/Intro/Water_molecule/h2o_cell
     Tutorials/Intro/Water_molecule/h2o_cell/.arch-ids
     Tutorials/Intro/Water_molecule/h2o_relax
     Tutorials/Intro/Water_molecule/h2o_relax/.arch-ids

    renamed directories:
     Src/Tests
       ==> Tests

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-45
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-46
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-47
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-48
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-49


2006-02-12 18:54:18 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-34

    Summary:
      Added more options to MD output. Unit cell printed always 
    Revision:
      siesta-devel--reference--1.5--patch-34

    (Undocumented changes)
    
    If MD output is enabled, a file called MD_CAR is written with cell and
    coordinate information in a vienese format.
    
    Also if MD output is enabled, and if NetCDF support is compiled in, a
    file called MD.nc is produced.
    
    * The unit cell vectors are printed regardless of the setting of VariableCell.
    

    new files:
     Src/.arch-ids/md_out.F90.id Src/md_out.F90

    modified files:
     Src/Makefile Src/siesta.F

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-42
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-43
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-44


2006-02-12 18:49:03 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-33

    Summary:
      Assorted fixes: removed ionew module, wrapping, variable declarations.
    Revision:
      siesta-devel--reference--1.5--patch-33

    * Removed ionew.F.
      All references to 'io_assign' and 'io_close' are resolved by io.f.
      IOnode is taken from module 'parallel'.
    
    * Wrap write statements in die in xc.f
    
    * Fix compilation of denchar and gen-basis
    
    * Declare variable in mpi_utils
    
    

    removed files:
     Src/.arch-ids/ionew.F.id Src/ionew.F

    modified files:
     Src/Makefile Src/arw.f Src/atomlist.f Src/denchar.F
     Src/gen-basis.F Src/iodm.F Src/iopipes.F90
     Src/m_denchar_init.F Src/m_denchar_io.F Src/m_denchar_work.f
     Src/m_mpi_utils.F Src/pdos.F Src/pseudopotential.f
     Src/setatomnodes.F Src/siesta.F Src/xc.f
     Tutorials/Pseudos/README

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-37
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-39
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-40
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-41


2006-02-12 18:45:29 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-32

    Summary:
      Better user-interface for Broyden optimization
    Revision:
      siesta-devel--reference--1.5--patch-32

    Broyden optimization is now selected by 
    
    MD.TypeOfRun Broyden
    (The fdf symbol Optim.Broyden is still honored, but is deprecated)
    
    Broyden optimization options are prefixed by MD.Broyden, instead of
    Optim.Broyden.
    
    Updated the manual.
    
    
    

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/Makefile
     Src/Tests/h2o_op_broyden/h2o_op_broyden.fdf
     Src/Tests/sih_op_broyden/sih_op_broyden.fdf
     Src/Tests/var_cell/var_cell.fdf Src/broyden_optim.F
     Src/redata.F Src/siesta.F

    renamed files:
     Src/.arch-ids/optim.F.id
       ==> Src/.arch-ids/broyden_optim.F.id
     Src/optim.F
       ==> Src/broyden_optim.F

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-38


2006-02-09 12:12:10 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-31

    Summary:
      (atom) More output for ps optimization. More Fe examples in Tutorial
    Revision:
      siesta-devel--reference--1.5--patch-31

    Added output of Fourier norm of pseudopotential to FOURIER_AREA file, to aid
    in automatic optimization.
    
    Put more examples in ../atom/Tutorial/Fe, including a small-core pseudopotential.
    

    new files:
     Pseudo/atom/Tutorial/Fe/.arch-ids/Fe.3d74s1.inp.id
     Pseudo/atom/Tutorial/Fe/.arch-ids/Fe.sc.inp.id
     Pseudo/atom/Tutorial/Fe/.arch-ids/Fe.sc.opt.inp.id
     Pseudo/atom/Tutorial/Fe/.arch-ids/Fe.test.sc.inp.id
     Pseudo/atom/Tutorial/Fe/Fe.3d74s1.inp
     Pseudo/atom/Tutorial/Fe/Fe.sc.inp
     Pseudo/atom/Tutorial/Fe/Fe.sc.opt.inp
     Pseudo/atom/Tutorial/Fe/Fe.test.sc.inp

    modified files:
     Pseudo/atom/Tutorial/Fe/README Pseudo/atom/potran.f
     Pseudo/atom/wrapup.f version.info

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-33
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-34
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-35
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-36


2006-02-07 10:19:22 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-30

    Summary:
      Update Release Notes
    Revision:
      siesta-devel--reference--1.5--patch-30


    removed files:
     Util/Contrib/APostnikov/.arch-ids/rho2xsf_bac.f.id
     Util/Contrib/APostnikov/rho2xsf_bac.f

    modified files:
     Docs/release.notes_1.5 Util/pdosxml/README


2006-02-07 08:59:43 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-29

    Summary:
      Changes to the manual
    Revision:
      siesta-devel--reference--1.5--patch-29

    The manual has been updated. Notable changes:
    
    * Parallelization issues (J. Gale)
    * Configure support and other new features and issues (E. Artacho, A. Garcia)
    

    modified files:
     Docs/siesta.ind Docs/siesta.tex version.info

    new patches:
     eartacho@siesta.arch--2005/siesta--my-changes--0.2--base-0
     eartacho@siesta.arch--2005/siesta--my-changes--0.2--patch-1
     eartacho@siesta.arch--2005/siesta--my-changes--0.2--patch-2
     eartacho@siesta.arch--2005/siesta--my-changes--0.2--patch-3
     eartacho@siesta.arch--2005/siesta--my-changes--0.2--patch-4
     jgale@siesta.arch--2005/siesta--my-changes--0.2--patch-1


2006-02-07 08:51:40 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-28

    Summary:
      Change ground state configuration of Pd
    Revision:
      siesta-devel--reference--1.5--patch-28

    In order to be able to specify spin polarization, the d-shell must
    not be completely full. For Pd, the configuration 4d10 has been
    changed to 4d9-5s1.
    

    modified files:
     Src/periodic_table.f


2006-02-06 18:50:36 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-27

    Summary:
      Update CHANGES file and version.info
    Revision:
      siesta-devel--reference--1.5--patch-27


    modified files:
     Docs/CHANGES version.info

2006-02-06 15:07:50 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-26

    Summary:
      Declare all variables. Replace 'stop' with 'die'.
    Revision:
      siesta-devel--reference--1.5--patch-26

    All variables should now be explicitly declared.
    
    Stop statements have been replaced by calls to "die" for proper
    behavior under MPI. "die" calls MPI_Abort, which should terminate
    the whole set of processes even if called only by the master node.
    

    modified files:
     Src/Libs/machine.F Src/Makefile Src/alloc.F90 Src/arw.f
     Src/atm_transfer.f Src/atom.f Src/atomlwf.F Src/bands.F
     Src/basis_io.F Src/basis_types.f Src/bessph.f Src/cellxc.F
     Src/cgwf.F Src/chempot.F Src/chkgmx.f Src/denchar.F
     Src/dfscf.f Src/dhscf.F Src/dipole.F Src/dynamics.f
     Src/efield.F Src/fermid.F Src/fft3d.F Src/gen-basis.F
     Src/grdsam.F Src/idiag.f Src/initdm.F Src/io.f Src/iocg.f
     Src/iohs.F Src/iolwf.F Src/ipack.f Src/m_broyddj.f90
     Src/m_broyddj_nocomm.f90 Src/m_denchar_neighb.f Src/m_iorho.F
     Src/m_walltime.f90 Src/madelung.f Src/mneighb.f Src/outcoor.f
     Src/parallelsubs.f Src/phirphi_opt.f Src/poison.F Src/pulayx.F
     Src/ranger.f Src/readsp.F Src/recipes.f Src/redcel.F
     Src/rhoofd.f Src/rhoofdsp.f Src/siesta.F Src/sys.F Src/timer.F
     Src/transition_rate.F Src/vmb.F Src/writewave.F Src/xc.f

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-20
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-22
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-23
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-26
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-27
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-28
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-29
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-30
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-32


2006-02-06 15:02:25 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-25

    Summary:
      Unwrap setting of ParallelOverK in siesta. Wrap KSV and BEC IO.
    Revision:
      siesta-devel--reference--1.5--patch-25

    ParallelOverK was set inside an #ifdef MPI block, but it was used in the
    main code later on. Unwrapped.
    
    Wrapp IO in KSV and Born Effective Charges code for MPI.
    

    modified files:
     Src/ksv.f Src/siesta.F

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-24
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-31


2006-02-06 14:59:54 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-24

    Summary:
      Proper account of WriteEigenvalues. EIG file always written
    Revision:
      siesta-devel--reference--1.5--patch-24

    Eigenvalues are only written to the OUT file if WriteEigenvalues
    (or LongOutput) is set to .true.  in the fdf file. The EIG file is
    always written.
    
    

    modified files:
     Src/siesta.F

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-21


2006-02-06 14:58:05 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-23

    Summary:
      Integrated some third-party code by A. Postnikov and F. ElMellouhi
    Revision:
      siesta-devel--reference--1.5--patch-23

    Contributed code is in Util/Contrib
    
    

    new files:
     Util/Contrib/.arch-ids/=id Util/Contrib/.arch-ids/README.id
     Util/Contrib/APostnikov/.arch-ids/=id
     Util/Contrib/APostnikov/.arch-ids/Makefile.id
     Util/Contrib/APostnikov/.arch-ids/README.id
     Util/Contrib/APostnikov/.arch-ids/displa.f.id
     Util/Contrib/APostnikov/.arch-ids/eig2bxsf.f.id
     Util/Contrib/APostnikov/.arch-ids/fillbox.f.id
     Util/Contrib/APostnikov/.arch-ids/hit.f.id
     Util/Contrib/APostnikov/.arch-ids/intpl04.f.id
     Util/Contrib/APostnikov/.arch-ids/inver3.f.id
     Util/Contrib/APostnikov/.arch-ids/itochar.f.id
     Util/Contrib/APostnikov/.arch-ids/makebox.f.id
     Util/Contrib/APostnikov/.arch-ids/md2axsf.f.id
     Util/Contrib/APostnikov/.arch-ids/read_ev.f.id
     Util/Contrib/APostnikov/.arch-ids/read_xv.f.id
     Util/Contrib/APostnikov/.arch-ids/rho2xsf.f.id
     Util/Contrib/APostnikov/.arch-ids/rho2xsf_bac.f.id
     Util/Contrib/APostnikov/.arch-ids/test_md.f.id
     Util/Contrib/APostnikov/.arch-ids/vib2xsf.f.id
     Util/Contrib/APostnikov/.arch-ids/w_arrow.f.id
     Util/Contrib/APostnikov/.arch-ids/w_movie.f.id
     Util/Contrib/APostnikov/.arch-ids/wraxsf1.f.id
     Util/Contrib/APostnikov/.arch-ids/wraxsf2.f.id
     Util/Contrib/APostnikov/.arch-ids/xv2xsf.f.id
     Util/Contrib/APostnikov/Makefile
     Util/Contrib/APostnikov/README
     Util/Contrib/APostnikov/displa.f
     Util/Contrib/APostnikov/eig2bxsf.f
     Util/Contrib/APostnikov/fillbox.f
     Util/Contrib/APostnikov/hit.f
     Util/Contrib/APostnikov/intpl04.f
     Util/Contrib/APostnikov/inver3.f
     Util/Contrib/APostnikov/itochar.f
     Util/Contrib/APostnikov/makebox.f
     Util/Contrib/APostnikov/md2axsf.f
     Util/Contrib/APostnikov/read_ev.f
     Util/Contrib/APostnikov/read_xv.f
     Util/Contrib/APostnikov/rho2xsf.f
     Util/Contrib/APostnikov/rho2xsf_bac.f
     Util/Contrib/APostnikov/test_md.f
     Util/Contrib/APostnikov/vib2xsf.f
     Util/Contrib/APostnikov/w_arrow.f
     Util/Contrib/APostnikov/w_movie.f
     Util/Contrib/APostnikov/wraxsf1.f
     Util/Contrib/APostnikov/wraxsf2.f
     Util/Contrib/APostnikov/xv2xsf.f
     Util/Contrib/FElMellouhi/.arch-ids/=id
     Util/Contrib/FElMellouhi/.arch-ids/DxFormat.f90.id
     Util/Contrib/FElMellouhi/.arch-ids/DxView.cfg.id
     Util/Contrib/FElMellouhi/.arch-ids/DxView.net.id
     Util/Contrib/FElMellouhi/.arch-ids/README.id
     Util/Contrib/FElMellouhi/DxFormat.f90
     Util/Contrib/FElMellouhi/DxView.cfg
     Util/Contrib/FElMellouhi/DxView.net
     Util/Contrib/FElMellouhi/README Util/Contrib/README

    new directories:
     Util/Contrib Util/Contrib/.arch-ids Util/Contrib/APostnikov
     Util/Contrib/APostnikov/.arch-ids Util/Contrib/FElMellouhi
     Util/Contrib/FElMellouhi/.arch-ids

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-25


2006-02-02 15:24:55 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-22

    Summary:
      Auxiliary files for configuration tests in atom + "err=" fix
    Revision:
      siesta-devel--reference--1.5--patch-22

    * New files AE_ECONF, PT_ECONF, and ECONF_DIFFS are produced if
    a pseudopotential test is run with the customary structure for the
    input file (first an ae series, then a corresponding pt series).
    
    The last line of ECONF_DIFFS contains the max abs value of the
    excitation energy differences, as well as the mean abs and rms values.
    
    This is useful for externally-driven optimization of pseudopotentials.
    
    * Also, to help some compilers, add err= clause to read stmt in atom/input.f

    modified files:
     Pseudo/atom/atm.f Pseudo/atom/input.f Pseudo/atom/prdiff.f
     version.info

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-17
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-19


2006-02-02 14:03:43 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-21

    Summary:
      Fix matel to avoid non-zero gradients of overlaps in some cases
    Revision:
      siesta-devel--reference--1.5--patch-21

    Problem: (As restated by A. Postnikov in the Siesta list, after a message
              by Hongjun Xiang <xhongjun@MAIL.USTC.EDU.CN>)
    --------
    
    erroneous values of some gradients as delivered by matel.
    I.e., the analytical gradient of the overlap of each basis function
    with itself is not zero, contrary to expectation. An example for Al s-function:
      ia,io,ioa,ja,jo,joa:  1  1  1    1  1  1  xij=  0.0000  0.0000  0.0000
       S =  1.00000E+00  grad S =  0.00000E+00  0.00000E+00 -9.71745E-03
       T =  4.00390E-01  grad T =  0.00000E+00  0.00000E+00 -1.54155E-02
    The values in the last column must be zero.
    
    Jose Soler wrote:
    
    The simplest and most apropriate solution to this problem is to simply
    change the line
       DFFR0 = HUGE
     into
       DFFR0 = 0
    
    That changes the boundary condition of the spline interpolation from
    (d2FFR/dR2)_0=0 to (dFFR/dR)_0=0 and makes the error in the force of
    order 1.e-12 rather than 1.e-2.
    
    Done.
    

    modified files:
     Src/matel.f

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-18


2006-02-02 14:00:17 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-20

    Summary:
      New organization of MD tests -- dynamics stubs for MD output
    Revision:
      siesta-devel--reference--1.5--patch-20

    * The MD tests are now  md_{verlet,nose,pr,npr,anneal}. Sample outputs
    have been added to Src/Tests/Reference.
    
    * Code stubs have been added to dynamics.f to output synchronous MD
    information.  (with a view to merge D. Grimwood's approach in the
    future). See also md_utils.f90 for a skeleton of an MD writer (format
    to be agreed upon).
    

    new files:
     Src/.arch-ids/md_utils.f90.id
     Src/Tests/Reference/.arch-ids/md_nose.out.id
     Src/Tests/Reference/.arch-ids/md_verlet.out.id
     Src/Tests/Reference/md_nose.out
     Src/Tests/Reference/md_verlet.out
     Src/Tests/md_verlet/.arch-ids/=id
     Src/Tests/md_verlet/.arch-ids/makefile.id
     Src/Tests/md_verlet/.arch-ids/md_verlet.fdf.id
     Src/Tests/md_verlet/.arch-ids/md_verlet.pseudos.id
     Src/Tests/md_verlet/makefile Src/Tests/md_verlet/md_verlet.fdf
     Src/Tests/md_verlet/md_verlet.pseudos Src/md_utils.f90

    modified files:
     Src/Tests/Makefile Src/Tests/Reference/h2oZ.out
     Src/Tests/Reference/md_anneal.out
     Src/Tests/Reference/md_npr.out Src/Tests/Reference/md_pr.out
     Src/Tests/Reference/zmatrix.out Src/Tests/md_anneal/makefile
     Src/Tests/md_anneal/md_anneal.fdf Src/Tests/md_nose/makefile
     Src/Tests/md_nose/md_nose.fdf Src/dynamics.f

    renamed files:
     Src/Tests/Reference/.arch-ids/si.out.id
       ==> Src/Tests/Reference/.arch-ids/md_anneal.out.id
     Src/Tests/Reference/si.out
       ==> Src/Tests/Reference/md_anneal.out
     Src/Tests/md/.arch-ids/=id
       ==> Src/Tests/md_nose/.arch-ids/=id
     Src/Tests/md/.arch-ids/makefile.id
       ==> Src/Tests/md_nose/.arch-ids/makefile.id
     Src/Tests/md/.arch-ids/md.fdf.id
       ==> Src/Tests/md_nose/.arch-ids/md_nose.fdf.id
     Src/Tests/md/.arch-ids/md.pseudos.id
       ==> Src/Tests/md_nose/.arch-ids/md_nose.pseudos.id
     Src/Tests/md/md.fdf
       ==> Src/Tests/md_nose/md_nose.fdf
     Src/Tests/md/md.pseudos
       ==> Src/Tests/md_nose/md_nose.pseudos
     Src/Tests/si/.arch-ids/=id
       ==> Src/Tests/md_anneal/.arch-ids/=id
     Src/Tests/si/.arch-ids/makefile.id
       ==> Src/Tests/md_anneal/.arch-ids/makefile.id
     Src/Tests/si/.arch-ids/si.STRUCT_IN.id
       ==> Src/Tests/md_anneal/.arch-ids/md_anneal.STRUCT_IN.id
     Src/Tests/si/.arch-ids/si.fdf.id
       ==> Src/Tests/md_anneal/.arch-ids/md_anneal.fdf.id
     Src/Tests/si/.arch-ids/si.pseudos.id
       ==> Src/Tests/md_anneal/.arch-ids/md_anneal.pseudos.id
     Src/Tests/si/si.STRUCT_IN
       ==> Src/Tests/md_anneal/md_anneal.STRUCT_IN
     Src/Tests/si/si.fdf
       ==> Src/Tests/md_anneal/md_anneal.fdf
     Src/Tests/si/si.pseudos
       ==> Src/Tests/md_anneal/md_anneal.pseudos

    new directories:
     Src/Tests/md_anneal/.arch-ids Src/Tests/md_nose/.arch-ids
     Src/Tests/md_verlet Src/Tests/md_verlet/.arch-ids

    removed directories:
     Src/Tests/md/.arch-ids Src/Tests/si/.arch-ids

    renamed directories:
     Src/Tests/md
       ==> Src/Tests/md_nose
     Src/Tests/si
       ==> Src/Tests/md_anneal

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-14
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-16


2006-01-27 17:17:14 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-19

    Summary:
      Update CHANGES file
    Revision:
      siesta-devel--reference--1.5--patch-19


    modified files:
     Docs/CHANGES version.info

2006-01-27 17:12:51 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-18

    Summary:
      Added rPBE and revPBE xc functionals to the ATM ps generation program
    Revision:
      siesta-devel--reference--1.5--patch-18

    * Code for rPBE taken from Siesta xc.f previous to the 
    hybrid-DFT-related architectural changes by J. Gale.
    
    * revPBE is just PBE with a parameter change.
    
    * Version bumped up to 3.2.2. 
    
    * Manual updated (a ps version is no longer in the source tree. 
    Users are advised to generate it or to download it).
    
    

    new files:
     Pseudo/atom/.arch-ids/revpbexc.f.id
     Pseudo/atom/.arch-ids/rpbexc.f.id
     Pseudo/atom/Docs/.arch-ids/README.id Pseudo/atom/Docs/README
     Pseudo/atom/revpbexc.f Pseudo/atom/rpbexc.f

    removed files:
     Pseudo/atom/Docs/.arch-ids/atom_2up.ps.id
     Pseudo/atom/Docs/atom_2up.ps

    modified files:
     Pseudo/atom/ChangeLog Pseudo/atom/Docs/atom.tex
     Pseudo/atom/Tutorial/000README Pseudo/atom/ggaxc.f
     Pseudo/atom/header.f Pseudo/atom/input.f Pseudo/atom/makefile
     Pseudo/atom/velect.f Pseudo/atom/version.h
     Pseudo/atom/wrapup.f Pseudo/atom/xc.f

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-15


2006-01-27 17:09:47 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-17

    Summary:
      Clean restarts for Parrinello-Rahman and Nose-PR MD (interim fix)
    Revision:
      siesta-devel--reference--1.5--patch-17

    *   Added md_pr and md_npr tests for PR and NPR MD.
    
    *   Streamlined 'pr' and 'npr' in dynamics.f with vector notation, and
        implemented an ad-hoc restarting mechanism using files to hold
        the 'old' coordinates and cell vectors (and Nose variables in 'npr').
    
        Routine 'anneal' is left unchanged for now.
    

    new files:
     Src/Tests/Reference/.arch-ids/md_npr.out.id
     Src/Tests/Reference/.arch-ids/md_pr.out.id
     Src/Tests/Reference/md_npr.out Src/Tests/Reference/md_pr.out
     Src/Tests/md_npr/.arch-ids/=id
     Src/Tests/md_npr/.arch-ids/makefile.id
     Src/Tests/md_npr/.arch-ids/md_npr.fdf.id
     Src/Tests/md_npr/.arch-ids/md_npr.pseudos.id
     Src/Tests/md_npr/makefile Src/Tests/md_npr/md_npr.fdf
     Src/Tests/md_npr/md_npr.pseudos Src/Tests/md_pr/.arch-ids/=id
     Src/Tests/md_pr/.arch-ids/makefile.id
     Src/Tests/md_pr/.arch-ids/md_pr.fdf.id
     Src/Tests/md_pr/.arch-ids/md_pr.pseudos.id
     Src/Tests/md_pr/makefile Src/Tests/md_pr/md_pr.fdf
     Src/Tests/md_pr/md_pr.pseudos

    modified files:
     Src/Makefile Src/dynamics.f

    new directories:
     Src/Tests/md_npr Src/Tests/md_npr/.arch-ids Src/Tests/md_pr
     Src/Tests/md_pr/.arch-ids

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-6
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-7
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-8
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-9
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-10
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-11
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-12
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-13


2006-01-27 17:00:35 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-16

    Summary:
      Bug fixes: ang in dynamics, gen-basis compilation, D&C in Fe test
    Revision:
      siesta-devel--reference--1.5--patch-16

    *   Remove duplicate variable ang in dynamics@pr
    *   Add m_walltime to gen-basis obj list
    *   Move function call with side effects outside if stmt in chemical.f
    *   Import node from parallel in timer
    
    *   Do not use Divide and Conquer in Fe test (to maintain *some*
        continuity in the test results -- but the test itself is very
        numerically unstable...)

    modified files:
     Src/Makefile Src/Tests/fe/fe.fdf Src/chemical.f Src/dynamics.f
     Src/timer.F version.info

    new patches:
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--base-0
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-1
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-2
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-3
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-4
     agarcia@siesta.arch--2006/siesta-devel--agarcia--1.5--patch-5



2006-01-24 16:48:19 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-14

    Summary:
      Coherent restarting for MD jobs (interim fix)
    Revision:
      siesta-devel--reference--1.5--patch-14

    The XV file contains the positions and velocities *at different
    times*. This poses problems for the continuation of MD runs.
    
    Until we can re-design the MD output code, an interim fix has been
    prepared:
    
    For the velocity-Verlet algorithm (in routine 'verlet2'), the fix is to read the
    'old' forces as well as the 'current' positions and 'old' velocities.
    Forces are written to VERLET_FORCES at each step, and are read in the
    first step if the XV file has been read. 
    
    For the modified Verlet algorithm (in routine 'nose'), the fix is to read the
    'old' positions, AND the values of the Nose variables (current and old).
    
    The information is written to NOSE_RESTART at each step, and is read in the
    first step if the XV file has been read. 
    
    The code in ioxv.F has been put in a module, to hold the new variable
    xv_file_read. 'dynamics.f' has also been turned into a module.
    
    Fixes for the other MD flavors are forthcoming.
    
    

    new files:
     Src/Tests/md/.arch-ids/=id Src/Tests/md/.arch-ids/makefile.id
     Src/Tests/md/.arch-ids/md.fdf.id
     Src/Tests/md/.arch-ids/md.pseudos.id Src/Tests/md/makefile
     Src/Tests/md/md.fdf Src/Tests/md/md.pseudos

    modified files:
     Src/Makefile Src/Sys/intel9-mkl8.make Src/Tests/Makefile
     Src/dynamics.f Src/ioxv.F Src/m_mpi_utils.F Src/siesta.F
     Src/sys.F

    new directories:
     Src/Tests/md Src/Tests/md/.arch-ids

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-32
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-33
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-34
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-35
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-36


2006-01-24 13:46:16 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-13

    Summary:
      Parallel over K option extended to band calculations + assorted fixes
    Revision:
      siesta-devel--reference--1.5--patch-13

    (By Julian Gale)
    
    * K point parallelism was previously only enabled for the regular SCF procedure. It has
    now been extended to the determination of the band structure.
    
    * The case sensitivity for some zmatrix input commands has been handled by
    converting the input line to lower case.
    
    * A new module "files" has been added that contains the system label and a 
    parameter that is used to define the label length in subroutines to 
    ensure consistency.
    
    * nrowsDscfL caused an error due to an out of bounds reference in
    dfscf.f rhoofd.f rhoofdsp.f vmat.f, and vmatsp.f. Fixed.
    
    

    new files:
     Src/.arch-ids/files.f.id Src/files.f

    modified files:
     Src/Makefile Src/bands.F Src/cdiag.F Src/coceri.f Src/coxmol.f
     Src/dfscf.f Src/iocg.f Src/iodm.F Src/ioeig.f Src/iofa.f
     Src/iohs.F Src/iokp.f Src/iolwf.F Src/iomd.f Src/ioxv.F
     Src/iozm.F Src/m_iostruct.f Src/ofc.f Src/optical.F
     Src/parallel.f Src/pdos.F Src/phonon.F Src/pixmol.f
     Src/plcharge.F Src/pulayx.F Src/redata.F Src/reinit.F
     Src/rhoofd.f Src/rhoofdsp.f Src/siesta.F
     Src/siesta_cmlsubs.F90 Src/vmat.f Src/vmatsp.f Src/writewave.F
     Src/zmatrix.F

    new patches:
     jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-8
     jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-9
     jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-10
     jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-13


2006-01-24 10:49:10 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-12

    Summary:
      Added code to compute Born effective charges
    Revision:
      siesta-devel--reference--1.5--patch-12

    (Code from Tom Archer and Miguel Pruneda)
    
    The Born effective charge tensor is calculated by finite differences, 
    using the polarization differences in the small displacements
    generated in the FC type of run.
    
    They can be used by Vibra to obtain LO-TO splittings and infrared
    activities but VIBRA still needs to be updated to do so (Tom Archer has a 
    working version).
    

    new files:
     Src/.arch-ids/obc.f.id Src/obc.f

    modified files:
     Docs/siesta.tex Src/Makefile Src/siesta.F

    new patches:
     eartacho@siesta.arch--2005/siesta--my-changes--0.1--patch-4
     eartacho@siesta.arch--2005/siesta--my-changes--0.1--patch-5


2006-01-24 10:34:24 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-11

    Summary:
      XML output additions and fixes
    Revision:
      siesta-devel--reference--1.5--patch-11

    * Correct cml namespace
    * Print out positions & cell at every step.
    * Backported from xmlf90 - PMR added lattice & latticeVectors to CML, so we can use it.

    modified files:
     Src/ioxv.F Src/outcoor.f Src/siesta.F Src/siesta_cmlsubs.F90

    new patches:
     twhite@siesta.arch--2005/siesta-devel--xmltidy--1.5--patch-1
     twhite@siesta.arch--2005/siesta-devel--xmltidy--1.5--patch-2


2006-01-23 15:26:33 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-10

    Summary:
      Proper configure test for NetCDF
    Revision:
      siesta-devel--reference--1.5--patch-10

    Patches applied:
    
     * twhite@siesta.arch--2005/siesta-devel--netcdf--1.5--patch-1
       
    

    modified files:
     Src/NetCDF/Makefile Src/aclocal.m4 Src/arch.make.in
     Src/configure Src/configure.ac Src/m4/TW_PATH_NETCDF.m4

    new patches:
     twhite@siesta.arch--2005/siesta-devel--netcdf--1.5--patch-1


2006-01-18 16:51:14 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-9

    Summary:
      Update CHANGES file
    Revision:
      siesta-devel--reference--1.5--patch-9


    modified files:
     Docs/CHANGES


2006-01-18 16:45:48 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-8

    Summary:
      Bug fix regarding limited eigenvectors & spin (by Pablo Ordejon)
    Revision:
      siesta-devel--reference--1.5--patch-8

    When telling siesta not to find all eigenvectors, and with spin polarisation,
    there were still some misadjustments.
    
    
    

    modified files:
     Src/siesta.F

    new patches:
     eartacho@siesta.arch--2005/siesta--my-changes--0.1--patch-3


2006-01-18 16:44:22 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-7

    Summary:
      Several bugs fixed in optical and pulayx
    Revision:
      siesta-devel--reference--1.5--patch-7

    BUGs Fixed:
                                                                                    
        subroutines optical, transition_rate and diagpol:
          *The subroutine was not able to deal correctly with the
           calculation of the optical properties of a molecule using
           only gamma point.
          *The scissor correction was not applied at the right place
          *The populations used to calculate the dielectric constant
           were incorrect (by a factor of two). Fortunately this only
           translate in an incorrect normalization factor which, at the
           end, was corrected (inadvertently) due to the use of Ry instead
           of atomic units.
        subroutine pulayx:
          *The case of the subroutine inver failing was not conveniently
           treated in all the cases due to the use of the function mod.
                                                                                    
    Other changes:
        subroutine optical:
          *The default mesh for the calculation of the optical properties of
           molecules and atoms has been changed to gamma point. Thus, in these
           cases the Optical.Mesh block does not need to be specified.
          *Some cosmetics
        subroutine reoptical:
          *Some cosmetics.
          *Ensuring the default option 'polycrystal' for the polarization type.
        subroutine ksv_pol:
          *Modification of the call to subroutine diagpol, which now has
           and additional parameter.
        subroutine phirphi_opt.f
          *Cosmetics and minor changes
        Docs/siesta.tex
          *Has been changed according to this new default
          *A new reference has been added to the list of SIESTA references.
          *Sanchez-Portal's affiliation has been updated.
    
    

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/diagpol.f Src/ksv.f
     Src/optical.F Src/phirphi_opt.f Src/pulayx.F Src/reoptical.F
     Src/transition_rate.F

    new patches:
     dsanchez@siesta.arch--2005/siesta--optical--0.1--patch-1


2006-01-17 14:16:51 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-6

    Summary:
      Assignments moved outside inner loop in kinefsm to save cputime
    Revision:
      siesta-devel--reference--1.5--patch-6

    Patches applied:
    
     * jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-2
       Assignments moved outside inner loop in kinefsm to save cputime.
    

    modified files:
     Src/kinefsm.f

    new patches:
     jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-2


2006-01-17 14:05:29 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-5

    Summary:
      Added compilation support for SGI-Altix and Intel9+MKL8
    Revision:
      siesta-devel--reference--1.5--patch-5

    New files in Src/Sys for SGI-Altix and (library locations site-dependent)
    Intel Fortran Compiler V.7 with Intel MKL V.8.
    

    new files:
     Src/Sys/.arch-ids/intel9-mkl8.make.id
     Src/Sys/.arch-ids/sgi-altix.make.id Src/Sys/intel9-mkl8.make
     Src/Sys/sgi-altix.make

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-27
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-28
     jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-4


2006-01-17 14:01:54 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-4

    Summary:
      Zmatrix information output and re-starting options (+fixes)
    Revision:
      siesta-devel--reference--1.5--patch-4

    The program now writes a summary of the zmatrix *explicit* variables
    at each step of the optimization phase.
    
    New option MD.UseSaveZM added to preserve Zmatrix information accross runs.
    
    New zmatrix test.
    
    Other fixes:
    
    - Remove comment from optim.F implying that it does not work for variable cell
    relaxations.
    
    - Fix computation of lattice angles in wxml/flib_wcml.f90.
    

    new files:
     Src/.arch-ids/iozm.F.id Src/.arch-ids/m_cell.f.id
     Src/Tests/Reference/.arch-ids/zmatrix.out.id
     Src/Tests/Reference/zmatrix.out
     Src/Tests/zmatrix/.arch-ids/=id
     Src/Tests/zmatrix/.arch-ids/Zmatrix.data.id
     Src/Tests/zmatrix/.arch-ids/makefile.id
     Src/Tests/zmatrix/.arch-ids/zmatrix.fdf.id
     Src/Tests/zmatrix/.arch-ids/zmatrix.pseudos.id
     Src/Tests/zmatrix/Zmatrix.data Src/Tests/zmatrix/makefile
     Src/Tests/zmatrix/zmatrix.fdf
     Src/Tests/zmatrix/zmatrix.pseudos Src/iozm.F Src/m_cell.f

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/Makefile
     Src/Tests/Makefile Src/Tests/Reference/h2oZ.out Src/optim.F
     Src/siesta.F Src/wxml/flib_wcml.f90 Src/zmatrix.F

    new directories:
     Src/Tests/zmatrix Src/Tests/zmatrix/.arch-ids

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--ag-uspex--1.5--base-0
     agarcia@siesta.arch--2005/siesta-devel--ag-uspex--1.5--patch-1
     agarcia@siesta.arch--2005/siesta-devel--ag-uspex--1.5--patch-2
     agarcia@siesta.arch--2005/siesta-devel--ag-uspex--1.5--patch-3
     agarcia@siesta.arch--2005/siesta-devel--ag-uspex--1.5--patch-4
     agarcia@siesta.arch--2005/siesta-devel--ag-uspex--1.5--patch-5
     agarcia@siesta.arch--2005/siesta-devel--ag-uspex--1.5--patch-6
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-18
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-23
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-29
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-30
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-31
     jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-3
     jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-7


2006-01-17 10:47:32 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-3

    Summary:
      XC: Add revPBE functional -- fix call to blypxc for non-collinear spin
    Revision:
      siesta-devel--reference--1.5--patch-3

    A new routine has been added to xc.f to implement the "revPBE" functional
    (which only differs from PBE in the change of a parameter). The new "author"
    code in the fdf file is "revPBE".
    
    The call to blypxc was not correct in the case of non-collinear spin. Fixed.
    
    

    modified files:
     Docs/siesta.tex Src/siesta.F Src/xc.f

    new patches:
     eartacho@siesta.arch--2005/siesta--my-changes--0.1--patch-2
     jgale@siesta.arch--2005/siesta--my-changes--0.1--patch-6


2006-01-17 10:42:36 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-2

    Summary:
      Units of energy in MDE are now eV
    Revision:
      siesta-devel--reference--1.5--patch-2

    Patches applied:
    
     * eartacho@siesta.arch--2005/siesta--my-changes--0.1--patch-1
       Bug fixed: units of energy in MDE now eV
    

    modified files:
     Src/iomd.f

    new patches:
     eartacho@siesta.arch--2005/siesta--my-changes--0.1--patch-1


2005-12-09 11:21:52 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-1

    Summary:
      Broyden algorithm for geometry optimization. Assorted fixes.
    Revision:
      siesta-devel--reference--1.5--patch-1

    * Broyden algorithm for geometry optimization
    
      It is a drop-in replacement for the conjugate-gradients algorithm (including
      the variable-cell case). It seems to work better in all cases analyzed,
      even with the standard defaults.
    
      (selected by the new Optim.Broyden boolean fdf variable. See the manual
       for a full set of options, but note that the defaults seem to work well)
    
      The code is in the new routine optim.F, which just calls the same code in
      m_broyddj.f90 used for the SCF minimization. Actually, a special
      version without interprocess communication has been prepared, so that
      in a parallel run, with the coordinates and forces replicated in all 
      processors, all will be doing the same kinds of operations.
     
      Some new tests have been added: h2o_op_broyden, sih_op_broyden.
      The var_cell test is now done with the Broyden algorithm.
    
    * Wrap some calls and I/O statements for MPI operation.
      (I/O in redata, calls to coxmol and coceri)
    
    * Give XV file priority over struct-file input
    
    * Update FFLAGS in cscs-cray-mpi.make
    
    * New Tests/Reference directory to hold recent output files (for checks on
      new installations, rather than correctness tests).
    
    * Add proper CML references for the zmatrix case.
    
    * Atom cosmetic fixes:  non-standard write in atom/vionic.f,
      generic f95 aux file.
    
    * Annealing proto-code. Some experimental code to achieve a given
      temperature "exactly" after a Md.TauRelax time. This is not physical, just
      expeditive. The code is not yet enabled. 
    
      The si test has been changed to an example of annealing.
    
    
    

    new files:
     Pseudo/atom/.arch-ids/auxf95.f.id Pseudo/atom/auxf95.f
     Src/.arch-ids/m_broyddj_nocomm.f90.id Src/.arch-ids/optim.F.id
     Src/Tests/Reference/.arch-ids/=id
     Src/Tests/Reference/.arch-ids/batio3.out.id
     Src/Tests/Reference/.arch-ids/bessel.out.id
     Src/Tests/Reference/.arch-ids/constant_volume.out.id
     Src/Tests/Reference/.arch-ids/fe.out.id
     Src/Tests/Reference/.arch-ids/fe_broyden.out.id
     Src/Tests/Reference/.arch-ids/floating.out.id
     Src/Tests/Reference/.arch-ids/h2o.out.id
     Src/Tests/Reference/.arch-ids/h2oZ.out.id
     Src/Tests/Reference/.arch-ids/h2o_dos.out.id
     Src/Tests/Reference/.arch-ids/h2o_op_broyden.out.id
     Src/Tests/Reference/.arch-ids/h2o_orderN.out.id
     Src/Tests/Reference/.arch-ids/mgco3.out.id
     Src/Tests/Reference/.arch-ids/si.out.id
     Src/Tests/Reference/.arch-ids/si64.out.id
     Src/Tests/Reference/.arch-ids/sih.out.id
     Src/Tests/Reference/.arch-ids/sih_op_broyden.out.id
     Src/Tests/Reference/.arch-ids/var_cell.out.id
     Src/Tests/Reference/batio3.out Src/Tests/Reference/bessel.out
     Src/Tests/Reference/constant_volume.out
     Src/Tests/Reference/fe.out Src/Tests/Reference/fe_broyden.out
     Src/Tests/Reference/floating.out Src/Tests/Reference/h2o.out
     Src/Tests/Reference/h2oZ.out Src/Tests/Reference/h2o_dos.out
     Src/Tests/Reference/h2o_op_broyden.out
     Src/Tests/Reference/h2o_orderN.out
     Src/Tests/Reference/mgco3.out Src/Tests/Reference/si.out
     Src/Tests/Reference/si64.out Src/Tests/Reference/sih.out
     Src/Tests/Reference/sih_op_broyden.out
     Src/Tests/Reference/var_cell.out
     Src/Tests/h2o_op_broyden/.arch-ids/=id
     Src/Tests/h2o_op_broyden/.arch-ids/h2o_op_broyden.fdf.id
     Src/Tests/h2o_op_broyden/.arch-ids/h2o_op_broyden.pseudos.id
     Src/Tests/h2o_op_broyden/.arch-ids/makefile.id
     Src/Tests/h2o_op_broyden/h2o_op_broyden.fdf
     Src/Tests/h2o_op_broyden/h2o_op_broyden.pseudos
     Src/Tests/h2o_op_broyden/makefile Src/Tests/mgo/.arch-ids/=id
     Src/Tests/mgo/.arch-ids/Kgrid.id
     Src/Tests/mgo/.arch-ids/makefile.id
     Src/Tests/mgo/.arch-ids/mgo.STRUCT_IN.id
     Src/Tests/mgo/.arch-ids/mgo.fdf.id
     Src/Tests/mgo/.arch-ids/mgo.pseudos.id
     Src/Tests/mgo/.arch-ids/mydefaults.fdf.id Src/Tests/mgo/Kgrid
     Src/Tests/mgo/makefile Src/Tests/mgo/mgo.STRUCT_IN
     Src/Tests/mgo/mgo.fdf Src/Tests/mgo/mgo.pseudos
     Src/Tests/mgo/mydefaults.fdf
     Src/Tests/sih_op_broyden/.arch-ids/=id
     Src/Tests/sih_op_broyden/.arch-ids/makefile.id
     Src/Tests/sih_op_broyden/.arch-ids/sih_op_broyden.fdf.id
     Src/Tests/sih_op_broyden/.arch-ids/sih_op_broyden.pseudos.id
     Src/Tests/sih_op_broyden/makefile
     Src/Tests/sih_op_broyden/sih_op_broyden.fdf
     Src/Tests/sih_op_broyden/sih_op_broyden.pseudos
     Src/m_broyddj_nocomm.f90 Src/optim.F

    modified files:
     Docs/siesta.tex Pseudo/atom/makefile Pseudo/atom/vionic.f
     Src/Makefile Src/Sys/cscs-cray-mpi.make Src/Tests/Makefile
     Src/Tests/si/si.fdf Src/Tests/sih/sih.fdf
     Src/Tests/var_cell/var_cell.fdf Src/coor.F Src/dynamics.f
     Src/redata.F Src/siesta.F version.info

    new directories:
     Src/Tests/Reference Src/Tests/Reference/.arch-ids
     Src/Tests/h2o_op_broyden Src/Tests/h2o_op_broyden/.arch-ids
     Src/Tests/mgo Src/Tests/mgo/.arch-ids Src/Tests/sih_op_broyden
     Src/Tests/sih_op_broyden/.arch-ids

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--base-0
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-1
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-2
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-3
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-4
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-5
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-6
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-7
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-8
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-9
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-10
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-11
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-12
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-13
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-14
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-15
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-16
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.5--patch-17


2005-11-06 11:39:29 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	base-0

    Summary:
      tag of siesta@uam.es--2005/siesta-devel--reference--1.4--patch-18
    Revision:
      siesta-devel--reference--1.5--base-0

    (automatically generated log message)
    (Detailed patch list omitted)

____________________________________________________________________
** CHANGES ALONG siesta@uam.es--2005/siesta-devel--reference--1.4
--------------------------------------------------------------------

2005-11-06 11:32:34 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-18

	Added Release Notes for interim release 1.5
	Modified version.F90 to set version number to 1.5.0
        Modified top-level README

2005-11-06 11:04:34 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-17

	Updated this (Docs/CHANGES)  file

2005-11-04 17:14:34 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-16

    Summary:
      New starlink autoconf. CML update. MD scripts. New walltime analysis. 
    Revision:
      siesta-devel--reference--1.4--patch-16

    * Merge from Toby White's ac-update branch -- New starlink autoconf
      (Add m4/fortran.m4 to list of files to be merged into aclocal.m4)
    
    * Merge CML generation patches along twhite@siesta.arch--2005/siesta-devel--xml--1.4,
      up to patch-3:
    
       XML changes to conform better to CML schema
       Add stylesheet decelaration.
       fix lattice
    
      (Note: siesta_cml.f90 patches applied in effect to siesta_cmlsubs.F90)
    
    * Add simple MD analysis scripts
    
    * Improve walltime printing:
    
      A new module m_walltime implements a "wall_time(t)" call similar to 
      "cpu_time(t)", including checks for wraparound of the system counter.
      With the new routine, timer has been enhanced to print also elapsed times.
      The new table (and a line for IterSCF) goes to standard output.
    
      To Do: Rationalize MPI calls.
             Integrate both cpu and walltime information in the same table.
    
    
    * Do not rewind alloc_report file, to allow for multiple batches of information.
    

    new files:
     Src/.arch-ids/m_walltime.f90.id Src/m_walltime.f90
     Util/MD/.arch-ids/=id Util/MD/.arch-ids/tpe.sh.id
     Util/MD/.arch-ids/voigt.sh.id Util/MD/tpe.sh Util/MD/voigt.sh

    modified files:
     Src/Makefile Src/aclocal.m4 Src/alloc.F90 Src/atomlist.f
     Src/configure Src/coor.F Src/m4/TW_FC_KINDS.m4
     Src/m4/fortran.m4 Src/m_iostruct.f Src/m_wallclock.f90
     Src/outcoor.f Src/siesta.F Src/siesta_cmlsubs.F90 Src/timer.F
     Src/wxml/flib_wcml.f90 Src/wxml/flib_wstml.f90
     Src/wxml/m_wxml_core.f90 Src/wxml/m_wxml_text.F90 version.info

    renamed files:
     Util/PyAtom/.arch-ids/shape.sh.id
       ==> Util/MD/.arch-ids/shape.sh.id
     Util/PyAtom/shape.sh
       ==> Util/MD/shape.sh

    new directories:
     Util/MD Util/MD/.arch-ids

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-79
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-80
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-81
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-82
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-83
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-84
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-85
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-86
     twhite@siesta.arch--2005/siesta-devel--xml--1.4--base-0
     twhite@siesta.arch--2005/siesta-devel--xml--1.4--patch-1
     twhite@siesta.arch--2005/siesta-devel--xml--1.4--patch-2
     twhite@siesta.arch--2005/siesta-devel--xml--1.4--patch-3
     twhite@siesta.arch--2005/siesta-test--ac-update--1.4--patch-1
     twhite@siesta.arch--2005/siesta-test--ac-update--1.4--patch-2

=======================================================================

2005-11-04 15:22:47 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-15

    Summary:
      Merge of J. Gale's branch: O(N), D&C, zmatrix, dEtol + bug fixes
    Revision:
      siesta-devel--reference--1.4--patch-15

    * Order N lower memory option expanded
    
    (1) Lower memory version of gradient and denmat have been added: Here the algorithm is
        adapted along the lines of ener3lomem.F such that the size of the buxstore(2)
        communication arrays is reduced by a factor of 2 relative to the standard versions.
        Since these arrays can be the largest ones, it makes it feasible to run larger
        order N jobs.
    
        Files involved: denmatlomem.F, gradientlomem.F, egandd.F
    
    (2) Parallel division of work in order N: A check is now added to ensure that the 
        number of domains created is larger than the number of processors so that no processor
        should be without work. 
    
        Files involved: initparallel.F
    
    (3) Reduce alloc/dealloc in order N set up: The algorithm for subroutines in on_subs.F 
        has been changed to ensure that the resizing of arrays is performed just once in 
        each case.
    
        Files involved: on_subs.F
    
    * Divide and conquer could now be made the default algorithm for diagonalisation:
      (Actual setting pending)
    
        Files involved: redata.F, rdiag.F, cdiag.F
    
    * Z-matrix optimisation included
    
    (1) Z-matrix added: This allows a Z-matrix block to be specified for the structural
        input, with the ability to specify symbolic variables, constants and constraints,
        as well as offering control over the optimisation process. 
    
        Files: zmatrix.F, siesta.F, cgvc_zmatrix.F, coor.F, conjgr.F
              
        Also added example and test case.
    
    (2) parsing routine extended: The option to return an array that indicates the order
        in which parameters were read has been added.
    
        Files: parsing.f
    
    (3) Makefile: New routines zmatrix.F, gradientlomem.F & denmatlomem.F added
    
    (4) New units added: Units relevant to angular degrees of freedom added
    
        Files: fdf/fdf.f
    
    (5) Mesh output returned to standard form: The output of the mesh details had been changed
        and so the format has been restored to the existing format (same information - different
        line spacing)
    
        Files: meshsubs.F
    
    (6) coor.f renamed to coor.F
    
    * Energy convergence criterion added for SCF
    * Introduce new fdf symbol DM.RequireEnergyConvergence to make the test
      optional. (At least, to reproduce old test results)
    
    BUG FIXES
    
     -  initparallel.F modified so that ncell is set based on absolute size of ucell
        to allow for negative cell parameters
     -  Format for Qtot from mulliken increased to f12.3 to avoid ******
     -  Banner changed to better handle 1 node being run with MPI
    
      Corrections to order N from Toby:
     - setatomnodes.f - error in referencing of y index when counting number of atoms in X blocks
     - declared sizes of numc/numcold corrected to nbasisloc in extrapolon.f
    
    * Initializations:
    
    - lastna in meshsubs.F
    - ilm in spher_harm.f
    - rngmax in ranger.f
    - CartesianB and CartesianF in zmatrix.F
    
     ( Note ** : stressl MUST NOT be initialized to zero in cellxc (inout) )
    
    Other:
    
    - User pxfabort in sys.F
    - Add intents to arguments in ranger.f
    - Replace "shrink=false" by "copy=.false." in re_alloc of listh in siesta.F
    - Use units module in zmatrix.F
    - Import IOnode in zmatrix.F
    - Add deg in units.f90
    
    * Declare iamove as (*) in ranger
    * Initialize ianneal in redata.F
    * Fix bug in alloc_err bounds array
    
    * Go back to "traditional" h2o test (without Broyden).
    * Reset target pressure to 100 Gpa in var_cell test.
    
    ** Add elec_corr_setup call to user.basis case. 

    new files:
     Examples/Zmatrix/.arch-ids/=id
     Examples/Zmatrix/.arch-ids/h2oZ.fdf.id
     Examples/Zmatrix/h2oZ.fdf Src/.arch-ids/cgvc_zmatrix.F.id
     Src/.arch-ids/conjgr_old.f.id Src/.arch-ids/coor.F.id
     Src/.arch-ids/denmatlomem.F.id
     Src/.arch-ids/gradientlomem.F.id Src/.arch-ids/zmatrix.F.id
     Src/Tests/Outs/.arch-ids/h2oZ.out.id Src/Tests/Outs/h2oZ.out
     Src/Tests/h2oZ/.arch-ids/=id
     Src/Tests/h2oZ/.arch-ids/h2oZ.fdf.id
     Src/Tests/h2oZ/.arch-ids/h2oZ.pseudos.id
     Src/Tests/h2oZ/.arch-ids/makefile.id Src/Tests/h2oZ/h2oZ.fdf
     Src/Tests/h2oZ/h2oZ.pseudos Src/Tests/h2oZ/makefile
     Src/cgvc_zmatrix.F Src/conjgr_old.f Src/coor.F
     Src/denmatlomem.F Src/gradientlomem.F Src/zmatrix.F

    removed files:
     Src/.arch-ids/coor.f.id Src/coor.f

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/Makefile
     Src/Tests/Makefile Src/Tests/h2o/h2o.fdf
     Src/Tests/var_cell/var_cell.fdf Src/alloc.F90 Src/cdiag.F
     Src/cgvc.F Src/cgwf.F Src/conjgr.f Src/egandd.F
     Src/extrapolon.f Src/fdf/fdf.f Src/globalise.F Src/initatom.f
     Src/initparallel.F Src/iocg.f Src/m_iostruct.f
     Src/m_mpi_utils.F Src/meshsubs.F Src/mulliken.F Src/on_subs.F
     Src/parsing.f Src/ranger.f Src/rdiag.F Src/redata.F
     Src/setatomnodes.F Src/siesta.F Src/spher_harm.f Src/sys.F
     Src/units.f90 Src/version.F90 version.info

    new directories:
     Examples/Zmatrix Examples/Zmatrix/.arch-ids Src/Tests/h2oZ
     Src/Tests/h2oZ/.arch-ids

    new patches:
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--base-0
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-1
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-2
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-3
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-4
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-5
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-6
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-7
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-8
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-9
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-10
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-11
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-12
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-13
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-14
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-15
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-16
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-17
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-18
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-19
     jgale@siesta.arch--2005/siesta-devel--jgale--1.4--patch-20
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--base-0
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-1
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-2
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-3
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-4
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-5
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-6
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-7
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-8
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-9
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-10
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-11
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-12
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-13
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-14
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-15
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-16
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-17
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-18
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-19
     siesta@uam.es--2005/siesta-devel--jg-merge--1.4--patch-20
     twhite@siesta.arch--2005/siesta-devel--zmatrix--1.4--patch-1
     twhite@siesta.arch--2005/siesta-devel--zmatrix--1.4--patch-3

=======================================================================

2005-10-04 13:59:58 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-14

    Summary:
      Assorted bug and portability fixes -- more wrappers
    Revision:
      siesta-devel--reference--1.4--patch-14

    * Fix mpi bug (incorrect use of temporary arrays for reduction
      operation) in mulliken.F.
    
    * Merge O(N) spatial-decomposition bugfixes from From Toby White's
      dedicated branch (up to patch-10):
    
      globalise.F    - declare variables.
      initparallel.F - don't make too many spatial cells.
      setatomnodes.F - correct initialization so that non-2-3-5 
                       case works.
    
    * Portability fixes, mostly dealing with MPI support.
    
    * More wrapping of MPI calls in several routines. New program
      mpi_test.F90 to test wrappers.
    
    * Assorted bug fixes (wrapping of fdf calls) and cosmetic changes.
    

    new files:
     Src/.arch-ids/mpi_test.F90.id
     Src/Confs/.arch-ids/matterhorn-serial.conf.id
     Src/Confs/matterhorn-serial.conf
     Src/Tests/Scripts/.arch-ids/=id
     Src/Tests/Scripts/.arch-ids/arina.pbs.id
     Src/Tests/Scripts/.arch-ids/matterhorn-gm.sge.id
     Src/Tests/Scripts/arina.pbs
     Src/Tests/Scripts/matterhorn-gm.sge Src/mpi_test.F90

    modified files:
     Src/MPI/Makefile Src/MPI/generate.sh Src/MPI/mpi.F
     Src/Makefile Src/Sys/cscs-cray-mpi.make Src/Sys/cscs-cray.make
     Src/Tests/Makefile Src/Tests/h2o/h2o.fdf Src/alloc.F90
     Src/arch.make.in Src/cgvc.F Src/fft3d.F Src/globalise.F
     Src/initparallel.F Src/linpack.F Src/m_broyden_mixing.f
     Src/m_fdf_global.F90 Src/m_mpi_utils.F Src/memoryinfo.F
     Src/mulliken.F Src/nlefsm.f Src/overfsm.f Src/redata.F
     Src/setatomnodes.F Src/siesta.F version.info

    renamed files:
     Src/.arch-ids/m_wrappers.F90.id
       ==> Src/.arch-ids/m_fdf_global.F90.id
     Src/m_wrappers.F90
       ==> Src/m_fdf_global.F90

    new directories:
     Src/Tests/Scripts Src/Tests/Scripts/.arch-ids

    new patches:
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--base-0
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-1
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-2
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-3
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-4
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-5
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-6
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-7
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-8
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-9
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-10
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-11
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-12
     agarcia@siesta.arch--2005/siesta--mpiwrap--1.4--patch-13
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-72
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-73
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-74
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-75
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-76
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-77
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-78
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-8
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-9
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-10

=======================================================================

2005-10-04 13:49:31 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-13

    Summary:
      New kind of structure input -- constant-volume variable-cell - no sig
    Revision:
      siesta-devel--reference--1.4--patch-13

    * Using the option UseStructFile, the structural information will be
    read from SiestaLabel.STRUCT_IN. This option is incompatible with
    UseSaveXV, and will prevail.
    
    * Siesta now always produces a SiestaLabel.STRUCT_OUT file.
    
    The .STRUCT_XX files have the cell vectors in Ang and the atomic
    positions in atomic coordinates.
    
    * The option MD.ConstantVolume will result in a constant-volume
    variable-cell simulation (i.e., only the cell shape and the atomic
    positions change).
    
    * After every MD or relaxation step, Siesta now writes the "enthalpy"
    E+pV, where p is actually the target pressure.
    
    * New tests: var_cell and constant_volume.
    
    * Changed si test to use the new UseStructFile feature.
    
    * Removed "sig" fossils from source.
    
    

    new files:
     Src/.arch-ids/m_iostruct.f.id
     Src/Tests/Outs/.arch-ids/constant_volume.out.id
     Src/Tests/Outs/.arch-ids/var_cell.out.id
     Src/Tests/Outs/constant_volume.out Src/Tests/Outs/var_cell.out
     Src/Tests/constant_volume/.arch-ids/=id
     Src/Tests/constant_volume/.arch-ids/constant_volume.fdf.id
     Src/Tests/constant_volume/.arch-ids/constant_volume.pseudos.id
     Src/Tests/constant_volume/.arch-ids/makefile.id
     Src/Tests/constant_volume/constant_volume.fdf
     Src/Tests/constant_volume/constant_volume.pseudos
     Src/Tests/constant_volume/makefile
     Src/Tests/si/.arch-ids/si.STRUCT_IN.id
     Src/Tests/si/si.STRUCT_IN Src/Tests/var_cell/.arch-ids/=id
     Src/Tests/var_cell/.arch-ids/makefile.id
     Src/Tests/var_cell/.arch-ids/var_cell.fdf.id
     Src/Tests/var_cell/.arch-ids/var_cell.pseudos.id
     Src/Tests/var_cell/makefile Src/Tests/var_cell/var_cell.fdf
     Src/Tests/var_cell/var_cell.pseudos Src/m_iostruct.f

    removed files:
     Src/.arch-ids/sig.f.id Src/Tests/.arch-ids/cmpsig.f.id
     Src/Tests/.arch-ids/do.sh.id Src/Tests/Sigs/.arch-ids/=id
     Src/Tests/Sigs/.arch-ids/batio3.sig.id
     Src/Tests/Sigs/.arch-ids/fe.sig.id
     Src/Tests/Sigs/.arch-ids/h2o.sig.id
     Src/Tests/Sigs/.arch-ids/h2o_dos.sig.id
     Src/Tests/Sigs/.arch-ids/h2o_orderN.sig.id
     Src/Tests/Sigs/.arch-ids/si64.sig.id
     Src/Tests/Sigs/.arch-ids/sih.sig.id Src/Tests/Sigs/batio3.sig
     Src/Tests/Sigs/fe.sig Src/Tests/Sigs/h2o.sig
     Src/Tests/Sigs/h2o_dos.sig Src/Tests/Sigs/h2o_orderN.sig
     Src/Tests/Sigs/si64.sig Src/Tests/Sigs/sih.sig
     Src/Tests/cmpsig.f Src/Tests/do.sh Src/sig.f

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/Makefile
     Src/Tests/Makefile Src/Tests/Outs/si.out Src/Tests/si/makefile
     Src/Tests/si/si.fdf Src/Tests/test.mk Src/cgvc.F Src/outcell.f
     Src/siesta.F version.info

    new directories:
     Src/Tests/constant_volume Src/Tests/constant_volume/.arch-ids
     Src/Tests/var_cell Src/Tests/var_cell/.arch-ids

    removed directories:
     Src/Tests/Sigs Src/Tests/Sigs/.arch-ids

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-70
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-71

=======================================================================

2005-10-04 13:43:52 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-12

    Summary:
      Flexible precision for grid arrays (and some O(N) work arrays)
    Revision:
      siesta-devel--reference--1.4--patch-12

    * Arrays on the grid were previously single-precision. Now they can be
    made double precision by defining the pre-processor symbol GRID_DP, i.e.:
    
    DEFS= -DGRID_DP   in arch.make, or, if using configure:
    
    DEFS="GRID_DP" ./configure
    
    * When doing I/O of the grid arrays to file, SINGLE PRECISION is used,
    regardless of the internal representation chosen.
    
    * iorho.F has been turned into m_iorho.F, and the subroutine 'iorho'
    split in three: 'write_rho' (the only one currently in use within Siesta),
    'read_rho', and 'check_rho'.  dhscf.F has been updated accordingly.
    
    * forhar.F has been turned into a module.
    
    * An extra pre-processor symbol ON_DP has been introduced to switch the
    precision of some work arrays defined in module 'on_main' in file onmod.F.
    
    * Some cosmetic changes in makefiles (notably for denchar support).
    
    modified files:
     Src/MPI/mpi.F Src/Makefile Src/Tests/h2o/h2o.fdf Src/cellxc.F
     Src/chempot.F Src/dfscf.f Src/dhscf.F Src/diagon.F
     Src/dipole.F Src/efield.F Src/fft3d.F Src/forhar.f
     Src/m_iorho.F Src/m_memory.F Src/memory.F Src/meshmatrix.F
     Src/meshsubs.F Src/onmod.F Src/poison.F Src/precision.F
     Src/reord.f Src/rhooda.f Src/rhoofd.f Src/rhoofdsp.f
     Src/siesta.F Src/vmat.f Src/vmatsp.f version.info

    renamed files:
     Src/.arch-ids/iorho.F.id
       ==> Src/.arch-ids/m_iorho.F.id
     Src/iorho.F
       ==> Src/m_iorho.F

    new patches:
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--base-0
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-1
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-2
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-3
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-4
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-5
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-6
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-7
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-8
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-9
     agarcia@siesta.arch--2005/siesta--grid-reals--1.4--patch-10
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-69

=======================================================================

2005-10-04 13:39:54 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-11

    Summary:
      O(N) spatial bugfixes merge + simple wallclock stamper
    Revision:
      siesta-devel--reference--1.4--patch-11

    * (use m_wallclock) call wallclock("some description") will
      write out in file "CLOCK" the elapsed wall-clock time at that
      point in the program.
    
    * Merge O(N) spatial-decomposition bugfixes, up to patch-7 of T. White's branch:
    
       deallocation order change
       use units in initdm
       spatial bugfix
       extrapolon array declarations
       Don't allow ON.MaxIter = 0 in redata.
       fix misdeclaration in extrapolon.F
    
    

    new files:
     Src/.arch-ids/m_wallclock.f90.id Src/m_wallclock.f90

    modified files:
     Src/Makefile Src/diagon.F Src/extrapolon.f Src/initdm.F
     Src/redata.F Src/setatomnodes.F Src/setspatial.f Src/siesta.F
     Src/spatial.F version.info

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-67
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-68
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--base-0
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-1
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-2
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-3
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-4
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-5
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-6
     twhite@siesta.arch--2005/siesta-bugfix--spatial--1.4--patch-7

=======================================================================

2005-09-07 09:24:37 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-10

    Summary:
      Fix bug in xc.f
    Revision:
      siesta-devel--reference--1.4--patch-10

    * In pzxc, DECPDN was erroneously given the value that should have
    been assigned to DECFDN when rs>1.0. This bug only affects (apparently
    very mildly, if at all) spin-polarized calculations with CA xc.
    
    (Reported on Aug. 12, 2005 by Zhiqin Zhao <zzhao@ee.duke.edu>)
    

    modified files:
     Pseudo/atom/xc.f Src/xc.f version.info

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-66

=======================================================================

2005-09-07 09:23:39 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-9

    Summary:
      Add output of Voigt components of stress tensor in Kbar.
    Revision:
      siesta-devel--reference--1.4--patch-9

    * The output is done after every geometry iteration, and not at the end.

    modified files:
     Src/siesta.F

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-64
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-65

=======================================================================

2005-09-07 09:07:43 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-8

    Summary:
      Changes for portability -- new Test building framework
    Revision:
      siesta-devel--reference--1.4--patch-8

    * New building method for tests (in Src/Tests) that allows stand-alone 
    running of each test, and easier changes in the running method.
    
    * Updates to the autoconf procedures, mostly in the area of parallel support.
      New Src/Confs directory created to hold small files containing the right
      invocation of configure for several computers.
    
    * Updated MPI makefile (by Toby White)
    
    * Changes to support several architectures and compilers, 
      including clusters at ETH and the Univ. of Zurich, and the Cray at
      the CSCS. Apart from .make  (and Confs/*.sh files), some files had
      to be changed due to quirks in pgf90...:
    
       * electrostatic.f has to be compiled without optimization.
       * some module interfaces have to be made even more explicit.
    
    * Modification of the structure of the siesta_cml hierarchy, as well as
      that of the timestamp support subroutines.
    

    new files:
     Src/.arch-ids/siesta_cmlsubs.F90.id Src/Confs/.arch-ids/=id
     Src/Confs/.arch-ids/arina-mpi.conf.id
     Src/Confs/.arch-ids/arina-serial.conf.id
     Src/Confs/.arch-ids/matterhorn-gm.conf.id
     Src/Confs/.arch-ids/pegasus-mpi.conf.id
     Src/Confs/arina-mpi.conf Src/Confs/arina-serial.conf
     Src/Confs/matterhorn-gm.conf Src/Confs/pegasus-mpi.conf
     Src/Sys/.arch-ids/cscs-cray-mpi.make.id
     Src/Sys/.arch-ids/cscs-cray.make.id
     Src/Sys/.arch-ids/pgf90-matterhorn-gm.make.id
     Src/Sys/.arch-ids/pgf90-matterhorn-mpich.make.id
     Src/Sys/.arch-ids/pgf95-matterhorn.make.id
     Src/Sys/cscs-cray-mpi.make Src/Sys/cscs-cray.make
     Src/Sys/pgf90-matterhorn-gm.make
     Src/Sys/pgf90-matterhorn-mpich.make
     Src/Sys/pgf95-matterhorn.make Src/Tests/.arch-ids/test.mk.id
     Src/Tests/Outs/.arch-ids/fe_broyden.out.id
     Src/Tests/Outs/.arch-ids/mgco3.out.id
     Src/Tests/Outs/.arch-ids/si.out.id
     Src/Tests/Outs/fe_broyden.out Src/Tests/Outs/mgco3.out
     Src/Tests/Outs/si.out Src/Tests/Pseudos/.arch-ids/C.psf.id
     Src/Tests/Pseudos/.arch-ids/Mg.psf.id Src/Tests/Pseudos/C.psf
     Src/Tests/Pseudos/Mg.psf
     Src/Tests/batio3/.arch-ids/makefile.id
     Src/Tests/batio3/makefile
     Src/Tests/bessel/.arch-ids/makefile.id
     Src/Tests/bessel/makefile Src/Tests/fe/.arch-ids/makefile.id
     Src/Tests/fe/makefile
     Src/Tests/fe_broyden/.arch-ids/makefile.id
     Src/Tests/fe_broyden/makefile
     Src/Tests/floating/.arch-ids/makefile.id
     Src/Tests/floating/makefile
     Src/Tests/h2o/.arch-ids/makefile.id Src/Tests/h2o/makefile
     Src/Tests/h2o_dos/.arch-ids/makefile.id
     Src/Tests/h2o_dos/makefile
     Src/Tests/h2o_orderN/.arch-ids/makefile.id
     Src/Tests/h2o_orderN/makefile Src/Tests/mgco3/.arch-ids/=id
     Src/Tests/mgco3/.arch-ids/makefile.id
     Src/Tests/mgco3/.arch-ids/mgco3.fdf.id
     Src/Tests/mgco3/.arch-ids/mgco3.pseudos.id
     Src/Tests/mgco3/makefile Src/Tests/mgco3/mgco3.fdf
     Src/Tests/mgco3/mgco3.pseudos Src/Tests/si/.arch-ids/=id
     Src/Tests/si/.arch-ids/makefile.id
     Src/Tests/si/.arch-ids/si.fdf.id
     Src/Tests/si/.arch-ids/si.pseudos.id Src/Tests/si/makefile
     Src/Tests/si/si.fdf Src/Tests/si/si.pseudos
     Src/Tests/si64/.arch-ids/makefile.id Src/Tests/si64/makefile
     Src/Tests/sih/.arch-ids/makefile.id Src/Tests/sih/makefile
     Src/Tests/test.mk Src/m4/.arch-ids/TW_FC_KINDS.m4.id
     Src/m4/TW_FC_KINDS.m4 Src/siesta_cmlsubs.F90

    removed files:
     Src/.arch-ids/doversion.sh.id Src/doversion.sh

    modified files:
     Src/Libs/makefile Src/MPI/Makefile Src/MPI/generate.sh
     Src/Makefile Src/NetCDF/Makefile Src/Sys/compaq-mpi.make
     Src/Sys/darwin.make Src/Sys/g95-nolibs.make Src/Sys/hpcx.make
     Src/Sys/ibm-regatta-p4.make Src/Sys/ibmp3-mpi.make
     Src/Sys/ibmp3.make Src/Sys/intel-mkl.make
     Src/Sys/intel-nolibs.make Src/Sys/itanium2-mpi.make
     Src/Sys/itanium2.make Src/Sys/lahey-lam.make
     Src/Sys/lahey-mpich.make Src/Sys/lahey-nolibs.make
     Src/Sys/lahey.make Src/Sys/macosx-nag-mpi.make
     Src/Sys/macosx-nag.make Src/Sys/macosx-xlf.make
     Src/Sys/nolibs.make Src/Sys/osfdxml-mpich.make
     Src/Sys/osfdxml.make Src/Sys/osfdxmlcdf.make
     Src/Sys/pgf90-lam.make Src/Sys/pgf90-mpich.make
     Src/Sys/pgf90-nolibs.make Src/Sys/pgf90.make Src/Sys/sgi.make
     Src/Sys/sgi64-cdf.make Src/Sys/sgi64-lam-cdf.make
     Src/Sys/sgi64-lam.make Src/Sys/sgi64-mpi_fermat.make
     Src/Sys/sgi64-mpich-cdf.make Src/Sys/sgi64-mpich.make
     Src/Sys/sgin32-mpi.make Src/Sys/sun-nolibs.make
     Src/Sys/t3e.make Src/Tests/Makefile Src/Tests/h2o/h2o.fdf
     Src/aclocal.m4 Src/arch.make.in Src/configure Src/configure.ac
     Src/denmat.F Src/egandd.F Src/ener3.F Src/ener3lomem.F
     Src/fdf/makefile Src/gradient.F Src/m4/TW_CHECK_SCALAPACK.m4
     Src/ordern.F Src/pdos.F Src/siesta.F Src/siesta_cml.f90
     Src/timestamp.f90 Src/wxml/makefile Src/xmlparser/makefile
     version.info

    renamed files:
     Src/.arch-ids/siesta_cml.F90.id
       ==> Src/.arch-ids/siesta_cml.f90.id
     Src/siesta_cml.F90
       ==> Src/siesta_cml.f90

    new directories:
     Src/Confs Src/Confs/.arch-ids Src/Tests/mgco3
     Src/Tests/mgco3/.arch-ids Src/Tests/si Src/Tests/si/.arch-ids

    new patches:
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--base-0
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-1
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-2
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-3
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-4
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-5
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-6
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-7
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-8
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-9
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-10
     agarcia@siesta.arch--2005/siesta--cscs-fix--1.4--patch-11
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-48
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-49
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-50
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-51
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-52
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-53
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-54
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-55
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-56
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-57
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-58
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-59
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-60
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-61
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-62
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-63
     agarcia@siesta.arch--2005/siesta-devel--tests--1.4--base-0
     agarcia@siesta.arch--2005/siesta-devel--tests--1.4--patch-1
     agarcia@siesta.arch--2005/siesta-devel--tests--1.4--patch-2
     agarcia@siesta.arch--2005/siesta-devel--tests--1.4--patch-3
     agarcia@siesta.arch--2005/siesta-devel--tests--1.4--patch-4
     twhite@siesta.arch--2005/siesta-bugfix--mpimake--1.4--base-0
     twhite@siesta.arch--2005/siesta-bugfix--mpimake--1.4--patch-1
     twhite@siesta.arch--2005/siesta-bugfix--mpimake--1.4--patch-2
     twhite@siesta.arch--2005/siesta-bugfix--mpimake--1.4--patch-3
     twhite@siesta.arch--2005/siesta-bugfix--mpimake--1.4--patch-4
     twhite@siesta.arch--2005/siesta-bugfix--mpimake--1.4--patch-5

=======================================================================

2005-08-08 14:02:46 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-7

    Summary:
      BUGfix -- stressl was initialized to zero in cellxc.
    Revision:
      siesta-devel--reference--1.4--patch-7

    * (Bug introduced in:
           siesta@uam.es--2005/siesta-devel--reference--1.4--patch--3)
    
      The wrong intent specification had led to an incorrect zeroing
      of stressl in cellxc.F, what resulted in very wrong values for
      the stress tensor and the pressure. Fixed.
    

    modified files:
     Src/cellxc.F version.info

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-46
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-47

=======================================================================

2005-08-05 14:25:41 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-6

    Summary:
      Integration of xml parser (SAX version) -- pdosxml direct compilation
    Revision:
      siesta-devel--reference--1.4--patch-6

    * Copied xmlf90/sax, and adapted the makefile.
      Modified appropriately the main Makefile.
    
    * Util/pdosxml/pdos is an exhibit for the use of the XML parser (SAX version)
      The makefile has been changed to pick up the relevant library and modules
      from ../../Src
    

    new files:
     Src/xmlparser/.arch-ids/=id
     Src/xmlparser/.arch-ids/flib_sax.f90.id
     Src/xmlparser/.arch-ids/m_buffer.f90.id
     Src/xmlparser/.arch-ids/m_charset.f90.id
     Src/xmlparser/.arch-ids/m_converters.f90.id
     Src/xmlparser/.arch-ids/m_debug.f90.id
     Src/xmlparser/.arch-ids/m_dictionary.f90.id
     Src/xmlparser/.arch-ids/m_elstack.f90.id
     Src/xmlparser/.arch-ids/m_entities.f90.id
     Src/xmlparser/.arch-ids/m_fsm.f90.id
     Src/xmlparser/.arch-ids/m_io.f90.id
     Src/xmlparser/.arch-ids/m_reader.f90.id
     Src/xmlparser/.arch-ids/m_xml_error.f90.id
     Src/xmlparser/.arch-ids/m_xml_parser.f90.id
     Src/xmlparser/.arch-ids/makefile.id Src/xmlparser/flib_sax.f90
     Src/xmlparser/m_buffer.f90 Src/xmlparser/m_charset.f90
     Src/xmlparser/m_converters.f90 Src/xmlparser/m_debug.f90
     Src/xmlparser/m_dictionary.f90 Src/xmlparser/m_elstack.f90
     Src/xmlparser/m_entities.f90 Src/xmlparser/m_fsm.f90
     Src/xmlparser/m_io.f90 Src/xmlparser/m_reader.f90
     Src/xmlparser/m_xml_error.f90 Src/xmlparser/m_xml_parser.f90
     Src/xmlparser/makefile

    modified files:
     Src/Makefile Util/pdosxml/makefile version.info

    new directories:
     Src/xmlparser Src/xmlparser/.arch-ids

    new patches:
     agarcia@siesta.arch--2005/siesta--xmlparser--1.4--base-0
     agarcia@siesta.arch--2005/siesta--xmlparser--1.4--patch-1
     agarcia@siesta.arch--2005/siesta--xmlparser--1.4--patch-2
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-45

=======================================================================

2005-08-05 14:17:41 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-5

    Summary:
      Get rid of NODAT hack
    Revision:
      siesta-devel--reference--1.4--patch-5

    (From Toby White)
    
    * In MPI/mpi.F, rename all MPI_(realprecision) constants to 
      DAT_(real_precision) according to machine type. Then
      recreate MPI_(realprecision) so now it always points to
      correct precision. Remove NODAT hack.
    * Go through all .F and .F90 files, and remove all
      references to NODAT and DAT_anything.
    
    (AG: In merging, the new redata.F has been discarded, as the
         version closest to reference had done away with direct MPI calls.
         Also, m_mpi_utils has been updated to remove the NODAT sections)

    modified files:
     Src/MPI/mpi.F Src/MPI/pi3.F Src/alloc.F90 Src/bands.F
     Src/broadcast_basis.F Src/cellxc.F Src/cgvc.F Src/cgwf.F
     Src/chempot.F Src/denmat.F Src/detover.F Src/dhscf.F
     Src/diag2g.F Src/diag2k.F Src/diagg.F Src/diagk.F Src/diagkp.F
     Src/diagsprl.F Src/dipole.F Src/efield.F Src/eggbox.F
     Src/ener3.F Src/ener3lomem.F Src/fft3d.F Src/globalise.F
     Src/gradient.F Src/initparallel.F Src/iodm.F Src/iohs.F
     Src/iolwf.F Src/iopipes.F90 Src/iorho.F Src/ioxv.F
     Src/kgridinit.F Src/m_mpi_utils.F Src/meshmatrix.F
     Src/mulliken.F Src/optical.F Src/ordern.F Src/pdosg.F
     Src/pdosk.F Src/pdoskp.F Src/phonon.F Src/pulayx.F Src/pxf.F90
     Src/readsp.F Src/reoptical.F Src/repol.F Src/savepsi.F
     Src/siesta.F Src/siesta_cml.F90 Src/timer.F
     Src/transition_rate.F Src/vmb.F Src/writewave.F Src/xcmod.F

    modified directories:
     Src/m4

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-43
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-44
     twhite@siesta.arch--2005/siesta-bugfix--parallel-tidy--1.4--patch-1
     twhite@siesta.arch--2005/siesta-bugfix--parallel-tidy--1.4--patch-2

=======================================================================

2005-08-02 14:07:31 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-4

    Summary:
      
    Revision:
      siesta-devel--reference--1.4--patch-4

    
    Patches applied:
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-41
       Support for LAM at ETH, pgf90
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-42
       Print out stress tensor in kbar
    

    new files:
     Src/Sys/.arch-ids/pgf90-lam.make.id Src/Sys/pgf90-lam.make

    modified files:
     Src/MPI/Makefile Src/MPI/generate.sh Src/siesta.F

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-41
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-42

=======================================================================

2005-08-02 13:36:28 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-3

    Summary:
      Integration of Broyden mixing. Real kinds discovery for MPI
    Revision:
      siesta-devel--reference--1.4--patch-3

    * A new method for SCF convergence acceleration, based on
    the Broyden-Vanderbilt-Louie-Johnson scheme,  has been implemented.
    
    The major new pieces of code are m_broyden_mixing.f (similar in structure
    to pulayx) and m_broyddj.f90, which implements the method and takes care
    of hiding all the storage complexity.
    
     [ The patches (later taken back)
    
     * agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-5
       Annealing framework
    
     * agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-6
       Fine-tuning of annealing framework
    
     contain an early attempt to couple the Broyden scheme to a
     simulated-anealing kind of procedure. ]
    
    * To aid in the parallelization of m_broyddj.f90, a new set of MPI wrapper
    routines (in module m_mpi_utils) has been implemented. These simplify the
    calls to the most common MPI routines, and are generic, thus avoiding the
    need to worry about the MPI type qualifiers.
    
    * Similar wrappers for fdf calls have been implemented in m_wrappers.F90.
      They are mainly used in redata.F, which has been slimmed down significantly.
      
    * A new stub module m_options is a prototype for a program-wide repository
      of runtime options, to be phased in in stages.
    
    * Some of the arrays in m_broyddj.f90 can be single or double precision. 
      Precision is selected through the pre-processor symbol BROYDEN_DP, which
      is checked-for in precision.F. The same will be done in the future for
      the arrays on the grid.
    
    * The input variables related to the Broyden mixing method are documented
      in the manual. The H2O test has been converted to use the Broyden method,
      and a new fe_broyden test added.
    
    * Misc: Added top-level Specs directory to hold Specification documents (...).
            Added Specs/Broyden.spec.
    
     -----------
    * A simple program "kind_explorer" now finds the kind
    parameters for real numbers, and feeds them to configure.sh
    in the MPI building process.
    
    To Do: Somehow connect the mpif.h kind parameters and
    the native ones.
    
    * Add some comments in precision.F
    
     -----------
    
    * Portability and cosmetic fixes:
    
       Include spatial.o in denchar object list
       Initialize stressl in cellxc
       Removed size() on deallocated array in diagon.F
       Fix SYS in g95-nolibs.make
    

    new files:
     Specs/.arch-ids/=id Specs/.arch-ids/Broyden.specs.id
     Specs/Broyden.specs Src/.arch-ids/m_broyddj.f90.id
     Src/.arch-ids/m_broyden_mixing.f.id
     Src/.arch-ids/m_history.f90.id Src/.arch-ids/m_mpi_utils.F.id
     Src/.arch-ids/m_options.f90.id Src/.arch-ids/m_smearing.f.id
     Src/.arch-ids/m_wrappers.F90.id
     Src/MPI/.arch-ids/kind_explorer.f90.id
     Src/MPI/kind_explorer.f90 Src/Tests/fe_broyden/.arch-ids/=id
     Src/Tests/fe_broyden/.arch-ids/fe_broyden.fdf.id
     Src/Tests/fe_broyden/.arch-ids/fe_broyden.pseudos.id
     Src/Tests/fe_broyden/fe_broyden.fdf
     Src/Tests/fe_broyden/fe_broyden.pseudos Src/m_broyddj.f90
     Src/m_broyden_mixing.f Src/m_history.f90 Src/m_mpi_utils.F
     Src/m_options.f90 Src/m_smearing.f Src/m_wrappers.F90

    modified files:
     Docs/siesta.ind Docs/siesta.tex Src/MPI/Makefile Src/Makefile
     Src/Sys/g95-nolibs.make Src/Tests/Makefile
     Src/Tests/h2o/h2o.fdf Src/Tests/si64/si64.fdf Src/atmfuncs.f
     Src/cellxc.F Src/chkdim.f Src/diagon.F Src/precision.F
     Src/redata.F Src/siesta.F Src/sys.F version.info

    new directories:
     Specs Specs/.arch-ids Src/Tests/fe_broyden
     Src/Tests/fe_broyden/.arch-ids

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--base-0
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-1
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-2
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-3
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-4
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-5
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-6
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-7
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-8
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-9
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-10
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-11
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-12
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-13
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-14
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-15
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-16
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-17
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-18
     agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-19
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-33
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-34
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-35
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-36
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-37
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-38
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-39
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-40

=======================================================================

2005-06-08 12:55:52 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-2

    Summary:
      Siesta 1.4.55 and .56, recipes.f as module, g95, version id
    Revision:
      siesta-devel--reference--1.4--patch-2

     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-26
       Patch for Siesta 1.4.55
    
    Version: 1.4.55
    Date: 2005/06/02 11:30 GMT
    Title: U option in matel
    Author: Jose M. Soler <jose.soler@uam.es>
    
    Added ability of matel of calculating electrostatic interaction
    between two atom-centered charge distributions ('U' option).
    This option is not used in siesta, but has been included to
    maintain a unique version of matel from other codes.
    
    Files:
    atmfuncs.f    xphiatm, yphiatm, and zphiatm moved to matel
    fermid.F      derf and derfc moved to recipes.f
    matel.f       New option 'U'
    recipes.f     Functions derf and derfc moved here from fermid.F
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-27
       Change local name of izamax in linpack.F
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-28
       Two array copies rewritten as do loops in alloc.F90
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-29
       fsiesta: sleep 10 seconds before start of siesta
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-30
       Siesta 1.4.56 plus modularization of recipes.f
    
    (Part of 1.4.56 committed in two previous patches)
           -- linpack.F
           -- alloc.F90
    
    Version: 1.4.56
    Date: 2005/06/02 12:30 GMT
    Title: Patches to compiler/system bugs
    Author: Eduardo Anglada <eduardo.anglada@uam.es>
    
    Miscellaneous patches to apparent compiler or system bugs.
    
    Files:
    atom.f        Single quotes changed to double quotes
    
    * (A. Garcia)
    
    - Modularization of recipes.f, and thus
      changes in atom.f, electrostatic.f, radial.f, radfft.f, fermid.F, and matel.f
    
    - Fix of calls to spline and splint in matel to pass whole array section.
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-31
       Support for g95 -- atom.f fix -- Makefile fix
    
    * Added Src/Sys/g95-nolibs.make 
      (g95 can be obtained from http://g95.sourceforge.net/)
    * Fixed a bug in atom.f introduced in the previous patch.
    * Put recipes.o near the front of the modules list to
      satisfy dependencies.
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-32
       Add arch version string to executable
    
    A  hook has been added to {arch}/=hook, which is called
    by a simple script in $HOME/.arch-params/hook:
    
    #!/bin/sh
    hook="$ARCH_TREE_ROOT/{arch}/=hook"
    if [ -x "$hook" ] ;  then
      "$hook" $@
    fi
    
    The only useful task of the hook is a "pre-commit"
    generation of a version.info file, which is
    also being commited in this patch.
    
    * A script Src/doversion.sh inserts the contents
    of version.info into an appropriate place in version.F90.
    
    NOTE: This does not quite work, as by the time the hook is
    run, the changeset has already been finalized, and the
    new version.info is not committed.

    new files:
     .arch-ids/version.info.id Src/.arch-ids/doversion.sh.id
     Src/Sys/.arch-ids/g95-nolibs.make.id Src/Sys/g95-nolibs.make
     Src/doversion.sh version.info

    modified files:
     Src/Makefile Src/alloc.F90 Src/atmfuncs.f Src/atom.f
     Src/electrostatic.f Src/fermid.F Src/linpack.F Src/matel.f
     Src/radfft.f Src/radial.f Src/recipes.f Src/version.F90
     Util/SiestaSubroutine/fsiesta.f90

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-25
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-26
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-27
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-28
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-29
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-30
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-31
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-32

=======================================================================

2005-05-31 11:01:07 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-1

    Summary:
      Fix Src/Tests/Makefile and h2o.fdf
    Revision:
      siesta-devel--reference--1.4--patch-1

    Changes to the test makefile and h2o.fdf
    had been inadvertently commited.
    

    modified files:
     Src/Tests/Makefile Src/Tests/h2o/h2o.fdf

=======================================================================

2005-05-31 10:47:37 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	base-0

    Summary:
      tag of siesta@uam.es--2004/siesta-devel--reference--1.4--patch-46
    Revision:
      siesta-devel--reference--1.4--base-0

    (automatically generated log message)

    new patches:
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--base-0
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-1
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-2
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-3
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-4
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-5
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-6
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-7
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-8
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-9
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-10
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-11
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-12
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-13
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-14
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-15
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-16
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-17
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-18
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-19
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-20
     agarcia@siesta.arch--2004/siesta-devel--pseudoxml--1.4--patch-1
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--base-0
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-1
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-2
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-3
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-4
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-5
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-6
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-7
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-8
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-9
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-10
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-11
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-12
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-13
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-14
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-15
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-16
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-17
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-18
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-19
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-20
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-21
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-22
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-23
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-24
     siesta@uam.es--2004/siesta-candidate--reference--1.1--base-0
     siesta@uam.es--2004/siesta-candidate--reference--1.1--patch-1
     siesta@uam.es--2004/siesta-candidate--reference--1.3--base-0
     siesta@uam.es--2004/siesta-candidate--reference--1.3--patch-1
     siesta@uam.es--2004/siesta-candidate--reference--1.3--patch-2
     siesta@uam.es--2004/siesta-devel--reference--0.11--base-0
     siesta@uam.es--2004/siesta-devel--reference--0.11--patch-1
     siesta@uam.es--2004/siesta-devel--reference--1.0--base-0
     siesta@uam.es--2004/siesta-devel--reference--1.0--patch-1
     siesta@uam.es--2004/siesta-devel--reference--1.0--patch-2
     siesta@uam.es--2004/siesta-devel--reference--1.0--patch-3
     siesta@uam.es--2004/siesta-devel--reference--1.0--patch-4
     siesta@uam.es--2004/siesta-devel--reference--1.0--patch-5
     siesta@uam.es--2004/siesta-devel--reference--1.2--base-0
     siesta@uam.es--2004/siesta-devel--reference--1.2--patch-1
     siesta@uam.es--2004/siesta-devel--reference--1.2--patch-2
     siesta@uam.es--2004/siesta-devel--reference--1.2--patch-3
     siesta@uam.es--2004/siesta-devel--reference--1.2--patch-4
     siesta@uam.es--2004/siesta-devel--reference--1.2--patch-5
     siesta@uam.es--2004/siesta-devel--reference--1.2--patch-6
     siesta@uam.es--2004/siesta-devel--reference--1.2--patch-7
     siesta@uam.es--2004/siesta-devel--reference--1.4--base-0
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-1
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-2
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-3
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-4
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-5
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-6
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-7
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-8
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-9
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-10
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-11
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-12
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-13
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-14
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-15
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-16
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-17
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-18
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-19
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-20
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-21
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-22
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-23
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-24
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-25
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-26
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-27
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-28
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-29
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-30
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-31
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-32
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-33
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-34
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-35
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-36
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-37
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-38
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-39
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-40
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-41
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-42
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-43
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-44
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-45
     siesta@uam.es--2004/siesta-devel--reference--1.4--patch-46
     siesta@uam.es--2004/siesta-release--reference--0.9--base-0
     siesta@uam.es--2004/siesta-release--reference--0.11--base-0
     siesta@uam.es--2004/siesta-release--reference--0.11--patch-1
     siesta@uam.es--2004/siesta-release--reference--1.1--base-0
     siesta@uam.es--2004/siesta-release--reference--1.1--patch-1
     siesta@uam.es--2004/siesta-release--reference--1.1--patch-2
     siesta@uam.es--2004/siesta-release--reference--1.3--base-0
     twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--base-0
     twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-1
     twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-2
     twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-3
     twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-4
     twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-5
     twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-6
     twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-7
     twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-8
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--base-0
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-1
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-2
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-3
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-4
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-5
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-6
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-7
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-8
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-11
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-3
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-4
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-6
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-7
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-9
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-10
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-11
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-13
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-14
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-15
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-17
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-18
     twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-20
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--base-0
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-1
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-2
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-3
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-4
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-5
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-6
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-7
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-8
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-9
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-10
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-11
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-12
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-13
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-14
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-15
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-16
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-17
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-18
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-19
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-20
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-21
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-22
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-23
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--base-0
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-1
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-2
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-3
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-4
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-5
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-6
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-7
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-8
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-9
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-10
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-11
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-12
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-13
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-14
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-15
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-16
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-17
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-18
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-19
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-20
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-21
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-22
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-1
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-2
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-3
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-4
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-5
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-7
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-8
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-9


____________________________________________________________________
** CHANGES ALONG siesta@uam.es--2004/siesta-devel--reference--1.4
--------------------------------------------------------------------

2005-05-31 10:40:32 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-46

    Summary:
      Fixes, compilation symbols, flush & abort
    Revision:
      siesta-devel--reference--1.4--patch-46

    * Fixes for Intel compiler.
    * Checks for alloc/dealloc completion status
    * Pre-processing symbols
    * Portable flush and abort subroutines (Toby White)
    * Cosmetic changes (Toby White, Julian Gale, Alberto Garcia)
    
    Patches applied:
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-10
       Allow all nodes to write in sys.F
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-11
       Fix typo in sys.F
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-12
       Workaround for allocatable issues in Intel compiler
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-13
       Add checks for alloc/dealloc completion status
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-14
       Add m_memory to previous patch
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-15
       New pre-processing symbols for WXML and Scalapack_extra
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-16
       Add flush to nag.f
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-17
       Remove debug output in memory.F
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-18
       Cosmetic issues: transfer, count.
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-19
       fix format in sys.F -- proc id
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-20
       remove memorys from memory.F
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-21
       Portable flush and abort routines (Toby White)
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-22
       Flush output after every step
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-23
       frstme and fmt i/o issues in iodm -- chmods
    
     * agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-24
       Some fixes by Julian Gale (from Siesta 1.4.54)
    
     * twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-1
       Rename trasnfer -> atm_transfer
    
     * twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-2
       Rename count -> alloc_count
    
     * twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-3
       Include system name in cml output
    
     * twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-4
       Fix flush & abort issues
    
     * twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-5
       fix for previous changeset
    
     * twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-7
       iodm fix
    
     * twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-8
       Periodic flush of stdout
    
     * twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-9
       reset dm.formattedinput on second time around.
    

    new files:
     Src/.arch-ids/m_memory.F.id Src/.arch-ids/pxf.F90.id
     Src/m4/.arch-ids/TW_FC_CHECK_ABORT.m4.id
     Src/m4/TW_FC_CHECK_ABORT.m4 Src/m_memory.F Src/pxf.F90

    modified files:
     Src/Makefile Src/Sys/README Src/Sys/itanium2-mpi.make
     Src/Sys/itanium2.make Src/Sys/osfdxml.make Src/Sys/sgi.make
     Src/Tests/Makefile Src/Tests/h2o/h2o.fdf Src/aclocal.m4
     Src/alloc.F90 Src/atm_transfer.f Src/cgwf.F Src/configure
     Src/configure.ac Src/diagon.F Src/fdf/Coords.dat
     Src/fdf/Otherfile Src/fdf/TODO Src/fdf/coords.fdf
     Src/fdf/fdf.Standard Src/fdf/fdf.h Src/fdf/fdfdefs.h
     Src/fdf/makefile Src/fdf/sample.fdf Src/gen-basis.F
     Src/ibm_pessl.f Src/initatom.f Src/iodm.F Src/iopipes.F90
     Src/m4/TW_FC_CHECK_FLUSH.m4 Src/memory.F Src/nag.f Src/pdos.F
     Src/pdoskp.F Src/redata.F Src/scalapack_extra.F Src/siesta.F
     Src/sys.F Src/wxml/flib_wstml.f90 Src/wxml/m_wxml_core.f90
     Src/wxml/m_wxml_dictionary.f90 Src/wxml/m_wxml_error.f90
     Src/wxml/m_wxml_text.F90 Src/xlf.f

    renamed files:
     Src/.arch-ids/scalapack_extra.f.id
       ==> Src/.arch-ids/scalapack_extra.F.id
     Src/.arch-ids/transfer.f.id
       ==> Src/.arch-ids/atm_transfer.f.id
     Src/scalapack_extra.f
       ==> Src/scalapack_extra.F
     Src/transfer.f
       ==> Src/atm_transfer.f
     Src/wxml/.arch-ids/m_wxml_text.f90.id
       ==> Src/wxml/.arch-ids/m_wxml_text.F90.id
     Src/wxml/m_wxml_text.f90
       ==> Src/wxml/m_wxml_text.F90

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-10
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-11
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-12
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-13
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-14
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-15
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-16
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-17
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-18
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-19
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-20
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-21
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-22
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-23
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-24
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-1
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-2
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-3
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-4
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-5
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-7
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-8
     twhite@siesta.arch--2005/siesta-devel--tw-bugfix--1.4--patch-9

=========================================================================

2005-04-28 07:41:26 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-45

    Summary:
      Merge of CVS 1.4.52 by J. Gale: hybrid XC + fixes
    Revision:
      siesta-devel--reference--1.4--patch-45

    Changes:
    
    * Version CVS 1.4.52 (see below) plus the following fixes:
    
    * Use of real (sp) constant in max expression in cellxc.F 
    * Make xcmod entities private by default.
    * Fix Makefile to remove duplicates of sys.o and parsing.o,
      and to include dependencies on xcmod.o
    
    ---------------------------------------------------------------------------
    Version: 1.4.52
    Date: 2005/04/08 8:30 GMT
    Title: Hybrid DFT
    Author: Julian Gale <julian@power.curtin.edu.au>
    
    The ability to create hybrid density functionals has been added.
    Note that this currently excludes Hartree-Fock exchange.
    
    Files:
    
    Makefile      xcmod added to MOD & GEN-BASIS objects list
    atom.f        Calls to atomxc modified to reflect change in arguments
                  Pseudopotential functional consistency check modified
                  to only apply to the single functional case.
    cellxc.F      XC functional information now accessed from module
                  Modified to handle hybrid functionals
                  DVol now divided through prior to adding to VXC to
                  avoid divide at end and extra multiplications.
    dfscf.f       Use reference to phiatm removed as not needed
    dhscf.F       Setting of XC data removed from subroutine and from 
                  calls to cellxc & forhar
    forhar.f      Call to cellxc modified inline with argument changes
                  and XC information is no longer passed through. Order
                  of memory deallocations reversed.
    gen-basis.F   Call to setXC added
    rhoofd.f      Use reference to phiatm removed as not needed
    siesta.F      Call to setXC added
    siesta.tex    Documentation added for hybrid functionals
    vmat.f        Use reference to phiatm removed as not needed
    vmatsp.f      Use reference to phiatm removed as not needed
    xc.f          atomxc has been modified to handle hybrid functionals 
                  XC information is now access through a module 
                  Auxillary space for storage of DVol now allocated locally
    xcmod.F       New module added to hold information about the XC 
                  functionals & their weights. Also contains routine to
                  setup XC information.
    
    

    new files:
     Src/.arch-ids/xcmod.F.id Src/xcmod.F

    modified files:
     Docs/CHANGES Docs/siesta.tex Src/Makefile Src/atom.f
     Src/cellxc.F Src/dfscf.f Src/dhscf.F Src/forhar.f
     Src/gen-basis.F Src/rhoofd.f Src/siesta.F Src/version.F90
     Src/vmat.f Src/vmatsp.f Src/xc.f

    new patches:
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-8
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-9

=========================================================================

2005-04-26 08:09:25 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-44

    Summary:
      Streamline wxml after XML merge
    Revision:
      siesta-devel--reference--1.4--patch-44

    Some changes had to be made to the wxml subsystem
    to avoid problems with the pgf90 compiler and to
    avoid the use of the transfer intrinsic.
    
    

    new files:
     Src/wxml/.arch-ids/m_wxml_array_str.f90.id
     Src/wxml/m_wxml_array_str.f90

    modified files:
     Src/Sys/itanium2-mpi.make Src/rhoofdsp.f Src/vmatsp.f
     Src/wxml/flib_wcml.f90 Src/wxml/flib_wstml.f90
     Src/wxml/m_wxml_buffer.f90 Src/wxml/m_wxml_core.f90
     Src/wxml/m_wxml_dictionary.f90 Src/wxml/m_wxml_escape.f90
     Src/wxml/makefile

    new patches:
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-16
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-17
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-18
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-19
     agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-20
     agarcia@siesta.arch--2004/siesta-devel--pseudoxml--1.4--patch-1
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--base-0
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-1
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-2
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-3
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-4
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-5
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-6
     agarcia@siesta.arch--2005/siesta-devel--agarcia--1.4--patch-7

=========================================================================

2005-04-08 15:40:10 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-43

    Summary:
      Fix typo in iodm.F
    Revision:
      siesta-devel--reference--1.4--patch-43


    modified files:
     Src/iodm.F

=========================================================================

2005-04-08 15:39:41 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-42

    Summary:
      Wrap long line in mulliken.F
    Revision:
      siesta-devel--reference--1.4--patch-42


    modified files:
     Src/mulliken.F

=========================================================================

2005-04-08 13:34:34 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-41

    Summary:
      Merge from devel-twhite: Fmt IO for DM.
    Revision:
      siesta-devel--reference--1.4--patch-41

    Unformatted DM files are not transferrable between machines
    (indeed, between compilers on the same machine). This allows
    for formatted files, which are larger and less efficient, but
    allow transfer. The default remains unformatted.
    
    * iodm.F:
      . three new fdf variables
        DM.FormattedFiles - formatted input & output of DM files
        DM.FormattedInput - formatted input DM.
        DM.FormattedOutput - formatted output DM
      . In the case of formatted i/o, a file with the extension .DMF is used
      . All i/o is the same as new-style unformatted, except formatted
        -  I11 for integers
        -  ES22.15 for floats
        (this preserves max accuracy for standard 32-bit integers and 64-bit doubles.
      . Also tidy up declarations, and correct comments.
    
    * redata.F: correct spelling error in comment.
    
    * Docs/siesta.tex: Document three new options
    
    * Remove executablt flag from Src/pdos.F, Src/pdosk.F, and Docs/CHANGES
    * Add executable flag to Src/configure

    modified files:
     Docs/CHANGES Docs/siesta.tex Src/iodm.F Src/redata.F
     Src/version.F90

    new patches:
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-22
     twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-23

=========================================================================

2005-04-08 13:20:28 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-40

    Summary:
      add code for abort with NAG compiler
    Revision:
      siesta-devel--reference--1.4--patch-40

    Patches applied:
    
     * twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-22
       Allow for formatted DM files.
    
     * twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-23
       Fix permissions
    

    modified files:
     Src/nag.f

=========================================================================

2005-04-07 21:28:56 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-39

    Summary:
      Merge of xml work by Jon Wakelin and Toby White
    Revision:
      siesta-devel--reference--1.4--patch-39

    Jon Wakelin started the XML-fication of the output, and
    after his departure from Cambridge Toby White made
    substantial improvements.
    
    For the details of the changes, please see the patch logs
    for version twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4
    
    
    
    

    new files:
     Src/.arch-ids/siesta_cml.F90.id Src/.arch-ids/units.f90.id
     Src/siesta_cml.F90 Src/units.f90
     Src/wxml/.arch-ids/m_wcml_coma.f90.id
     Src/wxml/.arch-ids/m_wxml_error.f90.id
     Src/wxml/m_wcml_coma.f90 Src/wxml/m_wxml_error.f90

    modified files:
     Docs/siesta.tex Src/MPI/mpi.F Src/MPI/mpi__include.f90
     Src/Makefile Src/Tests/Makefile Src/Tests/batio3/batio3.fdf
     Src/Tests/bessel/bessel.fdf Src/Tests/do.sh
     Src/Tests/fe/fe.fdf Src/Tests/floating/floating.fdf
     Src/Tests/h2o_orderN/h2o_orderN.fdf Src/Tests/si64/si64.fdf
     Src/atomlist.f Src/basis_specs.f Src/cdiag.F Src/cgwf.F
     Src/diagk.F Src/efield.F Src/fermid.F Src/ioeig.f Src/ionew.F
     Src/memory.F Src/memoryinfo.F Src/meshsubs.F Src/mulliken.F
     Src/ordern.F Src/outcell.f Src/outcoor.f Src/parallel.f
     Src/pdos.F Src/periodic_table.f Src/phonon.F Src/redata.F
     Src/siesta.F Src/timestamp.f90 Src/version.F90
     Src/wxml/flib_wcml.f90 Src/wxml/flib_wstml.f90
     Src/wxml/m_wxml_buffer.f90 Src/wxml/m_wxml_core.f90
     Src/wxml/m_wxml_dictionary.f90 Src/wxml/m_wxml_elstack.f90
     Src/wxml/m_wxml_escape.f90 Src/wxml/m_wxml_overloads.f90
     Src/wxml/m_wxml_text.f90 Src/wxml/makefile
     {arch}/siesta-devel/siesta-devel--reference/siesta-devel--reference--1.4/siesta@uam.es--2004/patch-log/patch-24

    renamed files:
     Src/.arch-ids/timestamp.f.id
       ==> Src/.arch-ids/timestamp.f90.id
     Src/timestamp.f
       ==> Src/timestamp.f90

    new patches:
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--base-0
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-1
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-2
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-3
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-4
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-5
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-6
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-7
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-8
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-9
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-10
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-11
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-12
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-13
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-14
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-15
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-16
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-17
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-18
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-19
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-20
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-21
     twhite@siesta.arch--2004/siesta-devel--xml-merge--1.4--patch-22

=========================================================================

2005-04-07 14:35:49 GMT	Alberto Garcia <wdpgaara@lg.ehu.es>	patch-38

    Summary:
      Siesta 1.4.51 (dummy import to rename extrapolon + CHANGES, version.F90)
    Revision:
      siesta-devel--reference--1.4--patch-38

    
    Version: 1.4.51
    Date: 2005/04/07 15:30 GMT
    Title: Extrapol fixes -- cdiag fix (Toby White)
    Author: Toby White <tow21@cam.ac.uk>
    
    The only real change in this patch is the actual renaming of extrapolon.F
    to extrapolon.f, which was documented but not performed in patch-37. It was
    put in the cvs version.
    
    Also, CHANGES and version.F90 are in "cvs form".
    

    modified files:
     Docs/CHANGES Src/version.F90

    renamed files:
     Src/.arch-ids/extrapolon.F.id
       ==> Src/.arch-ids/extrapolon.f.id
     Src/extrapolon.F
       ==> Src/extrapolon.f
=========================================================================

Version: 1.4.51
Date: 2005/04/07 15:30 GMT
Title: Extrapol fixes -- cdiag fix (Toby White)
Author: Toby White <tow21@cam.ac.uk>

* siesta 1.4.50 (=patch-36) erroneously deleted three lines from 
  cdiag.F which initialize vl & vu. Restore them.
* also in rdiag.F make sure that all real variables are initialized
  to _dp instead of d0; and use parameters one and zero throughout.

* extrapol.F checks for the number of rows of M held on 
  the current node - if zero, it exits immediately. However,
  there is an MPI_AllReduce in the middle. If this is
  skipped on some nodes, the results are unpredictable.
  This patch fixes the problem such that the MPI_AllReduce
  is always executed.
* in addition, :
  . change all d0 variables to _dp; 
  . use sys::die instead of stop on error
  . remove unnecessary if check (if zero don't add, which
    actually slows code down.)
  . remove unnecessary "use parallelsubs"
  . Add intents to all arguments
  . remove unused dummy variable nmrow
* siesta.F; remove omitted arg from call to extrapol
* extrapolon.F: similar changes;
  . change all d0 to _dp
  . use sys::die instead of stop on error
  . remove unnecessary if check (if zero don't add, which
    actually slows code down.)
  . remove unnecessary "use mpi_siesta"
  . use parallel to bring in node instead of arg list.
  . Add intents to all arguments.
  . remove unused dummy variable node
  . improve logic flow to avoid goto's
  . rename file to extrapolon.f since it no longer requires preprocessing.
* ordern.F, remove omitted arg from call to extrapolon

 version.F90, Docs/CHANGES

(siesta-devel--reference--1.4--patch-37)

=======================================================================
Version: 1.4.51
Date: 2005/04/07 15:30 GMT
Title: Extrapol fixes -- cdiag fix (Toby White)
Author: Toby White <tow21@cam.ac.uk>

* siesta 1.4.50 (=patch-36) erroneously deleted three lines from 
  cdiag.F which initialize vl & vu. Restore them.
* also in rdiag.F make sure that all real variables are initialized
  to _dp instead of d0; and use parameters one and zero throughout.

* extrapol.F checks for the number of rows of M held on 
  the current node - if zero, it exits immediately. However,
  there is an MPI_AllReduce in the middle. If this is
  skipped on some nodes, the results are unpredictable.
  This patch fixes the problem such that the MPI_AllReduce
  is always executed.
* in addition, :
  . change all d0 variables to _dp; 
  . use sys::die instead of stop on error
  . remove unnecessary if check (if zero don't add, which
    actually slows code down.)
  . remove unnecessary "use parallelsubs"
  . Add intents to all arguments
  . remove unused dummy variable nmrow
* siesta.F; remove omitted arg from call to extrapol
* extrapolon.F: similar changes;
  . change all d0 to _dp
  . use sys::die instead of stop on error
  . remove unnecessary if check (if zero don't add, which
    actually slows code down.)
  . remove unnecessary "use mpi_siesta"
  . use parallel to bring in node instead of arg list.
  . Add intents to all arguments.
  . remove unused dummy variable node
  . improve logic flow to avoid goto's
  . rename file to extrapolon.f since it no longer requires preprocessing.
* ordern.F, remove omitted arg from call to extrapolon

 version.F90, Docs/CHANGES

(siesta-devel--reference--1.4--patch-37)

=======================================================================
Version: 1.4.52
Date: 2005/04/08 8:30 GMT
Title: Hybrid DFT
Author: Julian Gale <julian@power.curtin.edu.au>

The ability to create hybrid density functionals has been added.
Note that this currently excludes Hartree-Fock exchange.

Files:

Makefile      xcmod added to MOD & GEN-BASIS objects list
atom.f        Calls to atomxc modified to reflect change in arguments
              Pseudopotential functional consistency check modified
              to only apply to the single functional case.
cellxc.F      XC functional information now accessed from module
              Modified to handle hybrid functionals
              DVol now divided through prior to adding to VXC to
              avoid divide at end and extra multiplications.
dfscf.f       Use reference to phiatm removed as not needed
dhscf.F       Setting of XC data removed from subroutine and from 
              calls to cellxc & forhar
forhar.f      Call to cellxc modified inline with argument changes
              and XC information is no longer passed through. Order
              of memory deallocations reversed.
gen-basis.F   Call to setXC added
rhoofd.f      Use reference to phiatm removed as not needed
siesta.F      Call to setXC added
siesta.tex    Documentation added for hybrid functionals
vmat.f        Use reference to phiatm removed as not needed
vmatsp.f      Use reference to phiatm removed as not needed
xc.f          atomxc has been modified to handle hybrid functionals 
              XC information is now access through a module 
              Auxillary space for storage of DVol now allocated locally
xcmod.F       New module added to hold information about the XC 
              functionals & their weights. Also contains routine to
              setup XC information.
=======================================================================
Version: 1.4.51
Date: 2005/04/07 15:30 GMT
Title: Extrapol fixes -- cdiag fix (Toby White)
Author: Toby White <tow21@cam.ac.uk>

* siesta 1.4.50 (=patch-36) erroneously deleted three lines from 
  cdiag.F which initialize vl & vu. Restore them.
* also in rdiag.F make sure that all real variables are initialized
  to _dp instead of d0; and use parameters one and zero throughout.

* extrapol.F checks for the number of rows of M held on 
  the current node - if zero, it exits immediately. However,
  there is an MPI_AllReduce in the middle. If this is
  skipped on some nodes, the results are unpredictable.
  This patch fixes the problem such that the MPI_AllReduce
  is always executed.
* in addition, :
  . change all d0 variables to _dp; 
  . use sys::die instead of stop on error
  . remove unnecessary if check (if zero don't add, which
    actually slows code down.)
  . remove unnecessary "use parallelsubs"
  . Add intents to all arguments
  . remove unused dummy variable nmrow
* siesta.F; remove omitted arg from call to extrapol
* extrapolon.F: similar changes;
  . change all d0 to _dp
  . use sys::die instead of stop on error
  . remove unnecessary if check (if zero don't add, which
    actually slows code down.)
  . remove unnecessary "use mpi_siesta"
  . use parallel to bring in node instead of arg list.
  . Add intents to all arguments.
  . remove unused dummy variable node
  . improve logic flow to avoid goto's
  . rename file to extrapolon.f since it no longer requires preprocessing.
* ordern.F, remove omitted arg from call to extrapolon

 version.F90, Docs/CHANGES

(siesta-devel--reference--1.4--patch-37)

=======================================================================
Version: 1.4.50
Date: 2005/03/29 07:30 GMT 
Title: Parallel diag np/q fix
Author: Julian Gale <julian@power.curtin.edu.au>

The variables np/nq were being used without initialisation in some
cases of parallel diagonalisation, according to options. This has
been rectified, as well as removing the variable "iter" which was 
unused.

Files:

cdiag.F    np/nq set and iter removed
rdiag.F    np/nq set and iter removed
version.F90 / CHANGES as per usual
=======================================================================
Version: 1.4.49
Date: 2005/03/23 05:00 GMT 
Title: CG variable save fix
Author: Julian Gale <julian@power.curtin.edu.au>

The "save" attribute has been added back for cgaux in cgvc.F as
this is required by conjgr.f for correct execution. The deallocation
order of gfa & gxa has been reversed for cleaness too.

Files:

cgvc.F    Save attribute added to cgaux
version.F90 / CHANGES as per usual
=======================================================================
Version: 1.4.48
Date: 2005/03/21 07:30 GMT 
Title: CG variable re-initialization + constant fix in meshsubs.F
Author: Toby White <tow21@cam.ac.uk>

* cgvc.F: cgcntrl is still not initialized correctly if usesavecg is not 
          set. This patch fixes this. 
          Update variable declarations & include intent; make kBar a parameter.
          Correct subroutine documentation.
          Replace all d0 with _dp.
          Replace specific dabs with generic abs.

* meshsubs.F: Fix constant.

version.F90 / CHANGES

ARCH patches: siesta-devel--reference--1.4--patch-30 and --patch-34
=======================================================================
Version: 1.4.47
Date: 2005/03/16 04:00 GMT 
Title: CG bug fix
Author: Julian Gale <julian@power.curtin.edu.au>

The initialisation of cntrl in conjgr.f introduced in 1.4.42
has been removed since this is already done in the calling
routine and causes the minimiser to fail by reseting it on
every call.

conjgr.f    Line with cntrl = 0.0 removed and style updated a bit
version.F90 / CHANGES
=======================================================================
Version: 1.4.46
Date: 2005/03/11 07:30 GMT 
Title: PDOS - Parallel over K points
Author: Julian Gale <julian@power.curtin.edu.au>

The option to parallelise a calculation by distributing K points
over processors has been extended to the partial density of states
calculation.

Changes:

pdos.F     Option Diag.ParallelOverK checked for in fdf and if true
           the routine now calls pdoskp instead of pdosk
pdoskp.F   New routine added to perform parallel PDOS over K points
version.F90 / CHANGES
=======================================================================
Version: 1.4.45
Date: 2005/03/10 03:00 GMT 
Title: Diag tag snag
Author: Julian Gale <julian@power.curtin.edu.au>

Changes:

A couple of incorrect tags have been updated to reflect the fact
that they should now be prefixed with "Diag." - spotted by
Nichols.

siesta.tex      ParallelOverK -> Diag.ParallelOverK
redata.F        DivideAndConquer -> Diag.DivideAndConquer
version.F90 / CHANGES
=======================================================================
Version: 1.4.44
Date: 2005/03/08 04:30 GMT 
Title: FSM deallocation order change
Author: Julian Gale <julian@power.curtin.edu.au>

Changes:

nlefsm.f / overfsm.f / nlefsm.f - order of deallocations reversed
to try to keep stack clean

version.F90 / CHANGES as per usual
=======================================================================
Version: 1.4.43
Date: 2005/03/04 19:30 GMT
Title: Introduction of RPBE (GGA) 
Author: Marivi Fernandez-Serra <Marivi.Fernandez-Serra@lpmcn.univ-lyon1.fr>

Changes:
  RPBE GGA has been introduced

Files:
  xc.f, atom.f, version.F90, siesta.tex, CHANGES
=======================================================================
Version: 1.4.42
Date: 2005/02/25 15:00 GMT
Title: Assorted changes for correctness (Toby White)
Author: Toby White <tow21@cam.ac.uk>

Changes:

(patch 20 in siesta-devel--reference--1.4):

* Src/wxml: interim update of wxml library.

(patch 24 in siesta-devel--reference--1.4):

* in cdiag.F, properly initialize vl & vu.

* in atom.F, make sure com_vlocal is called for floating
  orbitals and Bessel orbitals, (so that vlocaltab is
  initialized),

* in denmat.F, ft & fts were never initialized before use
  (potentially very dangerous) This patch fixed that, and
  also only defines and allocates them for the serial
  version (they're never used in parallel - this should save
  memory)

   (** This addresses the same issue as J. Gale's fix
      in 1.4.41 **)

  - also change all double precision constants to use _dp

* in matel.f, when reallocing y and dydr, use copy=.false.,
  since we don't need to preserve their values (this also
  prevents an attempt to use uninitialized variables when
  doing the copying)

* grdsam.F: initialize lstcll before use

* conjgr.f: initialize all of cntrol before use

* siesta.F: when fixspin==.false., and qspin>1, qs was not being
  initialized before use. Fixed here. Also replace use of dble
  intrinsic with real(..., kind=dp).

* Tests/batio3/batio3.fdf: GridCellSampling block was wrong.

ARCH info:

Revision: siesta-devel--reference--1.4--patch-20
Archive: siesta@uam.es--2004
Creator: Alberto Garcia <wdpgaara@lg.ehu.es>
Date: Fri Feb  4 18:44:57 CET 2005
Standard-date: 2005-02-04 17:44:57 GMT
New-files: Src/wxml/.arch-ids/flib_wcml.f90.id
    Src/wxml/.arch-ids/flib_wstml.f90.id
    Src/wxml/.arch-ids/m_wxml_escape.f90.id
    Src/wxml/.arch-ids/m_wxml_overloads.f90.id
    Src/wxml/flib_wcml.f90 Src/wxml/flib_wstml.f90
    Src/wxml/m_wxml_escape.f90
    Src/wxml/m_wxml_overloads.f90
Modified-files: Src/wxml/flib_wxml.f90
    Src/wxml/m_wxml_core.f90 Src/wxml/m_wxml_text.f90
    Src/wxml/makefile

Revision: siesta-devel--reference--1.4--patch-24
Archive: siesta@uam.es--2004
Creator: Alberto Garcia <wdpgaara@lg.ehu.es>
Date: Thu Feb 24 21:58:10 CET 2005
Standard-date: 2005-02-24 20:58:10 GMT
Modified-files: Src/Tests/batio3/batio3.fdf Src/atom.f
    Src/cdiag.F Src/conjgr.f Src/denmat.F Src/grdsam.F
    Src/matel.f Src/siesta.F

=======================================================================
Version: 1.4.41
Date: 2005/02/25 08:00 GMT
Title: Denmat serial fix
Author: Julian Gale <julian@power.curtin.edu.au>

Changes:

The initialisaiton of ft & fst when compiled in serial was missing
from denmat.F. It has now been added.

Files:

denmat.F      ft & fst zeroed in #else for serial case
version.F90 / CHANGES as per usual

=======================================================================
Version: 1.4.40
Date: 2005/02/13 17:35 GMT
Title: Fixes by Toby White (including spatial parallelization)
Author: Toby White <tow21@cam.ac.uk>

Changes:

* rdiag.F: initialize vu & vl correctly
* siesta.F: correctly set muldeb & signat in MPI environment
* cdiag.F correct real constants to complex constants

* remove the following routines from files in Libs:
  ZHEGVD
  ZHPMV
  ZHPR2
  DGETC2
  DSPMV
  DSPR2
  DSYGVD

* When spatial parallelization is given too many nodes, it ends
      up allocating no cells to some. This resulted in some array 
      allocations not being done, which meant accesses to these arrays
      were reading uninitialized memory. Random numbers were introduced
      into the density. Fixed by:
** setatomnodes.F: emit warning that some nodes are unused. Also
                       fix print statements to properly give results 
                       from all nodes.
** siesta.F: rewrite allocation of arrays to properly allocate
                 empty arrays. Also remove extraneous declarations
                 and unused Uses.

* pulayx.F was trying to access empty arrays.

* Add pathf90 to compiler search list, and run autoconf

* Open specifier in alloc.F90 was wrong: you're not allowed to
  open an already-connected file with status='unknown' (this 
  cause NAG to crash). Replace with position='append' to ensure
  that nodes other than zero have the file pointer placed at the
  end of the file (otherwise behaviour is unspecified)

* Add datestamp to siesta filename for tracking purposes, and
  copy to siesta executable directory.

* Remove POSITION= specifier entirely. NAG still complains, and the
  default seems to work.
* In setatomnodes.F, the calculation of npgrid[xyz]ptr was slightly
  broken in systems with large amount of empty space; if, for example,
  five cells were available in the x direction, but only three were
  filled with atoms, then the rest of npgridxptr ought to be set to the 
  final cell number - in actuality only its final element was. This
  resulted in siesta getting confused later. FIxed here.

* in memory.F90, ensure that "maximum memory" outputs are 
  synced correctly in the output stream. (otherwise they
  are interspersed randomly with other output)
* in alloc.F90, when alloc_err is encountered, do a proper
  MPI_Abort and flush to ensure timely crashing, and output
  of the error message. (otherwise all information is lost, 
  one process dies, and the others continue until they hang)

* remove unused declaration in atomlwf
* allocate array in memory.F to stop NAG complaining.
* ifdef MPI correctly in flushrap.F90

Plus: (by AG)

* Change in J. Junquera's affiliation in Util/Denchar/Docs/denchar.tex
(siesta-devel--reference--1.4--patch-22)

ARCH info:

Revision: siesta-devel--reference--1.4--patch-23
Archive: siesta@uam.es--2004
Creator: Alberto Garcia <wdpgaara@lg.ehu.es>
Date: Sun Feb 13 18:22:13 CET 2005
Standard-date: 2005-02-13 17:22:13 GMT
Modified-files: Docs/CHANGES Src/Libs/blas.f
    Src/Libs/dc_lapack.f Src/Libs/lapack.f Src/aclocal.m4
    Src/alloc.F90 Src/atomlwf.F Src/cdiag.F Src/configure
    Src/m4/fortran.m4 Src/memory.F Src/pulayx.F Src/rdiag.F
    Src/setatomnodes.F Src/siesta.F
    {arch}/siesta-devel/siesta-devel--reference/siesta-devel--reference--1.4/siesta@uam.es--2004/patch-log/patch-15
Summary: Assorted fixes by Toby White (including spatial parallelization)
Keywords: 

Patches applied:

 * twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-9
   more minor bugfixes

 * twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-10
   remove unnecessary blas/lapack routines.

 * twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-11
   fix for empty nodes

 * twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-13
   another empty node fix.

 * twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-14
   add pathf90 to configure list.

 * twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-15
   open specifier in alloc.F90 fix.

 * twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-17
   Fix alloc.F90 open, and correct setatomnodes

 * twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-18
   improve output and error diagnostics

 * twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-20
   minor fixes

 * twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-10
   merge from upstream

 * twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-11
   bugfix merge

 * twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-12
   

 * twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-13
   fix for empty nodes

 * twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-14
   merge from --reference--1.4

 * twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-15
   assorted changes from my bugfix branch

=======================================================================
Version: 1.4.39
Date: 2005/02/04 17:05 GMT
Title: Denchar bugs fixed
Author: Javier Junquera <javier.junquera@unican.es>

Some bugs that appeared during the compilation or execution
of denchar have been fixed.

Files:

Makefile         - inclusion of parallelsubs.o in OTHER_DENCHAR_OBJS
denchar.F        - variable FILEIN set to 'stdin',
                   avoiding the call to command_argument_count()
m_denchar_work.f - change in some write formats in order to 
                   avoid double space between data of consecutive
                   rows in the output.
version.F90, CHANGES 
Denchar/Docs/denchar.tex : Change in affiliation
=======================================================================
Version: 1.4.38
Date: 2005/02/04 05:30 GMT
Title: O(N) extrapolation fix
Author: Julian Gale <julian@power.curtin.edu.au>

The order N code was failing in parallel when the structure
of the Hamiltonian changed between geomtry steps. The code
has been modified to solve this. The arrays cold / listcold
now only keep the rows for which the current node has principal
responsibility for. The extrapolation and I/O of LWFs now
acts just on this part of C and is then globalised to all
processors.

Files:

atomlwf.F      Dimensions of cold/listcold decreased by using nbasisloc
egandd.F       Reallocation of arrays now occurs when iopt = 0 and
               not just on the first call. The copy=.true. and
               shrink=.false. attributes have also been added.
extrapolon.F   Now acts only on 1->nbasisloc rather than 1->nbasisCloc
iolwf.F        Now acts only on 1->nbasisloc rather than 1->nbasisCloc
               and nbasisloc is added as a pased argument.
ordern.F       Handling of cold/listcold changed and call to 
               globaliseC added after extrapolon call.
version.F90, CHANGES
=======================================================================
Version: 1.4.37
Date: 2005/01/25 03:00 GMT
Title: Mesh subdivisions control from input
Author: Julian Gale <julian@power.curtin.edu.au>

The value of nsm, which was previously a parameter, can now be
adjusted from the input deck using the "MeshSubDivisions" option.
The order of array deallocation in dhscf.F has also been reversed.

Files:

dhscf.F, meshsubs.F, version.F90, CHANGES, siesta.tex
=======================================================================
Version: 1.4.36
Date: 2005/01/25 06:10 GMT
Title: Grdsam array size fix
Author: Julian Gale <julian@power.curtin.edu.au>

The size of the array dpt has been corrected to depend on maxpt+1
rather than na. Order of array deallocations has been reversed to
be deallocation friendly.

Files:

grdsam.F, version.F90, CHANGES
=======================================================================
Version: 1.4.35
Date: 2005/01/08 16:20 GMT
Title: Removed old Denchar source
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Removed all files under Util/Denchar/Src.
(The source for Denchar has been in the top directory
for a while)

Changes to version.F90 and CHANGES.

=======================================================================
Version: 1.4.34
Date: 2005/01/07 13:45 GMT
Title: Bugfixes by Toby White: decls, inits, typos, autoconf
ARCH patches: siesta-devel--reference--1.4--patch-14,
              siesta-devel--reference--1.4--patch-15
Author: Toby White (committed by Alberto Garcia) and Alberto Garcia

* Removal of "use" statement for m_radfft from atom.f
* Fix declarations in mneighb.f similarly to neighb.f
* Fix typo in fft3d.F
* Fix MPI/Makefile to properly inherit FFLAGS_MPI
* Initialise variables properly in meshsubs.F
* Add ifort to list of compilers tested for in configure

  
ARCH info:

Revision: siesta-devel--reference--1.4--patch-14
Archive: siesta@uam.es--2004
Creator: Alberto Garcia <wdpgaara@lg.ehu.es>
Date: Fri Jan  7 14:32:44 CET 2005
Standard-date: 2005-01-07 13:32:44 GMT
Modified-files: Docs/CHANGES Src/atom.f Src/diagk.F
    Src/fermid.F Src/version.F90 Src/writewave.F
New-patches: agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-12
    agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-13
    agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-14
    agarcia@siesta.arch--2004/siesta-devel--agarcia--1.4--patch-15
    siesta@uam.es--2004/siesta-devel--reference--1.4--patch-14
Summary: Siesta 1.4.32 and 1.4.33, plus radfft removal from atom 
Keywords: cvs-date=2004/12/20,cvs-date=2005/01/05, merge from agarcia

Revision: siesta-devel--reference--1.4--patch-15
Archive: siesta@uam.es--2004
Creator: Alberto Garcia <wdpgaara@lg.ehu.es>
Date: Fri Jan  7 14:47:48 CET 2005
Standard-date: 2005-01-07 13:47:48 GMT
Modified-files: Docs/CHANGES Src/MPI/Makefile Src/aclocal.m4
    Src/configure Src/fft3d.F Src/m4/fortran.m4
    Src/meshsubs.F Src/mneighb.f
New-patches: siesta@uam.es--2004/siesta-devel--reference--1.4--patch-15
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-3
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-4
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-6
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix-2--1.4--patch-7
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-8
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-9
Summary: Bugfixes by Toby White: decls, inits, typos, autoconf
Keywords: Merged from -devel--twhite--patch-9


=======================================================================
Version: 1.4.33
Date: 2005/01/05 16:15 GMT
Title: Fixed bugs in diagk.F for writting of wave functions
Author: Pablo Ordejon <ordejon@icmab.es>

Some bugs introduced in the recent changes of diagk.F in the writting
of the wave functions are corrected.

Files:

diagk.F       All eigenvectors are computed when writing of wave 
              functions is required; the right information about
              eigenvalues is now passed.
writewave.F   Correct call to diagg.f to include new variable 
              neigwanted
version.F90 / CHANGES

=======================================================================
Version: 1.4.32
Date: 2004/12/20  8:30 GMT
Title: Fermi occupancy initialisation
Author: Julian Gale <julian@power.curtin.edu.au>

The occupancies are explicitly initialised to zero in fermid &
fermispin to ensure that the checking of occupancies in the build
of the density matrix is correct.

Files:

fermid.F      Initialisation of occupancies upto maxe added and
              cosmetic f90 changes made.
version.F90 / CHANGES

=======================================================================
Version: 1.4.31
Date: 2004/12/10  16:40 GMT
Title: bugfixes for Julian's diagon improvements
ARCH patches: siesta-devel--reference--1.4--patch-12,
              siesta-devel--reference--1.4--patch-13
Author: Toby White (committed by Alberto Garcia)

* scalapack_extra needs an extra couple of routines now. With
  these siesta will now compile with Sun's S3L library for 
  its blas/scalapack.
* In cdiag.F, ztrsm was being called with an incorrectly typed
  7th argument. This silently introduced random numbers into the
  energy.
* previous bugfix omitted kind= keyword from cmplx
* also apply same bugfix to pblas pztrsm calls.

ARCH info:

Revision: siesta-devel--reference--1.4--patch-12
Archive: siesta@uam.es--2004
Creator: Alberto Garcia <wdpgaara@lg.ehu.es>
Date: Fri Dec 10 16:26:27 CET 2004
Standard-date: 2004-12-10 15:26:27 GMT
Modified-files: Docs/CHANGES Src/cdiag.F
    Src/scalapack_extra.f
    {arch}/siesta-devel/siesta-devel--reference/siesta-devel--reference--1.4/siesta@uam.es--2004/patch-log/patch-4
    {arch}/siesta-devel/siesta-devel--reference/siesta-devel--reference--1.4/siesta@uam.es--2004/patch-log/patch-6
Modified-directories: {arch}/siesta-devel/siesta-devel--reference/siesta-devel--reference--1.4
    {arch}/siesta-devel/siesta-devel--reference/siesta-devel--reference--1.4/siesta@uam.es--2004
    {arch}/siesta-devel/siesta-devel--reference/siesta-devel--reference--1.4/siesta@uam.es--2004/patch-log
New-patches: siesta@uam.es--2004/siesta-devel--reference--1.4--patch-12
    twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-8
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-8
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-11
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-5
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-6
Summary: bugfixes for Julian's diagon improvements
Keywords: scalapack blas ztrsm

Revision: siesta-devel--reference--1.4--patch-13
Archive: siesta@uam.es--2004
Creator: Alberto Garcia <wdpgaara@lg.ehu.es>
Date: Fri Dec 10 17:30:24 CET 2004
Standard-date: 2004-12-10 16:30:24 GMT
Modified-files: Docs/CHANGES Src/cdiag.F
New-patches: siesta@uam.es--2004/siesta-devel--reference--1.4--patch-13
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-7
Summary: fix ztrsm bugfix



=======================================================================
Version: 1.4.30
Date: 2004/12/10  15:45 GMT
Title: Add missing autoconf files (no arch change)
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

While committing patch-10 from arch, CVS did not flag
some files as "not added". They are added now.
These files should have been part of 1.4.28.

Files:

aclocal.m4 arch.make.in config.guess 
config.sub configure configure.ac       : New files

ARCH info:  No change (new files were part of
                       siesta-devel--reference--1.4--patch-10)
=======================================================================
Version: 1.4.29
Date: 2004/12/10  7:30 GMT
Title: New parallel denmat 
Author: Julian Gale <julian@power.curtin.edu.au>

The multiplication of cHc / cSc by c in denmat has been rewritten in
terms of using numct/listct, instead of numf/listf to go directly
to ftG/fstG, rather than via chcc/cscc. A number of related clean ups
in the parallel order N have been made.

Files:

atomlwf.F     The arrays nbNode and nbAtom have been removed
denmat.F      Algorithm changed for chc/csc x c step /
              arrays chcc & cscc eliminated / globaliseF not
              called anymore.
egandd.F      Arrays f & fs no longer passed to denmat.F
ener3.F       The array nbNode is no longer "use"d
ener3lomem.F  The array nbNode is no longer "use"d
globalise.F   Local elements of buxg are now explicitly zeroed for
              safety during rezero call.
onmod.F       The arrays nbNode and nbAtom have been removed
ordern.F      The arrays nbNode and nbAtom have been removed
version.F / CHANGES - as per usual
=======================================================================
Version: 1.4.28
Date: 2004/12/09  18:00 GMT
Title: Autoconf (siesta-devel--reference--1.4--patch-10)
Author: Toby White (committed by Alberto Garcia)

Changes:

 * Add requisite files for autoconf.
  - aclocal.m4 & configure are generated files.

 * Remove cleaning of aux_ files from Makefile

ARCH info:

Revision: siesta-devel--reference--1.4--patch-10
Archive: siesta@uam.es--2004
Creator: Alberto Garcia <wdpgaara@lg.ehu.es>
Date: Tue Dec  7 21:54:51 CET 2004
Standard-date: 2004-12-07 20:54:51 GMT
New-files: Src/.arch-ids/aclocal.m4.id
    Src/.arch-ids/arch.make.in.id
    Src/.arch-ids/config.guess.id
    Src/.arch-ids/config.sub.id
    Src/.arch-ids/configure.ac.id
    Src/.arch-ids/configure.id Src/aclocal.m4
    Src/arch.make.in Src/config.guess Src/config.sub
    Src/configure Src/configure.ac Src/m4/.arch-ids/=id
    Src/m4/.arch-ids/ACX_MPI.m4.id
    Src/m4/.arch-ids/TW_CHECK_BLACS.m4.id
    Src/m4/.arch-ids/TW_CHECK_FC_90.m4.id
    Src/m4/.arch-ids/TW_CHECK_FC_95.m4.id
    Src/m4/.arch-ids/TW_CHECK_FC_FPP.m4.id
    Src/m4/.arch-ids/TW_CHECK_FC_FPP_90.m4.id
    Src/m4/.arch-ids/TW_CHECK_FC_TR15580.m4.id
    Src/m4/.arch-ids/TW_CHECK_FC_TR15581.m4.id
    Src/m4/.arch-ids/TW_CHECK_SCALAPACK.m4.id
    Src/m4/.arch-ids/TW_FC_CHECK_DCFUNS.m4.id
    Src/m4/.arch-ids/TW_FC_CHECK_FLUSH.m4.id
    Src/m4/.arch-ids/TW_FC_ID.m4.id
    Src/m4/.arch-ids/TW_FC_ID_FLAGS.m4.id
    Src/m4/.arch-ids/TW_FIND_FC_BLAS.m4.id
    Src/m4/.arch-ids/TW_FIND_LAPACK.m4.id
    Src/m4/.arch-ids/TW_PATH_NETCDF.m4.id
    Src/m4/.arch-ids/TW_TRY_DC_LAPACK.m4.id
    Src/m4/.arch-ids/ac_config_aux_dirs.m4.id
    Src/m4/.arch-ids/fortran.m4.id Src/m4/ACX_MPI.m4
    Src/m4/TW_CHECK_BLACS.m4 Src/m4/TW_CHECK_FC_90.m4
    Src/m4/TW_CHECK_FC_95.m4 Src/m4/TW_CHECK_FC_FPP.m4
    Src/m4/TW_CHECK_FC_FPP_90.m4
    Src/m4/TW_CHECK_FC_TR15580.m4
    Src/m4/TW_CHECK_FC_TR15581.m4
    Src/m4/TW_CHECK_SCALAPACK.m4
    Src/m4/TW_FC_CHECK_DCFUNS.m4
    Src/m4/TW_FC_CHECK_FLUSH.m4 Src/m4/TW_FC_ID.m4
    Src/m4/TW_FC_ID_FLAGS.m4 Src/m4/TW_FIND_FC_BLAS.m4
    Src/m4/TW_FIND_LAPACK.m4 Src/m4/TW_PATH_NETCDF.m4
    Src/m4/TW_TRY_DC_LAPACK.m4 Src/m4/ac_config_aux_dirs.m4
    Src/m4/fortran.m4
New-directories: Src/m4 Src/m4/.arch-ids
Modified-files: Src/Makefile
New-patches: siesta@uam.es--2004/siesta-devel--reference--1.4--patch-10
    twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--base-0
    twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-1
    twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-2
    twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-3
    twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-4
    twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-5
    twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-6
    twhite@siesta.arch--2004/siesta-devel--autoconf--1.4--patch-7
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--base-0
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-1
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-2
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-7
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-4
Summary: Autoconf files -- merge of siesta-devel--twhite--1.4--patch-4
Keywords: 



=======================================================================
Version: 1.4.27
Date: 2004/12/09  17:30 GMT
Title: Fixes by Toby White (siesta-devel--reference--1.4--patch-9)
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Changes:

    * minor fixes to let NAG run with fewer complaints
    * - neigh.f: initialize CELAST & RGLAST before use
                 use precision module
                 add intents to arguments
      - meshmatrix.F: do not test size of unallocated array
      - matel.f & meshsubs.f: make sure literal constants have
                              correct precision
    * Rearrange Libs:
      - move IEEECK from blas.f to lapack.f
      - replace machine.f with LAPACK3E version which is not
        broken by optimization.
      - Src/Libs/makefile & Src/Makefile: add separate targets 
                                          for libblas.a and liblapack.a
    * Src/Makefile fixes: 
      - clear SUFFIXES at the start (fixes .mod Modula-2 problems)
      - Fix sed quoting in version rule (and tidy it up a bit)

ARCH info:

Revision: siesta-devel--reference--1.4--patch-9
Archive: siesta@uam.es--2004
Creator: Alberto Garcia <wdpgaara@lg.ehu.es>
Date: Tue Dec  7 20:22:24 CET 2004
Standard-date: 2004-12-07 19:22:24 GMT
Renamed-files: Src/Libs/.arch-ids/machine.f.id Src/Libs/.arch-ids/machine.F.id
    Src/Libs/machine.f Src/Libs/machine.F
Modified-files: Src/Libs/README Src/Libs/blas.f
    Src/Libs/lapack.f Src/Libs/machine.F Src/Libs/makefile
    Src/Makefile Src/matel.f Src/meshmatrix.F Src/meshsubs.F
    Src/neighb.f
Modified-directories: Src/Libs/.arch-ids
New-patches: siesta@uam.es--2004/siesta-devel--reference--1.4--patch-9
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-3
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-4
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-5
    twhite@siesta.arch--2004/siesta-devel--tw-bugfix--1.4--patch-6
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--base-0
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-1
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-2
    twhite@siesta.arch--2004/siesta-devel--twhite--1.4--patch-3
Summary: Merge of siesta-devel--twhite--1.4--patch-3
Keywords: 

** Transitional fixes:

	Removed obsolete files:

	Src/fdf:   fdf2.f  fdf3.f
        Src/NetCDF:  netcdf.f90.orig netcdf_overloads.f90.orig
        Util/Denchar/Src/NetCDF:  netcdf.f90.orig netcdf_overloads.f90.orig
	Docs/Tech: basis_generation.html index.html

=======================================================================
Version: 1.4.26
Date: 2004/12/05  3:30 GMT
Title: Fixes for test example bugs
Author: Julian Gale <julian@power.curtin.edu.au>

dfscf.f         Setting of Parallel_Run variable corrected
gradient.F      Reinitialisation of bux1/2 moved for correct 
                operation of serial version.
pdos.F          Deallocation of tmp moved to correct place
siesta.F        Initialisation of Escf given explicit limits
=======================================================================
Version: 1.4.25
Date: 2004/12/02  4:00 GMT
Title: Fix for parallel ON grad
Author: Julian Gale <julian@power.curtin.edu.au>

The algorithm used in gradient.F to calculate the gradients of the
LWF coefficients has been subtly modified. In the previous version
it was found that every so often a contribution from one Node to 
a gradient only present on another node was occuring. This is now
avoided by computing the first term in the gradient using globalised
versions of bux1/2 & ft/fst. Consequently it is now restricted to 
only those basis functions in grad for which the local node is
responsible. However, bux1 has to be globalised as well as bux2.

Files:
dhscf.F      Call to create mapping of Dscf to DscfL wrapped by check
             on number of processors, rather than local number of 
             orbitals in line with changes for version 1.4.24
gradient.F   Algorithm modifed as described above
version.F90, CHANGES
=======================================================================
Version: 1.4.24
Date: 2004/11/28 12:00 GMT
Title: Zero work on nodes fixes
Author: Julian Gale <julian@power.curtin.edu.au>

A few changes have been made to handle the case where a spatial
decomposition is used but there are no orbitals assigned to a
given node. 

Files:
denmat.F     Trap for nbasisloc = 0 in referencing arrays
dfscf.f      Local parallel variables set based on number of nodes
ordern.F     Trap for nbasisloc = 0 in referencing arrays
rhoofd.f     Local parallel variables set based on number of nodes
vmat.f       Local parallel variables set based on number of nodes
version.F90, CHANGES
=======================================================================
Version: 1.4.23
Date: 2004/11/24 12:00 GMT
Title: Increased maxclustersize in diagonalisation
Author: Julian Gale <julian@power.curtin.edu.au>

The default value of maxclustersize in rdiag/cdiag has been increased
from 0 to 12. In the case of degenerate eigenvalue clusters, this will
save one call to the diag routines if the number is less than 12.

Files:

cdiag.F      maxclustersize initialised to 12
rdiag.F      maxclustersize initialised to 12
version.F90, CHANGES
=======================================================================
Version: 1.4.22
Date: 2004/11/23 1:00 GMT
Title: Fix to setting of neigwanted for spin polarisation
Author: Julian Gale <julian@power.curtin.edu.au>

Small fix to siesta.F in the setting of neigwanted. Previous
version failed for spin polarisation because qtot needed to
be replaced by qs(is) in the calculation of neigmin. Check
against neigmin moved to last for safety too.

Files:

siesta.F      Setting of neigmin corrected for nspin>1
version.F90, CHANGES
=======================================================================
Version: 1.4.21
Date: 2004/11/22 8:40 GMT
Title: New spin polarised order N and diagonalisation routines
Author: Julian Gale <julian@power.curtin.edu.au>

Three major changes and lots of small ones. The key changes are:

(A) Matrix diagonalisation:

Matrix diagonalisation routines have been rewritten to give greater 
control over diagonalisation algorithms. Changes include:

(1) Option to use expert or simple interface
(2) Option to use "all in one" call of diagonaliser or components
(3) Parallel divide and conquer added
(4) Option for pre- and post- rotation of standard eigensolutions added
(5) SIESTA specific lapack calls added to reduce memory usage in
    divide and conquer algorithms
(6) Work space sizes now set to value that is likely to give the
    best performance rather than the minimum
(7) Names of control options now pre-fixed with "Diag."
(8) Facility for changing algorithm as a function of no. of SCF
    cycle included
(9) A 2-D decomposition is now the default for scalapack since this
    is found to give radically improved scaling in the parallel
    performance.

(B) Order N:

Parallel code has been rewritten based on 0.15 version, with a spatial
decomposition strategy. This is based on an approach that minimises
communication at the expense of memory by only passing between two
nodes once per array during the key order N routines. The routines
are designed to be efficient for large problems - i.e. when the size
of the interaction range is small compared to region size stored on
each node.

(C) Spin-polarised order N:

Separate Fermi lelvels can now be set for alpha and beta spin so as
to perform spin polarised order N. Look forward to double the
convergence problems though!

Files:

Docs/

siesta.tex         Modified to reflect the option changes for the 
                   new version.

Src/

alloc.F90          Unused variables removed
                   REPORT_LEVEL now broadcast to all nodes
                   Output now enable for level 4 case in parallel
atmfuncs.f         lmxkbfis accessed from module
atmparams.f        Default value of nsmx now = 2, rather than 1.
atomlist.f         Size of variable in write statement increased
atomlwf.F          New order N version with spin polarisation
bands.F            Reference to dot removed
                   occtol pased through to diag routines
                   Unused variables removed
cart2frac.f        Routine added to convert Cartesian to fractional coordinates
                   for use in spatial decomposition.
cdiag.F            Blacs communicators now only setup once
                   Rewritten to allow access to full (sca)lapack functionality
                   Parallel divide and conquer added
                   2-D decomposition added
cellxc.F           Double precision -> real(dp)
                   Unused variables removed
chkgmx.f           Function dot replaced by blas routine ddot
cgwf.F             New order N version with spin polarisation
chempot.F          Double precision -> real(dp) + module use onlys added
                   Order of dense matrix initialise loop swaped for efficiency
                   Timing calls placed in chempot rather than calling routine
chkgmx.f           Function dot replaced by blas routine ddot
conjgr.f           Function dot replaced by blas routine ddot
denmat.F           New order N version with spin polarisation
detover.F          Unused variables removed
dfscf.f            Double precision -> real(dp)
                   Small modifications of some operations to try to achieve
                   better performance.
dhscf.F            Function dot replaced by blas routine ddot
                   Modifications made for spatial decomposition when nuo = 0
                   Double precision -> real(dp)
                   Call to readsp moved to frstme section and results saved
                   Calls to mesh subroutines - arguments changed
diagg.F            Handling of small occupancies in DM build revised
diagk.F            Handling of small occupancies in DM build revised
                   Calculation of eigenvectors now restricted to the minimum needed
diagkp.F           Handling of small occupancies in DM build revised
                   Calculation of eigenvectors now restricted to the minimum needed
diag2g.F           Handling of small occupancies in DM build revised
diag2k.F           Handling of small occupancies in DM build revised
                   Calculation of eigenvectors now restricted to the minimum needed
diagg.F            Handling of small occupancies in DM build revised
diagsprl.F         Handling of small occupancies in DM build revised
                   Calculation of eigenvectors now restricted to the minimum needed
                   Note that it appeared that twice as many eigenvectors as possible
                   were being calculated.
                   calculated previous
diagon.F           New parameters passed through - iscf & occtol
                   Call to readsp moved to frstme section and results saved
diagpol.f          Call to cdiag modified
                   Memory handling modified
                   Local array aux removed
dsyevds.f          Setting of LOPT modified on return from dsytrd
efield.F           Function dot replaced by blas routine ddot
egandd.F           New order N version with spin polarisation
eggbox.F           Unused variables removed
ener3.F            New order N version with spin polarisation
ener3lomem.F       Lower memory version of ener3
extrapol.F         Trapped added for parallel case where nuo is zero
extrapolon.F       New order N version with spin polarisation
fermid.F           Unused variables removed
fft3d.F            MPI sub groups only created on first call 
fixed.F            Function dot replaced by blas routine ddot
globalise.F        Routine for communication in order N added
gradient.F         New order N version with spin polarisation
grdsam.F           Fa / stress removed and order of dealloc improved
hsparse.f          Calculation of numh & listh separated
initdm.F           Trap added for parallel case where nuo is zero
initparallel.F     Routine added to initialise parallel parameters
iodm.F             Variable declaration made more f90 like
iohs.F             Unused variables removed
iolwf.F            New order N version. Only new format files supported
iorho.F            Variable declarations moved to ifdef MPI block
                   Unused variables removed
kgrid.F            Error message for non-normalised weights replaced by
                   correction of weights.
ksv.f              Function dot replaced by blas routine ddot
ksvinit.f          Unused variables removed
linpack.F          Unused variables removed
Makefile           New routines added
matel.f            Double precision -> real(dp)
                   Unused variables removed
                   Upper bounds for arrays specified on call to ylmexp to
                   avoid out of bounds error messages when debugging. 
memoryinfo.F       DiagScale & TryMemoryIncrease removed
meshmatrix.F       Variable declarations moved to ifdef MPI block
meshsubs.F         Function dot replaced by blas routine ddot
                   Unused variables removed
minvec.f           Function dot replaced by blas routine ddot
                   Unused variables removed
mneighb.f          Module version of neighb added for order N
m_denchar_neighb.f Function dot replaced by blas routine ddot
mulliken.F         Minor tidy
onmod.F            New order N version with spin polarisation
on_subs.F          New order N version with spin polarisation
ordern.F           New order N version with spin polarisation
outcell.f          Double precision -> real(dp)
outcoor.f          Double precision -> real(dp)
overfsm.f          Double precision -> real(dp)
parallel.f         Default blocksize set to 24
parallelsubs.f     Support for spatial decomposition added
pdos.F             Unused variables removed, including array aux
pdosg.F            Call to rdiag modified
                   Unused variables removed
                   Memory handling for diagonalisation changed
pdosk.F            Call to cdiag modified
                   Unused variables removed
                   Memory handling for diagonalisation changed
phirphi_opt.f      Reference to dot removed
phonon.F           Double precision -> real(dp)
plcharge.F         Declaration of maxnhg moved to MPI block
poison.F           Style changed (partly) to resemble rest of code
propor.f           Convert to lower case style
pulayx.F           Indenting standardised
radfft.f           Unused variables removed
                   Double precision -> real(dp)
                   Order of memory allocation/deallocation optimised
ranger.f           Double precision -> real(dp)
                   Function dot replaced by blas routine ddot
rdiag.F            2-D decomposition added
                   Blacs communicators now only setup once
                   Rewritten to allow access to full (sca)lapack functionality
                   Parallel divide and conquer added
readsp.F           Duplicate definition of 'use parallel' removed
redata.F           Separate eta values for alpha & beta spin added
                   Occupancy tolerance made an input parameter
                   DiagScale & TryMemoryIncrease removed
                   DiagMemory option -> Diag.Memory for consistency
                   with new options in cdiag.F / rdiag.F
redcel.F           Double precision -> real(dp)
reoptical.F        Unused variables removed
rhoofd.f           Modifications made for spatial decomposition when nuo = 0
rhoofdsp.f         Unused variables removed
parallelsubs.f     Spatial decomposition included
propor.f           Numbered do loops removed
setatomnodes.F     Routine added to assign atoms to Nodes
setspatial.f       Spatial decomposition included
shaper.f           Double precision -> real(dp)
sig.f              Double precision -> real(dp)
                   Unused variables removed
siesta.F           New parameters passed to diagon / bands
                   Unused variables removed
                   Trap on error message for order N / PDOS combination added
                   so that it is only output if do_pdos is actually true.
                   Variable neigwanted added to restrict eigenstate computation
                   for gamma point case.
spatial.F          Spatial decomposition included
spher_harm.f       Function dot replaced by blas routine ddot
                   Referencing of passed arrays in YLMYLM shifted by 1 (Y &
                   DYDR now start at 0)
siesta.F           Call to ordern changed & eta now eta(2)
                   Pressure now output for variable cell optimisation
sys.F              Unused variables removed
transition_rate.F  Unused variables removed
typecell.f         Double precision -> real(dp)
uncell.f           Routine added for conversion of vectors to cell parameters
vmat.f             Trap for nuo = 0 added in parallel
                   Double precision -> real(dp)
vmatsp.f           Unused variables removed
vmb.F              Double precision -> real(dp)
writewave.F        Reference to dot removed
                   Calls to diag routines modified
                   Unused variables removed
xc.f               Double precision -> real(dp)
                   Unused variables removed
zheevds.f          Lower memory version of lapack routine zheevd

Src/Libs/

lapack.f           Routines required for new rdiag/cdiag added
=======================================================================
Version: 1.4.20
Date: 2004/11/19 8:40 GMT
Title: Fixed import of symbols from basis_types and basis_specs modules
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Files:
	Src/initatom.f 
            gen-basis.F
            basis_specs.f :  Added "private" clause to basis_specs
                             and imported symbols explicitly in
                             initatom and gen-basis.

	version.F90: Customary changes.

=======================================================================
Version: 1.4.19
Date: 2004/11/13 15:00 GMT
Title: Added pdosxml utility, ps rc table, MPI test files, "only" clauses
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Files:
	Util/pdosxml/       : Directory containing PDOS file processor
                              which uses the Fortran XML parser.

	Pseudo/atom/Contrib/atom_table.txt:
                              Table by Jose Luis Martins with suggested
                              values for the configurations and rc
                              parameters for pseudopotential generation.

        Src/MPI/blacs_prb.f90
                pblas_prb.f90
                pblas.dat
                pi3.F      :  Files to test the MPI installation, and
                              the blacs and pblas libraries.
        Src/MPI/Makefile   :  Support for the test files.
        Src/MPI/generate.sh:  Fix a typo (SV, VS overloads)
	
	Src/atom.f 
            basis_types.f  :  Added "only" clauses in import of
                              basis_types module.
        Src/Makefile       :  Added dependency for sys.o

	version.F90: Customary changes.

=======================================================================
Version: 1.4.18
Date: 2004/08/30 11:00 GMT
Title: Bug in noncollinear spin input angles, reported by Ivan Runger
Author: Jose M. Soler <jose.soler@uam.es>

With the noncollinear spin option, the input spin angles were not
converted to radians

Files:
	initdm.F : Factor pi/180 added to angles
	version.F90: Customary changes.

=======================================================================
Version: 1.4.17
Date: 2004/07/19 12:00 GMT
Title: More code cleanup after optical props import
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

A number of mostly cosmetic changes were necessary to make the code
acceptable by the Intel Compiler.

Files:

	fermid.F : Changed into a module

	Makefile bands.F conjgr.f dfscf.f 
	diag2g.F diag2k.F diagg.F diagk.F diagkp.F diagsprl.F
	diagon.F optical.F phirphi_opt.f rdiag.F 
	timer.F transition_rate.F writewave.F: Assorted cosmetic changes.

	scalapack_extra.f: New file to hold SCALAPACK routines not
                           in old versions.
	Sys/itanium2-mpi.make: Use scalapack_extr

	version.F90: Customary changes.

=======================================================================
Version: 1.4.16
Date: 2004/07/14 10:40
Title: HighestOccupiedBand fix
Author: Julian Gale <julian@power.curtin.edu.au>

The setting of the highest occupied orbital has been changed to
come from the top downwards to avoid problems with the
SingleExcitation option.

Files:

diagg.F   Setting of HighestOccupiedBand changed
diagk.F   Setting of HighestOccupiedBand changed
diagkp.F  Setting of HighestOccupiedBand changed

+ usual changes to CHANGES, version.F90
=======================================================================
Version: 1.4.15
Date: 2004/07/13 11:30
Title: Optical properties & improved gamma point diagonalisation
Author: Daniel Sanchez-Portal and 
        Julian Gale <julian@power.curtin.edu.au>

Optical property calculation reintroduced, modified for improved
efficiency, and parallelised. It should be noted that while it works
in parallel there is scope for improvement of the performance.

Arrays Haux, Saux & psi which are dense moved into a new module.

Memory requirements for gamma point divide and conquer option reduced 
by adding SIESTA specific routine that avoids copying.

Parallel divide and conquer for gamma point added.

Node & Nodes placed in parallel module.

Memory accounting made more reliable.

Files:

In Src/

Makefile           New routines & modules added
alloc.F90          Subroutine count changed so that memory is always
                   called to ensure that total memory count is correct.
atmfuncs.f         rphiatm made public for benefit of phirphi_opt
atomlwf.F          Node/Nodes now accessed from parallel module
bands.F            Node/Nodes now accessed from parallel module
                   Haux, Saux & psi accessed from module
broadcast_basis.F  Node/Nodes now accessed from parallel module
cdiag.F            Node/Nodes now accessed from parallel module
cellxc.F           Node/Nodes now accessed from parallel module
cgvc.F             Node now accessed from parallel module
cgwf.F             Node/Nodes now accessed from parallel module
chempot.F          Node/Nodes now accessed from parallel module
chkgmx.F           Removed
chkgmx.f           chkgmx.F but with no need for cpp since Node is
                   now accessed from parallel module
denchar.F          Node/Nodes now accessed from parallel module
denmat.F           Node/Nodes now accessed from parallel module
densematrix.f      Module containing Haux, Saux & psi added
detover.F          Node/Nodes now accessed from parallel module
dhscf.F            Node now accessed from parallel module
diagg.F            No. of eigenvectors argument added to rdiag call
                   Node/Nodes now accessed from parallel module
diag2g.F           Node/Nodes now accessed from parallel module
diag2k.F           Node/Nodes now accessed from parallel module
diagk.F            Node/Nodes now accessed from parallel module
diagkp.F           Node/Nodes now accessed from parallel module
diagon.F           Arrays Haux, Saux & psi now accessed from module
                   Node/Nodes now accessed from parallel module
diagpol.f          Arrays Haux & Saux now passed in
diagsprl.F         Node/Nodes now accessed from parallel module
dipole.F           Node/Nodes accessed from parallel module
dnaefs.f           Call to chkdim removed
dsyevds.f          Modified version of Lapack routine to save memory
dynamics.F         Renamed to dynamics.f
dynamics.f         As per dynamics.F except that Node is accessed from
                   parallel module & uses module precision
efield.F           Use of "double precision" replaced by real(dp)
                   Node/Nodes accessed from parallel module
eggbox.F           Node now accessed from parallel module
egandd.F           Node/Nodes accessed from parallel module
ener3.F            Node/Nodes accessed from parallel module
extrapol.F         Node/Nodes accessed from parallel module
extrapolon.F       Node/Nodes accessed from parallel module
fermid.F           Node/Nodes accessed from parallel module
                   Precision taken from module
fft3d.F            Node/Nodes accessed from parallel module
fixed.F            Node/Nodes accessed from parallel module
gauleg.f           File removed since it is no longer used
gen-basis.F        Node/Nodes accessed from parallel module
gradient.F         Node/Nodes accessed from parallel module
grdsam.F           Node accessed from parallel module
hsparse.f          Node/Nodes accessed from parallel module
idiag.f            Fast return added for case where MOLD is diagonal
                   already to avoid crash in kgrid
initdm.F           Node/Nodes accessed from parallel module
iodm.F             Node/Nodes accessed from parallel module
iohs.F             Node/Nodes accessed from parallel module
iolwf.F            Node/Nodes accessed from parallel module
ionew.F            Node accessed from parallel module
iorho.F            Node/Nodes accessed from parallel module
ioxv.F             Node accessed from parallel module
kgrid.F            Node accessed from parallel module
kgridinit.F        Cosmetic changes & Node accessed from parallel module
kinefsm.f          Call to chkdim removed
                   Node/Nodes accessed from parallel module
ksv.F              Renamed to ksv.f as cpp now not needed
ksv.f              As per ksv.F, but Node accessed from parallel module
                   Arrays Haux, Saux & psi now accessed from module
                   Size of psi arrays is reduced by a factor of nspin
                   which is not actually needed.
                   Output that was in the main routine is now here.
listsc.f           Redundant reference to external chkdim removed
madelung.F         Renamed to madelung.f as cpp now not needed
madelung.f         As per madelung.F, but Node accessed from parallel module
memory.F           Node/Nodes accessed from parallel module
meshmatrix.F       Use of "double precision" replaced by real(dp)
                   Node/Nodes accessed from parallel module
meshsubs.F         Node/Nodes accessed from parallel module
minvec.f           Precision now set from module
mulliken.F         Node/Nodes accessed from parallel module
naefs.f            Call to chkdim removed
nlefsm.f           Redundant reference to external chkdim removed
                   maxna now passed in so that it's size is increased
                   prior to possible optical calculation
                   Node/Nodes accessed from parallel module
ofc.f              Redundant reference to external chkdim removed
on_subs.F          Node/Nodes accessed from parallel module
optical.F          Added from version 0.15 & updated
                   Node/Nodes accessed from parallel module
ordern.F           Node/Nodes accessed from parallel module
overfsm.f          Node/Nodes accessed from parallel module
parallel.f         Node/Nodes placed in module
parallelsubs.f     Split out of parallel.f to contain subroutines
                   Default BlockSize increased to 24
pdos.F             Node/Nodes accessed from parallel module
                   Arrays Haux, Saux & psi now accessed from module
pdosg.F            No. of eigenvectors argument added to rdiag call
                   Node/Nodes accessed from parallel module
pdosk.F            Node/Nodes accessed from parallel module
phirphi.f          Use of chkdim removed
                   Calls to matel now wrapped by check on whether dk is
                   significant to avoid redundant calculation.
                   Node/Nodes accessed from parallel module
phirphi_opt.f      Added from version 0.15 & updated
                   Calls to matel now wrapped by check on whether dk is
                   significant to avoid redundant calculation.
                   Node/Nodes accessed from parallel module
phonon.F           Reference to chkdim being external removed
                   Node/Nodes accessed from parallel module
plcharge.F         Node/Nodes accessed from parallel module
poison.F           Node/Nodes accessed from parallel module
propor.f           Precision now set from module
pulayx.F           Node/Nodes accessed from parallel module
radfft.f           Redundant reference to external chkdim removed
rdiag.F            Rewritten version added
                   Node/Nodes accessed from parallel module
readsp.F           Node/Nodes now accessed from parallel module
redata.F           Node/Nodes now accessed from parallel module
                   Default MemoryFactor reduced to 1.2
reinit.F           Node/Nodes now accessed from parallel module
reoptical.F        Added from version 0.15 & updated
                   Node/Nodes now accessed from parallel module
repol.F            Use of "double precision" replaced by real(dp)
                   Node/Nodes now accessed from parallel module
savepsi.F          Node/Nodes now accessed from parallel module
shaper.f           Redundant reference to external chkdim removed
siesta.F           Pointers Haux, Saux & psi nullified
                   Calls to optical added
                   Resizing of arrays after nlefsm added if required
                   based on maxna
                   Output for KSV now moved into KSV_pol
                   Node/Nodes accessed from parallel module
sys.F              Node/Nodes now accessed from parallel module
timer.F            Node now accessed from parallel module
                   Made implicit real(dp) rather than double precision
transition_rate.F  Added from version 0.15 & updated
                   Node/Nodes accessed from parallel module
vmb.F              Use of "double precision" replaced by real(dp)
                   Node/Nodes accessed from parallel module
xijorb.f           Node/Nodes accessed from parallel module
writewave.F        Arrays Haux, Saux & psi now accessed from module
                   Node/Nodes accessed from parallel module

In Src/Libs/

lapack.f           Extra-routines added for rdiag.F

In Util/

optical            Directory renamed to Optical for style consistency

In Util/Optical

README             Reinstated from version 0.15
input.f            Reinstated from version 0.15
optical.f          Reinstated from version 0.15
si.EPSIMG          Reinstated from version 0.15

In Docs/

siesta.tex         Optical option documented
CHANGES            This documentation added!
=======================================================================
Version: 1.4.14
Date: 2004/06/23 14:30
Title: Diag speed up
Author: Julian Gale <julian@power.curtin.edu.au>

Saving of CPU time in diag*.F by skipping build of density matrix
when the band occupancy is less than a small threshold.

Files:

Src/diag2g.F     HighestOccupiedBand pointer added to limit D build
Src/diag2k.F     HighestOccupiedBand pointer added to limit D build
Src/diagg.F      HighestOccupiedBand pointer added to limit D build
Src/diagk.F      HighestOccupiedBand pointer added to limit D build
Src/diagkp.F     HighestOccupiedBand pointer added to limit D build
                 Sizes of listhptr/listdptr/numh/numd changed to maxuo
Src/diagsprl.F   HighestOccupiedBand pointer added to limit D build
=======================================================================
Version: 1.4.13
Date: 2004/06/23  9:30
Title: Even more code cleanup
Author: Julian Gale <julian@power.curtin.edu.au>

Some minor fixes to compilation and other small changes

Files:

Src/atom.f          Check on value of nsemx being exceeded for qPAO added
Src/electrostatic.f npairs is now used from atm_types so that the value is
                    the same on all nodes
Src/dfscf.f         indxuo now accessed from module
Src/dhscf.F         First dimension of DVxcdn made equal to ntpl for
                    correct bounds checking in cellxc.F even though
                    never referenced 
                    indxuo no longer passed through
Src/grdsam.F        indxuo no longer passed through
Src/meshmatrix.F    indxuo now accessed from module
Src/parallel.f      Default blocksize increased to 16
Src/rhooda.f        indxuo now accessed from module
Src/rhoofd.f        indxuo now accessed from module
Src/rhoofdsp.f      indxuo now accessed from module
Src/siesta.F        ifdef NODAT wrapping of mpi_siesta use statement
                    added to select correct quantity for using
                    indxuo no longer passed to grdsam & dhscf
Src/vmat.f          indxuo now accessed from module
Src/vmatsp.f        indxuo now accessed from module
=======================================================================
Version: 1.4.12
Date: 2004/06/10 21:00
Title: More code cleanup
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

* Declaration of variables in some files.
 (implicit statements for real variables remain...)

File siesta/Src/dot.f 
File siesta/Src/electrostatic.f 
File siesta/Src/fermid.F 
File siesta/Src/idiag.f 
File siesta/Src/linpack.F
File siesta/Src/paste.f 
File siesta/Src/poison.F 
File siesta/Src/pseudopotential.f
File siesta/Src/ranger.f 
File siesta/Src/reclat.f 
File siesta/Src/timer.F 
File siesta/Src/xc.f 

* Some changes to the MPI compilation setup. File mpif2sane.f90 intended
  to replace the direct  inclusion of mpif.h in the future.

File siesta/Src/MPI/Makefile              (new symbol for NAG compiler)
File siesta/Src/MPI/mpi.F                 (remove some mpi_2XX symbols)
File siesta/Src/MPI/mpi__include.f90              ( " )
File siesta/Src/MPI/mpif2sane.f90 is new.
File siesta/Src/Sys/macosx-nag-mpi.make is new.

=======================================================================
Version: 1.4.11
Date: 2004/06/08 12:00
Title: Use of accessibility clauses to help compilers + cleanup
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

* Some compilers (notably Intel's) have trouble compiling certain
sections of the code, probably because of limitations in their
namespace-handling internal structures in some versions.  To help
them, and also as a matter of good programming practice, it is
advisable to follow these basic guidelines:

1. Make all modules "private" by default. Public entities should be
given the "public" attribute explicitly. This prevents the leaking of
symbols from other used modules.
2. Use the "only:" qualifier to import symbols from modules. This is
particularly necessary for program units which use a lot of modules, such
as siesta.F itself.

Files changed: 

        Src: pdos.F redata.F siesta.F cdiag.F rdiag.F 
             atmfuncs.f old_atmfuncs.f basis_types.f atm_types.f
	     atom.f transfer.f ionew.F initatom.f atomlist.f
             dfscf.f rhoofd.f rhoofdsp.f vmat.f vmatsp.f

	Src/MPI: mpi.F mpi__include.f90        (removed mpi.f90)

* On_subs has been turned into a module.

	Src: on_subs.F egandd.F

* The calculation of the electrostatic correction tables has been moved out
  of the basis-generation modules and placed in a new one (electrostatic.f).
  Gen-basis and the rest of the basis-generation code are now more decoupled
  from the rest of the program, and a number of duplicate routines have
  been removed. The module old_atmfuncs.f has been streamlined, with the
  removal of a number of obsolete routines and data structures.

Files:

	Src: old_atmfuncs.f atom.f transfer.f initatom.f gen-basis.F
             Makefile basis_io.F

* Fixed MPI/Makefile to make the NODAT option pass through for the 
  compilation of the MPI modules. 

	Src/MPI/Makefile

* New directory Src/wxml for XML-writing modules. The new code is being
  progressively integrated into Siesta. 

  Files:   
		Src: pdos.F   (some new calls, and extra file)
                     Makefile (support for wxml)

	        Src/wxml: New directory

   (Developers: use "-d" flag to cvs update to pick up the new directory)

* Removal of unused symbols, declaration of implicitly-typed variables,
  use of standard kinds for real variables (some files only)

	Src: chkgmx.F bessph.f pseudopotential.f atm_types.f basis_types.f
             atom.f transfer.f basis_io.F

* Tab removal and other cosmetic changes:

	Src: iopipes.F90 chempot.F fermid.F alloc.F90 matel.f meshsubs.F
             neighb.f ranger.f ran3.f overfsm.f

* Wrapping of MPI I/O (Julian Gale):

	Src: diagon.F  (spiral case was not wrapped)

* Change in deallocation order (Julian Gale):

        Src: rhoofd.f vmat.f

* In timer.F, the call to the CPUTIM routine has been eliminated in favor
  of the f95 standard cpu_time. A new file "cpu_time.f90" has been added
  for compilers which are not f95-compliant (PGI). Current SYS symbols
  in .make files are redundant but harmless.

	Files:  Src:  timer.F cpu_time.f90 (new file)
                Src/Sys:  pgf90*.make  (use cpu_time in SYS)

* New .make files for compilation on a new machine with itanium2 processors
  and myrinet networking (using Intel's 7.1 compiler)

	Files:  Src/Sys: itanium2.make itanium2-mpi.make

* Pseudo/atom/Tutorial: 
	scripts ae.sh, pg.sh, and pt.sh made more robust.
        New file subps.gps for shell interoperability.

  version.F90                : Customary changes
  Docs/CHANGES               : Customary changes

========================================================================
Description: New .make and SYS files to support IBM's pessl library
Version: 1.4.10
Date: 2004/02/04 16:00
Title: Support for pessl on IBM machines
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description: New .make and SYS files to support IBM's pessl library

Files:

  Src/Sys/ibm-regatta-p4.make: New file
  Src/ibm_pessl.f            : New file with extra code 
  version.F90                : Customary changes
  Docs/CHANGES               : Customary changes

=======================================================================
Version: 1.4.9
Date: 2004/02/01 18:00
Title: Miscellaneous fixes for portability
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description: Consolidation of various fixes for portability.

Files:

Src/basis_types.f  : use kind(dp) instead of real*8
Src/iodm.F         : use ionew
Src/pseudopotential.f : use ionew
Src/pdos.F         : Remove unused variables, arguments, and functions.
Src/siesta.F       : Remove unused arguments in call to pdos. 
                     Remove hollerith constructs.
Src/periodic_table.f : Make mass data real, instead of double precision.
Src/xlf.f          : New file for IBM-XL support (flush routine)
Src/f2kcli.F90     : New file for command-line argument parsing.
Src/iopipes.F90    : Add conditional block for NAG compilation.

Src/Makefile       : Remove f2kcli from gen-basis and siesta (mpich problems)
Src/gen-basis.F    : Remove f2kcli code.

Src/denchar.F
    m_denchar_geom.f
    m_denchar_init.F
    m_denchar_io.F	
    m_denchar_neighb.f
    m_denchar_work.f   : New files for denchar in top directory.  
Util/Denchar/Docs/denchar.tex: Manual for denchar updated.
Util/Denchar/Docs/CHANGES    : Updated to reflect change in code location.
Util/Denchar/Src/Makefile    : Disabled.

Util/Contour/grid2d.f : float to dble. Open statements changed.
Util/PyAtom: shape.sh : extracts cell shape data from output file.


Src/NetCDF/Makefile: add default line. Add FFLAGS_NETCDF symbol.
Src/Libs/makefile  : do not include machine.o in dc_lapack.a
Src/Sys/pgf90.make : Add dc_lapack.a to COMP_LIBS. Tab for atom.o. CDF optional
Src/Sys/pgf90-mpich.make : As above plus some documentation on MPI stuff
Src/Sys/macosx-xlf.make
Src/Sys/macosx-nag.make  : New files for MacOS X support.
Src/Sys/nag-darwin-nolibs.make : Removed. Obsolete

Util/PyAtom/local.biggles.py: change Vlocal to Reduced_vlocal.

=======================================================================
Version: 1.4.8
Date: 2004/01/26 16:00
Title: Fixes in inver, pulay, fermispin, plstm.
Author: Pablo Ordejon <ordejon@icmab.es>

Description: Fixes to correct bugs and/or improve the stability 
             of the inversion routines, the Pulay mixing and the fixed 
             spin calculations. These fixes correct the degradation
             of performance of selfconsistency convergence 
             of Siesta 1.3 compared to 1.2.  
             Small change on utility plstm.f to avoid problems 
             in some compilers.
             
Files:
  cgwf.F             : New interface with inver
  dynamics.F         : New interface with inver
  diagg.F            : Corrects call to fermispin
  diagk.F            : Corrects call to fermispin
  diagkp.F           : Corrects call to fermispin
  fermid.F           : Now contains fermispin subroutine; 
                       fermispin now calculates and returns entropy.
  fermispin.F        : Elliminated; content included now in fermid.F
  inver.f            : New interface, returns error message if 
                       unsuccessful execution
  pulayx.F           : New interface with inver; corrected stability
  version.F90        : Customary changes
  Makefile           : Elliminated reference to fermispin.F
  Docs/CHANGES       : Customary changes
  Util/plstm.f       : Changed input flags

=======================================================================
Version: 1.4.7
Date: 2004/01/22 17:00
Title: Bug in normalization of DOS
Author: Javier Junquera <jjunquer@physics.rutgers.edu>

Description: The Density Of States was divided twice by the number
             of k-points. This bug is present since version 1.2.41.
  
Files:
  pdosk.F            : The number of k-points, NK, has dropped 
                       from the normalization factor, NORM
  version.F90        : Customary changes
  Docs/CHANGES       : Customary changes

=======================================================================
Version: 1.4.6
Date: 2004/01/19 16:30
Title: Siesta as a subroutine
Author: Jose M. Soler <jose.soler@uam.es>

Description: A new utility routine module that can be used by external
  programs to communicate with siesta processes (running separatedly)
  to send coordinates and receive forces, as if siesta were a 
  conventional force-field subroutine.
  
Files:
  iopipes.F90 : New module with the routines to communicate with the
                user's driver program through Unix pipes
  redata.F    : Accepts new option MD.TypeOfRun=forces
  reinit.F    : Appends a number to file INPUT_TMP
  siesta.F    : Calls to the communication routines added
  Makefile    : Added file iopipes.o
  Util/SiestaSubroutine : New directory. Contains the module fsiesta, 
                          with the routines to be called by the user's
                          program, and the subdirectory FmixMD with an
                          example. See its file README for details.
  Docs/siesta.tex       : Explains the new option MD.TypeOfRun=forces

=======================================================================
Version: 1.4.5
Date: 2003/12/05 13:45
Title: Bug fix (initdm)
Author: Jose M. Soler <jose.soler@uam.es>

Description:
  A small denominator has been added to avoid a division by zero when
one tries to polarize a closed-shell atom. A warning has also been 
added for this case.

Files:
  initdm.F: small denominator and warning added

=======================================================================
Version: 1.4.4
Date: 2003/11/18 19:00
Title: Bug fix (initwave)
Author: Javier Junquera <jjunquer@physics.rutgers.edu>

Description: 
  Two allocatables variables were incorrectly deallocated

Files:
  writewave.F: inquiry for the status of values and integs before deallocate

=======================================================================
Version: 1.4.3
Date: 2003/11/07 17:00
Title: Bug fix (Plrho)
Author: Jose M. Soler <jose.soler@uam.es>

Description:
  An index was incorrectly initialized, causing problems in spin
polarized systems

Files:
  Util/Plrho/iorho.f  : Instruction ind=0 moved inside spin loops

=======================================================================
Version: 1.4.2 
Date: 2003/11/05 17:30
Title: Bux fix (initwave)
Author: Javier Junquera <jjunquer@physics.rutgers.edu>

Description: 

 A memory problem, that appeared when more than 4 values were 
 introduced in each line of the block WaveFuncKPoints, has been fixed.
 The variables values and integs in the subroutine initwave
 (module writewave) have been redefined as allocatable.

Files:
    writewave.F : variables values and integs defined as allocatable
    version.F90, CHANGES : Customary changes
    siesta.tex : Change of affiliation

=======================================================================
Version: 1.4.1 
Date: 2003/09/10 18:30
Title: version.F --> version.F90
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

Rewrite version.F as a free-format f90 file (and thus change the
extension to .F90). Modify Makefile accordingly.

Files:
    version.F  	: removed
    version.F90	: new file
    Makefile	: updated to reflect new .F90 extensions.

=======================================================================
Version: 1.4.0 
Date: 2003/07/30 20:45
Title: This is 1.4.0 in main trunk
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:
  This is 1.4.0 in main trunk. Any revision on 1.3 should be
done in the 1.3 branch as well as on this trunk

Files:
  build_serial and build_parallel (remove Tests)
  siesta.tex: removed reference to msiesta in constr.f 
  version.F CHANGES siesta.ind
=======================================================================
Version: 1.3 and 1.4.0 not yet
Date: 2003/07/19 19:15
Title: Pre Tagging and branching 1.3 and 1.4.0: Miscellanea
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:
  Some pre-branching changes: Mesh cutoff to 100Ry default;
  Makefile to show contents of FFLAGS etc in output;
  Manual: index entry for geometry constraints + warning about XV
          for supercell.

Files:
  Makefile, redata.F, siesta.tex, siesta.ind, version.F, CHANGES
=======================================================================
Version: 1.3 not yet
Date: 2003/07/23 14:15
Title: Minor bug corrections
Author: Pablo Ordejon <ordejon@icmab.es>

Description:
  A minor bug in the parallel execution in writewave.F has
been fixed. Two bugs in the output of Denchar have been
fixed.

Files:
  Src/writewave.f:  Parallel execution bug corrected
  Util/Denchar/Src/wrout.F:  Bug in writting of output corrected
  Util/Denchar/Src/itochar.F:  Bug in writting of output corrected
  Util/Denchar/Docs/denchar.tex, CHANGES:  Customary changes
  siesta.tex, CHANGES, version.F, release_notes_1.3:  Customary changes
=======================================================================
Version: 1.3 and 1.4.0 not yet
Date: 2003/07/19 19:15
Title: Pre Tagging and branching 1.3 and 1.4.0
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:
  The 1.3 package was to be defined at this stage. 
But not yet, since Examples have to be updated with 1.3 and a few
last minute things popped up. Later, it will be tagged
and a branch opened for bug corrections of 1.3 (new versions
with fixes will be produced and distributed when/if needed) while
the main branch trunk becomes 1.4.0 for further development.

Files:
  CHANGES, siesta.tex, version.F
=======================================================================
Version: 1.2.45
Date: 2003/07/17 22:00
Title: Slight change in Makefile 
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:
  The Makefile has been slightly changes to avoid problems with
the sed processing from version.F to temp.F and temp0.F

Files:
  Makefile + customary (Licence files added).
=======================================================================
Version: 1.2.44
Date: 2003/07/15 14:00
Title: Parallel eggbox
Author: Julian Gale <j.gale@imperial.ac.uk>

Description: 

The eggbox routine was tripping up parallel execution of the code
and so this has been handled.

Files:

diagon.F  : Order of memory deallocation reversed to be stack friendly
eggbox.F  : Calls to fdf are now handled in parallel and data is
          : broadcast where necessary
siesta.F  : First call to eggbox is now for all processors
version.F & CHANGES
=======================================================================
Version: 1.2.43
Date: 2003/07/14  1:30
Title: Fixed fermid
Author: Julian Gale <j.gale@imperial.ac.uk>

Description:

The routine fermid.F has been bug fixed. The variable NH was not
broadcast when read in parallel and not explicitly saved between
calls. Also the ocf string was set to two different defaults in
STEPF vs ENPY, which has been standardised.

Files:
fermid.F    : Changes as listed above.
version.F and CHANGES
=======================================================================
Version: 1.2.42
Date: 2003/07/11 11:00
Title: Berry phase continuity for polarization calculation
Author: Daniel Sanchez-Portal

Description:

The Berry phase is obtained as a surface integral (in reciprocal
space) of a so-called quantum phase.
When evaluating the integrand we have an arbitrariness of 2pin
in each point of the 2D mesh. This arbitrariness has
to be eliminated by enforcing the continuity of the integrand.
A few code lines have been added to subroutine ksv.F in order
to ensure this continuity. 

Files:
ksv.F  : few lines of code added and new array phaseold(2)
version.F and CHANGES
=======================================================================
Version: 1.2.41
Date: 2003/07/09 11:30
Title: Parallel PDOS, gamma point and K point weighting
Author: Julian Gale <j.gale@imperial.ac.uk>

Description:

The PDOS option has been extended to allow for the gamma point, 
K point weighting and parallel execution.

Files:

Makefile   : pdosg.F added
pdos.f     : renamed to pdos.F
pdos.F     : modified version of pdos.f to handle parallel execution
pdosg.F    : routine for PDOS calculation at gamma point added
pdosk.f    : renamed to pdosk.F
pdosk.F    : modified version of pdosk.f to handle parallel execution
siesta.F   : Parallel call to pdos now allowed and variables broadcasted
siesta.tex : Comment on order-N in parallel added
version.F and CHANGES
=======================================================================
Version: 1.2.40
Date: 2003/07/02 19:30
Title: renaming of module mpi to mpi_siesta
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:

Renaming of module mpi to mpi_siesta to avoid name clashes

Files:

alloc.F90, *.F
version.F and siesta.tex and CHANGES
=======================================================================
Version: 1.2.39
Date: 2003/06/30 19:00
Title: renaming of realloc and dealloc to re_alloc and de_alloc
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:

Renaming of realloc and dealloc to re_alloc and de_alloc
to avoid problems with some (not so standard but important)
compilers.

Files:

alloc.F90, siesta.F, atomlist.f, on_subs.F,
cdiag.F, rdiag.F, coor.f, dfscf.f, matel.f,
version.F and siesta.tex and CHANGES 
=======================================================================
Version: 1.2.38
Date: 2003/06/30 18:00
Title: Small bug in siesta.F
Author: Pablo Ordejon <ordejon@icmab,es>

Description:

A small bug in siesta.F that showed up in alpha machines has
been corrected, about the handling of undefined wfk.

Files:

siesta.F
Customary version.F siesta.tex CHANGES
=======================================================================
Version: 1.2.37
Date: 2003/06/30 15:35
Title: Update of Util: README and inclusion og grid1d + release.notes
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:

Grid1d utility added (very simple extracting of 1D information from
anthing in the 3D grid in the RHO format). It interpolates.
Update in Util/README and in release.notes_1.3

Files:

Util/ grid1d.f grid1d-raw.in grid1d-noraw.in README
Docs/ release.notes_1.3
Customary version.F siesta.tex CHANGES
=======================================================================
Version: 1.2.36
Date: 2003/06/30 13:15
Title: Corrected parallel Mulliken for iopt = 3
Author: Julian Gale <j.gale@imperial.ac.uk>

Description:

The use of Mulliken level 3 in parallel was causing the code to print
out incorrect results and hang. This was due to referencing of the
local number of basis functions where the global number should be used.
This is now fixed so that the serial and parallel results should be
congruent for this option.

Files:

mulliken.F  : nbasistot now passed in instead of nbasis (global vs
            : local). nbasis (local) is computed locally and the
            : iopt = 3 code has been corrected to ensure that the
            : orbitals are printed in the global order
siesta.F    : no_u passed to mulliken instead of no_l
version.F, CHANGES : customary changes
=======================================================================
Version: 1.2.35
Date: 2003/06/30 12:00
Title: Write Wavefunctions capability, bug corrections and new utils
Author: Pablo Ordejon <ordejon@icmab.es>

Description:

1) The capability to write wavefunctions coefficients of selected
   wavefunctions at selected k-points has been implemented.
   Dumps the coefficients to a binary file (a utility program
   to convert it to readable form is also provided in Util),
   and also to the main output if desired.
   Note that a new logical variable (getPSI) has been
   included in the interface of diagg and diagk, so that they
   calculated the wavefunctions that the user wishes to print.

2) Several bugs (mainly in parallel mode runs) are corrected

3) Three new utility programs are included

Files:
/Docs
  siesta.tex : customary changes; explanation of utility to write wfs
  siesta.ind : customary changes
  CHANGES    : customary changes
/Src
  bands.F    : comply to new interface of diagg and diagk; 
               bug (intr. in 1.2.31) corrected in call to diag routines
  diagg.F    : capability to write wfs; new logical flag in interface
  diagk.F    : capability to write wfs; new logical flag in interface
  diagon.F   : capability to write wfs to file
  fermid.F   : parallel mode bug fix
  inver.f    : augmented for robustness in case LAPACK fails
  Makefile   : miscellaneous changes
  pulayx.F   : augmented for robustness in case residual is exacly null
  siesta.F   : changes for capability to write wavefunctions
  version.F  : customary changes
  vmb.F      : parallel mode bug fix
  writewave.F: new: module that handles the wfs writting
/Util
  README     : update list of utility programs
  grid2cube.f: new: converts siesta grid files to Gaussian Cube format
  pltstm.f   : new: a simple program to simulate STM images
  readwf.f   : new: utility to read wfs file to user-friendly format
=======================================================================
Version: 1.2.34
Date: 2003/06/30  9:00
Title: Correction in order-N - C save
Author: Julian D. Gale <j.gale@ic.ac.uk>

Description:

The contents of the C array is now preserved when reallocating after
the call to cspa since this is not read again.

Files:

ordern.F   : Contents of C copied to rtmp2 and back again after realloc
version.F, CHANGES    : customary changes
=======================================================================
Version: 1.2.33
Date: 2003/06/26 16:20 UTC
Title: Portability bug fixes and enhancements
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

A number of fixes related to portability problems:

* Handling of array shapes in radfft. Related: explicit interface
for ordern and hsparse routines.

* Bug fix in new fermid.F routines.

* Initialization bug fix in on_subs.F.

* Support for systems without the LAPACK 'divide and conquer' routines
in their system libraries. 

* Warning for MPI data type codes.

* Improved compilation in subdirectories.

* Apparently cosmetic changes intended for the NAG compiler.


Files:

ordern.F, hsparse.f : Now wrapped in modules m_ordern and m_hsparse, 
		      respectively. No file name change.
interfaces.f        : Removed.
siesta.F            : Now 'use's m_ordern and m_hsparse.
                      Initialization of two logical variables.

radfft.f            : Now wrapped in module m_radfft. 
                      No file name change.
matel.f, atom.f,
basis_io.F          : Now 'use' m_radfft.

atom.f              : Cosmetic changes, and simplification of ghost 
                      signals.

Makefile            : Support for new module dependencies.
                      Better handling of compilation in subdirectories,
                      in particular ranlib handling.

fermid.F            : variable ocupfncft now saved.
on_subs.F           : ncmax initialized before its use.
poison.F            : (cosmetic?) modulo instead of mod
inver.f             : (cosmetic?) reversed declaration order.

(these changes committed at an earlier date:)
Libs/  :
lapack.f, dc_lapack.f : Split divide and conquer routines.
makefile              : Better logic for support of 'dc'-less systems.

MPI/   :
Makefile              : Warning about kind numbers.

Sys/   :
.make files           : Explicit RANLIB macro.
                        Alpha files might require dc_lapack split.
README                : Explain dc_lapack issue.
lahey-nolibs.make
pgf90-nolibs.make     : New files.
nag-darwin-nolibs-make: NAG MacOSX macros (some hfs issues)

version.F, CHANGES    : customary changes
=======================================================================
Version: 1.2.32
Date: 2003/06/23 16:00
Title: Correction in order-N + PDOS in manual
Author: Julian D. Gale <j.gale@ic.ac.uk>

Description:

Two small corrections have been made. The first fixes an out of bounds
error that can occur when restarting an order-N calculation and the
second is the removal of the limitations for PDOS from the text in the
manual to reflect recent modifications.

Files:
ordern.F     : maxnc is now the larger of ncmax and maxnc after
               reallocation to ensure that passed first dimension is
               correct for listc/listcold
siesta.tex   : Text concerning PDOS updated
version.F, CHANGES, siesta.tex, siesta.ind: customary changes
=======================================================================
Version: 1.2.31
Date: 2003/06/23 12:00
Title: Methfessel-Paxton smearing function
Author: Pablo Ordejon <ordejon@icmab.es>

Description:

   The smearing function scheme of Methfessel and Paxton has been
implemented. For metals, it allows for a much better convergence
to the ground state properties even with large smearing temperatures.
Improved convergence to self-consistency and k-points is also
achieved.
   A few changes have been made in the old Fermi-Dirac function, too.
In particular, the old function stepf included a factor 2 that
has been removed (to make the definition of the Fermi-Dirac
and Methfessel-Paxton functions correspond to the usual ones),
and added elsewhere. Therefore, the diagonalization
routines have been updated accordingly.
   Also, the calculation of the entropy has been removed from siesta.F,
because in the Methfessel-Paxton scheme this term depends
on the eigenvalues, which are not available in the main program.
The calculation of the entropy is done now in fermid.F, and
passed to siesta.F through the diagonalization routines.

Files:
siesta.F    : changes to remove entropy and calculation
diag2g.F, diag2k.F, diagg.F, diagk.F, diagkp.F, diagon.F, diagsprl.F:
              changed to pass Entropy to siesta.F, and redefined stepf
fermid.F    : Methfessel-Paxton included; redefined stepf
fermispin.F : redefined stepf
version.F, CHANGES, siesta.tex, siesta.ind: customary changes
=======================================================================
Version: 1.2.30
Date: 2003/06/23 11:45
Title: Miscellaneous corrections
Author: Pablo Ordejon <ordejon@icmab.es>

Description:

   Several corrections have been made (thanks to those who reported the 
problems):

1) Maxwell-Boltzmann initial velocities were not obbeying the constraints 
   imposed in fixed.F (problem reported by Masaya Ishida).  This has now 
   been fixed, so that dynamics runs do obbey the constraints.  
2) A correction in the dynamics routines has been made to account for the 
   number of imposed constraints in the definition of the temperature. 
   As a consequence, a new variable has been included in the argument list 
   of constr.f to output the number of constraints imposed by the user. 
3) The example of the constr.f provided to make the relative height of two 
   atoms constant, only worked for the case of two atoms with the same mass. 
   I have rewriten it for the general case of two different masses, and 
   changed the example in the manual and the fixed.F routine accordingly.
4) Some changes in the initiallization of the MD variables, to make the start 
   of the run more in accord with the imposed initial velocities.
5) The inver.f90 routine provided by William Mattson has been removed, 
   because it caused some problems in handling nonorthogonal cells, in the 
   variable cell dynamics (problem reported by Benoit Braida). I have written 
   a new inver.f code that used LAPACK routines to invert a matrix. All the 
   calls to the old inver2 and the old inver.f90 routines are now re-directed 
   to the new inver. The appropriate LAPACK routines that were not included in 
   Libs/lapack.f have been included.
6) The fdf reading of the Divide-and-Conquer option is now only done in the 
   first call to the diagonalization routines, to avoid huge out.fdf files
   when a large number of k-points is used.
7) A recent change in matel.f made by A. Garcia to avoid problems with the 
   NAG compiled have been reverted, since it causes problems in other 
   compilers. This still needs to be worked out!!
8) A bug in mulliken.F that caused the overlap population matrix between atoms
   not to be symmetric when k-points were used (pointed out by P. Alemany) has 
   been corrected.
9) A small bug (found by S. Reich) in vibrator.F has been corrected. Besides, 
   fdbuild.F has been slightly changed to include more significant digits in 
   the output. Finally, some input files and updated output files have been 
   provided so that the user can reproduce the examples of Vibra.
   

Files:
/Docs
  siesta.tex : customary changes; explanation of new interface of constr.f 
               and correction to example case
  CHANGES    : changes as customary
/Src
  cdiag.F    : read fdf option D&C only fisrt time  	
  cgwf.F     : call to new inver routine
  constr.F   : interface with new output variable ntcon
  dynamics.F : miscellaneous: temp. definition with constraints; 
               new init. of some dynamics
  fixed.F    : new interface with constr.f; define tot. nr. of constraints;
               correct example case
  inver.f    : new file - new inversion routine
  inver.f90  : removed
  matel.f    : recent change by A. Garcia reverted
  mulliken.F : bug corrected: lines 219 and 226
  pulayx.F   : call to new inversion routine; comment invert2 (not used now)
  rdiag.F    : read fdf option D&C only fisrt time
  siesta.F   : misc. changes in calls to dynamics and constraint routines
  version.F  : customary changes
  vmb.F      : changes to account for constraints in definig initial velocities
/Src/Include
  constr.f   : interface with new output variable ntcon
/Src/Libs
  lapack.f   : routines necessary to invert matrices included
/Util/Vibra
  README     : update email address
/Util/Vibra/Docs
  CHANGES    : new file; records changes in Vibra package
  vibra.tex  : some changes in user guide
/Util/Vibra/Examples
  README     : new file; explanation to run examples
  si2.bands  : updated output file
  si2.FC     : updated output file
  si2.fdf    : updated input file
  si2-siesta : new file; input for Siesta, necessary to reproduce example
  si2.vectors: updated output file
  si54.bands : updated output file
  si54.FC    : updated output file
  si54-siesta: new file; input for Siesta, necessary to reproduce example
  Si.inp     : new file; input for Siesta, necessary to reproduce example
/Util/Vibra/Vibra
  fcbuild.f  : increase number of digits in the output of atomic coords
  vibrator.f : bug fix
=======================================================================
Version: 1.2.29
Date: 2003/06/06 18:15
Title: Two small bugs
Author: Jose M. Soler <jose.soler@uam.es>

Description:
  Some arrays were not allocated in the rare case that there was a
single basis orbital in the whole system. Also, the dimension of the 
input array in routine four1 was incorrect.

Files:
  siesta.F  : corrected use of dimension maxnh
  recipes.f : dimension of array DATA increased from NN to 2*NN
=======================================================================
Version: 1.2.28
Date: 2003/06/05 23:30
Title: Eggbox correction (by Tom Archer) plus cosmetics
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:
  A possibility for eggbox correction is included assuming atom additivity
and species dependent components, by which various fourier components 
for the eggbox of isolated atoms of each species are given to Siesta
and Siesta substracts it from energy and forces.
  A little output cosmetics has been introduced as well

Files:
  eggbox.F : new
  siesta.F, Makefile: to call eggbox
  coor.f, atom.f, reinit.F, basis_types.f, memory.f, 
  atomlist.f, initatom.f, redata.f and siesta.F : changes only in writes
  version.F, siesta.tex, siesta.ind and CHANGES as customary
=======================================================================
Version: 1.2.27
Date: 2003/06/04 14:00
Title: Print of the ionic and total charge densities. 
Author: Javier Junquera <javier.junquera@ulg.ac.be>

Description:
The soft diffuse ionic charge, whose electrostatic potential is the
local part of the pseudopotential, can be printed now at the points
of the grid (file SystemLabel.IOCH), together with the total 
(ionic+electronic) charge density (file SystemLabel.TOCH). 
The new input variables that control the writting are, respectively,
SaveIonicCharge, and SaveTotalCharge.

When using the Harris functional, the Harris energy is printed at
the end of each molecular dynamic step, instead of the Kohn-Sham energy.
The SystemLabel.MDE file is also written using the harris' energy instead
of the Kohn-Sham energy. 

Files:
   siesta.F  : New variables to define the files SystemLabel.IOCH, and
               SystemLabel.TOCH. 
             : Calls to dhscf have changed. The name of two extra files
             : have been added to the argument list.
             : Printing of the Harris energy. 
             : Change in the definitions of getot, and in the call to 
             : iomd when harris functional is used. 
   grdsam.F  : Calls to dhscf have changed. The name of two extra files
             : have been added to the argument list.
   dhscf.F   : Two new variables with the names of the two files.
             : Call the new subroutine LocalChargeOnMesh, and write 
             : the ionic and total charge densities. 
   meshsubs.F: New subroutine LocalChargeOnMesh.
   siesta.tex, siesta.ind, CHANGES, version.F: Customary changes
=======================================================================
Version: 1.2.26
Date: 2003/06/03 14:30
Title: Fixed bug in parallel polarisation
Author: Julian Gale <j.gale@imperial.ac.uk>

Description:
The calculation of polarisation was giving incorrect answers in 
parallel due to corruption of the saved wavefunction in psiprev.
Was due to trying to combine the calculation and saving aspects
to minimise communication. Saving of wavefunction now performed
as a separate operation.

Files:
   ksv.F     : savepsi is now called after detover where needed and
             : the logical flag that was passed to this routine has
             : been removed.
   detover.F : The savepsi option has been removed along with the
             : incoming logical argument.
   version.F / CHANGES
=======================================================================
Version: 1.2.25
Date: 2003/05/22 19:30
Title: Fixed bug in BLYP forces (Marivi Fernandez-Serra) 
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:
  The implementation of the derivatives for the forces in the BLYP
functional had a bug, found and fixed by Marivi Fernandez-Serra.
  (a few hours before, Alberto Garcia committed basis_type.f to 
solve some compilation problems with some compilers).

Files:
  xc.f      in Src
  blypxc.f  in Pseudo/atom
  basis_type.f
  siesta.tex, siesta.ind, CHANGES, version.F
=======================================================================
Version: 1.2.24
Date: 2003/05/21 22:00
Title: Various (single excitation, flush, print pressure, etc)
Author: Emilio Artacho <emilio@esc.cam.ac.uk>

Description:

1. Single excitation: possibility of lowest excited state by 
   swapping the populations of HOMO and LUMO (if no spin polarisation,
   it is half swapping). Introduce SingleExcitation logical flag.
   It is done for ispin=1 and ik=1.
2. The SIG file (who used it?) is now only appearing is asked with the
   SignatureRecords flag.
3. Option of Mulliken at every SCF (for dealing with SCF problems)
   by turning true the MullikenInSCF flag
4. Flushes the ANI, MD, and MDE files at every time step by closing
   the files. It reopens (append) at every instance. It solves the
   problem originated by some compilers that keep data in buffers. 
   These data are lost if the program dies. It is still to be solved for
   the standard output. The same (not elegant but robust) solution 
   can be used if instead of writing to standard output, siesta would
   write to a file.
5. In MD runs the stress tensor and (solid) pressure are printed at
   every step. Both the static (ellectronic contribution) and total
   (adding kinetic term of nuclei). At the end of the run it is printed
   as always, only the static. The MDE file now writes total solid pressure
   and volume together with E_tot, E_KS, T, and step.

Files:
   fermid.F   : Single excitation
   siesta.F   : Signature records, Mulliken in SCF
   mulliken.F : Consmetics
   iomd.f     : flush MD and MDE
   pixmol.f   : flush ANI
   siesta.tex, siesta.ind, CHANGES, version.F
=======================================================================
Version: 1.2.23
Date: 2003/05/01 11:00
Title: Corrected FFT and ordern
Author: Julian D. Gale <j.gale@imperial.ac.uk>

Description:

Two bugs have been fixed:
(1) In the FFT routine, the dimensions were exceed then the contents of
    trigs were not always recalculated after increasing the dimensions.
(2) In order N the contents of several arrays were not preserved during
    resizing leading to loss of data for the subsequent geometry steps.

Files:

diagon.F  : The order of deallocation of the arrays is reversed to be more
            stack friendly.
fft3d.F   : OldMesh reinitialised to 0 if the size of the array trigs is
            altered to ensure that array is refilled correctly.
hpcx.make : the -bmaxdata flag has been added in order to access the 
            full memory
ordern.F  : Contents of several arrays are preserved on resizing.
=======================================================================
Version: 1.2.22
Date: 2003/04/14 15:10
Title: Corrected k-grid cutoff
Author: Jose M. Soler <jose.soler@uam.es>

Description:

For some nonorthorrombic k-sampling grids, the cutoff was overestimated
A call to minvec was introduced to find the true minimum supercell vector

Files:

kgridinit.F : Introduced call to minvec

=======================================================================
Version: 1.2.21
Date: 2003/04/14 15:00
Title: Cleaning of foreign code
Author: Jose M. Soler <jose.soler@uam.es>

Description:

To avoid any legal problems, the few routines not written by the siesta 
team have been cleaned or modified to make them different enough from 
the original ones. However, apropriate statements of the original
procedence/authorship have been kept in all the files affected.
Three routines in recipes.f were eliminated: ratint because it always
called polint internally, and splin/splinu because they were equivalent 
to spline/splint.

Files:

arw.f            : Code cleaned and language updated.
                   Many comments added or corrected.
arw.F            : Eliminated (changed to arw.f)
atom.f           : Calls to ratint changed by polint
basis_io.F       : Calls to ratint changed by polint
cellxc.F         : Header comments slightly changed
matel.f          : Calls to splin/splinu changed to spline/splint
periodic_table.f : Code updated. Some comments added
recipes.f        : Routines ratint, splin, and splinu eliminated.
                   Code updated and comments added
siesta.F         : Copyright statements in header changed
xc.f             : Header comments slightly changed
Makefile         : arw.o made dependent of ionew.o

=======================================================================
Version: 1.2.20
Date: 2003/1/20 16:00 
Title: HPCx changes
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

A small number of changes have been made for easy compilation on an
IBM Regatta machine to enable use with the HPCx service in the UK
(and elsewhere).

Files:

alloc.F90         : if NODAT option added for -DNODAT to avoid MPI problems
bands.F           : if NODAT option added for -DNODAT to avoid MPI problems
broadcast_basis.F : if NODAT option added for -DNODAT to avoid MPI problems
cellxc.F          : if NODAT option added for -DNODAT to avoid MPI problems
cgvc.F            : if NODAT option added for -DNODAT to avoid MPI problems
cgwf.F            : if NODAT option added for -DNODAT to avoid MPI problems
chempot.F         : if NODAT option added for -DNODAT to avoid MPI problems
denmat.F          : if NODAT option added for -DNODAT to avoid MPI problems
detover.F         : if NODAT option added for -DNODAT to avoid MPI problems
dhscf.F           : if NODAT option added for -DNODAT to avoid MPI problems
diag2g.F          : if NODAT option added for -DNODAT to avoid MPI problems
diag2k.F          : if NODAT option added for -DNODAT to avoid MPI problems
diagg.F           : if NODAT option added for -DNODAT to avoid MPI problems
diagk.F           : if NODAT option added for -DNODAT to avoid MPI problems
diagkp.F          : if NODAT option added for -DNODAT to avoid MPI problems
diagon.F          : if NODAT option added for -DNODAT to avoid MPI problems
diagsprl.F        : if NODAT option added for -DNODAT to avoid MPI problems
dipole.F          : if NODAT option added for -DNODAT to avoid MPI problems
efield.F          : if NODAT option added for -DNODAT to avoid MPI problems
ener3.F           : if NODAT option added for -DNODAT to avoid MPI problems
fft3d.F           : if NODAT option added for -DNODAT to avoid MPI problems
gradient.F        : if NODAT option added for -DNODAT to avoid MPI problems
iodm.F            : if NODAT option added for -DNODAT to avoid MPI problems
iohs.F            : if NODAT option added for -DNODAT to avoid MPI problems
iolwf.F           : if NODAT option added for -DNODAT to avoid MPI problems
iorho.F           : if NODAT option added for -DNODAT to avoid MPI problems
ioxv.F            : if NODAT option added for -DNODAT to avoid MPI problems
kgridinit.F       : if NODAT option added for -DNODAT to avoid MPI problems
meshmatrix.F      : if NODAT option added for -DNODAT to avoid MPI problems
mulliken.F        : if NODAT option added for -DNODAT to avoid MPI problems
ordern.F          : if NODAT option added for -DNODAT to avoid MPI problems
phonon.F          : if NODAT option added for -DNODAT to avoid MPI problems
pulayx.F          : if NODAT option added for -DNODAT to avoid MPI problems
readsp.F          : if NODAT option added for -DNODAT to avoid MPI problems
redata.F          : if NODAT option added for -DNODAT to avoid MPI problems
repol.F           : if NODAT option added for -DNODAT to avoid MPI problems
savepsi.F         : if NODAT option added for -DNODAT to avoid MPI problems
siesta.F          : if NODAT option added for -DNODAT to avoid MPI problems
timer.F           : if NODAT option added for -DNODAT to avoid MPI problems
vmb.F             : if NODAT option added for -DNODAT to avoid MPI problems
Sys/hpcx.make     : arch.make for HPCx service
=======================================================================
Version: 1.2.19
Date: 2003/1/10 17:00 
Title: FFT fixed for large meshes 
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

For very large mesh dimensions the array trigs in the FFT was not
able to cope. Hence this array has been made dynamic. Also a few
minor changes have been made, firstly to cellxc.F, to solve some
MPI issues at APAC, and secondly to siesta.F, to optionally avoid
problems with convergence where the auxiliary mesh changes during
a variable cell optimisation.

Files:

cellxc.F     : The parallelisation has been altered to involve fewer
             : transfers, but of larger packets. Should improve 
             : performance were latency is high and avoids problems
             : with MPI counters becoming too large.
fft3d.F      : The array trigs is now dynamically allocated to allow
             : for larger meshes.
siesta.F     : An option has been added to fix the auxiliary cell size
             : to avoid poor convergence behaviour.
siesta.tex   : New option FixAuxiliaryCell documented
=======================================================================
Version: 1.2.18
Date: 2002/10/09 10:30 
Title: Fix to spiral spin in parallel
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

Parallel runs were crashing due to an fdf call that was not wrapped to
only be from Node 0 in readsp.f. This routine is now MPI'd to handle
the fdf call safely.

Files:

readsp.f    : Removed from distribution
readsp.F    : Added - readsp.f with wrapping of fdf calls for parallel
            : execution.
=======================================================================
Version: 1.2.17
Date: 2002/09/13 17:00 
Title: Changes in xc.f, other cosmetic changes.
Author: Alberto Garcia

Description:

* There was a subtle numerical instability in the pzxc routine
when dealing with very small densities (as for large r in the
atomic program). Jose Soler has rewritten the offending section.

* Added blypxc routine to xc.f

* Cosmetic change in basis_specs.f. The printing of basis
  specification now skips over shells with nzeta=0...

Files:

xc.f , basis_specs.f

=======================================================================
Version: 1.2.16
Date: 2002/09/02 17:00 
Title: Divide and Conquer + fixes
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

The option to use divide and conquer Lapack algorithms has been added
to rdiag and cdiag, as well as tidying up the source code a bit here.
Also a bug in the order N part for eta .ne. 0 has been corrected, as 
well as a few fixes for parallel execution related to recently introduced
functionality. There are also a few bits of cleaning highlighted as a
result of running the code through the NAG compiler.

Files:

siesta.tex    : DivideAndConquer option documented
alloc.F90     : optional attribute added for name/routine + checking for
              : these terms being present before being addressed added
              : in alloc_err
basis_types.f : Missing comma in format descriptor added
cdiag.F       : Divide and Conquer option added for serial execution +
              : code tidied
cgwf.F        : Indentation tidied (tabs removed)
chempot.F     : Indentation tidied (tabs removed)
dhscf.F       : Spin-spiral I/O handled for parallel version
diagg.F       : Aux array no longer passed to rdiag
gradient.F    : Bug fixed for eta .ne. 0 case
kgrid.F       : Spin-spiral I/O handled for parallel version
kgridinit.F   : Spin-spiral I/O handled for parallel version
mulliken.F    : Indentation tidied (tabs removed)
on_subs.F     : Duplicate definition of numbtmp removed
pdosk.f       : Explicit declaration of type for dfloat added
pulayx.F      : Indentation tidied (tabs removed)
rdiag.F       : Divide and Conquer option added for serial execution +
              : code tidied. Argument "fv" removed, and allocation now
              : done using alloc module.
redata.F      : State of divide and conquer flag output
siesta.F      : Ekinion zeroed at the start to avoid case where it is
              : uninitialised. Plus sequence of testing of state of S
              : is altered to avoid a "size" operation on an unallocated
              : pointer.
transfer.f    : Indentation tided (tabs removed)
version.f     : version number incremented
vmb.F         : Indentation tided (tabs removed)
Lib/blas.f    : Updated to include the divide and conquer required routines.
Lib/lapack.f  : Updated to include the divide and conquer required routines.
Sys/sgi64-mpi_fermat.make : -lscs flag added for DaC routines
=======================================================================
Version: 1.2.15
Date: 2002/07/14 17:00 
Title: Cosmetic changes for School
Author: Alberto Garcia

Description:

The atomic generation routines have been enhanced to provide
more information for plotting. Gen-basis now accepts only one
species. 
Tutorials directory added.
The manual has been updated to mention the existence of the ATOM
manual.

=======================================================================
Version: 1.2.14
Date: 2002/06/28 17:00
Title: Non-collinear GGA
Author: Jose M. Soler <jose.soler@uam.es>

Description:

Support for non-collinar GGA. The local xc energy is made dependent
of the gradient of the density and of the MAGNITUDE of magnetization, 
but not of the gradient of the magnetization direction.
Implemented by Victor M. Garcia <victor@condmat.uniovi.es>

Files:

xc.f: Modified the subrutine GGAXC to allow for non-collinear spin. 

=======================================================================
Version: 1.2.13
Date: 2002/06/24 12:45 
Title: Spin spiral
Author: Jose M. Soler <jose.soler@uam.es>

Description:

Support for spin-spiral states, implemented by Victor M. Garcia
<victor@condmat.uniovi.es>

Files:

dhscf.F:      Call to rhoofdsp and vmatsp.
diagon.F:     Call to diagsprl.
kgridinit.F:  If spiral, skip time reversal symmetry (include all k's)
kgrid.F       If spiral, skip time reversal symmetry (include all k's)
diagsprl.F    New. Diagonalizes the Hamiltonian for spin spiral.
ipack.f       New. Packs/unpacks several integer indexes into/out of one
readsp.f      New. Reads spiral wave vector
rhoofdsp.f    New. Substitutes rhoofd for spiral configurations.
vmatsp.f      New. Substitutes vmat for spiral configurations.
Makefile      Add diagsprl.F, ipack.f, readsp.f, rhoofdsp.f, and vmatsp.f

=======================================================================
Version: 1.2.12
Date: 2002/06/20 17:00 
Title: Simplification of fdf module
Author: Alberto Garcia

Description:

The fdf module provides f90 interfaces for the f77 routines in
fdf.f, as well as new, pure-f90 routines. Until now there was
also an overloaded routine "fdf_get" which could stand for any
of the specific scalar routines. Unfortunately, either the Intel
or the PGI compiler chokes with its implementation.  It is almost
certain that these are compiler errors. However, in the interest
of portability, the "fdf_get" interface has been removed.

For the same reason, the routine fdf_parsed_string (currently not
used in Siesta) has been removed.

Changed Files:

fdf/fdf_mod.f
in Src:
basis_specs.f coor.f initatom.f chemical.f fdf_mod.f spin_init.f

=======================================================================
Version: 1.2.11
Date: 2002/06/11 17:00 
Title: Changes for (partial) support of Intel Fortran Compiler
Author: Alberto Garcia

Description:

The Intel Fortran Compiler is apparently strong at optimization but
very weak at following standard practice. It is not trivial to
integrate full support for it, but the current version of Siesta (at
least the serial incarnation) can still be made to compile portably
with a few kludges. At this point there is no support for MPI or
NetCDF.

1. Changes in fdf/fdf_mod.f: addition of redundant internal interfaces.
2. fdf/makefile: kludge to make the fdf directory visible in the
   "subprogram catalog", and to deal with new extension for module files.
3. Makefile: clean procedure updated.
3. New intel*.make files in Sys.

Thanks to Eduardo Anglada for helping with the catalog issue.

Changed Files:

fdf/fdf_mod.f
fdf/makefile
Makefile
Src/Sys/intel-mkl.make:    New file. Uses optimized mkl libraries
Src/Sys/intel-nolibs.make: IFC needs a special library...

=======================================================================
Version: 1.2.10
Date: 2002/06/07 15:00 
Title: Bugs in non-collinear spin
Author: Jose M. Soler <jose.soler@uam.es>

Description:

1. Avoid out-of-bounds in array qos

2. Definition of hermiticity relations for the Hamiltonian and
   density matrix in diag2g.F and diag2k.F

4. Modified the density matrix in diag2k.F to take ino account the 
   time reversal symmetry.

5. Modified siesta.F to skip the eigenvectors calculation if there is
   only one SCF step.

All these bugs were found and corrected by Victor M. Garcia
<victor@condmat.uniovi.es>

Files:

diag2g.F    Correct hamiltonian hermicity
diag2k.F    Correct hamiltonian hermicity and time-reversal in DM
mulliken.F  Avoid out-of-bounds in array qos
siesta.F    Avoid writting noncalculated eigenvalues
siesta.tex  Date and version updated

=======================================================================
Version: 1.2.9
Date: 2002/04/30  15:00 GMT
Title: Vmat fix
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

An error in the diagonal elements of Vlocal has been corrected, as well
as a few more minor items.

Files:

meshmatrix.F	Case where no mesh points are allocated to a node during
                parallel execution is handled properly with respect to
                zero length arrays.
on_subs.F       Duplicate definition of numbtmp removed
vmat.f      	Error in diagonal elements of Vlocal corrected
xc.f		Variable name corrected in pzxc from DECPDN -> DECFDN
=======================================================================
Version: 1.2.8
Date: 2002/04/11
Title: Bug fixed in vmat.f, rhoofd.f, and dfscf.f
Author: Javier Junquera <Javier.Junquera@ulg.ac.be>

Description:

1. A bug has been fixed in the subroutines that calculate
   the integrals in the real space mesh.
   If the longest orbital of a given specie is unoccupied in 
   the free atom, then some points were wrongly skipped
   while calculating the integrals.
   The definition of the cutoff radiae has been modified in
   vmat, rhoofd and dfscf
   Files: vmat.f, rhoofd.f, dfscf.f
 
2. The maximum number of iterations to converge the Fermi
   energy has been increased to 100. For some systems 50 is not
   a large enough number.
   File: fermid.F

3. Customary changes in file Src/version.F and Docs/CHANGES
   File: version.F, Docs/CHANGES

=======================================================================
Version: 1.2.7
Date: 2002/02/06
Title: PDOS calculation back into siesta.F...
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

The PDOS calculation had been deactivated in siesta.F due to an error. 
It has been put back in.  File: siesta.F

=======================================================================
Version: 1.2.6
Date: 2002/02/04
Title: Interface with F90 Denchar Utility
Author: Javier Junquera <Javier.Junquera@ulg.ac.be>

Description:

1. The interface between Siesta and Denchar has been implemented
   using Fortran 90. 
   File: plcharge.F

2. The interface routine is called again from Siesta.
   (This call was commented in the fortran 90 Siesta branch.
   File: siesta.F

3. Subroutine plcharge is included in the object list.
   File: Makefile

4. Almost all the routines in the utility package Denchar have been 
   rewritten in Fortran 90 in order
   to make it compatible with the 1.X version of Siesta.
   Files: Util/Denchar

5. Customary changes in file Src/version.F and Docs/siesta.tex
   File: version.F
=======================================================================
Version: 1.2.5
Date: 2002/01/17
Title: Bug fix in pdos.f, reorg of ghost routine, lmxkb info for users
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

1. Fixed a writing bug in pdos.f (for spin-polarized calculations).
   File: pdos.f

2. Make f-channel the highest-l projector used.
   Inform the user about the possibility of
   using a lower lmxkb.
   File: basis_specs.f

3. Reorganize routine ghost (avoid computing excited state if
   not necessary). Remove references to "atom.h".
   File: atom.f
=======================================================================
Version: 1.2.4
Date: 2001/12/14  18:15 GMT
Title: Order N improvements/tidy
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

The key changes relate to improvements in the order N part. The form of
cspa and eandg has been changed, in particular. Now the parameters maxnf,
maxnft and maxnhij are found in eandg, not in cspa. This allows an
accurate determination of the sizes in parallel and leads to much 
improved parallel scaling of cspa, removing this bottleneck for very
large calculations. There are also improvements to ener3.F and gradient.F
to reduce memory requirements and improve performance. There are also a
large number of minor changes where unused variables have been cleared
out.

Files:

atmfuncs.f      Unused variables removed to be tidy and reduce warnings
atom.f          Unused variables removed to be tidy and reduce warnings
atomlwf.F       Considerably changed to achieve reasonable parallel
                scaling and efficiency. The parameters nfmax, nftmax
                and nhijmax are no longer determined here since the
                values were always overestimates when operating in 
                parallel and this allows the code to be more readily
                distributed over processors. The determination of the
                sparse indexing and the initialisation of the LWFs has
                been separated so that parallelism can be achieved without
                altering the effect on the random initialisation. The
                building of the sparse indices is now distributed by
                search atom over Nodes.
bands.F         Unused variables removed to be tidy and reduce warnings
basis_io.F      Unused variables removed to be tidy and reduce warnings
cgwf.F          Variables maxnf, maxnft and maxnhij removed as arguments
                and no longer passed to eandg.
detover.F       Dimensions of psitmp for passing corrected and full
                matrix used in savepsi option. Also referencing of
                variable "je" return to the global frame as "jeg"
                where necessary. Unused variables removed.
dfscf.f         Unused variables removed to be tidy and reduce warnings
diag2g.F        Unused variables removed to be tidy and reduce warnings
diag2k.F        Unused variables removed to be tidy and reduce warnings
diagpol.f       Unused variable "io" removed
egandd.F        Structure changed due to the fact that maxnhij, maxnft
                and maxnf are now determined here, rather than in cspa.
ener3.F         Re-structured for greater parallel efficiency / lower
                memory use.
forhar.f        Unused variables removed to be tidy and reduce warnings
gradient.F      Variables nfmax/nhijmax globalised
initatom.f      Unused variable "js" removed
ionew.F         Declaration of "used" removed since variable is unused
                in io_status
kgridinit.F     Unused variable "d" removed
ksv.F           Unused variable "mxhov2" removed
matel.f         Unused variable "js" removed
meshsubs.F      Unused variables removed to be tidy and reduce warnings
old_atmfuncs.f  Declaration of "maxo" removed since variable is unused
on_subs.F       New routines added that are variants on the old ones
                for determining just the array dimension parameters
                nfmax, nftmax, nhijmax.
ordern.F        Modified to reflect the removal of nfmax, nftmax and
                nhijmax
parallel.f      Unused variables removed to be tidy and reduce warnings
phonon.F        Unused variables removed to be tidy and reduce warnings
pulayx.F        Unused variable "iii" removed
rhooda.f        Unused variable "in" removed
rhoofd.f        Unused variables removed to be tidy and reduce warnings
siesta.F        Unused variables removed to be tidy and reduce warnings
vmat.f          Unused variables removed to be tidy and reduce warnings
=======================================================================
Version: 1.2.3
Date: 2001/11/20  12:30 GMT
Title: iorho parallel fix / order N improvements
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

The handling of blocksizes has been corrected in iorho.F, since
the data distribution model coded was not quite the same as in
dhscf.F. The routine has been changed to make things consistent.
Further improvements have been to the order N part to reduce the
memory and increase the speed. In particular, the set up of the
indexing arrays has been examined. In axb_build1, the array ind
has been switched from a 2-D to 1-D array which is set up as necessary
using the sparsed stored indices. Also the broadcast of data has
been altered to group data so that each Node only broadcasts once.
The size of the local scratch arrays in denmat have also been reduced
by finding the optimum value of nfmax.

Files:

   atomlwf.F    Rounding error allowed for in checking of number
                of electrons.
   denmat.F     Memory reduced further / performance increased.
                Main change is to value of nfmax used to size
                local temporary arrays.
   egandd.F     Array indgf is distributed across nodes.
   gradient.F   Memory reduced further / performance increased.
   iorho.F      Calculation of blocksizes for I/O in parallel
                was in error. Now fixed.
   on_subs.F    The array ind has been removed and replaced by a
                1-D array which is filled as necessary from nindv
                which is sparse. Also data is broadcast by Node
                rather than by orbital. Array indgf is distributed
                across nodes.
   outcoor.f    I/O modified to handle up to 999,999 atoms
   siesta.F     I/O modified to handle up to 999,999 atoms
=======================================================================
Version: 1.2.2
Date: 2001/11/05  16:00 GMT
Title: Memory re-linearised in order N
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

In the process of originally parallelising the order N part,
the linear scaling of the memory usage with system size was
lost. This has now been restored which should lead to memory
savings for large jobs in parallel.

Files:
   denmat.F      Modified to change size of all 2-D or higher
                 arrays so that two dense indices are never
                 used.
   egandd.F      Call to ind_gf reinstated and fttof passed to
                 gradient. Left-hand dimension of fttof/listft
                 corrected to maxnft.
   ener3.F       Modified to change size of all 2-D or higher
                 arrays so that two dense indices are never
                 used.
   gradient.F    Modified to change size of all 2-D or higher
                 arrays so that two dense indices are never
                 used.
   on_subs.F     Subroutine ind_gf reinstated as fttof is now
                 used again.
   MPI/Makefile  Two blank lines removed that break the make
                 on SGI machines.
=======================================================================
Version: 1.2.1
Date: 2001/10/11  17:30 GMT
Title: Accelerated direct spin polarised calculations
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

The use of the DirectPhi option has been accelerated for spin
polarised calculations by only calculating the values of Phi
on the mesh once. This is achieved by moving the loop over
spin inside rhoofd and vmat. Also a bug in the print out of the
spin polarisation when running in parallel has been fixed.

Files:
   dfscf.f       Call to matrixOtoM modified.
   dhscf.F       Calling of rhoofd and vmat modified.
   meshmatrix.F  Spin loops moved within matrixOtoM and matrixMtoO.
   rhoofd.f      Looping over spin components now included internally.
                 Dlocal array stored in triangular fashion.
   siesta.F      Qspin now globalised before print out of spin 
                 polarisation.
   vmat.f        Looping over spin components now included internally.
                 Vlocal array stored in triangular fashion.
=======================================================================
Version: 1.2.0 [No change]
Date: 2001/10/04
Title: Bug fixes in basis_io.F
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

Fixed bugs having to do with:

1. The use of the .ion files generated by an independent siesta or
gen-basis run.
2. The default mass for floating orbitals

(Discovered just after the release of siesta-1.1)

Files:
   basis_io.F:   Second derivative of elec_corr structures was not
                 updated after generation in elec_corr_setup.
		 Changed filename from XX.ion_nc to XX.ion.nc
   basis_specs.f: Do not make default mass too big for floating orbitals.
=======================================================================
Version: 1.2.0
Date: 2001/09/26
Title: Merge from rel-1-1-branch at 1.1 release point (siesta-1-1)
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

 Starting point for new cycle of development.

 Changes and fixes in preparation of the 1.1 release
 merged back to main trunk:

* Fixed mismatched MPI block in siesta.F (related to PDOS change).
  file: siesta.F

* Total DOS file is now just *.DOS.

* Better output for PDOS file. Used "xml" format to ease (?) 
  processing (evolving ideas).
  files: pdos.f pdosk.f 

* Added new "h2o_dos" test in Src/Tests.

* Added "xml" output for .ion data.
  files: xml.f basis_io.F radial.f initatom.f

* Committed Bug fix for O(N) calculations (Julian Gale)
  file: gradient.F Src/Tests/Makefile (enabled h2o_orderN)

* Added new sgi64-mpi_fermat.make file (Julian Gale)

* Array shape fixes in xc.f (cosmetic) (Julian Gale)

* Added top README file.

* Removed obsolete source files from Src directory.
  files: iorder.f order.f ordvec.f ylmylm.f lofilm.f
         resize.F ylmexp.f symbol.f rlylm.f die.F

* Added user.list (Please update), build_parallel.sh, and other 
  release-related files, and updated some others. These files are
  not part of any distribution.

* Updated CONDITIONS (list of developers)

* Many User Guide updates (J. Junquera, E. Artacho, A. Garcia)

* Removed .vps, out.fdf, and siesta.size files from Examples directory.

* Updated .out files in Src/Tests and Examples/*/Out

* Added Util/PyAtom/pdos.py script (experimental -- not in release)

* Set Version to 1.2.0

=======================================================================
Version: 1.0.62
Date: 2001/09/24  12:00 GMT
Title: Projected Density of States.
Author: Javier Junquera <javier.junquera@uam.es>

Description:

The Total Density Of States (Total DOS), and its projection
on the basis orbitals (Projected Density Of States, PDOS),
are computed and dumped to files ('.TOT.DOS' and '.PDOS' respectively).

This only works in a serial run. An error message will be issued 
when we try to use it in a parallel execution.

It is only implemented when the hamiltonian
is solved by diagonalization with k-points.

Files:
   siesta.F    Call to pdos subroutine is added
   pdos.f      New subroutine, interface between siesta and the one that
               computes the PDOS
   pdosk.f     New subroutine. Computes the PDOS
   Makefile    pdos.o and pdosk.o added to object list 
   Docs/siesta.tex, Docs/siesta.ind
	       Documentation of new block usage.
========================================================================
Version: 1.0.61
Date: 2001/09/16  18:00 GMT
Title: New input/output facilities for ps and basis information
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

Pseudopotential information can now be read by SIESTA in formatted
form from '.psf' files (which are now also generated by ATOM). This
will make it easier to transport ps files among computers. The
old *.psatom.data files are no longer valid.

Also, the PAO, KB projector, and Vlocal and charges data are dumped to
'.ion' (and '.ion_nc' if NetCDF is available) files, which can later
be used to re-generate the atomic information if the 'user-basis'
(or 'user-basis-netcdf')  option is specified in SIESTA.  A header section
containing information about the specifications for basis construction
and about the pseudopotential used is also included.

Files:
   chemical.f  New module to centralize the chemical species info.
   pseudopotential.f
	       New routine to read formatted '.psf' files.
	       New routine to print a header containing basic ps info.
	       
   basis_io.F  Modifications to the routines which read and write the
	       '.ion' files.
   atm_types.f basis_specs.f basis_types.f atm_types.f  initatom.f
   transfer.f
	       Minor changes to support the above changes.

   Pseudo/atom/wrapup.f
	       New file VPSFMT output
   Pseudo/atom/Samples/pg.sh
               File VPSFMT copied to <name>.psf
   Pseudo/atom/Docs/User.Guide
	       Updated

   Docs/siesta.tex, Docs/siesta.ind
	       Documentation of new file usage.
========================================================================
Version: 1.0.60
Date: 2001/09/11  17:00 GMT
Title: Corrections and modification to limit runaway memory
Author: Julian D. Gale <j.gale@ic.ac.uk>

Description:

This is a collection of corrections for a few bugs, typos,
and problems noticed on certain platforms. It appears that
on Linux boxes, under Absoft f90, and on DEC platforms the
f90 implementation fails to properly free memory when 
deallocated. Because of the size of phi/listp2/lstpht, this
can rapidly lead to the memory being exhausted on some machines.
Hence a workaround has been added to PhiOnMesh so that these
arrays are only redimensioned when absolutely necessary -
i.e. they are too small. A tolerance has also been added to
the initial dimension (of 1%) to hopefully minimise
reallocations.

Files:
   atom.f      Spelling of "analysis" corrected
   matel.f     Dimensions of arrays adjusted to prevent crash when
               running in parallel (contraction prevented). Debug
               statements commented out.
   meshsubs.F  Reallocation of phi/lstpht/listp2 avoided one possible
               to avoid memory increasing on platforms that fail to
               properly deallocate arrays from memory.
   mulliken.F  Spelling of "analysis" corrected
               Loops over 1,Nodes corrected to 0,Nodes-1
   redata.F    Spelling of "analysis" corrected / alignment of write
               tidied
   siesta.F    Call to ioeig corrected to pass no_u instead of no_l
========================================================================
Version: 1.0.59
Date: 2001/07/10  10:00 GMT
Title: Changes to support pgf90 and non-MPI version
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

A. The pgf90 compiler had trouble compiling certain sections of the
code. These had been rewritten slightly to help it.

  Files:
    Src/fdf/parse.f:  Use token_arr instead of tokens to avoid compiler	
                      bug.
    Src/fdf/fdf_mod.f, fdf.f : Use fdf_block_old wrapper routine to
                               avoid compiler bug that led to an 
                               infinite loop.
    Src/alloc.F90:    Fix declaration of character variable.
    Sys/pgf90*.make:  Name NetCDF library explicitly, instead of using -L.
    
B. The process to generate a de-MPI'ized version suitable for general
   users has been streamlined somewhat.

 Files:

   build_serial.sh:  Use the same Makefile. Copy also .f90 files
   Src/Makefile:     Test for existence of MPI directory before cleaning.
=======================================================================
Version: 1.0.58
Date: 2001/06/29  12:00 GMT
Title: removed local variables NSM and NMESHG in cellxc
Author: Jose M. Soler <jose.soler@uam.es>

Description:

Variables NSM and NMESHG are now imported from module mesh and
should not be redeclared locally.

Files:
   cellxc.F: removed local variables NSM and NMESHG
=======================================================================
Version: 1.0.57
Date: 2001/05/18  20:15 GMT
Title: serial version of cellxc.F and xc.f returned to f77
Author: Jose M. Soler <jose.soler@uam.es>

Description:

The serial part of cellxc and atomxc was returned to f77, to make
it more transportable as a separated package. Required node and
mesh arguments for parallel esecution are now obtained directly
within cellxc, rather than passed as arguments.

Files:
   cellxc.F:   serial part returned to f77
               Node and Nodes obtained by calling MPI
               NMESHG and NSM obtained from module mesh
   dhscf.F:    call to cellxc
   forhar.f:   call to cellxc
   meshsubs.F: added static valiables NMESHG and NSM
   siesta.F:   removed save declarations
   xc.f:       returned to f77
=======================================================================
Version: 1.0.56
Date: 2001/05/18  20:00 GMT
Title: Corrected bug in MATEL which produced numerical errors
Author: Jose M. Soler <jose.soler@uam.es>

Description:

A change in the call to RADFFT was missing in basis_io.F and 
read_user_basis.F. Instead, RADFFT has been returned to its previous
state, to avoid reproducing this error. This corrects the small
numeric differences in the output introduced in version 1.0.50.
Additionally, calls to realloc were simplified in MATEL.

Files:
   matel.f:  simplified realloc procedures
   radfft.f: commented out return of spillage in last element
=======================================================================
Version: 1.0.55
Date: 2001/05/11
Title: Grid cell sampling bug fix
Author: Emilio Artacho <Emilio.Artacho@uam.es>

Description:

The energy was not being averaged by the grid-cell-sampling option,
since the calculation of Etot (and Eharris and FreeEner) was done
only in the before-last iteration, before grid-cell sampling. Fixed.

Files:
   siesta.F
   (customary version.F, CHANGES and siesta.tex)
=======================================================================
Version: 1.0.54
Date: 2001/05/01
Title: Mesh memory correction
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

Out of bounds memory writes were occuring for a small number of arrays
in routines relating to the mesh for some cases. This was related to
the local variable "maxloc" being used in two different contexts with
a common value. A new separate value has now been introduced for the
case where a value which was too small was being assigned.

Files:
   dfscf.f         : Sizing of ibc, C, gC and xgC corrected.
   rhoofd.f        : Sizing of ilc and Clocal corrected.
   vmat.f          : Sizing of ilc and Clocal corrected.
=======================================================================
Version: 1.0.53
Date: 2001/04/26
Title: New inver
Author: William Mattson <wmattson@uiuc.edu> (committed by JDG)

Description:

It turns out that the subroutine inver fails for certain matrices
and returns "NaN"s. This was observed by William Mattson from
Richard Martin's group and he has kindly provided a routine
that fixes the problem.

Files:
   inver.f         : Removed in favour of inver.f90
   inver.f90       : Replaces inver.f
=======================================================================
Version: 1.0.52
Date: 2001/03/27  08:45 GMT
Title: Matel fixes
Author: Julian D. Gale <j.gale@ic.ac.uk>

Description:

A number of corrections have been made, primarily to matel. The
main change to matel is to explicitly zero INDF and INDFF when
reallocated in case this is not the default action and also to
trap when IOPER increases so as to increase the size of the
appropriate arrays. A few other bugs have been cleared up for
parallel execution.

Files:
   ksv.F           : Dimension of ek changed to nuotot.
   matel.f         : INDF / INDFF zeroed after realloc calls.
                   : Test for INDF being associated added to avoid
                   : call to SIZE when INDF is a null pointer.
                   : Change in third dimension (IOPER) now trapped.
   parallel.f      : New subroutine to set the default blocksize
                   : added - checks that if the number of orbitals
                   : is small then the blocksize is lowered to ensure
                   : some work on each processor.
   siesta.F        : Setting of level for alloc routines corrected
                   : for parallel execution.
                   : Call to new routine for setting default blocksize
                   : added and calls for parallel setup moved until
                   : later in the routine so that no_u is defined.
=======================================================================
Version: 1.0.51
Date: 2001/02/28  05:00 GMT
Title: Improved memory for parallel order N
Author: Julian D. Gale <j.gale@ic.ac.uk>

Description:

The key routines for order N calculation have been modified
to lower the peak memory usage by reordering certain operations
to reduce the amount of local workspace at the expense of a
communication overhead in some cases for multiprocessor systems.
A few other changes have been made as a result of compilation
and testing of the latest version on the Cray and under the
pgf90 compiler.

Files:
   ener3.F         : Memory usage reduced for parallel execution
   denmat.F        : Memory usage reduced for parallel execution
   gradient.F      : Memory usage reduced for parallel execution
   dhscf.f         : Typo in message corrected
   fdf/fdf_mod.f   : Local variable default2 added to fdf_sp to
                   : handle type conversion on calling fdf_single
   periodic_table.f: lmax lowered to 3 in cnfig to avoid write beyond
                   : bounds error when called by routines where lmax is
                   : already 3
   Makefile        : atmparams.o added to object list for make of base
=======================================================================
Version: 1.0.50
Date: 2001/01/31  17:30 GMT
Title: Miscellaneous corrections
Author: Jose M. Soler <jose.soler@uam.es>

Description:

More modular reading of .RHO files in plrho.
Calls memory from realloc to keep the correct total allocated memory.
Authorship correction of some periodic_table routines.

Files:
   alloc.F90       : Call memory. Corrected CRAY sizes.
   arw.F           : Document moving of some routines
   iorho.F         : Returns correct sizes instead of stopping
   matel.f         : Last function value made zero after radfft call
   parallel.f      : Default initialization of Blocksize and ProcessorY
   periodic_table.f: Authorship correction of some routines
   Plrho/iorho.f         : Serial version of iorho
   Plrho/plrho.f         : Use iorho to read .RHO files
   Plrho/plrho.f77       : Fortran77 version
   Plrho/plrho_guide.txt : Document previous changes
=======================================================================
Version: 1.0.49
Date: 2001/01/29  19:00 GMT
Title: Merge of 'newatom' branch
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

The basis-generation subsystem has been improved by rationalizing some 
data structures and making some code simpler. A major simplification 
involves doing the work in serial mode and broadcasting only the final
data structures. A more powerful 'parse' mechanism has been implemented 
to help with the complex processing of data blocks which define the
basis. A complete list of changes follows.

Files:
   atom.f: Back to serial mode. Streamlined somewhat, but still basically
           unchanged. Lots of more work needed.
   atom.F: Removed.
   atm_types.f: Data structures to hold PAO, KB proj, and vlocal info.
   atminit.F: Removed. Its functionality is now in...
   initatom.f: Includes logic to deal with user-defined bases (new format).
   atomlist.f: Now computes total number of orbitals and KB projectors. 
               Includes superx.
   base.F: A new, standalone, program for basis generation.
   basis_io.F: Reads and writes basis information in two formats: pure
               ASCII and NetCDF (if compiled in). Note that the .F suffix
               does not have anything to do with MPI... it is needed to
               preprocess NetCDF blocks.
   basis_specs.f: New routines for basis definition. See documentation
                  in the file itself.
   basis_types.f : Data structures for basis specification, and routines
                 to interface with the old-style arrays needed by 'atom'.
   broadcast_basis.F: New file.
   cdiag.F: Make H and S real arrays with an extra dimension, so that
            the (formal) interface errors do not stop the program in
            debugging runs. Now the interface mismatch is passed on
            to the library side.
   cellxc.F: Arrays xmesh and aux are now assumed size to avoid 
             interface mismatches.
   chkdim.F chkdim.f: Calls routine 'die' to avoid explicit MPI code.
   coceri.f: Uses 'periodic_table' module (q.v.) and automatic arrays.
   coor.f coxmol.f pixmol.f: Use 'periodic_table'
   dfscf.F: fal array dimensioned to na instead of nua.
   diagon.F: Aux array size was too small for 'diagk' case.
   diag*.{f,F} propor.f: Use new module 'sys' (q.v.)
   die.F: Removed. Functionality in module sys.F (q.v.)
   dump2cdf.F dump_ascii.f: Removed. Functionality now in basis_io.F
   gauleg.f lofilm.F
   rlylm.f ylmexp.f 
   ylmylm.f: Removed and integrated into new module 'spher_harm.f', to
             make the interfaces explicit.
   ionew.F: New prototype module to deal with logical unit numbers and
            the variable IOnode (to simplify MPI I/O).
   matel.f: Array syntax explicit in some calls to match the interfaces
            in spher_harm.
   meshsubs.F: Dummy argument fal was wrongly dimensioned (to na instead
               of nua) in routine neutralatomonmesh. Inocuous but wrong.
   old_atmfuncs.f: It now does the allocation and clearing of the
                   old-style atomic tables which use to be done in 'atom'.
   periodic_table.f: New module with purely 'atomic' routines, taken from...
   arw.F: 'atomic' routines moved to module 'periodic_table'.
   plcharge.F: Removed. Functionality provided by .RHO files and the 
               helper programs in Util/Contour and Util/Plrho
   pseudopotential.f: New module to read and hold the data from ps files.
                      (Currently, the data is recopied in 'atom')
   radial.f: Dynamic table size.
   recipes.f: Use automatic arrays when needed.
   redata.F: Issues note about .RHO file substituting denchar info.
   redbasis.f: Removed.
   siesta.F: New initatom interface. PDOS stub (not implemented yet).
             Remove call to plcharge. Use 'parse' module. Initialize
             array listhold after allocation. Explicit calls to
             routine superx after every kind of atomic move.
   sorting.f: New module, which includes:
   ordix.f ordvec.f order.f iorder.f: removed
   superx.f: put in module atomlist (and also as internal sub in coor.f)
   hsparse.f minvec.f: Changed to .f extension. Use 'sorting'.
   spher_harm.f: New module holding the Spherical Harmonics routines, 
                 with explicit interfaces.
   symbol.f: Removed. Included in module 'periodic_table'.
   sys.F: New module. Implements routines 'die' and 'bye'. These can
          be called to terminate an MPI job from anywhere in the program.
   transfer.f: Streamlined.
   types.f: Removed. Now called atm_types.f
   Makefile: Changed to reflect the additions and deletions.
   NetCDF/README: New file explaining some compatibility issues.
   fdf/fdf.f: Change name of block data.
   fdf/fdf_mod.f: New features. See documentation in file.
   fdf/fdf2.f fdf3.f: removed.
   fdf/parse.f: New file. A more powerful parser. See docs in file.
   fdf/makefile: updated.
   Docs/siesta.tex: Use makeidx package. Updated to reflect new changes.
=======================================================================
Version: 1.0.48
Date: 2001/01/23  17:30 GMT
Title: Bug Fix (nlcc + spin)
Author: Pablo Ordejon <ordejon@icmab.es>

Description:

Fixed bug reported by J. Junquera (on Jan 20 2001) and 
G. Canto (Jan 22 2001). The bug produced wrong values
of the stress and forces for calculations with spin
polarization and non-linear core corrections (simultaneously).

Files:
   meshsubs.F : Routine PartialCoreOnMesh corrected.
   Customary  Docs/CHANGES and Src/version.F changes.
========================================================================
Version: 1.0.47
Date: 2001/01/12  19:30 GMT
Title: Dynamic (re)allocation in MATEL
Author: Jose M. Soler <jose.soler@uam.es>

Description:

As a leftover of f77 static allocation requirement, the array
dimensions in MATEL are found using obscure formulas. F90 and the 
alloc module allow a simpler and cheaper reallocation on the fly.

Files:
   matel.f   : Arrays reallocated on the fly, using alloc module
               Suppressed matel_init and matel_module
               Removed pure-spherical-harmonic requirement for orbitals
   atmfuncs.f: Allowed IO=0 in LOFIO and MOFIO (with result L=0)
   kinefsm.f : Removed 'use matel_module' statement
   naefs.f   :  "
   nlefsm.f  :  "
   overfsm.f :  "
   phirphi.f :  "
   radfft.f  : G(NK) returns spilling of G(k) beyond Kmax
   siesta.F  : Supressed call to matel init
               Added alloc_report initialization and printout
   Makefile  : matel moved from module to normal routine
               Added dependence of matel.o on alloc.o
               Supressed dependences on matel_module
   siesta.tex: Added documentation of new option AllocReportLevel
========================================================================
Version: 1.0.46
Date: 2001/01/09  11:00 GMT
Title: Bug fis in iomd.f
Author: Pablo Ordejon <ordejon@icmab.es>

Description:

A problem with the reading/writing in the MD files is solved.
The problem consisted in the inability of some compilers
to write once the EOF character was reached.


Files:
   iomd.f:    Backspace command added
   Customary  Docs/CHANGES and Src/version.F changes.
========================================================================
Version: 1.0.45
Date: 2000/12/13  12:00 GMT
Title: Interface to K. Parlinski's PHONON program
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

K. Parlinski's program PHONON can analyze the crystal structure and
provide a set of symmetry-irreducible atomic displacements with which
to compute the dynamical matrix and obtain the phonon dispersion
relations and other lattice-dynamical magnitudes.  Siesta can now read
PHONON-provided information (basically in the MD.ATforPhonon and
PhononLabels blocks), carry out the required calculations (in a form
similar to that used for brute-force FC approach) and write a
SystemLabel.PHONON file that can be post-processed by PHONON.

Files:
   phonon.F:  Module implementing the interface routines.
   redata.F:  Logic to decide when a PHONON calculation (idyn=7) is
              to be undertaken.
   siesta.F:  Calls to phonon.F routines.
   Makefile:  Addition of phonon.F.
   siesta.tex: Brief documentation of the interface.
   Customary  Docs/CHANGES and Src/version.F changes.
========================================================================
Version: 1.0.44
Date: 2000/12/12  19:46 GMT
Title: BUG FIXED. Ref. br-20001209-002
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

Corrected bug reported by P. Ordejon:
Siesta was not parsing correctly the valence configuration
information if the pseudopotential file was generated in
a spin-polarized calculation.

Files:
   atom.F: New code to process configuration string.
   Customary  Docs/CHANGES and Src/version.F changes.
========================================================================
Version: 1.0.43
Date: 2000/12/12  19:00 GMT
Title: Eigenvalue-only diagonalization for k-sampling
Author: Jose M. Soler <jose.soler@uam.es>

Description:

In the case of k-sampling, an initial diagonalization is now performed to 
find the eigenvalues, the Fermi level and the occupation weights. 
Since the eigenvectors cannot be stored because of memory limitations,
the diagonalization is later repeated to find them and the density matrix.
By calling the LAPACK diagonalization routine with an eigenvalue-only flag,
a major part of the CPU time of the first diagonalization can be saved.

Files:
   cdiag.F:  Add argument NEVEC with the number of desired eigenvectors
             If NEVEC==0, call ZHEGV with job='N' (eigenvalues only).
             Otherwise, find all eigenvectors, like previously.
             Supress FV argument in CDIAG and allocate it internally.
             Use realloc to allocate arrays.
   diag2g.F:  "
   diagpol.f: "
   diagk.F:  First call to CDIAG with NEVEC=0. Second with NEVEC=NUO
   diag2k.F:   "
   diagkp.F:   "
   Customary Docs/CHANGES, Docs/siesta.tex, and Src/version.F changes.
========================================================================
Version: 1.0.42
Date: 2000/12/12  15:30 GMT
Title: BUG FIXED. Siesta 1.X. Ref. br-20001209-001
Author: Pablo Ordejon <ordejon@icmab.es>

Description:

Bug fixed: Siesta 1.X. Ref. br-20001209-001 

Corrected bug reported by A. Garcia:
Extrapolation of the density matrix for FC calculations,
when no DM file was present. Besides, an error was detected
in extrapol.F for the case of k-point sampling (where maxo
is different from maxuo)

Files:
   siesta.F: Treat differently the extrapolation for FC calcs. with 
             no DM files.
   extrapol.F: Fix bug (dimensions of aux matrix were wrong for
               k-point sampling calculations).
   Customary  Docs/CHANGES and Src/version.F changes.
========================================================================
Version: 1.0.41
Date: 2000/11/29  18:00 CET
Title: BUG FIXED. Routines 'initbands' in bands.F and 'fixed' in fixed.F
Author: Daniel Sanchez-Portal <sanchezp@uiuc.edu>

Description:

Two bugs corrected in 'initbands':
* Variable scale, defined as character*30, was broadcast and character*1
* switch added so kpoints are only broadcast to the other nodes if
  there is enough space to calculate and store them (nk.le.maxk)
One bug in subroutine 'fixed':
* The node reading the input was not specified

Files:
   fixed.F: Fix bug
   bands.F: Fix bug
   Customary  Docs/CHANGES and Src/version.F changes.
========================================================================
Version: 1.0.40
Date: 2000/11/25  11:30 GMT
Title: BUG FIXED. Routine 'parabola' in atom.F
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:
 
Updated routine 'parabola' which deals with multiple zeta orbital
matching and was updated on branch siesta-0 after the fork (for some
reason the change was not detected earlier). This fix will cause
noticeable numerical differences in the 'split' routine output
concerning the kinetic, potential, and total energy of zeta>1 orbitals
in some limited cases (Fe in the Examples directory being one of
them). The orbital itself seems not to be noticeably affected.

Files: 
  atom.F : Updated routine parabola.
  Customary  Docs/CHANGES and Src/version.F changes.
========================================================================
Version: 1.0.39
Date: 2000/11/24  13:15 CET
Title: BUGS FIXED. endif missing in MPI part of cellxc.F
Author: Pablo Ordejon <ordejonicmab.es>

Description:
 
Bug fixed: endif missing in MPI part of cellxc.F

Files: 
  cellxc.F : Fix bug
  Customary  Docs/CHANGES and Src/version.F changes.
========================================================================
Version: 1.0.39
Date: 2000/11/23  16:15 CET
Title: BUGS FIXED: supercell call in dynamics loop + update of k-points
Author: Pablo Ordejon <ordejonicmab.es>

Description:
 
Several bugs have been corrected, that produced wrong results for 
dynamics runs with k-points. The first affected the case of fixed
cells, and the second the case of variable cells:
  - The supercel setup for k-points was wrongly done only out of the 
    dynamics loop for fixed dell. Corrected to setup within te loop.
  - The k-points were not updated for the variable cell case.
    Corrected to update them.

Files: 
  siesta.F : Fix bugs for supercell and k-points updates.
  Customary  Docs/CHANGES and Src/version.F changes.
========================================================================
Version: 1.0.38
Date: 2000/11/1	 21:30 CET
Title: adding Harris forces for the first SCF step.
Author: Javier Junquera <javier.junquera@uam.es>

Description:

 When Harris functional is being used in a molecular
 dynamics simulation, the initial charge density of each step
 is always the sum of atomic charges.

Files:
  siesta.F : Skip the extrapolation of the density matrix
             Initialize the density matrix in each SCF step
  redata.F:  New variable harrisfun. Switch that fixes if
             Harris functional is going to be used.
  Customary  Docs/CHANGES
========================================================================
Version: 1.0.38
Date: 2000/11/1  13:00 CET
Title: adding Harris forces for the first SCF step.
Author: Javier Junquera <javier.junquera@uam.es>

Description:
 
 The computation of the forces for the Harris functional
 in the first SCF step has been implemented. This functional 
 is a not self-consistent version of DFT. It is extremly
 cheap but not very accurate for system which involves
 great charge transfer. Suitable for long runs of 
 molecular dynamics simulations.

Files: 
  siesta.F : Skip the diagonalization in the last step. 
  meshsubs.F : Bug corrected in PartialCoreonMesh subroutine.
               Problem related with the distance of a given point
               of the grid to a given atom. If that distant is zero
               the point is not considered, and that's wrong.
  cellxc.F, xc.f : Derivatives of exchange-correlation potential 
                   respect the charge density. Only implemented
                   for Perdew-Zunger parametrization (LDA)
  dfscf.f : Improved efficiency.
  dhscf.F : Reads the functional in which the computation of the forces
            will be based. Call to cellxc updated. Call to dfscf updated.
            New call to forhar.
  forhar.f: New subroutine where the potentials needed by dfscf for
            the Harris functional forces are built.
  redata.F: Automatic set up of DM.UseSaveDM, MaxSCFIterations and
            DM.MixSCF1 when Harris' forces are selected.
  Makefile: Added forhar.f
  Customary version.F, Docs/CHANGES and Docs/siesta.tex
========================================================================
Version: 1.0.37
Date: 2000/10/09  20:15 CET
Title: correcting ibmp3.make and version.F
Author: Emilio Artacho <Emilio.Artacho@uam.es>

Files: Sys/ibmp3.make
       version.F, CHANGES, siesta.tex
========================================================================
Version: 1.0.37
Date: 2000/10/05  19:15 CET
Title: Improved efficiency vmat & rhoofd (buffer) / various for compiling
Author: Emilio Artacho <Emilio.Artacho@uam.es>

Description:

(1) vmat and rhoofd were less efficient than 0.12 corresponding ones
at least for some systems. The 'buffer' that keeps a piece of a matrix
in a non-sparse form has been increased (by 100) so that fewer unpdates
of this buffer have to be done in the whole procedure (J.M.Soler).
The efficiency is comparable now (even better).

(2) Siesta has been compiled in the IBM SP2 machine in Lyon, both
parallel and scalar. Parallel compilation has also been done for
a large parallel Compaq machine in Grenoble. Makefiles and related.

NOTE: The IBM didn't know about complex.2double, I removed it from mpi.F
      (not used)

Files:
  rhoofd.f, vmat.f : improved efficiency
  ibmp3.make, ibmp3-mpi.make, compaq-mpi.make : (in Sys/)
  MPI/mpi.F, MPI/Makefile 
  Customary version.F, Docs/CHANGES and Docs/siesta.tex 
========================================================================
Version: 1.0.36
Date: 2000/09/13  11:00 GMT
Title: Fix for plotting files / vmat speed up
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

The format of files for use in Plrho was changed due to necessity for
the parallelisation because the density matrix was not stored on any
one node in a complete form. Hence Plrho has had to be modified to
reflect this. Also a bug in iorho relating to this change has been 
fixed.
Also the implicit loops have been removed from several places in vmat
to improve performance with current compilers. In addition, a few
other performance enhancements have been introduced through the use
of local variables to reduce the number of multiplications in important
parts of the code.

Files:

   iorho.F    : The wrong dimension was being used in the inner loop
              : and has therefore been corrected.
   plrho.f    : Format of files from iorho changed to new form.
   vmat.f     : Implicit loops / sum function removed + VClocal added
              : to reduce number of multiplications.
========================================================================
Version: 1.0.35
Date: 2000/08/10  13:00 GMT
Title: Change in .DM format
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

The main change is to the way in which the .DM file is written. The
form of the statements has been changed to something much closer to
how it used to be written before the parallelisation forced some
changes. This was done because of poor performance during disk writes
on a cluster of machines with a remote mounted disk and will generally
benefit the speed of writes, though not always quite as dramatically
as in this case. Also a couple of minor changes were made to avoid
compiler hiccups and warning messages.

Files:
   alloc.F90  : argument "type" declared as (len=*) in type_mem for
              : the benefit of the PG compiler
   cellxc.F   : 0.0d0 -> 0.0 in a couple of places to avoid type
              : conversion warnings
   iodm.F     : form of write statements adjusted to maximum number
              : of writes per statement within parallel constraints
========================================================================
Version: 1.0.34
Date: 2000/07/29  17:30 GMT
Title: Change to PCC to remove spurious forces
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

Certain runs on a high symmetry system were found to give large
symmetry breaking forces for some atoms on a special position
but not all when using partial core corrections in the pseudo
potential. The problem was trace back to very small values of
the distance between the mesh points and atoms.

Files:
   meshsubs.F : r > tiny check has been added to trap small distances
              : that lead to spurious forces
   siesta.F   : comments stating that KSV_pol is not sorted for parallel
              : use have been removed as this is no longer true
========================================================================
Version: 1.0.33
Date: 2000/07/05  16:00 GMT
Title: Re-organization of atomic information. Other structural changes.
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

-- Completely new replacement for atmfuncs module.

Created a set of derived types to hold the information relative
to the atomic basis and pseudopotentials. The new structures are
somewhat more flexible and lean than the old ones. The functions in
atmfuncs have been re-implemented accordingly.

A new module 'types.f' holds the derived types (which might still be
streamlined somewhat). In 'transfer.f', the information is transferred
from the old atomic structures to the new ones.  The old atmfuncs
module has been renamed to 'old_atmfuncs'. The new structures are also
used in dump2cdf.F, which creates self-describing files with the
atomic information (see below).

Atom.F and redbasis.F are left mostly untouched for now.

The old dimensioning parameters (still useful for old_atmfuncs, atom, and 
redbasis) are kept in 'atmparams'.

Created a "radial function" derived type (not general enough, but
useful for atmfuncs) which encapsulates the linear grid and the
'splint' operation needed to interpolate on it. Presumably other types
appropriate for logarithmic meshes, more general functions, etc, could
be defined as well. The code is in 'radial.f', although the type
definition is still in types.f.

-- Matel.f 

Allocatable arrays local to matel turned into automatic arrays, which
are allocated and deallocated automatically by the compiler. (The SGI
had problems deallocating one of the arrays).  This solution (also
used in parsing.f) is the cleanest one for relatively small
arrays. For larger sizes, the process could run into stack limits
(which could in principle be circumvented by the use of the "limit(s)"
or "ulimit(s)" shell command).

-- Siesta.F atomlist.f atminit.F

Some streamlining of the code. Created a new module "atomlist" which
holds isa, xa, lasto, etc, and contains initatomlists and superc
(which does nothing but reallocate arrays if needed and expanding xa,
etc to the virtual supercell). Eventually, "atomlist" could be use(d)
by the routines which need those arrays.  Regarding the treatment of
the "real" and the "virtual" supercell, "ncells", "na", "no", etc,
meant different things in different places, and one had to be very
careful about it.  In the new version, the program knows nothing about
the supercell specified in the input file (as the manual says it
should). It only deals with "na_u" and "no_u", respectively the number
of atoms and the number of orbitals in the unit cell. If the use of
k-points forces the use of a "virtual" supercell, one needs also
"na_s" and "no_s". Those variables also live in module
'atomlist'. Also, "nuo" (the number of orbitals local to the node) has
been renamed to "no_l".

atminit.F could really be part of the atomic suite in the future.

-- OrderN issue: If the user requests k-points for an ordern calculation,
the program fails as some arrays are accessed beyond their dimensions.
Inserted a trap for (.not. gamma) before the call to ordern to check it.
Eventually the supercell variables should be made private to the small group
of routines which really need them... 

-- Use of new 'alloc' module by Jose.

It has been integrated as Src/alloc.F90, with some minor changes and
fixes (and a change of the module name to just 'alloc' instead of
'alloc_module').  It is used by siesta.F, coor.f, and atomlist.f to
deal with the atomlist arrays. 

 -- Redata.F coor.f init_spin.f

Eliminated the call to 'recoor' inside redata and replaced it by a
call from siesta to a new routine 'coor'. This almost eliminates the
need to call 'resize', except to initialize nspin. For now,
'init_spin' does only that bit, but it could be extended to do the
rest of the spin-related readings.

-- NetCDF hooks

Included support for the use of data files which are self-describing
and thus readable in a wide variety of ways. I have chosen the netCDF
format, which I think is powerful enough for our purposes. If the user
compiles Siesta with the NetCDF option (enabled in arch.make with a
couple of lines), the program will generate files with extensions
".dump.nc" for each of the species, containing the orbitals, KB projs,
etc. The 'ncdump' utility which comes with netCDF can be used to
produce a human readable form of the files, and other tools (such as
Python, or other compiled Fortran programs) can be used to provide any
desired information.  The basis information can also be read from the
.dump.nc NetCDF files by renaming them to .basis.nc and specifying
'new-user-basis' in the fdf file. (This capability is restricted for now to 
NetCDF-capable implementations).

-- NetCDF interface

A new directory NetCDF contains the F90 interface to the NetCDF
library Version 3.5 (whose source is kept in a separate cvs
repository, in case it is needed).  Note that the interface is
relatively new, and only works with that version of  NetCDF.

-- MPI interface

Upgraded the MPI F90 interface by using kind numbers for the
generation of the module procedures which are then overloaded. A
single file "Interfaces.f90" is now produced. Cray users can now avoid
editing mpi.f90, as the necessary type fiddlings are done in a
preprocessor block in mpi.F.

-- Slight change to the arch.make macros. 

In order to support the new MPI and NetCDF interfaces, new macros have
to be defined in the arch.make file. Examples for Linux, SGI64, and
Osfdxml-cdf have been created in the Src/Sys file. (All of them with
NetCDF support which can be overridden).


-- Use of kind parameters in declarations and tagging of real constants.

Started using the 'kinds' defined in precision.F (note the change to
allow a possible Cray-related preprocessing) in some files.  The only
way to avoid precision-related pitfalls is to stick to consistent
declarations and the tagging of all real constants. See in particular
routine 'linmin' in file 'cgwf.F'.

-- Parse routine

Some of the %blocks in Siesta have lots of structure. Reading or
modifying it can be difficult.  We are looking for ways to make
'parse' more powerful. Eventually, it will live in a module of its own
together with extra data structures which won't have to be declared in
the calling routine. For now, a new module
('parsing') has been created. As a more
techical note also mentioned above, the allocatable
arrays have been replaced with automatic ones.

-- FDF2 module

As an exercise, created another fdf interface module which
contains a generic 'fdf_get' routine. It is called 'fdf2' and used
for illustration purposes in 'coor.f' and 'spin_init.f'.

-- IONode

Routines which formerly called MPI_Comm_Rank to find out whether 
it was OK to do IO can now just import the logical variable 'IOnode' from 
module 'ionew'. (Eventually ionew will contain all the stuff now in 'io').
The variable is initialized by a call to 'io_setup' in siesta.F.

-- Interface blocks

File interfaces.f contains interface blocks for ordern and
hsparse. Eventually, it would be desirable to provide explicit
interfaces for all the routines in the package (via interface blocks
or by the use of modules).

Changed, New, and Replaced files: Too many to list here (see the more
relevant cases in description above).

========================================================================
Version: 1.0.32
Date: 2000/06/19  22:00 GMT
Title: Handling of nonpositive density in exchange-correlation routines
Author: Jose M. Soler <jose.soler@uam.es>

Description:

The handling of negative or zero densities has been corrected and 
homogenized across xc routines. The DENMIN parameter has been
decreased to 1.d-15, to avoid small energy errors. Documentation for
the noncollinear spin option added to cellxc interface.

Files:
  xc.f     : Corrected overflow bug. DENMIN decreased
  cellxc.F : Corrected ISPIN loop limit. ABS(D) changed by MAX(0.d0,D)
========================================================================
Version: 1.0.31
Date: 2000/06/16  16:00:00 GMT
Title: Fix of order N, stress fixing and tidying of prmem.
Author: Julian D. Gale <j.gale@ic.ac.uk>

Description:

The problem with the serial version of order N dimension checking
has been corrected and the references to prmem removed as they
are now defunct. Also the ability to fix stresses has been added
to the geometry constraints.

Files:
   cellxc.F     : trapping of densities less than denmin added to
                : avoid floating point crashes in XC routines
   fixed.F      : stress fixing option added
   ksv.F        : prmem removed from list of external routines
   Makefile     : prmem.o removed from list of objects
   neighb.f     : prmem removed from comment as no longer needed
   on_subs.F    : bug in axb_build1 corrected due to listb references
   prmem.f      : removed as no longer used
   ranger.f     : prmem removed from list of external routines
   siesta.F     : extra MPI_Barrier added after final printmemory to
                : tidy parallel output
                : call to prmem removed as no longer used
   siesta.tex   : stress fixing documented
   version.f    : Version number incremented to 1.0.31
========================================================================
Version: 1.0.30
Date: 2000/05/16  01:30:00 GMT
Title: Removed single precision in recipes.f
Author: Jose M. Soler <jose.soler@uam.es>

Description:

A conversion to single precision, originally in the Numerical Recipes
routine four1, was removed. Apparently this was the main source of 
minor numerical discrepancies between different computers. 
Also, all constants were transformed from single to double precision.
The output files in siesta/Examples were also updated.

Files:
   recipes.f                   : Removed calls to SNGL
   Examples/H2O/Out/h2o.out    : Updated (with cefeo/osfdxml.make)
   Examples/H2O/Out/out.fdf    :    "
   Examples/H2O/OrderN/h2o.fdf :    "
   Examples/H2O/OrderN/out.fdf :    "
   Examples/SiH/Out/sih.fdf    :    "
   Examples/SiH/Out/out.fdf    :    "
   Examples/Fe/Out/Fe.fdf      :    "
   Examples/Fe/Out/out.fdf     :    "
   version.f                   : Updated version number and date
   Docs/siesta.tex             : Updated date
   Docs/CHANGES                : This entry
========================================================================
Version: 1.0.29
Date: 2000/05/01  13:00:00 GMT
Title: Band calculation bug fixes etc
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

A couple of problems concerned with band structure calculations
which were brought to light by one of Daniels students have been
fixed as well as a missing format descriptor from an error
message.

Files:
   atom.F       : missing "i4" output descriptor for error message 
                : added concerning insufficient L projectors
   bands.F      : mscell(3,3) declared locally and added to redcel call
                : references to nuo changed to nuotot in several places
                : as this was leading to incorrect output to the .bands
                : file
   ksv.F        : redcel removed from list of external routines
   version.f    : Version number incremented to 1.0.29
========================================================================
Version: 1.0.28
Date: 2000/04/28   17:00:00 GMT
Title: New compilation scheme. Reading from stdin. Matel fix.
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

For a number of reasons, the architecture support in the makefiles is
now implemented by including "arch.make" (that is, a fixed-name file,
instead of "$SIESTA_SYS.make"). All references to SIESTA_SYS have been
eliminated, so even if it is still in the environment nothing should be
messed up. A new makefile variable SIESTA_ARCH is used for identification
purposes.

Also, reinit now allows the FDF input to be read through standard
input, as in siesta < h2o.fdf. To support debugging sessions, siesta
will read from INPUT_DEBUG if this file exists (and warn about it).
NOTE: In some platforms, the siesta executable must reside in the same
directory as the files for things to work properly (this happens to
the parallel version in Linux).

A minor (cosmetic) fix to matel: some arrays did not need to be saved,
as they were deallocated upon exit.

Files:
   Docs/siesta.tex : Revamping and removal of obsolete sections.
   matel.f      : Array declarations.
   version.f    : Version number incremented to 1.0.28
   reinit.F     : Support for dual input.
   resize.F     : More graceful exit.
   Makefile     : arch.make support.
   Sys/*.make   : Some pruning of old files, updates.
   MPI/Makefile : arch.make support.
========================================================================
Version: 1.0.27
Date: 2000/04/12   4:00:00 GMT
Title: Spin polarisation corrections
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

Three bugs relating to spin polarised calculations have been fixed
as well as an issue relating to the use of a variable in atom.F
detected by a compiler.

Files:
   atom.F       : q renamed to qtmp in choverlp
   dhscf.F      : Dscf -> Dscf(1,ispin) in call to rhoofd
                : Hmat -> Hmat(1,ispin) in call to vmat
   siesta.F     : S(jo) -> S(ind) in calculation of qspin()
   version.f    : Version number incremented to 1.0.27
========================================================================
Version: 1.0.26
Date: 2000/03/30   9:30:00 GMT
Title: Slight fixes to timing and vibrations
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

As a result of running on the Cray with uninitialised variables set to 
NaN a few small possible problems were indentified for machines which
do not default to static memory. Also a few similar issues were found
in the course of testing parallel frequency calculations and have
been cleaned up.

Files:
In Src/
   ofc.f        : Reading of .FC file altered to avoid crash on Cray.
   siesta.F     : Tempion initialised to zero and printing for FC option
                : modified.
   timer.F      : Variables "count_rate" and "wt" saved between calls
                : in elap1.
   version.f    : Version number incremented to 1.0.26
In Util/Vibra/Vibra
   fcbuild.f    : Logical "overflow" initialised to false
   Makefile     : ARCH environment variable changed to SIESTA_SYS for
                : consistency with main program
   vibrator.f   : Logical "overflow" initialised to false
                : Variable "nk" initialised to zero
                : Call to outbands suppressed if nk = 0
                : Typo corrected - "Writting" -> "Writing"
   Sys/t3e.make : Make options for Cray T3E added
========================================================================
Version: 1.0.25
Date: 2000/03/29   8:30:00 GMT
Title: 
Author: Julian Gale <j.gale@ic.ac.uk>

Description:

There have been several major changes for this release :

(1) The array listh has now been distributed across the processors
(2) The storage format of the main sparse arrays, H, S, Dscf, listh etc
    has been changed to be more compact. Hence for any given spin these
    arrays are now 1-D instead of 2-D, thus eliminating the storage of
    any zeros (except the tolerance at the end of listh to avoid recalling
    hsparse). The start of any row, n, of the sparse matrix can now be found
    at "listhptr(n)+1".
(3) dhscf.F has been heavily modified to make it more modular. Hence it
    has largely been reduced to a series of subroutine calls which use
    routines from meshsubs.F and meshmatrix.F. All references to the
    density matrix in mesh-local stored form have been abstracted to a
    module so that it and its pointers are not directly seen at the dhscf
    level. Likewise the transformations from orbital to mesh-local storage
    via MPI have been localised in 2 subroutines so that the majority of
    high level mesh routines no longer call MPI.
(4) The dimension of the array within has been corrected to maxphi in all_phi
    as this can lead to floating point errors otherwise.
(5) The storage of phi has been re-ordered according to Jose's suggestion
    so that it is ordered by mesh points rather than orbitals. This has 
    led to the removal of the call to transp and some related arrays as
    the data is already in the transposed form. Similarly the
    calculation of Phi has been simplified (at the expensive of some
    potential CPU savings) leading to removal of options, such as SaveMemory.
(6) An extra check has been added to the mesh initialisation. For non-right
    angled unit cells there used to be the possibility that the mesh cut-off
    might not be greater than the requested value. A new check has been 
    added that guarantees that it will be satisfied by increasing NTM.
(7) The value of ncmax is now initialised to zero in iolwf if no file is
    found otherwise the value could be NaN and is then used to allocate
    memory in ordern leading to a memory error.
(8) Parallelisation of KSV added
(9) Bug in grdsam fixed - pt was not preserved between calls

Files:
   atmfuncs.F   : The dimension of "within" has been corrected to maxphi in all_phi
                : The default value of nzetmx has been increased to 3
   atom.F       : Calls to prmem removed as the memory is dynamically created.
   atomlwf.F    : Modified to allow for local nature of numh,listhptr,listh including
                : globalisation of numft which is now needed as a result
   bands.F      : Modified to allow for local nature of numh,listhptr,listh 
   cgwf.F       : Modified due to new sparse form of arrays
   chempot.F    : Modified due to new sparse form of arrays + loop conversion to f90
   denmat.F     : Modified due to new sparse form of arrays + local nature of storage
                : numh/listh/listhptr
   detover.f    : Re-named to detover.F as CPP options are present
   detover.F    : Modified due to new sparse form of arrays
                : Aux re-sized to nocc x nocc and parallelisation added
   dfscf.F      : Renamed to dfscf.f as all MPI calls have been removed
   dfscf.f      : Argument maxorb removed and Dscf/DscfL changed to new format
                : Internal logical Parallel introduced to handle choice of Dscf or DscfL
                : The gradients are now calculated using a call to all_phi for speed
   dhscf.F      : Globalisation of dipol(3) moved into dipole.F
                : Argument maxorb removed and Hmat/Dscf changed to new format
                : dipol(1:3) initialise to zero to avoid floating point crash in grdsam.F
                : for "bulk" case
   diag2g.F     : Modified due to new sparse form of arrays + loop conversion to f90
   diag2k.F     : Modified due to new sparse form of arrays + loop conversion to f90
   diagg.F      : Modified due to new sparse form of arrays + loop conversion to f90
   diagk.F      : Modified due to new sparse form of arrays + loop conversion to f90
   diagkp.F     : Modified to allow for local nature of numh,listhptr,listh
                : Globalisation of pointers to H and S added
   diagon.F     : Modified due to new sparse form of arrays 
   diagpol.f    : Modified due to new sparse form of arrays + loop conversion to f90
                : Modified to allow for parallel execution by changing the order of
                : referencing Haux/Saux and looping on the left by nuotot and on the
                : right by nuo.
   dipole.F     : Globalisation of dipole now in subroutine
   dynamics.F   : Contents of array "sold" now preserved between calls
   egandd.F     : Modified due to new sparse form of arrays + frstme variable removed
   ener3.F      : Modified due to new sparse form of arrays + local nature of storage
                : numh/listh/listhptr
   extrapol.F   : mm2/mnew changed to 2-D array of size (maxnh,nspin) + maxno->maxnh +
                : modifications to allow for the fact that the sparse indexing arrays
                : are now local only
   extrapolon.F : version of extrapol created for order(N) using the old sparse matrix form
                : as the format has yet to be changed in this section of the code
   gradient.F   : Modified due to new sparse form of listh + local nature of storage
                : numh/listh/listhptr
   grdsam.F     : Argument maxorb removed and Hmat/Dscf changed to new format + loops
                : changed to f90 form for compactness
                : Array pt preserved between calls as the contents are only read once
                : and dimensions corrected to 3 x (maxpt+1).
   hsparse.F    : Modified due to new sparse form of listh + local nature of storage
                : numh/listh/listhptr.
                : Trap for nuo = 0 added  for setting nlhmax
   idiag.f      : shared do loop termination removed
   initdm.F     : Dscf/Dold changed to 2-D array of size (maxnh,nspin) + maxno->maxnh +
                : listh now in 1-D form and a pointer to the start of the rows is added
                : and passed through to iodm.F
   iodm.F       : dm changed to 2-D array of size (maxnh,nspin) + maxno->maxnh
   iohs.F       : Format of saved H/S/xij changed to match new linear form
   iolwf.F      : ncmax initialised to 0 if found = .false.
   kinefsm.F    : Renamed to kinefsm.f as all MPI calls have been removed
   kinefsm.f    : Renamed kinefsm.F with Node and Nodes added to argument list
                : Dscf made into 2-D array and maxnd is equal to maxnh
   ksv.F        : Modified due to new sparse form of arrays and parallelisation.
                : Copy of psi into psiprev moved to detover/savepsi
   listsc.f     : Trivial typo - corrected in a comment
   Makefile     : new routines added to list and dependances on meshmatrix.F and meshsubs.F
   matel.f      : Calls to prmem removed as the memory is dynamically created.
   meshmatrix.F : A collection of a module that contains data for the matrix Dscf
                : stored locally with respect to the mesh rather than the orbitals
                : and two subroutines that transform forward and backwards between
                : the two local arrangements
   meshsubs.F   : A collection of subroutines that perform tasks on the mesh. The is a
                : composed of code that used to all be in dhscf.F but with changes to
                : the code that calculates the wavefunctions at the mesh points. This
                : part has been changed so that the data is ordered by mesh point and
                : simplified according to Jose's algorithm
   minvec.F     : shared do loop termination removed
   mulliken.F   : Modified due to new sparse form of arrays + local nature of storage
                : numh/listh/listhptr
   nlefsm.F     : Renamed to nlefsm.f as all MPI calls have been removed
   nlefsm.f     : Renamed nlefsm.F with Node and Nodes added to argument list
   on_subs.F    : Two versions of the subroutine axb_build have now been added
                : suffixed by 1 or 2. axb_build2 is the same as the old routine
                : whereas axb_build1 is a modified form to allow for the more
                : dense sparse storage algorithm used in the main part of the
                : code, but not yet in the ordern section.
   ordern.F     : Modified due to new sparse form of arrays and call to extrapol
                : replaced by call to extrapolon
   overfsm.F    : Renamed to overfsm.f as all MPI calls have been removed
   overfsm.f    : Renamed overfsm.F with Node and Nodes added to argument list
                : Escf made into 2-D array and maxnd is equal to maxnh
   phirphi.f    : Modified due to new sparse form of arrays and for parallel form.
                : nuotot, Node and Nodes added to argument list
   plcharge.f   : Renamed to plcharge.F as it now requires MPI use
   plcharge.F   : Created from plcharge.f but modified to reflect the new sparse
                : array indexing form and the fact that this information is local.
   pulayx.F     : Modified due to new sparse form of arrays + local nature of storage
                : numh/listh/listhptr
   redata.F     : Default value of MemoryScale has been changed to 1.0
   rhooda.f     : The accessing of data has been modified to reflect the fact that
                : quantities are now order by mesh points, leading to the removal
                : of some of the indexing arrays. Also the argument list has been 
                : shortened because a number of parameters are now in the "mesh" 
                : /"meshphi" modules.
   rhoofd.F     : Renamed to rhoofd.f as all MPI calls have been removed
   rhoofd.f     : Created from rhoofd.F and modified so that the much of the grid
                : related data is stored in modules rather than being passed as
                : arguments. The choice between Parallel and serial forms of use
                : Dscf is made internally now and the new sparse format is included.
   savepsi.F    : New routine to copy psi to psiprev in ksv.F while handling the
                : parallel distribution of data.
   siesta.F     : Sparse storage of H,H0,S,xijo,Dscf,Dscfsave changed to save memory
                : H,H0 and S now only allocated after first call to hsparse
                : Some loops converted to f90 form to condense code
                : Node and Nodes added to argument list of kinefsm/nlefsm/overfsm/
                :   xijorb
                : Commented out calls to prmem removed for tidyness
                : Variable nnomax has been removed.
                : The extra safety margin added to the length of listh has been
                : reduced to 5% from 10% - because the array is 1-D there should
                : less need for changes as variation betweens will now cancel
                : each other out partially.
   transp.f     : Deleted as it is no longer needed
   version.f    : version number incremented to 1.0.25
   vlist.F      : Removed to simplify dhscf.F as it was never called.
   vmat.F       : Renamed to vmat.f as all MPI calls have been removed
   vmat.f       : Created from vmat.F and modified so that the much of the grid
                : related data is stored in modules rather than being passed as
                : arguments. The choice between Parallel and serial forms of use
                : Vs is made internally now and the new sparse format is included.
   xijorb.F     : Renamed to xijorb.f as all MPI calls have been removed
   xijorb.f     : Renamed xijorb.F with Node and Nodes added to argument list
   xijorb.f     : xijo changed to 2-D array of size (3,maxnh) and nomax->maxnh
========================================================================
Version: 1.0.24b (version array not changed in program)
Date: 2000/03/28  11:00:00 GMT
Title: Minor cosmetic changes. Wall-time output
Authors: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

The timing routine now generates an extra file "WALLTIME" with
*elapsed* time. Added routines 'elap1' and 'timer1'.

Some minor changes to the FDF package, to remove output to unit 0 and
to improve the makefile. An extra routine fdf_inhibit, has been added
for future use.

Minor changes to MPI/Makefile to simplify the 'clean' procedure.

Files:

timer.F 
fdf/fdf.f
    fdf_mod.f
    makefile 
MPI/Makefile
========================================================================
Version: 1.0.24
Date: 2000/01/27  11:30:00 GMT
Title: Errors in siesta.F corrected
Author: Julian Gale <j.gale@ic.ac.uk>

Description:
   The first dimension of the array ebk has been corrected to nuotot
   instead of nuo in siesta.F, the dimension being passed to bands
   being adjusted accordingly, so that the parallel operation is
   correct. Also "bands" is now only called if nbk > 0 as there is
   no setup to be done within "bands".
Files:
   siesta.F
========================================================================
Version: 1.0.23
Date: 2000/01/27   9:30:00 GMT
Title: Error in allocation of ebk corrected in siesta.F
Author: Julian Gale <j.gale@ic.ac.uk>

Description:
   The array ebk in siesta.F was allocated within the check to see
if nbk was greater than maxbk. However, this only happened if nbk
> 1 leading to an error for a single K point. Allocation has now
been moved until after maxbk is known.

Files:
   siesta.F
========================================================================
Version: 1.0.22
Date: 2000/01/24  16:00:00 GMT
Title: Fixes to bands.F / dhscf.F / atom.F
Author: Julian Gale <j.gale@ic.ac.uk>

Description:
   A number of bugs have been uncovered and fixed as described below.
Files:
   atom.F    : in SPLIT a value of rphi was accessed where uninitialised
   bands.F   : the use of fdf for reading the BandLines was incorrect
             : and has been amended. Also, for simplicity and safety
             : a "band" module has been created containing a routine
             : "initbands" which initialises the data for bands and a
             : true call to "bands" which actually performs the band
             : structure calculation. This avoids the passing of
             : uninitialised data arrays during the initialisation
             : phase.
   dhscf.F   : the arrays used to store the previous calls atomic
             : coordinates failed to reflect the fact that the
             : supercell might increase in size for a variable cell
             : run with multiple K points. Hence now the sizes are
             : checked first and SAMEXA is set to false if the sizes
             : differ and the arrays are re-dimensioned. Also the
             : size of NeedDscfL has been corrected to NUO instead
             : of NORB, as has the referencing during DHSCF4 which
             : included redundant work for supercells.
   initdm.F  : the names of variables have been altered to reflect
             : the fact that the routine operates on just the unit
             : cell and not the supercell when addressing certain
             : indices. This is a purely cosmetic change for 
             : consistency with other parts of the program.
   siesta.F  : the calls to bands have been modified to reflect the
             : new form of initbands/bands. This has led to a cleaner
             : allocation of dynamic memory.
========================================================================
Version: 1.0.21
Date: 2000/01/11  10:30:00 GMT
Title: Fixes and cosmetic improvements to avoid compiler warnings
Author: Julian Gale <j.gale@ic.ac.uk>

Description:
   Two bugs have been fixed, namely the loss of constraint information
   in fixed.F due to deallocation of the arrays between calls and an
   uninitialised array access in "split" due to the wrong looping upper
   bound. Also cosmetic changes have been made to remove compiler
   warnings about features which do not strictly comply with the f90
   standard (deprecated features) for cleaner compilation on some
   machines.
Files:
   arw.F     : numbered do loops on executable line removed
   atom.F    : loop over 1->nrmax changed to 1->nrval to avoid floating
             : point error due to accessing an uninitialised array 
             : element
   detover.f : dcmplx -> cmplx / dimag -> aimag / dreal -> real
   dhscf.F   : shared do loop termination removed
   diagon.F  : ParallelOverK only set on first call now and saved
   dismin.f  : shared do loop termination removed
   egandd.F  : parameter "nc" no longer passed to ctrans1
   ener3.F   : commented dimensions of numhij corrected
   fixed.F   : arrays ctype / iac / xc allocated on first call and never
             : deallocated
   inver.f   : shared do loop termination removed
   linpack.F : dcmplx -> cmplx / dimag -> aimag / dreal -> real
   minvec.F  : shared do loop termination removed
   on_subs.F : parameter "nc" no longer used - array dimension set using
             : ncmin and ncmax
   pulayx.F  : shared do loop termination removed
========================================================================
Version: 1.0.20
Date: 2000/01/08  00:01:00 GMT
Title: Improved performance with DirectPhi option
Author: Jose M. Soler <jose.soler@uam.es>

Description:
   The performance with option DirectPhi, in which the orbitals are
   calculated 'on the fly' at grid points, has been improved by
   obtaining all the orbitals of one atom in a single call.
   Also, routines rhoofd and vmat have been slightly rewritten to
   avoid references to large global arrays within the inermost loop.
Files:
   atmfuncs.f : New routine all_phi
   rhoofd.F   : Calls all_phi instead of phiatm
   vmat.f     : Calls all_phi instead of phiatm
========================================================================
Version: 1.0.19
Date: 2000/01/04  13:00:00 GMT
Title: Correction to memory allocation in egandd.F
Authors: Julian Gale <j.gale@ic.ac.uk>

Description:
   Memory allocation in egandd.F didn't reflect the fact that the
   bands are distributed across the nodes for some arrays leading
   to unnecessarily large memory usage in parallel.
File:
   egandd.F
========================================================================
Version: 1.0.18 
Date: 2000/01/04   12:50:00 CET
Title: Bug fix in grid-cell sampling (improved mesh-cutoff convergence)
Author: Emilio.Artacho@uam.es

Description:
   Bug discovered by Daniel SP, forces where not adequately updated
File:
   grdsam.F (plus customary siesta.tex, CHANGES, version.f)
========================================================================
Version: 1.0.17
Date: 1999/12/19  12:30:00 GMT
Title: Fixes to ordern and vlist
Authors: Julian Gale <j.gale@ic.ac.uk>

Description:

A couple of bug fixes have been introduced :

(1) The array nindv was being passed from eandg to axb_build with
    the wrong size declaration on the second call. This led to an
    out of bounds error which showed up as a crash in iolwf for
    some runs. The arrays ind and nindv are now locally created
    in axb_build with the sizes needed for a given call to avoid
    any possible errors during calling.
(2) The list of arguments for vlist was inconsistent with the call
    from dhscf.F. The auxillary array parameters are now handled
    using local dynamic memory. This error was not really detected
    as vlist never seems to get called.

Files:

egandd.F  : ind and nindv have been removed
on_subs.F : ind and nindv are now locally allocated in axb_build
vlist.F   : MaxInd and ind removed from argument list and ind is now
          : dynamically allocated
========================================================================
Version: 1.0.16
Date: 1999/12/17   9:15:00 GMT
Title: Fixes to ordern/iolwf + supercell creation
Authors: Julian Gale <j.gale@ic.ac.uk>

Description:

A number of small changes have been made;

(1) There were errors in the handling of restarts for ordern
    calculations due to dynamic memory allocation which have
    been fixed.
(2) The use of listcold between ordern and extrapol was 
    inconsistent for parallel runs. listcold now only stores
    the lists for the local orbitals on the current node to
    save memory and make everything consistent with extrapol.
(3) The allocation of memory in SIESTA has been corrected for
    an error that occured when a supercell was built.
(4) The save attribute has been added to bcell in dhscf.F

Files:

dhscf.F  : bcell variable given save attribute
iolwf.F  : modifications made to reflect changes to new size
         : of listcold and dimension error for maxc trapped
         : so that new value can be returned as ncmax
ordern.F : listcold now dimensioned as (maxnc,maxoloc) to save
         : memory and for consistency in extrapol. Handling of
         : dynamic memory overflow in iolwf added.
siesta.F : allocation of arrays that depend on nua moved to handle
         : the fact that redata can change the value of nua for a
         : supercell calculation
========================================================================
Version: 1.0.15
Date: 1999/12/13  16:20:00 GMT
Title: Improvements to building behavior
Authors: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

A number of changes to improve compilation portability.

Files:

precision.f90:  Removed
precision.f  :  Added. It now uses fixed format, as the rest of the program.
Makefile     :  Better cleaning, and precision changes.
fdf/makefile :  fdf_mod.o is now added to the library.
Libs/lapack.f:  machine-constants routines segregated to machine.f.
Libs/machine.f: file to be compiled without optimization.
Libs/makefile:  added support for machine.o build.
MPI/Makefile :  moved '.generated' to 'generate'.
Sys/ibmp3.make and Sys/ibm.f: partial support for IBM machines (Emilio)

========================================================================
Version: 1.0.14
Date: 1999/12/01   9:15:00 GMT
Title: Memory leak checks + diagonalisation modification
Authors: Julian Gale <j.gale@ic.ac.uk>

Description:

This version contains 3 principal changes :

(1) To guard against memory leaks, the save attribute has been added
    to near all allocatable arrays so that the machine can detect
    when an array is attempted to be allocated having not been
    previous deallocated. As a result, a memory leak was found in
    outcoor.f on the array xap and has been fixed.
(2) It appears that most of the time a parallel diagonalisation can
    continue quite satisfactorily when SCALAPACK returns the warning
    about non-converged eigenvalues due to clustering without any
    effect on the results. Hence a new parameter MemoryScale has been
    introduced which is the scale factor by which the memory available
    to SCALAPACK is increased when TryMemoryIncrease is true. If this
    value is set equal to 1.0, instead of the default 1.5, then the
    SCF procedure continues without actually increasing the memory.
(3) The print out of memory information has now been modified to
    reflect the fact that the word lengths are different on a Cray
    and this is handled by a cpp directive at compile time. Hence the
    file memoryinfo.f has become memoryinfo.F

Files:

coceri.f     : save attribute added to allocatable arrays
detover.f    : save attribute added to allocatable arrays
diagpol.f    : save attribute added to allocatable arrays
matel.f      : save attribute added to allocatable arrays
numbvect.f   : save attribute added to allocatable arrays
ordvec.f     : save attribute added to allocatable arrays
outcoor.f    : save attribute added to allocatable arrays
               + memory leak fixed on xap
parse.f      : save attribute added to allocatable arrays
phirphi.f    : save attribute added to allocatable arrays
radfft.f     : save attribute added to allocatable arrays
ranger.f     : save attribute added to allocatable arrays
recipes.f    : save attribute added to allocatable arrays
reord.f      : save attribute added to allocatable arrays
shaper.f     : save attribute added to allocatable arrays
xc.f         : save attribute added to allocatable arrays
ylmylm.f     : save attribute added to allocatable arrays
atminit.F    : save attribute added to allocatable arrays
atomlwf.F    : save attribute added to allocatable arrays
bands.F      : save attribute added to allocatable arrays
cdiag.F      : ierror = -2 if TryMemoryIncrease = .true.
               and MemoryScale = 1.0
cgvc.F       : save attribute added to allocatable arrays
chempot.F    : save attribute added to allocatable arrays
diagk.F      : handling of ierror modified
diag2k.F     : handling of ierror modified
diagkp.F     : save attribute added to allocatable arrays
diagg.F      : handling of ierror modified
diag2g.F     : handling of ierror modified
diagon.F     : save attribute added to allocatable arrays
dynamics.F   : save attribute added to allocatable arrays
egandd.F     : save attribute added to allocatable arrays
extrapol.F   : save attribute added to allocatable arrays
fixed.F      : save attribute added to allocatable arrays
grdsam.F     : save attribute added to allocatable arrays
hsparse.F    : save attribute added to allocatable arrays
initdm.F     : save attribute added to allocatable arrays
iodm.F       : save attribute added to allocatable arrays
iolwf.F      : save attribute added to allocatable arrays
kinefsm.F    : save attribute added to allocatable arrays
ksv.F        : save attribute added to allocatable arrays
memoryinfo.F : handling of Cray word lengths added
mulliken.F   : save attribute added to allocatable arrays
nlefsm.F     : save attribute added to allocatable arrays
on_subs.F    : save attribute added to allocatable arrays
overfsm.F    : save attribute added to allocatable arrays
pulayx.F     : save attribute added to allocatable arrays
redata.F     : MemoryScale read in
rdiag.F      : ierror = -2 if TryMemoryIncrease = .true.
               and MemoryScale = 1.0
siesta.F     : save attribute added to allocatable arrays
xijorb.F     : save attribute added to allocatable arrays
========================================================================
Version: 1.0.13
Date: 1999/11/26  18:15:00 GMT
Title: Return to Main Trunk
Authors: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

The changes made to the code along the "merged" branch have been
merged back to the main trunk. A few cosmetic changes have also
been made. Note that it is not practical to include all the commit
messages pertaining to the merged branch again. For all practical purposes,
there is a "wall" between 0.12.19 (tagged 'fork') and 1.0.13. 

Files:

CHANGES:	It contains the description of the latest changes along
		the merged branch. For full details, see the log history
		in each file.
redbasis.f:	Removal of references to atom.h
atom.h:		Removal. (Note that some "hardwired" parameters remain
		in the atmfuncs module -- they will be dealt with in
		the future.)
========================================================================
Version: 1.0.12
Date: 1999/11/24  18:00:00 GMT
Title: Direct evaluation of phi added
Authors: Julian Gale <j.gale@ic.ac.uk>

Description:

An option has been added to calculate the value of the orbitals at
the mesh points on the fly to avoid the use of the PHI array in
DHSCF on lower routines. This allows a large saving in memory to
be made in some cases, with a penalty in CPU time. For very large
jobs it makes the difference between running and not running though
if memory is tight. Also an MPI barrier has been added in siesta.F
before the memory is printed to tidy up the output.

Files:

dfscf.F    : value of phi is now used from called to phiatm rather than C
dhscf.F    : DirectPhi option added
rhooda.f   : DirectPhi option added
rhoofd.F   : DirectPhi option added
siesta.F   : MPI barrier added before call to printmemory
vmat.F     : DirectPhi option added
siesta.ind : SaveMemory and DirectPhi options described
siesta.tex : SaveMemory and DirectPhi options described
========================================================================
Version: 1.0.11
Date: 1999/11/18  16:30:00 GMT
Title: Sys reorganization. Bugfix in atom.F. Misc cosmetic changes.
Authors: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

	* The Sys directory has been reorganized. Obsolete files have
 	been removed. A new file "nolibs.make" has been added to support
	systems without any libraries (this would be the equivalent of
	'unknown.make').
	* Bug fix in atom.F: The global variable Q was being inadvertently
	re-used in a subroutine. 
	* Fix to avoid interface errors (when checking enabled) in ranger.f
	* diagkp.F: Addition of a dummy routine so that some compilers do
	not complain of an empty file.

Files:

Makefile: Clarified the status of Sys.f files.
atom.F:   Bug fix.
diagkp.F: Addition of dummy routine.
diagon.F: fdf is now 'used'.
ranger.f: interface errors "corrected" (more needs to be done in the future)
Sys/*.make: Elimination of obsolete files and addition of new ones.

========================================================================
Version: 1.0.10
Date: 1999/11/17  17:00:00
Title: listsc and matel converted into modules
Authors: Jose M. Soler <jose.soler@uam.es> / Julian Gale (j.gale@ic.ac.uk)

Description:
  The clumsy ENTRY construction in listsc and matel was translated
  into fortran90 modules (JMS). Plus a number of small fixes for
  errors during compilation + runtime errors, primarily connected
  with the diagonalisation modifications. Also documentation
  modifications.

Files:
  Makefile  : declare listsc and matel as modules. 
  atom.F    : data statement converted into array declaration + 
            : nrcfile initialised
  dfscf.F   : use statement
  diagkp.F  : routine wrapped in preprocessor directive - for MPI only
  diagon.F  : diagkp declared as external
  diagpol.f : error flag for cdiag call added + handling
  hsparse.F : use statement
  kinefsm.F : use statement
  linpack.F : renamed from linpack.f
            : compiler directives added to handle precision of BLAS routines
            : dcabs1 renamed to sdcabs1 to avoid conflict with libraries
            : routines ending in "1" were removed as they were redundant
  listsc.f  : converted into module
  matel.f   : converted into module
  naefs.f   : use statement
  nlefsm.F  : use statement
  overfsm.F : use statement
  phirphi.f : use statement
  rhoofd.F  : use statement
  siesta.F  : use statement + lower limit of maxkb + initialisating Escf
  version.f : increased number
  vmat.F    : use statement
  fdf/makefile    : copying of module files now uses wildcard
  Docs/siesta.tex : version no. changed + parallel related options added
  Docs/siesta.ind : new options added with provisional page numbers
========================================================================
Version: 1.0.9
Date: 1999/11/16  19:00:00
Title: Ongoing cleanup of atomic routines. FDF module. LAPACK and BLAS
Author: Alberto Garcia

Description:

A number of unrelated changes.

* Systems without lapack and blas can now use source provided
  (use "cvs update -d" to pick up new directory Libs)
* Removed some blas routines from linpack (now duplicated in Libs/blas.f)
* Initialization of some variables (notably ends of arrays) in atom.F.
  Typically, the first element of arrays indexed over the radial
  coordinate was not initialized properly. They showed up as "initialized"
  in runs with checks enabled. This fix might improve the accord between
  runs with different number of processors.
* Use of "assigned" unit numbers for reading in atom.F and redbasis.f
  (Formerly an arbitrary "unit=1"  was used)
* Changed redbasis.F back to redbasis.f, as no MPI-specific code is left.
* Wrap of I/O in subroutine 'user' in atom.F. Rationalization of some of
  the reading. More work needs to be done.
* Be more careful about underflow in atom.F. A check has been added to
  avoid computation of exp(-big), where 'big' could be so large as to
  cause underflows (and some systems to stop). A configurable maximum
  value for 'big' (currently 60.d0) has been introduced.
* Fdf declarations are now in a module. Note that this is the simplest
  step one can take to bring fdf into a f90 "flavor". The only change
  to the code has been to introduce a private unit allocator. 
* The Makefile has been changed to support the new features. Also, the
  MPILIB mechanism has been slightly modified. It should now work
  on machines (such as the SGI) whose makes complained if MPILIB was
  empty (in serial mode).

Files:
 Makefile         
 bands.F          
 cgvc.F           
 dhscf.F          
 efield.F         
 fixed.F          
 grdsam.F         
 initdm.F         
 iocg.f           
 iodm.F           
 ioeig.f          
 iofa.f           
 iohs.F           
 iokp.f           
 iolwf.F          
 iomd.f           
 iorho.F          
 ioxv.F           
 kgridinit.F      
 ksv.F            
 linpack.f        
 ofc.f            
 outcoor.f        
 plcharge.f        
 pulayx.F          
 recoor.F          
 redata.F          
 redcel.F          
 reinit.F          
 repol.F           
 resize.F          
 siesta.F          
 version.f         
 fdf/ makefile     
 Libs/makefile
 Libs/lapack.f
 Libs/blas.f

========================================================================
Version: 1.0.8
Date: 1999/11/16  17:00:00
Title: Diagonalisation improvements and parallelisation over K points
Author: Julian Gale (j.gale@ic.ac.uk)

Description:

   The diagonalisation procedure has been slightly modified. So far
    many parallel diagonalisations have failed because of the memory
    being insufficient to separate clustered eigenvalues. The
    solution is obviously to provide more memory, which can be done
    using the "DiagMemory" option. However, it is not easy to know
    a priori how much extra memory is needed which leads to lots of
    job restarts from scratch. Hence, an option "TryMemoryIncrease"
    has been added to try to solve this problem internally to
    minimise the number of failing runs. The specific changes that
    have resulted are :

    (1) cdiag/rdiag now return an argument ierror which indicates the
        success or failure of diagonalisation. Ierror = 0 implies
        success, 1 implies fatal failure and -1 implies that failure
        was due to insufficient memory being available to separate
        clustered eigenvalues and that a repeat should be tried 
        with more memory.
    (2) the fdf option "TryMemoryIncrease" has been added with the
        default value ".true.". This implies that a parallel job
        will attempt to increase the memory available to diagonalisation
        by increasing "MemoryFactor" internally with the aim of
        achieving a successful diagonalisation without restarting
        the job externally
    (3) in routines that call cdiag/rdiag the ierror flag is now
        handled by calling "die" if there is a fatal error. If there
        was insufficient memory then the arrays are re-initialised
        and the diagonalisation repeated to see if it is successful
        - this only happens if TryMemoryIncrease is true.
    (4) For the case of multiple K points, nspin .le. 2, an
        option to parallelise over K points has been added in the
        new routine "diagkp" based on "diagk". This option gives
        good parallel performance for small unit cell metallic
        systems where the number of K points is much larger than
        the number of orbitals.
Files:
   Makefile
   cdiag.F
   diagg.F
   diag2g.F
   diagk.F
   diag2k.F
   diagkp.F
   diagon.F
   memoryinfo.f
   rdiag.F
   redata.F
   siesta.F
   version.f
========================================================================
Version: 1.0.7
Date: 1999/11/15  13:30:00
Title: KSV routines re-introduced for serial mode only + save attribute
Author: Julian Gale (j.gale@ic.ac.uk)

Description:
   Daniel's polarisation modifcations have now been introduced back
    into the merged version for SERIAL only execution at the 
    moment. There have been a few changes in the routines as well :

    (1) Dynamic memory has been introduced
    (2) KSV_pol has been split into an initialisation routine KSV_init
        that calculates just the dimensions needed and KSV_pol which
        does the actual calculation.
    (3) The code that performs the determinant calculation has been
        placed in a separate subroutine called linpack.f
    (4) The function dcabs1 in the Linpack routines has been modified
        to avoid a bug due to the optimising compiler on the Cray

    The "save" attribute has been added to allocatable arrays - this
    should help track down any memory leaks as an attempt to allocate
    an already allocated array from a previous call should result in
    an error. So far this has been done for the main routines where
    larger amounts of memory are allocated - should be extended to
    all arrays eventually.
    Also, in dhscf.F the maximum loop index in the calculation of X0
    prior to calling DIPOLE has been changed to NUA instead of NA
    otherwise the incorrect dipole moment is obtained.
Files:
   Makefile
   cdiag.F
   cellxc.F
   denmat.F
   detover.f
   dhscf.F
   diagpol.f
   ener3.F
   fft3d.F
   gradient.F
   iorho.F
   ksv.F
   ksvinit.f
   linpack.f
   ordern.F
   phirphi.f
   poison.F
   rdiag.F
   repol.F
   rhoofd.F
   siesta.F
   transp.f
   version.f
   vmat.F
========================================================================
Version: 1.0.6
Date: 1999/11/11  10:00:00
Title: Improved choice of default processorY value added
Author: Julian Gale (j.gale@ic.ac.uk)

Description:
   New features introduced for this version are :

    (1) Nearly all parameters that might be exceeded during a run have
        been replaced with dynamic memory. The remaining parameter
        statements are large to set run behaviour, rather than array
        sizes. Some array dimensioning parameters remain, but these
        related to numbers which are unlikely to change (such as the
        maximum angular moment possible for an orbital etc)
    (2) Variable declarations have been tidied up to produce fewer
        compiler warning concerning unused variables. This particularly
        applies to the scalar version
    (3) A small number of bug fixes, including initialisation of ql to
        zero to avoid a crash when semi-core states are present.
Files:
   coceri.f
   dot.f
   dnaefs.f
   naefs.f
   neighb.f
   ordvec.f
   outcoor.f
   parallel.f
   parse.f
   phirphi.f
   prmem.f
   radfft.f
   ranger.f
   recipes.f
   reord.f
   shaper.f
   version.f
   xc.f
   ylmylm.f
   atminit.F
   arw.F
   atomlwf.F
   bands.F
   cdiag.F
   cellxc.F
   cgvc.F
   chempot.F
   chkdim.F
   denmat.F
   dfscf.F
   dhscf.F
   diag2g.F
   diag2k.F
   diagk.F
   diagon.F
   dynamics.F
   efield.F
   egandd.F
   ener3.F
   fermid.F
   fft3d.F
   fixed.F
   gradient.F
   hsparse.F
   initdm.F
   iorho.F
   kgrid.F
   kgridinit.F
   kinefsm.F
   ksv.F
   mulliken.F
   nlefsm.F
   on_subs.F
   ordern.F
   overfsm.F
   pulayx.F
   redata.F
   rdiag.F
   redbasis.F
   rhoofd.F
   siesta.F
   timer.F
   vmat.F
   xijorb.F
========================================================================
Version: 1.0.5
Date: 1999/11/01  16:00:00
Title: Improved choice of default processorY value added
Author: Julian Gale (j.gale@ic.ac.uk)

Description:
   The program now chooses a default value of ProcessorY based on
    the total number of Nodes so that the processors are divided
    as evenly as possible in the two directions with the Y direction
    being the smaller factor. Currently only 2, 3 and 5 are used
    as possible factors. More could be easily added, but probably
    would be of limited use.
Files:
   siesta.F
   parallel.f
========================================================================
Version: 1.0.4
Date: 1999/10/28  13:00:00
Title: Input parameter to control workspace for diagonalisation added
Author: Julian Gale (j.gale@ic.ac.uk)

Description:
   A new input option "DiagMemory" has been introduced which allows
    the user to control how much workspace memory is made available
    to Scalapack. The memory that is given, the more likely it is
    that all eigenvalues will be converged as the separation of
    clustered values in this package is dependent on this. The
    default value is 2. A value of less than 1 will lead to failure!
Files:
   Makefile
   cdiag.F
   memoryinfo.f
   rdiag.F
   redata.F
========================================================================
Version: 1.0.3
Date: 1999/10/27   9:00:00
Title: Memory tracking added + minor bug fixes
Author: Julian Gale (j.gale@ic.ac.uk)

Description:
   In order to monitor the dynamic memory usage of SIESTA, a routine
    memory has been added which must be called everytime an array is
    allocated or deallocated. There is also a routine "printmemory"
    which can be called at anytime to output the peak memory use so
    far. Hopefully this should enable the detection of memory leaks
    and assist in determining whether a job fails to run due to lack
    of memory.
   Also a few minor bugs have been fixed where uninitialised variables
    were being accessed on restarting from an existing density matrix
    or from a conjugate gradients history file.
Files:
   Makefile
   siesta.F
   memory.F
   memoryinfo.f
   atminit.F
   atom.F
   atomlwf.F
   bands.F
   cdiag.F
   cellxc.F
   cgvc.F
   chempot.F
   denmat.F
   dhscf.F
   diagon.F
   dynamics.F
   egandd.F
   ener3.F
   extrapol.F
   fft3d.F
   gradient.F
   grdsam.F
   hsparse.F
   initdm.F
   iodm.F
   iolwf.F
   iorho.F
   kinefsm.F
   listsc.f
   matel.f
   mulliken.F
   nlefsm.F
   ofc.f
   on_subs.F
   ordern.F
   overfsm.F
   pulayx.F
   poison.F
   ranger.F 
   rdiag.F
   reord.f
   rhoofd.F
   transp.f
   vmat.F
========================================================================
************************************************************************
*********      OLD  (SERIAL ONLY) VERSION CHANGELOG    *****************
/////////      This version is kept in the cvs branch  /////////////////
/////////                    'siesta-0'                /////////////////   
************************************************************************
========================================================================
Version: 0.12.19
Date: 1999/09/4   05:00:00
Title: Minor change in subroutine redbasis and reKBblock
Author: Daniel Sanchez (daniel@roma.physics.uiuc.edu)

Description:
     Variable polorb included in the call of the subroutine 
     reKBblock 
File:
     redbasis.f
     redbasis_subs.f
=====================================================================
Version: 0.12.18
Date: 1999/08/12  23:00:00
Title: Minor changes to avoid compilation warnings
Author: Daniel Sanchez (daniel@roma.physics.uiuc.edu)

Description:
   Some minor changes in subroutines atom_subs.f, atom_functionss.f
    and KSV.f to try to eliminate some compilation warnings (reported
    by Pablo Ordejon) using Linux compiler 
Files:
   atom_subs.f
   atom_functions.f
   KSV.f
   Include/diagon.h : Value of the parameter maxhs set equal to 2.
========================================================================
Version: 0.12.17
Date: 1999/08/04  14:00:00
Title: Corrected bug in coceri.f
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  Coordinate output for cerius (coceri.f) was wrong because of
  a transposition of the inverse matrix of lattice vectors (to get
  to fractional coordinates.

Files:
  coceri.f
  usual (CHANGES, version.h, siesta.tex)
========================================================================
Version: 0.12.16
Date: 1999/08/03  01:30:00
Title: Corrected bug in redbasis.f
Author: Daniel Sanchez (daniel@roma.physics.uiuc.edu)

Description:
  Variables semic and lsemic were not correctly initialized,
  this causes an error in hp machines.

Files:
  redbasis.f : Variables semic and lsemic are now initialized
========================================================================  
Version: 0.12.15
Date: 1999/08/02  19:30:00  
Title: Restored variable savevh (bug introduced in recent change)
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Somehow I introduced an 'amass' within the name savevh

Files:
  siesta.f : Restored declaration of variable savevh
========================================================================  
Version: 0.12.14
Date: 1999/07/30  02:45:00
Title: Double-z orbitals orthogonalized to inner states
Author: Daniel Sanchez-Portal (daniel@roma.physics.uiuc.edu)

Description:
    With the option "split", the double-z orbitals are 
    explicitely orthogonalized to the inner (semicore) 
    states. 
    Minor bug corrected in subroutine draw_basis
Files: 
       atom_subs.f
       version.h
       Docs/CHANGES
========================================================================
Version: 0.12.13
Date: 1999/07/29  08:30:00
Title: More general type of "semicore" states allowed.
Author: Daniel Sanchez-Portal (daniel@roma.physics.uiuc.edu)

Description:
    Several modifications in the atomic routines allow now
    for a more general type of "semicore"-like states in the
    calculations.
    For example, if the pseudopotential of Ti is generated
    from a ionic configuration 3s2 3p6 3d2, the program will
    understand that the readed pseudopotentials belong to the
    states 3s and 3p rather than to the states 4s and 4p.
    The program can handle a different (independent) basis set
    for the 3s and 4s shell (for example), generated using the
    standard techniques, but now the PAO corresponding to
    the 4s state will have one node.

    Another  difference is that now the basis set is generated
    using the same configuration (self-consistent density) used
    to generate the pseudopotentials ( previously the atom
    was neutralize by rescaling the charge density).


Files:
   initatom.f
   atom.f
   atom_subs.f
   atom_functions.f
   redbasis.f
   redbasis_subs.f
   mulliken.f
   plcharge.f
   version.h
   Util/Denchar/Src/redata.f
   Util/Denchar/Src/phiatm.f
   Src/Include/atom.h
   Docs/CHANGES
   Docs/siesta.tex
========================================================================
Version: 0.12.12
Date: 1999/07/26  20:30:00  
Title: listh array restricted to unit cell
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  The listh array, which frequently took most of the memory when using
  k-sampling, is now restricted to the unit cell, and recalculated on
  the fly outside it, using a faster algorithm.

Files:
  dfscf.f   : Call to listh for orbitals out of the unit cell
  hsparse.f : Call to listh0 to initialize listh function
  listh.f   : New algorithm. Now a function for a given orbital.
  rhoofd.f  : Call to listh for orbitals out of the unit cell
  siesta.f  : Dimension of listh reduced from supercell to unit cell
  vmat.f    : Call to listh for orbitals out of the unit cell
  Makefile  : listsc.o depends on siesta.h
========================================================================
Version: 0.12.11
Date: 1999/07/20  7:30:00
Title: Several KB projectors for each angular momentum
Author: Daniel Sanchez-Portal (daniel@roma.physics.uiuc.edu)

Description:
  Several new routines have been added to the files atom_subs.f
  and redbasis_subs.f to allow the use of several KB projectors
  for each angular momentum. The implementation follows the
  work by Blochl, PRB 41, 5414 (1990). 

Files:
  atom_subs.f: Several new routines
  redbasis_subs.f: New routine to read the block PS.KBprojectors
  redbasis.f:  Added a call to routine reKBblock, two new arguments
  atom.f: to new arguments in the call of this routine, 
          and some other changes
  initatom.f: Modified the calls to routines atom and redbasis.
  matel.f: New parameter mxzkb (max. number of KB projectors per l)
  nlefsm.f: Value of the parameter maxkba from 16 to 25.
  version.h
  Include/atom.h:New parameter nkbmx(max. number of KB projectors per l)
  Include/matel.h:New parameter mxzkb(max. number of KB projectors per l)
  Docs/siesta.tex
  Docs/CHANGES
========================================================================  
Version: 0.12.10
Date: 1999/07/13  14:15:00
Title: Plrho support for bonding wireframe
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  A new routine (platom) was added to read the XV file and draw a
wireframe of bonds connecting atoms. Since it is still rather primitive
and unstable, its call is commented out in plrho.

Files:
  platom.f : Bond-wireframe routine (new)
  plin3d.f : Plots a line in 3 dimensions (new)
  plrho.f  : Added call to platom (still commented out)
  plrho.h  : zbuff array added to common block
  pltr3d.f : zbuff array moved to common block
  ray.f    : Added eps to denominator to avoid division by zero
  plrho_guide.txt : Added brief explanation on platom
========================================================================
Version: 0.12.9
Date: 1999/07/13  14:00:00
Title: First call to overfsm moved out of SCF loop
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  In order to be able to make some post-processing calculations which
may require the overlap matrix, with MaxSCFiterations=0 (reading the 
converged density matrix), the first call to overfsm was moved before
the start of the SCF loop.

Files:
  siesta.f : First call to overfsm moved out of SCF loop
========================================================================
Version: 0.12.8
Date: 1999/07/2  5:00:00
Title: Small modifications on the routine KSV_pol
Author: Daniel Sanchez-Portal (daniel@roma.physics.uiuc.edu)

Description:
  Just adding an exit point if no calculation has been requested

Files:
  Src/KSV.f
  Docs/CHANGES
========================================================================
Version: 0.12.8
Date: 1999/07/1  7:00:00
Title: Some modifications on the routine KSV_pol
Author: Daniel Sanchez-Portal (daniel@roma.physics.uiuc.edu)

Description:
  Some small changes in the routine KSV_pol, which calculates 
  the electronic polarization. 

Files:
  Src/KSV.f New argument shape, and some minor modifications
  Src/siesta.f Calls to the routine KSV_pol modify for the new parameter
  Docs/CHANGES 
========================================================================
Version: 0.12.7
Date: 1999/06/30  1:00:00
Title: Electronic polarization calculation using the Berry phase method
       (and other minor changes) 
Author: Daniel Sanchez-Portal (daniel@roma.physics.uiuc.edu)

Description: 
  The calculation of the electronic polarization for bulk systems
  using the Berry phase approach of R.D.King-Smith and D.Vanderbilt 
  (PRB 47, 1651 (1993)). The calculation is slightly different than 
  the usual approach used within plane-waves calculatios, and 
  calculations using gaussian basis sets, due to the numerical 
  (arbitrary radial shape) character of the basis used in SIESTA. 
  The matrix elements of the position operator in the basis set is 
  used, instead of the plane-wave that appears in the initial 
  formulation of the method. This method can only be applied 
  to insulators.

  The calculation of this matrix elements is performed by matel 
  only when the calculation of the polarization is requested, to 
  avoid the allocation of the extra-memory (relatively big compare
  with which was usually used by matel) when it is not necessary.

  Other small modifications in the atomic routines:
   *When the basis set is generated from a charged atomic 
    configuration (this must be explicetely requested in the input,
    it is not related with the configuration used to generate the 
    pseudopotentials) a message is print by the subroutine atom.
   *Radius of the orbitals for cations are now different (shorter)  
    than those of the neutral atom. For anions they are calculated
    from the neutral atom.
   *Some changes in subroutine USER to avoid problems with 
    the interpolation of the orbitals (readed from the numerical 
    tables) near zero.

   Corrected a small bug in SIESTA: 
    Usually the coordinates are moved after the last self-consistent
    calculation of the density-matrix. These changed coordinates 
    are then inconsistent with the density-matrix and forces used
    to calculate the forces, virial, LDOS, files to plot density, 
    etc... I have corrected this by saving the last coordinates 
    for what the electronic structure is actually calculated, and 
    using these coordinates to perform all these final calculations.
   
Files 
  Src/detover.f, KSV.f, phirphi.f, diagpol.f, repol.f (new files)
  Src/atom_functions.f (added three new functions) 
  Src/matel.f (strongly modified)
  Src/siesta.f, matel.h, siesta.h (modified)
  Src/atom.f, atom_subs.f, siesta.f (slight modifications)
  Src/Makefile 
  customary siesta.tex, siesta.ind, version.h, CHANGES
======================================================================== 
Version: 0.12.6 [to 0.11.5 in rel-0-11-fixes branch]
Date: 1999/06/18 12:30:00
Title: BUG Fixed in iorho.f concerning formatted/unformatted reading
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  A formatted read was done for unformatted files and vice-versa.
  It DID NOT affect the normal working of siesta since it was always
  using an unformatted file, and compilers were wise enough to
  disregard the * format. (In that case, how did we find it? I
  don't know, ask Jorge Kohanoff).

Files:
  iorho.f and customary
========================================================================
Version: 0.12.6 [to 0.11.5 in rel-0-11-fixes branch]
Date: 1999/06/10 17:45:00
Title: BUG Fixed: save alat in outcoor.f (bug only for certain compilers)
Author: Emilio Artacho (emilio.artacho@uam.es)

Files:
  outcoor.f and customary
========================================================================
Version: 0.12.5 
Date: 1999/06/09 12:30:00
Title: Denchar utility: it provides now atomic coordinates in 2D-plot coors
Author: Javier Junquera (javier@polar.fmc.uam.es)

Description:
  The package provides the possibility of giving the coordinates
  of any atoms of the calculated system in the reference frame of
  the 2D plot (the third coordinate would correspond to the one
  perpendicular to the plane and is zero for atoms within the plane).
    The atoms wanted are specified by giving their indices as in the
  siesta run, in the fdf block 2D.AtomsInPlane .

Files (all in Util/Denchar):
  Src/atompla.f  (new)
  Src/denchar.f, planed.f, rhoofr.f, readpla.f, wrout.f, Makefile (modif)
  Docs/denchar.tex
  Examples/ (all modified)
  customary siesta.tex, version.h, CHANGES
========================================================================
0.12.4 = 0.11.4  released as 0.11.f1
========================================================================
Version: 0.12.4 [0.11.4 in rel-0-11-fixes branch]
Date: 1999/06/09 10:45:00
Title: Rounding off release: Examples update and matel.h
Author: Emilio Artacho (emilio.artacho@uam.es)

Files:
  Examples/*/Out/*  updated for latest version
  Include/matel.h   changed MAXR to 128 and MAXQ to 1024 for consistency
                    (1 before, and the compiler complained)
========================================================================
Version: 0.12.4 [0.11.4 in rel-0-11-fixes branch]
Date: 1999/06/08 16:00:00
Title: Fixed bug in vmat.f  
Author: Jose M. Soler (jose.soler@uam.es)

Description:
   It was introduced in 0.10.20, and affected only Gamma-point
   calculations with substantial overlap between equivalent orbitals
   from different cells. Fixed.

Files:
   vmat.f
   customary siesta.tex, version.h, CHANGES
========================================================================
Version: 0.12.3 [0.11.3 in rel-0-11-fixes branch]
Date: 1999/06/08 12:30:00
Title: Fixed bug in atomlwf.f
Author: Pablo Ordejon (ordejon@icmab.es)

Description:
   The number of electron is now passed from ordern.f to atomlwf.f
   This fixes problems when charged cells and Order-N are combined.
   Also, checks are done to avoid the use of Ordejon-Mauri functional
   with charged cells.

Files:
   ordern.f, atomlwf.f
   customary siesta.tex, version.h, CHANGES
========================================================================
Version: 0.12.2  (No PL change)
Date: 1999/06/04 16:30:00
Title: Minor cosmetic changes. New .make files
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:
 * Minor cosmetic change in siesta.f to avoid
   check bounds warnings or errors at compile
   time.
 * Re-structuring of matel.f to help some 
   compilers.
 * Changes to some of the Sys/*.make files. Addition
   of some more.

   (No user-visible changes.)

Files:
   siesta.f:
   matel.f: 
   Sys/
   g77.make: ranlib used by default (BSD compatibility)
   g77-libs.make: New file. Uses system BLAS and LAPACK.
   nag-f90.make, nag-f95.make, pgf77.make, pgf90.make: New files.
========================================================================
Version: 0.12.2 
Date: 1999/06/03 12:30:00
Title: Changes to fdf behavior. Use of io_assign
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:
 * When calling fdf_init with 'stdin' as input file,
   some systems complain about the impossibility of
   rewinding unit 5. The fix consists of creating 
   a scratch file FDF_STDIN and passing it to
   fdf_init.
 * fdf has been updated to avoid using standard
   input directly (same mechanism).
 * Call to io_assign in atom.f (instead of 
   opening and closing unit 12)

   (No user-visible changes.)

Files:
   redata.f: Modified to use FDF_STDIN.
   fdf/fdf.f: Now deals more robustly with stdin.
   atom.f:   Call to io_assign 
   Makefile: Explicit dependencies for fdf files.
   customary version.h, CHANGES
========================================================================
Version: 0.11.1 0.12.1
Date: 1999/06/02 19:20:00
Title: Fixed bug in rhoofd.f
Author: Jose M. Soler (jose.soler@uam.es)

Description:
   It was introduced in 0.10.20, and affected only Gamma-point
   calculations with substantial overlap between equivalent orbitals
   from different cells. Fixed.

Files:
   rhoofd.f
   customary siesta.tex, version.h, CHANGES
========================================================================
Version: 0.11.0 0.12.0
Date: 1999/05/26 12:00:00
Title: Fixed bug in siesta.f, iomd was called with idyn instead of varcel
Author: Emilio Artacho (emilio.artacho@uam.es)

Files:
   Src/siesta.f
   (plus customary)
========================================================================
Version: 0.11.0 0.12.0
Date: 1999/05/25 16:00:00
Title:  Bug fixes
Author: Pablo Ordejon (ordejon@icmab.es)

Files:
   Src/bands.f           Call to diagk corrected
   Src/redata.f          fs_dafault defined as logical
   Src/version.h, Docs/CHANGES    Usual changes
========================================================================
Version: 0.11.0 0.12.0
Date: 1999/05/17 21:00:00
Title: Option to calculate a fixed spin state
Author: Pablo Ordejon (ordejon@icmab.es)

Files:
   Src/fermispin.f       New. Calculates occupations with fixed spin
   Src/diagg.f           Calls fermispin if spin is fixed
   Src/diagk.f           Calls fermispin if spin is fixed
   Src/diagon.f          Pass fixed spin info to diag routines
   Src/redata.f          Read new variables FixSpin and TotalSpin
   Src/siesta.f          Changes for fixed spin calcs.
   Docs/CHANGES          Changes for fixed spin calcs.
   Docs/siesta.tex       Changes for fixed spin calcs.
   Docs/siesta.ind       Changes for fixed spin calcs.
   Docs/release.notes_0.11       Changes for fixed spin calcs.
========================================================================
Version: 0.11.0 0.12.0
Date: 1999/05/17 20:00:00
Title: Fixed bug in cgvc.f 
Author: Emilio Artacho (emilio.artacho@uam.es)

Files:
  cgvc.f : It was using inver.f for matrix inversion, not good
           changed for reclat
  version.h, CHANGES, siesta.tex as usual
========================================================================
Version: 0.11.0 0.12.0
Date: 1999/05/05 17:15:00
Title: Fixed bug in madelung (mulecule) + fixed dim enlargement
Author: Emilio Artacho (emilio.artacho@uam.es)

Files:
  madelung         : bug: it checked whether it was a mUlecule (fixed)
  rhoofd, vmat     : maxloc: 200 -> 300
  matel            : NQ: 512 -> 1024
  kinefsm, overfsm : nomax: 10000 -> 20000
  nlefsm           : maxna:   500 ->  1000
                     maxno:  1000 ->  2000
                     maxo:  10000 -> 20000
  hsparse, xijorb  : maxna:   500 ->  1000
                     maxnkb: 1000 ->  2000
                     maxo:  10000 -> 20000
  shaper           : maxna:   500 ->  1000
  initdm           : maxat:   500 ->  1000
========================================================================
Version: 0.12.0 <=> 0.11.0 <=> 0.10.32
========================================================================
Version: 0.10.32
Date: 1999/04/26 18:30:00
Title: Corrected a bug which produced too large values of NFFR in MATEL
Author: Jose M. Soler (jose.soler@uam.es)
 
Description:
  A bug in searching previously stored functions produced too large 
  tables of FFR, with the same function repeated  two times.
  Value IR=0 was also excluded from the comparison.
  After these changes, the dimension of FFR could even be reduced.

Files:
  matel.f : Bug corrected
  Docs/siesta.tex  : Removed the description of the now-solved problem
  Docs/siesta.ind    (correpondingly) 1999/04/27 10:45
  Include/constr.f : Updated as in Src (unrelated to matel)
========================================================================
Version: 0.10.31
Date: 1999/04/26 16:00:00
Title: Reorganization of Sys. New environment variable SIESTA_SYS
Author: Alberto Garcia <wdpgaara@lg.ehu.es>
 
Description:
  * New, deleted, and modified files in Sys.
  * The environmental variable determining system/compiler/library
    settings is now SIESTA_SYS, instead of ARCH.
  * Some additions to the manual section dealing with compilation.
  (Changed version number since SIESTA_SYS is a 'major' change)

Files:

  Src/Sys/
  sgi.make    : Now uses sgi.f.
  sgi.f       : Includes timing routine.
  sgimath.make: Now uses sgimath.f.
  sgimath.f   : New file.
  g77-libs.make : (New file) For g77 systems with -llapack and -lblas.
  freebsd.make: (Deleted) Use g77 or g77-libs instead.
  diag_lapack.f: (New file) Included by relevant .f files.
 
  Util/
  msiesta     : Added comments. Changed ARCH to SIESTA_SYS
  rrsiesta    : Added comments.

  Src/
  Makefile    : Changed ARCH to SIESTA_SYS
  
  Docs/
  siesta.tex  : Re-wrote section on compilation. Updated to 0.10.31
========================================================================
Version: 0.10.30
Date: 1999/04/23 12:30:00
Title: SGI system-dependent makefile options
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Description:
  Some problems with the mathematical library of SGI were found by
  Julian Gale for the diagonalization. Also, some compiler options
  had to be changed for some SGI's OS flavors.

Files:
  sgi.make    : No libraries, uses general.f, and some flags changed
  sgimath.make: The previous version, with old flags and the math library
========================================================================
Version: 0.10.30
Date: 1999/04/20 17:00:00
Title: Revision and actualization of examples
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  Siesta examples are now:
   * H2O molecules as simplest, first contact. Plus ordern possibility.
     (unchanged, only updated)
   * Interstitial H in bulk Si, with a supercell of 64+1 atoms. SZ.
     Relaxation (40 Mb and 20 cefeo minutes).
   * bcc ferromagnetic bulk Fe, with GGA and partial core correction.
     Band structure and magnetic moment.
  Previous Si64 supercell example has been removed.
 
Files:
  Examples/H2O : h2o.fdf Out/h2o.out, out.fdf, siesta.size
           Fe  : analogous
           SiH : analogous plus sih.ANI (Xmol movie)
           Vps : Fe.inp and Fe.vps added
  Customary siesta.tex, version.h and CHANGES
========================================================================
Version: 0.10.29
Date: 1999/04/16 19:30:00
Title: sies2arc utility
Author: Julian Gale (j.gale@ic.ac.uk)

Description:
  Utility for extracting the coordinates from a SIESTA output file and 
  converting them into an arc file Movie for Cerius2/InsightII.

Files:
  Util/sies2arc/sies2arc.f  main program
                linepro.f   parses input lines
                wtof.f      converts word to a floating point number
                cell.f      converts cell parameters to cell vectors
                constants   contains fundamental constants
========================================================================
Version: 0.10.29
Date: 1999/04/14 21:45:00
Title: Cosmetics in redata + printing Max constrained forces
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Files:
  siesta.f, redata.f, siesta.tex, version.h, CHANGES
========================================================================
Version: 0.10.29
Date: 1999/04/13 19:00:00
Title: Changes in scripts + manual
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Description:
  Hopefully last changes for 0.11:
  - Scripts (msiesta etc) to avoid compilation of atom.f and related
    everytime
  - Manual: revision of explanations of scripts, and other details
  - Options Ang and Bohr as synonims of NotScaledCartesianAng etc.
  - Slight changes in siesta.f, outcoor.f, pulayx.f to avoid multiple
    fdf reading.

Files:
  msiesta, rsiesta, rrsiesta, qsiesta, qrrsiesta
  siesta.f, outcoor.f, recoor.f, pulayx.f
  siesta.tex, siesta.ind, CHANGES, version.h
========================================================================
Version: 0.10.28
Date: 1999/04/13 13:15:00
Title: Output: append in MD files + various in manual and siesta.f
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Description:
  - MD history files are now accumulative for different runs (so that 
    a restart of rrsiesta does not leaves us with a stupid face).
  - If coordinates are not written to standard output, they are by
    default accumulated in XMol format in file.ANI
  - Output of max constrained force in standard output
  - Manual describes it, plus inclusion of cond-mat ref ICSSS.

Files:
  pixmol.f iomd.f : accumulative (incorporates winding to end with
                    routines windu and windf in iomd.f)
  siesta.f : ANI default and writing constrained max force
  siesta.tex siesta.ind : manual
  CHANGES, version.h
========================================================================
Version: 0.10.28
Date: 1999/04/09 19:45:00
Title: Variable cell CG optimization
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Description:
  Variable cell CG optimization activated and described in the manual.
  See MD.VariableCell. It allows external pressure and non-hydrostatic
  stresses.

Files:
  cgvc.f : activated variable cell (before was shortcut)
  redata.f : changed some names and defaults.
  siesta.tex, siesta.ind
  Customary version.h, CHANGES
========================================================================
Version: 0.10.27
Date: 1999/04/08 15:40:00
Title: Minimal description of partial-core included in atom's User.Guide
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Files:
  Pseudo/atom/Docs/User.guide
========================================================================
Version: 0.10.27
Date: 1999/04/08 13:00:00
Title: EIG2DOS utility for DOS & acknowl in manual & coceri to Ang
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Files:
  Util/eig2dos.f
  Docs/siesta.tex, siesta.ind
  coceri.f : output for cerius has now lattice parameters in Ang.
  Customary version.h, CHANGES
========================================================================
Version: 0.10.27
Date: 1999/03/11 20:30:00
Title: Capability for charged systems, and minor corrections
Author: P. Ordejon (ordejon@condmat01.geol.uniovi.es)
 
Description:
  The capability to deal with charged systems is implemented.
  For atoms and molecules, the energy is corrected with
  a standard Madeliung term, for faster convergence vs cell size.

  Also, some minor changes in some routines have been made, 
  to avoid compilation warning due to non-initialized or
  not used variables.

Files:
  Src/Makefile       
  Src/atomlwf.f     Corrections to avoid compilation warnings 
  Src/bands.f       Corrections to avoid compilation warnings 
  Src/chempot.f     Corrections to avoid compilation warnings 
  Src/madelung.f    New file. Calculates Madelung correction
  Src/mulliken.f    Corrections to avoid compilation warnings 
  Src/ordern.f      Corrections to avoid compilation warnings 
  Src/propor.f      Corrections to avoid compilation warnings 
  Src/siesta.f      Changes to allow for charged systems
  Src/redata.f      Introduce new variable (NetCharge) for charged systems
  Src/typecell.f    New file. Identifies SC, FCC and BCC cells
  Src/version.h       
  Src/Sys/cdiag_general.f
                    Corrections to avoid compilation warnings
  Src/Sys/rdiag_general.f
                    Corrections to avoid compilation warnings
  Docs/CHANGES      This file
  Docs/siesta.ind   Index for 0.10.27 version
  Docs/siesta.tex   Manual for 0.10.27 version
========================================================================
Version: 0.10.26
Date: 1999/03/05 14:30:00
Title: Description of output files of atomic program in User.Guide
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Description:
  The contents of the different files generated by Alberto's atomic
  program are described in his User.Guide file.

Flies:
  Pseudo/atom/Docs/User.Guide
========================================================================
Version: 0.10.26
Date: 1999/03/04 17:20:00
Title: Re-introduced arguments listC and endC in rhoofd and vmat
Author: Jose M. Soler (jose.soler@uam.es)
 
Description:
  Although unused in the present version, arguments listC and endC
  are used in a special version of J.Junquera to save memory with
  k-sampling. Also changed the dimensions of some arrays to avoid
  compilation warnings.
 
Files:
  dhscf.f  : Calls to rhoofd and vmat
  minvec.f : New array iaux
  neighb.f : Dimension of iamove
  ranger.f : Dimension of iamove
  rhoofd.f : Restored arguments listC, endC
  vmat.f   : Restored arguments listC, endC
  xc.f     : Dimensions of ds and vxunif in pbxc
========================================================================
Version: 0.10.26
Date: 1999/03/02 01:31:00 (local time at Oviedo)
Title: Change definition of variables in ordern.f
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  Variables g and hg, which were defined as real*8 in ordern.f,
  are changed to real*4, to concord with their definition
  in cgwf.f (which is called by ordern.f).
  This change does not affect the results, but saves a
  little bit of memory.

Files:
  Src/ordern.f:   change definition of variables g and hg to real*4
  Src/version.h:  version 0.10.26
  Docs/CHANGES:   describe changes.
========================================================================
Version: 0.10.26
Date: 1999/02/28 20:15:00 (local time at Oviedo)
Title: Package VIBRA to compute phonons.
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description: 
  Package VIBRA to compute phonon frequencies and
  normal modes has been incorporated into the SIESTA
  distribution.  Changes in Siesta to compute the
  force constant matrix (used by VIBRA) have also
  been introduced, as a new MD option (to displace
  atoms one by one and compute the force constants)

Files:
  Util/Vibra:      New directory, with VIBRA sources, docs and examples
  Util/README:     List new packages
  Src/siesta.f:    Modified to compute the force constant matrix
  Src/ofc.f:       New file. Writes the force constant matrix to a file
  Src/redata.f:    Modified to read new dynamics variables
  Src/Makefile:    Modified to include ofc.f
  Src/version.h:   Tag version 0.10.26
  Docs/siesta.tex: Description of new variables
  Docs/siesta.ind: Update of index
  Docs/CHANGES:    Describe changes
========================================================================
Version: 0.10.25
Date: 1999/02/27 14:30:00 (local time at Oviedo)
Title: Incorporate O(N) automatic calculation of Chemical Potential 
       and correct bug in former siesta.f commit.
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  The automatic estimate of the Chemical Potential, in Order-N
  operation, is now incorporated in the Order-N routines.
  The estimate is done by the projection method of Goedecker,
  (PRB 51, 9455 (1995)), modified for non-orthogonal basis like 
  proposed by Stephan et al. (PRB 57, 6391 (1998), PRB 58, 13472
  (1998)).  
  Also, a small bug in the last siesta.f version was
  fixed (ns elliminated from call to ordern.f).

Files:
  chempot.f:         New file
  ordern.f:          Modified to call chempot.f
  redata.f:          Modified to read Chemical Potential related information
  siesta.f:          Modified to include calculation of Chemical Potential,
                     and small bug fixed (ellimination of ns from call to 
                     ordern)
  version.h:         Tag version 0.10.25
  Include/ordern.h:  Modified to include maxnh in the parameters list.
  Docs/siesta.tex    Description of new variables
  Docs/siesta.ind    Update of index
  Docs/CHANGES       Describe changes
========================================================================
Version: 0.10.24
Date: 1999/02/26 15:45:00 MET
Title: Various structural and cosmetic changes
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

Structural changes:

* .h files now reside in Src/Include, and need to be copied to the Src
directory before the first compilation. (Manual updated)

* System-dependent code now resides completely in Sys. Some files
(e.g., cdiag_general.f, rdiag_general.f, poison_general.f) have been
created from their counterparts in Src, and the latter removed. File
inclusion in architecture-dependent files is now kept to just one
level.

* Removed Sys/osf.f. Its functionality was identical to bsd.f
* Added g77.make and modified freebsd.make in Sys.	

* Makefile updated to include support for plusFORT-style checks and
to remove an spurious mention to cdiag.

Code changes:

* Array config in atm_pot dimensioned to (0:4) instead of (0:3)
* Some variables should be arrays in ggaxc and pbexc (fixed)

* (Daniel Sanchez-Portal) Various fixes in atomic routines.

* Gave explicit lenghts to "x" output descriptors and 
Hollerith variables.

* Removal of unused variables (too many files to list).

* Removal of unused arguments:

	Pulayx : listd
	Rhoofd : listc, endc
	Vmat   : listc, endc
	Polarization: b
	Initguess, cspa: ns

* Expansion of TABs in some files (tabs could cause problems with
some compilers).
========================================================================
Version: 0.10.23
Date: 1999/02/25 23:45:00
Title: Bug corrected in plcharge.f and DENCHAR 
Author: Daniel Sanchez-Portal (daniel@roma.physics.uiuc.edu)

Description:
    Program DENCHAR used an obsolote version of the atomic 
    subroutines. In fact, the version used was obsolete even 
    the first time that the program was added to the SIESTA 
    program. I doubt that the program had ever properly run, 
    due to this mismatch in versions.
    By passing I added a couple of format statements in some
    write sentences in the routines grid2d.f and rhoofr.f 

Files:
   plcharge.f (in SIESTA)
   redata.f, phiatm.f, rhoofr.f (in DENCHAR).
   grid2d.f (in Contour)
========================================================================
Version: 0.10.23
Date: 1999/02/24 24:00:00
Title: Bug corrected in atom_subs.f
Author: Daniel Sanchez-Portal (daniel@roma.physics.uiuc.edu)

Description:
   Bug corrected in atom_subs.f. In the previous versions
   the variable norb in the routine atm_pop was not initialized.
   Dimesions for the arrays in subroutines polarization and rc_vs_e
   are now provided by the file atom.h
   Minor semi-cosmetic changes in atom_subs.f atom.f and atom_functions.f

Files:
  atom_subs.f, atom.f, atom_functions.f
========================================================================
Version: 0.10.23
Date: 1999/02/21 22:05:00
Title: Conjugate gradient continuation file and flag
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Description:
  The conjugate gradient relaxation is no longer controlled by siesta
  but by cgvc. It stores auxiliary CG arrays in file belovedsystem.CG .
  Restarting with MD.UseSaveCG and MD.UseSaveXV and the .CG and .XV
  files from a previously interrupted CG relaxation, allows a smooth
  continuation of it. An irrelevant bug has been corrected.
    It is prepared for variable cell relaxation. In fact the code is
  there, ready, just called by MD.VariableCell true, but I am not still
  sure whether there is a bug in it, and I have disabled it 
  provisionally.

Files:
  cgvc.f, iocg.f : new
  siesta.f, redata.f, Makefile
  siesta.tex, siesta.ind, version.h, CHANGES
========================================================================
Version: 0.10.23
Date: 1999/02/21 18:15:00
Title: Introduction of k-sampling artillery into MD for variable cell
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Description:
  the calls within siesta prior to the MD cycle, related to k-sampling
  (kgrid, superc, etc) havev been introduced within for variabel cell
  MD, in which such things have to be recalculated.

Files:
  siesta.f, iomd.f
  CHANGES, siesta.tex version.h
=======================================================================
Version: 0.10.22
Date: 1999/02/21 17:15:00
Title: Description in the manual of previous changes; ibmesslp3.make; 
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Description:
  Actualization of siesta.tex with the new output features.
  New Sys file; ibmesslp3, adapted to the Power3 processor at Lyon

Files;
  siesta.tex, siesta.ind
  CHANGES, version.h
  Sys/ibmesslp3.make
========================================================================
Version: 0.10.22
Date: 1999/02/21 1:15:00
Title: Substantial output change; Gnubands utility; 
Author: Emilio Artacho (emilio.artacho@uam.es)
 
Description:
  Output has been made flexibler by the addition of several flags
  for optional printing of some (typically long) pieces: forces,
  k-points, bands, eigenvalues, coordinates etc, can now be switched
  on and off independently. 
    The default is now NOT to print most of those. A general FDF flag 
  "LongOutput" has been devised for turning on the printing of most of 
  them at once. Some cosmetics has been added to the output.
    The initial atomic coordinates are now written after ioxv. Before
  the fdf coordinates were always written, independent of whether the
  XV file was read or not.
    Several new files are now generated, in some cases only if the
  information does not go to standard output. Others keep the history
  of MD simulations (one of them for Xmol animation).

    Utility program GNUBANDS reads from standard input the .bands
  file grnerated by SIESTA and writes in standard output in a format
  directly readablo by Gnuplot.

Files:
  Makefile, siesta.f, redata.f, outcoor.f, recoor.f : modified
  atom.f, atom_subs.f, bands.f, superx.f            : cosmetics
  iokp.f, iomd.f, iofa.f, ioeig.f, pixmol.f         : new
  Util/gnubands.f                                   : new
  version.h, CHANGES
  siesta.tex, siesta.ind
========================================================================
Version: 0.10.22
Date: 1999/02/21 1:15:00
Title: BUG FIXED in atomlwf.f
Author:  Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  Program would crash on IBMs when dimensioning ordern subroutines.
  Alphas would behave strangely (ask for more dimensions after having
  been dimensioned) but not crash.

Files:
  atomlwf.f
========================================================================
Version: 0.10.21
Date: 1999/02/20 15:20:00
Title: Modifications mixing algorithms
Author:  Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  Fixed errors of version 0.10.21.  
  Changed output of si64 example.

Files:
  Src/Makefile
  Src/pulayx.f
  Examples/Si64/Out/si64.out
  Examples/Si64/Out/out.fdf
  Examples/Si64/Out/siesta.size
========================================================================
Version: 0.10.21
Date: 1999/02/20 14:45:00
Title: Modifications mixing algorithms
Author:  Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  The Pulay mixing algorithms have been modified and improved,
  and some new imput variables related to the mixing have been introduced.
  The Pulay mixing is now done mixing parts of both the input and
  output matrices of former steps (whereas in the previous versions
  only input matrices were used). This allows to perform the
  Pulay mixing on EVERY SCF cycle.  The algorithm and use is described 
  in the user guide siesta.tex.
  New input variables are defined, to:
  1) Skip the Pulay mixing once in a while, and use linear mixing with
     a different alpha (suggested by G. Fabricius). New variables: 
     DM.NumberKick, DM.KickMixingWeight
  2) Define whether mixing is done in first SCF iteration (usually it
     should not be done, but can be useful for SCF restarts). 
     New variable: DM.MixSCF1
  Also, the mixing.f routine for linear mixing has been elliminated.
  Now, linear mixing is also done by pulayx.f
  
Files:
  Src/siesta.f:     Modifications for new variables, ellimination of
                    mixing.f and new behavior of pulayx.f
  Src/redata.f:     New mixing variables
  Src/pulay.f:      New algorithm for mixing
  Src/mixing.f:     SUPPRESSED
  Src/version.h:    new version
  Docs/siesta.tex:  new variables explained
  Docs/siesta.ind:  new version
========================================================================
Version: 0.10.20
Date: 1999/02/19 20:15:00
Title: New version of DENCHAR (0.1.1)
Author:  Javier Junquera (junquera@condmat01.geol.uniovi.es)

Description:
Changes to the input of charge, suggested by E. Artacho.
The names of the variables have been changed: all variable
names are added a '2D.' in the beginning of the variable name
(in order to distinguish variables proper of DENCHAR in fdf
input files) and some names have been reduced.
Also, the fdf input file is now dumped at the beginning
of the output.
Also, version number has been added, and will be maintained
and upgraded in future versions.

Files:
  Util/Denchar/Src:       Makefile:  New file (dropped somehow in past version)
                          denchar.f: Small input changes
                          iodm.f:    Small output changes
                          readpla.f: Small input changes
                          rhoofr.f:  Small input and output changes
                          wrout.f:   New file
  Util/Denchar/Examples:  AtomicIndex.fdf:   Removed
                          AtomicIndices.fdf: New (old AtomicIndex.fdf, modified
                                                  for now input variables)
                          ThreePoints.fdf:   modified for now input variables
                          TwoLines.fdf:      modified for now input variables
                          NormalVector.fdf:  modified for now input variables
  Util/Denchar/Docs:      denchar.tex:  New version manual.
========================================================================
Version: 0.10.20
Date: 1999/02/18 14:15:00
Title: Scalar rhoofd, vmat, triangular but not inverted
Author: Jose M. Soler (jose.soler@uam.es)
 
Description:
  After some checks on ibms, decs, and sgi, there was an important
  variability on architecture for the inverted loops in rhoofd and vmat.
  This version recovers old structure (suited for scalar) but 
  incorporates triangularizations that increase spped in a factor of 2
  compared with the old version.
 
Files:
  rhoofd.f, vmat.f
  version.h, siesta.tex, CHANGES
========================================================================
Version: 0.10.19 
Date: 1999/02/16 14:30:00
Title: Structure for vmat more efficient on some platforms
Author: Julian D. Gale (j.gale@ic.ac.uk)

Description:
  Analogous (to some extent) to rhoofd 

Files:
  vmat.f
  version.h, siesta.tex, CHANGES
========================================================================
Version: 0.10.19 
Date: 1999/02/4  12:45:00
Title: Structure for rhoofd more efficient on some platforms
Author: Julian D. Gale (j.gale@ic.ac.uk)

Description:
 *Triangular sum instead of whole square-matrix sum: it doubles speed
 *Inverted order in do-loops, for a better parallelisation

Files:
  rhoofd.f
  version.h, siesta.tex, CHANGES
========================================================================
Version: 0.10.18 
Date: 1999/01/31  19:15:00
Title: Bug fixed in atom + saving mixed DM + correcting spellings
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
 *DM is now saved after mixing and mixing is done even in last iteration!
  Useful for O(N) scf step by step, and for achieving convergence with 
  small mixings in different steps.
 *BUG FIXED: basis type = user had a wrong output format.
 *Misspellings corrected

Files:
  siesta.f, denmat.f: mixing and DM saving
  atom_subs.f: bug fix
  several for misspellings
  version.h, CHANGES 
========================================================================
Version: 0.10.18 
Date: 1999/01/31  11:45:00
Title: RCS Id label inclusion in every file of Src/ and Docs/ (fdf excl.)
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  A first line in every SIESTA file (in the Src and Docs directories)
  has been added with the RCS Id information which tells the version
  number of each file for developer and user information.
Note: It originally stores emilio in that line since I made the commit,
  but it does not mean anything on authorship nor responsilbility on the
  particular files. It will be changing to more adequate names with
  future changes.

Files:
  Src/ (incl. Include/ and Sys/, but not fdf/)
  Docs/
========================================================================
Version: 0.10.18 
Date: 1999/01/19  10:00:00
Title: IBM-ESSL version of rdiag (continued)
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  include 'eispack.f', previously in cdiag.f has been moved also to 
  bsd.f, cray.f, general.f, ibm.f, and osf.f.

Files:
  Sys/bsd.f     : Added include '../eispack.f'
  Sys/cray.f    : Added include '../eispack.f'
  Sys/general.f : Added include '../eispack.f'
  Sys/ibm.f     : Added include '../eispack.f'
  Sys/osf.f     : Added include '../eispack.f'
========================================================================
Version: 0.10.18 
Date: 1999/01/18  18:30:00
Title: IBM-ESSL version of rdiag
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  A new version of rdiag, written by Jorge Kohanoff, which calls the
  IBM-ESSL library routine DSYGV, was added. Additionally, the line
  include 'eispack.f' in cdiag.f has been moved to ibmessl.f, which
  is the file actually compiled.

Files:
  Sys/ibmessl.f : Added new version of rdiag
                  Added include '../eispack.f'
  cdiag.f       : Removed include 'eispack.f'
========================================================================
Version: 0.10.17
Date: 1998/12/10  23:00:00
Title: Several fixes to dynamics subroutines.
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  This version patches several problems detected in the molecular
  dynamics routines:
  1) problems with natoms=1
  2) output of cell velocities for several variable cell shape 
     dynamics options
  3) error of reading of MD.BulkModulus variable (units included
     in the reading)
  Also, problems with DENCHAR program by J.Junquera are fixed
Files:
  Src/siesta.f   : Calls to dynamics rutines: print out pressure.
  Src/redata.f   : Correct reading of MD.BulkModulus
  Src/dynamics.f : Correct bug for natoms=1
  Util/Denchar/Src/denchar.f  : fdf_init declared as external
  Util/Denchar/Src/colinear.f : Bug fixed
========================================================================
Version: 0.10.16
Date: 1998/12/02  16:00:00
Title: New utility DENCHAR for 2D charge density plotting 
       (Alternative to Contour by E. Artacho)
Author: Javier Junquera (junquera@condmat01.geol.uniovi.es)

Description:
  Utility to read the density matrix and other information generated by 
  SIESTA and generate 2D grids in arbitrary planes for 2D contour drawing. 
  The SIESTA package has been modified to dump the necessary information
  to new output files.  This package is an alternative to the program
  Coutour (By E. Artacho). 
  DENCHAR  allows to plot the charge in an arbitrary plane using 
  a grid of arbitrary fineness (independent of the grid used in SIESTA). 
  The total charge density, the spin components, the magnetization 
  (difference of charges of spin up and down) and the difference between 
  the selfconsistent charge and the sum of atomic densities can be plotted.
  DENCHAR uses FDF to read the data of the plane in which the contours
  are plotted, and some other information (like names of the density
  matrix and other output files from SIESTA).  A manual is provided,
  as well as a directory with examples.
  DENCHAR contains the FDF package from A. Garcia and J. Soler,
  and many routines from SIESTA.

Files: 
  Util/Denchar/Docs/denchar.tex            : NEW. user guide

  Util/Denchar/Examples/AtomicIndex.fdf  | 
  Util/Denchar/Examples/NormalVector.fdf | 
  Util/Denchar/Examples/TwoLines.fdf     |
  Util/Denchar/Examples/ThreePoints.fdf  | : NEW. example input files

  Util/Denchar/Src/Makefile              |
  Util/Denchar/Src/chkdim.f              |
  Util/Denchar/Src/colinear.f            |
  Util/Denchar/Src/denchar.f             |
  Util/Denchar/Src/dmna.f                |
  Util/Denchar/Src/dot.f                 |
  Util/Denchar/Src/fdf.f                 |
  Util/Denchar/Src/fdf.h                 |
  Util/Denchar/Src/fdfdefs.h             |
  Util/Denchar/Src/io.f                  |
  Util/Denchar/Src/iodm.f                |
  Util/Denchar/Src/length.f              |
  Util/Denchar/Src/matvect.f             |
  Util/Denchar/Src/neighb.f              |
  Util/Denchar/Src/paste.f               |
  Util/Denchar/Src/phiatm.f              |
  Util/Denchar/Src/planed.f              |
  Util/Denchar/Src/prmem.f               |
  Util/Denchar/Src/ranger.f              |
  Util/Denchar/Src/readpla.f             |
  Util/Denchar/Src/redata.f              |
  Util/Denchar/Src/rhoofr.f              |
  Util/Denchar/Src/rlylm.f               |
  Util/Denchar/Src/splint.f              |
  Util/Denchar/Src/volcel.f              | : NEW. code sources and makefiles
========================================================================
Version: 0.10.15 
Date: 1998/12/01  15:30:00
Title: Three bug corrections related with k-sampling
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  If bands were asked without k-sampling for energy, a conflict occurred
  between routines diagon and bands, which share common blocks. Argument
  gamma has been added to diagon, in order to ensure that it uses complex
  diagonalization (even only for gamma) when the bands routine is used.
  Also, an incorrect call to redcel in bands produced a core dump when
  using the option BandLinesScale=ReciprocalLatticeVectors.
  Finally, a bug in dhscf has been corrected, which produced an incorrect
  value of the dipole moment when k-sampling was used.
Files:
  bands.f  : Corrected call to redcell
  dhscf.f  : Corrected calculation of x0 before calling dipole
  diagon.f : Added argument gamma
  siesta.f : Call to diagon
========================================================================
Version: 0.10.14 
Date: 1998/11/23  17:30:00
Title: Placing imported routines in separated files
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Routines not written by us, which were scattered across many files,
  have been placed in separated files, for copyright reasons.
  Apropriate acknowledgements have been added in the manual.
Files:
  arw.f      : NEW. Contains routines bcorgn, bcrmax, cnfig, egofb, 
               lmxofz, numin, numout, nrmlzg,  polint, qvlofz, 
               vhrtre, yofe, previously in atom_subs.f:
  atom_subs.f: Routines bcorgn, bcrmax, cnfig, egofb, lmxofz,
               numin, numout, nrmlzg,  polint, qvlofz, 
               vhrtre, yofe, moved to arw.f
               Routines ratint, spline, splint moved to recipes.f
               Routines paste, pasteb moved to paste.f
  cft.f      : NEW. Contains routine cft, previously in poison.f
  cdiag.f    : Routines eisch1, tql2c, htribk moved to eispack.f
  eispack.f  : NEW. Contains eisch1, tql2c, htribk, previosly in cdiag.f
  four1.f    : SUPRESSED. Routine four1 now in recipes.f
  ordix.f    : SUPRESSED. Routine ordix now in recipes.f
  paste.f    : NEW. Contains routines paste, pasteb, previously in
               atom_subs.f
  poison.f   : Routine cft moved to file cft.f
  recipes.f  : NEW. Contains routines four1, ordix, ratint, splin, 
               spline, splint, splinu, previously in other files.
  splin.f    : SUPRESSED. Routines splin, splinu now in recipes.f
  Makefile   : Adapted to the changes above
  Docs/siesta.tex : New section of acknowledgements, plus some update
                    of the Projected Changes and Additions section
========================================================================
Version: 0.10.14
Date: 1998/11/17  21:15:00
Title: New utility: 2D contour plotting
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  Utility to read 3D-grid functions information generated by SIESTA
  (.RHO, .DRHO, etc.) and generate 2D grids in arbitrary planes for
  2D contour drawing. It does not affect the rest of the SIESTA pack.

Files: 
  Util/Contour/grid2d.f          : the program
  Util/Contour/raw.in, noraw.in  : input examples
  Util/Contour/gnux11, gnups     : gnuplot use examples
  Util/Contour/README            : short explanation
========================================================================
Version: 0.10.14
Date: 1998/10/23  21:00:00
Title: Alphabetic index at the end of the manual (please check and keep)
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  An alphabetic index is added at the end of the manual. It is made by
  introducing \index{whatever} commands in the siesta.tex file, 
  running 'latex siesta', then 'makeindex siesta', and then 'latex
  siesta' again. 
Files:
  siesta.tex
  siesta.ind (index generated by makeindex)
========================================================================
Version: 0.10.14 
Date: 1998/10/23  18:30:00
Title: Bug corrections, mainly with k-sampling
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Parameters maxna and maxno were reduced to their minimun acceptable
    values (without margin for atom movements) when other parameters
    were changed, increasing the number of recompilations.
  Array conect in hsparse was incorrectly initialized with k-sampling.
  Array listno in listsc was written out-of-bounds when its dimension
    was too small.
Files:
  siesta.f  : avoid reducing maxna and maxno
  hsparse.f : corrected initialization of array conect
  listsc.f  : conditional writting of listno
========================================================================
Version: 0.10.13 
Date: 1998/10/18  14:00:00
Title: Plotting DeltaRho (Rho-Rho_atoms), msiesta, and manual revision *.h
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  New SaveDeltaRho FDF option to save the electronic density minus the
  sum of the atomic densities. File SystemLabel.DRHO
Files:
  dhscf.f:      Does the icalculating and calling to iorho (who writes).
                New argument at interface: fildrh, name of file to write.
  siesta.f:     Adapt to new dhscf.f interface and generate new name.
  grdsam.f:     Adapt to new dhscf.f interface.
  Util/msiesta: If init, cp *.h to working directory
  siesta.tex:   Documented + redocumenting .h files and generation.
  version.h and CHANGES
========================================================================
Version: 0.10.12 
Date: 1998/10/14  21:00:00
Title: One more optional input in block PAO.Basis
Author: Daniel Sanchez-Portal (daniel@polar.fmc.uam.es)

Description:
      -Now variable PAO.BasisType can assume different values for 
       different species. New optional input in data block PAO.Basis
Files:
  atom.f         :
  atom_subs.f    : 
  redbasis_subs.f:  
  redbasis.f     : 
  initatom.f     :
  version.h      : Changed the date but not the number of last version,
                   which is still 0.10.12
  Docs/siesta.tex  : Added description of the new parameter
========================================================================
Version: 0.10.12 
Date: 1998/10/13  17:00:00
Title: BUG FIX  in siesta, atom_subs and redbasis_subs 
Author: Daniel Sanchez-Portal (daniel@polar.fmc.uam.es)

Description:
     -New version of subroutine mulliken did not work properly because
      new arguments were not included in its call in main program
     -Corrected some bugs (lack of initialization for some variables)  
      in some subroutines from atom_subs.f, redbasis_subs.f (detected
      while runing in a Linux machine).
     -Corrected length of common blocks in atom_subs.f to avoid 
      errors in some compilers (detected while compiling in a  Linux
      machine).
      
Files:
  siesta.f       : Corrected call of subroutine mulliken
  atom_subs.f    : Bug fix
  redbasis_subs.f: Bug fix 
  version.h      : Changed the date but not the number of last version,
                   which is still 0.10.12
  Examples/H2O/Out : Updated outputs
  Examples/H2O/OrderN/Out : Updated outputs
  Examples/Si64/Out : Updated outputs
  Docs/siesta.tex  : Added description of the data block PAO.BasisSizes
========================================================================
Version: 0.10.12
Date: 1998/10/10  20:00:00
Title: BUG FIX in outcoor + New flag in outcoor + Cosmetics
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  - outcoor would generate wrong fractional coordinates because of a
    matrix transposition (fixed).
  - New 'WriteCoorStepNot' for not writing coordinates at each time step
  - Cosmetics for output in various files.
  - Output formats in new atom-related: it should be '1x' instead of 'x'

Files:
  outcoor.f   : bug + flag
  mulliken.f  : formats to 1x
  matel.f     : cosmetics (Estee Lauder)
  redata.f    :   "
  atom.f      :   "
  atom_subs.f :   "
  siesta.tex  : new flag + some small changes
  version.h
========================================================================
Version: 0.10.11
Date: 1998/10/9  19:00:00
Title: New implementation of the subroutine atom, and more flexible input
       for the basis set 
Author: Daniel Sanchez-Portal(daniel@polar.fmc.uam.es)

Description:
  General restructuring of atom subroutine(s), cutting it to pieces,
  redefining functions for interface with SIESTA, and redefining the
  input for the basis, being now much more flexible.

  Semicore states (in a simple version) can be now introduced.

  A BUG was FIXED for perturbative polarization orbitals.

Files:

atom.f: 
  Strongly modified. The routine has been completely restructured. Different
  calculations (local pseudopot., basis set, neutral-potential, etc...) are now
  performed by different routines which are called by the 'main' routine atom.
  These new routines are included in the file atom_subs.f.
  Semicore states can be automatically included, though in a quite naive way.
atom_functions.f: 
  NEW. Include all the 'atom dependent' functions. Most of the old ones
 (phiatm, rcut, ...) have been modified, and new functions have been coded.
atom.h: 
  Type declaration for the parameters included in the file. Parameter 
  ntbmax increased to 500.
atomlwf.f: 
  subroutine atomlwf: lmax, lmaxs and nzls erased from the input
  subroutine initguess: lmax, lmaxs and nzls erased from the input, information
  now provided by functions lomaxfis and nztfl
atom_subs.f: 
  32 new subrotuines have been added. Fixed a BUG in the interpolation of
  polarization orbitals. As a consecuence, the contribution to the forces
  coming from this orbitals, in spite of being consitent with energy, show 
  an oscillatory behaviour which could worse the convergence with the grid 
  spacing.
  The effect could be more important only for H, or other elements having 
  'p' polarization orbitals.
chcore.f: 
  Deleted (now included in atom_functions.f)
dnaefs.f: 
  Argument izs removed, information now provided by izofis function
epskb.f : 
  Deleted (now included in atom_functions.f)
initatom.f: 
  Several arguments have been removed from the call to this routine.
  Included a call to subroutine redbasis (before calling subroutine atom).
  Checks for several dimensions have been deleted.
Makefile: 
  Added files: atom_functions.f, redbasis.f redbasis_subs.f
  Deleted files: chcore.f epskb.f phiatm.f psover.f rcore.f rcut.f uion.f
  All the deteled routines, together with other 'atom depedent' functions,
  now included in the file atom_functions.f
  File initatom.f now depends on dimensions in atom.h
matel.f : 
  Deleted arguments lmaxs, lmxkbs, maxls and nzls in subroutine matel0.
  The information is now provided by functions lomaxfis, lmxkbfis and nztfl.
mulliken.f : 
  Added arguments isa, iphorb and iaorb. Changes in the ouput
  format for the population analisys: Now a label with the
  symmetry of each orbital is also printed.
naefs.f: 
  Argument izs removed, information now provided by izofis function
ordern.f: 
  lmax, lmaxs and nzls erased from the input
outcoor.f:  
  Argument atm_label removed, information now provided by
phiatm.f : 
  Deleted (now included in atom_functions.f)
rcore.f :  
  Deleted (now included in atom_functions.f)
rcut.f  :  
  Deleted (now included in atom_functions.f)
redata.f :  
  Several arguments have been removed from the call to this routine.
  All the information about atomic orbitals, pseudopotentials and atomic
  masses is now read by subroutine redbasis called by subroutine initatom. 
  Default masses for floating Bessel functions set to 1.0d30 a.u.
  Dynamics type is always set to 'cg' if the system contains just one atom.
redbasis.f: 
  NEW. Reads the information about atomic orbitals, pseudopotentials and atomic
  masses. Called by subroutine initatom.
redbasis_subs.f: 
  NEW. This file include nine routines used by redbasis to read the input (fdf)
  file in several possible formats.
siesta.f : 
  Several arrays containing information about the chemical
  species and the basis set have been removed. Calls
  of routines redata, initatom, matel0,naefs, dnaefs, ordern,
  and outcoor have also been modified.
Include/atom.h:
  Type declaration for the parameters included in the file. Parameter
  ntbmax increased to 500.
Include/siesta.h : 
  Parameters maxl, maxos, maxs, maxzet have been suppressed.
Examples/H2O/Out : Updated outputs 
Examples/H2O/OrderN/Out : Updated outputs 
Examples/Si64/Out : Updated outputs
Docs/siesta.tex  : Updated basis set description
========================================================================
Version: 0.10.10 
Date: 1998/08/28  19:00:00
Title: Efficient k-sampling implementation
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  The need to use very large supercells, in order to do k-sampling,
  has been eliminated, making k-sampling efficient. Other canges are:
  - BUG corrected in dhscf => now finds more adjusted cutoffs.
  - Now k-sampling and bands are compatible with non-collinear spin
  - Suppressed automatic k-sampling when using SuperCell
  - Auxiliary arrays now shared by diagon and bands
  - Optimized matrix multiplication algorithm in diagon
  - Added LAPACK complex diagonalization routine for osfdxml systems
  - neighb initialized before each use
  - Suppressed writting the density matrix in denmat
  - Avoid decreasing array dimensions in ranger
  - Array xijo now dimensioned only when necessary

Files:
  Makefile  : Added routines diagg, diagk, diag2g, diag2k, digcel,
                             redcel, superc, and superx
              Suppressed routine diagnc
  atomlwf.f : Initialization of neighb done always
  bands.f   : Calls diagk and diag2k
              Auxiliary space shared with diagon trough common block
  denmat.f  : Suppressed writting the density matrix
  dfscf.f   : Added argument indxuo to add forces to atom in unit cell
  dhscf.f   : Calculate things only in the unit cell (many changes)
              Corrected a BUG to find the mesh cutoff for nonothorhombic cells
  dynamics.f: Corrected the name of the routines in error message
  diagnc.f  : SUPRESSED (now diag2g)
  diagg.f   : NEW. Diagonalization for gamma only
  diagk.f   : NEW. Diagonalization with k sampling
              Optimized matrix multiplication algorithm
  diag2g.f  : NEW. Same as diagg for non-collinear spin
  diag2k.f  : NEW. Same as diagk for non-collinear spin
  diagon.f  : Calls diagg, diagk, diag2g and diag2k to do the work
              Auxiliary space shared with bands trough common block
  diagon.h  : Suppressed maxspn. Added maxhs and maxpsi
  digcel.f  : NEW. Finds diagonal unit cell and supercell combination
  dnaefs.f  : Distiction of unit cell and supercell. neighb initialized
  grdsam.f  : Call to dhscf
  hsparse.f : Slight comment corrections (code not changed)
  initatom.f: Suppress repeated arguments
  iohs.f    : Array xij not written when only gamma point is used
  kgrid.f   : Suppressed automatic k-sampling for SuperCell use
  kinefsm.f : Distiction of unit cell and supercell. neighb initialized
  listsc.f  : NEW. Expands neighbour lists from unit cell to supercell
  naefs.f   : Distiction of unit cell and supercell. neighb initialized
  nlefsm.f  : Distiction of unit cell and supercell. neighb initialized
  overfsm.f : Distiction of unit cell and supercell. neighb initialized
  ranger.f  : Avoid decreasing array dimensions
  recoor.f  : Expand coordinates to supercell
  redata.f  : Supercell atomic coord. now done by new supcel routine
              Specified SuperCell now becomes operative unit cell
  redcel.f  : NEW. Reads the unit-cell/supercell vectors
  rhooda.f  : Added argument indxuo to work only within unit cell
  rhoofd.f  : Added argument indxuo to work only within unit cell
  siesta.f  : Calculate things only in the unit cell (many changes)
  siesta.h  : Suppressed parameter maxkba
              Added parameter maxxij to dimension array xijo
              Name of parameter dimaux changed to maxpul
  superc.f  : NEW. Finds the required supercell and expands arrays to it.
  superx.f  : NEW. Expands coordinates from unit cell to supercell.
  version.h : New version 0.10.10
  vmat.f    : Added argument indxuo to work only within unit cell
  vmb.f     : Return if nat=1
  xijorb.f  : Name of argument 'cell' changed to 'scell'.
  Include/siesta.h : Suppressed parameter maxkba
  Include/diagon.h : Suppressed maxspn. Added maxhs and maxpsi
  Sys/bsd.f     : cdiag added to system-dependent routines
  Sys/cray.f    : cdiag added to system-dependent routines
  Sys/general.f : cdiag added to system-dependent routines
  Sys/ibm.f     : cdiag added to system-dependent routines
  Sys/ibmessl.f : cdiag added to system-dependent routines
  Sys/osf.f     : cdiag added to system-dependent routines
  Sys/osfdxml.f : New version of cdiag to use LAPACK routine zhegv
  Sys/sgi.f     : cdiag added to system-dependent routines
  Docs/siesta.tex     : Updated k-sampling instructions
  Docs/siesta/CHANGES
  Examples/H2O/Out/*  : Updated outputs
  Examples/Si64/Out/* : Updated outputs
========================================================================
Version: 0.10.9 
Date: 1998/07/14  11:30:00
Title: Increased tolerance in shaper routine
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  In some cases, the system shape was incorrectly reported as bulk
  because the tolerance in routine linvec (1.e-10) was too small.

Files:
  shaper.f : Tolerance in routine linvec increased to 1.e-6
========================================================================
Version: 0.10.8 
Date: 1998/07/13  16:15:00
Title: Corrected calculation of local density of states
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  After previous change, LDOS was incorrectly calculated, because the
  hamiltonian was reinitialized but the dhscf part was not included
  before calling diagon to find the LDOS density matrix.

Files:
  siesta.f : Eliminate the reinitialization of H
========================================================================
Version: 0.10.7
Date: 1998/06/26  17:30:00
Title: Grid-cell sampling for accelerated grid convergence
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  Sampling displacements of the system with respect to the grid
  across the grid cell is used to symmetrize energies, forces, stresses
  and dipoles. It allows a better convergence with grid cutoff by
  reducing the egg-box effect. The displacements are introduced 
  within the block GridCellSampling (see the manual)

Files:
  grdsam.f : new subroutine doing the sampling at the end of an SCF cycle
  siesta.f
  dhscf.f  : sampling is done by calling dhscf for each displacement
  Makefile
  siesta.tex
========================================================================
Version: 0.10.6  and  0.9.2
Date: 1998/06/22  21:45:00
Title: Corrected MAXL dimension in ylmexp. (SEVERE BUG for L>2)
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Due to an insuficient dimension, the overlap was incorrect for L>2,
  including the f Kleinman-Bylander operators.

Files:
  ylmexp.f : maxLM = maxL**2 changed to (maxL+1)**2
  ylmylm.f : Same correction
========================================================================
Version: 0.10.5
Date: 1998/06/22  21:45:00
Title: Corrected supercell hamiltonian symmetrization
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  The condition if (ncells .lt. 1) was incorrect, because ncells must
  be at least one. As a consecuence, no supercell symmetrization was
  done. Now it has been corrected to if (ncells .gt. 1)

Files:
  diagon.f : if (ncells .lt. 1) changed to if (ncells .gt. 1)
  Examples/Si64/Out/si64.out    : Updated output
  Examples/Si64/Out/out.fdf     : Updated output
  Examples/Si64/Out/siesta.size : Updated output
========================================================================
Version: 0.10.4
Title: Remove unused subroutine ylmr
Author: Jose M. Soler (jose.soler@uam.es)

Files:
  atom_subs.f : Subroutine ylmr removed
=======================================================================
Version: 0.10.3
Date: 1998/06/22  21:45:00
Title: No mixing in last iteration and when wmix=0
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  An unexpected behavior occurred when only one iteration was done,
  because in the first iteration, the whole new density matrix is
  taken, irrespective of the mixing weight (this is because the first
  density matrix is not idenpotent). Now, the mixing subroutines are 
  not called in the last iteration, even if it is also the first one.

Files:
  siesta.f : Conditions to call mixing and pulayx
========================================================================
Version: 0.10.2
Date: 1998/06/22  21:45:00
Title: Added non-collinear spin
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  In the non-collinear-spin density functional, spinor wavefunctions
  and 2x2 spin density matrices allow the spin to change direction
  at every point. Ref: T. Oda et al, PRL 80, 3622 (1998).
  Non-collinear-spin density matrix has 4 components (nspin=4).
  No k-sampling allowed in this version for non-collinear-spin.

Files:
  bands.f    : Return if nspin=4
  dfscf.f    : Free-atom and SCF contributions separated and initialized
  dhscf.f    : Handle the nspin=4 case
  diagnc.f   : (New) Eigenvalue problem in spinor space (doubled)
  diagnc.h   : (New) Dimension parameters for diagnc
  initdm.f   : Initialize the non-collinear-spin density matrix
  mulliken.f : Handle the nspin=4 case
  redata.f   : Read the NonCollinearSpin fdf label
  rdiag.f    : Word ERROR added in error message
  siesta.f   : Handle the nspin=4 case. Call diagnc
  xc.f       : Diagonalize the spin density matrix in routine ldaxc
  Makefile   : Add diagnc
  siesta.tex : Add NonCollinearSpin and modify DM.InitSpin options
========================================================================
Version: 0.10.1  and  0.9.1
Date: 1998/05/18  13:21:16
Title: msiesta not to find .h files in subdirectories
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:
  An unexpected behavior of msiesta was that it could find (and use
  to replace) .h files in subdirectories of the working directory.
  This was due to the use of 'find' by msiesta, now supressed.

Files:
  Util/msiesta : use of find supressed.
========================================================================
Version: 0.10.0 <=> 0.9.0 <=> 0.8.53
========================================================================
Version: 0.8.53
Date: 1998/05/5  21:30:00
Title: Revising script files + comment on them in the manual
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  Script files qsiesta and qrrsiesta allow running in the absence of other
  scripts from the working directory.

  msiesta copies Include/ordern.h and Include/diagon.h in working directory
  if init.

  Manual has a comment on the convenience of "touch" *.h in a working
  directory if recompiling after some time (after other systems have been
  compiled.

Files:
  qsiesta, qrrsiesta, msiesta
  siesta.tex
========================================================================
Version: 0.8.52
Date: 1998/05/4  20:25:00
Title: Printing Qtot before DM normalization in O(N) solution
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  Write Qtot before and after the DM renormalization, in O(N) calculations.
  This is usefull to bracket the value of eta.

Files:
  ordern.f       : Change the format of the printout of qtot
  denmat.f       : Write qtot before normalization
========================================================================
Version: 0.8.51 
Date: 1998/05/3  22:30:00
Title: Removing unused variables + adding parenthesis: Avoiding warnings
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  From the compilation of SIESTA 0.8.50 with g77 -Wall (linux), warnings
  concerning unused variables and ambiguous math expressions have been
  used for their correction. Unused variables have been removed and 
  parenthesis have been added to math expressions.

Files: (and variables removed)
  Sys/cray.f    : times (in cputim.f)
  Sys/ibm.f     : times (in cputim.f)
  Sys/ibmessl.f : i, j, np (in poison.f)
  Sys/osfdxml.f : i, j, np (in poison.f)
  atom.f        : loctype, namaux
  atom_subs.f   :
  bands.f       : ie
  bessph.f      :
  cdiag.f       :
  constr.f      : fz
  cputim.f      : times
  denmat.f      : iunit
  dhscf.f       : epsxc, qatm, qscf, ro, wspin
  diagon.f      : found
  efield.f      :
  fermid.f      :
  four1.f       :
  gradient.f    :
  hsparse.f     : kno, jno, ina
  idiag.f       :
  initatom.f    : il
  initdm.f      : fname
  iorho.f       : sname
  kgrid.f       :
  nlefsm.f      : kna
  ordvec.f      : jv 
  outcoor.f     : i, iunit, title
  overfsm.f     :
  poison.f      :
  prmem.f       : namety
  psover.f      : is
  radfft.f      :
  ranger.f      : drm, dxm, iv, ivx, nxlast, volmin
  rdiag.f       :
  redata.f      : alat_defect, smassr, iscale, flc
  reord.f       : iaux, j1, j2, j3
  rlylm.f       :
  siesta.f      : overflowna, pi
  splin.f       :
  vmat.f        : p0
  xc.f          : 
  xijorb.f      : kno, jno, ina
========================================================================
Version: 0.8.50 (continued, no code change but cosmetics)
Date: 1998/04/29  20:45:00
Title: Output cosmetics + adding E_KS output for each SCF loop end.
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  Surface reflectivity and different light sources have been introduced.
  The illumination data may be specified in light.dat file.

Files:
  siesta.f  (E_KS writing + cosmetics)
  ordern.f  (output cosmetics)
  chkdim.f  (")
  cgwf.f    (")
  siesta.tex (Alberto added to front page of manual)
========================================================================
Version: 0.8.50
Date: 1998/04/15  16:00:00
Title: Variable illumination in plrho
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Surface reflectivity and different light sources have been introduced.
  The illumination data may be specified in light.dat file.

Files (all in siesta/Util/Plrho):
  ray.f     : New function, which returns a pixel light intensity (ray)
  pltr3d.f  : Call to ray
  plrho.f   : Added include 'ray.f' statement
  light.dat : New. Example of illumination data file
  plrho_guide.txt : Documentation of these changes
========================================================================
Version: 0.8.50
Date: 1998/04/15  16:00:00
Title: Printed Fermi energy
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Fermi energy re-printed after the eigenvalues

Files:
  siesta.f : Added a write line.
========================================================================
Version: 0.8.49
Date: 1998/04/14 21:40:00
Title: Reading atomic masses + cosmetics + fix bugs (linux.make, outcell)
Author: Emilio Artacho (Emilio.Artacho@uam.es)

Description:
  Atomic masses can be now read through an fdf block: AtomicMass.
  The species not included in the block assume standard value for the
  species. If block not present, standard values for all (as before).
   
  linux.make lacked RANLIB definition. Fixed.

  outcell.f wrote cell volume in wrong units. Fixed.

  Cosmetics: initatom does not write poems any more. And others.

Files:
   remass.f : new for mass reading
   redata.f : calls it plus cosmetics
   Makefile
   outcell.f: bug fixed
   initatom.f
   atom.f
   prversion.f
   siesta.tex
========================================================================
Version: 0.8.48
Date: 1998/04/04 17:15:00
Title: Temperature in output
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:

The temperature is writen on output for any MD flavour.
(Error corrected in if statement)

Files:
   siesta.f
========================================================================
Version: 0.8.48
Date: 1998/04/04 17:15:00
Title: Optimized memory for Order-N routines
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:

Redefined the dimension of several matrices in the Order-N routines,
which were oversized. The result is a reduction in executable size
for Order-N calculations. The reduction is related to the maxnhf 
parameter.

Files:
   denmat.f:   eliminate nhfmax parameter. sustitute by nfmax 
               in chcc and cscc matrices definitions
   egandd.f:   substitute maxnhf by maxnf in definition of f and fs
   gradient.f: eliminate nhfmax parameter. sustitute by nfmax 
               in f and fs matrices definitions
========================================================================
Version: 0.8.47
Date: 1998/03/25 13:00:00
Title: New Util scripts. Makefile extensions
Author: Alberto Garcia <wdpgaara@lg.ehu.es>

Description:

The scripts in Util have been rewritten using Bourne shell constructs. Only
minor changes in their functionality have been introduced (mostly more
robust warnings).

Added support for Cray and SGI machines. For the latter, a default
binary architecture -mips4 is assumed. Added a $(COMMENTS) symbol
to sgi.make (echoed in Makefile) to warn the user.

Files:
Directory Util: prdate, msiesta, rsiesta, rrsiesta, qsiesta, qrrsiesta
Directory Src/Sys: cray.f, cray.make, sgi.f, sgi.make: new files.
Directory Src: Makefile: Made 'nodebug' compilation the default.
                         Corrected outcoor entry. Echoed $(COMMENTS).
========================================================================
Version: 0.8.46
Date: 1998/03/18 13:45:00
Title: Suppressed an incorrect call to matel0
Author: Jose M. Soler (jose.soler@uam.es)

Description:
 Suppressed an extra call to matel0, which was inadvertently left in 
 siesta.f in last version.
 Variables I1=1 and I2=2 introduced in matel to avoid a compilation
 message with the -C option (array bounds check) 

Files:
 siesta.f
 matel.f
========================================================================
Version: 0.8.45
Date: 1998/03/16 16:32:00
Title:  Commentaries changed.  
Author: Daniel Sanchez-Portal (daniel@polar.fmc.uam.es)

Subroutine initatom.f :
 Arrays rcls, contrf, lmaxs, lmxkbs, nzls 
 have to be considered as belonging to the output rather than to the 
 input of the routine. The commentary on the begining of the routine
 has been changed in that sense.
Subroutine atom.f :
 The same as initatom.f 

Subroutine r_vs_e and polarization:
 Some lines have been commented to avoid the 'uncontroled' ouput 
 that appered when the programme was run in some machines.

Files:
  initatom.f : Updated header commentaries
      atom.f : Updated header commentaries
 atom_subs.f : Some lines commented in routines r_vs_e and polarization
========================================================================
Version: 0.8.44
Date: 1998/03/13 13:30:00
Title: Optimized diagonalization
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Some loops for the generation of the density matrix from the 
  eigenvectors were interchanged, to improve memory access.
  New versions for rdiag and cdiag, using lapack routine dsygv
  of the DEC dxml library. 
  These changes reduce CPU time by more than 50% in many cases.

Files:
  diagon.f      : Exchanged some loops
  Sys/*.f       : Added include '../rdiag.f' sentence
  Sys/osfdxml.f : Added new rdiag version, calling a lapack routine
  Makefile      : Supressed rdiag
  Examples/H2O/Out/*    : Updated outputs
  Examples/H2O/OrderN/* : Updated outputs
  Examples/Si64/Out/*   : Updated outputs
========================================================================
Version: 0.8.44
Date: 1998/03/13 13:30:00
Title: Reorganized system-dependent versions
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  In order to handle more easly the system-dependent versions, the
  'general' (source code) versions are kept in the Src directory.
  The files Src/Sys/*.f, containing the system-dependent versions,
  now contain sentences like include '../poison.f', when necessary.

Files:
  Src/poison.f : (new) General version
  Src/cputim.f : (new) General version
  Src/Sys/*.f  : explicit source code of general versions substituted
                 by sentences like include '../poison.f'
========================================================================
Version: 0.8.44
Date: 1998/03/13 13:30:00
Title: Creation of matel.h
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Although the sizes of the arrays in routine matel are independent of
  system size, and neglegible for large systems, they were dimensioned
  for the largest systems (5 species with spd DZP) and they took most 
  of the memory for small systems. A new file matel.h, written by a
  new matel0 entry point in matel.f, was introduced to solve this,
  using the run-compile loop method.

Files:
  Include/matel.h : (new) basic dimension parameters for matel
  matel.h  : same as Include/matel.h
  matel.f  : new matel0 entry point
  siesta.f : call to matel0
========================================================================
Version: 0.8.44
Date: 1998/03/13 13:30:00
Title: Corrected decomposition of final energies
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  A missing term -Uatm in the ion-electron interaction energy, printed
  in the 'Final energy' output was added.
  Ecorrec was changed to eta*DQ (only the printed name).
  Ekinion was included in the final energy decomposition.
  
Files:
  siesta.f
========================================================================
Version: 0.8.43
Date: 1998/03/10 11:30:00
Title: Changed tolerace in routine livec
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Changed tolerace to 1.d-10 in routine livec, called by shaper,
  in order to solve a problem found by Pablo for a slab.
  
Files:
  shaper.f  : Parameter TOL of LIVEC changed to 1.D-10
========================================================================
Version: 0.8.42
Date: 1998/02/23 12:05:03
Title: Implemented Version string management
Author: Jose M. Soler (jose.soler@uam.es), 
        Alberto Garcia (wdpgaara@lg.ehu.es)

Description:
  The version of the code in use is written in version.h, and is
  printed in every siesta run. That version number is consistent
  with the one appearing on the manual front page, as well as the
  corresponding date. 
    Odd version numbers (like 0.9) are distribution releases, 
  with possible bug fixes: 0.9 fix 3.
    Even version numbers (like 0.10) are development versions, 
  which include new implementacions as patches: 0.10 pl 5
  (pl: patch level).

Files:
  version.h   : has version number stored within
  prversion.f : prints version
  siesta.f    : calling version files
  Makefile    : version file dependencies
========================================================================
Version: 0.8.41
Date: 1998/02/20 19:31:22
Title: Examples directory restructured
Author: Jose M. Soler (jose.soler@uam.es), 

Description:
  Two exmaples now: H2O and Si64. Both diagonalizing. 

Files: (within siesta/Examples/)
   Vps/        (pseudopotentials)
      README
      H.inp     
      O.inp
      Si.inp
      H.vps
      O.vps
      Si.vps
   H2O/
      h2o.fdf
      Out/
         h2o.out
         out.fdf
         siesta.size
   Si64/
      si64.fdf
      Out/
         si64.out
         out.fdf
         siesta.size
========================================================================
Version: 0.8.40
Date: 1998/02/20 14:37:00
Title: FIX: CG order-N minimization parameters
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
Changed minimization parameters to solve convergence problem
in order-N solution of H2O.

Files: 
  cgwf.f
========================================================================
Version: 0.8.39
Date: 1998/02/19 18:31:38
Title: Moving the executable in utility *siesta scripts 
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  The utility files for automatized running of siesta (msiesta, rsiesta,
  and qsiesta) have been slightly modified: the executable code siesta
  is moved to the working directory, so that different systems can run
  simultaneously without interfering, as long as the working directories
  are different.
  Simultaneous compilation is not advised.

  qrrsiesta has been added: it does recurrent run-recompile in batch
  queues (both this one and qsiesta are prepared for NQS batch system,
  available at least for DEC systems)

Files: (in Util/)
  rsiesta 
  msiesta
  qsiesta
  qrrsiesta : (new) equivalent to rrsiesta for NQS batch system
========================================================================
Version: 0.8.38
Date: 1998/02/19 17:02:22
Title: Printing of hostname and date/time transferred to script
Author: Jose M. Soler (jose.soler@uam.es),

Description:
  Date, time and hostname are printed in the output file at the
  beginning and the end of a siesta run. The prdate subroutine used
  to do it using system calls which demanded large amounts of extra
  memory. Now, that function has been transferred to a script (prdate)
  which is called by the rsiesta script. The original subroutine has
  been kept empty.

Files:
  prdate (in Util/) (new)
  rsiesta (in Util/)
  prdate.f : now empty, it does nothing, kept for possible future.
========================================================================
Version: 0.8.37
Date: 1998/02/19 17:02:22
Title: Dipole moment, now also calculated for chains and slabs
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Related to ExternalElectricField. Possibility of calculating 
dipole moment for chains and slabs, not only for molecules, as
long as it is normal to the direction(s) of repetition.

Files:
  dhscf.f
  dipole.f : (sign of dipole moment corrected)
========================================================================
Version: 0.8.36
Date: 1998/02/19 17:02:22
Title: Implemented constraints for dynamics/relaxations
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Fixes constraints to the change of atomic coordinates during
  geometry relaxation or molecular dynamics, usinf FDF data block
  GeometryConstraints. Allowed constraints are:
   -cellside: fixes the unit-cell side lengths to
              their initial values (not implemented yet).
   -cellangle: fixes the unit-cell angles to
               their initial values (not implemented yet).
   -position: fixes the positions of the specified atoms to
               their initial values.
   -center: fixes the center (mean position, not center of mass) of a 
            group of atoms to its initial value (not implemented yet).
   -rigid: fixes the relative positions of a group of atoms, without 
           restricting their displacement or rotation as a rigit unit
           (not implemented yet).
   -routine: Additionally, the user may write a problem-specific routine 
             called constr, which inputs the atomic forces and stress 
             tensor and outputs them orthogonalized to the constraints. 
  Example:
     %block GeometryConstraints
        cellside   c
        cellangle  alpha  beta  gamma
        position  from -1 to -10
        rigid  1  2
        center 1  2   0.0  0.0  1.0
        routine constr
     %endblock GeometryConstraints

Files:
  constr.f   : (new) User-written subroutine for constr-definition
               (also in Src/Include/ for hanling like .h files)
  fixed.f    : (new) Relaxation and dynamics with constrined forces
  siesta.f   : Calls fixed
  Makefile   : Added fixed.f and constr.f
  siesta.tex : Documented
========================================================================
Version: 0.8.35
Date: 1998/02/19 17:02:22
Title: Implemented ExternalElectricField
Author: Jose M. Soler (jose.soler@uam.es)

Description: 
  An external electric field can be applied to molecules,
  chains and slabs, using an FDF data block. Example:
      %block ExternalElectricField
        0.000  0.000  0.100  V/Ang
      %endblock ExternalElectricField
  The field must be perpendicular to bulk directions 
  (like those parallel to a slab), or otherwise siesta will
  automatically orthogonalize it (and print a warning).
  The field is applied using the real space grid of dhscf.
  The discontinuity of the potential is automatically 
  placed in the vacuum region, between repeated 
  molecules/chains/slabs.

Files:
  cross.f  : (new) Vector poduct (used by efield)
  dhscf.f  : Calls to efield and shaper
  efield.f : (new) External electric field implementation
  fdf.f    : Added electric field units
  Makefile : Added cross.f and efield.f
  siesta.f : Call to shaper
  shaper.f : New argument to return the bulk directions
  siesta.tex : ExternalElectricField documented
========================================================================
Version: 0.8.34
Date: 1998/02/19 17:02:22
Title: Calculate XC potential only where there is density
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Up to this point the XC potential was calculated for the whole grid.
  Now it is calculated only for those points for which there is a finite
  electronic density.

Files:
  xc.f
========================================================================
Version: 0.8.33
Date: 1998/02/17 16:31:04
Title: FIX: divided-by-zero problem in MD T=0. Miscellanea.
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  Small modifications to correct problems with initial temperature 
  for MD (when T=0). Additionally:
  - Parameter namax added to coceri.f and outcoor.f
  - Small modifications of extrapolation procedure between
    succesive minimizations in orderN (make linear extrapolation
    ONLY when last minimization took less than 50 iterations)
  - Redefine parameter restart (from 50 to 300) in cgwf.f

Files:
  vmb.f    : T=0 problem fixed
  siesta.f : id.
  outcoor.f: parameter namax added
  coceri.f : id.
  ordern.f : extrapolation
  cgwf.f   : restart parameter
========================================================================
Version: 0.8.32
Date: 1998/02/17 16:31:04
Title: Velocities in XV for all dynamics options 
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  The velocities are now written in file .XV . Before they were all
  zero except for the Verlet option. It allows their use on restart.

Files:
  dynamics.f
========================================================================
Version: 0.8.31
Date: 1998/02/11 19:07:00
Title: FIX: Non-standard FORTRAN in Emilio's 0.8.37 and 0.8.39 patches
Author: Alberto Garcia (wdpgaara@lg.ehu.es)

Description:
  Data statement out of order in redata.f, initdm.f, and recoor.f
  Adjustable array illegal in f77 in outcoor.f and coceri.f

Files:
  outcoor.f
  coceri.f
  initdm.f
  recoor.f
  redata.f
========================================================================
Version: 0.8.30
Date: 1997/12/31 12:46:41
Title: Non conventional order in p and d orbitals (Mulliken)
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  Noted that the order how the p and d orbitals are stored, and 
  appear in places like Mulliken output, is not conventional. It was
  no bug, it was supposed to be so, but it was not clear. It has been
  made clear now in the manual, in the WriteMullikenPop explanation,
  among other instances. The order is: y, z, x for the p's, and
  xy, yz, z^2, xz and x^2-y^2, for the d's.

Files:
  siesta.tex (in Docs/) : documented.
========================================================================
Version: 0.8.29
Date: 1997/12/27 12:31:09
Title: Initial spin-polarization input for spin-polarized calculations
Author: Emilio Artacho (emilio.artacho@uam.es) 

Description:
  Modification in DM initialization:
  - Now it is done in new separate subroutine  initdm.f
  - It allows the introduction of initial spin polarizations
    atom by atom with new %block DM.InitSpin: there is one line per 
    atom to be spin-polarized, containing the atom index and the desired
    initial spin-polarization. Example:
             %block DM.InitSpin
                5  -1.
                3   +
                7   -
                +   1
               -.5  2
             %endblock DM.InitSpin

Files:
  initdm.f : (new) DM initialization, including spin if required.
  siesta.f : calling initdm.f
  Makefile : include reference to initdm.f
  siesta.tex : documentation on DM.InitSpin block
  minvec.f : spelling (no effect of code)
  idiag.f  : id.
========================================================================
Version: 0.8.28
Date: 1997/12/23 19:58:24
Title: Storage of density matrices for Pulay convergence acceleration
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  Pulay mixing routines have been modified.  
  * An option is included to store the intermediate information
    in files or in memory. The fdf variable is DM.PulayOnFile.
    If true, SIESTA will use files SystemLabel.P1 and SystemLabel.P2
    to store the intermediate information. If false, it will 
    be stored in auxiliary arrays in memory. 
  * The I/O from disk has been optimized, to decreasse the size
    of the Pulay files and also the number of I/O operations
  * IMPORTANT: A new parameter has been included in siesta.h !!!!
    This is necessary to open space for the Pulay auxiliary
    storage arrays.  This means that old siesta.h files will NOT
    work with the new version, unless the new variable is defined.

Files:
  pulayx.f
  redata.f
  siesta.f
  siesta.h
  siesta.tex
========================================================================
Version: 0.8.27
Date: 1997/12/23 19:58:24
Title: Initial temperature for molecular dynamics
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  A new MD feature has been implemented: the possibility of
  specifying an initial temperature for the MD sumulation.
  The fdf variable is MD.InitialTemperature.
  The atomic velocities are randomly assigned according to the
  Maxwell-Boltzmann distribution (imposing the constraint of
  zero center of mass velocity). 

Files:
  vmb.f   : (new)
  redata.f
  siesta.f
  Makefile : include vmb.f
  siesta.tex
========================================================================
Version: 0.8.26
Date: 1997/12/23 19:58:24
Title: Renormalize the charge for ordern
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  The density matrix routine for O(N) has been slightly modified,
  to renormalize the DM so that the total charge is the correct
  one. This is quite necessary to achieve selfconsistency with
  the O(N) functional, although is not well justified (in principle
  is not variational!!).

Files:
  egandd.f: Small modifications to renormalize the charge
  denmat.f: Modified to renormalize the density matrix
========================================================================
Version: 0.8.25
Date: 1997/12/23 19:58:24
Title: FIX: Corrected scale of the time step
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  An IMPORTANT error in the dynamics routines has been corrected.
  The routines had a unit conversion error that affected the 
  scale of the time step (the dynamics were correct,
  but the time units were scaled).

Files:
  dynamics.f: Corrects serious error of units in foverm variable
========================================================================
Version: 0.8.24
Date: 1997/12/22 20:49:04
Title: Input/Output: Coordinates, Lattice Parameters, Pseudopotentials,
       Maximum and Mean Forces, Splitgauss
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  * Coordinates input has been separated to new subroutine (recoor)
    that hangs from redata.
  * Output of cell vectors and parameters separated into new routine
    (outcell) (only for intermediate and final writing in case of
    lattice relaxation or MD Parrinello-Rahman)
  * More flexible output of coordinates (both intermediate and final):
    - It can write in any of the formats that can be used for input
      (except ScaledCartesian if there was no lattice parameter in input)
    - Output format specified in new fdf: AtomCoorFormatOut.
      Default (if not given): uses same as for input
      (AtomicCoordinatesFormat)
      For both fdf's the value 'Fractional' can be used instead of
      'ScaledByLatticeVectors'
    New subroutine (outcoor)
  * Optional writing of atomic coordinates in separate files with
    adequate formats for being read by:
    - XMOL (symbol and x y z in Ang)               WriteCoorXmol   true
    - CERIUS (cell pars, sym, x y z in fractional) WriteCoorCerius true
    New subroutines (coxmol, coceri)
  * Writes maximum force and residual mean square force 
    after total force
  * Writes atomic coordinates as x, y, z, is, Symbol, number. It can
    be taken to the fdf input file as is.
  * New possibility of introducing lattice vectors:
        %block LatticeParameters
           a  b  c  alpha  beta  gamma
        %endblock LatticeParameters
    It checks whether both blocks (LatticeParameters and LatticeVectors)
    are present, and stops with ERROR if it is the case. Otherwise
    it generates the vectors according to whatever is present or
    automatically if none.
  * redata now writes the vectors in rows (instead of columns as before) 
    and without the 'redata: ' so that they can be incorporated
    as written to the input.
  * Pseudopotentials will be read from 'syslabel'.vps instead of .psatom.data. 
    For backwards compatibility, if .vps is not found, then .psatom.data 
    is looked for. In this case a warning is given.
  * Making Siesta write a message saying when it reads XV
  * Scale factor for splitgauss is now a scale factor and not the alpha
    in exp(-alpha*r**2). Scale factor is 1/sqrt(alpha)
  * Parrinello-Rahman MD (with or w/o quench) now writes stress tensor and
    lattice parameters for every time step
  * Mulliken: formatted output (pure cosmetics)

Files:
  recoor.f : (new) reads coordinates
  outcell.f: (new) writes cell vectors
  outcoor.f: (new) writes coordinates
  coxmol.f : (new) writes coordinates in XMol format in a separate file
  coceri.f : (new) writes coordinates in CERIUS format in a separate file
  ioxv.f   : writes message
  mulliken.f : Cosmetics
  redata.f : calling
  siesta.f : calling 
  atom.f   : reading .vps + scale factor for splitgauss.
  Makefile
  siesta.tex
========================================================================
Version: 0.8.23
Date: 1997/12/11 17:42:24
Title: Added check for excesive proximity between atoms
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  The program warns about atoms being closer than a specific distance:
  one Bohr by default, which can be modified by 
    WarningMinimumAtomicDistance
  Helpful to avoid the frequent errors in coordinate input, which,
  when atoms are extremely close originates an overlap matrix error.

Files:
  siesta.f
  siesta.tex
========================================================================
Version: 0.8.22
Date: 1997/12/11 17:42:24
Title: Plotting charge density, LDOS(x,y,z), Potentials
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Plotting SIESTA's outputs in real space. All plots are done in
  two steps:
   * Running SIESTA with an option for it to write a file with the
     information to be plotted:
      - SaveRho                    : logical: valence charge density 
                                     (pseudocore)
      - SaveElectrostaticPotential : logical: Pseudopots + Hartree
      - SaveTotalPotential         : logical: id + XC
      - LocalDensityOfStates       : data block: charge density 
                                     associated to an energy range 
                                     specified in the block:
                                        %block LocalDensityOfStates
                                           -3.50  0.00   eV
                                        %endblock LocalDensityOfStates
     These informations are stored in corresponding files (.RHO, .VH,
     .VT, .LDOS, respectively). It is stored: information about the
     real-space grid (defined by the cutoff => fineness of plot depends
     on cutoff!!) and values of the specific funtion at the grid points.
   * Generating a plot for X11 and/or Postscript, etc.
     This is done with the utility plrho program now at Util/Plrho.
     It requires the presence in the computer of the graphic library
     PGPLOT, set of FORTRAN subroutines to plot on different devices.
     It is public domain and not difficult to install.
       Plrho plots isosurfaces (surfaces of constant value of the
     particular function, like traditional plots of orbitals) in 3D
     using perspective and shading. It allows plotting two functions
     at the same time: First function (say Rho) as isosurface, and 
     the value of the second function (say electrostatic potential)
     is plotted on the Rho isosurface with a color coding (similar 
     to GRASP for biopolymers).

Files:
  iorho.f
  siesta.f
  dhscf.f
  siesta.tex
  Util/README
  Util/Plrho/ new directory wi th new files:
    plrho.f, plrho.h, paste.f, plsurf.f, rotate.f, icolor.f, pltr3d.f, 
    plrho_guide.txt, plrho.dat, and README
========================================================================
Version: 0.8.21
Date: 1997/11/5 10:59:49
Title: FIX: Correcting input/output for coordinates and velocities .XV
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  (1) Corrected output unit for writing coordinates and velocities
      Fri Oct 24 18:16:00 1997
  (2) An incorrect 'write(iu,*) na' changed to read
      Wed Nov  5 10:59:49 1997

Files:
  ioxv.f
========================================================================
Version: 0.8.20
Date: 1997/10/24 18:16:00
Title: Shift all atomic coordinates by shifting the origins
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Vector specifying a rigid shift to apply to the atomic coordinates,
  given in the same format and units as these. Notice that the atomic
  positions (shifted or not) need not be within the cell formed by
  LatticeVectors, since periodic boundary conditions are always
  assumed. 
    %block AtomicCoordinatesFormat
        1.000   3.000   2.000
    %endblock AtomicCoordinatesFormat

Files:
  redata.f
  siesta.tex
========================================================================
Version: 0.8.19
Date: 1997/10/22 10:12:06
Title: FIX: Added a tolerance in vector-length comparisons in minvec.f
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Some systems entered an infinite loop in the first call to DHSCF
  (building grid etc) due to a strict comparison of two vectors in
  minvec.f. Added a tolerance, problem solved. (It used to happen 
  in a Linux system at least).

Files:
  minvec.f
========================================================================
Version: 0.8.18
Date: 1997/10/16 18:14:16
Title: Off-site orbitals: fixes and changes for new basis handling
Author: Daniel Sanchez-Portal (daniel@polar.fmc.uam.es)

Description:
  Off-site orbitals: to use them new species has to be defined, and
  each orbital center has to be regarded as an 'atom' of that 'species'
  and coordinates have to be assigned to it. Two kinds
   * Orbitals that would correspond to some atom, but the atom is not 
     there. The species is to be given the corresponding atomic number
     with negative sign. Siesta will put the orbitals of that atom
     in the given ccordinates but without pseudopotentail and without
     its electrons. Useful for calculating the basis-set superposition
     error (BSSE).
   * Bessel functions. Corresponding node at r_c. EnergyShift has no
     meaning here. The r_c has to be gicen in the PAO_basis_and_PS_lmax
     block.

Files:
  redata.f
  atom_subs.f
  atom.f 
========================================================================
Version: 0.8.17
Date: 1997/10/15 18:08:52
Title: New makefile options for IBMs and DECs without libraries + RANLIB
Author: Alberto Garcia (wdpgaara@lg.ehu.es) and Emilio Artacho

Description:
  - unknown.make: Added dummy RANLIB command to warn the user.
  - New makefile ARCH options for IBMs and DECs without libraries: 
    osf and ibm

Files:
  unknown.make
  ibm.f
  ibm.make
  osf.f
  osf.make
  siesta.tex
========================================================================
Version: 0.8.16
Date: 1997/9/26 17:30:03
Title: Supercell: fixes and improvements
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  - Imposed the translational supercell symmetry on forces.
  - Changed the call to hsparse and xijorb to improve the performance of
    diagon when there is a supercell.
  - Changed the k-grid default to gamma of the SUPER cell.
  - Improved performance of diagon for a supercell.

Files:
  siesta.f
  kgrid.f
  xijorb.f
  diagon.f
  hsparse.f
  iorder.f
  ordvec.f
  Makefile
  siesta.tex
========================================================================
Version: 0.8.15
Date: 1997/9/26 17:30:03
Title: FIX: Stress & forces with part core  + automatic cell generation
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  - Corrected force and stress with partial core correction.
  - Added printout of the number of mesh points.
  - Corrected error in automatic cell generation.

Files:
  dhscf.f
  diagon.f
  siesta.f
  redata.f
  siesta.tex
========================================================================
Version: 0.8.14
Date: 1997/8/28 15:25:16
Title: siesta.PAO.BasisType --> PAO.BasisType
Author: Daniel Sanchez-Portal (daniel@polar.fmc.uam.es)

Description:
  Old FDF label siesta.PAO.BasisType is now PAO.BasisType.
  Its possible values: split, nodes, nonodes, user, and splitgauss.

Files:
  atom.f
  Examples/h2o.fdf
  Examples/h2o.gga.fdf
========================================================================
Version: 0.8.13
Date: 1997/8/25 18:42:20
Title: Manual (quick start, introduction) + Utilities (new rrsiesta)
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  * Manual siesta.tex:
    - Largely expanded INTRODUCTION section.
    - New QUICK START section.
    - New k-sampling options documented.
    - New error&warning messages and two known problems documented.
  * Script utilities:
    - New rrsiesta: Really-run-siesta. Keeps recompiling until siesta 
      really runs. 
    - rsiesta: Extracts from output all errors and warnings and prints 
      them at the end.

Files:
  Util/rrsiesta (new)
  Util/rsiesta
  siesta.tex
========================================================================
Version: 0.8.12
Date: 1997/8/25 18:42:20
Title: k-sampling, supercells, and bands
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  * Supercell: New fdf block that allows automatic generation of a
    supercell out of the repetition of the unit cell. Coordinates
    have to be given only for atoms in the unit cell.
      %block SuperCell
         M(1,1)  M(2,1)  M(3,1)
         M(1,2)  M(2,2)  M(3,2)
         M(1,3)  M(2,3)  M(3,3)
      %endblock SuperCell
    and the supercell is defined as 
    SuperCell(ix,i) = \sum_j CELL(ix,j)*M(j,i).
    Diagonalization is done for the unit cell.
    DHSCF works with the supercell.
  * k-sampling: Improved. But it can only be done if a supercell is
    defined such that any atom only sees one image of any other.
  * Bands: k-lines are introduced to obtain eigenvalues along them
    for conventional band (spaghetti) plots.

Files:
  idiag.f  (new)
  bands.f  (new)
  diagon.f
  kgrid.f
  redata.f
  siesta.f
  siesta.h
  Src/Include/siesta.h
  Makefile
  siesta.tex
========================================================================
Version: 0.8.11
Date: 1997/8/8 18:53:19
Title: FIX: Found the bug in stress calculation
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  There was a term missing in the stress calculation associated to the
  derivative of 1/r in the electrostatic energy (at last it was not
  related with the orbitals' scale factors as speculated before).
    There was an additional term missing for GGA. The whole has been 
  restructured. The new contribution is calculated in poison

Files:
  Sys/osfdxml.f  : Added stress to argument list of poison.
  Sys/bsd.f      : id.
  Sys/general.f  : id.
  Sys/ibmessl.f  : id.
  xc.f
  dhscf.f
  Makefile
========================================================================
Version: 0.8.10
Date: 1997/8/8 18:09:25
Title: Input for controlling Pulay mixing
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  The fdf variable DM.NumberPulay is introduced. It controls Pulay 
  mixing by stating that Pulay is to be performed every n iterations
  (the others being linear mixing) n being the value given in 
  DM.NumberPulay. If less than 2 it performs no Pulay mixing.
  The mixing itself was introduced before by Pablo but another
  input was used.

Files:
  pulayx.f
  redata.f
  siesta.f
  siesta.tex
========================================================================
Version: 0.8.9
Date: 1997/8/8 18:09:25
Title: Input for controlling initial spin density: Ferro or Antiferro
Author: Emilio Artacho (emilio.artacho@uam.es)

Description:
  The new FDF logical variable DM.InitSpinAF is introduced.
  It defines the initial spin density for a spin polarized calculation. 
  The spin density is initially constructed with the maximum possible
  spin polarization for each atom in its atomic configuration.
  This variable defines the relative orientation of the atomic
  spins:
    false: gives ferromagnetic order (all spins up).
    true: gives antiferromagnetic order. Up and down are assigned 
          according to order in the block 
          AtomicCoordinatesAndAtomicSpecies: up for the odd atoms, 
          down for even.
Files:
  redata.f
  siesta.f
  siesta.tex
========================================================================
Version: 0.8.8
Date: 1997/8/7 12:05:06
Title: Utility scripts rsiesta, msiesta, and qsiesta
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Shell scripts introduced to run siesta from an arbitrary directory.
  All three use the environment variable SIESTA_DIR (../Src by default)

Files:
  Util/msiesta makes (compiles) siesta
  Util/rsiesta runs siesta directly
  Util/qsiesta submits a siesta batch job, using NQS batch system
========================================================================
Version: 0.8.7
Date: 1997/8/7 12:05:06
Title: Directory Include/ and ranger.f and ranger.h
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  * New directory Src/Include where all the recommended initial *.h
    (atom, dhscf, siesta, diagon, ordern) are stored, instead the
    Src/*.h0
  * Subroutine ranger.f separated from neighb.f, and new ranger.h

Files:
  Src/Include/atom.h, dhscf.h, diagon.h, ordern.h, siesta.h and ranger.h
  ranger.f (new)
  neighb.f
  Makefile 
========================================================================
Version: 0.8.6
Date: 1997/8/5 19:36:47
Title: Automatic basis implementation
Author: Daniel Sanchez-Portal (daniel@polar.fmc.uam.es)

Description:
  Implemented into SIESTA the possibility of automatic generation of
  the basis orbitals requiring minimal (or even none) information
  at the input fdf file. General basis information for automatic basis
  generation:
   * PAO.EnergyShift: It defines the different (first-z) orbitals' r_c's
     by their excitation energy. Giving this number the basis generated
     is automatically a compensated basis (default 20 mRy).
   * PAO.SplitNorm: A standard to define default sensible radii for the 
     split-valence type of basis. It gives the amount of norm that
     the second-zeta split-off piece has to carry. The split radius 
     is defined accordingly. If multiple-zeta is used, the corresponding 
     radii are obtained by imposing smaller fractions of the SplitNorm 
     (1/2, 1/4 ...) value as norm carried by the higher zetas. (def 0.15)
   * PAO.BasisSize: Defines basis sizes: SZ or MINIMAL for single-z;
     DZ for double-z; and DZP or STANDARD for DZ plus polarization.
     (def DZP).
   * PAO.PolarizationOrbitals: true: adds polarization orbitals of
     perturbative kind.
   * PAO.SplitPolarizationOrbitals: true means to split the polarization
     orbitals of perturbative kind.
  These new inputs plus the old
   * siesta.PAO.BasisType (now split, splitgauss, nodes, nonodes, user),
  permit the definition of the basis with no need of the old 
  block PAO_basis_and_PS_lmax. If this block is not present, then the
  new block Chemical_species_label is needed, which inputs the different
  species for the different atoms:
     %block     ChemicalSpeciesLabel
        1    6    C
     %endblock  ChemicalSpeciesLabel
  Note that just writing this block and nothing else for the basis, siesta
  generates a quite sensible basis for the atoms involved (in this case 
  just carbon): DZP, cutting with an energy shift of 20 mRy (approx 
  4.2 Bohr for carbon), splitting with 0.15 of the norm, etc. If the
  PAO_basis_and_PS_lmax is there, then only those data which are specified
  with a zero will be generated automatically. Nonzero specifications in
  this block have priority.
     A file is written for each atom called 'label'.PAO.basis with the
  numerical basis used. Same format as read by PAO.BasisType = user.

Files:
  parse.f   : (new) routine which parses an input line into names 
              and numbers
  atom.f    : Basis changes heavily here.
  initatom.f: changed interface and added calls to chkdim
  redata.f  : PAO_basis_and_PS_lmax is now optional.
              Added Chemical_species_label block.
              Added argument atm_label.
  siesta.f  : changed interfaces to redata and initatom
  Makefile  : added parse.f
========================================================================
Version: 0.8.5
Date: 1997/8/4 18:12:39
Title: FIX: Corrected a SEVERE bug for spin polarization
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  Corrected a SEVERE bug for spin polarization. Correct ispin
  index in eigenvalue printout.

Files:
  siesta.f
========================================================================
Version: 0.8.4
Date: 1997/7/24 15:46:34
Title: Pulay mixing
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)

Description:
  Introduced new routine to perform Pulay mixing: 
  Modified and partly re-written by P. Ordejon, July'97, on a routine
  original of In-Ho Lee, Beckman Inst., Univ. of Illinois, Mar. 25 '97.
  It represents an SCF convergence accelerator nased on storing the
  history of convergence for a few cycles and guessing the next based
  on that story.

Files:
  pulayx.f
  siesta.f
  Makefile
========================================================================
Version: 0.8.3
Date: 1997/7/21 14:45:48
Title: Alaternative local pseudopotential for shallow cores
Author: Daniel Sanchez-Portal (daniel@polar.fmc.uam.es)

Description:
  The local pseudopot is usially the one generated by a positive charge
  equal to the net of the core, but spread in a Gaussian of the width 
  of the core. The core radius is taken as the radius outside which
  the pseudopotentials all (s,p,d..) go like Z/r within a tolerance. 
  This cutoff is also defining the range of the KB projectors
    However, atoms with shallow cores (Ga, Ge, ...) demand a very
  long core radius, not necessarily because the different pseudopots
  remain different for long radii, but because the charge of the core
  spreads and the Z/r behavior comes too slowly.
    For these cases (controlled by an if, if the value of that core 
  radius is too long) an alternative local pseudopotential is defined:
  A smooth curve ( Vloc(r)=v3exp(v1*r^2+v2*r^3) ) for  r < Rc(KB) 
  is matched to the pseudopot coming from r > Rc(KB). Rc(KB) is the
  new core radius (for the KB) very close to the one used in the 
  atomic program, and the one for which diff pseudopots converge to one.
  There is also the possibility of using 
  Vloc(r)=v4exp(v1*r^2+v2*r^3+v3*r^4) for matching not only value and
  first derivative, but also second derivative.
    The program does everything. ATOM informs in output.
  
Files:
  atom.f
  atom_subs.f
========================================================================
Version: 0.8.2
Date: 1997/7/16 15:00:22
Title: Makefile: a unique file for different architectures
Author: Alberto Garcia (wdpgaara@lg.ehu.es)

Description:
  Compilation procedure for SIESTA using one only Makefile file. The
  user has to define the system variable ARCH taking one of the 
  prepared possibilities in Src/Sys (like export ARCH=linux). 
  The new directoy Src/Sys has the .make files for the different
  architectures (compiler names, flags and other pecularities) and
  the fortran subroutines that depend on the machine: cputim.f
  and others like poison.f that may call propriety libraries.
  general.f is all purpose, all architecture, and selfcontained
  for the use on any platform.
    This way, the old architecture adapted files in Src (poison, 
  cputim, for different systems) disappear.

Files:
  Makefile
  Sys/osfdxml.f
  Sys/bsd.f
  Sys/general.f
  Sys/ibmessl.f
  Sys/ibmessl.make
  Sys/linux.make
  Sys/osfdxml.make
  Sys/freebsd.make
  Sys/hp.make
  makefile, Makefile.DEC, Makefile.IBM, Makefile.linux, 
  poison.general.f, cputim.general.f, poison.DEC.f, poison.IBM.f, 
  poison.f, cputim.DEC.f, cputim.IBM.f, and cputim.f  all disappear.
========================================================================
Version: 0.8.1
Date: 1997/7/15 21:39:57
Title: k-sampling
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  k-sampling implementation. It is only partial since dhscf.f and all 
  dealings in the grid are left untouched (and real). It is therefore
  only possible to do k-samplings on cells such that any atom sees only
  one image of any other atom. K-sampling in this case is then just
  mutiplying by phases in the right places.

Files:
  atom.f
  cdiag.f
  dhscf.f
  diagon.f
  fermid.f
  kgrid.f (new)
  rdiag.f
  rdiagon.f (supressed)
  siesta.f
  siesta.h
  xijorb.f (new) Vectors among atom centers
  Makefile
  siesta.tex
========================================================================
Version: SIESTA 0.8 
Date: 1997/7/15 21:39:57
Title: Several: Output files + shaper + dipole + prdate + automatic cell
Author: Jose M. Soler (jose.soler@uam.es)

Description:
  * Several routines saving information to files: 
    - iodm.f   : the 'save' file is SystemLabel.DM
    - iolwf.f  : the 'save' file is SystemLabel.LWF
    - iohs.f   : writes/reads H y S
    - iorho.f  : writes/reads rho in the mesh
    - ioxv.f   : writes/reads positions and velocities 
  * Dipole moment is calculated from grid integration
  * shaper.f obtains the shape of a system: molecule, chain, slab, solid
  * prdate: prints time, date and computer name at the beginning and
    the end of the calculation in the output file.
  * Automatic cell: if there is no lattice parameter nor lattice vectors
    specified in input, they are all generated such that there is no
    overlap between cells (plus a 10% extra) (shape: molecule)
      If the lattice parameter is given but not the lattice vectors a
    cubic cell is assumed.

Files:
  dipole.f
  dhscf.f
  iodm.f
  iolwf.f
  iohs.f
  iorho.f
  ioxv.f
  redata.f
  shaper.f
  prdate.f
  siesta.f
  Makefile
  siesta.tex
========================================================================

            PRIOR TO SIESTA 0.8: Some important changes
                  (see Log.Messages for details)

========================================================================
Date: 1997/6/23 16:28:07
Title: SIESTA optimization, including adaptation to dxml of DEC
Author: Jose M. Soler (jose.soler@uam.es)
========================================================================
Date: 1997/6/6 17:33:15
Title: OrderN options (Kim, Ordejon-Mauri, file)
       siesta.h generation
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)
========================================================================
Date: 1997/5/6 16:54:33
Title: Mulliken populations in output
Author: Pablo Ordejon (ordejon@condmat01.geol.uniovi.es)
========================================================================
Date: 1997/4/16 20:20:15
Title: Smooth core charge for local pseudopot: core overlap handling
Author: Daniel Sanchez-Portal (daniel@polar.fmc.uam.es)
========================================================================
Date: Once upon a time
Title: Atomic program package for pseudopotential generation:
       Berkeley's code, maintained by Alberto Garcia, is incorporated
       into directory Pseudo
Author: Alberto Garcia (wdpgaara@lg.ehu.es)
========================================================================


