NBSIR 77-1383

Interactive Computer Program

for the Determination of

Reverberation Time

Thomas W. Bartel

Institute for Basic Standards

National Bureau of Standards

Washington, D C. 20234

December 1977

U S. DEPARTMENT OF COMMERCE

NATIONAL BUREAU OF STANDARDS

NBSIR 77-1383

INTERACTIVE COMPUTER PROGRAM

FOR THE DETERMINATION OF

REVERBERATION TIME

Thomas W. Bartel

Institute for Basic Standards

National Bureau of Standards

Washington, D C. 20234

December 1977

U S. DEPARTMENT OF COMMERCE, Juanita M. Kreps, Secretary

Dr. Sidney Harman, Under Secretary

Jordan J. Baruch, Assistant Secretary for Science and Technology

NATIONAL BUREAU OF STANDARDS, Ernest Ambler, Acting Director
ABSTRACT

A description of the computer program used to measure the reverberation time in a reverberation room is presented. The program controls the

operation of a real-time analyzer, a random noise generator, and a microphone multiplexer. The reverberation time for each digitally recorded

decay curve is determined from a straight line least-squares fit. The

program is written in FORTRAN V and requires approximately 35,000 eightbit bytes of core memory. Flow charts, source listings, and sample

printouts are included.
TABLE OF CONTENTS

Page

I. INTRODUCTION 1

II. INSTRUMENTATION 1

III. DIGITAL PROCEDURE TO DETERMINE THE REVERBERATION TIME ... 2

IV. PROGRAM SEQUENCE 4

V. SOFTWARE DETAILS 7

VI. INPUT/OUTPUT LOGICAL UNITS 8

APPENDIX A - Abbreviated Flow Chart of Reverberation Time 14

Program

APPENDIX B - Program REVERB Flow Chart, Terminal Messages, and

Listings 18

APPENDIX C - Subroutine SIGNAL Flow Chart, Terminal Messages,

Printouts, and Listings 31

APPENDIX D - Subroutine CURVFT Flow Chart, Terminal Messages,

Printout, and Listings 48

APPENDIX E - Subroutine DSDATA Flow Chart, Terminal Messages,

Printouts, and Listings 59

APPENDIX F - Subroutine AVRGE Flow Chart, Terminal Messages,

Printout, and Listings 68

APPENDIX G - Subroutine RSULTS Flow Chart, Terminal Messages,

Printouts and Listings 74

APPENDIX H - Subroutine HUMID Flow Chart, Terminal Messages,

and Listings 84

APPENDIX I - Subroutine SAMPLE Flow Chart and Listings 91

APPENDIX J - Subroutine BAND Flow Chart and Listings 94

APPENDIX K - Subroutine SUBMUX Flow Chart and Listings 97

APPENDIX L - Listings for Function Subprograms TINORM

and STUDIM 100

APPENDIX M - Listings for Assembly Language Subroutines MUX,

RTA , SOUND, and DELAY 103

APPENDIX N - Listings for Program GEN1 and its Function

Subprograms STUDIN, FISHIN, and FISH Ill

iii
LIST OF TABLES AND FIGURES

Page

TABLE 1. Reverberation Time Program Elements 10

FIGURE 1. Simplified Schematic of Instrumentation System Used to

Determine the Reverberation Time 12

FIGURE 2. Typical Plot of a Digitally-Obtained Decay Curve and

the Definitions Used to Determine the Reverberation

Time 13

IV
I . INTRODUCTION

This report describes the computer program used to measure the

reverberation time in a reverberation room according to the Standard

Method of Test for Sound Absorption of Acoustical Materials in Reverberation

Rooms, ASTM C423-66. The program is written to control the instrumentation

system used for the NBS reverDeration room. It should, however, be suitable

for use in any laboratory with a similar instrumentation system.

In this program, the reverberation decays are digitally recorded

simultaneously in the 30 1/3-octave bands from 25 to 20 000 Hz. (The

program allows the operator to limit the processing of the data to a

narrower frequency range, which may be appropriate for the characteristics

of the reverberation room.) Typically 20 s are allowed for samp Ling the

30 filtered decaying sounds and 15 s for the sound field to reach steady

state. (The sound buildup times are typically less than 2.5 s.)

During the 15-second buildup the decay rates of the preceding decay are

computed from a least-squares curve fit in each of the 1/3-octave bands

in the selected frequency range. This procedure permits the decay rates

to be recorded and processed as fast as the decays can be physically performed, about 100 decays per hour. The program allows a detailed examination of the decay curves to determine whether or not they can be approximated by single straight lines.

II. IN STRUMENTAT ION

The program assumes that several elements of the instrumentation system are under computer control. These elements, shown in Fig. 1, are a

real-time analyzer, a random noise generator, and a microphone multiplexer.

The real-time analyzer filters the input signal through 30 contiguous

1
1/3-octave band-pass filter channels, samples each channel simultaneously

for an integration period, determines the rms level for each channel,

and transmits the digital results to the computer. For the NBS system,

an integration time of 0.1 s is used for reverberation time measurements.

The time required to transmit the digitized output level from all 30

1/3-octave filters to the computer is approximately 1 ms. The output of the random noise generator is turned on and off by the

computer. For most measurements made with the NBS system, unfiltered pink

noise is sent to the amplifier and loudspeaker, resulting in sufficient

dynamic range to measure the reverberation time simultaneously in the 1/3-

octave bands from 80 Hz to 10 kHz.

The computer controls the channel selection of a microphone multiplexer. In the NBS system, the multiplexer has 16 channels, of which 12

are used with the 12-microphone array installed in the reverberation

room. In the reverberation time program, the multiplexer is used, at the

operator's option, to select the next microphone channel after each

decay

.

III. DIGITAL PROCEDURE TO DETERMINE THE REVERBERATION TIME

The reverberation time for each decay curve is determined from a

straight line least-squares fit to the digitized output of each 1/3-

octave filter in the following manner. First the digitized output of

each filter is converted by the real-time analyzer to an rms value using an

averaging time of 0.1 s. This rms value for each filter is read by the

computer in less than 1.0 ms and another 0.1-second averaged rms value is

obtained, and so on. These rms values are depicted by the solid circles

in Fig. 2.

2
Before the actual decay curve can be defined two steady-state values

for each 1/3-octave band are determined, the long-term average signal

level prior to the abrupt cessation of the sound in the room and the longterm average system noise level (both acoustical and electrical) of each

microphone. The average system noise level in each 1/3-octave band is

determined by sampling the signal when the sound source is turned off.

This is denoted the average noise level in Fig. 2. The averaging time,

determined by the number of consecutive 0.1-s samples taken, is chosen by

the operator. These noise levels are assumed to remain constant throughout the entire set of measurements. The long-term average signal level,

denoted the average signal level in Fig. 2, is obtained just prior to

each decay by sampling the signal for a short time before the sound source

is turned off. The operator chooses the number of consecutive 0.1-s

samples taken before and after the sound cutoff (maximum total time of

20 s) . Typical values are 4 s and 16 s, respectively.

Since the point at which each decay curve starts is often poorly defined, the upper limit for the least-squares curve fitting procedure is

arbitrarily set x dB below the average signal level. A typical value for

x is 5 dB . Similarly the effects of the system noise must not influence

the least squares fit and, therefore, the lower limit is arbitrarily set

y dB above the average noise level. A typical value for y is 10 dB. Both

x and y are chosen by the operator. The limits for the curve fitting procedure are denoted the upper and lower amplitude limits in Fig. 2.

Since the distribution of the 0.1-second averaged rms values about

the fitted line defining the decay curve can be relatively large, an

iterative procedure is used to determine the first and last data points to

3
be used by the least squares procedure. The Initial decay curve is determined from a least squares fit starting with the first point after the

sound has been turned off and ending with the first point to reach the

noise level. The intersection of this initial decay curve with the upper

and lower amplitude limits is then determined. The data points nearest

these intersections are chosen as the new upper and lower points for the

curve fitting procedure and a new decay curve is determined. This process

is repeated until the intersections of the upper and lower amplitude limits

with the decay curve are within 0.1 s of the points previously used to determine the decay curve. This procedure generally requires fewer than

five iterations and the decay times for all 22 1/3-octave bands from 80

and 10 000 Hz can be determined in less than 15 s.

When one wants to determine if a decay curve contains a "break point"

resulting from two distinct decay times, the program may first be run with

the value of y increased such that the decay curve is computed using data

that only span 15 or 20 dB. Then the program may be rerun with the value

of x increased to 15 or 20 dB and the value of y decreased to its original

value. If these two measurements result in statistically distinguishable

reverberation times in any 1/3-octave band, then the room has two distinct

decay times in that band.

IV. PROGRAM SEQUENCE

The manner in which the reverberation time measurement is performed

is summarized in the abbreviated flowchart given in Appendix A. At the

start of the program the operator enters the desired confidence interval

and level of the average reverberation times, the 1/3-octave frequency

range, and the time between samples, which is approximately 0.1 s but is

accurately determined in advance with a time-interval counter.

4
The average signal and ambient noise levels are then determined.

This section of the program enables the operator to adjust the loudspeaker

amplifier, microphone and real-time analyzer gains to achieve maximum dynamic range while remaining below the signal level overload region of the

real-time analyzer (see Printout 1, Appendix C) . Note that the signal

and noise levels in the printouts are the averages of several successive

0.1-s samples obtained from the real-time analyzer. In the NBS system,

the resolution of the real-time analyzer is 0.25 dB. The levels are

printed to the nearest 0.01 dB in order to aid in tracing the computations performed on the data, rather than to represent the uncertainty of

the data.

To allow for different noise levels among the microphone channels

used in the measurement, the operator may conduct a separate ambient

noise measurement for each channel (see Printout 2, Appendix C) . After

these adjustments the ambient noise levels are obtained and stored for

determining the lower curve fitting limits of the decay curves.

The operator then enters the number of samples to be taken before and

after the sound is cut off, and the values x and y, discussed in the previous section, to be used in determining the curve-fitting limits. One

decay is sampled upon initiation by the operator, who may observe the

curve-fitting parameters (see Printout 1, Appendix D) to ensure that the

measurement is proceeding correctly. Following this the operator makes a

decision of "YES," "NO," or "AUTO" in response to the question "Do you

want to conduct another decay?" The results of these responses are as

follows

:

YES: Conduct and analyze one more decay. Operator controls the microphone selection and initiates the sampling of the decay.

5
AUTO: Conduct and analyze several decays automatically. Operator

first chooses the number of decays to be taken, then tne operation of the microphone multiplexer (step or not step between

decays) , and finally the insertion of any delay time for sound

buildup that is desired in addition to the time required to

compute the reverberation times, which is a maximum of 15 s

but shorter if a narrower frequency range has been chosen.

NO: Do not conduct any more decays at this point.

If the operator entered "NO" to the above question, he may then examine the decay curves of the last decay to inspect their linearity and

the superposition of the computed least-squares fit . Such a display is

shown in Printouts 1 and 2, Appendix E. Printout 1 displays, in tabular

form, the level transmitted by the real-time analyzer for each 0.1-s

integration period for a specified 1/3-octave band. The levels are

printed in horizontal rows of 10. Printout 2 is a graphical display of

the same data. Following this, he may request a display of the average

reverberation time for each 1/3-octave frequency band of all of the

decays conducted up to this point (see Printout 1, Appendix F) . Also

displayed are the confidence intervals achieved at this point, and the

estimated number of decays remaining in each band to attain the confidence interval specified at the beginning of the measurement.

The operator may then choose to conduct more decays using the same

"YES," "NO," or "AUTO" choices described previously. If "NO" is entered,

the measurement is terminated following a printout of the results (see

Printouts 1 and 2, Appendix G)

.

6
V. SOFTWARE DETAILS

The programming language used is the Interdata FORTRAN V Level 1

Software System.* It is a superset of ANSI Standard X3. 9-1966 FORTRAN

and should be compatible or nearly compatible with the FORTRAN V used on

other computer systems. Users of this program on other systems should

check the compatibility of FORMAT statements using the A Format and

INTEGER*2 statements which define the storage size of integers to be two

8-bit bytes.

The program for measuring reverberation time consists of a main program, REVERB, written in FORTRAN V, several FORTRAN subroutines, and

several assembly language subroutines written for use on an Interdata

Model 70 minicomputer. These elements are listed in Table 1. The corresponding flow charts, sample printouts, and listings are given in the

appendices. The last appendix, Appendix N, gives the listings of a separate FORTRAN program, GENL, and three of its subprograms , STUD IN, FISHIN,

and FISH, that are not a part of the program REVERB. They are used to

generate the t-distribution table read from logical unit 4 by the function

subprogram STUDIM, called by REVERB.

*The commercial computer products utilized are identified in order to

adequately describe the program elements discussed in this report. In no

case does such identification imply recommendation or endorsement by the

National Bureau of Standards, nor does it imply that these products are

necessarily the best available for the purpose.

7
In the NBS system, the subroutines SIGNAL, CURVFT , DSDATA, AVRGE

,

and RSULTS are loaded as overlays called by the main program, REVERB.

Each call to these subroutines is therefore preceded by the instructions

REWIND 0 and CALL IFETCH, which cause the overlay to be loaded. In

addition, there is a branch to "End of Job" if there is an overlay load

error. These instructions should be deleted or bypassed if this program

is used in a system not requiring overlays. The subroutines will then

be loaded and called as regular subroutines.

In the NBS system the complete task occupies 35,452 eight-bit bytes

of memory, of which 12,000 bytes are used for storing the real-time

analyzer data for each decay (200 samples/l/3-octave band x 30 bands =

6000 samples, with each sample being stored as a 2-byte integer).

The flow charts, given in the appendices, conform to the American

National Standard Flowchart Symbols and Their Usage in Information

Processing, X3. 5-1970. In these flow charts, the small numbers enclosed

in parentheses refer to FORTRAN statement labels in the program listings.

In the program listings, the first three statements of every program

or subprogram are control statements used to insert the program name, in

the form of a binary label, into the compiled object code.

VI. INPUT/OUTPUT LOGICAL UNITS

The following logical units are used for input/output operations:

LUO - File from which overlays are loaded (see Section V).

LU1 - Scratch file for accumulating a table of the reverberation times

for each decay; this file is read when computing the average

reverberation times.

LU2 - Output file for storing the final table of averaged reverberation

times; can be used as input to other programs, such as the sound

power program.

8
LU3 - Hard copy printout device. Should be assigned to a 132 character

line printer. During execution of the program, the operator

may choose the printout device logical unit to obtain either a

hard copy printout or a view of the results on the CRT terminal.

LU4 - File containing a table of the t-distribution for the chosen confidence level. This table is used by the function subprogram

STUDIM, and must be created by another program, GEN1, given in

Appendix N. This file must be a random record access file.

LU5 - Operator communication device. Should be assigned to a CRT terminal.

Through this device the operator controls the course of the measurement, making the decisions that are called for and entering certain

measurement parameters, which include:

1. The desired confidence interval and confidence level.

2. The desired 1/3-octave frequency bands.

3. The number of samples to be taken for each decay, both before

and after the sound source is cutoff.

4. The upper and lower curve-fitting limits.

5. The number of decays to be conducted automatically.

6. Whether or not to step the microphone multiplexer between

decays

.

Transmission of data to and from the real-time analyzer, microphone

multiplexer, and random noise generator is not handled through logical

units, but through separate subroutines written in the assembly language

for the Interdata Model 70 minicomputer. These subroutines are included

in TABLE 1; their listings are given in Appendix M.

9
TABLE

1.

REVERBERATION

TIME

PROGRAM

ELEMENTS

H »>

w <d * X s CO Pl z (—3

#•

H S |—i X

M

cq > o Qj

X pc

M § Q Z Q z PS Pi >] <c Q PQ Z 1—1 Q 3 > <£ z rr CQ H H pq O c CO pq Q H CO PQ Z C CO z Z o CO CO z o Z r. #v <£ *> rs pq •V a <! Z <d CO « CO r> s w n Q s

PQ o < H

H o Q 2 i-Q

Q 2 Q Z Z < hJ z - M o Z — Q « o 1-4 CO o Q z X § Z X z s 1—1

CO CO o z hH <2

O z i—i z co Q CO 2 22 H CO CO s PQ CQ H z , 3 1 54 >

'(4 3 3 3 z 44 *H Z 3 c c z O o CD 4-1 o •H •rH CJ 44 -

44 54 o z 3 G E O z 3 3 3 3 X T) 3 c

5-i CD 4-1 44 r-H

a 44 54 CD Z o z O u CD c O 3 z C o 3 U 3 •H c 44 co Z •H 3 Z 3 3 c 3 CT3 44 44 3 CO X *—1

44 z 3 O CL

54 co co • 3 3 •H o 3 •H

G 54

CO CD •—i

cO

X Z 3 44 z U 3 O

44

a iJ CD 4-1 3 44 44

C 3 C 3 3 C o C > cO a o 3 O 44 c •rH Z Z

a) CD CD z 3 rH c 44 3 3 3 S CO E t—1 z ex o c z 1—1

Cfl 3

CD CD

X •H Z 44 rH •rH 3 E

54 o 54 <D CO 3 3 z 54 3 •H Z O 3 r-H 3 CO CJ c Z 3 CL 54 3 44 i—1 O

(0 f“H CO •H (D o H 3 *H z 3 cd

X 54

CO <c cO

O Z O 3 C > 3

CD CD

G 54 CL • 3 3 3 CJ iH E E 1 G o • E 3 Z Z X a) 3 3 • O O 44 44 *r4 X 3 4-* Z 44 X CO z 4-1 O 54 3 3 3 CJ G O

CO 1—1 c 1 4-J 3 rH 3 CJ Z 3 3 •H i—1

44 o CD cO rH H 4-1 CL CL 3 44 O Z 3 z CD > CO 44 3 3 Z z CD C 44 o Z CD G C • Z CJ 3 54 44 44 U •H O

1—1 • r“H •H OO co CD •H

X 3 O c 44

E-* s CD CO *H 4-1 > 54 Z 44 c Z 54 CD 44 CJ o S CD 00 CO c 54 3 CL 3 44 O 54 T3 54 O z o H CO CD 3 N 3 44 E 3 Pl 3 •rH 3 rH z 54 44 •H 54 E E CJ X 54 z Z 4-4 44 CL

pl

O CD 3 CD rH 00 3 44 5 E C 44

g c C •H E 54 co 3 > O • 3 o 3 CJ o o 1 44 •H 3 3 C 3 54 - z C u •H

•l4 •H o •H 4-J CO 54 3 3 3 Z 3 3 z 44 44 -1 i—1

CL 3 3 3 CJ 44

C > 3 TD 44 CL 3 CO 1 CL o <D 3 3 3 rH 3 3 44 CD i—1 3

54 54 1—t E E cr E 3 3 Z H 3 U 3 54 • CD (D CO co CD co •H Z 3 3 Z E *H 3 00 X Z Z C > X l 44 G 54 3 X o •rH Cfl 3 CJ

5j )-i 00 >4 CD CO 4-1 1 3 3 54 z 3 X CD 54 3 c

CD CD •H CD •rH

a CO <—I 3 o TD 3 3 > > Cfl Z z CD 3 3 G cr 3 z C 54 3 Z 3

CD CD CO CJ z 3 3 54 3 Z c 3 a, CD z 3 O'

5-i Cfl CD CO iH 54

O 1 44 3 3 CL z 44 rH 3

CD

a oo 44 44 Z Z cfl 44 CJ 5

co co c CO o c CO co 3 3 3 c 44 e CD •rH 4-1 *H S X 54 3 • 3 r 3 <D 3 X •H

5-i 44 s 4-1 c 54 3 3 3 Cfl 00 00 3 rC > 3 3 o 3 H co co c O iH rH i—1

-U 3 c Z u 3 1 1 z 3 Z a, CD 3 c •H 44 a 3 c 54 •H •H cx u 3

J-c E U •z •H 00 54 3 Z 3 •rH 3 44 i—1

** z Cfl •iH 54

CD o CD z CO CD 3 •H 3 Z O > 3 3 4J CJ •H Z 3

Pl, o n cfl 00 z CL

Q 44 44 a. < CJ > •H 3 Q > E—*

00

H 5 H 5 H 5 E-j E-j 54 Pi O Pi Z Pi Z Pi Z P3 Pi Z O 54 O 3 O 3 O 3 O O 3

Pl P4 Pl co Pl co Pl co Pl Pl CO § W § 3 <H PQ

COH o § PQ > <J O Z o < > o Q Pi P3

Pi z 2 M z CO > co

CL CO o Q < Pi

10
PROGRAM

SUBROUTINE

NAME

TYPE

OF

PROGRAM

FUNCTION

CALLED 3 O) 3 01 01 3 3 0) c < c x; c 3 C 3 c c o H o p o o O O o o Z pc z s z Z Z z z

CO 3

p!O

a • *H i • 3 rH 4-J •H 3 r- 3 3 3

0)

u 3 X 3 3 XJ

M 1 3 H CX 00 c 3 TO X) 3 3 3 3 p 3 3 CD -3 4-J 3 o

CO cO

X 3 3 3 O CO

Oi •rH *H 3 3 co • 4-4 3 TJ 3 3 4-4 . cx 3 i—i 3 O 4-4 3 CO S i—1 3 s O r—1 4-4 3 o 3 £

0) CX > o X 3 -X 1 4-1 B 3 H cx S 3 3 CO 3 t—1 3 i—1

4-4 o 3 O

O 4-J 3 P CO 1-1 O •H P CD I—1

4-1 CO 3 3 3 TO

