See file ChangeLog.old for changes after aug. 2004

28 Jul 2004  Workaround for a bug of the PGI compiler (5.1-5) (C.S.)

27 Jul 2004  PP/projwfc.f90: on input, degauss1, ngauss1 => degauss, ngauss
             Documentation for atomic code updated (PG)
             Various minor format changes in output (GB)

23 Jul 2004  Fixed a small bug in the way preprocessor flags were used
             (CS). Workaround for a strange bug in spin-orbit case 
             with norm-conserving PP in PWNC/newd.f90 (AdC).

22 Jul 2004  Two bugs fixed. Now PWCOND is working as before.
             Bugs introduced when 0:ndm => ndmx (23 Apr)
             and to correct another problem (31 May). (ADC)
             NEB examples updated. Strange initialization fixed (CS)

21 Jul 2004  Removed input variable VEC_scheme (no longer used).
             INPUT_PW updated (CS). some examples regenerated (GB).

20 Jul 2004  Fixed some bugs in NEB. Added a new field in the neb restart file.
             To use old restart files the following gawk-script can be used:

BEGIN{ level = 0 }
{
if ( $1 == "Image:" ) {
   print ;
   if ( $2 > level ) {
      level = $2 ;
      getline ;
      printf "%2s,  F \n", $1 ;
      }
   }
else { print }
}

C.S.

16 Jul 2004  Fixed a bug (spotted by Guido) in the diagonalization with
             occupation-dependent thresholds:
             now occupations are also computed at the end of the the wfcs 
             initialization so that wg is always initialized. (CS)

15 Jul 2004  Several minor bugs fixed in the lbfgs algorithm. Added an,
             hopefully safe, interpolation for the "step accepted" case 
             of the standard bfgs which can give some speedup in the 
             minimization (it can be disabled commenting a line inside 
             the file). (CS)

14 Jul 2004  added (partial) support for Cray X1 (contributed by Roberto 
             Ansaloni). Small changes in phonon output and in the scripts
             processing it. [Gerardo]

 9 Jul 2004  make_pointlists was not working with very strange atomic 
             positions. Small changes in get_locals and report_mag (AdC)


 2 Jul 2004  Misc. cleanup; a few redundant routines moved to flib;
             added example for phonon DOS; version number increased (PG)

 1 Jul 2004  Added the possibility to make a spin-orbit calculation with
             zero magnetization. (Still to be cleaned) (ADC)
             Removed the routine to calculate k - -k needed just in
             this case. (ADC)
             
30 Jun 2004  Calculation of DOS and of Projected DOS have the same kind
             of input and yield comparable results, at least with gaussian
             broadening (PDOS with tetrahedra still not implemented)
             Beware changes in input and possible problems. (PG)
             Cleanup: 'dispersion' removed from PW, is now entirely in PH
             module disp moved from pwcom to phcom
             variable nqx changed to nqmax (Gernot)

28 Jun 2004  Calculation of the dynamical matrices for the dispersion 
             is now within ph.x possible. 
             New input variables:
             lnscf: if .true. the nscf and phonon run are done in one 
                    single run
             ldisp: if .true. calculation of dyn. matrices for dispersion
             nq1, nq2, nq3: q-point mesh. (GD)

28 Jun 2004   Bug fix: spin orbit + US-PP were not working in low symmetry
              cases. (ADC)
              Added a routine to calculate k and -k in the spin-orbit case,
              because they are no more equivalent. (ADC)
              
26 Jun 2004   diis_module.f90 recoded.
              The following variant of the DIIS Residual Minimization Method, 
              based on three steps, has been implemented :
              1) At the first "scf" step of the first "ionic" step, the 
                 diagonalization starts with an initialization procedure. 
                 Two (or more) sweeps on all the bands are performed. 
                 A sweep consists in two (or more if required) unconstrained 
                 trial steps (steepest descent steps) followed by a
                 subspace rotation. If convergence is not achieved in this 
                 phase a final trial step is done.
                 In all the other cases the initialization procedure consists 
                 in a subspace rotation followed by a trial step.
              2) Diagonalization based on the DIIS algorithm is performed on 
                 the lowest ( nbnd - 2 ) bands. Orthogonalization of the 
                 eigenvectors is done at each step. The possibility of 
                 orthogonalizing a given band only to those inside an energy 
                 window is also implemented.
              3) The topmost two bands are converged using a standard 
                 conjugate-gradient procedure. This ensures that eventual 
                 holes left by the DIIS algorithm can be identified and filled.
                 If two holes have been found this procedure is repeated on the 
                 topmost two bands (previously optimized with the DIIS 
                 algorithm). (CS)

25 Jun 2004   Machine-dependent definitions are now contained in two 
              different files (both in /include):
              1) f_defs.h  for definitions to be included in FORTRAN files ONLY
              2) c_defs.h  for definitions to be included in C       files ONLY
              (CS)
              Many small changes to fix compilation on T3E (PG)
              

24 Jun 2004   Calculation of Makov-Payne correction added to chdens
              (contributed by Giovanni Cantele) (PG)

22 Jun 2004   Cleanup and some minor modification of the output format in 
              molecular dynamics runs. (CS)
              No need to have a spin index in dvan (PG)

21 Jun 2004   Added support for Opteron (contributed by Davide Ceresoli) [GB]
              First clean-up of parallelism. Fixed a bug in the way temporary
              files were labelled when nproc > 10 and npool > 1 (CS).
              More T3E glitches: getarg must be preprocessed
              || instead of | in clib/cp.h (PG)

17 Jun 2004   Direct references to mpif.h replaced (in fft_base.f90 and
              ptoolkit.f90) by USE parallel_include.
              Small change in the output: also the forces on fixed atoms are
              printed (previously they were set to zero before the print-out).
              (CS)

16 Jun 2004   stm image should work also for magnetic systems (SdG)

16 Jun 2004   NLCC for Fritz-Haber to UPF format converter (thanks to
              from Frederic Bouyer and Katalin Gaal-Nagy)
              Some calls to blas routines were incorrect for T3E (PG)

16 Jun 2004   Fixed a bug (highlighted by Tone) in the way the path-length 
              was computed. (CS)

15 Jun 2004   Example22 added. It makes a calculation of fcc-Pt including
              spin-orbit effects (ADC).

14 Jun 2004   io_base : added read and write of jchi and jjj (ADC)
              PP : added the possibility to plot the magnetization in the
                   noncolinear case (ADC)
              PWNC : clean up. openfil, restart, punch, read_conf_from_file,
                     write_conf_to_file, restart_in_electrons, merged 
                     with those in PW. (ADC)
              io_base : noncolin, lspinorb saved in restart file.(ADC)
              cpmd2upf wrote an incorrect DFT if converting BLYP PPs. (PG)

13 Jun 2004   Some changes to newd.f90 (PG)

12 Jun 2004   Modules becmod, rbecmod (one variable each) merged into
              a single module (with two variables...)
              More USPP merge (PG)

11 Jun 2004   Cleanup of the molecular dynamics routines. Some debug messages
              removed. Some duplicated variables (fixatom and if_pos) removed 
              from pwcom (already present in ions_base). A logical variable 
              lfixatom added in control_flags. 
              The output of a molecular dynamics run has been slightlychanged
              to be (hopefully) clearer.
              Fixed a couple of ambiguities:
              flib/rranf.f90: variable irand was not initialized.
              PW/v_of_rho.f90: at line 146 the following call has been changed 
              CALL xc( arhox, ex, ec, vx, vc )  =>  
                                        CALL xc( arhox, ex, ec, vx(1), vc(1) )
              (CS)

10 Jun 2004   pw_examples, cp_examples => examples (Gerardo)
              Several small bugs in restart, found by AdC and David
              Prendergast (PG)
              Fixes for cry-t3e compilation. Fix for Gamma compilation (PG)

 8 Jun 2004   More uspp variables rearrangement:
              qq_spinorb moved into Modules/uspp.f90 as qq_so
              dvan => dvan + dvan_so (for spin-orbit only)
              PW/clean_pw.f90 replaces PWNC/clean_pw.f90 (PG)

 8 Jun 2004   First step to calculate all dyn. matrices needed for the 
              entire dispersion in one step with pw.
              A new calculation is possible called 'dispersion'
              in the phonon card new input parameters are:
              nq1, nq2, nq3 : number of q points in the direction
              tr2_ph : threshold for the phonon calculation (see also INPUT_PH)
              UP TO NOW ONLY THE Q POINTS FOR THE DYN. MATRICES ARE 
              CALCULATED AND PRINTED. (Gernot)

 7 Jun 2004   Some bugs fixed in NEB:
              1) Modules/neb_base.f90: the neb error is computed as done in 
                 structural optimizations (convergence when the largest 
                 component of the force vector is less than a threshold).  
                 The rescaling of the elstic constants has been modified so 
                 that they can not be smaller than a minimum value 
                 (set to 0.05).
              2) PW/compute_scf.f90: a bug in the way startingpot and 
                 startingwfc were used inside neb has been fixed (now scf 
                 should be faster).
              3) PW/pwscf.f90: cleanup of module-dependencies. 
              4) pwdocs/INPUT_PW: documentation updated (a detailed 
                 explanation of how to specify initial configurations has been 
                 added).
              5) PW/neb_routines.f90: file no longer needed
              (CS)

 2 Jun 2004   More USPP-related variable rearrangement (PG)
              Quantities of a LDA+U calculation are again written on file 
              ".save", similarly to what was previously done by the "saveall" 
              routine but according to the new format. Two subroutines have 
              been added to "io_base" (write_restart_ldaU, read_restart_ldaU) 
              which are called by "restart". (SF)

