From E.W.Kruyt@Physiology.MedFac.LeidenUniv.nl  Fri Jan  5 13:19:08 1996
Received: from rullf2.MedFac.LeidenUniv.nl (rullf2.MedFac.LeidenUniv.nl [132.229.167.11]) by dkuug.dk (8.6.12/8.6.12) with ESMTP id NAA05943 for <SC22WG5@dkuug.dk>; Fri, 5 Jan 1996 13:18:56 +0100
Received: from rullf2.MedFac.LeidenUniv.nl by rullf2.MedFac.LeidenUniv.nl
 (PMDF V5.0-4 #2497) id <01HZN9PSLESG8WWFFQ@rullf2.MedFac.LeidenUniv.nl> for
 SC22WG5@dkuug.dk; Fri, 05 Jan 1996 09:16:29 +0100 (MET)
Date: Fri, 05 Jan 1996 09:16:29 +0100 (MET)
From: "Erik W. Kruyt (+31 71 5276804)"
 <E.W.Kruyt@Physiology.MedFac.LeidenUniv.nl>
Subject: X3J3/95-007R2, nesting of scoping and edits
To: SC22WG5@dkuug.dk
Message-id: <01HZN9PSOHXE8WWFFQ@rullf2.MedFac.LeidenUniv.nl>
X-VMS-To: IN%"SC22WG5@dkuug.dk"
MIME-version: 1.0
Content-transfer-encoding: 7BIT

I have the following remarks and questions about the nesting of scopings,
in particular of interface blocks.

Table 2.2 of X3J3/95-007R2 lists "Statements allowed in scoping units".

1. The list does not consist of statements solely.
Derived-Type Definition, Interface Block and Statement Function are no
statements.
I suggest to change the second occurrence of "statements" in line 3 of page 14
and "statements" in the title of table 2.2 to "statements or groups of
statements" and replace "Statement Function" in the first column of table 2.2
by "Statement Function Statement" (in correspondence with page 196 line 10:
"stmt-function-stmt").

2. By allowing an interface block in an interface body the standard allows an 
indefinite nesting of scoping units, while all other nestings of scoping units 
are limited.

3. Page 194, lines 24-26 of X3J3/95-007R2 states that an external subprogram
definition specifies an implicit interface for the procedures defined in that
subprogram. However, the interface is explicit for a recursive subroutine or a
recursive function with a separate result name within the external subprogram
(page 193 lines 1-2)! So the wording on page 194 has to be changed.

4. What is wrong with the following code (the compilers I tried did not accept 
it):

	subroutine sub(dum1, dum2)
!subroutine with two dummy procedure arguments
	interface
	  subroutine dum1(dum)
	    interface
	      real function dum(arg)
	        real, intent(in) :: arg
	      end function dum
	    end interface
	  end subroutine dum1
	  real function dum2(arg)
	    real, intent(in) :: arg
	  end function dum2
	end interface
	call dum1(dum2(1.))
	end subroutine sub

5. additional edit suggestions:
- Add the entry "construct" to the index with sub-entries: case, do, executable,
  forall, if, where.
- Page 27, Note 3.8.
  Make note 3.8 analogous to note 3.9:
  "In fixed source form, an exclamation point (!) or semicolon (;) in character
  position 6 indicates a continuation of the preceding noncomment line unless
  it appears within commentary indicated by a "C" or "*" in character position
  1 or by another "!" in character positions 1-5."
- Page 34, Note 4.9.
  Change the header to make it comparably to that of note 4.5:
  "Examples of unsigned and signed real literal constants are:"
- Page 35, Note 4.10.
  Change the header to make it comparably to note 4.5:
  "Examples of unsigned and signed complex literal constants are:"
  Add an example of a signed complex literal constant:
  "-(0.45E-4, -1.0)"
  Change the last example to have an example with a named constant kind:
  "(4.0_4, 3.6E_QUAD)
  where QUAD is a scalar integer named constant."
  
6. The page frame of some chapters of the printed document (A4) appear to be
   adjusted lower on the page than others; they have 2 cm more white on top and 
   2 cm less on the bottom.
   I wonder what could have caused this. Is it the conversion to A4 or does it
   show op in the US letter format too?

Erik Kruyt
