VMMINTRO(1)                      VERSION 1.0                       VMMINTRO(1)

NAME
         vmmintro - introduction to the VMM package.

DESCRIPTION

         The  Virtual   Memory   Manager  package   (VMM)   is  a   run   time
memory-space / disk-space management system whose  purpose is to maximize  the
flexibility in memory/disk partition provided a minimal memory coding approach
has been adopted by the  user.  VMM is composed  of a set of FORTRAN  callable
functions used to control the distribution of fields (e.g., dynamic  variables
of a model,  work fields, ...)  between a machine's  central memory space  and
disk space.

         In order  to use  VMM, the  user  requests at  the onset  of  program
execution, a certain amount of memory which  will be under the control of  the
Virtual Memory Manager.  All VMM functions will then operate within the limits
of this memory space.

         Vmm's operations are automated in as much as they free the user  from
having to continually worry about whether  a certain variable is in memory  or
on disk.   Furthermore, the user does not need to know the actual position  of
a variable on either medium; it is VMM's responsibility to manage the location
of fields on disk and in memory. It is also of VMM's resort to make sure  that
all necessary fields have been adequately written to disk whenever necessary.

         VMM's functionality may be divided into four major categories:

             1-  the allocation of memory space.
             2-  the management of variables and their characteristics.
             3-  the management  of the  allocated memory  space and  reserved
                 disk space. 
             4-  debugging and fine tuning.

         In  the  first  category,  we  find  functions  for  the  allocation,
deallocation and optimization of memory space.  An additional function  allows
the user to find out how much memory is still available at any one time.   The
functions  used for  the  allocation of  memory are: vmmallc, vmmhpa,  vmmhpd,
vmmlse and vmmpak.

         The ability  to  manage  variables  is  provided  through  a  set  of
functions that  serve  in the  creation  or  modification of  variables.    In
addition to a name and some dimensions, each variable is given, by the user, a
list of attributes which inform the Virtual Memory Manager of the actions that
must be taken during memory to memory  or memory to disk transfers and  during
memory optimization operations.  Vmmcre,  vmmatt and vmmrnm are the  functions
used for the management of variables and their characteristics.

         The third category is composed of functions for loading and unloading
fields from memory,  for saving variables  to disk and  for controlling  which
fields may be displaced or ejected  from memory.  This category also  includes
functions that allow  the user  to access and  modify the  contents of  memory
resident fields.  The  management of the allocated  memory space and  reserved
disk space   is done by  using the functions  vmmlod, vmmget, vmmlck,  vmmuld,
vmmulk, vmmuln, vmmrls, vmmfgt, vmmsav, vmmcpk and vmmpwd.

         Debugging and  fine  tuning  assistance  is  provided  by  a  set  of
functions which among other  things, allow the user  to control the amount  of
information that is printed by the  VMM package, and for which variables  this
information will be printed.  Another function  prints diagnostic messages  on
the user's utilization of the  package.  Aid in  debugging and fine tuning  is
available through the functions vmmdbg, vmmdmp, vmmcks, vmmint and vmmdiag.

AUTHORS

         J.Caveen, M. Lepine, M. Roch - RPN

FILES
         Vmm_controle   -file  containing  all  the  control  structures   and
                         information  tables  used   by  the  Virtual   Memory
                         Manager.

         Vmm_[01-09]    -files where variables  are saved  according to  their
                         class,  as  defined  by  the  user  with  the  vmmcre
                         function.  These  files are  refered to  as VMM  data
                         files in the documentation.

ENVIRONMENT VARIABLES

         VMM_CONFIG 'directory debug_mode output_file'

                directory   -path to the directory  where all the VMM  control
                             files will be saved.

                debug_mode  -integer value to indicate whether or not the  run
                             time diagnostic messages should be printed. 
                             debug_mode = 0 - no messages 
                                        = 1 - print all messages

                output_file -name of the  file where  all diagnostic  messages
                             will be written.   Normally, VMM uses stdout  for
                             all diagnostic messages.

                Examples
                     VMM_CONFIG=' ./  1  VMM_out'          (Bourne shell) 
                     setenv VMM_CONFIG ' ./  1  VMM_out'   (C shell)

NOTES

         All VMM functions are of type integer and return a value greater than
or equal to zero upon successful completion.

         The presence  of  the  control files  or  data  files  (Vmm_controle,
Vmm_01,...) at the beginning  of program execution, indicates  to VMM that  we
are in restart mode.  That  is to say,  we  wish to continue the execution  of
the program from the point where the previous execution stopped. VMM will then
use the  contents of the various  control files in order to re-initialize  the
memory environment  to the state  it was in when the previous execution of the
program terminated.   The  program will  thus  continue to  execute as  if  no
interruption had  taken place.   Note  that a  check point  (i.e., a  call  to
vmmcpk) must have been made during  the program's previous execution in  order
to correctly perform a restart.

         The control and  data files are  permanent files.   If no restart  is
wanted, the user must delete all these files before re-executing the  program.
Note that the control and data files will always exist after the execution  of
a program even when no call to vmmcpk has been done.

         Latest revision, November 1993

         See also  vmmallc(3),  vmmatt(3),  vmmcks(3),  vmmcpk(3),  vmmcre(3),
vmmdbg(3),  vmmdiag(3),  vmmdmp(3),   vmm_example(1),  vmmfgt(3),   vmmget(3),
vmmhpa(3), vmmhpd(3), vmmint(3),  vmmlck(3), vmmlod(3), vmmlse(3),  vmmpak(3),
vmmpwd(3), vmmrls(3), vmmrnm(3), vmmsav(3), vmmuld(3), vmmulk(3), vmmuln(3).