31 May 2004   PWCOND: Bug fix, now should work also for nrx1 or nrx3
              different from nr1 or nr3 (contributed by A. Smogunov)
              PH: cleanup of cgsolve_all in order to reduce memory use,
                  zstar, epsilon and dynamical matrices written with 
                  8 digits only (it should not make any significant difference
                  and it should be easier to spot differences in dynmat files 
                  if 0.123456789E-10 is treated as zero) 
                  Symmetrization is applied already to drho (not anymore 
                  to dvscf)                   (SdG)
              PWNC cleanup (AdC)
              More USPP_related variables moved to Modules/uspp.f90
              Note that lqx => lmaxq for consistency with other names
              (those ending in x are static dimensioning) (PG)

28 May 2004   NEB: added the possibility of specifying one or several
              intermediate images in the input file (see INPUT_PW). 
	      Back-compatible with the old input files. (CS)

27 May 2004   Raman calculation with 2n+1 theorem added (Gernot)
              Small changes in noncolinear symmetrization (AMC)
              Added support for "ph.x -in input" [Gerardo]
               
26 May 2004   Part of the variables for ultrasoft pseudopotentials
	      have been moved into a new module uspp_param, shared
              between PW and CP (in file Modules/uspp.f90)
              The flag newpseudo is no longer used to decide whether
              states with oc=0 are bound or not: for those states, and
              only for the old RRKJ format, oc is set to a negative
              value, and this signals that they are not bound. Not elegant
              but simpler than it used to be. The converter to UPF format
              did not include those states anyway.
              Beware unexpected side effects! (PG)

25 May 2004   Changes in pw to calculate the Raman tensor via the 2n+1 theorem.
              A new calculation called 'raman' is now available.
              For each k point additional points at k+b will be generated
              and a nscf calculation will be performed.
              The b vectors are small vectors either in cartesian coordinates
              or along the direction along to the nearest neighbours.
              A new input card named raman is introduced. New variables: 
                  b_length:  the length of the b vectors
                  lcart:     if .true. cartesian direction (default)
                             if .false. in direction to the nearest neighbours

24 May 2004   density/potential mixing procedure in presence of an electric 
              field has been changed. 
              - Density mixing is now available.
              - Explicit mixing of the dipole moment in potential mixing has
                been removed (in my opinion it was spurious). 
              If anybody experiences bad convergence with the present scheme 
              please let me know. (SdG)

21 May 2004   Merged noncolinear and colinear symmetries (routines
              sgama, irrek). Variable degspin removed, constant
              degspin=2 left. Please check for unintended effects!

21 May 2004   A new check has been added in move_ions in the case of 
              BFGS+LSDA: if when the convergence is achieved the absolute 
              magnetization (computed in electrons and now saved in the module 
              lsda_mod) is less than 1.D-8 a new scf cycle is performed 
              starting from atomic potential and wcfs and the BFGS convergence 
              is checked again.
              Removed some unused variables from pwscf.
              Again a couple of errors highlighted by Tone in the format of the 
              NEB restart file (file prefix.neb) at lines 369 and 377.
              (CS)

20 May 2004   Fixed an error highlighted by Tone in the format of the NEB 
              restart file (file prefix.neb): ELSATIC vs ELASTIC (CS)

19 May 2004   Functions "capital" and "matches" taken out of module
              "parser" and added to flib; duplicated routines removed.
              Manual update (PG)

18 May 2004   Set value of gamma_only=lgamma after read_restart_header
              in restart.f90 (SdG)
              Removed obsoleted compiler flag -DHAS_ZHEGVX (GB)

17 May 2004   Several minor bugs in the NEB machinery (mainly related to the 
              restart procedure) have been fixed: this required a partial 
              reorganization of the restart-file (prefix.neb) that is no longer 
              compatible with the previous one. Now the restart mechanism is 
              much more robust.
              In coset.f90 division by zero without any check: added 
              an error message.
              Cleanup of openfil.f90 routine.
              In read_cards.f90 module kinds was USEd two times.
              (CS)

14 May 2004   Fixed a couple of bugs in error.f90 and move_ions.f90 (CS).
              Updated functionals and installation mechanisms,
              ready for addition of atomic code. Doc update (PG)

13 May 2004   keyword "revPBE" recognized by which_dft
              Beware: potential for trouble with PBE and the like...
              More noncolinear merge (PG)

13 May 2004   Some cleanup in the NEB machinery (CS).
              Fixed a serious bug in the mixing of spin polarized systems 
              with the local-TF screening (SdG, CS). 

12 May 2004   pw2casino: incorrect calculation of eloc (G=0 term missing)
              (found by Dario Alfe')

11 May 2004   becp = <beta|psi> allocated only when needed (except in
              phonon where it is still allocated at the beginning)

11 May 2004   Yet another version of the DIIS algorithm (replacing the 
              previous one). This version is slower (but not dramatically)
              than davidson for small systems, faster for large systems
              (the cross-over is around 300 bands), but there is space 
              for further improvements. A gamma-point version is also 
              implemented (previously missing). An "holes-sniffer" is 
              implemented to prevent holes in the eigenvalues spectrum. (C.S.)

10 May 2004   Added a cut-off: -1.0 + 1.D-6 < zeta < 1.0 - 1.D-6 to prevent
              the divergences of the correlation part of the PBE potential.
              (C.S.)

10 May 2004   Fixed some bugs in the cg and diis routines of the 
              noncollinear code. Now these routines work also with
              NC-PPs. (ADC)

09 May 2004   Cleanup of duplicated or unimplemented routines in PWNC/ (PG)

08 May 2004   Cleanup: pwcom no longer used in PP/,
              qgm is now a local variable as it should be (PG)

07 May 2004   New punch routine. If the wf_collect flag is true, it collects
              all wavefunctions in a single file. (PC)
              Fixed a in local-TF screening (division by zero) that
              was present since version 1.2.0 (CS)

06 May 2004   Fixed several bugs in the part that supports spin-orbit,
              and a bug in the symmetrization of the magnetization in
              the parallel case. (ADC)
              Support for g95 added (GB)

04 May 2004   Bug in cpmd2upf.f90 fixed (thanks to Dariusz Chrobak)

03 May 2004   Added support for spin-orbit pseudo-potentials. 
              Support for both NC and US PP. 
              (Still experimental) (ADC)
              NEB: cleanup of bfgs stuff
              1) a backup copy of the restart file is written 
                 at each iteration on the scratch directory.
              2) velocities can be reset (reset_vel keyword)
              when restarting from file. (C.S.)

30 Apr 2004   Started the work to provide support for pseudopotentials with
              spin-orbit. Now PW can read a spin-orbit pseudopotential,
              but not use it (ADC)
              DIRECT_IO_FACTOR for intel compiler reverted to 8, 
              compiler option used instead.
              Lowdin charges are printed for each spin component (PG) 

28 Apr 2004   Pseudopotential cleanup and merge: 
              module "atom" (common with CP) moved to Modules/
              index nhtom (m) replaced by nhtolm (combined lm index)
              (as in CP) (PG)

27 Apr 2004   More pseudopotential cleanup (PG)
              Fixed some bugs in the NEB machinery. In particular the error
              was not properly computed and overestimated the real error. 
              Some improvements in output format of a NEB calculation (C.S.)

26 Apr 2004   The correct value of DIRECT_IO_FACTOR for intel compiler
              version 8 is 2, not 8: wavefunction files were 4 times
              larger than needed! (CC)

25 Apr 2004   pseudopotential cleanup: vnl => vloc_at (PG)

23 Apr 2004   ndm, mmaxx => ndmx ; 0:ndm => ndmx (no longer needed) (PG)

22 Apr 2004   funct.f90 and which_dft moved to Modules/functionals.f90 (PG)

21 Apr 2004   cleanup: zv moved to module "basis", documentation updated (PG)

20 Apr 2004   dylmr2.f90 moved to flib/ (PG)

19 Apr 2004   Bug fix: non-collinear code was not working with insulators
              and nbnd > nelec/2 (AdC)

15 Apr 2004   Fixed multiple writes to file in parallel execution
              when calculating electron-phonon coefficients (thanks
              to Xianghju) (PG)

14 Apr 2004   Fixed a couple of bugs in the lbfgs algorithm. (CS)
              On parallel LINUX machines the error message is written opening 
              unit "0" on /dev/stderr (as is automatically done on AIX). (CS)
              The exit_file is no longer a parameter (set in io_files.f90 to 
              "EXIT"), but an internal variable set in input.f90 to 
              "prefix.EXIT". This is necessary to allow the user to stop 
              the "correct" job when several jobs are running on the same
              working directory. (CS)
              read_recon subroutine moved inside paw module for future use
              in nmr calculation (MP)

