1)имеется внутренняя субрутина вида
subroutine add_e(N,MXW)
integer :: N
integer, dimension(3) :: MXW
do i=1,N
f_e(vacant_e)=p_e0;
if (MXW(1) .eq. 1) then
f_e(vacant_e)%vx=f_e(vacant_e)%vx*erfinv(rand())
else
if (MXW(1) .eq. 2) then
f_e(vacant_e)%vx=f_e(vacant_e)%vx*erfinv(2*rand()-1)
end if
...
end do
end subroutine add_e
2)программа за каждый шаг основной итерации рисует график через plplot и выводит в консоль некоторые данные. мне нужно, что бы по нажатию определённой клавиши я программа остановила цикл и выполнила некоторые действия и вернулась к циклу. естественно, задержку выставлять недопустимо. врема выполнения одной итерации ~10^{-2} сек.