update: add driver for BHZ model driver/ed_bhz.f90 (not working yet)
Merge branch 'devel'

Conflicts:
	Makefile
Merge branch 'master' of github.com:aamaricci/CompleteED
memory issue found and fixed.
- the system as allocating the maps to and from Hilbert space and Sector space
into huge arrays of the size of:
map: Nsector*size(Nsector)
invmap: Nsector*2**Ntot <-- this one was very big.
This approach is a bad behavior from fullED approach (Ns is small).

After several attempts and check with respect to M.Capone codes I
decided that the best practice here is to allocate and use a single
map (in any case of the order of the largest Sector) and use binary_search
instead of inverse map.
The line of reasoning is this:

invmap maps the Nstates(nup,ndw) (say 36) in the Hilbert space, i.e. Nstates(nup,ndw)
numbers among the 2**Ntot one (36 among 256). If you look at invmap
you will see that it contains mostly zeros. The non-zero elements are of the form
i_h^l   l
where i_h^l are the states in the Hilbert space, l=1,...,Nstates(nup,ndw) (36).
One could in principle store the information in two separate arrays, one for the rows (i_h^l)
one for the values (l). But you will soon understand that rows coincides with the map,
and values are an identity, in any case you have to search for the position of the
i_h^L for a given L in the first vector. So better not allocating anything and
search in the map. This is a "memory cheap" way to invert the map.

The code has been tested against the former, working F77 code.
Results are in perfect agreement.
Cleaned up last version.
Merge branch 'devel'