13 Apr 2004   First steps in USPP harmonization: nqfm => nqfx, some
              us variables and aainit moved to Modules/uspp.f90 (new)
              invmat moved to flib/ and merged with invmat3 of CP/FPMD,
              rndm and ylmr2 moved to flib/ in rranf.f90

 7 Apr 2004   relativistic exchange introduced in case of pseudo generated 
              with relativistic exchange
              Added support for HP workstation with Itanium CPU

 3 Apr 2004   Cleanup: integer conversion to real performed with "dble"
              everywhere, minor things here and there

 2 Apr 2004   A new (experimental) feature is added to LDA+U method.
              The +U part of the functional can be built using
              for the projection on localized orbitals some simple
              Wannier functions generated by the post-processing
              code poormanwannier.f90 (pmw.x) from the LDA band
              structure. (SdG)

 2 Apr 2004   Cleanup: dsum deleted (PG)
              Default value for the neb-time-step (ds) updated.
              Corrected some other small errors in the INPUT_PW file (CS)

 2 Apr 2004   References to brilz replaced everywhere by cell_base (CS)
              Again an improvement of the optimization procedure in neb
              calculations: the new version of quick-min estimates the 
              optimal time step on the basis of the approximate force
              constant along the displacement vector (this is only done 
              after some optimization steps). 
              In all test cases the algorithm is at least two times faster.
              Nevertheless the algorithm is not yet optimal (CS)
              Cleanup: all references to varie replaced by references to
              control_flags  (also when varie is indirectly called by pwcom).
              Fake module varie has been removed from pwcom (CS).

 1 Apr 2004   Incorrect preconditioning in LBFGS (CS)

31 Mar 2004   Compilation problems with __NEW_PUNCH fixed
              Fixed a bug in neb when lda_plus_u is true (CS)

29 Mar 2004   Various cleanup: error, date_and_tim, clib, harmonization
              with CP and FPMD. Now in case of severe error, errore writes
              its message also to the file 'CRASH' that is closed before 
              aborting, this to avoid information loss in those systems
              that do not flush open streams, when the code is stopped 
              through a call to MPI_ABORT (CC)
              General cleanup: NEB
              1) units for activation energy and errors are printed
                 in the output file
              2) elastic constants are automatically rescaled so that
                 "spring" forces have the same magnitude as "external-potential"
                  forces: this permits a larger time step in NEB optimization
                 (the default will be changed later)
              3) fixed a bug in the way istep and istep_neb were set  
              (CS) 
              General cleanup: parser
              1) the subroutine delete_if_present has a logical optional 
                 input argument to require a warning message when a file 
                 is removed
              2) check_stop: the function check_stop_now has an optional
                 input argument to assign an output unit different from stdout
              (CS)

24 Mar 2004   Implemented experimental parallelization of NEB images.
              This required deep modifications of the parallelism in PWscf. 
              - There are two new communicators: intra_image_comm and
                inter_image_comm.
              - #ifdef __PARA is no longer needed because all "parallel" 
                variables are always initialized for a serial run and all
                parallel routines are, in the case of a serial run, dummy 
                routines. 
              - The wrappers to MPI routines used only by PWscf are in file
                PW/para.f90. 
              - The others (mp_***) are in the Modules/mp.f90.
              - All explicit referencies to mpif.h should be replaced by a
                "USE parallel_include" (in a serial run parallel_include 
                is simply a dummy module).

              The extrapolation of both potential and wavefunctions has been
              rewritten in order to be smarter than before: on the basis of 
              the required extrapolation order, on the basis of the history 
              and on the basis of which files are really present on the disk, 
              the algorithm chooses the extrapolation order.
              All algorithms in which ions are moved can use the extrapolation.

              Both features are unstable: I need the help of everybody in
              order to test them. (C.S.)

24 Mar 2004   Crashes in raman and planar average calculation fixed

19 Mar 2004   Yet another bug in phonon + k-points parallelization
              in routine phq_readin (found by Nicolas Mounet)

17 Mar 2004   Obsolete parallelization routines removed (CS)
              Missing routines added to local lapack copy (MP)

16 Mar 2004   All references to mpif.h and to subroutine check.f90 
              removed by the PWscf and related codes (CS)

15 Mar 2004   Makefile cleanup. In upftools executable are *.x (PG)
              Problems in parallel version of PWNC and PWCOND fixed,
              other refernces to mpif.h removed. (CS)
              wfcs extrapolation extended to NEB. (CS)
              In rdiaghg and cdiaghg #ifdef HAS_ZHEGVX removed (that 
              routine is present in all lapack distributions).

15 mar 2004   Two instances of the same variable in efg.f90 (AT)
              Cleanup, doc, workaround for yet another ifc8 bug (PG)
              Almost all neb routines moved to Modules (CC)
              New module check_stop used by all codes
              to check for exit conditions ( maximum time
              or EXIT file ) (CC)
              General cleanup of parallelization routines:
              they have all been moved in the para.f90 file,
              all includes of mpif.h replaced by USE include_parallel.
              (C.S.)

12 mar 2004   more postprocessing is working at Gamma point (AT, PG)
              Several compilation and Makefile glitches (PG)
              Manual updated (PG)
              Options startingwfc and startingpot are no longer ignored
              in a restart calculation (found by K.Kudin) (CS)

09 mar 2004   ewald_dipole did not reduce g-tensor 
              check efg in parallel (minor changes)
              call to poolbcast() should include a test to npool /=1 (MP)

08 mar 2004   Calls to broadcast() and poolbcast() replaced everywhere by 
              calls to mp_bcast(*,MPI_COMM_POOL) and mp_bcast(*,MPI_COMM_ROW)
	      respectively. Files PW/broadcast.f90 PW/poolbcast.f90 removed (CS)

08 mar 2004   cleaning and documentation of paw related routines (MP)

08 mar 2004   neb basic routines moved to Modules, to be shared among codes
              basic cell and ionic variables moved from pwcom to
              cell_base and ions_base .
              cell_base modules and ions_base modules should be initialized
              through the use of cell_base_init and ions_base_init, this
              after having read the namelists and the cards .
              IN THE FUTURE NONE OF THE VARIABLES IN THE BASIC MODULES SHOULD
              BE SET IN THE MAIN CODES, BUT THROUGH A CALL TO SOME INIT 
              FUNCTIONS CONTAINED IN THE BASIC MODULE ITSELF.
              THE IDEA IS THAT THE BASIC VARIABLES SHOULD BE USED AS 
              READ-ONLY. UNFORTUNATELY IN F90 THERE IS NO POSSIBILITY
              TO SET A READ ONLY ATTRIBUTE. (CC)  

07 mar 2004   Cleanup in PH/ and D3/, setv removed (PG)
              Calls to broadcast replaced by calls to mp_bcast everywhere.
              All kinds of ionic dynamics are done by a single cpu 
              (see move_ions.f90). After the ions are moved the new positions
              (and other information) are broadcast to all other cpus. C.S.

04 mar 2004   Excessive check in PP/punch_plot.f90 if gamma_only
              (Antonio Tilocca)

01 mar 2004   calculation of NMR parameter Cq and eta in efg
              some output formatting (MP)

27 feb 2004   Fixed a serious bug in the path interpolator
              (spotted by Nicola Bonini) C.S.
              More cleanup in examples (GB)

26 feb 2004   Porting to SGI Altix by Martin Hilgeman, SGI 
              (see cpdocs/ChangeLog for detailed log)

26 feb 2004   wfc-extrapolation extended to all "relax" algorithms.
              Molecular Dynamics based algorithm partially rewritten: 
              both standard and damped MD are performed with the velocity Verlet
              scheme (with or without constrains). 
              Renata's subroutines are used only in the framework of variable
              cell.
              constrain.f90 file is no longer needed: cnstrains are set in the 
              input file (see CONSTRAINTS CARD) with the same input format used
              in FPMD. An arbitrary number of constrains can be set.
              In the case of constrained relaxation the damped MD
              algorithm is used instead of BFGS.
              When restart_mode = "from_scratch" many restart files are removed 
              from the scratch directory.
              Several other modifications here and there. (C.S.)

26 feb 2004   Remove use of setv in symz (MP)
              Several minor errors in the manual (PC)

25 feb 2004   PWgui documentation updated (Tone)
              Serious bug in phonon + pools (again) fixed:
              double call to init_pool in PH/phq_readin.f90
              (spotted by Gernot)
              Useless clib/c_getenv.c removed (PG)
              Minor updates to examples (CS, AdC)
              Added --disable-parallel and --disable-shared flags
              to "configure" (GB)
              Electric field gradient calculation with PAW reconstruction
              (MP)

-------------------------------------------------------------------
Date: 24 Feb 2004    Version: pw-2-0
-------------------------------------------------------------------
19 feb 2004   more fixes to pw2casino (MP), examples and doc (PG)

18 feb 2004   more installation fixes (GB) and doc updates (PG)
              Fixed another bug in the path interpolator script (CS)
              GUI added to the repository - see the GUI/README file (Tone) 
              Berry-Phase calculation in parallel fixed for npool = 1,
              program stops if npool /= 1 (PG)
              pw2casino works in parallel if npool=1 (MP) 

17 feb 2004   check_constrain weirdness fixed - maybe
	      Misc documentation updates (PG)
              F77 syntax for dist.f (GR)

16 feb 2004   Various updates to documentation (Tone, GB)
              and to installation (GB)
              Fixed a bug in the path interpolator script (CS)
              Use only potential mixing with dipolar field (AdC)
