10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-11-11 16:43:50 +01:00
QuantumPackage/src/ezfio_files/lock.irp.f

30 lines
712 B
Fortran

use omp_lib
BEGIN_PROVIDER [ integer(omp_lock_kind), file_lock ]
use f77_zmq
implicit none
BEGIN_DOC
! OpenMP Lock for I/O
END_DOC
call omp_init_lock(file_lock)
END_PROVIDER
! These functions need to be called because internal read and write are not thread safe.
subroutine lock_io()
implicit none
BEGIN_DOC
! Needs to be called because before doing I/O because internal read and write
! are not thread safe.
END_DOC
call omp_set_lock(file_lock)
end subroutine lock_io()
subroutine unlock_io()
implicit none
BEGIN_DOC
! Needs to be called because afterdoing I/O because internal read and write
! are not thread safe.
END_DOC
call omp_unset_lock(file_lock)
end subroutine lock_io()