Newsgroups: comp.parallel.mpi
From: Marc Snir <snir@watson.ibm.com>
Subject: Dynamic memory allocation in Fortran
Organization: IBM Research
Date: Tue, 17 Sep 1996 09:52:55 -0400
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <323EAD37.41C6@watson.ibm.com>

Current design for put/get in MPI2 assumes that some of the communication functions will be
available only on systems that support dynamic memory allocation.  This requires, in Fortran,
support for nonstandard C-like/Cray-like pointers (integer variables that hold an address).
The type of code that is assumed to be supported is as shown below

REAL A
POINTER (P, A(100,100))  ! P is an integer pointer variable, pointing to A
CALL MPI_MEM_ALLOC(400, COMM, P, IERR) ! allocates memory and returns in P address
! Now array A can be used

Questions:

1. Can somebody point me to a Fortran system that does not support such syntax?
2. Can someobdy point me to a Fortran system that does not support at all this functionality,
i.e., does not allow to return an address in an integer variable, and have this address used
as the starting address for an array?  (These are not Fortran 90 pointers!) 
3. What should be the type of the 3rd dummy argument of MPI_MEM_ALLOC, on 64 bit systems?
-- 

Marc Snir  
IBM T.J. Watson Research Center
P.O. Box 218, Yorktown Heights, NY 10598
email: snir@watson.ibm.com
phone: 914-945-3204
fax:   914-945-4425
URL:   http://www.research.ibm.com/people/s/snir

