08-248 To: J3 From: Michael Ingrassia Subject: Public Comment J32034 Date: 2008 July 08 ---------------------------------------------------------------------- Commenter's Subject was "CRITICAL and BLOCK" I won't be commenting on most of the CO-ARRAY features because I don't quite yet fully understand them. But in most of the different kinds of parallel computing I've done in the past the need for critical sections arises. Instead of a CRITICAL construct, I think that CRITICAL should be a keyword like PURE or RECURSIVE (and such) that applied to procedure declarations. Similarly, it should be an optional keyword on the new BLOCK construct: block-stmt is [ block-construct-name : ] [ CRITICAL ] BLOCK The reason is that when I've needed critical sections the shared data being manipulated is often something that should be imported (USE) for that particular section alone and not visible elsewhere. There are also often additional local variables needed only temporarily for manipulating the shared data. So it's often the case that critical sections coincide with the need for declarations. Rather than add the ability to declare within CRITICAL constructs, it makes sense to combine the feature with existing constructs that already can declare things. As an aside, except for this possible merging with CRITICAL, the only real value I see for the BLOCK construct is if some form of control of host association is forthcoming. ----------------------------------------------------------------------