|
|
## [Compilation](compilation)
|
|
|
|
|
|
### Since V04-00-00 (fortran90)
|
|
|
The delivered Makefile foresees the compilation of a single pede executable with dynamic
|
|
|
allocation of memory. Simple 'cd MillepedeII; make', compiles the executable.
|
|
|
This requires gcc version 4.4 or higher. For larger problems (>8GB of memory) a 64bit
|
|
|
system is necessary.
|
|
|
|
|
|
### Before V04-00-00 (Fortran77)
|
|
|
The delivered Makefile foresees the compilation of pede executables with different amount
|
|
|
of memory. Simple 'cd MillepedeII; make', compiles three executables:
|
|
|
pede (400 MB memory), pede\_1GB and pede\_2GB (memory as the name indicates).
|
|
|
If your problem requires more space due to a high number of parameters or a dense matrix,
|
|
|
you need a 64-bit system and probably a special compiler flag, see the comments in the
|
|
|
Makefile. The maximum memory possible is with 32 bit integers for internal (FORTRAN)
|
|
|
memory management 2147483647 = (2^31 - 1) words, i.e. about 8.5 GB.
|
|
|
With version V03-01-00 64 bit integers are available (FORTRAN95, gfortran) to overcome
|
|
|
this limit.
|
|
|
|
|
|
The Makefile of the recent version is written for gcc 4.1.2 (the reference compiler is:
|
|
|
gcc version 4.1.2 20080704 (Red Hat 4.1.2-50) ), but it works for later gcc relases until
|
|
|
4.4.X. See comments in the Makefile to make it work for gcc version 3.X.Y (64 bit
|
|
|
integers not recommended) or gcc 4.5.X and 4.6.X. Please contact the mailing list about
|
|
|
necessary fixes you know about to use other compilers.
|
|
|
|
|
|
The gcc 4.4.0 compiler is not recommended. When starting from perfect alignment, we
|
|
|
noticed that it can happen that pede stops without finding a non-trivial minimum
|
|
|
("Function not decreasing..."). This is not understood, but since gcc 4.1.2 and gcc 4.3.4
|
|
|
behave like expected, i.e. finding small corrections, we guess that it is a gcc 4.4.0
|
|
|
problem. Update: Same seen also with gcc 4.5.1! Needs to be investigated...
|
|
|
|
|
|
Starting with gcc 4.4 the MINRES pre-conditioner for bandwidth zero (PRECON) is not
|
|
|
compiled correctly. This problem is avoided with version V03-04-01 by rearranging some
|
|
|
lines in the source code. |