  An algorithm is presented for generating finite modular, semimodular, graded,
and geometric lattices up to isomorphism. Isomorphic copies are avoided using a
combination of the general-purpose graph-isomorphism tool nauty and some
optimizations that handle simple cases directly. For modular and semimodular
lattices, the algorithm prunes the search tree much earlier than the method of
Jipsen and Lawless, leading to a speedup of several orders of magnitude. With
this new algorithm modular lattices are counted up to 30 elements, semimodular
lattices up to 25 elements, graded lattices up to 21 elements, and geometric
lattices up to 34 elements. Some statistics are also provided on the typical
shape of small lattices of these types.