X 3 4-1 3 o 3 CD •H 3 3 CO 3 CO X 3 cx i—1 B TO -a 3 3 £ N 3 cx 3 •H 3 o 30 •H >» pH -H B 3 3 3 3 CO X o P 3 3 TO 3 3 1—1 3 O

X) 3 s 3 > 3 3 3 c > H 3 3 H 3 •H 3 3 cx -a 3 B 14 00 3 TO 00 X 44 cx c *H 3 3 1 3 cd

cO 3 X

N 3 • 3 3 3 3 O S 3 PH 3 rH 3 3 £

4-1 •H

B rp

O -3 4-J 3 X

N rH TO •H 3 4-J 3 4-J 3 •H — 3 PH CX 3

3= i 3 3 r-H 3 3 r-H

B 3 CO i—i

4-1 3 . 1-1 4-4 •H 3 3 3 E 3 *H 3 3 O X 3 3 3 3 3 o 3 3 3 X Cfl TO 3 O

X o O T> B 3 3 3 X 3 B 44 r-. 4-4 T3 3 •H X i—1 3 O 3 O 3 O 3 • C 4-1 3 4-1 B CX 3 H 3 3 3 B O CM 3 o 3 1 3 *H 3 CX 4-4 3 •H 3 3 CO

4-1

O

X rH 3 4-1 > 4-4

X 3 3 3

rH CO o 3 3 1—1 3 X)

O OO 1—1 3 1 X 3 O

T3 3 3 4-1 3 -H CD 3 Z 1 1 i—1 3 4-J •H 4-4 -Q 3 H c E •rH 3 •H W CX 3 3 3 e O B 3 •H 3 4-4 3 TO o •rH 3 3 3 o 3 3 X 4-4 o 3 -3 •H 3 3 4-J 3 00 x TO 3 3 O cx 3 3 O 3 3 s r-H TO 4-4 3 1 O (D > 3 3 P 3 3 3 O

0) 0> x> 3 TO OO -3 4-4 CX 3 3 £ TO •H 3 > CO- 3 r—1 3 c CX O CO *H Ph 00 3 44 •H >>

CO •H 3 3 •H o 30

O CO 3 -HO Cfl 4-1 4-4 > 3 3 3 3 03 4h 3 XJ 3 a 3 r-H

cfl co •H 3 3 3 3 O 3 CX Cd 3 CD I—1

CD

O i—1 3 O *H rH

u 3 CD TO cx

B X)

0) 4-1 0) c rH

B 3 o 3 3 3 U 3 3 O . O 3 (X i—1 o 4-4 > 4-4 3 E X 3 TO cd 3

CX CO cd 3 rH 3 3 X) 3 3 3

CO s C 3 O 3 c 3 00 c 3 -3 3 CO 3

01 o cfl 00 4-1 4-1 4-1 3 o > 3 X. cfl i—1 3 3 CD 3

4-1 o •H 5-4 3 *H 3 -O

O XJ

B 3 CO CO 3 4-1 3 3 4-J 3 CO 3 3 3 •H 3

CX

O CD > 3 CX CX

G TO T3 3 cx 3 3 3 > r-4 S CO J* H 3 •H 3 B C 3 3 1 1 CD 3 3 3 O o o 1—1

cd o O

O 4-1O 2 -H •H •rH 4-J

O 44 3 H c o <J H 4-4 U CX c/o o 4-4 (Xi 4-4 4-4 C/3 O 3 H CH •H 3 3 3 3 3 3 3 3 3 3 3 3

*H •H •H •H 3 3 00 3 00 (D 00 (D 00 3 3 3 3 O O 3 rH 3 rH 3 t-H 3 3 3 3 3 •H *H 3 X 3 X 3 X 3 O O O O 3 3 00 Cfl 00 cd 00 cd 00 3 3 3 3 3 3 3 rH 3 i—i 3 rH 3

30 30 30 30 3 3 3 - 1—1 3 r rH 3 r r-H 3 - 3 3 3 3 3 B 3 B X 3 Cfl X 3 cd P 3 cd P 3

co co in co pH 3 pH 3 3 O 3 u 3 O 3 3 3 CH •H Ph •H >> *H Ph •H z pr 00 O0 r-H 3 Fz- i—i 3 rH 3 2 P 3

<? <c

O 3 O 30 3 X 3 <c

X 3 X 3

P0 C3 Ch Ph pH 3 Ch 3 B

O Ph

B

O Ph

B

O Ph

B

O

E-h E-4 E-4 E-4

H CX E-4 CX 3 3 H 3 3 H 3 3 H 3 3

Ph PC PC PC PC

X PC 30 CO 30 P^J 3 -Q pej 3 do P^ 3 P o o o o O 3 o 3 3 3 O 3 3 O 3 3 o 3 3

pH pH pH PH pH c/o Ph c/0 <3 in pH c CO Ph <c CO Ch <1 CO X x: 2 s Q X S hH Q M p § o CO X'. C s s X x P XJ <C X P p X hH E-4 §

EH

Ow

PC CO pp CO

H co PC in

a

11

FORTRAN

Callable
12

FIGURE

1.

SIMPLIFIED

SCHEMATIC

OF

INSTRUMENTATION

SYSTEM

USED

TO

DETERMINE

THE

REVERBERATION

TIME.
AVERAGE

SIGNAL

LEVEL

QLlI OO

(8P) 13A31 3AI1V13H

LT) ZZo

UJ

CDLUx

I—

>-=£oLU

CDQ

-a; CQoI >-

<C

<o

Q_

>-

QiZDO

i J

TO

DETERMINE

THE

REVERBERATION

TIME.
APPENDIX A

Abbreviated Flow Chart of Reverberation Time Program

14
ABBREVIATED FLOW CHART: REVERB

15
ABBREVIATED REVERB-2

16
ABBREVIATED REVERB-3

17
APPENDIX B

Program REVERB Flow Chart, Terminal Messages, and Listings

18
FLOW CHART: REVERB

V

Am

-n z

\

TER IDENCE

VEL

N f

ENTER

TIME BETWEEN

.SAMPLES

r~ en‘ LOWES' OF IN'TERBAND

rEREST

N '

ENTER

HIGHEST BAND

OF INTEREST

V

SUBROUTINE SIGNAL

ESTABLISH

SIGNAL LEVELS, AMBIENT NOISE LEVELS

FOR EACH BAND

V

19
REVERB - 2

\ t

f

ENTER

CURVE-F

LIN

UPPER

ITTING

IT

\ f

ENTER LOWER CURVE-FITTING

LIMIT

20

©

O
REVERB - 3

21
REVERB - 4

22
REVERB - 5

23
REVERB - 6

24
REVERB - 7

Zb
CRT

TERMINAL

MESSAGES:

PROGRAM

REVERB

26
CRT

TERMINAL

MESSAGES:

PROGRAM

REVERB

(page

2)

27
1n

—t

.m4

CT

.Jb

io9

10

1 1 12

13

14

15

16

1718

19

26

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

3 b

b 7 io

39

40

41

42

43

44

45

4b

47

48

49

50

51

52

53

54

55

56

57

5 8

59

60

PROGRAM REVERB

$ASSM

REVERB PROG REVERB - PROGRAM TO MEASURE REVERBERATION TIME

$F0RT

OVERLAYS CALLED : S IGNAL, CURVFT, DSDATA, fiVRGE, RSULTS

SUBPROGRAMS CALLED : SAMPLE. SOI IND, DELAY, MUX.

[ INDIRECTLY] : HUMID , BAND. RTA. STUD IM, TINORM. SUBMUX

INTEGERS B. NS,IG. N,X0 (6060) , FREQ (30) .LINEC121)

.

1 B L 0 l,J . B H I G H . 0 VF L 0 U. A LI TO . MM 1 ( 3 0 ) . MM2 C 3 0

)

D I MENS I ON X (200 ) . S0 ( 30 , 1 2 ) , S 1 ( 30 ) . ARRAY 1(30), ARRAY2 (30)

DATA FREQ/25, 32, 40,50. 63, 80, 100, 125, 160,200,250,315,400,500,

1630,800, 1000, 1250, 1600,2000,2500,3150,4000,5000,6300,8000,

2 1 0000 , 1 2500 , 1 6000 , 20000/

WRITE (5,10)

