C-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
C
C	PROGRAM TIMAVG
C
C	AUTHOR
C
C	Giles Brereton
C
C	LAST REVISION
C
C	22-JAN-87
C
C	PURPOSE
C
C	 To create time averaged data file from a phase averaged data
C	file
C
C	USAGE
C
C	 1. Type TIMAVG to DOS prompt
C
C	INPUTS
C
C	 1. Name of output file
C	 2. Name of input file(s)
C
C	OUTPUTS
C
C	 1. Time averaged data file created by processing input file
C
C	NOTES
C
C	 The phase averaged data file should have been created by
C	PROGRAM MERGF2
C
C-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
C
	PROGRAM TIMAVG
C
	IMPLICIT REAL*4 (A-H)
	IMPLICIT REAL*4 (O-Z)
	IMPLICIT INTEGER*2 (I-N)
	DIMENSION Y(35),UMEAN(35),VMEAN(35),UPSQMN(35),VPSQMN(35),
     1	UPVPMN(35)
	INTEGER*4 FPH0(512),FPH1(512),FSQPH0(512),FSQPH1(512),
     1	FSQPH2(512)
C
	CHARACTER TITLE(80),FILENM*10
C
	LUIN=12
	LUOUT=13
C
C
C	Compute time averaged data
C
C	  Get name of input file
C
	WRITE (*,100)
100	FORMAT (' Enter name of input file (______.DT1) : ',$)
C
	READ (*,'(A)') FILENM
C
C
C	  Open descriptor input file (.DT1)
C
C
	OPEN (LUIN,FILE=FILENM,STATUS='OLD',ACCESS='SEQUENTIAL',
     1	FORM='FORMATTED')
C
C	  Read title; read N,VU00,VU01,DUDV0,DUDV1,FREQ,Y( )
C
	READ (LUIN,102) (TITLE(I),I=1,80)
102	FORMAT (/,80A1)
C
	READ (LUIN,103) N,VU00,VU01,DUDV0,DUDV1,ADDVDS,FREQ
103	FORMAT (I3,6(E11.4))
C
	READ (LUIN,104) (Y(I),I=1,N)
104	FORMAT (7(E10.3))
C
C	  Close the descriptor input file
C
	CLOSE (LUIN)
C
C	  Open the data input file (.DT2)
C
	WRITE (*,101)
101	FORMAT (' Enter name of input file (______.DT2) : ',$)
C
	READ (*,'(A)') FILENM
C
	OPEN (LUIN,FILE=FILENM,STATUS='OLD',ACCESS='DIRECT',
     1	FORM='UNFORMATTED',RECL=2048)
C
C	  Loop for all Y points
C
	DO 1000 J=1,N
C
C	    Read FPH0,FPH1,FSQPH0,FSQPH1,FSQPH2
C
	READ (LUIN) FPH0
	READ (LUIN) FPH1
	READ (LUIN) FSQPH0
	READ (LUIN) FSQPH1
	READ (LUIN) FSQPH2
C
C	    Average over all phases
C
	FMN0=0.0
	FMN1=0.0
	FSQMN0=0.0
	FSQMN1=0.0
	FSQMN2=0.0
C
	DO 1100 I=1,512
	FMN0=FMN0+FPH0(I)
	FMN1=FMN1+FPH1(I)
	FSQMN0=FSQMN0+FSQPH0(I)-FPH0(I)*FPH0(I)
	FSQMN1=FSQMN1+FSQPH1(I)-FPH1(I)*FPH1(I)
1100	FSQMN2=FSQMN2+FSQPH2(I)-FPH0(I)*FPH1(I)
C
C
	FMN0=FMN0/512.
	FMN1=FMN1/512.
	FSQMN0=FSQMN0/512.
	FSQMN1=FSQMN1/512.
	FSQMN2=FSQMN2/512.
C
C	    Convert to velocity units (m/sec)
C
	UMEAN(J)=(FMN0*ADDVDS-VU00)*DUDV0
	VMEAN(J)=(FMN1*ADDVDS-VU01)*DUDV1
	UPSQMN(J)=FSQMN0*ADDVDS*ADDVDS*DUDV0*DUDV0
	VPSQMN(J)=FSQMN1*ADDVDS*ADDVDS*DUDV1*DUDV1
	UPVPMN(J)=FSQMN2*ADDVDS*ADDVDS*DUDV0*DUDV1
C
1000	CONTINUE
C
C	  Close input file
C
	CLOSE (LUIN)
C
C	  Write results to output file.
C
	WRITE (*,105)
105	FORMAT (' Enter name of output file (______.TAV) : ',$)
C
	READ (*,'(A)') FILENM
C
	OPEN (LUOUT,FILE=FILENM,STATUS='NEW',ACCESS='SEQUENTIAL',
     1	FORM='FORMATTED')
C
C	  Write title
C
	WRITE (LUOUT,102) (TITLE(I),I=1,80)
C
C	  Write # of points, frequency
C
	WRITE (LUOUT,125) N,FREQ
C
C	  Write column headings
C
	WRITE (LUOUT,130)
C
C	  Write data at each point
C
	DO 1200 I=1,N
	WRITE (LUOUT,140) Y(I)*1000.,UMEAN(I)*1000.,VMEAN(I)*1000.,
     1	UPSQMN(I)*1.E6,VPSQMN(I)*1.E6,UPVPMN(I)*1.E6
1200	CONTINUE
C
C	  Close output file
C
	CLOSE (LUOUT)
	STOP
C
C
125	FORMAT (I5,' Y points   Freq ',F5.3,' Hz')
130	FORMAT(' ',
     1	'    Y(mm)     U(mm/s)     V(mm/s)      u`u`',
     2	'        v`v`        u`v` (mm.mm/s/s) ')
140	FORMAT (' '1PE12.4,5E12.4)
C
	END
