We have developed a modular parallel code implementing the Car-Parrinello [
Phys. Rev. Lett. 55 (1985) 2471] algorithm including the variable cell dyna
mics [Europhys. Lett. 36 (1994) 345; J. Phys. Chem. Solids 56 (1995) 510].
Our code is written in Fortran 90, and makes use of some new programming co
ncepts like encapsulation, data abstraction and data hiding. The code has a
multi-layer hierarchical structure with tree like dependences among module
s. The modules include not only the variables but also the methods acting o
n them, in an object oriented fashion. The modular structure allows easier
code maintenance, develop and debugging procedures, and is suitable for a d
eveloper team. The layer structure permits high portability. The code displ
ays an almost linear speed-up in a wide range of number of processors indep
endently of the architecture. Super-linear speed up is obtained with a "sma
rt" Fast Fourier Transform (FFT) that uses the available memory on the sing
le node (increasing for a fixed problem with the number of processing eleme
nts) as temporary buffer to store wave function transforms. This code has b
een used to simulate water and ammonia at giant planet conditions for syste
ms as large as 64 molecules for similar to 50 ps. (C) 1999 Elsevier Science
B.V. All rights reserved.