!$OMP BARRIER
  为工作组的所有线程声明一个障碍同步点,组内所有线程在此等待只到所有线程到达这一点。

  !$OMP ATOMIC
  将下一条语句中某个变量(下面的x)在存储器中的更新声明为原子操作。它对紧跟它的语句有效,这条语句必须具有下面的形式:
  ● x = x operator expr
  ● x = expr operator x
  ● x = intrinsic_procedure_name( x, expr_list )
  ● x = intrinsic_procedure_name( expr_list, x )

  其中,x是一个基本数据类型的标量变量,
  operator是归约操作符,它可以取如下的值:
  ● +
  ● -
  ● *
  ● /
  ● .AND.
  ● .OR.
  ● .EQV.
  ● .NEQV.

  expr为一个标量表达式,在expr中不能再出现归约x;
  intrinsic_procedure_name是intrinsic函数名称,它可以是如下的操作:
  ● MAX
  ● MIN
  ● IAND
  ● IOR
  ● IEOR
  expr_list是一个逗号分割的,非空的标量表达式列表,其中的表达式不能再包含x,当intrinsic_procedure_name为IAND, IOR或者IEOR的时候,expr_list中只能出现一个表达式。

  !$FLUSH[(list)]
  对变量列表中的变量进行flush操作,操作完成后,所有的工作线程所看到的存储器中的变量都具有相同的值。当list缺省时,对所有变量进行flush操作。

  !$OMP ORDERED
   block
  !$OMP ORDERED
  这组指导语句只能出现在标记有ORDERED子句的DO或者PARALLEL DO的内容中。它确保block中的语句的执行次序与串行次序一致。同一个DO/PARALLEL DO最多只能出现一个ORDERED语句,而且,这个ORDERED语句必须确保在循环体中只被执行一次。

  下面是一个例子

  !$OMP PARALLEL DO ORDERED
   do i=1,4,1
  !$OMP ORDERED
   print *,"This is ", i
  !$OMP END ORDERED
  !$OMP END PARALLEL DO

  它的结果为:
  This is 1
  This is 2
  This is 3
  This is 4

  如果去掉ORDERED/END ORDERED,它的结果可能为:
  This is 1
  This is 4
  This is 3
  This is 2