14 feb 2004   LDA+U: variable starting_ns_eigenvalue has been added in 
              order to allow to specify how to fill starting ns occupation
              matrices. Useful when the default choice takes the wrong
              (or not desired) path. (SdG)
              As gamma_only is not working yet with LDA+U in forces and 
              stress a call to errore is added to prevent mis-use (SdG).

13 feb 2004   Noncolinear example updated (AMC)
              README.configure added (PG)
              Installation instructions rewritten (GB)
              Updated XCRYSDEN utilities in pwtools/ (Tone)

12 feb 2004   Misc updates and fixes to examples (PG, SF, GB)
              PP/bands.f90 stops if pools are present (PG)
              Small bug fix in pseudo_types.f90 (AdC)
              INPUT_CHDENS: fix description for XCRYSDEN format (Tone)
              Implementation of LDA+U gamma_only calculations (SF)

11 feb 2004   Missing lapack routines added (PG)
              Case nks=1 in new_ns fxed (SF)
              pw2casino: formatted output for G vect, correct nonlocal
              energy, now correct in NC case (MP)
              The minimization procedure has been refined in order to be
              more robust when the starting configuration is close to the 
              minimum: if (and only in this case) the trust_radius is too
              long and the step fails to reduce the energy (Enew>Eold),
              then the new trust_radius is obtained with a quadratic
              interpolation (line search) that is guaranteed to have a
              good minimum (previously the trust_radius was simply halved).
              For test purpose a precompiler flag (OLDRECIPE) can be defined.
              summary.f90: format was causing trouble with 'f' projectors (SF)

10 feb 2004   Cleanup in check_example (GB), PW/rotate_wfc*.f90 (CS)
              Singular Value Decomposition used in extrapolate_wfc:
              avoids numerical instabilities (Paolo Cazzato)

9 feb 2004    The new bfgs minimization scheme is now the default. 
              In order to use the old scheme, the keyword ion_dynamics
              must be set to "old-bfgs" (C.S.)
              pw2casino: correct kinetic energy (tpiba2 was inside the k-loop)
              write out only G vectors uses to describe wavefunctions
              still not working in parallel (MP)

6 feb 2004    Example documentation updated (SF)
              Stress units explicitly written on output (SdG)
              Examples updated, misc. (PG)
              Example checker rewritten using awk (GB)
              Added a tool to generate a new path (what is actually generated
              is the restart file) starting from an old one. The new path is
              obtained through interpolation (cubic splines). The new path
              can be discretized with a different number of images (this is
              its main purpose), images are equispaced and the interpolation
              can be also performed on a subsection of the old path. A self 
              explanatory shell script is also included: it permits an easier 
              manipulation of the input file. Fixed a couple of bugs affecting
              the "reset bfgs" procedure (C.S.).

5 feb 2004    Fixes for 64-bit HP compilations (thanks to Sergei Lisenkov)
              Better example checker (GB). Minor cleanup of tabulators (PG)

4 feb 2004    D3 code updated to work with max_irr_dim != 3, some cleanup.
              D3example added. (Gernot Deinzer) 
              Fixed a bug in the parallel version of neb: a bcast was
              missing (CS). 

3 feb 2004    Documentation updated, some changes to output in dynamics
              and in summary as requested by Tone - examples updated
              configure => configure.old, configure.new => configure (PG)
              Added some experimental stuff (not compiled if __LANGEVIN 
              is not defined) to neb_routines (CS)
              Added preliminary version of interface with QMC code
              CASINO: PP/pw2casino.f90 (Mickael Profeta)

2 feb 2004    projwfc works also with the gamma_only version (Guido Fratesi)
              Restored the check on diagonalization also at the first scf 
              iteration. Module miscellany removed. Cleanup (CS).

29 Jan 2004   Fixed a bug and a potential name conflict in module
              basic_algebra_routines (CS). Fixed bug in noncolinear case
              with k-point parallelization (AMC+CS)
              Sloppy code in variable-cell code leading to overflow (PG)
              Small changes to "memory" to prevent integer overflow (PG)

28 Jan 2004   flib.a is only redone when necessary (GB)
              PWCOND: missing ionode_id added (AdC)
              Fixed a bug in the restart mode of neb (CS)
              Manual updated (CS, PG)
              example6/run_example modified to prevent SP4 weirdness (PG)
              Workaround in PW/h_psi.f90 for ifc v.8 (PG)
              Misc cleanup, empty workspace module removed (PG)

27 Jan 2004   Miscellaneous cleanup
              Missing IMPLICIT NONE in PH/solve_ph.f90 was causing problems: 
              iunres was not declared and unit -1073746312 was opened (CS) 
              Recently introduced bugs in PP/projwfc.f90 and in
              PW/dynamics.f90 fixed (PG)

24 Jan 2004   Speedup in LDA+U and stress calculation (SdG)
              IBM xlf workaround (CC)
              Module pwcom removed from PW/ (PG)

23 Jan 2004   Extensive module cleanup: DP moved from wrong place
              (parameters) to the correct place (kinds); module "varie" 
              replaced by "control_flags" (not yet in pwcom, though) -
              many files changed. (PG)
              64-bit cpus (Opteron, maybe Itanium) should now work
              if __LINUX64 is defined (PG)
              The diagonalization threshold can now be read by the input file
              (diago_thr_init). In the case of a phonon calculation it is
              ignored and a warning message issued. (CS)

22 Jan 2004   More fixes for the case of local potentials only (CS)
              Bug fixed in phonon calculation with nosym=.true. :
              minus_q and related variables where not properly set
              minus_q was always .false. while instead it may be .true.
              for some value of q (gamma for instance) (SdG).
              Contribution to the stress from derivative of the bessel 
              function is obtained from the already available interpolation
              table: non-local stress calculation is much faster (SdG).
              STM images can be obtained from a calculation at "gamma";
              gamma_only variable is written/read by saveall (Guido Fratesi)
              Cell parameters written on output for variable-cell dynamics
              as requested by Tone (PG)
              Misc cleanup 

21 Jan 2004   An old bug of PWscf was still there in the noncolinear code:
              if lscf=.false. the calculation now starts from potential (AdC).
              More tweaking on ethr threshold (CS).
              Renamed reference outputs in pw_examples/example1 from "file"
              to "file.out", edited run_example accordingly (GB)
              machine.h: #define ZHETRD ZHETRD confuses pgi compiler (PG)
              Case of local potentials only fixed (?) once again (PG)
 
20 Jan 2004   The threshold for diagonalization (ethr) is now fixed to 1.D-5 
              at the first scf iteration (iter=1). A check is performed to
              verify that the resulting density is adeguate (dr2/nelec > ethr).
              If it is not the diagonalization goes on with a smaller ethr.
              For iter > 1 ethr is updated with the old recipe.
              Added a warning in update_pot that indicates "problems" in 
              wfc extrapolation. This problem has not yet been fixed.
              More pwcom modules splitting (CS)
              Fixed occupation in noncolinear code...fixed! (AdC)

14 Jan 2004   out-of-bound error in Berry Phase calculation (PG)
              Automatic checker  for examples added (GB)

09 Jan 2004   phonon did not work on 4-dim irreps (PG)
              configure.new updated to work with intel v.8 (GB)
              (which gives internal compiler error anyway)

08 Jan 2004   examples (output) updated

06 Jan 2004   Check on undefined variables, out-of-bound arrays
              Several implicit none re-added, pwcom modules split (PG)

05 Jan 2004   Tabs removed (again)
              NEB/ removed from makedeps.sh
              plotrho: added possibility to have contour lines of
              various type
              A few undefined variables defined (again) (PG)

05 Jan 2004   Cleanup of Gamma/ directory: obsolete files removed (CS)
              Gamma/ now contains only Gamma-only version of the phonon code

29 Dec 2003   kpoint_grid: 
              - Bug fixed. Array wk(:) was temporarily used beyond its
                range and in some cases, with very large number of k-points,
                the code dumped or gave totally wrong numbers.
              - Symmetry k-point reduction algorithm exploits now the
                knowledge of the ordering of points in the list. It is
                much faster, in particular for large grids (as those
                needed for el-ph interaction for instance).

16 Dec 2003   Berry-phase bugs fixed (Oswaldo)
              Added trick by FA to allow reading from file

15 Dec 2003   Fixed non-colinear version with GGA+NLCC spin-unpolarized

11 Dec 2003   Merge of Gamma and NEB versions into PW

-------------------------------------------------------------------
Intermediate version: pw-1-3-1
-------------------------------------------------------------------

 4 Dec 2003   NEB at gamma (NEB/pwgneb.x) is now available. 
              Problem with starting_magnetization in NEB code fixed
              Misc documentation updates
              chdens : fixed XCRYSDEN output (Tone)

 2 Dec 2003   spin-polarized calculations: at least one value for
              starting_magnetization must be explicitly set in input.
              Workaround for xlf compilation problem in new BFGS

<1 Dec 2003   Added two new implementations of BFGS (experimental:
              can be tested using NEB code). Noncolinear speedup

21 Nov 2003   Fixed bug in Gamma+doublegrid
              Doc update, misc. cleanup in NEB and installation

20 Nov 2003   NEB added

19 Nov 2003   misc improvements in Makefile and configure.new

