next up previous contents
След.: Математические функции Выше: Стандартные процедуры и модули Пред.: Функции для работы с   Содержание


Атомарные процедуры

Атомарные подпрограммы -- новый (Fortran-2008) класс встроенных подпрограмм. Они работают со скалярной переменной целого (INTEGER(ATOMIC_INT_KIND)) или логического (LOGICAL(ATOMIC_LOGICAL_KIND)) типа с разновидностями типов, определенных во встроенном модуле ISO_FORTRAN_ENV. Переменная ATOM должна быть комассивом или коиндексированным объектом. Эффект вызова атомарной подпрограммы таков, как если бы действие над аргументом ATOM было мгновенным, и потому не накладывается на другие атомарные действия, которые могут быть не синхронизированы. Чтобы избежать потерь производительности, упорядочивание перемежающихся действий над разными атомарными переменными на разных образах не определено стандартом.

ATOMIC_DEFINE(ATOM,VALUE) -- атомарно присваивает переменной ATOM значение VALUE.

ATOM -- исходящий скалярный комассивный параметр (или коиндексированный объект) одного из указанных типов. Если разновидность типа такая, как у VALUE или тип логический, то просто присваивается значение VALUE. Если нет, то присваиваемое значение преобразуется. VALUE -- входящий скалярный параметр того же типа, что и ATOM.

ATOMIC_REF(VALUE,ATOM) -- атомарно присваивает переменной, заданной параметром VALUE, значение параметра ATOM.

VALUE -- исходящий скалярный параметр того же типа, что и ATOM. Если разновидность типа такая же, как у ATOM или тип логический, то просто присваивается значение ATOM. Если нет, то тип преобразуется. ATOM -- входящий скалярный комассивный параметр одного из указанных выше типов.



Ilya A. Chernov 2012-12-19
X