[J3] Does Note 3 on page 75 violate C762?

Steven G. Kargl kargl at troutmask.apl.washington.edu
Tue Jun 2 23:09:14 EDT 2020


Malcolm,

Thanks for the pointer to the interp.  I'll
grab a copy for the webiste to read the 
rationale.

-- 
steve

On Wed, Jun 03, 2020 at 11:03:29AM +0900, Malcolm Cohen via J3 wrote:
> Hi Steve,
> 
> Thanks for your comment. You are correct in that the example on page 75 is invalid. This example should be corrected.
> 
> The restriction in C762 is intentional. It was inserted by interp F03/0072, published in Fortran 2003 Corrigendum 2 (probably 2006). Unfortunately, when inserting this correction, no-one noticed that 50 pages away there was an example that needs correcting.
> 
> Cheers,
> 
> -- 
> 
> ..............Malcolm Cohen, NAG Oxford/Tokyo.
> 
> From: J3 <j3-bounces at mailman.j3-fortran.org> On Behalf Of Steven G. Kargl via J3
> Sent: Wednesday, June 3, 2020 10:05 AM
> To: j3 at mailman.j3-fortran.org
> Cc: Steven G. Kargl <kargl at troutmask.apl.washington.edu>
> Subject: [J3] Does Note 3 on page 75 violate C762?
> 
>  
> 
> (This has been posted to comp.lang.fortran for discussion)
> 
> The document I have is
> 
> WD 1539-1, J3/18-007r1 (F2018 Interpretation document)
> 
> An example in https://stackoverflow.com/questions/62005934
> has sparked debate on what the Fortran standard requires.
> 
> Does Note 3 on page 75 violate C762?
> 
> C762 (R737) If component-initialization appears, every type parameter
> and array bound of the component shall be a colon or constant expression.
> 
> >From Note 3, the derived type definition is
> 
> TYPE MEMBER(NAME_LEN)
> INTEGER, LEN :: NAME_LEN
> CHARACTER(LEN = NAME_LEN) :: NAME = ''
> INTEGER :: TEAM_NO, HANDICAP = 0
> TYPE(SINGLE_SCORE), POINTER :: HISTORY => NULL ( )
> END TYPE MEMBER
> 
> Is NAME_LEN considered to be a constant expression in that
> a type declaration is of the form
> 
> TYPE(MEMBER(9)) LEAGUE(36)
> 
> Here, NAME_LEN has the value of 9. Should C762 be modified to 
> 
> C762 (R737) If component-initialization appears, every type parameter
> and array bound of the component shall be a colon, constant expression,
> or a type-param-name.
> 
> Also note, that NAME_LEN will always be defined when the derived
> type definition is used in a type declaration statement. This
> is guaranteed by
> 
> C792 (R754) There shall be at most one type-param-spec corresponding to
> each parameter of the type. If a type parameter does not have a default
> value, there shall be a type-param-spec corresponding to that type
> parameter.
> 
> In any event, either C762 or Note 3 needs to be modified.
> 
> -- 
> Steve
> 
> ----- End forwarded message -----
> 
> -- 
> Steve
> 
> 
> 
> Disclaimer
> 
> The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom. Please see our Privacy Notice <https://www.nag.co.uk/content/privacy-notice>  for information on how we process personal data and for details of how to stop or limit communications from us.
> 
> This e-mail has been scanned for all viruses and malware, and may have been automatically archived by Mimecast Ltd, an innovator in Software as a Service (SaaS) for business.
> 

-- 
Steve


More information about the J3 mailing list