10 FORMAT (X/X/'THIS PROGRAM RUNS AND ANALYZES REV ROOM DECAY

1 MEASUREMENTS'. X/X/

2' THE FOLLOWING LOGICAL UNIT ASSIGNMENTS ARE REQUIRED:'/*/

35X, ‘ LU0 — FILE FROM WHICH OVERLAYS ARE LOADED ’ /

45X, ' LU 1 -- SCRATCH F I L E '

/

55X, ' LU2 — STORAGE FILE FOR STORING REVERBERATION TIME DATA'/

65X, ' LU3 — HIGH SPEED PRINTER’/

75X, ' LU4 — STORAGE FILE CONTAINING TABLE OF T-D ISTR IBUT ION' /

85X, ' LU5 — CRT TERMINAL' /X/X/X/

9' ENTER THE DESIRED CONFIDENCE INTERVAL TO BE ATTAINED

1 IN TERMS OF '/'PERCENT OF THE MEAN REV. TIME (X.X)')

READ (5,40) C INTER

WRITE (5,30)

30 FORMAT CENTER THE DESIRED CONFIDENCE LEVEL IN PERCENT

1 (XX. XX)')

READ (5,40) CLEVEL

40 FORMAT (F10.5)

WRITE (5,42)

42 FORMAT CENTER THE TIME BETWEEN SAMPLES IN SECONDS (X.XXXXX)

READ (5,40) DELTA

WRITE (5,45)

45 FORMAT ('ENTER LOWEST BAND OF INTEREST (MIN=14)')

READ (5.50) BLOW

50 FORMAT (12)

WRITE (5.55)

55 FORMAT CENTER HIGHEST BAND OF INTEREST (MAX-43)')

READ (5,50) BH1GH

REWIND 0

CALL I FETCH (' SIGNAL' .0. ISTAT)

IF 1 ISTAT. NE.0) LU TO 200

CALL S I GNAL ( X, X0 , 60 , SI, FREQ . L 1 NE • BLOW, BH I GH

)

GO TO 94

91 WRITE (5,92)

92 FORMAT •"YOU HAVE EXCEEDED THE MAXIMUM NUMBER OF 200 SAMPLES'

94 WRITE (5,95)

95 FORMAT ('ENTER NO. OF SAMPLES REQUIRED FOP DECAY MEASUREMENT'

14X, ' (3 DIGITS)’)

READ (5, 93) NDEC

98 FORMAT (lb)

WRITE (5.100)

100 FORMAT ('ENTER NO. OF SAMPLES TO BE TAKEN BEFORE SOUND

1 CUT-OFF (3 DIGITS)')

READ (5, 98) NS l G

N=NS IG+NDEC

IF (N . GT. 200) GO TO 91

28
6 1 bid 63

64

65

66

67

68

6y

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

1 10

1 1

1

1 12

1 13

1 14

1 15

1 16

1 1

7

1 18

1 19

120

REVERB-2

URITE (5, 105)

105 FORMAT CENTER UPPER CURVE FITTING LIMIT IN DB DOWN FROM

1 S I GNAL LEVEL ' C ( NORMALLY 5.0)')

READ (5,40) CUPPER

URITE (5,106)

106 FORMAT ('ENTER LOUER CURVE FITTING LIMIT IN DB UP FROM

1 NO I SE LEVEL ' /' ( NORMALLY 10.0)')

READ (5,48) C LOUER

REUIND 1 NDCAYS=0

ICRVFT=0

110 AUTO=0

MPLEX=0

113 IF (MPL.EX.EQ. 1) CALL MUX(I)

114 CALL SOUND (1)

URITE (5,115)

115 FORMAT ('THE SOUND HAS BEEN TURNED ON'/

1' ENTER "GO" TO START DECAY MEASUREMENT')

READ (5, 120) GS

120 FORMAT (A4)

GO TO 124

123 INDEX* INDEX+1

IF ( INDEX. EQ.NAUTO) AUT0=2

CALL DELAY (NDEL AY)

124 CALL RDMUX(MXRDG)

CALL SAMPLE (NS IG, N, 10, OVFLUU, X0, 6060)

IF (OVFLOU.EQ. 1) GU TO 114

IF ( (MPLEX. EQ . 1 ) . AND . (AUTO . EQ . 1 ) ) CALL MUX( I

)

IF (AUTO . EQ. 1 ) CALL SOUND (1) ND C A YS = N D C A YS +

1

URITE (5,125) N DC AYS

125 FORMAT ('DECAY NO. ',14)

IF ( ICRVFT.EQ. 1) GO TO 126

REUIND 0

CALL I FETCH (

' CURVFT' , 0, ISTAT)

IF ( ISTAT. HE.0) GO TO 200

ICRVFT=

1

1 26 CALL CURVFT ( N , NS I G , X, X0 , SO , S 1 , ARRAY 1 , ARRAY2 , DEL TA , FREQ

,

1 N D C A YS , A U TO , L IJ , B L 0 l,J . B H I G H , C U P P E R . C L 0 LJE R , MM 1 , MM2 , MXRD G

)

IF (AUTO.EQ.l) GO TO 123

127 URITE (5,128)

128 FORMAT (X/'DO YOU UANT TO CONDUCT ANOTHER DECAY?

1 (ENTER "AUTO" FOR AUTOMATIC MODE)')

READ (5, 120) GS

IF (GS . EQ . ' NO' ) GO TO 140

IF (GS.NE. 'AUTO' ) GO TO 110

129 URITE (5,130)

130 FORMAT CENTER NUMBER OF DECAYS TO BE CONDUCTED

1 AUTOMATICALLY'/' (4 DIGITS)')

READ (5,131) NAUTO

131 FORMAT (14)

IF (NAUTO.LT. 2) GO TO 110

URITE (5,133)

133 FORMAT '.'ENTER LOGICAL UNIT FOR PRINTOUT DEVICE

1 FOR CURVE-FITTING PARAMETERS')

READ (5.135) LU

135 FORMAT (ID

URITE (5,136)

136 FORMAT CENTER NO. OF SECONDS OF DELAY REQUIRED FOR SOUND

1 BUILD-UP (XX. X) ' /' (MAX = 32) '/'(THIS DELAY IS IN

29
133

140

150

160

170

180

200

210

220

230

REVERB-3

2 ADDITION TO THE COMPUTING AND PRINTOUT TIME)')

READ ( 5 .. 40 ) TDELAY

N D E L A V= TD E L A Y* 1 0 0 0 . + . 5

WRITE (5,138)

FORMAT ('DO YOU WANT TO STEP THE MICROPHONE MULTIPLEXER

1 BEFORE EACH DECAY?')

READ (5, 120) GS

MPLEX=

1

IF CGS.EQ.'NO') MPLEX=0

AU 10=1.

INDEX=

1

GO TO 113

ICRVFT=0

WRITE (5,150) ' FORMAT ('DO YOU WANT TO SEE THE DATA POINTS OF THE LAST DECAY?')

READ (5, 120) GS

IF CGS.EQ.'NO') GO TO 160

REWIND 0 CALL IFETCH (

' DSDATA' , 0, ISTAT)

IF (ISTAT. HE. 0) GO TO 200

CALL DSDATA (X, X0, ARRAY1 , ARRAY2, FREQ, N,NDCAYS, LINE, DELTA,

1 S 0 , S 1, CUPPER, CLOWER , MM 1 , MM2 , MXR D G

)

WRITE (5,170)

FORMAT ('DO YOU WANT TO SEE THE AVERAGES?')

READ (5, 120)GS

IF CGS.EQ.'NO') GO TO 127

REWIND O CALL IFETCH C'AVRGE' ,0, ISTAT)

IF ( ISTAT. NE.0) GO TO 200

CALL A VR GE(X,X0. ARRAY l.ARRAY2 , NDCAYS,C INTER, CLEVEL, FREQ*

1BL0W, BH IGH)

WRITE (5,128)

READ (5, 120) GS

I F ( GS . EQ . ' AUTO ' ) GO TO 1 29

IF (GS. HE. 'NO') GO TO 110

REWIND 0

CALL IFETCH (

' RSULTS' , 0, ISTA1

)

IF ( ISTAT. NE.0) GO TO 200

CALL RSULTS (X, XQ - ARRAY 1 , ARRAY2, FREQ, NDCAYS, CLEVEL, NS IG,

1 NDEC , L I NE , DELTA , BLOW, BH I GH , CUPPER , CLOWER)

GO TO 220

WRITE (5,210) ISTAT

FORMAT (' OVERLAY LOAD ERROR ',14,' -- TASK ABORTED')

WRITE (5,230)

FORMAT (X/X/'END OF JOB')

END

30
APPENDIX C

Subroutine SIGNAL Flow Chart, Terminal Messages, Printouts, and Listings

31
FLOW CHART: SUBROUTINE SIGNAL

32
0

O

0

SIGNAL - 2

33 o
SIGNAL - 3

34
SIGNAL - 4

35
SIGNAL - 5

36
SIGNAL - 6

37
SIGNAL - 7

38
SIGNAL - 8

39
SIGNAL - 9

40
CRT

TERMINAL

MESSAGES:

SUBROUTINE

SIGNAL

41
PRINTOUT

1

-

SUBROUTINE

SIGNAL

u-< Ul

ST LD CO

cc z; &

2: <x > Co

Pi

CO ’ i [ -_ CD CM —* IS IS CO LTi is P- u J Ki CD CTi CM CM S CO Of S CTi C l CTi U j ST S CO PO P- CM CM CTi P- PO Si PO in Op CO PO CTi op 0"1 00 CD S S PO CM " CO —1 PO CO Op CTi PQ —

«

’ * CO CM —• CO —I CM Op CO CO Cu p- po po \r or ro op op or op

r- r - (-- P-- p- CO CO CO P- CO CO P- CD CO P- iD T

op

'

—1 —I z-' CM CO CD S LJ .1 op PO CO CD U i —• CO UO UO S 1 UO CO UO Op S —1 " CO CO CO CO U i CM CO

<1 LU IS CO U i OT 00 PO \P CD GO OJ CD —1 UO ^ CO CM CM CO Op CM CD UO p*0 PO I'M U 5 CO PO Op u i CD LU CM CD P - U 1 CD CO CO CO u i CO p- P-- CO P- CO CO p_ CO CO CO P_ CO P- P - CD p- P- p- ID PO

*- _J Ot Op Op or MOOT of ^ ^ ^ op op op op vp <3- g- ^ T3- ^ yr tJ Tf m ^ ''tf DO

UJ _J PO ID CO s PO PO ro CO CO op LO CM O CM op PO P- CO UO p- p - — CM CD CO PO UO UO Op UO

LO UJ UJ Si PO S' CO *—1 'D CO CO CM CM CM CM CM CM CM CM Op CM CM CM CM PO —1 —* PO CO

1 1 -'* I—

'

OliJ w ' CO UO CO Si P- CD UO S Si Si S' Q S O S Q S S Q S Si Si S S O S' CD 0 j CM

o

OP UO CO CO Si Si — CM PO op UO ID [m. CO DO S — CM PO Op UO CO I - CO 00 S' —• Cm PO _______ jvj r.j rsi fsJ tm r,j 0.j fS| fs) fs-, f

,-, to po po po po po po ro or or or Si

iD •

LOa

s

uo X X X X x

X X X X X X X X XX X XX X X X X X X

X ^

s

s

CM

LULD

Si

DO

LU

0.

a:LO

•I~7

~ a>

CO S'PO

Ll. O

S

CM

UJr

LU

COS

CO

a:

UJ

LU

LU

LUCO + + +

UJ

LOa

\

_j

cc5

DO

+ + -:- + + + + + + + + + + + + + + + +

uo CM S S po S El UO Si Si S' UO E' S S S' QBQQOSOO CD E> S' O O S'

CM PO T UO CO CO S CM CD S' UO — S CD P" CD O UO CD S S' UO S S' S E"S CD Q S' —1 —' —> TM CM PO op UO CD CO S OJ CO S' UO -'OS PO O S UO S' S —< — — CM I'M PO or U' 'D CO Si CM CD S —' ' CM

42

FREQUENCY

BAND
PRINTOUT

2

-

SUBROUTINE

SIGNAL

cn£

uj

LUW)O

Z

z

LU

go2

CM—* CTl I'- CO CTi r

T Z i- I"- CTi G G L_i G u_i G G >20 G G CD CD CD G G E CD G CD G CD CD CTi CD E OD h- —' (TUD rf CD CD CD CD E CD E E E E CD CD E CD CD E E —• CO CD Z CD CD CD in CM CD G —' E CD CD CD E E E E E E E E E E E E EGG—* G n CM CM CM — —• — —

—* Df r-1 E CTl E LO CTi IO UD ( - UD E E E E E E E E E E E E E E E E E - f -_ UD E CO —< C-- L CO CTi CTi CM E E E E E E E E E E E E E E E E E E \T O', U • • • ^

CTi l\- CO ID CM E CO OD E E E E E CD CD E E E E E E E GGGGGG—«—

*

E*-1 UD G CO M" E N. CM \T —* CM E E E E E E E E E E E E E E E E E E CTi E cti in i

1*- in ud —* ud ro ro e e e e e e e e e e e e e e e e e e e t o ud u

ro IM —* CM OD MD in S E E E E E E E E E E E E Gi E E E E E E —* CM

CTi in CTi in m ro ud ud co cn co cm —‘ g g cm e e ro —> ro —> cm —• ro —< ud ro cn g ro CO G IV. E 2f E G UD "TO — E E E E E E E E E E E E E E E E E —• LO CO U*~l ro CM E CTi E ro CTi UD —' E E E E E E E E E E E E E E E E E E E CM FO H CM OJ CM —

CO E CM E CM CTi DT —* UD OD 1 E E E E E E E E Gi E E E E E E EGG—1 CM

ro co co ro od cm 10 g — G e e e e e e e e e e e e e e e e e e — cn u

CTi E E - E UD UD 'If E E E E Gi E E E E E E E E E E E E E E E •

(V E E l'- CTi E Df OD F- E E *—1 S E E E E EEEEEEEEEEE*—‘EE (v. —< ro cti cm ro cti ro cn u .1 g e e e e e e e e e e e e e e e e e —* s

u

CTl Cti r ~ UD G CM CT> Is- —* G G G G G G G G G G G G G G G G G G G —* G

TZ ’—> -—• -— — '— -—

E 'CT OD —* E E —* 'If E —* Df E E E E EEEEEEEEEEEE E E C- CTl Df r*D CM —1 E ro —* E —* E E E E E E E E E E GGGGGGGGG—< |TO CD

*—* 'T CO E CM to UD UD 2f E E E E E E E E E E E E E E E G G G G G —* CM

UD CTl UD UD UD —1 IO G UD ro \f E E E E E E E E E E E E E E E E E CM UD UD

'if —' O OD Df Tf E CM —* E E E E E E E E E E E E E E E E E E E CO E

CD

•—* I'D ro CM —* CTl CTl (TO CO •—* E E E E E> E E E E E E E E E E E E Ei C;D ’

1 CM

'CT vf IjDi E —' UD OD UD E '\f UD E E E E E E E E E E E E E E E E E Gi CM E

r~- ro —i CTi 'if —• 2f G G G G G E E E E E E E E E E E E E E E CM E

U •

1 ro ro —• ro ro e ro ro e e e e e e e e e e e e e e e e e gi e e —* ro

ro —* OD OD OD E E E (•- f - E CD E CD E E E E E E E E E E E E E E E 'Cf UD

OD OD OD ro r- m CTl E E Gi E E E E GGGGGGEG E E E E E E 'If UD U1 * co e ro co ro Df E ro G e e e e e e e e e e e e e e e CD G E E —* c M n

CM "TO CM E CM —* ro CTl l'-- CO UD CM E E E E E EEEEEEEE E HOSllI" G ro ro CO CM OD CTl UD ro CM e e e e e e e e e e e e e e E E Gi E UD U .1 U—< UD CM ro UD — —< Is- CO — E E E G E EE EEEEEEEEEEEE—* CM n — —

«-* —* cn ro co ro —* g —* —* Cti e cm od ro e cti ud ro co —* ro co e cm co O' *0 —* co —

*

—* cm co ro ud ro co g e e e e e e ro ro ro ro ro e ro ro cm cm —< cm ro ud cm ud u>—i e ro ud cn e cn ro g e e e e e e e e e e e e e e e e e e e e cm cm

CM

a

LU

UL

U-

•ro

:

co

: o

ro CM E E ro CD CD UD CD CD CD UD CD E CD CD CD CD CD E CD E CD CD CD CD CD' E •3D CD CM ro ro UD E CO »ZE“i CM CD CD UD i CD E ro CD CD UD UJ E •ID UD CD •Hi •3D CD' •33 E © CD

r—t -—

i

»—

i

CM CM ro XT UD UD CO CD CM CD E UD © CD ro CD CD UD CD •3D

< ru CM ro in <-jj CO CD CM CD CD

’ ' CM

ro UD E (TO co CTi C

D

CM ro ^r UD UD r- co CTl CD CM ro ^r UD CD r-~ CO •T'i •3Z> , CM ro CM CM CM CM CM CM CM CM CM CM ro ro ro ro ro ro ro ro ro ro TT ro T

43

NO.

OF

SAMPLES

=

200

NO.

OF

MICROPHONES

=
124

CT

•_» b

(o9

10

1 1 12

13

14

15

16

1718

19

20

21

22

23

24

25

26

27

28

29

30

31

_» 2_ 33

34

Ter 36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

SUBROUTINE SIGNAL

TASSM

SIGNAL PROG SIGNAL - SUBROUTINE TO DETERMINE SIGNAL/NOISE LEVELS

SHORT

C OTHER SUBROUTINES CALLED: SAMPLE, BhMD, SOUND.. SUBMUX, MUX, DELAY

C SUBROUTINE SIGNAL (X, X0,S0,S 1 , FREQ, LINE, BLOU, BH IGH)

I NTEGER*2 B , N , X0 ( 6O60 ) , FREQ ( 30 ) , LU , BELL , FF , OPTION

,

1 BLOU, BH IGH, B 1 , B2 , 0 VFLOIJ, LINE ( 61), BLANK , STAR , PLUS

D I MENS I ON X (208 ) , S0 ( 30 , 1 2) , S 1 ( 30

)

DATA BLANK, STAR . PLUS, FF/X'2000' , X' 2A00' , X" 2BO0"

,

IX' 0C00 ' /

20 OP ! IliH-0

24 URITE (5,25)

25 FORMAT ('ENTER NO. OF SAMPLES FOR SIGNAL/NOISE MEASUREMENT'

12X, '(3 DIGITS)')

READ (5, 26)

N

26 FORMAT (13)

IF (N . LE . 200) GO TO 32

URITE (5,28)

28 FORMAT ('YOU HAVE EXCEEDED THE MAXIMUM NUMBER OF 200 SAMPLES'

GO TO 24

32 CALL SOUND (0)

34 URITE (5,35)

35 FORMAT ('THE SOUND HAS BEEN TURNED OFF'/

r ENTER "GO" TO START AMBIENT NOISE MEASUREMENT')

READ (5,36)GS

3b FORMAT (A4)

J=1

IF (OPTION . EQ . 0) GO TO 48

J=0

37 J = J+1

IF (J.GT.NMIC) GO TO 58

CALL SUBMUX(J) 1 URITE (5,38) J 38 FORMAT ('AMBIENT NOISE MEASUREMENT, MICROPHONE ',12)

CALL DELAY (500)

48 CALL SAMPLE (0,N, 10, OVFLOU, X0, 6060)

IF (OVFLOU. EQ . 1 ) GO TO 32

DO 50 B=BLOU, BH IGH

JB=B- 13 CALL BAND ( B . H, X, X0 . 6060)

C=0.

DO 49 I = 1 , N C=C+10.**(X(I)/10.)

49 CONTINUE

C=C/N

S0( IB, J) =10. *ALOG 10(C)

50 CONTINUE

IF (OPTION . NE . 0) GO TO 37

DO 55 J=2, 12 DO 55 B=BLOU, BH IGH

I B =B— 13

S0( IB, J) =S0 (IB, 1) 55 CONTINUE

58 IF (OPTION . EQ. 1 ) GO TO 250

CALL SOUND (1)

IF (OPTION. EQ. 2) GO TO 65

URITE (5,60)

FORMAT ('THE SOUND HAS BEEN TURNED ON'/

44

60
SIGNAL-2

61 1 ' ENTER "GO" TO START SIGNAL MEASUREMENT')

62 READ (5.. 36) GS

63 GO TO 70

64 65 CALL DELhYC 15000)

65 _ J =0

6b 67 J=J+1

67 IF (J.GT.HMIC) GO TO 250

60 CALL SUBMUXC J)

69 LJRITE (5,68) J 70 68 FORMAT ('SIGNAL LEVEL MEASUREMENT, MICROPHONE ',12)

71 CALL DELAY (500)

72 70 CALL SAMPLE C N , N , 1 0 , 0 VF L 0 U, X0 ,6060)

73 IF ( (OVFLOLJ.EQ. 1) . AND. (OPTION . ED . 0) ) GO TO 58

74 IF (OVFLOLJ.EQ. 1) GO TO 250

75 IF ( (OPTION. EQ.0) .OR. (J.EQ.NMIC) ) CALL SOUND(Q)

76 DO 80 B=BLOLJ, BH IGH

77 IB=B- 13

78 CALL BAND (B,N,X,X0, 6060)

79 C=0.

80 DO 75 1=1,

N

01 C=C+10.**(X(I)/10.)

82 75 CONTINUE

83 OC/N

84 S 1 ( I B ) = 1 0 . *ALOG 10(C)

85 80 CONTINUE

86 IF (OPTION . EQ . 0) LU=5

87 90 LJRITE (LU,92) N 88 92 FORMAT ('SIGNAL/NOISE MEASUREMENT:',

89 1T30, ' NO . OF SAMPLES = ',13)

90 IF (OPTION . EQ . 0) GO TO 98

91 LJRITE (LU, 94) J

92 94 FORMAT (T30, ' MICROPHONE NO. ',12)

93 98 LJRITE (UJ, 100)

94 100 FORMAT (5 (X/) , 13X, ' NOISE LEVEL SIGNAL LEVEL (DEL)')

95 IF (LU.EQ.5) GO TO 105

96 URITE CLU, 102)

97 1 02 FORMAT ( X/X/6X, ' 0

' , 9X, ' 10', 8X, ' 20 ' , 8X, ' 30' , 8X, '40',

98 18X, ' 50 ' , 8X, ' 60 ' , T77 ,

' NO ISE' ,T86, 'SIGNAL' ,T9S,' DYNAM IC ' /

99 2bX, 13

(

'

. ' , 4X) , T77 ,

' LEVEL ' , T87 ,

' LEVEL ' , T97 ,

' RANGE ' /

100 3T78, ' (DEO ' , TOO, ' (DB) ' , T98, ' (DB) ' /X)

101 GO TO 108

102 105 URITE (5,106)

103 106 FORMAT ( X/X/6X, ' 0

' , 9X, ' 1 0

' , 8X, ' 20 ' , 8X, ' 30 ' , OX, ' 40 '

,

104 1 8X, ' 50 ' , 3X, ' 60 ' /6X, 1 3

(

'

. ' , 4X) /X/'X)

105 108 DO 110 1=1,61

106 LINE C I) =BLANK

107 110 CONTINUE

108 DO 130 B=BLOU, BH IGH

109 IB=B- 13

110 J

1 =S0 ( IB, J) +1 .

5

111 J2=S 1 ( IB) + 1 .

5

112 LINE(Jl) =PLUS

113 LINECJ2) =STAR

114 IF (LU.EQ.5) GO TO 125

115 C=S 1 ( IB) -SO ( IB, J)

1 16 URITE CLU, 120) FREQ ( IB) , (LINE ( I ) , I = 1 , 6 1 ) , B, S0 ( IB, J) , S 1 ( IB) ,C

117 120 FORMAT ( 15, X, 6 1A 1 , X, 12, T76, F6 . 2, T86, F6 . 2,T96, F6 . 2)

118 GO TO 128

119 125 URITE (5,126) FREQ (IB), (LI HE C I ) ,

I

= 1 , 6 1 ) ,

B

1 20 1 26 FORMAT ( 1 5 , X, 6 1 A 1 , X, 1 2

)

45
SIGNAL -3

SIGNAL -3

121

122

12 ! 124

125

126

12?

I2l

129

130

131

132

133

134

135

135

13?

ivo

139

140

141

142

143

144

145

145

147

1 48

1 49

150

151

152

153

154

155

156

157

158

159

1 h,n 161

152

163

164

165

1 66

1 6 f

: 168

1 69

170

171

172

173

174

175

176

1 77

178

179

1 80

128

130

14@

200

210

2la

23’0 240

2 o 0

25,2

259

260

270

27

280

290

LINE ( J 1 ) =BLANK

LIMECJ?) =BLAHK

CONTINUE

URITE (LU , 140IFF

FORMAT' (X,-‘ FREQUENCY'

- , 56X, - BAND NO .

'' /2X,

'

- (HZ) " /A 1

)

IF 6081 I ON. EQ. 2) GO TO 67

URITE ( 5 - 20 Fn ' - FORMhT (

‘ DO YOU UANT ‘ANOTHER PRINT OF THESE RESULTS?')

IF' i GS. EL, ‘NiV i GO Tfl 230 • URITE ( 5 , 2 1 0

)

FORMAT: ( 'ENTER LOG j CAL UN I T FOR PRINTOUT DEVICE - ) READ f 5,. 22.0) LU

FORMAT C 1 1

)

GRi TO 90

LiR I TE (5,240)

FORMAL CDO YOU UAN T Tu REPEAT THE SIGNAL MEASUREMENT?' ) READ ( 5, 36) GS

IF MAS. HE. 'NO'

1 ) GO 1 TO 58 : H

60 TO 259

’( I 7i =\ , 12)

FORMAT i X/X/T46 , 'AMBIENT NOISE LEVELS '/X/X/X/X

l "BAND' .-"T2, ' NO , ' iME ' FREQ .

" , T1 6 - 9 (

- MIC. '

, I1.3X)

23 ('MIC '

, 12, 2X). X) 1 DO iS7 B-BLOU. BHIGH

' , I 1 . v.'v!

ib=bl’i;

254

Jl =NM I C+L

Du 254 J=J 1,12

S0 ( IB, J)=0.

CONTINUE

IJRITE i 3,255) B , FRECK IB) , (S0 ( IB , J ) , J= 1 , 12)

FORMAT (T2, I2,T7. 15..T15, 12iF6.2,2X)) , , CONTINUE

URITE (3,258) N , NM I C , FF

FORMAT (5 (X/)

, 'NO. OF SAMPLES = ',13/

1

' NO . OF Mi CRU PHONE1-:) /

1 '

. 12, h 1

)

CALL SLIBMUX(l)

URITE (5,260)

FORMAT • ./•I 1

: YOU IJANT TO REPEAT THE SIGNAL AND NOISE

1 MEASUREMENT? ‘

)

READ (5 - 36 > GS 1 llif SUIIhL HI' MO I Ob

IF (GS.EQ.'MO - ) GO TO 400

URITE (5,270)

FORMAT DO YOU IJANT A SEPhPhTE AMBIENT NOISE MEASUREMENT -

1 ' F OR EACH M I CROPHOHE CHANNEL ?

'

)

READ ( 5 . 36 ) M :f ! Ml ML iOllRLMbm '

IF i-GS^EC! .

J NO' ) GO TO 20

OPT I ON =

1

URITE (5,275)

FORMAT .'DO YOU UANT TO INCLUDE h SIGNAL LEVEL MEASUREMENT

1

“ FOR EACH CHANNEL?')

READ (5.36) GS

IF iGS.ME/’HD -

' OPTION =2

IJRITE (5,280)

F Ok MAT Y

- ENTER NO. OF MICROPHONES IN THE MICROPHONE ARRAY

l pEAD'(5

D 29ijIb

HM;ic i

1 /HL IN IB, MICROPHONE ARRAY

FORMAT ..12) IF (OPTION. EC! . 1 ) GU TO 24

URITE (5,210)

46
SIGNAL-4

181 READ (5.. 220) LU

182 GO TO 24

183 400 RETURN

184 END

47
APPENDIX D

Subroutine CURVFT Flow Chart, Terminal Messages, Printout, and Listings

48
FLOW CHART: SUBROUTINE CURVFT

49
CURVFT-2

N I

FIND FIRST POINT TO REACH

(NOISE + 5 dB): CALL THIS POINT M2

PERFORM LEAST- SQUARES COMPUTATION

FOR ONE BAND OVER POINTS

Ml to M2

COMPUTE INTERSECTIONS OF LEAST-SQUARES FIT WITH UPPER AND LOWER CURVE- FITTING LIMITS; CALL THESE INTERSECTIONS

M3 AND M4, RESPECTIVELY

50
CURVFT-3

51
CURVFT-4

52
CURVFT-5

53
CRT

TERMINAL

MESSAGES:

SUBROUTINE

CURVFT

54
PRINTOUT

1

-

SUBROUTINE

CURVFT

a

2

:

>-a

u

LUG

COZ

o 1

1

-< O I-—' (M CM CM CM CM no CM cm cm cm cm cm cm cm cm cm cm cm cm cm cm cm cm cm cm cm cm CM CM CD O LU Z Cl- uj

DC

CO

_J

ll <i o nG

£ro

QC UJ

cn

cn xr co no uo xr xr g pm g cm ro co cd cd —< cn »-< »-< jv *-i no sj g xt

- no cm g xr cn iv no no cm xt —* cn g lo co cm g co co gj k cn n- in lo 3 in in in r - xl" G) —1 cm cm no no cm cm — cm 1 —• G CD ‘

' Gj CD G CD G G G G CD 'CD G

CCl G

hCLLUU

> LU

<r t- u<x

UJ CtC g

in r- — N. CM CO mu J fv GJ CO CM fv CTi —' CM fv CO lO CTO CO fv f'O i i — CD LO CM in M fv Gi CM G xT CO TO LO LO fO CD IV CD CO CO CO CO Xt —1 UO Oj XT CO CD CM UO LO —* ' CM CM CM ID IV CO CO CTi —•

' CO KJ LO ID

uo uo uo rv co *- cn g g ao co oj co co co co co co co cn cn gj —* to i

co cn co in -* no pi co cn cm —< uo no q iv —• lo — ~ xr n_ co — r -

1

in •-< oj in n_ o', roco co — cm gj co gj co —* ro gj uo cm co in oj cm

CM CM CO 3 Q UO LU

<* P-4 rv cm cn ur w

cn uo ro r-~ — cm r 0 xf

gj r- CM 3 (J — cn uo gj LU cm co xr co — in co xL ro — cn cr. co ^ cn gj gj gj gj 1 CM XT rv CM tv CO ro CH

' — —* - > CM CM to in [V GJ

CO

COG

3CM

at r: z

3 —

LU2: z

CM

CD CO Z f-Cl

UJ-J

CD LU —' >

CJ LU Z 3

1 rv ro co (v Gj cn 3 —« ro rv 3 OJ uo XL GJ ro n- xr xr —4 Cu no CM 3 00 fv

1 ro 3 xr ro IV rv GJ 3 xr n- rv xr GJ cn cn CM 3 Gj GJ CM CO O', LO 3 rv

' co OJ in CM CD hw cn ro OJ Gj c-r OJ 3 LO r- LO no co LO itTi 'JJ CM U'l r- LO ro

1 *-• co OJ 3 uo UO 3 3 rv IV CO 3 OJ rv rv h- rv rv rv 3 3 'Jj LO LO xr xr xr xr

1 f'O xr CM 3 ro U3 3 t UJ uo , n- on cn CD cn xr CM cn CD cn in C*J IT, GJ no |V,

1 xr 3 ro 3 ro uo GJ 3 © GJ cn PM nj GJ co xr CD xr IV CM no cn xr ,8 CO LO xr CM

1 r- OJ GJ CM (O CO CM in xr UO uo UD 3 3 LO in LO xr xr xr no CM CM r—

H

T—i -r-l xr f'O uo XT XJ ro xT xr xr xr xr xr xr XT xr xr xr xr xr xr xr xr xr xr xr xr xr xr

1 cn OJ 3 ro cn fv , ao xr cn , ro CM CO IV 3 rv LO no CO LO CD 3 no GZ' CO ‘JJ xr no

1 — OJ CO 3 uo in 3 3 fv rv OJ co CO n- rv r-w tv n- n- •JJ ‘Jj 3 LO LO LO xr xr xr -T

1 co , CM ro , CM no xr uo 3 uo 3 3 3 in uo LO in xr xr no CM O-J CM CM w xr xr UO xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr xr XJ

1 CM co 3 CM fv rv GJ uo , LO 3 CO rv ro CM CM no t CTi UO CM co LO OJ cn rv 3 xr no

. 0- xr ro CM ' 1 « 1 CM CM no no ro no ro no no no no ro CM CM CM "* 1 ' 1 ^ 1

CO rv co IV , GJ , , CTi 3 CM CO rv G) co LO xr CO , xr CO 3 CM CO xr XJ T-l co , _

(XJ co co uo no CO GJ 3 GJ GJ GJ G) GJ no 10 xr no xr 3 no no CM CM CM no in CM LO 3

GJ OJ UD CO CO OJ C- CD GJ GJ GJ GJ GJ Gi G) GJ GJ CJ GJ GJ GJ GJ GJ G G i GJ G) CM CM

3 3 cm rv gj ro rv ro m tv cn uo —* uo oj gj xr co ro xr co cn oj cm uo gj ld cm rv in in

a: m fv cn cm cn co co co co —* gj co co no co gj co cn uo ro xj- gj gj cn cn *-< gj gj cm ro co co Z > Q

cj 3 xr uo uo ro xr iv n_ cn co co in 3 n- 3 rv 3 3 rv co r - 3 rv uo uo in 3 r- 3 in cn >—3 xrxrxrxrxrxrxrxrxrxj-xrxrKfxrxr^rxfxj-xrxrxrxrxi-xi'xfxrxrxrxrcM

uo

(T. cm lo no cm cn co t- ro iv cn ro gj lo no cn gj —• ro gj co lo uo xr no no cm cm —

2: CM 3 n~ LO XT nO xj CM -r* CM —1 —1 —1 G) ' Gi —' GJ GJ G' G) Gi GJ GJ GJ Gi CJ

(J LU

UO E K' Q Q Q Q EiQ G Q O Q O Q Q Q Q Q IS Gi O G) Q E B O Gi Q 0 cn

co

cn III Gj in h- r- — gd fv] cr, r.j hi cd co ro cd cd —* tt ud oj r ~ cri —« r- u j c • j l j y—'. $

r xj ro no —• —i r- uo —< no no uo 3 co 3 g> cn co ro rv no 3 — no 3 cm lo —< co uo CJ

UJ LU r- no ro cm cn uo ro xj xr xr uo 3 3 3 3 3 uo uo 3 lo lo xr xr no cm cm —< —> gj gj cn

cn CM —1 ' * w

C3 LO CM Gi Gj no GJ CD Lf) CS) G Gi LO G' CD GJ Gi Gj © »!D G G Gj G Gj © ©1 © © G G

LU CM no XT U“J 3 00 CD CM CD Gi LO —t Gi CD no G) CD U" © G G in © © CD © © © G G M

DC -r-H -r-t CM CM no xr in LO CO d» fvj CD GO LTJ r—i CD © ro © © !J0 G G Z

3 4 CM CM ro uo '.XI Oj © CM 3 G '

’ 1 ^~| CM 0z O Xj LO 3 N- CO CTi CSj , CM no xr LO 3 r- CO CTi CD 04 no XT in •Jj N- on cn © CM no <r z —

*

’ 1 (M OJ fvi CM CM PM CM fvj CM CM ro ro ro no no ro ro ro ro ro tT xr xr LU

55
SUBROUTINE CURVFT

1 $assm

2 CURVFT PROG CURVFT - SUBROUTINE FOR LEAST-SQUARES ANALYSIS OF DECAYS

3 TFORT

4 C

5 C OTHER SUBROUTINES CALLED: BAND

6 C . 7 SLJBROUT I HE CUR VF T ( N , NS IG,X, X0 , SO , S 1 , ARRAY 1 . ARRAY2 , DELTA

,

8 1FREQ, NDCAYS, AUTO, LU, BLOU, BHIGH, CUPPER, CLOUER, MM1 , MM2, MXRDG)

9 I NTEGER*2 B . NS I G , N , X0 (6060 ) , FREQ ( 30 ) , LU . FF , AUTO

,

10 1 BLOLJ.- BHIGH . MM1 (30) , MM2 (30)

11 INTEGER*4 RETRN

12 DIMENSION' X(20O ) , SO (30, 12) , S 1 (30) , ARRAY1 (30) , ARRAY2 (30)

13 DATA FF/X'0C00'X

14 DO 2 1=1,30

15 ARRAY1(I)=0.

16 2 CONTINUE

17 IF (AUTO.NE.0) GO TO 18

18 5 URITE (5,10)

19 10 FORMAT ('ENTER LOGICAL UNIT FOR PRINTOUT DEVICE FOR CURVE20 (FITTING PARAMETERS' X' (ENTER "0" IF YOU DO NOT UANT TO

21 2 PROCESS THIS DECAY)')

22 READ (5, 15) LU

23 15 FORMAT (ID

24 IF (LU.GT.0) GO TO 18

25 16 NDCAYS =M DCAYS1

26 GO TO 2020

27 18 ASSIGN 150 TO RETRN

28 URITE (LU, 19) NDCAYS

29 19 FORMAT ( X/X/X/45X, DELA\ NO. , 14)

30 IF (LU.EQ.5) GO TO 22

31 URITE (LU, 20)

32 20 FORMAT (X/X-'X " BAND' , 9X, ' REVERB . ' , 8X, ' S IGNAL' , 3X, 'NOISE', 3X,

33 1 ' NO . ' . 1 3X, ' NEU' , 5X, ' NEU' , 4X, ' DECAY' , 1 2X, ' RMS OF ' , bX, ' NO . OF' x

34 2X, ' NO . ' , 2X, ' FREQ . ' , 3X, ' T I ME ' , 3X, ' S IGMA ' , 2 ( 3X, ' LEVEL ' ) , 2X, ' PTS . '

,

35 32X, ' Ml ' , 3X. ' M2' , 5X, ' Ml ' , 6X, ' M2' , 5X, ' RATE' , 2X. ' INTCEPT' , 2X,

36 4' RES I DUALS' ,2X, ' REPETITIONS' /X)

37 GO TO 25

38 22 URITE (LLI.23)

39 23 FORMAT (XXXXX/' BAND' , 9X, ' REVERB . ' , 8X, 'SIGNAL' , 3X, 'NOISE'

,

40 1 3X, ' NO . ' , 1 3X, ' NEU *

. 5X, ' NEU'

41 2X. 'NO. ' ,2X, 'FREQ. ' , 3X, ' TIME' , 3X, ' S IGMA' , 2 (3X, ' LEVEL' )

,

42 32X, ' PTS .

' , 2X, ' Ml', 3X, ' M2 ' - 5X, ' M

1

' , bX, ' M2 ' XX)

43 25 DO 900 B--BLOLJ. BHIGH

44 IB = B- 13

45 CALL BAND (B.N,X,X0, 6060)

46 SUM 1=0

47 DO 45 1 = 1. NS IG 48 SUM 1 =SUM 1 + 10. ** i. X ( I ) X 1 0

)

49 45 CONTINUE

50 SUMDSUM1/NS1G

51 SI ( IB) = 1 0*ALOG 10 ( SUMD

52 NREP=0

53 Ml =NS IG+

1

54 DO 130 I =M1 ,

N

55 IF (X(D-S0(IB,MXRDG)-5.) 131, 131, 130

56 130 CONTINUE

57 131 M2=

I

58 IF ( (SI ( IB)-S0( IB,MXRDG) ) .LT.20.) GO TO 850

59 IF (M2-Ml-3)850, 10U0, 1000

60 150 NREP=NREP+

1

56
170

180

190

200

850

852

854

856

860

862

8 6 4

866

870

oOf i

880

882

884

886

8 88

900

CURVFT-2

AXIS 1 = C SLOPED ( M 1-1) *DELTA ) +AX IS0

RMS = 1 + ( AX I S

1 -S 1 (I 8 ) +CUPPER ) / ( SLOPE*DELTA

)

RM4= l + ( AXIS 1 -80 (IB, MXRDG) -CLOIJER) /(SLOPE*DELTA)

M3 = I NT (RM3+. 5)

M4= I NT (RM4+. 5)

IF (ABS (M1-RM3) . LT. 1 . ) GO TO 170

IF ( (M3.GE.NSIG+1) .OR. (Ml .GT.NSIG+1) ) GO TO 180

IF (ABS (M2-RM4) . LT. 1 . ) GO TO 880

IF ( (M4.LE.N) .OR. (M2.LT.N)) GO TO 180

GO TO 880

IF (NREP.EQ. 10) GO TO 190

IF (M3.LT.NSIG+1) M3-NSIG+1

IF (M4.GT.N) M4=N

IF (M4.LT.M3+3) GO TO 860

Ml =M3

M2=M4

GO TO 1000

IF ( ABS ( M

1 -RMS ) . L T . 2 . ) GO TO 200

IF ( (M3. GE. NS IG+1) .OR. (Ml. GT.NSIG+1)) GO TO 360

IF (ABS (M2-RM4) . LT. 2 . ) GO TO 880

IF ( ( M4 . LE . N) . OR . ( M2 . LT . N) ) GO TO 860

GO TO 880

M=M2-M1+1

IF (LU.EQ.5) GO TO 854

UR I TE ( LU , 852 ) B , FREQ ( I B ) , S 1 ( I B) , S0 ( I B , MXRDG ) , M, M 1 , M2 , NREP

FORMAT ('*•', 12, 2X, 15, 18X, 2 (Fb . 2, 2X) , 3 ( 13, 2X) , 48X, 12)

GO TO 900

URITE (LU, 856) B, FREQ ( IB) , S 1 ( IB) , S0 ( IB. MXRDG) , M, Ml , M2

FORMAT ( '*' , 12, 2X, 15, 18X, 2 (F6 . 2, 2X) , 3 ( 13, 2X)

)

GO TO 900

IF (LU.EQ.5) GO TO 864

URITE (LU, 862) B, FREQ (IB) , T60, VT60, S 1 ( IB) , SO ( IB, MXRDG)

,

1M, Ml , M2, RM3, RM4, SLOPE, AXIS 1 , VRMS, NREP

FORMAT ('*', 12, 2X, 15, 2X, 4(F6 . 2, 2X) ,3( I3,2X) ,4(F6.2,2X) ,X,

1F6 . 2, 9X, 12)

GO TO 900

UR I TE ( LU , 366 ) B , FREQ (IB), T60 , VT60 ,S1 ( IB) , S0 ( IB, MXRDG )

,

1M, Ml , M2, RM3, PM4

FORMAT ('*' , 12, 2X, 15, 2X, 4(F6 . 2, 2X) , 3 ( 13, 2X) . 2 (F6 . 2, 2X)

)

GO TO 800

IF (LU.EQ.5) GO TO 354

URITE (LU, 872) B, FREQ ( IB) , S 1 ( IB) , SO ( IB, MXRDG) , M, Ml , M2,

1SLOPE, NREP

FORMAT ( ' *" ,12, 2X, 15, 18X, 2 (F6 .2, 2X) ,3(13, 2X) , 16X, F6 . 2 , 1 8X, 1

2

GO TO 900

IF (LU.EQ.5) GO TO 884

UR I TE ( LU , 882 ) B , FREQ ( I B ) , T60 , VT60 , S 1 (IB) , S0 ( IB, MXRDG)

,

1 M , M 1 , M2 , R M3 , R M4 , S L 0 P E , A X I S 1 , VR MS , NREP

FORMAT ( X, 1 2 , 2X, 15, 2X, 4(F6 . 2, 2X) ,3(13, 2X) , 4 ( F6 . 2 , 2X) , X,

1F6 . 2, 9X, 12)

GO TO 888

URITE ( LU , 886 ) B , FREQ ( I B ) , T60 , VT60 , S 1 ( IB) , S0( IB, MXRDG )

,

1 M, M 1 , M2 , RM3 , RM4

FORMAT C X, 1 2 , 2X, 1 5 , 2X, 4 ( F6 . 2 , 2X) ,3(13, 2X) , 2 ( F6 . 2 , 2X)

)

ARRAY 1 (IB) =T60

ARRAY2 (IB) =AXIS

1

MM 1 (IB) =M1

MM2 (IB) =M2

CONTINUE

IF (LU.EQ.5) GO TO 906

57
CURVFT-3

121 URITE (LU . 905) FF

122 905 FORMAT (X/6X, ' (HZ) ' , 2 (3X, ' '.SEC) ' ) ,; 123 13X, ' (DB) ' , 5X, ' (DB) ' /A 1

)

124 GO TO y08

125 906 URITE (LU, 907) FF

126 907 FORMAT (X/6X, ' (HZ) ', 2 k3X, ' (SEC) ' ) .

.

127 9u8 IF (AUTO.NE.0) GO TO 2000

128 URITE (5,910)

129 910 FORMAT (

* DO YOU UANT ANOTHER PRINT

130 1‘ (ENTER "DROP" IF YOU LJANT TO DROP

131 2 AVERAGES)')

132 READ (5,915)GS

133 915 FORMAT ( A4)

134 IF CGS. ELI. 'DROP') GO TO 16

135 IF (GS.EQ.'NO')GO TO 2000

1 36 GO TO 5 137 1000 M=M2-M1+1

1 38 SUM 1=0

139 SI.J: 12=0

1 40 DO 1050 I = 1 ,

M

141 J=M1+I1

142 SUM1 =SUM1+X( J)

143 SUM2=SUM2+( I - 1 ) >KX( J)

144 1050 CONTINUE

145 SIJM2=SUM2+DELTA

146 C0N1=DELTA+M>K(M-1) /2

CDBV ) . 32X, - (DB - SEC)

•2(4X, ' (DB) ')/hD

OF THESE RESULTS?'/

THIS DECAY FROM THE

147

148

149

150

151

152

153

154

155

1 58

157

158

159

ISO

161

162

163

164

165

166

1 b7

C 0 N 2 = D E L TA*D E L TA*M* ( M- 1 ) * C ( 2*M) - 1 ) /6

AX I S0 = ( SUM2- ( SUM 1 *C0N2 'CON 1 ) ) /(CON 1- (M>KC0N2/C0N 1 )

)

S L 0 PE = ( ( t 1*AX I S O ) - SUM 1 ) /CON

1

IF (SLGPE.LT. . l)GO TO 870

T60 =60. /SLOPE

SUM 1=0

DO 1100 I = 1 ,

M

J =111 + 1-1

C0N3=X( J.i +(SLOPE*( I - 1 ) *DELTA) -AXIS0

SUM 1 =SUM 1 + ( CGM3+C0N3)

1100 CONTINUE

VRMS=SQRT (SUM1/N)

VSLOPE = VRMS+SQRT ( M/ ( ( M+C0N2 ) - ( CON 1 +CON 1 ) )

)

VAXIS0=VRMS*SQRT(CON2/M)

VTb 0 = T60 +VSL 0 P E/SLOPE

GO TO RETRN

2000 URITE (1,2010) (ARRAY 1( I)

URITE (1,2010) ( ARRAY 1 ( I

)

2010 FORMAT (15F8.4)

2020 RE i URN

END

1 = 1, 15)

1=16.30)

58
APPENDIX E

Subroutine DSDATA Flow Chart, Terminal Messages, Printouts, and Listings

59
FLOW CHART: SUBROUTINE DSDATA

60
DSDATA-2

61
DSDATA-3

o o

(235)

r-" ENTER

LOGICAL UNIT FOR PRINTOUT DEVICE

\ f

ENTER BE POINT ( GINNING

)F PLOT

> f

ENT END POINTER

OF PLOT

\ f

' ENT YES C ER

R NO

> f

62
CRT

TERMINAL

MESSAGES:

SUBROUTINE

DSD

AT

A

63
PRINTOUT 1 - SUBROUTINE DSDATA

BAND 3 b 4000 HZ DECANI< NO . 1

1 / 3 4

l { 7

I 3 9 10

46 .00 46 .25 46 ,.25 45 ., 25 46 .50 46 ,.25 45 .75 46 .00 46 ,.25 45 .75

45 .50 47 .25 46 ..75 45 ..25 46 .00 47 , .00 45 .25 46 .00 45 ,.25 45 ,.75

46 . 00 44 .75 44 ..75 45 .,50 45 .25 46 ,.75 46 . 25 45 .50 45 ,.75 46 ,.25

44 .7 5 47 .00 45 . .00 45 ., 00 43 .75 47 ..25 46 .50 46 .75 46 ,.25 45 ,.00

44 .75 42 . 25 40 ,.75 40 .,25 37 .00 35 , .25 34 .25 31 .25 29 ,.75 28 ,.00

26 .75 25 .25 22 ..50 21 , ,50 19 .75 17 ,.75 1

6

“7 cr

. i D 13 .53 13 ,.00 10 ,.00

q . 00 5 . 25 6 ..25 4 ..25 ~2 .50 0 ,.50 0 .00 0 .00 0 ..00 0 ,.00

0 . 00 0 .00 0 .,00 0 .,00 0 .00 0 ,.00 0 . 00 0 .00 0 ,.00 0 ,.00

0 .00 0 . 00 0 ..00 0 .,00 0 .00 0 .,00 0 . 00 0 .00 0 ,.00 0 ,.00

0 . 00 0 . 00 0 .. 00 0 ..00 0 .00 0 ,.00 0 .00 0 .00 0 ,.00 0 ,.00

0 .00 0 .00 0 ..00 0 .,00 0 ,. 00 0 ,.00 0 .00 0 .00 0 ,.00 0 ,.00

0 . 00 0 .00 0 .,00 0 .,00 0 . 00 0 ..00 0 .00 0 .00 0 ..00 0 ,.00

0 .00 0 . 00 0 .. 00 0 .,00 0 .00 0 ,.00 0 .00 0 .00 0 ..00 0 ,.00

0 . 00 0 . 00 0 ..00 0 .,00 0 .00 0 ..00 0 .00 0 .00 0 ..00 0 ,.00

0 .00 0 .00 0 ., 00 0 ., 00 0 .00 0 .. 00 0 .00 0 .00 0 ..00 0 ,.00

0 .00 0 . 00 0 .,00 0 ., 00 0 .00 0 .. 00 0 .00 0 . 00 0 ..00 0 ,.00

0 .00 0 . 00 0 ..00 0 .,00 0 . 00 0 ., 00 0 .00 0 .00 0 ,.00 0 ..00

0 . 00 0 .00 0 .,00 0 .,00 0 .00 0 .,00 0 .00 0 .00 0 ..00 0 ..00

0 . 00 0 .00 0 ., 00 0 .,00 0 . 00 0 .. 00 0 .00 0 .00 0 .,00 0 ..00

0 . 00 0 .00 0 .. 00 0 . 00 0 .00 0 ..00 0 .00 0 .00 0 .,00 0 ..00

64

C3

U3

CO

*M

CT'i

LH

C*J

TO
PRINTOUT 2 - SUBROUTINE DSDATA

BAND 36 4000 H2 DECAY NO. 1

SOUND LEVEL CDB>

0 10 20 30 40 50 60

25 Y 2.50

26 2 . 60

27 * 2.70

28 * 2.80

29 * 2 . 90

30 4C - 3.01

31 . 4c 3.11

32 4c 3.21

33 4< 3.31

34 * 3.41

35 * 3.51

36 * 3.61

37 4= 3.71

70JU - 3.81

39 * - 3.91

40 4-’— 4.01

41 -JK 4. 1 1 42 . 4c- 4.21

43 = = = + == = == 4.31

44 -4C. 4.41

45 + 4.51

46 4'- 4.61

47 + .

' 4.71

48 *- 4.81

49 + 4.91

50 + 5.01

51 + 5.11

52 + 5.21

53 + 5.31

54 —

5.41

55 —

5.51

56 + 5.61

57 -* 5.71

5ti + 5.81

59 . 5.91

60 = = = ;f-~ = = = 6.01

61 +

.

6.11

62 * - 6.21

bb -* 6.31

64 —4c 6.41

65 - * 6.51

66 -4< , 6.61

67 * 6.71

68 * 6.81

69 JK b . 9 1 70 * 7.01

71 4< 7.11

*7 o 4c 7.21

73 * 7.31

74 * 7.41

75 * 7.51

POINT NO. REVERB. TIME = 3 . 37 SECONDS TIME (SEC

65
SUBROUTINE DSDATA

$ASSM

DSDATA PROG DSDhTh - SUBROUTINE FOR DISPLAYING DECAY DATA POINTS

$FORT

4 C

b C

6 L

0

9

10

1

1

12

13

14

15

16

1?

18

19

28

21

22

24

25

2b

27

OTHER SUBROUTINES CALLED: BAND

SUBROUT INE DSDATA ( X, X0 . ARRAY 1 • ARRAY2, FREQ, N, NDCAYS , L I HE. DELTA.

ISO .Si, CLIPPER, CLOUER, MM1 , Mt'12, MXRDG)

INTEGERS B,LU,N,X0(6060),FREQC30) .LINE (65) ,I1M1 (30) ,MM2(30)

INTEGERS BLANK, STAR. PLUS, MINUS, DOT, EQUALS, FF

D I MENS TON X(200) , ARRAY 1 (30) , ARRAY2 (30) . SO (30, 12) , S 1(30)

DATA BLANK , STAR, PLUS , MINUS, DOT, EQUALS, FFXX' 2000' , X' 2A00'

,

' 2D00 ‘ , X' 2E00 ‘ , X

’ 3D0O ' . X" 0C00 '

X

10

20

30

40

50

60

70

60

90

100

UANT TO SEE ANOTHER BAND OF DATA?')

IX' 2BUU'

GO TO 60

URITE (5,20)

FURMAT ('DO ' READ (5,30) GS

FORMAT (A4)

IF (GS . FQ

.

‘ NO ‘ ) GO TO 900

GO TO 60

URITE (5,50)

FORMAT ('YOU HAVE ENTERED AN IMPROPER BAND NUMBER')

URITE (5,70)

FORMAT (‘ENTER BAND NUMBER')

READ (5, 80)

B

FORMAT (12)

IF ( (B.LT. 14) .OR. (B.GT.43) ) GO To 40

URITE (5,100)

FORMAT CENTER LOGICAL UNIT FOR PRINTOUT DEVICE')

30 READ (5, 1 10) LU

31 1 10 FORMAT (ID

32 I B=B- 1

3

33 CALL BAND ( B , N , X, X0 , 6060

)

34 URITE (LIJ, 130)B,FREQ( IB) .NDCAYS, (1 . 1 = 1, 10)

35 130 FORMAT (X/X/X/10X, 'BAND '

, 12, 10X. 15, ' HZ'

,

10X, ' DECAY NO. ' , I 4Y

36 1 X/X/2X • 10(12, 5X) /X)

37 ML !.NES=N/10

36 DO 150 1 = 1, NL 1 NES

39 J1 = (I — 1) : 10+1

40 J2=( 1-1) *1 0+10

41 UP 1 TE ( LU , 1 40 ) ( X ( J ) , J =J 1 , J2) , I 42 140 FORMAT ( 10 (F6 . 2, X) , 3X, 12)

43 150 CONTINUE

44 URITE (LU, 160 'FF 45 160 FORMAT (Al)

46 URITE (5,200)

47 200 FORMAT ('DO YOU UANT ANOTHER PRINT OF THIS TABLE?')

48 READ (5,30) GS

49 IF (GS . ME . NO ) GO TO 90

50 URITE (5,230)B

5

1

230 FORMAT ('DO YOU UANT A PLOT OF BAND ',12,' ?'

)

52 READ (5,30)GS

53 IF (GS.EQ. 'NO' • GO TO 10

54 -sic2- j .1 URITE (5,100*

55 READ (5, 1 10) LU

56 URITE (5,238)

CT —

„l 1 £00 FORMAT CENTER BEGINNING POINT OF DESIRED PLOT (3 DIGITS)')

56 READ (5.250)111

59 URITE (5, 240,'

60 240 FORMAT ('ENTER END POINT OF DESIRED PLOT <Z DIGITS)')

66
DSDATA-2

61 REND (5 . 250) M2

62 250 FORMAT (13)

63 IF (ARRAY1 ( IB) . LT. 8 . 0 1 ) GO TO 370

64 SLOPE=60 . /ARRAY 1 ( IB)

65 370 UR I TE (LU,380)B, FREQ ( IB) , N DCAYS

66 380 FORMAT ( 10X, 'BAND '

. 12, 10X, 15, ' HZ' , 10X, 'DECAY NO.

67 1 ''254, * SOUND LEVEL CDB) ' /X/4X, ' 0' , 9X, ' 10', 8X, ' 20' • 8

68 2 ' 40 ‘

• 8X, '50' . 8X, ‘ 60' /4X, 13 (

' .

' , 4X) -'>0 69 J3=S 1 ( IB) -CUPPER+1 .

5

70 J 4= S0 ( I B , MXR D G ) +C L 0 UER + 1 .

5

71 390 DO 500 I =111-112 72 DO 400 1=1.65

73 LINE' J) =BLANK

74 400 CONTINUE

75 TIME=I*DELTA

76 J1=X( I)+l .5 77 I F (ARRAY 1 ( IB) . LT . 0 . 0 1 > GO T0 405

78 L INF ( J3) = DOT

79 LINE ( J4) =DOT

80 IF ( f I . NE . MM 1 ( IB ) ) . AND . ( I . NE . MM2 (IB))) GO TO 404

81 J5=J 1

-- 4

82 J6=j 1-2

83 DO 402 J = J5 . 16 84 LINE ( J) =EQLIALS

85 402 CONTINUE

86 J5-J 1+2

8 7 J 6 = J 1 +4

88 DO 403 J = - T 5 - T6 89 LINE(J) =EQUALS

9G 403 CONTINUE

91 404 J2= l . 5+ARRAY2 ( IB) -SLOPE* (

I - 1 ) /DELTA

92 IF ( ( J 2 . LT . 1 ) . OR . C J2 . GT. 65 ) ) GO TO 405

93 IF (T2.EQ.J1) GO TU 410

94 L INE ( J2) =MIMUS

95 405 LINE(Jl) =STAR

96 GO TO 420

97 410 LINE (J 1

) =PLUS

98 420 UR I T E (LIJ - 430) I , (LI NE ( J ) , J = 1 , 65 ) , T I ME

99 430 FORMAT ( 13, X, 65A 1 , F5 .2)

100 500 CONTINUE

101 IF ( ARRAY 1 (IB) .LT.0.01) GO TO 520

102 URITE (LU, 5 10) ARRAY 1 ( IB) , FF

103 510 FORMAT (X/' POINT NO .', T24, ' REVERB . TIME = ',F6.2,

104 1' SECONDS ' , T68, ' T I ME ( SEC ) '/Al)

105 GO TO 600

106 520 URITE (LU, 530) FF

107 530 FORMAT ( X/' PO I NT NO . ' , T68 ,

' T I ME (SEC) ' /A 1

)

108 609 URITE (5,610) B 109 bid FORMAT ('DO YOU UANT ANOTHER PLOT OF BAND ',12,' ?

1 10 READ (5, 30) GS

1 1 1 IF ( GS . E Q

. ' N O') GO TO 1

0

1 12 GO TO 235

1 13 900 RETURN

i 14 END

67
APPENDIX F

Subroutine AVRGE Flow Chart, Terminal Messages, Printout, and Listings

68
FLOW CHART: SUBROUTINE AVRGE

ENT YES 0 ER

R NO

N r

i ENT LOGICAL L PRINTOUT'ER NIT FOR DEVICE |

69
CRT

TERMINAL

MESSAGES:

SUBROUTINE

AVRGE

70
PRINTOUT 1 - SUBROUTINE AVRGE

NUMBER OF DECAYS CONDUCTED = 24

BAND REVERB CONFIDENCE NO. OF DECAYS'

NO

.

FREQ. TIME STD. DEV. INTERVAL DECAYS REMAINING

(HZ) (SEC) (SEC) (%. +0R-)

14 25 22.11 3 . 66 7.7 20 26 2

15 79 17 . 82 4.02 10.3 2 i 500

1 6 40 14.85 3 . 53 10.0 24 550

17 50 9.51 2 . 55 11.6 23 709

18 £3 4. 14 0.57 5 8 24 166

19 80 4.57 0 . 58 5 ! 3 24 137

20 100 3 . 02 0.45 6 .

2

24 197

21 125 3.71 0.35 4.0 24 67

“i " 160 4.51 0 . 26 2.4 24 9

p"7 200 5.19 0.21 1.7 24 0

24 250 6.31 0.17 1.2 24 0

25 315 6 . 80 0.15 1 .0 24 0

2b 400 6.97 0. 17 1 .0 24 0

27 500 6 . 7b 0. 15 0.9 24 0

28 630 6 . 1 6! O.lb 1 . 1 24 0

29 800 5.91 0.11 0.8 24 0

30 1000 5.94 0 . 08 0.6 24 0

31 1250 5.92 0 . 07 0.5 24 0

"7 0 1600 5 . 66 0.07 0.5 24 0

77 2000 5. 19 0.09 0.8 24 0

34 2500 4.63 0.07 0.6 24 0

35 3150 4.01 0 . 06 0.7 24 0

3t. 4000 3.34 0 . 05 0.6 24 0

o r 5000 2 . 70 0.04 0.6 24 0

38 6300 2. 12 U . 05 8.9 24 0

39 8000 1 . 58 0 . 02 0.7 24 0

40 10000 1 . lb 0 . 03 1.0 24 0

41 12500 0 . 84 0 . 03 1.3 24 0

42 16000 0.61 0 . 04 2l . O 24 19

43 20000 0
1

r>

t-3

4

Cj6

7

8

q

18

1

1

1213

14

1516

17

18

19

20

21

22

23

24

•“'C 2 b

27

28

29

30

31

T ~J

34

3 b

_j i 38

39

40

41

42

43

44

45

4 b

47

48

49

50

51

try 53

54

55

56

tr "7 %J i CTO 59

60

SUBROUTINE AVRGE

$ASSM

AVRGE PROG AVRGE - SUBROUTINE FOR AVERAGING THE RESULTS OF MANY DECAYS

$FOR l SUBP R 0 G RAMS CALLED: T I N 0 R M, S TU D I

M

S U B R 0 U TINE A VRG E t X, X0 , ARRAY 1 ,ARRAY2, N D C. A YS , C I NTER, CLEVE L

,

1 FREQ , BLOLL BH I GH

)

INTEGERS X0C60) , FREQ (30) , B, BLOLJ, BH IGH, B 1 , B2, LU, FF

D I MENS I ON X (200 ) , ARRAY 1(30), ARRAY2 C 30

)

DATA FF/X' UL'00' /

ALPHA= 1

. -CLEVEL/100

.

DO 10 1=1,30

X( I) =U. X0 ( I) =0

10 CONTINUE

REWIND 1 DO 20 J = 1 , N DC AYS

READ i 1,15 ) (ARRAY 1 (I ) , I = 1 , 1 5

)

READ < 1,15) (ARRAY 1(1), 1=16. 30)

15 FORMAT (15F8.4)

DO 20 1=1,30

I F (ARRAY 1(1) . EQ . 0 . ) GO T0 20

X( I) =X( I ) +ARRAY1 (I)

XU ( I ) =X0 ( I ) +

1

20 CONTINUE

DO 30 1=1, 30

I F ( X0 ( I ) . EQ . 0 ) GO TO 30

ARRAY 1 ( I ) =X( I ) /X0 ( I) 30 CONTINUE

DO 40 1=1,30

X( I

) =0

.

40 CONTINUE

REWIND 1 DO 50 J = 1 , N DC AYS

READ (1, 15) (ARRAY2 ( I) , 1=1, 15)

READ ( 1 , 15) (ARRAY2 ( I ) , 1=16,30)

DO 50 1=1,30

I F ( ARRA Y2 ( I ) . EQ . 0 . ) GO TO 50

X( i ) =X( I )+( ARRAY 1 ( I ) -ARRAY2 (ID *( ARRAY 1 ( I) - ARRAY2 (I))

50 CONTINUE

ORD IN=TINORM( 1. -ALPHA/2.)

NDF =0

DO 100 1=1,30

IF (X0 ( I ) . LT. 2) GO TO 100

IF (NDF . EQ . CX0 ( I

) - 1 ) ) GO TO 70

NDF =X0 ( I ) - 1 TALF'HA=STUD II K ALPHA, NDF, 4, 5)

7 0 A R R AY2 ( I ) = SQR T ( X ( I ) A\ D F

)

X( I +30) = 100 . +ARRAY2 ( I ) *TALPHA/(ARRAY1 ( I ) *SQRT ( 1 . *X0 ( I ) )

)

IF (X( 1+30) .GT.CINTER) GO TO 80

X0( 1+30) =0

GO TO 1 00

8 0 C = ( TA L P H A +0R DIN ) /2

.

C = 100 . +C+ARRAY2 ( I )/( ARRAY 1 ( I ) *C INTER)

C=C+C+ . 5-XO ( I

)

IF (C^LE. 32767.) GO TO 90

X0 ( 1 4 30) =32767

GO TO 100

90 X0 ( 1+30) =C

72
AVRGE-2

61 I F ( XO ( I +30 ) . LT . 1 ) X0 ( I +30 > -

1

62 100 CONTI HUE

63 LU=5

6 4 i 60 UK' I TE k L U , 1 7 0 ) N D C ft YS

65 170 FORMAT (X/X/'X/Tt 1 ,' NUMBER OF DECAYS CONDUCTED =

' , I 4/X/X/X/

66 1

‘ BAND ' , T 1 4, ' REVERB ' - T3 1 •' CONF I PENCE ‘ , T43 .. 67 2

‘ NO . OF ' , T52 ,

' DECAYS '

•••' 68 3 f2

, 'NO. ' ,T7, 'FREQ. ' -T15, 'TIME' ,T22, 'STD. DEV. ‘,T32, ' INTERVAL'

69 4T43 ' DECAYS ' T5 1 , ' REMA I N I NO

70 56X.. ' (HZ) ' , 3X.. ' (SEC) ' , 4X, ' (SECj '

, T32. ' (.%, +0R-) ' /X)

71 180 DO 300 B=BLObJ.. BHIGH

72 I =B- 13

73 IF (XO( 1) . EU.0) GO TO 220

74 IF CXBCn.EQ.l) GO TO 440

7 5 UR ITE ( L I J , 2 0 0 )B,FR E Q ( I ) - ft R RAY 1(1) . A R R A Y2 ( I) , X ( 1 +30 ) , X0 ( I ) , X0

76 200 FORMAT (X.. 12. D V I5,2X,F6.2, 3X, F6 . 2, 5X, F5 . 1 , 5X, 14, 5X, 15)

77 GO TU 300

78 220 ARRhYI (I) =0.

79 ARRAY2 ( I

) =0

.

8 U UR I TE ( L U .. 2 3 O ) E: .. F R E Q U

)

8 1 230 F ORMAT ( X, 1 2 , 2X, 1 5 .. 35X, ' O ' > 82 GO TO 380

83 240 ARRAY2 ( I ) -0

.

84 UP I TE FLU , 250) B , FREQ C I ) , ARRAY 1 ( I

)

85 250 FORMAT ( X, 1 2 , 2X, 1 5 , 2X, F6 . 2 . 27X, '

1 '

)

86 3O0 CONTINUE

87 UP ITE CLU..310) FF

88 310 FORMAT (Al)

89 UR ITE (5,320)

90 320 FORMAT (‘DO YOU IJANT ANOTHER PRINT OF THESE RESULTS?')

91 READ (5..33EDGS

92 330 FORMAT (A4)

93 IF (GS.EQ.'NO') GO TO 480

94 UP ITE (5,340)

95 340 FORMAT ('ENTER LOGICAL UNIT FOR PRINTOUT DEVICE')

96 READ (5,350>LU

97 350 FORMAT (ID

98 GO TO 160

99 408 RETURN

100 END

( 1+30

73
APPENDIX G

Subroutine RSULTS Flow Chart, Terminal Messages, Printouts and Listings

74
FLOW CHART: SUBROUTINE RSULTS
RSULTS-2

o

1 ' ENT TIME 0 ER

F DAY

V

(150)

V

f ^ t ^

f

.— ENT LOGICAL U PRINTOUT

ERNIT FOR DEVICE

> f

o

PRINTOUT 1

PRINTOUT 2 6

76
RSULTS-3

V
CRT

TERMINAL

MESSAGES:

SUBROUTINE

RSULTS

78
PRINTOUT

1

-

SUBROUTINE

RSULTS

CD

Cvl •

e

E •

E'

CTi

E

CO

CO

QC

LU

LlI ClT <x3

C3

CO

E

NE

Cl)

E

I— E

CL Lf> • QCa

co

00

<x E

E

ro •

E

CM

E

¥:

& ¥:

Ai

ID CM E E ro E E UD E E El Lf) E E E* E Ei E E E Ei E E E E E E E E E

CM fO Tf If) CD CO E CM CD E LD "1 E E fO E E in E E E ID E E E E E E E E ’— ’—> ’—> rsi cm ro ’vf in co oo e cm cd e ir< —' e e ro e e u > e e

OJ C'-J ro "Ct LTJ '-JO CO E CM CD E —I — — C' i 79

FREQUENCE
PRINTOUT 2 - SUBROUTINE RSULTS

REVERBERATION DECAY MEASUREMENTS

BAND REVERB . RELATIVE CONFIDENCE NO. OF

NO. FREQ. ABSORPTION TIME STD. DEV. STD. DEV. INTERVAL DECAYS

(HZ) (METERS'*2) (SEC) (SEC) (&) ( % +0R-

)

14 25 3.08 22.11 3 . 66 16.56 i . 1 20

15 3 . 83 17.82 4.02 22 . 57 10.3 21

1 6 40 4.59 14.85- 3.53 23 . 78 10,0 24

17 50 7. 17 9.51 2.55 26.82 1 1.6 23

18 63 1 b . 46 4. 14 0.57 1 3 . 68 5.8 24

19 80 14.92 4.57 0 . 58 12.59 5.3 24

20 100 p CO 3.02 0 . 45 14.75 6.2 24

21 125 18 ! 38 3.71 0 . 35 9.45 4.0 24

22 160 15. 12 4.51 0.26 5 . 68 2.4 24

23 200 13.14 5. 19 0.21 3.96 1.7 24

24 250 10.80 6.31 0. 17 O "7 "T 1.2 24

25 315 10.03 6 . 80 0. 15 2! 26 1.0 24

2b 400 9.79 6.97 0.17 2.38 1.0 24

27 500 10 . 09 6.76 0. 15 2.21 0.9 24

28 630 1 1 . 04 6.18 0. 16 2.60 1 . 1 24

29 800 11.53 5.91 0.11 1.89 0.8 24

30 1000 11.49 5.94 0.08 1 .35 0.6 24

31 1250 11.52 5.92 0 . 07 1 .26 0.5 24

72 1 600 12.04 5 . 66 0.07 1 .26 0.5 24

1) w' 2000 13. 13 5. 19 0 . 09 1 . 83 0.8 24

34 2500 14.71 4 . 63 0.07 1.41 0.6 24

35 3150 17.02 4.01 0.06 1 .56 0.7 24

36 4000 20.40 3.34 0.05 1 .48 0.6 24

37 5000 25.26 2.70 0.04 1 .41 0.6 24

38 6300 32.09 2. 12 0 . 05 2. 12 0.9 24

39 8000 43.05 1.58 0 . 02 1.57 0.7 24

40 10000 58.69 1 . 16 0.03 2 . 35 1.0 24

41 125O0 8 1 . 50 0.84 0.03 3.02 1.3 24

42

43

16000

20000

111.98 0.61 0.04 6.52 2.8 24

0

TIME BETWEEN SAMPLES = 0 .10017 SECONDS CURVE FITTING LIMITS:

NO . OF SAMPLES IN SIGNAL MEASUREMENT = 40 5.0 DB DOWN FROM SIGNAL LEVEL

NO . OF SAMPLES IN DECAY MEASUREMENT = 160 10.0 DB UP FROM NOISE LEVEL

NO . Oh D E L A YS CONDUCTED = 24

NO. OF MICROPHONES = 12 CONFIDENCE LEVEL = 95.00 %

DRY BULB TEMPERATURE =21.8 DEG. C (?1.2 DEG. F)

LET BULB TEMPERATURE = IS. 7 DEG. C >;62.0 DEG. F)

RELATIVE HUMIDITY = 59.7 %

BAROMETRIC PRESSURE = 980.8 MILLIBARS '735. 7 MM HG)

VANE SPEED: 7.5 PPM

SOUND SOURCf : NTOSH MODEL ML- 1C SPEAKER IN (0,0,1) CORNER: PINK NOISE: 10 VRMS

ROOM CONTENTS: 12 LOU FREQUENCY ABSORBERS

DATE: 3/18/77

TIME: 7:30 A.M.

80
SUBROUTINE RSULTS

1 $ASSM

2 RSULTS PROG RSULTS - SUBROUTINE FOR DISPLAYING RESULTS OF MANY DECAYS

3 $FORT

~ 4 C

5 C OTHER SUBROUTINES CALLED: HUMID

6 C

7 SUBROUT I ME RSULTS (X» X0 , ARRAY 1 , ARRAYS.. FREQ.. N DC AYS, CLEVEL . NS I G

.

8 1 N DEC.- L I N E , D ELTA , B L 0 U, BH I G H , CU P P E R , C L 0 LJE R

)

9 INTEGERS EL NS IG, MDEC, FREQ (30) , LU, FF, BLANK, STAR, PLUS,

10 1. L I NE ( 1 2 1 ) , X0 ( 30 ) , BLOW, BH I GH

11 D I MENS I ON X (60 ) , ARRAY 1(30), ARRAYS ( 30 ) , DATE ( 5 ) , T I ME f 5 )

,

1 2 1 STATUS (IS) , SPEAKR (IS)

13 DATA FF, BLANK, STAR, PLUS/X' 0C00' , X' 2000' , X' 2A00' , X' 2B00' /

14 10 CALL HUM I D ( HUMDTY, DTEMPF , DTEMPC , UTEMPF , UTEMPC . PRESS 1 , PRESS?

,

15 1VSOUND)

16 UR I IE (5,20)

17 20 FORMA 7 (‘MERE THESE DECAYS PERFORMED IN THE MODEL REVERBERATION

18 1 ROOM?')

19 READ (5,91 0 ) G S

20 MODEL =1 21 IF ( GS . EQ . ' NO ' ) MODEL =0

22 URITE (5,22)

23 22 FORMAT CENTER NO. OF MICROPHONES USED IN THIS MEASUREMENT

24 1 (2 DIGITS)')

25 READ (5,24) NMIC

26 24 FORMAT (12)

27 URITE (5,30)

28 30 FORMAT ('ENTER VANE SPEED IN REV/M IN (XX.X)')

29 READ (5,40) VANE

30 40 FORMAT (FI 0.5)

31 URITE (5,50)

32 50 FORMAT ('DESCRIBE SOUND SOURCE (1 LINE)')

33 READ (5,70) (SPEAKR ( I ), 1=1 , 18)

34 URITE (5,60)

35 60 FORMAT (X/' DESCRIBE ROOM CONTENTS (1 LINE)')

36 READ (5,70) ( STATUS ( I) , 1=1, 18)

37 7U FORMAT ( 18A4)

38 URITE (5,80)

39 80 FORMAT (X/' ENTER DATE')

40 READ ( 5 , 90 ) ( DATE (I), 1 = 1,5)

41 90 FORMAT (5A4)

42 URITE (5,100)

43 100 FORMAT ('ENTER TIME OF DAY')

44 READ (5,90) (TIME ( I ) ,

I = 1 , 5)

45 VOLUME =42 4.

8

46 IF (MODEL. EQ. 1) VOLUME = 6.6375

47 DO 140 1=1,30

48 IF ( XU ( I ) . EQ . O ) G 0 TO 1 40

49 X( I) = .921*60*VOL U ME / ( A R R A Y 1(1) *VS0 U N D

)

50 140 CONTINUE

51 150 URITE (5,160)

52 160 FORMAT ('ENTER LOGICAL UNIT FOR PRINTOUT DEVICE')

53 READ (5, 170) LU

54 170 FORMAT (ID

55 URITE (L U, 300)

56 300 FORMAT (X/X/X/5 IX, ' ABSORPTION (SQUARE METERS) ' /X/X/6X, ' 0'

,

57 1 y X, ' 10'. 8X, '20' , oX, ' 30 ' , SX, ' 40 ' , 8X, ' 50 ' , 8X, ' 60' , 8X, '70' , SX,

58 2 ' bU ' , 8X, ' 9U ' , 7X, ' 1 00 ' , 7X, ' 1 10' , 7X, ' 120' /6X, 25 (

'

. ' , 4X) /X/X)

59 DO 350 B=BLQU, BH IGH

bU I =B- 13

81
310

320

330

340

350

360

500

520

550

560

570

580

600

620

630

640

650

666

RSULTS-2

DO 310 J= 1,121

LINE ( J) =BLANK

CONTINUE

I F ( X0 C I) . EQ . 0 ) GO T0 330

.J=X(I)+J. .5

IF (J.Ll.l) GU TO 330

IF CJ.GT.121) GO TO 320

L INE ( J) =STAR

GU TO 330

LINE (121) =F'LUS UR ITE (LU.. 340') FREQ ( I ) , (LINE(J) , J = 1 , 121)

FORMAT C 15, X, 121A1)

CONTINUE

UR ITE (LU . 360) FF

FORMAT (X/* FREQUENCY'* /2X, ' (Fid) * /A 1

)

UR ITE (LU, 500)

FORMAT (T21, * REVERBERATION DECAY MEASUREMENTS' /X/X/X/

1

* BAND' , T28, ' REVERB . ' , T47, ' RELATIVE* , T57, 'CONFIDENCE' , 2T69, ' NO . OF'/

3T2 ,' NO . ' , TB, ' FREQ . ' , T1 5, ' ABSORPT I ON ' , T23 , ' T I ME * , T37 ,

' STD . DEV. '

,

4T47 ,

* STD . DEV. * , T58, ' INTERVAL ' , T69, ' DECAYS' /

STB, ' (HZ) ' , T15, ' (METERS+2) ' , T2S, ' (SEC) ' , T38, ' (SEC) "

,

6 T49 ,

' ( % )' , T5 S

, '

(

% , +UR- )

' /X)

DO 600 B=BLOU, BH IGH

I =B- 13

IF (X0 ( I ) . EQ . 0) GO TO 550

IF CX0 ( I ) . EQ . 1 ) GO TO 570

C = 1 00 . +APRAY2 ( I ) / ARRAY 1(1)

UR ITE (LU, 520) B . FREQ ( I ) , X ( I ) , ARRAY1 ( I ) , ARRAY2 ( I ) , C , X ( 1+30) , X0 ( I

)

FORMAT ( T2 , 12,77 , 15, T15, F7 . 2, T27, F6 . 2, T37, F6 . 2, T46, F7 . 2,

1T59..F5. 1 , T69, 14)

GO TO 600

UR ITE ( LU , 560 ) B , FREQ ( I

)

FORMAT ( X, 1 2 . 3X, 1 5 , T72 ,

* 0 '

)

GO 1 0 600

UR I TE ( LU , 580 ) B , FREQ ( I) ,X( I) , ARRAY 1(1)

FORMAT (T2, 1 2, T7, 15, T15, F7 . 2, T27, F6 . 2, T72, '

1 '

)

CONTINUE

UR I TE ( LU , 620 ) DELTA , NS I G , CUPPER . NDEC . CLOLJER, NDCAYS

,

1NMIC, CLEVEL , DTEMF'C, DTEMPF

FORMAT (X/X/'TIME BETUEEN SAMPLES = *,F7.5,' SECONDS',

1T54, 'CURVE FITTING LIMITS:*/

2* NO. OF SAMPLES IN SIGNAL MEASUREMENT = ',13,

3T43, F5 . 1 ,

' DB DOIJN FROM SIGNAL LEVEL*/

4* NO. OF SAMPLES IN DECAY MEASUREMENT = ',13,

5T48 . F5 . 1

, ' DB UP FROM NO I SE LEVEL *

/

6 'NO. OF DECAYS CONDUCTED =',14/

7* NO. OF MICROPHONES = '

, I2/X/

8 ' CONF I DENCE LEVEL = '

. F 5 . 2

, ' % ' /X/

9* DRY BULB TEMPERATURE = '

, F4. 1 , ' DEG . C (',F4. 1,' DEG. F)

IF (UTEMPC.EQ.-1000. ) GO TO 640

UR ITE ( LU , 630 ) LJTEMPC , UTEMPF

FORMAT (' UET BULB TEMPERATURE = ',F4.1,' DEG. C

1 (

' , F 4 . 1

, ' DEG. F)')

UP ITE (LU, 650) HlJMDTY,PRESS2, PRESS 1 FORMAT ('RELATIVE HUMIDITY = *,F4.1,' %'/

1 ' BAROMETRIC PRESSURE = *,F6.1,' MILLIBARS (',

2F5. 1, ’ MM HG) ' /X)

UP 1 TE ( LU , 660 ) VANE • ( SPEAKR (I), 1 = 1, 18), (STATUS (I), 1 = 1, 18)

FORMAT (

' VANE SPEED :

* , F4 . 1 , ' RPM'

/

82
RSULTS-3

121

122

123

124

125

126

127

12S

129

130

131

132

133

134

135

136

137

136

139

140

141

142

143

144

145

146

147

148

670

680

690

900

910

920

99t

930

950

960

r SOUND SOURCE: 1884/ ' ROOM CONTENTS : -,1804)

IF (MODEL . EG). 0) GO fu 680

URITE CLU, 670)

FORMAT (/'MODEL ROOM')

i JR I TE CLU, 690 ) C DATE (I ) , 1 = 1,5), ( T I ME ( I ) , I = 1 , 5 ) , FF , FF

