Vasp has still a quite flat hierarchy, i.e. the modularity of the code is not extremely high. But increasing the modularity would have required too much code restructuring and man power which was not available (the current code size is approximately 50 000 lines, making a complete rewrite almost impossible).
Each structure in vasp.4 is defined in an include file:
base.inc lattice.inc nonl.inc pseudo.inc broyden.inc mgrid.inc nonlr.inc setexm.inc constant.inc mkpoints.inc symbol.inc mpimy.inc poscar.inc wave.incIf one wants to understand vasp one should start with an examination of these files.