BEGIN_PROVIDER [ character*(256), qp_stop_filename ] &BEGIN_PROVIDER [ character*(256), qp_kill_filename ] &BEGIN_PROVIDER [ integer, qp_stop_variable ] implicit none BEGIN_DOC ! Name of the file to check for qp stop END_DOC qp_stop_filename = trim(ezfio_filename)//'/work/qpstop' qp_kill_filename = trim(ezfio_filename)//'/work/qpkill' qp_stop_variable = 0 END_PROVIDER logical function qp_stop() implicit none BEGIN_DOC ! Checks if the qp_stop command was invoked for the clean termination of the program END_DOC integer :: iunit integer, external :: getUnitAndOpen if (qp_stop_variable == 0) then INQUIRE(FILE=trim(qp_kill_filename), EXIST=qp_stop) if (qp_stop) then qp_stop_variable = 1 ! qp_stop is true return endif INQUIRE(FILE=trim(qp_stop_filename), EXIST=qp_stop) if (qp_stop) then iunit = getUnitAndOpen(trim(qp_stop_filename),'r') close(iunit, STATUS='DELETE') endif else qp_stop = .True. endif end