From owner-sc22wg5@open-std.org  Sun Feb  7 20:32:42 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 4682EC3BA0C; Sun,  7 Feb 2010 20:32:42 +0100 (CET)
X-Original-To: sc22wg5@open-std.org
Delivered-To: sc22wg5@open-std.org
Received: from ppsw-6.csi.cam.ac.uk (ppsw-6.csi.cam.ac.uk [131.111.8.136])
	by www2.open-std.org (Postfix) with ESMTP id B5984C3BA07
	for <sc22wg5@open-std.org>; Sun,  7 Feb 2010 20:32:40 +0100 (CET)
X-Cam-AntiVirus: no malware found
X-Cam-SpamDetails: not scanned
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from hermes-2.csi.cam.ac.uk ([131.111.8.54]:45087)
	by ppsw-6.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:25)
	with esmtpa (EXTERNAL:nmm1) id 1NeCs4-0003e0-KM (Exim 4.70)
	(return-path <nmm1@hermes.cam.ac.uk>); Sun, 07 Feb 2010 19:32:40 +0000
Received: from prayer by hermes-2.csi.cam.ac.uk (hermes.cam.ac.uk)
	with local (PRAYER:nmm1) id 1NeCs4-00031G-9f (Exim 4.67)
	(return-path <nmm1@hermes.cam.ac.uk>); Sun, 07 Feb 2010 19:32:40 +0000
Received: from [83.67.89.123] by webmail.hermes.cam.ac.uk
	with HTTP (Prayer-1.3.2); 07 Feb 2010 19:32:40 +0000
Date: 07 Feb 2010 19:32:40 +0000
From: "N.M. Maclaren" <nmm1@cam.ac.uk>
To: sc22wg5 <sc22wg5@open-std.org>
Subject: Please say this isn't allowed!
Message-ID: <Prayer.1.3.2.1002071932400.10110@hermes-2.csi.cam.ac.uk>
In-Reply-To: <20100206000326.EB642C3BA22@www2.open-std.org>
References: <20100206000326.EB642C3BA22@www2.open-std.org>
X-Mailer: Prayer v1.3.2
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset=ISO-8859-1
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

While writing a paper on C interoperability, I was checking on Fortran's
equivalents to some C facilities, and I cannot find anything that forbids
this.  NAG objects to it, but Intel and Pathscale allow it - or, at least,
let it happen ....

PROGRAM Main
    REAL, POINTER, DIMENSION(:) :: p => NULL()
    REAL :: x = 1.0, y = 2.0, z = 3.0
    CALL Fred ( (/ x,y,z /) )
    PRINT *, p
CONTAINS
    SUBROUTINE Fred (arg)
        REAL, TARGET, DIMENSION(:) :: arg
        p => arg
    END SUBROUTINE Fred
END PROGRAM Main

Regards,
Nick Maclaren.