FORMAT ( X/' DATE : ' , 5A4/' T I ME : '

, 5A4/A 1 /A 1

)

URITE (5,9G0)

FORMAT ('DO YOU UANT ANOTHER PRINT OF THESE RESULTS?')

READ (5,910)08

FORMAT (A 4)

IF (GS.NE.'NO')GO TO 150

URITE (5,920)

FORMAT (-DO YOU UANT TO CORRECT ANY TYPING MISTAKES IN THE

1 PRINTOUT?-)

READ (5, 9 10) GS

IF ( GS . NE

.

" NO - ) 00 TO 10

REMIND 2 UR I TE (2 , 925 ) C DATE ( I) , 1 = 1,5), CTI ME ( 13 , 1 = 1,3)

FORMAT (5A4,3A4)

DO 950 1=1,30

8=1+13

URITE (2,930) B,FREQ( I) ,X( I) , ARRAY 1 ( I) , ARPAY2C I) ,X( 1+30 ' ,X0( I) FORMAT (12, X, I 5 , X, F8 . 4, X, F8 . 4, X, F9 . 5, X, F6 . 3 , X, I 3

)

CONTINUE

UR I TE ( 2 , 960 ) DTE MFC , HUMDTY, PRESS

2

FORMAT ( 3F6 . 1

)

