      programm pa4
C
C Treiberprogramm zur Simulation des Kurbeltriebs mit Gaskraft.
C
      implicit none
      integer           lwk, n, choice
      parameter         (lwk = 1000, n = 2)
C
      integer           ierr
      double precision  work(lwk), x(n), t0, tend, h0, eps
C
      external          dgl
c
C...Auswahl Betriebsmodus
C
      write(*,*) 'Integration mit konstanter(0) oder kontrollierter',
     &           '(<>0) Schrittweite?'
      read(*,*) choice
C
C...Anfangsbedingungen
C
      call init(n, t0, tend, x, h0, eps)
C
C...Integration von t0 bis tend
C
      if (choice .eq. 0) then
         call dopri5(n, t0, tend, h0, x, dgl, work, lwk, ierr)
      else
         call dopri54s(n, t0, tend, h0, x, dgl, eps, work, lwk, ierr)
      endif
C
C...Abschlussreport
C
      write (*, 1) t0, ierr
 1    format (/, 'ENDZEIT:      ', D14.7, /,
     &           'IERR:         ', I14)
C
C...Ende
C
      end
