next up previous contents index
Next: Most important Structures and Up: Parallelization of VASP.4 Previous: Parallelization of VASP.4   Contents   Index

N.B. This document is no longer maintained, please visit our wiki.

Fortan 90 and VASP

VASP was widely rewritten to use the power and flexibility of Fortran 90. On passing one must note that performance was not a high priority during the restructuring (although performance of VASP.4.x is usually better than of VASP.3.2). The main aim was to improve the maintainability of the code. Subroutine calls in VASP.3.2 used to have calling sequences of several lines:

This was an outcome of not using any COMMON blocks in VASP.3.2. Due to the introduction of derived types (or structures) the same CALL consists now of only 2 lines:
This adds considerably to the readability and structuring of the code. It is now much easier to introduce and support new features in VASP. We estimate that the introduction of F90 reduced the time required for the parallelization of VASP from approximately 4 to 2 months.

In VASP.3.2 work arrays were allocated statically and several EQUIVALENCE statements existed to save memory. The introduction of new subroutines requiring work arrays was always extremely tedious. In VASP.4.x all work space is allocated on the fly using ALLOCATE and DEALLOCATE. This results in a smaller code, and makes the program significantly safer.

Finally VASP.4.x uses MODULES wherever possible. Therefore dummy parameters are checked during compilation time, making further code development easier and safer.

N.B. Requests for support are to be addressed to: