From LPMeissner@msn.com  Thu Dec  5 16:41:49 1996
Received: from upsmot01.msn.com (upsmot01.msn.com [204.95.110.78]) by dkuug.dk (8.6.12/8.6.12) with ESMTP id QAA06330 for <sc22wg5@dkuug.dk>; Thu, 5 Dec 1996 16:41:46 +0100
Received: from upmajb04.msn.com ([204.95.110.81]) by upsmot01.msn.com (8.6.8.1/Configuration 4) with SMTP id HAA01677; Thu, 5 Dec 1996 07:40:16 -0800
Date: Thu, 5 Dec 96 15:41:04 UT
From: "Loren Meissner" <LPMeissner@msn.com>
Message-Id: <UPMAIL05.199612051541260698@msn.com>
To: "R. Baker Kearfott" <rbk@usl.edu>
Cc: sc22wg5@dkuug.dk
Subject: RE: (SC22WG5.1212) Proposed Industrial Strength Standard  Fortran 
	Subset

The concept of "sequence association" is described in 12.4.1.4 of Fortran 95.

For example, the actual argument can be an array element when the dummy
argument is an array.

Also, an actual argument can be an array of strings when the dummy
argument is one string. The storage sequence for the dummy argument string
is taken from the actual argument string array in "standard array element
order" as though the element strings of the actual array were concatenated
together.

==========================================

If all interfaces are required to be explicit, this kind of argument 
mismatching
is eliminated anyway.

My proposal would not prohibit passing arguments by reference, but your
example would have to be written differently. A "preferred" F90/F95 version
(which is acceptable according to my proposal) would be written more like 
this:

call Simulated_Dynamic( A(: N), A(N+1: 2*N), A(2*N+1: 3*N) )
 . . .
subroutine Simulated_Dynamic( A, B, C )
real, dimension (:) :: A, B, C    ! Assumed shape arrays 
integer :: N
. . .
N = size( A )
. . .

In this example, the use of array sections as actual arguments (instead of
array elements) is the important difference.

My proposal would not prohibit passing N as an actual argument and declaring
A, B, and C with size N, as in your example - the assumed shapes are just a
style preference.

- - Loren Meissner 

----------
From: 	R. Baker Kearfott
Sent: 	Wednesday, December 04, 1996 6:30 AM
To: 	Loren Meissner
Subject: 	Re: (SC22WG5.1212) Proposed Industrial Strength Standard  Fortran 
Subset

Loren,

I, too, like the proposal, except for one question, as I note below.

Baker

At 12:27 AM 12/4/96 UT, Loren Meissner wrote:
>WHITE PAPER
>by Loren Meissner, 3 December 1996
>
>Objectives:
> - Get rid of deprecated features with a "fresh start" instead of
>   incrementally
> - Enforce the safety features that are optional in F90 and F95
> - Do not put unnecessary roadblocks in the way of conversion from full
>   standard Fortran to the Subset language
>

>1. Remove storage association. This includes COMMON, EQUIVALENCE, and
>argument (array/string) sequence association. This is obviously the
>"biggie". No subset that retains storage association is worth the effort.
>

I have no problem with COMMON and EQUIVALENCE in this subset.  But I
don't fully understand removal of array/string sequence association.
Does that mean that one could not pass arguments by reference?  Does that
mean that one can't have

    CALL SIMULATED_DYNAMIC(N,A(1),A(N+1),A(2*N+1))

    SUBROUTINE SIMULATED_DYNAMIC(N,A,B,C)
    DIMENSION A(N), B(N), C(N)

?

Best regards,

Baker


---------------------------------------------------------------
R. Baker Kearfott,       rbk@usl.edu      (318) 482-5346 (fax)
(318) 482-5270 (work)                     (318) 981-9744 (home)
URL: http://interval.usl.edu/kearfott.html
Department of Mathematics, University of Southwestern Louisiana
USL Box 4-1010, Lafayette, LA 70504-1010, USA
---------------------------------------------------------------


