Next: , Previous: , Up: Communication statements   [Contents][Index]


4.4.1 Message specifications

A message specification describes a set of messages. The following is a formal definition:

<message_spec> ::= <item_count>
[ NONUNIQUE | UNIQUE]
<item_size>
[ UNALIGNED |
  <message_alignment> ALIGNED |
  <message_alignment> MISALIGNED]
MESSAGES
[ WITH VERIFICATION | WITH DATA TOUCHING |
  WITHOUT VERIFICATION | WITHOUT DATA TOUCHING]
[ USING TAG
  <expr> | <string>]
[ FROM [ <expr> <data_multiplier> INTO]
  BUFFER <expr> | THE DEFAULT BUFFER]

Within a RECEIVE statement (see Receiving), a <message_spec>’s FROM keyword must be replaced with INTO.

A SEND statement’s WHO RECEIVES IT clause (see Sending) utilizes a slightly different message specification, which is referred to here as a <recv_message_spec>:

<recv_message_spec> ::= [ SYNCHRONOUSLY | ASYNCHRONOUSLY]
[ AS [ A| AN]
 [ NONUNIQUE | UNIQUE]
 [ UNALIGNED |
   <message_alignment> ALIGNED |
   <message_alignment> MISALIGNED]
  MESSAGES]
[ WITH VERIFICATION | WITH DATA TOUCHING |
  WITHOUT VERIFICATION | WITHOUT DATA TOUCHING]
[ USING TAG
  <expr> | <string>]
[ INTO [ <expr> <data_multiplier> INTO]
  BUFFER <expr> | THE DEFAULT BUFFER]

Although not indicated by the preceding grammatical rule, a <recv_message_spec> is not allowed to be empty. That is, at least one of the optional clauses must be specified.

A REDUCE statement (see Reducing) utilizes the following variations of <message_spec> and <recv_message_spec>, respectively:

<reduce_message_spec> ::= <item_count>
[ NONUNIQUE | UNIQUE]
[ UNALIGNED |
  <message_alignment> ALIGNED |
  <message_alignment> MISALIGNED]
INTEGERS | DOUBLEWORDS
[ WITH DATA TOUCHING | WITHOUT DATA TOUCHING]
[ USING TAG
  <expr> | <string>]
[ FROM [ <expr> <data_multiplier> INTO]
  BUFFER <expr> | THE DEFAULT BUFFER]
<reduce_target_message_spec> ::= [ AS <item_count>
 [ NONUNIQUE | UNIQUE]
 [ <message_alignment> ALIGNED |
   <message_alignment> MISALIGNED]
  INTEGERS | DOUBLEWORDS]
[ WITH DATA TOUCHING | WITHOUT DATA TOUCHING]
[ USING TAG
  <expr> | <string>]
[ INTO [ <expr> <data_multiplier> INTO]
  BUFFER <expr> | THE DEFAULT BUFFER]

We now describe in turn each component of a <message_spec>, <recv_message_spec>, <reduce_message_spec>, and <reduce_target_message_spec>.


Next: , Previous: , Up: Communication statements   [Contents][Index]

Scott Pakin, pakin@lanl.gov