
	OPTIONS /EXTEND_SOURCE

c	PROGRAM WRITELOG
c	================

c===============================================================================
c       Dieses Programm uebernimmt aus der Command Zeile eine Runnummer und
c	uebertraegt den Header des zugehoerigen Logfiles in WRITELOG_nnnn.OUT. 
c       gleich wieder loescht.
c===============================================================================

	IMPLICIT NONE

c Deklarationen fuer das Einlesen der Runnummer von der Commandline:

        external    cli$get_value
        integer     cli$get_value
        integer     status

        character*4   runNumber
        integer     length

 
c sonstige Deklarationen:

	character*80	zeile
	integer		i,iostat,marke
	logical		flag

c-------------------------------------------------------------------------------


c Lies Runnummer aus Commandline:

        status = cli$get_value('runNumber',runNumber,length)
        if (.NOT.status) call lib$signal(%val(status))
        call str$trim(runNumber,runNumber,length)


c Oeffne zugehoeriges LOGfile:

	open (20,file='accel$OUTdirectory:AC_'//runNumber//'.LOG',status='OLD',
     +	      readonly,iostat=iostat)

	if (iostat.NE.0) then
	    write(*,*)
	    write(*,*)'can''t find accel$OUTdirectory:AC_'//runNumber//'.LOG'
	    write(*,*)'-> STOP'
	    write(*,*)
	    STOP
	endif


c Oeffne WRITELOG_nnnn.OUT:

	open (21,file='accel$OUTdirectory:WRITELOG_'//runNumber//'.OUT',
     +		      status='NEW')


c Uebertrage die Headerzeilen:

c       do i = 1, 130
c           read(20,'(A)',end=20)  zeile
c           write(21,'(xA)') zeile
c       enddo
c       write(21,*)
c       write(21,*)'  >>>>>>>>>> AUSDRUCK HIER ABGEBROCHEN >>>>>>>>>>'

c - Teste, ob LOGfile mehr als 140 Zeilen hat. Falls ja, drucke nur den
c   Haeder. Andernfalls drucke das ganze Logfile

        flag = .false.
        marke = -10
        do i = 1, 141
            read(20,'(A)',end=10)  zeile
            if (index(Zeile,'>>>>> T E S T - R U N <<<<<').NE.0) marke = i
        enddo
        flag = .true.           ! -> nur Headerzeilen schreiben

10      rewind (20)
	do i = 1, 140
            read(20,'(A)',end=20)  zeile
            if (flag .AND. index(Zeile,'>>> Schleife  :').NE.0) goto 20
            if (i.NE.marke .AND. i.NE.marke+1) then
                write(21,'(xA)') zeile
            endif
        enddo
 

c Schliesse die Files:

20	close (20)
	close (21)


	END