14 Nov 2003   PW/memory.f90 cleanup, icc problems in c_mkdir.c

11 Nov 2003   some pointers converted to allocatable (Michele)
              new script to find dependencies  

 9 Nov 2003   bug (alpha compiler) reported by Sergey has been fixed
              new lapack subroutine, called from PWCOND, added to
                 lib/lapack.f and lib/lapack_ibm.f
              Wavefunctions arrays moved to module wavefunctions_module,
              common to all codes - required to reduce duplicated subroutine
              Module filnam in pwcom moved to io_files module
              Module units in pwcom moved to io_file
              From now on, all file names and their units and attributes
              (i.e. reclen) should be defined in Modules/io_files.f90

 7 Nov 2003   Doc updated, example 5 and some Make.* files corrected

3-6Nov 2003   "stdout" and "stderr" units introduced and used everywhere
              in the code (needed in NEB for simple output redirection). 
              Merge of colinear and noncolinear versions of input.f90
              and addusforce.f90.
              Version number updated to 1.3.1

1? Nov 2003   Tag "pwsafe" added.

29 Oct 2003   Merge of several Gamma-specific routines into PW/
              -D__LAM was not working in some cases (Michele)

29 Oct 2003   Gamma code cleanup: becp is allocated when used and
              then deallocated, obsolete module gamma removed

28 Oct 2003   PGI compiler doesn't like "external ::" 
              Minor changes to examples for noncolinear

24 Oct 2003   Speed-up of Z* calculation

21 Oct 2003   Input documentation (sort of) for PP/projwfc.f90
              Added template for developers' guide (pwdocs/refman.tex)

16 Oct 2003   bfgs modified to work with arbitrary components of the
              atomic positions kept fixed (Carlo Sbraccia)
              "Total force" now prints a more sensible quantity:
              \sqrt(\sum_{i,n} f_i(n)^2) instead of \sum_{i,n} |f_i(n)|
              Cleanup in several routines and in modules.

16 Oct 2003   US effective charges now available in the phonon code. 
              Contributed by Gernot Deinzer

15 Oct 2003   phonon: added comments to remind why dbecsum is summed 
              over processors; various calls to setv removed
              Second occurrence of wsinit and wsweight removed
              Unit number cleanup (solves problem with conflicting units)

 8 Oct 2003   Two bugs due to atomic-unit mess:
              PW/input.f90: lattice parameter a converted to wrong units 
              if input is given as a,b,c,cos(ab),cos(ac),cos(bc) instead
              of celldm(:); upftools/cpmd2upf.f90: wrong conversion due
              to Rydberg-Hartree mess. Minor cleanup here and there.
              Band plotting may output data in xmgr-readable format

 3 Oct 2003   Non-colinear version of PW added (PWNC/)
              Cleanup of PP and other routines
              Band plotting simplified
              Support for HP PA-Risc (re-)added

17 Sep 2003   Wrong coordinates written if atomic_positions='crystal'
              (thanks to Francois Willaime)
              Errors in makefiles for cygwin and hp
              Various compilation problems for t3e, alpha

-------------------------------------------------------------------
Date: 9 Sep 2003    Version: pw-1-3-0
-------------------------------------------------------------------

09 Sep 2003   Fix for a nasty bug: if one performs two band structure
              calculations one after the other, the first spoils the
              charge density and the second yields wrong results. 
              Temporary fix (AdC): start nonscf calculations from
              potential instead of rho.
              Added consistency check for DFT read from PP files.

02 Sep 2003   Parallel version of DIIS diagonalization
              Bug fix in the dielectric constant with US-PP.
              A factor i was not needed. Small differences 
              with previous results. (Found by G. Deinzer).
              io_base logic simplified. 
              Variable wf_collect added to the control namelist.
              This logical variable will be used in pw to
              collect wave functions at the end of a parallel run.
              Integer overflow in memory.x fixed (Adriano MC)

01 Sep 2003   Example outputs updated. Manual updated.
              Added scripts from Tone, Makefile for cygwin.

29 Aug 2003   Version number centralized in Modules/version.f90,
              updated to 1.3.0
              Auxiliary programs in pwtools/: equation of state (ev.x),
              distances/angles (dist.x), k-point generation (kpoints.x).
              D3 fixes (maybe). Misc cleanup.

21 Aug 2003   occupations can be read from file. 
              sp3 fix (allocation with zero length). Manual updates.
              Gamma: fixed occupations, electric fields, cleanup.

20 Aug 2003   punch_band.f90 works in parallel. Misc cleanup.
              nelec, nelup, neldw may have noninteger values

11 Aug 2003   PP/start_postproc.f90 cleanup. Manual updated. Some error 
              messages clarified. Example for Berry phase updated (BEWARE: 
              space needed between card and option after last changes to 
              input!!! K_POINT{automatic} => K_POINT {automatic} )

31 Jul 2003   More input merging (Carlo):
              All namelists and cards moved to Modules/input_parameters.f90 .
              From now on, all new input variables should be added
              to this module, and then copied to the code internal
              variables in the input.f90 subroutine
              The namelists and cards parsers are in :
              Modules/read_namelists.f90 and Modules/read_cards.f90
              files input_parameters.f90 read_namelists.f90 read_cards.f90
              are shared by all codes, while each code has its own version of
              input.f90 ( used to copy input values into internals variables ).

              EXAMPLE:
              suppose you need to add a new input variable called "pippo"
              to the namelist control, then:

              1) add pippo to the input_parameters.f90 file containing the
                 namelist control

              INTEGER :: pippo = 0
              NAMELIST / control / ....., pippo
              remember: always set an initialization value!

              2) add pippo to the control_default subroutine 
                (contained in module read_namelists.f90 )

              subroutine control_default( prog )
              ...
              IF( prog == 'PW' ) pippo = 10
              ...
              end subroutine

              this routine set the default value for pippo,
              that could vary with the code

              3) add pippo to the control_bcast subroutine
                (contained in module  read_namelists.f90 )

                subroutine control_bcast( )
                ...
                call mp_bcast( pippo )
                ...
                end subroutine

30 Jul 2003  indexing of the occupation matrices (ns,nsnew, etc) used in
             LDA+U has been redefined in a more natural order:
             ns(na,is,ldim,ldim) -> ns(ldim,ldim,is,na)

28 Jul 2003  cell parameters in the case ibrav=0 back to previous
             convention (as documented in INPUT_PP)
             Misc. cleanup, manual updated

25 Jul 2003  el-ph calculation in the US case should work properly.
             An US term in the calculation of deltaV * psi_v needed in
             elphon.f90 was missing. This was giving wrong number in version
             1.2.0, while US case was not implemented in previous versions.

23 Jul 2003  clean_pw cleaned
             symmetries are always applied in non-scf calculations
             (excepted for Berry-phase calculation):
             use nosym=.true. to prevent generation of additional points
             Example for STM added

21 Jul 2003  Fixed recently introduced memory leak, some cleanup,
             removed useless "include mpif.h"

11 Jul 2003  Atomic positions are written in a relaxation run
             in the same units used in input
             The unit cell can be given using crystallographic 
             parameters a, b, c, (all in A), cosab cosac, cosbc 
             Misc. cleanup

08 Jul 2003  Cleanup: latgen, punch_band (algorithm improved)
             Minor changes to bp_c_phase to avoid compiler warnings
             Options for LAM MPI added (as suggested by Cangiani)

01 Jul 2003  Example for conjugate-gradient diagonalization added

30 Jun 2003  Energy and forces with a finite electric field.
             Added the possibility to subtract the dipole field 
             for slab or molecule calculation.
             (See Bengtsson PRB 59, 12 301 (1999) and
              Meyer and Vanderbilt, PRB 63, 205426 (2001).)

30 Jun 2003  Bug fix in add_zstar_ue. The routine was not working with 
             one k point.
             average.f90 extended.

25 Jun 2003  More files names dimensioned to 80
             recips.f90 moved to flib and used by all codes,
             all Makefiles modified accordingly
             Examples updated, new example for band structure
             calculation added

20 Jun 2003  PW/startup.f90: longer character variable np needed
             Band extraction moved out of PP/pp.x, into PP/bands.x
             Band plotting program (PP/plotband.f90) added
             Misc corrections

18 Jun 2003  minor glitches in PW/readpp.f90, PP/plotrho.f90 fixed

12 Jun 2003  Installation cleanup; fftw are compiled by default
             All Makefiles updated for addition of Berry phase code
             iargc, getenv, getarg preprocessed
             Missing Blas/Lapack sources for pw added

11 Jun 2003  New and modified routines added for the calculation of the 
             electric polarization in crystalline solids using Berry phase 
             theory (dieguez@physics.rutgers.edu).

29 May 2003  memory estimator should work for parallel machines as well
             Manual updated

29 May 2003  Bug in diropn: tmp file name too short
             startup: more general mechanism too catch npool
             (both contributed by Serguei Patchkovskii)

28 May 2003  Minor cleanup

22 May 2003  Davidson modified to use less memory in non-US calculations
             (involves changes in several routines)
             Option "nooverlap" for Davidson removed

19 May 2003  New DIIS added (Stefano Fabris)
             Removed obsolete "scf in/out correction"