RE TURN

END

83
APPENDIX H

Subroutine HUMID Flow Chart, Terminal Messages, and Listings

84
FLOW CHART: SUBROUTINE HUMID

V

85
HUM ID2

86
HUMID-3

87
CRT

TERMINAL

MESSAGES:

SUBROUTINE

HUMID

88
SUBROUTINE HUMID

1 $ASSM

2 HUMID PROG HUMID - SUBROUTINE FOR COMPUTING HUMIDITY FROM IJET BULB TEMP

3 $FORT

4 C

5 C THIS SUBROUTINE ALLOUS THE ENTERING OF ATMOSPHERIC FACTORS OF

6 C TEMPERATURE, RELATIVE HUMIDITY AND PRESSURE. HUMIDITY FAN BE

7 C COMPUTED FROM DRY AND UET BULB TEMPERATURE READINGS.

8 C THE SPEED OF SOUND IS ALSO COMPUTED.

9 C

10 C FORTRAN CALL STATEMENT:

1 1 C -CALL HUM I D ( HUMDTY, DTEMPF , DTE MFC , UTEMPF , UTEMPC

,

1 2 C PRESS 1 , PRESS2 , '•/SOUND

)

13 C

14 C HUMDTY (PEAL) = RELATIVE HUMIDITY (PERCENT)

