From owner-sc22wg5@open-std.org  Fri Jul  9 12:51:10 2010
Return-Path: <owner-sc22wg5@open-std.org>
X-Original-To: sc22wg5-dom8
Delivered-To: sc22wg5-dom8@www2.open-std.org
Received: by www2.open-std.org (Postfix, from userid 521)
	id 734A7C3BA1E; Fri,  9 Jul 2010 12:51:10 +0200 (CEST)
X-Original-To: sc22wg5@open-std.org
Delivered-To: sc22wg5@open-std.org
Received: from mailrelay2.lrz-muenchen.de (mailrelay2.lrz-muenchen.de [129.187.254.102])
	by www2.open-std.org (Postfix) with ESMTP id BB60CC3BA14
	for <sc22wg5@open-std.org>; Fri,  9 Jul 2010 12:51:07 +0200 (CEST)
Received: from [129.187.15.179] ([129.187.15.179] [129.187.15.179]) by mailout.lrz-muenchen.de with ESMTP; Fri, 9 Jul 2010 12:50:54 +0200
Message-Id: <4C36FF0E.2040504@lrz.de>
Date: Fri, 09 Jul 2010 12:50:54 +0200
From: Reinhold Bader <Reinhold.Bader@lrz.de>
User-Agent: Thunderbird 2.0.0.18 (X11/20081112)
MIME-Version: 1.0
To: sc22wg5@open-std.org
Subject: Another MOVE_ALLOC question
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

 Hello all,

Is the program

program mvall
  integer, parameter :: n1 = 100, n2 = 2*n1
  integer, allocatable :: i1(:)[:], i2(:)[:]

  allocate(i1(n1)[*])
  i1 = 1
  allocate(i2(n2)[*])
  i2 = 2
  call move_alloc(i2, i1)
  if (this_image() == num_images()) then
    if (size(i1) /= n2 .or. allocated(i2)) then
      write(*,*) 'FAIL'
    else
      write(*,*) 'OK'
    end if
  end if
end program

standard conforming?


As far as the definition 13.7.118 of MOVE_ALLOC is concerned, it appears
that allocatable coarray arguments may be used for this intrinsic
subroutine. However, the subroutine is classified as PURE and C1288
says that such subprograms may not contain any image control statements.

Is it worth raising an interp on this?
(If it was intended that coarray arguments are allowed there appear to be
 some integration issues).

Regards
Reinhold