12 may 2003  MKL problem fixed (maybe)
             Manual updated

 8 may 2003  PP/chdens.f90 rewritten, different input

 5 may 2003  Some cleanup in ggen, __OLD_GGEN stuff removed,
             same code (almost) for PW and Gamma versions
             version number updated,  manual updated
             Lahey installation

24 apr 2003  More FFT restructuring (CC) 
             Updates to manual

22 apr 2003  CERNFFT, option NOPENCILS removed, misc changes
             Make.ibmsp modified to work (hopefully) without
             modifications for all codes

22 apr 2003  All setv statements in PW replaced by f90 constructs.
             Minor changes in PW & PH (code readability).

21 apr 2003  More FFT restructuring (CC)
             Makefile fixes (PP, PH, D3, Gamma)
             Calls to allocate_fft, ggen moved out of setup.f90
             Minor change in mix_rho to reduce memory use

15 apr 2003  Doc and install files updated (MKL problem)

12 apr 2003  All filenames  => 80 char
             All directories=> 80 char
             Filenames + directories + other => 256

10 apr 2003  Minor changes

09 apr 2003  beginning of parallel FFT restructuring (CC)

08 apr 2003  evc is dimensioned (npwx, nbnd) - various routines changed
             (extensive changes to wfcinit, rotate_wfc, ccginitg).
             Residual wrong dimension et(nbndx,nkstot) removed.
             Common efield_0 in PW renamed extfield to avoid name 
             clash with common efield in PH (PGI compiler)

08 apr 2003  g_psi, g_psi_mod: new preconditioning (better behaved when 
             hdiag-e*sdiag is close to zero) used in cegterg. This
             removes most of the warning messages when using Davidson
             diagonalization. Although the overall performance (number of
             h_psi performed) does not seem to change very much in small
             tests, except pathological cases like ni.band.in in example1,
             it should be wise to have a more stable preconditioning.
             cegterg: use always GEMM instead of GEMV in the update.
             electrons: in a relaxation run perform accurately the first
             iteration after ionic move but reset the diagonalization
             threshold according to the actual self-consistence for the
             following ones.

07 apr 2003  D3/Makefile : missing add_efield added
             cegterg, regterg: use GEMM instead of GEMV, do not require
             any longer evc, et to be dimensioned nbndx (et is now 
             dimensioned (nbnd,nkstot)) - misc. cleanup

03 apr 2003  chdens now can compute the dipole moment of a localized 
             charge. (ADC)
             A new routine (add_efield) has been added
             to add a finite electric field with a
             sawlike potential: see PRB 34, 7146 (1986). (by J. Tobik) 

27 mar 2003  Do not restart bfgs from previous results if
             restart_mode='from_scratch' (this time correct)
             tmp_dir => outdir in reading, everywhere
             misc. cleaning

24 mar 2003  calls to mpi_bcast replaced by calls to interface mp_bcast
             Electron-phonon with Vanderbilt according to MW (untested)

21 mar 2003  - call to dvqpsi_us in PH/elphon.f90 updated with recent
               changes (could cause core dump)
             - local_dos.f90 compilation error in parallel case
             - more mpi_bcast => mp_bcast, misc. cleaning

20 mar 2003  - relaxation using damped dynamics can be used keeping fixed
             last fixatom atoms (with the same input procedure as the bfgs
             minimization).
             - LDA+U part has been modified in order run also in the not
             spin-polarized case (some testing still neeeded).
             - Davidson diagonalization returns best estimate for
             eigenvalues and eigenvectors also in the case that not all
             roots have converged. This is more consistent and should
             somehow alleviate the problem of WARNING messages in scf and 
             band structure run.
             - Number of beta function in pseudopotentials increased to 8.

19 mar 2003  fix for problem when reading local potential fixed again
             Make.pc_abs fixed, minor documentation update
             Wrong call to sgama in PH/star_q.f90 fixed

14 mar 2003  data for preprocessing on parallel machines can be read
             from standard input
             problem when reading local potential on ibm-sp3 fixed

13 mar 2003  obsolete core-charge only term (etxcc) removed
             from bfgs.f90 and set_rhoc.f90 
             direct calls to mpi_bcast replaced by calls to mp_bcast
             Misc. minor changes

11 mar 2003  Startup subroutines of all codes now calls
             mp_start and mp_env mp module subroutines instead of
             mpi_... directly. This is a first step in the direction
             of hiding the communications within a few basic modules.