15 C DTEMPF (REAL) = DRY BULB TEMPERATURE (FAHRENHEIT)

16 C d tempi: (REAL) = DRY BULB TEMPERATURE (CELSIUS)

17 C UTEMPF (REAL) = UET BULB TEMPERATURE (FAHRENHEIT)

18 C

19 C 20 C

UTEMPC (REAL) = UET BULB TEMPERATURE

NOTE: UTEMPC IS SET

NOT TO ENTER

(CELSIUS)

= -1000. IF YOU CHOOSE

THE UET BULB TEMPERATURE

21 C PRESS 1 (REAL) = BAROMETRIC PRESSURE (MM HG)

22 C PRESS2 (REAL) = BAROMETRIC PRESSURE (MILLIBARS)

23 C VS0 UND (REAL) = SPEED OF SOUND (METERS/SECOND)

24 C 25 C NO OTHER SUBROUTINES CALLED

26 C 27 S IJ B R 0 U T I N E H U M I D ( H IJ MD TY, D TE MP F , D TEMPC , LITE MP F , UTE MPC

,

28 1 PRESS 1 , PRESS2, YSOUND)

29 UR I TE (5,10)

30 10 FORMAT ('ENTER DRY BULB TEMPERATURE (C OR FXX.X) '

)

3 1 READ < 5 , 20) SCALE , TEMP

32 20 FORMAT (A1,F4.1)

33 IF (SCALE . EQ .' C' ) GO TO 30

34 DTEMPF =TEMP

3 5 I) TE MPC = 5 h: ( TE MP -32) /9

36 GO TO 40

37 30 DTE MP F = 3 2 +9 *TE MP /5

38 D TEMPOTEMP

39 40 UR I TE (5,50)

40 50 FORMAT ('DO YOU IJAMT TO COMPUTE THE HUMIDITY FROM THE UET BULB

41 1 TEMPERATURE? •

)

42 _ READ (5,60) GS

43 60 FORMAT (A4)

44 IF (GS.EQ. 'NO' ) GO TO 90

45 URITE (5,70)

46 70 FORMAT ('ENTER UET BULB TEMPERATURE (C OR FXX.X)')

47 READ (5, 20) SCALE, TEMP

48 IF (SCALE . EQ . ' L ) GO TO 80

49 UTEMPF = TEMP

5 0 UTE MP 05* ( TE MP - 3 2 ) 9

51 GO TO 90

52 8 0 U 1 1 MP F = 3 2 +9 * I E MP /5

53 UTEMPC = TEMP

54 90 URITE (5,100)

55 100 FORMAT (-'ENTER BAROMETRIC PRESSURE (CHOOSE ONE OF

56 1 THE FOLLOUING..' ' ."X/

57 2 ' MXXX . X ( I N M I L L I ME TERS OF HG ) '

/

58 3-' BXXXX.X (IN MILLIBARS)')

59 READ (5,110) SCALE, PRESS

60 110 FORMAT C A 1 , F 6 . 1

)

89
HUMID-2

61 IF_ (SCALE . EQ .

‘ B

,J ) GO TO 115

62 F'RhSS 1 =PREbS

63 F'RESS2=PRESS 1 *1 . 33322

b4 GO TO lib

65 115 PRESS2=PRESS

bb PRESS 1=PRESS2*. 750064

b7 116 IF (G'S . tQ .

' NO ' ) GO TO 120

68 TEMP =D TEMPO+273 . 1

6

69 ED =23 . 5315- (2939/TEMP) -4.922*AL0G 10 (TEMP)

70 ED = ( 1 0 1 3 . 25/ i 333 ) 4: i 0 . **EB

71 TEMP =U I EMPU+273 . lb

72 E U=23. 53 15- (2939/TEMP ) - 4 . 922*A L 0 G 1 0 ( TEMP

)

73 EU=( 1013.25/ 1 3 33 ) * 1 0 . **E

U

74 E=El>J- . 00066*PRESS 1 -L ( DTEMPC—LITEMPC ) •+( 1 + . 00 1 15>KlJTEMPC)

75 H IJ MD TV=100 *E /E D 76 GO TO 140

77 12 0 UTE MPC = - 1 0 0 0

.

78 UR I TE (5,130)

79 130 FORMAT ('ENTER THE RELATIVE HUMIDITY IN PERCENT (XX. X)

80 READ (5,135) H HMDTV

81 135 FORMAT (F5.2)

8 2 140 VS0 UNB =331.43+. 59*D TEMPC 83 RETURN

84 END

90
APPENDIX I

Subroutine SAMPLE Flow Chart and Listings

91
FLOW CHART: SUBROUTINE SAMPLE

MESSAGE: YOU HAVE SIGNAL LEVEL OVERFLOW ON BAND XX, ENTER "GO" TO REPEAT MEASUREMENT, OR "STOP"

POINT XXX, LEVEL = XXX. XX TO INTERRUPT PROGRAM

92
SUBROUTINE SAMPLE

1 $ASSM

2 SAMPLE PROG SAMPLE - SUBROUTINE FOR TAKING RTh SAMPLES

3 SFORT

4 c

5 C THIS SUBROUTINE TAKES A SPECIFIED NUMBER OF RTA SAMPLES AND

6 C CHECKS FOR OVERFLOU.

7 C FORTRAN CALL STATEMENT:

I C -CALL SAMPLE (NSOUND, NSAMP, TX180, OVFLOU, X0, NX0)

9 C NSOUND ( INT*2) - NO. OF SAMPLES TO BE TAKEN BEFORE SOUND CUT-OFF

10 C NSAMP (INT*2) = TOTAL NO. OF SAMPLES TO BE TAKEN (MAX = 2O0)

11 C TX100 (INT*2) = INTEGRATION TIME IN SECONDS X 100

12 C OVFLOU ( INT*2) = 1 IF AN OVERFLOU CONDITION EXISTS, = 0 OTHERWISE

13 C (THIS IS AN OPTIONAL PARAMETER FOR THE FORTRAN

14 C CALLING PROGRAM)

15 C X0 ( INT*2) = ARRAY CONTAINING THE FIXED-POINT RTA DATA

lb C NX0 (I NT) = NO. OF ELEMENTS IN THE ARRAY X0;

1? C SHOULD BE CHOSEN SO THAT NX0= C30*MSAMP) +6B

1 u c

19 C OTHER SUBROUTINES CALLED: RTA

20 C

2 1 SI IBROUTINE SAMPLE ( NSOUND , NSAMP , TX 1 00 , OVFLOU, X0, NX0)

22 INTEGER *2 NSOUN I) , NS A MP , TX 1 0 0 , 0 VF L 0 U , X0 ( NX0 ) , BELL , I 23 DATA BELL/X - 0700'X

24 OVFLOU=0

25 10 CALL R TA ( N SOUN D , NS A MP , TX 1 0 0 , XO

)

26 IF CX0CD.NE.0) GO TU 100

27 I =X0 (3) +1

28 X=X0(4)/1O0.

29 IJRITE (5.20) BELL

30 20 FORMAT (Al)

31 URITE (5,30) X0 ( 2 ) , I ,

X

32 30 FORMAT ('YOU HAVE SIGNAL LEVEL OVERFLOU ON BAND V 12,

33 IV POINT ',13,' , LEVEL = ',F8.2/

34 2' ENTER "GO" TO REPEAT MEASUREMENT, OR "STOP" TO INTERRUPT

35 3 PROGRAM')

36 READ (5,40) GS

37 40 FORMAT (A4)

38 IF ( GS . NE .

' STOP -

1 GO TO 10

39 OVFLOU*

1

40 100 RETURN

41 END

93
APPENDIX J

Subroutine BAND Flow Chart and Listings

94
FLOW CHART: SUBROUTINE BAND

95
SUBROUTINE BAND

iHao

BAND

§F0R

C

PROG BAND - SUBROUTINE FOR CONVERTING ONE BAND OF RTh SAMPLES

9

10

1

1

12

13

14

15

lb

17

18

19

20

21

23

24

25

26

THIS SUBROUTINE CONVERTS ONE BAND

FORTRAN CALL STATEMENT:

-CALL B A M D ( B A N D N U N S AMR , X.. X0 , NX0

)

OF RlA SAMPLES TO FLijATING POINT

BAND NO

NSAMP

X0

NX0

( INT*2) = BAND NUMBER (BAND 14 = 25 HZ)

Cl NT) = NO. OF SAMPLES TAKEN BY RTA (MAX = 200)

(REAL) = ARRAY TO CONTAIN THE FLOATING POINT RTA DATA

FOR THE SPECIFIED BAND

(INT*2) = ARRAY CONTAINING THE FIXED-POINT RTA DATA

(I NT) = NO.- OF ELEMENTS IN THE ARRAY X0:

SHOULD BE CHOSEN SO THAT NX0=(30*NSAMP) +60

NO OTHER SUBROUTINES CALLED

SUBROUT I NE BAND C BANDNO, NSAMP , X, X0

DIMENSION X(NSAMP)

I NTEGER*2 BANDNO , X0 ( NX0 ) , I , I NDEX,

I S TR T= ( B A N D N 0-14) * ( NSA MP +2 ) +2

DO 10 1=1, NS AMP

INDEX= ISTRT+I

X( I

) =X0 ( I NDEX) / 1 00 . . CONTINUE

RETURN

END

,11X0)

ISTRT

96
APPENDIX K

Subroutine SUBMUX Flow Chart and Listings

97
FLOW CHART: SUBROUTINE SUBMUX

MESSAGE- THE PROPER MICROPHONE CANNOT BE SELECTED AUTOMATICALLY

MANUALLY STEP MULTIPLEXER TO MICROPHONE XX ENTER "GO" TO CONTINUE

98
SUBROUTINE SUBMUX

1 $ASSM

2 SUBMUX PROG SUBMUX - SUBROUTINE TO SET MULTIPLEXER TO ft GIVEN MICROPHONE

3 $FORT

4 C

5 C IHIS SUBROUTINE STEPS THE MICROPHONE MULTIPLEXER TO ft GIVEN MICROPHONE

b C CHANNEL

.

7 C

8 C FORTRAN CALL STATEMENT:

9 C -CALL SUBMUX' J)

10 C J (INTEGER) = THE MICROPHONE CHANNEL TO BE SELECTED

11 C 12 C OTHER SUBPROGRAMS CALLED: MUX

13 C

1 4 S U B R 0 U T I N E S U B MU X ( J

)

15 INTEGERS BELL

lb DATA BELL/X'0700'/

17 1=0

18 CALL RDMUX(MXRDG)

19 GO TO 15

20 10 CALL MUX(MXRDG)

21 15 IF (MXRDG.EQ.J) GO TO 50

22 1 = 1+1

23 IF (I.LT.50) GU TO 10

24 URITE (5,20) BELL

25 20 FORMAT (Al)

2b URITE (5,30) J 27 30 FORMAT (X/'THE PROPER MICROPHONE CANNOT BE SELECTED

28 1 AUTOMATICALLY' /-MANUALLY STEP MULTIPLEXER TO MICROPHONE ',12/'

29 2 'ENTER "GO" TO CONTINUED

3U _ READ (5,4U) QS

31 40 FORMAT ( A4)

32 50 RETURN

33 END

99
APPENDIX L

Listings for Function Subprograms TINORM and STUDIM

100
12

Cl4

5

b

78

9

10

1

1

12

13

14

15

1 b

1718

19

20

21

22

23

24

25

2 b

27

28

29

30

31

32

Cf o

n

no

n

n

n

n

n

o

n

r>o

n

o

non

n

o

FUNCTION SUBPROGRAM TINORM

$ASSM

TINORM PROG TINORM - SUBF'ROG. GIVING INVERSE OF NORMAL DISTRIBUTION

$F0RT

THIS SUBPROGRAM COMPUTES THE VALUE OF THE INVERSE OF THE STANDARD

NORMAL DISTRIBUTION FUNCTION. IT IS ft VERSION OF THE UN I VAC 1108

STAT-PACK ROUTINE TINORM.

FORTRAN CALLING SEQUENCE:

> VARIABLE = TINORM (ALPHA)

TINORM (REAL) = THE CALCULATED VALUE OF THE INVERSE OF THE NORMAL

DISTRIBUTION; THIS IS THE ORDINATE, OR NUMBER OF

STANDARD DEVIATIONS FROM THE MEAN CORRESPONDING TO

THE GIVEN VALUE OF ALPHA.

ALPHA (REAL) = THE VALUE OF THE PROBABILITY FOR IJHICH THE ORDINATE

IS TO BE CALCULATED; THIS IS EQUAL TO 1.0 MINUS

THE AREA UNDER THE CURVE FROM TINORM TO INFINITY.

(ALPHA MUST LIE BETUEEN 0.0 AND 1.0)

NO OTHER SUBPROGRAMS CALLED

FUNCTION TINORM (ALPHA)

DIMENSION A ( 3 ) , B ( 3

)

DATA ( A ( I ) ,

I = 1 , 3) /. 010328, . 802853, 2.515517/,

1 (B ( I) , 1=1 ,3)/. 001308, . 189269, 1 .432788/

X=ALPHA

IF (X.GT..5) X=l.-X

X=SQR T

( — 2 . *AL0G ( X)

)

TIN0PM=X- (A (3) +X*(A(2) +X*A ( 1 )).)/( 1 . +X*(B(3) +X*(B (2) +X*B ( 1) ) )

)

IF CALPHA.LT. .5) TIHORM=-TINORM

RETURN

END

101
123

4

5

b

78

9

10

1 1 12

13

14

15

1 b

1718

19

20

21

oi

23

34

25

2b

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

4b

47

48

FUNCTION SUBPROGRAM STUDIM

$ASSM

STUD in PROG STUDIM - SUBPROG. SUBSTITUTING FOR STUD IN $FGRT

C

- C THIS SUBPROGRAM IS H SUBSTITUTE FOR STUD IN, GIVING THE VALUE OF

C THE INVERSE OF STUDENT'S T-D ISTR IBIJTION BY READING FROM A TABLE

C GENERATED ON A STORAGE FILE BY THE PROGRAM GEN 1

.

C

C IT IS INTENDED FOR USE IN THOSE CASES UHEN THE MEMORY SPACE

C REQUIRED BY STUD IN IS NOT AVAILABLE.

C

C THE FILE MUST BE GENERATED FOR THE INTENDED VALUE OF ALPHA;

C ALPHA HERE HAS THE .SAME MEANING AS IN THE PROGRAM STUD IN, AND

C THE VALUE STUDIM CORRESPONDS TO THE VALUE STUD IN. C

C THE FILE MUST BE A RANDOM RECORD ACCESS FILE.

C

C FORTRAN CALLING SEQUENCE;

C > VARIABLE = STUD IMCALPHA, N,LUF ILE, LUERR)

C

C STUDIM (REAL) = THE CALCULATED VALUE OF T

C ALPHA (REAL) = THE CONFIDENCE COEFFICIENT

C LUF ILE ( I NT) = LOGICAL UNIT OF THE STORAGE FILE

C LUERR C I NT) = LOGICAL UNIT FOR ERROR MESSAGE PRINTOUT

C (USUALLY LUERR = 5)

