Questions and problems?


A program stops with some message implying a need to increase some size(s), e.g.
     Real Memory requirement of: 9740309  exceeds MAXREA of 2000000

     Hollerith Memory requirement of:  889171  exceeds MAXHOL of  400000

     Static Integer Memory requirement of:10503252  exceeds MAXINT of 3000000

|     Memory Use     Allocated         Used
|     Real             2000000      9740309
|     Hollerith         400000       889171
|     Integer          3000000     10503252

|     Max Nonbonded Pairs: 8400000
  ** Redimension and recompile
      * NB pairs          296     5399790 exceeds capacity
     (     5400000)   0
          SIZE OF NONBOND LIST =    5400000
      EWALD BOMB in subroutine ewald_list
      Non bond list overflow!
      check MAXPR in sizes.h
  increase the int memory by    1739222 words
How do I resolve the problem?

Look in that program's directory for a file named sizes.h - if it exists, see if some parameter in the file matches the error message, if so update it and recompile.
If there is no sizes.h, check in the main source file for that program for a parameter statement with the parameter, for example in src/etc/ambpdb.f:

      parameter( MAXATOM=150000 )

System or program complains about memory problem

  **failed to allocate pair array, bytes: 633541986

Unix systems can place default limits on memory use; try

% limit
to see what these may be, if any. Often you can
% unlimit datasize
and get your program to run.

Why does the program run on one machine and complain dimensioning on another?

Modern machines can do dynamic memory allocation in fortran. If -DMEM_ALLOC is in the config.h (or in the MACHINE file in amber7) then the program gets the memory it needs automatically without recompiling. If -DMEM_ALLOC is specified and the program still complains about not enough memory then the machine probably does not have enough physical memory. If -DMEM_ALLOC is not specified (primarily for older fortran 77 compilers and g77), then the sizes specified in the fortran code are enforced and they have been exceeded. In this case the sizes must be increased and the program recompiled. Parallel versions have different memory requirements than non-parallel and may need more memory in some cases, especially for a parallel run on a multiprocessor machine.

Last modified: .