10 mar 2003  "configure" bug for pc cluster and intel 6
             Make.rules_cpp => Rules.cpp, Make.rules_nocpp => Rules.nocpp
             lapack_mkl.f added, __MKL removed
             Make.{fujutsu,sxcross}, compile error in restart.f90 (Guido)
             electrons, punch_band, plot_bands: use the same format
             for reading and writing eigenvalues

 3 mar 2003  PP/dos.f90: density of state is written in #state/eV vs eV
                         (it was written in #state/ryd vs eV) .
             PP/projwave.f90: pwojwfc.x writes on standard output projections
               on atomic states in a "human-readable" format, it writes
               atomic-projected dos on files with self-explanatory names 
               ( such as 'prefix'.pdos_atm#1(Ni)_wfc#2(d) in example8 ).
               A variable io_choice= {'standard' | 'files' | 'both'} in 
               the namelist specifies where output is written.
             example8: generation of pdos added to the example.
             example1-9:  modified so that 'cd results' statement is
               executed before 'rm -f $TMP_DIR' one ... Otherwise defining
               the current directory as TMP_DIR would result in removal of 
               all files in the example directory.

28 feb 2003  filemd => 'prefix'.md, filebfgs => 'prefix'.bfgs
             Misc. T3E fixes

27 feb 2003  Misc. installation changes

27 feb 2003  Bug in PW/new_ns.f90 (Lixin He) fixed
             Symmetrization of occupation matrix ns needed for LDA+U
             calculations used incorrectly d2 matrices instead of their 
             transponse. Similar error corrected also in PP/projwave.f90

24 feb 2003  Bug in Gamma/raman.f90 (Xhongjun) fixed 
             Bug in PP/work_function.f90 (Pingo) fixed (sort of)
             LIB, LIBS => LIBS in all Makefiles

21 feb 2003  Support for lahey compiler added (Verissimo-Alves):
             "error" renamed to "errore", "rnd" to "rndx"
             bug in io_base fixed
             PARA => __PARA
             cinterpolate moved into interpolate
 
11 feb 2003  Support for nec sx6 added (Guido Roma)

10 feb 2003  Support for sun completed
             Better checks for q2r.f90

10 feb 2003  lda+u stuff modified in order to work also for non-d
             localized orbitals. Hubbard_l=0,1,2,3 are now possible.
             It has been tested that calculations done for Hubbard_l=2
             are reproduced. More testing on non-d material needed.

 7 feb 2003  module allocate, calls to mallocate, mfree removed
             pointers replaced by allocatable whenever possible

-------------------------------------------------------------------
Date: 29 Jan 2003    Version: pw-1-2-0

-------------------------------------------------------------------

29 Jan 2003  Variable-cell dynamics: if the simulation starts from scratch,
             remove existing files (e, eal, ave, avec, p, tv) from previous
             simulations, give a warning.

28 Jan 2003  More manual and examples updating, license added where missing
             bug in Z* and in dynmat.f90 fixed.
             New chdens from Tone.

27 Jan 2003  More manual updating, minor Makefile changes.
             merge of constants.f90 with CPV/FPMD.
             phcom.f90: variable max_irr_dim introduced
             (max dimension allowed for irreps: replaces "iswitch=-3")

26 Jan 2003  Manual added and (partially) updated

25 Jan 2003  Makefiles modified to work if some directory is missing
             INSTALL file added, pwdocs/INSTALL.obsolete obsoleted,
             README worth reading, misc. cleaning

24 Jan 2003  More changes to installation files
             small change in input.f90 to allow use of debugger
             Do not (yet) use UPF format to write PPs in restart file:
             other types of PP will not work
             Documentation of examples, PP in UPF format updated

23 Jan 2003  Misc changes to installation files and module finder,
             missing file added to PH - PG + CC

20 Jan 2003  Added dielectric tensor calculation with USPP
             (experimental) - AdC

19 Jan 2003  NEW DIRECTORY STRUCTURE, O-SESAME, NEW CVS SERVER

15 Jan 2003  Two small bugs in the recover fixed (SdG and ADC)
             if disk_io=low or restart_mode=from_scratch remove 
             existing restart file if present.
             Recovering with disk_io=high from a disk_io=low run
             is possible. Also the opposite is possible.
             More information on the restarting procedure is echoed 
             to the output file.
             Relaxation and dynamics echo the atomic coordinates in the
             output file in the same format used in input.
             When doing damped dynamics relaxation, do not issue a warning
             about dynamics and symmetry. In this case the use of symmetry 
             is legitimate.

13 Jan 2003  More output format fixes (CC):
             - bug fix for the old style punch (when compiling
               without __NEW_PUNCH ): now it seems to work
             - variables pseudo_dir and pseudop moved to module "io"
             - new module upf_to_internal added
             - in the restart file now the pseudopotentials are stored
               in the upf format. Therefore the code phonon restarts from
               the upf and re-computes the internal variables. It seems
               to work but more check are needed.
               With this new feature we are close to compute phonons using
               the CP codes restart file, this is not yet possible 
               because the charge density is still missing in restart file,
             UPF converters: error in format (variable "rel")
             (found by David Vanderbilt)

10 Jan 2003  Gamma adapted to recent changes in I/O, misc cleaning
             A bug and alpha compilation problems fixed in chdens (PG)

07 Jan 2003  bug fix in io_base.F90, parameters.f90 (CC) :
             - maximum number of k point in read_restart_header
             - check on pseudo dimension modified when reading
               and writing restart

04 Jan 2003  new restart and output files (CC)
             - bug fixes, problems with pools fixed
             - io_base changed, a lot of check and a new wave functions writing 
               procedure added. The goal is to have a layout independent from i
               the number of processors and pools and compatible with the CP90
               and FPMD-N code
             - parameters.f90 and dimensions.F90 merged
               now parameters.f90 is common to the three codes.
             - restart.F90: the possibility of specifing the amount of data to
               be written has been added. in writefile_new one could specify
               'dim' or 'all' (more will be implemented soon ), in 
               readfile_new one could specify 'dim', 'nowave', 'all'
             - new vector igk_l2g ( read igk local to global ) with the mapping
               of g+k vector added ( required to collect all wave functions
               from different processors and pools )
             - __NEW_PUNCH macro temporarily added: without defining this macro
               the saveall procedure is still used to communicate with phonon
             * NOTE * with __NEW_PUNCH active, every time the punch is called,
             the subroutine collect all wavefunctions from different pools and
             dumps everythings in the ".save" file that is independent from 
             the procs geometry.
             * NOTE * with __NEW_PUNCH active the PHONON code try to read wave
             function from the "*.wfc" files, if they are not present PHONON
             tries then to read wave functions from the ".save" file.
             For the time being this is the way to proceed if we want to
             calculate phonon with a different processor geometry with
             respect the SCF calculation.

03 Jan 2003  bug fixing (SdG):
             - configuration read from file when needed or required.
             - stress calculation in the LDA+U case is now working properly .
             - pool management in parallel case works with the new mp_global 
               module. Writing of the pwscf.save file still gives some problem.
             More small changes to the LDA+U stuff, more pointers transformed
             into allocatable allays, some formatting changes. 
             UPF specifications updated (PG)

28 Dec 2002  More Gamma merging (PG)

27 Dec 2002  Beginning of Gamma merging (PG)

20 Dec 2002  matdyn can do phonon DOS
             Added tools/lambda.f90 for electron-phonon calculation
             removed tools/dos.f90 (obsolete)
             Minor changes in Gamma forces and stresses 
             NC to UPF converter: wrong core corr for analytical PP

18 Dec 2002  PG:
             Minor change in input suggested by Tone:
             ngauss => smearing ('gaussian', 'methfessel-paxton' etc)
             call to "system" (alpha only) removed to prevent conflict
             with namelist "system" (Guido Roma)
             matdyn modified to handle phonons at q=0
             CC:
             array ig_l2g, that will be used to map local and global g 
             vector index, added to pwcom. This array is required to 
             collect wave functions across processors following a well 
             defined g vector orders, the same order as in CP90 and FPMD-N
             variable ngm_g, ngms_g, ngm_l and ngms_l added to store local
             and global number of g vectors.
             pool-related globally accessible variables added to the module 
             mp_global
             global and local number of g vectors computed in data_structure
             ggen modified to build local to global g vectors index map!
             To be tested in parallel execution with processor pools active!!

17 Dec 2002  LDA+U forces and stress implemented. Atomic wavefunctions used 
             in the definition of LDA+U projector are NOT orthogonalized in
             order to simplify the computation of the above quantities.
             "nosym" option should now work also for automatically generated
             k-point grids. Misc cleanup.
             Initialization of starting_magnetization fixed

12 Dec 2002  Behavior of "nosym" option changed: if nosym = .true.  do not
             force k-points to cover the entire BZ. Misc cleanup.

 9 Dec 2002  Converters updated to recent UPF changes

 6 Dec 2002  Fixed Gamma-only forces for US case (addusforce was wrong)
             Fixed confusing error message if tmp_dir does not exist
             Max l for Q functions dynamically calculated

 5 Dec 2002  mixing modified so as to mix also LDA+U stuff.

 4 Dec 2002  Minor changes to UPF format
             Minor bug in UPF reading fixed (upf%typ was not defined properly 
             if not US).
             Small changes in LDA+U.

 3 Dec 2002  clean-up: iprint -> iverbosity, kwrite -> iprint
             Restart from files (configuration,potential,wfc) should
             work. In order to do so the code writes pot/rho files at each
             iteration and wfc at convergence even if disk_io='default'.
             If disk_io='high' the code attempts to restart from detailed 
             history of the interrupted run.
             Files old1pot, old2pot in update_pot renamed 'prefix'.oldrho 
             and 'prefix'.oldrho2 in similarity to 'prefix'.oldwfc and 
             'prefix'.oldwfc2

 2 Dec 2002  Added Gamma-only scf and phonon code (experimental)

29 Nov 2002  Added support for Hitachi. Indentation and cleanup.
             ecut(:) removed in data_structure as well.

28 Nov 2002  clean-up: iswitch.gt.4 removed everywhere;
             input_pot and output_pot removed, use prefixed filenames;
             rename beta(:)->mixing_beta, and ecut(:)->ecutwfc everywhere.
             File prefix.config and variable startingconfig='file'|'input'
             introduced in order to allow to restart from an interrupted 
             relaxation or dynamics even when disk_io.ne.'high'... 
             Restart still to be changed accordingly.

26 Nov 2002  Variable "becp" put in a separate module
             (needed for inclusion of Gamma-point version).
             Convergence thresholds for minimization also apply
             to damped (Beeman) dynamics that now stops if they are
             fulfilled before completing all nstep ionic steps.

25 Nov 2002  input_pot variable suppressed. Feature replaced by 
             startingpot='atomic' or 'file'
             Starting diagonalization threshold (ethr) modified accordingly:
             when startingpot=='atomic' ethr is initially loose;
             when startingpot=='file' (always for nscf and phonon) starting
             potential is expected to be good and ethr is tight from the 
             beginning.

22 Nov 2002  atomic labels are set to (len=3) everywhere
             Version number updated

21 Nov 2002  use of input variable calculation, ion_dynamics and
             cell_dynamics modified. calculation define more specifically
             the kind of computation to be performed (scf,nscf,phonon,
             relax,md,vc-relax,vc-md) and the other variables provide 
             possibilities for additional tuning. see INPUT_PW for details.
             length of character variables atm and atom_label incresed to 3.
             freq_pw renamed to gauss_freq (a less pw-centered name).
             Variables psi(:,np) and aux(:,:) explicitely zeroed before
             use in order to avoid ZGEMV and ZGEMM to return garbage if 
             they are undefined.

14 Nov 2002  CELL_PARAMETER card should be correct
             Added support for sun machines
             POINTER => C_POINTER

13 Nov 2002  INPUT_PW updated
             sp4 problems:
                freq renamed to freq_pw
                (name used by hardware performance monitor)
                Makefiles changed to allow loader different from compiler
                *.f90 allowed also by ibm with appropriate flag
                cegterg: change pointers to allocatable

12 Nov 2002  More (extensive) input changes

07 Nov 2002  Serious numerical problem with spherical harmonics 
             Converter from CP format to UPF fixed

04 Nov 2002  UPF reading recast in a more portable (to other codes) way.
             addusforce: don't do anything if there aren't any US PP

21 Oct 2002  Variables for lda+U added to new input
             Serious bug in conjugate-gradient diagonalization
             (cinitcgg.F90) fixed
             bcast_input did not compile on parallel machines
             some cleaning here and there

21 Oct 2002  Variable Hubbard_alpha added. It is used in the calculation 
             of Hubbard_U. Minor typographical changes in some routines

16 Oct 2002  input: dynamics + constraints, isolve suppressed

15 Oct 2002  unexpected energy window plotted by pplib/dos.x .
             sph_bes and qvan2 modified for L=3 pseudopotentials
        
10 Oct 2002  Missing input variables added to input.F90
             Fixed a mismatch between where the potential is
             and where it is read from.
             Bug in pplib/chdens.F90, pplib/average.F90 fixed
             Makefile, other minor changes in pslib/

 1 Oct 2002  L=3 pseudopotentials should work for both NC and US PP:
             ylmr2 and d_matrix rewritten, init_us_1 modified.
             read_pseudo_pswfc now reads properly atomic wavefunctions
             in the UPF format.

20 Set 2002  Minor changes preliminary to l=3 implementation in US PP

19 Set 2002  New input - works also in parallel

-------------------------------------------------------------------
Tag: pw-newmix

23 Aug 2002  Memory leak in mix_rho (rhoutsave not deallocated) fixed
             Compilation problems in electrons with old xlf compiler fixed
             Documentation update

22 Aug 2002  ibrav=0 case added to postprocessing 
             "call remove" has been removed

21 Aug 2002  new charge density mixing schemes added. 
             Four (4) mixing schemes are available according to the value
             of the variable mixing_style in the namelist.
             mixing_style='potential' (default): the same as before
             mixing_style='plain': charge density mixing where a step
                           (of lenght beta) in the delta_rho=rho_out-rho_in
                           direction is taken.
             mixing_style='TF': charge density mixing where delta_rho is
                           screened with a homogeneous TF model.
             mixing_style='local-TF': charge density mixing where delta_rho 
                           is screened with a local-density dependent TF model.
             The scf accuracy control variable dr2 should now provide a
             fairly good estimate of the error in the energy due to lack of
             selfconsistency. The scf threshold tr2 has therefore to be set
             accordingly. Setting of threshold ethr also revisited.
             Force scf correction should be ok, as well as relaxation settings
             (possibly being more strict than really needed).
             No effort was made yet to recover form interrupted runs or treat
             properly restart from potential/charge of previous similar runs.

Date: 20 Aug 2002    Version: pw-1-1-2
Changes with respect to version pw-1-1-1 :
-------------------------------------------------------------------
             more UPF converter and miscellaneous cleanup
             added support (maybe) for beowulf clusters with intel compiler 

19 Aug 2002  Added possibility to calculate DOS from Emin to Emax (Tone)
             Some cleanup of converters to UPF 

17 Aug 2002  new PP_FORMAT implemented in PWSCF.
             Tested on:
             Al.vbc, As.gon, Pb.bhs3, (Analytical NC: minor differences due 
                                       to conversion of the local potential 
                                       to numerical form)
             Fecc.mt,                 (Numerical NC: no differences)
             CuUS.RRKJ3,FeUS.RRKJ3,NiUS.RRKJ3 (New US: no differences)
             Au.vdb,                  (original US: no differences)
             Test on more pseudopotentials welcome.
             PP converters in pslib now produce pseudo in the new format. 
             Some fixing was needed but now things seems to work. 
             More testing welcome.  
             More sensible layout of PP_INFO field and of PP information 
             printed by PWSCF needed.

29 Jul 2002  bugs in new version of projwave (both scalar and
             parallel case) fixed
        
23 Jul 2002  projection on atomic states moved from postproc to
             a separate program "projwfc.x". More readable output.
             More Makefile fixes (origin)

19 Jul 2002  obsolete system/Makedeps* removed.
             BUGS file updated.
             Misc. fixes (thanks to Palaiseau people):
             kfac was not deallocated in stres_knl,
             tmp_dir too short in bcast_input,
             various Makefile fixes (to be verified).

12 Jul 2002  Fast 3d plot in pplib/chdens available
             Check presence of argument "-npool N" in para/startup
             (some PC compilers give an error otherwise)

10 Jul 2002  Only one "filpun" file is written in the parallel case
             (but the wavefunction file is still distributed):
             pwlib/openfil, saveall, punch, read_file modified,
             documentation updated.
             Error in phlib/stop_ph due to use of uninitialized
             variable (iunres instead of iunrec) fixed

09 Jul 2002  pwlib/gen_us_dj: the definition of the first point for
             which the spherical bessel functions are computed is
             now consistent with the check performed in sph_bes.F90.
             (Problem pointed out by Shobhana Narasimhan)

09 Jul 2002  pplib/plot_io : read/write also atom name, type, charge,
             use nr3 and not nrx3 to write/read
             pplib/chdens, average, modified accordingly, various cleanup
             sph_dhar removed and replaced by dylmr2,
             gen_us_dy modified accordingly

08 Jul 2002  sph_har removed and replaced by ylmr2
             init_us_2, gen_us_dj, atomic_wfc updated accordingly
             restart=.false. by default (documentation updated)
             Misc. cleaning and indenting
             New version of aainit: should be easier to generalize
             to higher l (SdG)

02 Jul 2002  machine.h, Make.* modified : all preprocessing options 
             can be given directly in the Make.* file, no need to
             make changes in the code - documentation updated
             More cleaning and indenting

28 Jun 2002  Support for Fujitsu added (Guido Roma)
             Various Alpha fixes (Francesco Antoniella and others):
             Make.alpha updated (correct preprocessing options),
             pwlib/cft_3.F90 for dxml/cxml libraries, pwlib/scnds.F90,
             uninitialized variable in pwlib/read_pseudo.F90 (scan_begin)
             pplib/elf.F90, pplib/voronoy.F90 compilation problems
             pplib/punch_band.F90 modified to write an output that
             can be read by new file tools/band_plot.f90
             (Francesco Antoniella)
             KIND => kind everywhere
             readin: tests for lsda are needed only by scf calculations
             nh statically dimensioned
             some obsolete variables removed
             Make.t3e updated (CINECA-specific stuff removed)

 3 Jun 2002  Fixed a problem with restart file introduced by the last
             changes. klen, dircls, remove removed.

31 May 2002  Doc update, more readin.F90 cleaning
             Non-lscf calculation closes correctly files (small changes
             to electrons, pwscf, ions)
             No more node number added to sequential files for the first
             processor in parallel execution (seqopn); diropn cleaned

30 May 2002  ltetra is now distributed in bcast_input

30 May 2002  INPUT_PW, Make.pc_abs updated, cleanup of readin.f90

15 May 2002  Documentation update, problems in Makedeps

10 May 2002  added directory Doc/ containing web pages
             some variables moved from module para.f90 to data_structure.F90

Date:  7 May 2002    Version: pw-1-1-1
Changes with respect to version pw-1-1-0 :
-------------------------------------------------------------------

              add input check on presence of gaussian broadening for LSDA
              restart_in_ions : do not destroy vnew, it is needed in
              force calculation (scf correction term)

18 Apr. 2002  gradcorr, dgradcorr: two FFTs spared
              cgracsc moved to pplib/ (not used in any other place)
              file BUGS added
              fixed bug in stres_us for non-us PP and one k-point
              (same problem of force_us, see 5 Apr.)
              newd does not waste cpu time if no US PP's are present
              projection on atomic wavefunctions (projwave.F90)
              now works also for atoms with semicore states.
              dynmat.x: added calculation of IR cross sections,
              write correct displacement patterns in "molden" format.
              Misc. indentation and cleaning
              indexes, indeces => "indices"
        
 8 Apr. 2002  same changes as in the f77 version in order to fix a few 
              problems in the parallel version of d3tot: klen function
              is declared external whenever is used; reading/writing
              of fildrho is performed by the first node of each pool;
              npwq is defined in d0rhod2v.F also when lgamma is .true.;
              routine symd0rho is called by psymd0rho even if nsymq=1.
              A couple of more partial contributions to d3mat are written
              on disk if wraux=.true.

 5 Apr. 2002  force_us did not work for non-us PP and one k-point
              (as a consequence of a change introduced in sum_band)

27 Mar. 2002  Make.rules.ibm corrected (again)
              pplib/stm.F: stm_wfc_matching was incorrect
              (thanks to Maria Peressi)
              pwlib/cegterg.F90: removed spurious \ introduced yesterday

26 Mar. 2002  Indentation and cleaning of several routines.
              phlib/dynmatcc.F90 heavily modified.
              Only pseudopotential arrays including structure factors
              are now used: the meaning of variables nkb and vkb has
              changed (they replace variables nkbtot and allvkb),
              many routines (mostly in d3lib/) changed accordingly,
              pwlib/apply_phase.F90 deleted.
              system/Make.alpha, pwlib/readin.F90 modified, added
              system/Make.alphaMPI (Guido Roma, Giovanni Cantele).
              pwlib/cegterg.F90: useless operations not performed
              at the end, aux is as big as needed (and not any more)
        
21 Mar. 2002  h_1psi, s_1psi replaced by wrapper routines that call
              h_psi, s_psi ; add_1vuspsi deleted, misc. cleaning
        
20 Mar. 2002  fixed compilation error in tools/dynmat (thanks to B.R.Sahu)
              Make.rules.ibm corrected
              Warnings in include/error_handler and tools/q2r fixed

19 Mar. 2002  various Makefiles fixes
              dgradcorr not called if gradient corrections absent
              (Portland compiler did not like it)
        
Date: 15 March 2002    Version: pw-1-1-0

-------------------------------------------------------------------
12 Mar. 2002  More complex(16) fixed, misc. cleaning

 8 Mar. 2002  Fixed bug in dvpsi_e.F that could yield bad dielectric tensors
              and effective charges (there was an inconsistency in 
              indexing of pseudopotential arrays)

 6 Mar. 2002  Potential problem in 2N+1 fixed: Patterns are now written
              by phonon and read (and not generated again) by d3tot.
              This should guarantee consistency between the two sets.
        
 6 Mar. 2002  More compilation errors for parallel machines
              Function "capital" replaced with one that PG compiler likes

 5 Mar. 2002  Small changes to compile on SP3 the phonon program
              Support for PGI compiler added
              Bug in mallocate fixed 
              
 4 Mar. 2002  ported changes to dos.f from 1.0.2

 1 Mar. 2002  Updated README.INSTALL

14 Feb. 2002  changes parallel to those made in 1.0.2 are introduced
              pwlib/readin.F90: / / => //

12 Feb. 2002  changes parallel to those made in 1.0.2 are introduced

25 Jan. 2002  tools converted
              Synchronization with latest f77 version
              Support for Intel compiler
              Misc. cleaning

20 Dec. 2001  d3lib completely converted, misc. cleaning

19 Dec. 2001  Added pplib (untested), d3lib (does not work)
              Misc. cleaning, removed spurious files

18 Dec. 2001  Initial f90 release 