FUNCTION STUD I M( ALPHA, N, LUF ILE, LUERR)

DIMENSION T (50)

INTEGER *2 BELL

DATA BELL/X' 0700 '

/

10 READ (LUFILE.REO0) ALPHA 1 IF (ABS (ALPHA-ALPHA 1) .LE. .0001) GO TO 30

URITE (LUERR, 20) BELL. LUF ILE, ALPHA 1 , ALPHA, LUF ILE 20 FORMAT (Al/X/X/'THE STORAGE FILE ON LU',I2,' CONTAINS THE TABLE

1 FOR ALPHA = ‘ , Fb . 4/

2

' THE REQUIRED T-D ISTR IBIJTION TABLE IS FOR ALPHA = ',F6.4/X/

3 ' REASSIGN LU' , 12, ' TO THE PROPER FILE'/

4 ' ENTER "CONTINUE" UHEN READY')

PAUSE 1 GO TO 10

30 N 1 =N

IF (N1.GT.1000) N 1-1000

NSECTR= 1+(N 1- 1 ) /50

RbAD (LUF ILE, REC=NSECTR) T

J=N 1-50'K(NSECTR- 1

)

STUD IM-T ( J)

RETURN

END

102
APPENDIX M

Listings for Interdata Assembly Language Subroutines

MUX, RTA, SOUND, and DELAY

103
SUBROUTINE MUX

MUX

*

**

*

PROG

WIDTH

MUX

132

FORTRAN CALL STATEMENTS:

-CALL MUX(X) — STEP AND READ

-CALL RDMUX(X) — READ ONLY

7 * PARAMETER = MULTIPLEXI READING

O

9 ENTRY MUX

10 ENTRY RDMUX

1 1 UIM EQU 12

12 UR EQU 13

13 INDEX EQU 14

14 R 15 EQU 15 15 MUX STM 12, RETURN

1

6

LHI U I M, X' SB

‘ 17 LIS UR, 10

1

8

OCR UIM, UR

19 LIS UR, 1 20 UHR UIM, UR

21 XHR UR, UR

4l2 UHR UIM, UR

23 B CONT

24 RDMUX STM 12, RETURN

25 LHI U IM. X" SB

- Z6 CONT LHI INDEX, 1000

27 DELAY SLLS UR, 15 28 SIS INDEX,

1

29 BP DELAY

30 LIS UR, 1

1

31 OCR LI III, UR

32 UHR UIM, UR

33 RHR UIM, UR

34 SLLS UR. 12 35 SRLS UR, 12 < 3b LH INDEX, 2 (R 15

37 STH UR.QC INDEX)

38 LM 12, RETURN

39 A IS R 15,

4

40 BR R 15 41 RETURN DS Q

42 END

- PROGRAM FOR STEPPING AND READING MUX

START HERE TO STEP MULTIPLEXER

START HERE TO READ MULTIPLEXER

THESE NEXT 4 LINES PROVIDE A DELAY

FIND FORTRAN ADDRESS OF PARAMETER

STORE PARAMETER AT ITS FORTRAN ADDRESS

104
SUBROUTINE RTA

1 RTA PROG RTA - PROGRAM FOR DRIVING RTA

2 UIDTH 132

5

4 * FORTRAN L ALL STATEMENT:

5 * -CALL RTA ( N SOUND , NSAMP . TX 100,

X

0)

6 * N SOUND = NO. OF SAMPLES TO BE TAKEN BEFORE SOUND CUT-OFF

I * NSAMP = TOTAL NO. OF SAMPLES TO BE TAKEN

cl * TX100 = INTEGRATION TIME X 100

9 * X0 = ARRAY OF 2-BYTE INTEGERS TO CONTAIN THE

10 * FIXED-POINT RTA DATA

1121 *

EN TR'y —

RTA

13 UIM EQU 0

14 N 1 000 EC! LI 1 CONTAINS THE INTEGER 1000

15 N100 EQU 2 CONTAINS THE INTEGER 100

16 M25 EQU 3 CONTAINS THE INTEGER 25

17 UR EQU 4

IS UR 1 EQU 5

19 UR2 EQU b 20 ACC EQU i 21 MR 1 EQI

1

O MULTIPLICATION REGISTERS

22 MR2 EQU 9 23 LR1 EQU 10 LOOP REGISTERS FOR BXLE LOOP

24 LR2 EQU 1 1 25 LR3 EQU 12 26 INDEX EQU 13 NUMBER OF SAMPLES ALREADY TAKEN

27 R 14 EQU 14

28 R 15 EQU 15 23 RTA STM 0, RETURN ENTRY POINT

30 LHI UIM,X'SEM

31 LH UR 1,6 CP. 151 FIND FORTRAN ADDRESS OF TX100

32 LH UR, 0 CURD LOAD TX100 INTO UP

33 CHI UR, 10 DETERMINE INTEGRATION TIME

34 EE T 10

35 CHI UR, 25

36 BE T25

37 CHI UR, 50

7uju BE T5B

39 CHI UR, 100

40 BE 1 100

41 CHI UR , 200

42 BE T200

43 CHI UR, 400

44 BE T400

45 CH 1 UR , 800

46 BE T300

47 CHI UR . 1600

48 BE T 1600

49 CHI UR, 3200

50 BE T3200

51 T10 LIS UR, 8 DETERMINE TIME SECTION OF

5? B TIME RTA CONROL UORD

53 T25 LIS UR, 2 54 B T I ME

err: T50 LIS UR, 4

56 El T I ME

57 T100 LIS UP 6

JO B TIME

59 T200 LIS UR, 1 60 El TIME

105
RTA-2

61 T400 LIS UR, 3 62 B TIME

63 TS00 LIS LJR . 5

64 B TIME

65 T1600 LIS UR, 7

66 B TIME

b ( T3200 LIS UR , 9

68 TIME SLLS UR, 12 69 AH I UR, X' 08FF'

70 STH UR, RTACUD

71 LH 'ACC, 8 (R 15)

72 STH ACC, STORE

73 LH UR, 2 (R 15)

74 LH UR 1,0 (UR)

7C

:

f •J STH UR 1 , NSOUND

76 LH UR, 4(R 15)

77 LH UR 1,0 (UR)

78 STH UP 1 , NSAMP

79 LHR UR , UR 1 80 SLLS UR 1 ,

8

O 1 A IS UR , 2 82 LHR l,JR 2 , UR

83 AHR UR , UP

2

84 XHR UR2, UR2

85 LIS LR 1 , 1 86 LIS LR2, 1 87 LH I LR3.30

88 LOOP STH UP 1,0 (ACC)

89 STH UR2 , 2 ( ACC

)

90 AHR ACC, UR

91 BXLE LR 1 , LOOP

92 LH I N 1000 1000

93 LH I N 100, 100

94 LH I N25, 25 - 95 XHR INDEX, INDEX

96 LOOPS CH INDEX, NSOUND

97 BTC X* 3' , BRNCH

1

98 LIS UR, 1 99 OCR U I M, UR

100 LH I UR, X' 10FF’

101 UHR HIM, UR

102 XHR UR , UP

103 OCR U IM, UR

104 XHR UR, UR

105 UHR U IM, UR

106 BFFS 0,5

107 BRNCH 1 CHI INDEX,

0

108 BTC X'3' , 6RNCH2

109 LIS UR . 1

1 10 OCR U IM, UR

1 1 1 UH UIM.RThCUD

1 12 LIS UR, 4

1 13 OCR IJ I M, LJR

1 14 UHR U IM, UP

1 15 BRNCH2 LIS L R 1 , 1

1 16 LIS L R 3 ,

6

1 17 LOOP 1 XHR UR, UR

1 18 SSR HIM. UR

1 19 BTBS X‘ 4

’ , 1 120 RHR U IM, UR

SET RTA CONTROL IJORD LOAD FORTRAN ADDRESS OF X0 INTO ACC

STORE ADDRESS OF X0 IN STORE

FIND FORTRAN ADDRESS OF NSDUND

LOAD NSOUND INTO UR 1 STORE NSOUND IN NSOUND

FIND FORTRAN ADDRESS ON NSAI1P

LOAD NSA LIP INTO l.JR 1 STORE NSAMP IN NSAMP

UR NOU CONTAINS 2(NSAMP+2), WHICH IS THE TOTAL AMOUNT OF STORAGE OCCUPIED

BY EACH LIST; USED TO UPDATE ACC

STORE LIST PARAMETER BLOCK AT

BEGINNING OF 30 CONSECUTIVE LISTS

(THESE ARE CIRCULAR LISTS)

SET INDEX-0 (NO. SAMPLES ALREADY TAKEN)

IF INDEX = NSOUND, THEN CONTINUE;

OTHERUISE , GO TO BRNCH1

SELECT RTA CONTROL LINE

STOP RTA

SELECT SOUND CONTROL LINE

STOP SOUND

BRANCH FORUAPD 5 LOCATIONS

IF INDEX = O, THEN CONTINUE;

OTHERUISE, GO TO BRNCH2

SELECT RTA CONTROL LINE

SEND RTA CONTROL UORD (SET UP RTA)

SELECT START MEASUREMENT LINE

START MEASUREMENT

THROU OUT 1ST b READINGS

(BANDS 12 AND 13)

106
RTA-3

121 BXLE LR 1 , LOOP 1 122 LH HCC, STORE

123 LH_ UR2, NSHMP

124 Alb UR2,

2

125 LHR UR, UR2

126 HHR UR2, UR UR2 NOU CONTAINS 2(NSAMP+2),

127 LIS LR 1 , 1 UHICH IS USED TO UPDATE HCC

128 LH 1 LR3, 30

129 L00P2 SSR LI III, UR TEST FOR RTH BUSY

130 BTBS X' 4 ' , 1 UHIT IF BUSY

131 RHR U 1 11, UR 1ST READING (BAND NUMBER) THROUN OUT

132 SSR U IM, UR

133 BTBS X' 4' , 1 134 RHR U 1 11, UR 2ND READING

135 LHR MR2, UR CONVERT 10' S DIGIT

136 SRLS MR2, 12 137 fiHR MR 1, Ml 000 UR 1 USED TO ACCUMULATE RESULT OF

138 LHR UR 1 . MR2 BCD TO BINARY CONVERSION

139 LHR MR2, UR CONVERT l'S DIGIT

140 SLLS MR2,

4

141 SRLS MR 2, 12 142 MHR MR 1, Ml 00

143 HHR UR 1 , MR2

144 SSR U I M, UR

145 BTBS X ' 4 ' , 1

1 4b RHR U IM, UR 3RD READING

147 LHR MR2, UR CONVERT 1/4 DB DIGIT

148 SLLS MR 2,

4

149 SRLS MR 2, 12 150 HHR MR 1 , N25

151 HHR UR 1 , MR2

152 SRLS UP, 12 CHECK 100'S DIGIT

153 LIS MR 1 , 1 (BIT 1 = VALUE OF 100'S DIGIT)

154 CHR UR , MR 1 'BIT 2 = RTH 0VERFLOU BIT)

155 BTC X- 1

• , HBL IF 103' S DIGIT < 1, BRANCH TO ABL

156 BTC X' 2

- , OVFLOU IF 100' S DIGIT > 1, BRANCH TO OVFLOU

157 HHI UR 1 , 10000 IF 100' S DIGIT = 1. ADD 1U000 TO LJRl 158 B HBL

159 OVFLOU SIS UR, 2 IN CASE OF OVERFLOU, REMOVE BIT 2 160 LH I MR2, 10000 FROM VALUE OF 100" S DIGIT

161 MHR MR 1 , UR

162 HHR UR 1 , MR 2 UR 1 NOU CONTAINS VALUE OF OVERFLOU

163 LH HCC, STORE DATA POINT

164 XHR UR , UR

165 STH UR, 0 (ACC) STORE "0" AT ADDRESS OF X0 ( 1

)

166 HIS LR1 . 13

167 STH LR 1 , 2 (HCC) STORE BAND NUMBER AT X0(2)

1 bo STH INDEX, 4 (HCC) STORE SAMPLE NUMBER AT X0C3)

169 STH UR 1 , 6 (HCC) STORE VALUE OF OVERFLOU POINT AT X0(4)

170 B RTRN STOP SAMPLING AND RETURN TO FORTRAN

171 HBL HBL UR 1 , 0 (HCC) ADD FINAL NUMBER TO PROPER LIST

172 HHR HCC, UR

2

173 BXLE LR 1 , L00P2

174 fi IS INDEX,

1

175 CH INDEX, NSHMP

1 7 6 BTC X ' 8 ' , L00P3 IF INDEX < NSHMP, RETURN TO LOOPS;

1 \ ( RTRN LM 0, RETURN OTHERUISE • RETURN TO FORTRAN

178 HIS R 15, 10

179 BR R 15

180 RETURN DS 32

107
RTA-4

181 STORE DS

182 NS 0 LIND DS

183 NSAMP DS

184 RTACUD DS

185 *

1 86 H< LOOP : 18? H< 188 * LOOP 1 : 189 * L00P2:

190 *

191 He 192 He LOOPS

:

193 *

194 He 195 H< 19b END

ADDRESS OF X0(1) (START OF THE X0’S)

RTA CONTROL LORD

BXLE LOOP; STORES LIST PARAMETER BLOCK

AT BEGINNING OF 30 CONSECUTIVE CIRCULAR LISTS

THROWS OUT 1ST 6 READINGS (BANDS 12 & 13)

BXLE LOOP; READS BANDS 14 TO 43, CONVERTS

DATA FROM BCD TO BINARY, AND STORES THE

FIXED-POINT DATA IN 30 CONSECUTIVE LISTS

ENCLOSES BOTH LOOP1 AND L00P2;

REPEATS MEASUREMENT UNTIL NS AMP SAMPLES

HAVE BEEN TAKEN

108
oj

ro

ptm

'£i

r--

odopo

—cm

ro

pt

in

>jd

nco

cnd

—'

pj

r-p

'tf up

up

SUBROUTINE SOUND

1 SOUND PROG SOUND

UIDTH 132 *

* FORTRAN CALL STATEMENT:

* -CALL SOUND (X) * X = SOUND CONTROL UORD

* SOUND ON: X = 1 * SOUND OFF: X = i ENTRY SOUND

UIM EQU 13

UR EQU 14

R 15 EQU 15

SOUND STM 13, RETURN

LHI UIM,X-8B‘

XHR UR , UR

OCR UIM, UR

LH UR, 2 (R 15)

LH UR, 0 (UR)

SLLS UR, 8

UHR UIM, UR

LM 13. RETURN

A IS R 15,

4

BR R 15

RETURN DS

END

b

- PROGRAM FOR TURNING ON SOUND

ENTRY POINT

SELECT SOUND CONTROL LINE

FIND FORTRAN ADDRESS OF X

LOAD X INTO IJR SEND SOUND CONTROL UORD

RETURN TO FORTRAN

109
1

4

C

6

7

y

9

10

1

1

12

13

14

15

1 6

1?

18

19

20

21

Oj££

23

24

25

26

27

SUBROUTINE DELAY

DELAY PROG DELAY - APPROXIMATELY 1 MILLISECOND INCREMENT

WIDTH 132

M

* FORTRAN CALL STATEMENT:

* -CALL DELAY (X) * X = NUMBER OF 1 MILLISECOND INCREMENTS

* ENTRY DELAY

UR EQU 12 INDEX1 EQU 13

INDEX2 EQU 14

R 15 EQU 15

DELAY STM 12, RETURN ENTRY POINT

LH UR, 2 (R 15) FIND FORTRAN ADDRESS OF

LH INDEX2, 0 (UR) LOAD X INTO INDEX2

BNP STOP

L00P2 LH I INDEX1 , 100

LOOP 1 SLLS UR, 15

SIS INDEX1 ,

1

BP LOOP 1 SIS INDEX2,

1

BP LOOP 2 STOP LM 12, RETURN

A IS R 15,

4

BR R 15

RETURN DS 8

END

110
APPENDIX N

Listings for Program GEN1 and its Function Subprograms

STUDIN, FISHIN, and FISH

This program is not called by the program REVERB. However, it is

required to generate the t-distribution table read from logical unit 4

by the function subprogram STUDIM.

Ill
PROGRAM GEN1

i $assm

;eni proi GEM 1 PROGRAM TO GENERATE STORAGE FILE FROM STUD IN

3 TFORT

b

7Io

THIS PROGRAM GENERATES A STORAGE FILE FROM THE SUBPROGRAM STUD IN,

WHICH GIVES THE INVERSE OF STUDENT'S T-D ISTRIBUTION . THIS FILE

IS GENERATED FOR ONE SPECIFIED VALUE OF ALPHA, AND CONSISTS OF THE

T- VALUES CORRESPONDING TO THE DEGREES OF FREEDOM FROM 1 TO 1000.

y C

10

10

1 1 1213

14

15

1 b

1718

19

20

21

22

23

24

25

26

27

28

29

30 20

31

32

33 30

34. 35

35

36

39

40

41

42

43

44

45

4G

47

48

49

50

51

52

40

60

7U

54

55

56

57 80

58 100

59

60

THE FILE IS INTENDED FOR USE BY THE SUBPROGRAM STUD IM, WHICH IS A SUBSTITUTE FOR STUD IN FOR THOSE CASES WHEN THE MEMORY SPACE REQUIRED

BY STUD IN IS NOT AVAILABLE.

SUBPROGRAMS CALLED: STUD IN,

C I ND I RECTLY 3 : F ISH IN , F I SH , T I NORM

DIMENSION T(50)

INTEGERS IT (50) , FF

DATA FF/X'0C00'/

WRITE (5,10)

FORMAT (X/X/'THIS PROGRAM GENERATES H STORAGE FILE OF THE T-VALUES

1 UF STUDENT" S' /'T-D ISTRIBUTION FOR A SPECIFIED VALUE OF ALPHA.'/

2X/X 'THE FOLLOWING LOGICAL UNIT ASSIGNMENTS ARE REQUIRED: 'X/

35X, ' LU 1 — STORAGE FILE (22 SECTORS REQUIRED)'/

45X, ' LU2 — SCRATCH FILE'/

55X, ‘ LU3 — HIGH SPEED PRINTER'/

65X, ‘ LU5 — CRT TERMINAL' /X/X/

7' DO YOU WANT TO CHANGE THE LOGICAL UNIT ASSIGNMENTS?')

READ (5,20) QS

FORMAT (A4)

IF (QS.EQ.'NO') GO TO 30

PAUSE 1 WRITE (5,35)

FORMAT ('DO YOU WANT A PRINTOUT OF THE FILE ONLY?')

READ (5,20) QS

IF (QS.NE.'NO') GO TO 140

WRITE (5,40)

FORMAT CENTER ALPHA (X.XX)'/

1 T7, ' NOTE : THIS VALUE IS 2 TIMES THE VALUE BEING USED IN TABLE

2

3 ' • T 1 4 , OF BOWKER 8, L IEBERMAN' ' S "ENGINEERING STATISTICS"')

READ (5,50) ALPHA

FORMAT (F10.5)

WRITE (5,60)

FORMAT CENTER MAX. NO. OF ITERATIONS (3 DIGITS)')

READ (5,70) ICMAX

FORMAT (13)

REWIND 1 REWIND 2 WRITE tl) ALPHA

M=0

DO 110 J = 1 , 20

DO 100 1=1,50

M=N+1

T( I

) =STUD IN (ALPHA, N, ICMAX, IC)

I T ( I ) = I

C

WRITE (5,80) N , T ( I ) , I

C

FORMAT ('ll = ' , 14, 7X, ' T = ' , F8 . 3, 6X, 13, ' ITERATIONS')

CONTINUE

WR I TE ( 1 ) 1 WRITE (2) IT

112
GEN 1-2

61 110 CONTINUE

62 ENDFILE 1 63 WRITE (5,130)

