From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org  Sun Aug 26 15:21:05 2012
Return-Path: <owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org>
X-Original-To: sc22wg5-dom8
Delivered-To: sc22wg5-dom8@www.open-std.org
Received: by www.open-std.org (Postfix, from userid 521)
	id 8ED313568F8; Sun, 26 Aug 2012 15:21:05 +0200 (CEST)
Delivered-To: sc22wg5@open-std.org
Received: from ppsw-51.csi.cam.ac.uk (ppsw-51.csi.cam.ac.uk [131.111.8.151])
	by www.open-std.org (Postfix) with ESMTP id 0F16F35688D
	for <sc22wg5@open-std.org>; Sun, 26 Aug 2012 15:21:03 +0200 (CEST)
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-1.csi.cam.ac.uk ([131.111.8.51]:39484)
	by ppsw-51.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:25)
	with esmtpa (EXTERNAL:nmm1) id 1T5cly-0007t6-YM (Exim 4.72) for sc22wg5@open-std.org
	(return-path <nmm1@hermes.cam.ac.uk>); Sun, 26 Aug 2012 14:21:02 +0100
Received: from prayer by hermes-1.csi.cam.ac.uk (hermes.cam.ac.uk)
	with local (PRAYER:nmm1) id 1T5cly-0006qN-KP (Exim 4.72) for sc22wg5@open-std.org
	(return-path <nmm1@hermes.cam.ac.uk>); Sun, 26 Aug 2012 14:21:02 +0100
Received: from [31.185.169.183] by webmail.hermes.cam.ac.uk
	with HTTP (Prayer-1.3.5); 26 Aug 2012 14:21:02 +0100
Date: 26 Aug 2012 14:21:02 +0100
From: "N.M. Maclaren" <nmm1@cam.ac.uk>
To: WG5 <sc22wg5@open-std.org>
Subject: Fortran 2003 Interoperability Rationale
Message-ID: <Prayer.1.3.5.1208261421020.25675@hermes-1.csi.cam.ac.uk>
In-Reply-To: <20120824011610.86A663568D6@www.open-std.org>
References: <20120817095648.607253568FA@www.open-std.org>
 <20120824011610.86A663568D6@www.open-std.org>
X-Mailer: Prayer v1.3.5
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset=ISO-8859-1
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

I am writing a lecture on using Fortran interoperability, and have hit a
few problems that I really don't understand.  That isn't what the standard
says but WHY it does so.  This also affects whether it could be considered
a wart in the next revision, of course.

The main one is procedure arguments.  I can't see why they weren't allowed
(for interoperable procedures only, natch), and am concerned that I may
have missed something.

Given that direct calling requires them to be merely the address of a
function (because both C and the specification of C_FUNPTR require that),
why were they excluded as arguments?

The most likely explanation was that the wordsmithing was simpler if they
were not allowed, but was there anything else?


Regards,
Nick Maclaren.