64 130 FORMAT ('’ENTER "CONTINUE" TO PRINT OUT TABLE")

65 PAUSE 1 66 140 REWIND 1 67 READ (1) ALPHA

68 WR I TE (3,150) ALPHA ,(1,1=1,10)

69 150 FORMAT (X/X/X/T3S, ' T-D ISTR IBUTION TABLE" , 10X, " ALPHA = 70 1 X/X/X/5X . 1 0 ( I 2 , 9X) XXXX)

71 N=0

72 DO 170 J= 1 , 20

73 READ (1) T 74 DO 170 K = 1 ,

5

75 N=N+10

76 K2=10*K

77 K 1 =K2-9

78 WRITE (3,160) (TCI), I =K 1 ,K2) .

N

79 160 FORMAT ( 10 (F 1 0 . 5, X) , 4X, 14)

80 170 CONTINUE

81 WRITE (3, 180) FF

82 180 FORMAT (AD

83 REWIND 2

84 WRITE (3,200) (1,1=1,10)

85 200 FORMAT (X/X/X/T50, " NO . OF ITERATIONS' XXxXxXx

86 1 5X, 1 U ( 1 2 , 9X) xX/X)

87 N=0

88 DO 220 1=1, 20

89 READ (2) IT 90 DU 220 K= 1 ,5

91 N=N+ 10 92 K2=10*K

93 K 1 =K2-9

94 WRITE (3,210) ( IT ( I ) , I =K 1 , l<2 ) ,

N

95 210 FORMAT ( 4X, 1 0 ( 1 3, 8X) , 1 4)

96 220 CONTINUE

97 WRITE (3,180) FF

98 END

• F 6 . 4X

113
FUNCTION SUBPROGRAM STUDIN

1 $ASSM

2 STUDIN PROG STUDIN - SUBPROG. GIVING INVERSE OF STUDENT'S T-D ISTR IBUTION

3 TFORT

4 f: 5 C THIS SUBPROGRAM COMPUTES THE VALUE OF THE INVERSE OF STUDENT'S

6 C T-D ISTR IBUTION . IT IS ft VERSION OF THE UN I VAC 1108 STftT-PACK

7 C ROUTINE STUDIN.

H I .

9

C NOTE—THE VALUE (T) COMPUTED BY THIS PROGRAM RELhTES TO THE VALUES

10 C GIVEN IN TABLE 3 OF THE APPENDIX OF BOIJKER & LIEBERMAN'S

11 C "ENGINEERING STATISTICS" AS FOLLOWS:

12 C THE TABLE GIVES THE VALUES T ( ALPHA; N)

13 C THIS PROGRAM COMPUTES STUD IN (ALPHA 1 , N) , WHERE STUDIN - T, WHICH

14 C IS THE SAME VALUE GIVEN IN THE TABLE IF ALPHA 1 = 2*ALPHA.

15 C THUS, TO REPRODUCE THE VALUES OF TABLE 3, USE THE RELATION

lb C T = STUD I N ( 2 . *ALPHA , N , I CMAX, I C

)

17 C (THERE SEEMS TO BE SOME VARIATION IN THE DEFINITION OF ALPHA

18 C AMONG DIFFERENT TEXTS. THE STAT-PACK ROUTINE STUDIN CALLS

19 C IT THE CONFIDENCE COEFFICIENT.)

20 C 21 C 22 C 23 C

35 C 36

1 7

39

FORTRAN CALLING SEQUENCE:

> VARIABLE = STUD IN (ALPHA, N, I CMAX, IC)

24 C STUDIN (REAL) = THE CALCULATED VALUE OF T

per 26

C

c ALPHA (REAL) = THE CONFIDENCE COEFFICIENT

(ALPHA MUST LIE BETWEEN 0.0 AND 1.0)

27 c N ( I NT) = THE NO. OF DEGREES OF FREEDOM

28

29

30

c

c

c

ICMAX ( I NT) = MAXIMUM LIMIT FOR ITERATION COUNTER

(10 SEEMS TO BE SUFFICIENT; THE ITERATION

TO FISH IN, WHICH IS CALLED BY STUDIN.)

31 c IC ( I NT) = ITERATION COUNTER

32

33

c

c OTHER SUBPROGRAMS CALLED: FISH IN 34 c C INDIRECTLY]: TINORM. FISH

APPLIES

FUNCTION STUD INC ALPHA, N, ICMAX, IC)

BETA= 1 .-ALPHA

STUD I N = 1 . 'SORT ( F I SH I N ( BETA. N , 1 . ICMAX, IC)

)

RETURN

40 END

114
cri

cn

lh

cn

cn

cn

cn

cn

oj

oj

oj

oj

oj

oj

oj

oj

oj

oj

ro

ro

ro

ro

ro

ro

ro

ro

o

us

co

-m

cri

cn

4c

oj

ro

•—

<s

uo

co

-j

u,

cn

jc

oj

ro

•—

ra

co

co

-j

a;

cn

j\

oj

ro

—s

co

o:<

-\i

cr-i

cn

4c

oj

ro

—

ts

uj

co

-sj

cn

cn

4c

oj

ro

>-*

<s

co

co

-j

cri

cn

4c

oj

ro

FUNCTION SUBPROGRAM FISHIN

1 $ASSM

FISHIN PROG FISHIN - SUBPROG. GIVING INVERSE OF FISHER'S F-D I SIR I BUT I ON

SFORT

C

C THIS SUBPROGRAM COMPUTES THE VALUE OF THE INVERSE OF FISHER'S

C F-D I STR I BUT I ON. IT IS H VERSION OF THE UN I VAC 1108 STflT-PACK

C ROUTINE FISHIN.

C

C NOTE—THE VALUE (F) COMPUTED BY THIS PROGRAM RELATES TO THE VALUES

L GIVEN IN TABLE 4 OF THE APPENDIX OF BOUKER 8. L IE BERMAN'

S

C "ENGINEERING STATISTICS" AS FOLLGUS:

C THE TABLE GIVES THE VALUES F (ALPHA.: N 1 ,N2)

C THIS PROGRAM COMPUTES F ISH i N (ALPHA, N 1 , N2) , LJHERE FISHIN = F, THE

C SAME VALUE GIVEN IN THE TABLE. (ALPHA IS CALLED THE CONFIDENCE

C COEFFICIENT.)

C

C FORTRAN CALLING SEQUENCE:

C > VAR I ABLE = F I SH 1 N ( ALPHA, N 1 , N2 , I Cl 1AX, I C

)

C

C FISHIN (real:

C ALPHA (REAL:

C

C N 1 (I NT)

C N2 (I NT)

C ICMAX (I NT)

C

C

cc

cc

C IC (I NT)

C

C OTHER SUBPROGRAMS CALLED: T I NORM, FISH

0

FLINCT ION F I SH I N ( hLF'HA, N 1 , N2 , I CMAX, I C

)

DOUBLE PREC I S I ON FSHNDP , Y 1 , Y2 , X, Y, H , G , GLOG ,

C

Y 1 =N 1 Y2=N2

f;C ADJUST FOR DEGREES OF FREEDOM EQUAL TO 1 C

IF (Nl.EQ.l) Y1 =2

.

IF (N2.EQ.1) Y2=2

C

C CALL T I NORM TO GET INVERSE NORMAL VALUE OF 1. -ALPHA

0

X=TINORM( 1 .-ALPHA)

0

C COMPUTE LAMBDA VALUE

0

Y= (X>kX- 3 . ) /b .

I C = 1

C COMPUTE INITIAL APPROXIMATION TO THE INVERSE 'F' FUNCTION

C Yl=l . >(Y1- 1 .

)

Y2 = 1 . / ( Y2- 1 .

)

> = THE CALCULATED VALUE OF F

1 = THE CONFIDENCE COEFFICIENT.

(ALPHA MUST LIE BETWEEN 0.0 AND 1.0)

= THE DEGREES OF FREEDOM OF THE FIRST SAMPLE

= I HE DEGREES OF FREEDOM OF THE SECOND SAMPLE

= MAXIMUM LIMIT FOR ITERATION COUNTER

' 10 SEEMS TO BE SUFFICIENT.: MOST OF THE VALUES IN THE COLUMN FOR N 1=1 DO NOT CONVERGE TO THE CHOSEN

LIMITS EVEN AFTER 100 ITERATIONS. HOWEVER. NO

GAIN IN THE ACCURACY IS OBSERVED AFTER THE FIRST

FEW ITERATIONS. 100 ITERATIONS REQUIRE AT LEAST

20 SECONDS. FOR ALL VALUES FOR N1 AND N2 GREATER

THAN 1, CONVERGENCE SEEMS TO OCCUR IN LESS THAN

lO ITERATIONS, USUALLY 3.)

= ITERATION COUNTER

115
FI SHIN-2

61

b'2 bb

64 C

65 C

bb C

b \ C bS

69

70

71

f 2 73

74

75

7 6

77

7 8

79

80

81

10

20

30

84

per 8 b

89 C 90 C 91 C 92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108 C

109 C 110 C

1 1 1 112 C 113 C 114 C

1 15

1 16 C 117 C 118 C

1 19

1 OQ

40

50

55

60

H =2 . / ( Y 1 +Y2

)

X=X*DSQK I ( H+Y ) /H— ( Y 1 — 'id ) * ( Y+5 . /& . ~d ./(.£. ) ) X=DEXP(2.*X)

COMPUTE THE CONSTANT TO THE 'F'

- DISTRIBUTION,

TESTING FOR Ml AND/OR N2 ODD OR EVEN

G = 1 . IE: 1=2

I F ( MO D ( N 1,2) . E Q . 0 ) GO TO 10

G= 1.7724539 ' 181 = 1 IB2=2

I F ( MO D Ml 2, 2) . EQ . 0) GO TO 2

0

G=G + 1 .7724539

IB2= 1 IB3=2

IF ( MUD Mil +N2 , 2 ) . EQ . 0) GO TO 30

G=G/1 . 7724539

I B 3 = 1 IF ( IB1+IB2) .NE.2) G=2.*G

GLUG=DL0G 10(G)

IF C (N1+N2) . LE . 3) GO TO 50

ND=N 1+N2-2- IB3+1

DO 40 1=1, HD,

2

IF ( ( I B 1 + 1 - 1 ) .LE. (N 1-2) ) GLOG=GLOG+ALOG10( IB1 + I-1 .) IF ( ( IB2+I- 1 ) .LE. (N2-2) ) GLOG=GLOG+ALOG 10 CIB2+I- 1 .

)

GLOG=GLOG-ALOG10C IB3+I-1 .

)

COMPUTE THE VALUE OF FISH IN < DOUBLE PRECISION VALUE = FSHNDP)

Y2 =112/ ( N 2 +N 1 *X

)

Y 1 = 1

. - Y2

XSP=X

K = 1 Y= 1

. - ALPHA- F I SH ( MSP , N 1 , N2

)

IF (Y.LT.O.) K=-

1

IF (Y.EO.0.) GO TO 60

Y=DLOG 1 U C DABS ( Y)

)

C = ' H 1 *D L 0G 1 0 ( Y 1 ) +N2't^DLOG lUMr'2) ) /2

.

Y=GLOG+Y-C

IF 1Y.LT. -75.) GO TO 55

Y= 1 0 . GO TO 60

Y=0

.

Y= 1 . +KM'i' FSHNDP =XkY

IF F I SH I N (FSHNDP) IS NEGATIVE, RESET TO .5*LAST APPROXIMATION(X)

IF (Y.LT.O.) FSHNDP =.5*X

IF ABS . VALUE OF THE DIFFERENCE IS LESS THAN .5D-6, RETURN

I F i DABS (X- -FSHNDP- 1 . ) . LT. ( . 5D- 6)

)

GO TO 70

IF REL. VALUE OF THE DIFFERENCE IS LESS THAN . 5D-6, RETURN

IF (DABS (X-FSHNDP) .LT. (.5D-6)

)

IF ( IC.GE . ICMA'O GO TO 70

GO TO 70

116
FISHIN-3

121 IOIC+1

122 C 123 C SET APPROXIMATION EQUAL TO F ISH IN (FSHNDP), CONTINUE TO ITERATE

124 C 125 X= FSHNDP

126 GO TO 50

127 70 F ISH IN=FSHNBP

128 RETURN

129 END

117
12

u4

5

b

ro

9

10

1 1 12

13

14

15

16

1716

19

20

21

£—24

25

26

27

29

30

31

32

1>34

35

3 b

37

38

39

40

41

42

43

44

45

4b

47

48

49

50

51

52

53

54

55

5b

57

CTO 59

60

FUNCTION SUBPROGRAM FISH

$ASSM

FISH PROG FISH - FCTN SUBPROGRAM FOR EVALUATING FISHER’S F-DISTPIBUTION

TFORT

THIS SUBPROGRAM COMPUTES THE VALUE OF FISHER'S F-D ISTR I BUT I ON

AT THE POINT F UITH H 1 , N2 DEGREES OF FREEDOM. IT IS A VERSION

OF THE UN I VAC 1108 STAT-PACK ROUTINE FISH.

THE VALUE OF FISHER’S DISTRIBUTION = THE PROBABILITY THAT A VARIABLE

DISTRIBUTED UITH FISHER'S F-D ISTRUBUT ION UITH N1,N2 DEGREES OF

FREEDOM IS LESS THAN OR EQUAL TO A GIVEN VALUE (F)

.

NOTE—THIS PROBABILITY RELATES TO THE VALUES GIVEN IN TABLE 4 OF

THE APPENDIX OF BOUKER 8. LIEBERMAN'S "ENGINEERING STATISTICS"

AS FOLLOUS:

THE TABLE GIVES THE VALUES F (ALPHA; N 1 , N2)

THIS PROGRAM COMPUTES F ISH (F, N 1 , N2) UHERE

FISH = BETA = 1. -ALPHA

BETA = PROBABILITY C F (ALPHA : H 1 , M2) < OR = F ] (ALPHA IS CALLED THE CONFIDENCE COEFFICIENT IN THE STAT-PACK

ROUTINE FI SHIN.)

C FORTRAN CALLING SEQUENCE:

C > VARIABLE = F ISH (F.. N 1 , N2)

C FISH (REAL) = THE CALCULATED VALUE OF THE PROBABILITY

C F (REAL) = THE VALUE AT WHICH THE PROBABILITY IS CALCULATED

C (F CANNOT BE LESS THAN 0.0)

I HI (INT) = THE DEGREES OF FREEDOM OF THE FIRST SAMPLE

I: N2 (INT) = THE DEGREES OF FREEDOM OF THE SECOND SAMPLE

NO OTHER SUBPROGRAMS CALLED

FUNCTION FISH(F.N1,N2)

DOUBLE PRECISION F ISHDP , X, Y.. 1-1, C , HLOG

LOGICAL E1,E2,E3

C

C INITIALIZATION AMD SETTING OF LOGICAL SU ITCHES

C TO .TRUE. IF THE DEGREES OF FREEDOM ARE EVEN

C

El = . FALSE.

E2=. FALSE.

E3=. FALSE.

IF (MOD (N 1*2) . EQ . 0) El*. TRUE.

I F ( MOD ( N2 , 2 ) . EQ . 0 ) E2= . TRUE

.

X=N2/'(N2+N1*F)

IF ( . NOT. (E 1 . 0R.E2) ) GO TO 50

IF ( E 1 . AND . . NOT . E2 ) GO TO 20

IF (.NOT. El. AND. E2) GO TO 10

IF (M1.LE.N2) GO TO 20

C

C INITIALIZATION FOR SECOND DEGREE OF FREEDOM EVEN AND

C LESS THAN FIRST DEGREE OF FREEDOM IF IT, TOO, IS EVEN

10 I =N 1 N1-N2

N2= I X* 1

. -X

E3= . TRUE

.

C

118
FISH-2

61 C 62 C 63 C

64 20

65 C 66 C 67 C

6 8

69

70

71 22

72

I O 74

75 28

76

77

78

79

80 30

81 32

82

S3 C 84 C 85 C 86 C 87

88

89 40

90

91

92

93 C

INITIALIZATION LOR FIRST DEGREE UF FREEDOM EVEN AND

LESS THAN SECOND DEGREE UF FREEDOM IF IT.. TOO. IS EVEN

COMPUTE PROBABILITY FOR AT LEAST ONE DEGREE OF FREEDOM EVEN

F ISHDP=0

.

H L 0 G = ( N 2/2. )*DLQG'10 ( X

)

11 = 1 IF (HLOG.GT. -75. ) GO TO 28

HLOG=HLOG+DLGG 10 (Y*( N2+2 .*( I 1- 1 ) ) /(2. *1 1)

)

11 = 11+1

GO TO 22

H=10.**HLOG

M=N 1/2 • IF (I1.GT.M5 GO TO 32

DO 30 1=11,

M

F I SHDP =F I SHDP+H

l-l = CH*Y* ( N2+2 . * (1-15)) / ( 2 . + 1

)

F ISH=F I SHDP

IF (E3) GO TO 40

ADJUST CALCULATED PROBABILITY IF ITS

ONES COMPLEMENT LJAS CALCULATED ORIGINALLY

FISH-1 .-FISH

RETURN

I =N 1 N 1 =M2

N2= I RETURN

94 C COMPUTE PROBABILITY FOR BOTH DEGREE'

95 C 96

97

98

99

100

101

102

50 Y= 1

. -X

H = . 6366 1 97723+SQRT ( X+Y)

C=DSQRT (Cl. /X) - 1 .

)

FI SHDP = . 6366 1 97723+DATAN (C)

IF (N2.EQ.1) GO TO 70

M=N2-2

DO 60 1=1, M,

2

103 F I SHDP =F I SHDP+H

104 H=H*X*( I+l)/( 1+2)

105 IF (H.LT. 1 .D-75) GO TO 62

1 06 60 CONTINUE

107 GO TO 70

1 08 62 IF (I.EQ.M) GO TO 70

109 11=1+2

1 10 HLOG-DLOG 10(H)

1 1 1 DO 64 1=11, M,

2

1 12 64 HLOG =HLOG+DLGG 10 ( X* ( I + 1 )

/

1 13 GO TO 72

1 14 70 HLUG=DLOG 10(H)

1 15 \ IF (Nl.EQ.l) GO TO 90

1 16 C=N2

1 17 HLOG-HLUG+DLOG 10(0

1 18 11 = 1

1 19 74 IF CHLOG.Gl .-f5.) GO TO i' - 120 HLQG=HLOG+DLOG 10 ( Y* ( N 2 + 1

1

OF FREEDOM ODD

119
121

122

123

124

125

126

127

128

129

130

131

FISH-3

11 = 11+2

GO TO 74

78 H=10.**HL0G

M=N 1-2

IF (Il.GT.M) GO TO 90

DO 80 1 = 11,11,2

F ISHDP=F ISHDP-H

80 H = H (. N 2 + 1 ) / ( I +2

)

98 F ISH=F ISHDP

RETURN

END

120
FEDERAL INFORMATION PROCESSING STANDARD SOFTWARE SUMMARY

01. Summary date

Yr. Mo. | Day 7E llO j 2 | 81

04. Software date

Yr. Mo. 1 Day i ik 1 2 ! 3 | 0|

02. Summary prepared by (Name and Phone) Thomas W. Bartel (301) 921-3783

08. Software type 09. Processing mode 10. Application area General Specific Automated Data Computer Systems Management/

| | System [y] Interactive

| | Support/Utility [*j Business Acoustics; reverberation

pu Computer Program | | Batch [~y) Scientific/Engineering Q Process Control room measurements

| | Subroutine/Module | | Combination | | Bibliographic/Textual Q Other

Interactive Computer Program for the

Determination of Reverberation Time

06. Short title REVERB

03. Summary action New Replacement m

Previous Internal Software ID

07. Internal Software ID None

Deletion

11. Submitting organization and address 12. Technical contact(s) and phone Institute for Basic Standards i Thomas W. Bartel

National Bureau of Standards (301) 921-3783

Washington, D.C. 20234

13. Narrative The program is used to measure the reverberation time in a reverberation room according

to ASTM C423-66, Standard Method of Test for Sound Absorption of Acoustical Materials

in Reverberation Rooms. The computer controls several elements of the instrumentation

system through a special interface, acquires the digitized sound pressure levels of the

decaying reverberant sound field, and determines the reverberation time through a linear j least-squares computation. Transmission of data to and from the instrumentation system

is handled through separate subroutines written in the computer's assembly language.

. Keywords I Acoustics; computer-controlled instrumentation system; real-time analyzer;

reverberation room; reverberation time.

15. Computer manuf'r and model 16. Computer operating system 17. Programing language(s) 18. Number of source program state Interdata Model 70 RTOS

Fortran V, Level 1,

Interdata Assembly lan

ments

l- 1436

19. Computer memory requirements 20. Tape drives 21. Disk/Drum units 22. Terminals 35,452 8-bit bytes None One/2.5 megabyte unit One

23. Other operational requirements 132-character line printer

real-time analyzer, random noise generator, microphone multiplexer inter f aced to compu ter

24. Software availability 25. Documentation availability

Available anLimited In-house only Available 0

Inadequate In-house only n

Paper or mag tape Internal report

26. FOR SUBMITTING ORGANIZATION USE

185-101 Standard Form 185 1974 July

U.S. Dept, of Commerce—NBS

(FIPS Pub 30) 121
.
NBS-1 1 4 A IRE v. 7-73)

U.S. DEPT. OF COMM. BIBLIOGRAPHIC DATA

SHEET

1. PUBLICATION OR REPORT NO. NBSIR 77-13832. Ciov't Ac i css ion No,3. Ret ipient's Accession No.

4. TITLE AND SUBTITLE

Interactive Computer Program for the Determination of

Reverberation Time

5. Publication Date December 1977

6. Performing Organization ('ode 200.03

7. AUTHOR(S) 8. Performing Organ. Report No.

9. PERFORMING ORGANIZATION NAME AND ADDRESS

NATIONAL BUREAU OF STANDARDS

DEPARTMENT OF COMMERCE

WASHINGTON, D.C. 20234

10. Project /Task 'Work Unit No. 2003116

11. Contrac i /Grant No.

12. Sponsoring Organization Name and Complete Address (Street. City, State, ZIP)

Same

13 . Type of Report & Period Covered Final

14 . Sponsoring Agency Code

15. SUPPLEMENTARY NOTES

16. ABSTRACT (A 200-word or less (actual summary o( most significant in formation, tf document includes a significant bibliography or l iterature survey, mention it here.) A description of the computer program used to measure the reverberation time in a reverberation room is presented. The program controls the operation of a real-time

analyzer, a random noise generator, and a microphone multiplexer. The reverberation

time for each digitally recorded decay curve is determined from a straight line

least-squares fit. The program is written in FORTRAN V and requires approximately

35,000 eight-bit bytes of core memory. Flow charts, source listings, and sample

printouts are included.

17. KEY WORDS (six to twelve entries; alphabetical order, capitalize only the lirsl letter of the first key word unless a proper name; separated by semicolons

)

Automated data acquisition; computer; reverberation

software

.

18. AVAILABILITY |Xj Unlimited

room, reverberation

19. SECURITY CLASS

(THIS REPORT)

time

;

21. NO. OF PAGES

2 f or Official Distribution. Do Not Release to NT IS

Order From Sup. of Doc., U.S. Government Printing Office Washington, D.C. 20402, SD Cn, No. C| I

126

UNCL ASSIFTED

20. SECURITY CLASS 22. Price (THIS PAGE)

IX Order From National Technical Information Service (N I IS) Springfield, Virginia 22151 UN< LASSIE! ED

$ 7.25

USCOMM-DC 29042-P74