ld5655.v855_1987.c57.pdf - vtechworks

250
A CADAM INTERFACE FOR THE COMPUTER-AIDED SELECTION OF TIMKEN TAPERED ROLLER BEARINGS by Dino Ciabattoni Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Master of Science 1Il Mechanical Engineering APPROVED: Dr. Arvid Myldebust, Chairman Dr. Hamilton H. Mabie June, 1987 Blacksburg, Virginia Dr. Charles F. Reinholtz

Upload: khangminh22

Post on 12-Mar-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

A CADAM INTERFACE FOR THE COMPUTER-AIDED

SELECTION OF TIMKEN TAPERED ROLLER BEARINGS

by

Dino Ciabattoni

Thesis submitted to the Faculty of the

Virginia Polytechnic Institute and State University

in partial fulfillment of the requirements for the degree of

Master of Science

1Il

Mechanical Engineering

APPROVED:

Dr. Arvid Myldebust, Chairman

Dr. Hamilton H. Mabie

June, 1987

Blacksburg, Virginia

Dr. Charles F. Reinholtz

A CADAM INTERFACE FOR THE COMPUTER-AIDED

SELECTION OF TIMKEN TAPERED ROLLER BEARINGS

by

Dino Ciabattoni

Dr. Arvid Myklebust, Chainnan

Mechanical Engineering

(ABSTRACT)

This thesis presents an interactive computer-graphics geometry interface that simplifies the tapered

roller bearing selection procedure. An applications program has been developed that links the

CADAM data base to SELECT-A-NALYSIS (SAN), Timken's bearing selection and analysis

program. The independent modular format of the SAN preprocessor eliminates the ambiguity and

difficulty associated with conventional bearing selection routines. Interactive-graphic menu se-

lection allows program logic to be followed while design geometry is selected from a CADAM

model. In addition to the discussion of the program development and structure, step-by-step in-

structions for an example problem are provided. Complete program listings are also supplied to

facilitate future additions and modifications to the preprocessor.

Ackno,vledgements

I would like to express my sincere appreciation to my advisor, Dr. Arvid Myklebust, for his guid-

ance and support in the preparation of this thesis. I am also indebted to Dr. Hamilton Mabie and

Dr. Charles Reinholtz for their service on my advisory and examining committee. I must also ac-

knowledge the assistance provided by the Timken Company, which made this thesis possible.

I wish to thank my fellow M.E. graduate students for their helpful suggestions and genuine concern.

If more people were like them, the world would be a much better place in which to live. Special

thanks are in order for Brian Thatch, Jeff Thompson, Jayaram Sankar, Mitch Keil, and Lawrence

Sewell for their invaluable advice concerning this thesis.

Finally, but most of all, I would like to thank my entire family. I can only say that I feel unworthy

to have been blessed with a family of such high caliber.

Acknowledgements Ill

Table of Contents

Ii'ffRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Scope and Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

LITERATURE REVIE\V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

OVERVIEW OF SAN AND CADAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

SAN Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

CAD AM Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

PROGRAM DEVELOPMENT ............................................ 19

Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Design Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

PROGRAM STRUCTURE ............................................... 32

RESET Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

SHr\FT lvlodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Table of Contents iv

GEARS Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

LOADS Module ........................................................ 45

DYNAM Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

MOUNT Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

BRGCN l\1odule ....................................................... 63

INTER Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

TEXT Tvf odule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

SANDF Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

CAD AM Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

HELP Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

CONCLUSIONS AND RECOMMENDATIONS ............................... 92

REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

MACRO PROGRAM LISTINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

SUBROUTINE USRPGM LISTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

SUBROUTINE RESOL V LISTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

EXECUTION FILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

SAN PREPROCESSOR EXAMPLE PROBLEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

Program Instructions 212

EXAMPLE PROBLEM SAN DATA FILE ................................... 221

Table of Contents V

EXAl'1PLE PROBLEM SAN OUTPUT FILE .•.............................. 224

Vita· ................................................................ 242

Table of Contents vi

List of Illustrations

Figure

Figure

Figure

Figure

Figure

Figure

1.

2.

3.

4.

5.

6.

CAD AM Product Development Process [ 18] . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Interrelationships Between Modules and File [ 18] . . . . . . . . . . . . . . . . . . . . . . . 12

Message Tree for DIALOGUE Mode Macro Program [16] . . . . . . . . . . . . . . . . 18

Point Load Force Decomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Overall Program Flow Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Independent Interactive Macro Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Figure 7. RESET Module Flow Diagram .................................... 37

Figure 8. SHAFT Module Flow Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Figure 9. RSHAFT Storage Locations ...................................... 40

Figure 10. GEARS Module Flow Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Figure 11. RGEARS Storage Locations ...................................... 44

Figure 12. LOADS Module Flow Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Figure 13. RHISTO Storage Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Figure 14. RLOADS Storage Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Figure 15. DY::--J'AM Module Flow Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Figure 16. RDYNAM Storage Locations ..................................... 58

Figure 17. MOUNT Module Flow Diagram .................................. 60

Figure 18. RMOU:NT Storage Locations ..................................... 61

Figure 19. BRGCN Module Flow Diagram ................................... 66

Figure 20. RBRGCN Storage Locations ..................................... 67

Figure 21. INTER Module Flow Diagram .................................... 70

List of Illustrations vii

Figure 22. RINTER Storage Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Figure 23. TEXT Module Flow Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Figure 24. RTEXT Storage Locations ....................................... 75

Figure 25. SANDF Module Flow Diagram ................................... 77

Figure 26. HELP Module Flow Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Figure 27. HELP Module Main /HELP/ Table ................................ 81

Figure 28. RESET Module /HELP/ Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Figure 29. SHAFT Module /HELP/ Table ................................... 83

Figure 30. GEARS Module /HELP/ Table ................................... 84

Figure 31. LOADS Module /HELP/ Table ................................... 85

Figure 32. DYNAM Module /HELP/ Table .................................. 86

Figure 33. MOUNT Module /HELP/ Table .................................. 87

Figure 34. BRGCN Module /HELP/ Table ................................... 88

Figure 35. INTER Module /HELP/ Table .................................... 89

Figure 36. TEXT Module /HELP/ Table .................................... 90

Figure 37. SANDF Module /HELP/ Table ................................... 91

Figure 38. CADAM Model "EXAMPLE,SHFT" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

Figure 39. Left End View Of "EXAMPLE,SHFT" ............................. 209

Figure 40. Primary View Of "EXAMPLE,SHFT" 210

Figure 41. CADPARMl Table of Macro Programs ............................ 213

List of Illustrations VIII

Chapter 1

INTRODUCTION

The rolling element bearings designed by Leonardo Da Vinci were the first to effectively reduce

friction in rotating machinery [1]. Although improvements in bearing design and analysis have kept

pace with the increased demands of modem machinery, bearing selection procedures have remained

complicated and iterative. This thesis presents design engineers with a simple, unambiguous

method to select anti-friction bearings.

Objective

The main objective of this thesis is to develop a computer-graphics geometry interface to aid in the

selection of Timken tapered roller bearings. CADAM was chosen as the software for several rea-

sons. With the Geometry Interface '.vlodule of CADA::V1, interactive-graphic menu selection is

possible. Program logic may be followed while design geometry is selected from a CADA::V1 model.

CADAM's macro geometry feature also allows access to the central data base. A postprocessor

INTRODUCTION

could therefore be developed to draw the selected bearings onto the CADAM models. This infor-

mation could later be used for manufacturing purposes. Another benefit of CADAM is its wide

distribution by IBM.

To limit the scope of this project, only Timken tapered roller bearings are considered (although the

work of this thesis can easily be extended to other types and brands of anti-friction bearings). Re-

striction to Timken bearings provides an additional incentive: SELECT-A-NALYSIS (SAN), the

company's tapered roller bearing selection and analysis program. By creating a bridge between

CADAM and SAN, the developed SAN preprocessor enables computer-aided design from the

problem formulation all the way through the final bearing selection - a time-saving design tool for

the typical bearing customer.

Scope a11d Develop111e11t

This thesis presents the development and structure of the SAN preprocessor. Generalized de-

scriptions of both SELECT-A-NALYSIS and CADAM are also provided to assist in understand-

ing the design process employed. To facilitate future additions and modifications, the complete

program listings have been supplied in the appendices, along with an example problem.

INTRODUCTION 2

Chapter 2

LITERATURE REVIEW

The literature provides a wide spectrum of information on the computer-aided design (CAD) and

computer-aided analysis (CAA) of anti-friction bearings. According to Ehrlich and Batt [2], ad-

vances in predicting bearing performance have greatly improved power transmission design. Critical

vibrations, thermal expansions, and stress concentrations may be determined from finite element

models of bearing components. Computer algorithms are able to solve the simultaneous,

combined-force systems that prevail in bearing applications. These techniques allow design flaws

to be corrected before the power transmissions go into production, thereby reducing manufacturing

costs.

Although there is a fair amount of information on analyzing bearing components, there is only

limited information available on analyzing complete bearing systems. Gupta [3] takes a step in the

right direction by presenting a generalized formulation of a dynamic model to simulate rolling

bearing performance under arbitrary operating conditions. He also provides the computer code

ADORE (Advanced Dynamics Of Rolling Elements) to implement the analytical model in an ac-

tual process. ADORE provides a real time simulation of the dynamic performance of a rolling

LITERATURE REVIEW 3

bearing by integrating the classical differential equations of motion of each element (rolling element,

cage, and the races) of the bearing.

Several articles were found concerning the selection of anti-friction bearings. McCutchan [4] dis-

cusses the engineering judgement required in selecting bearings from a manufacturer's catalog.

Useful background information for the traditional selection process is provided. Orthwein [5] pre-

sents detailed flowcharts for selecting ball and roller bearings. These algorithms are implemented

on a personal computer to determine bearing life. They require the bearing dynamic capacity , the

number of rolling elements, the contact angle, and the loading configuration. Orthwein [6] later

extends his work to cover opposed mounts and unsteady loads. However, all of these selection

routines are limited in scope.

Most of the significant work in bearing system analysis has been performed by the leading bearing

manufacturers. Sibley and Privies [7] discuss bearing analysis programs at SKF Industries, Incor-

porated. Three classes of bearing programs are outlined. The first deals with fundamental investi-

gations. Load bearing and motion controlling systems are addressed in the second. The third class

provides general information and is meant to be a customer service tool. Privies [8] later presents

the evolution of computerized rolling element bearing analysis. A detailed discussion on load

support systems and the accompanying software is also given. An emphasis is placed on the pro-

gram complexity required to accurately analyze anti-friction bearings. Strong and Fahrni [9] discuss

similar work at The Timken Company. In addition to analyzing specified tapered roller bearings

for a given load support system, the Timken program SELECT-A-NALYSIS (SAN) [10] can select

the optimal bearings for the given application. This latter feature enables a customer to maximize

the performance or minimize the cost of his mechanical system. Also, the slow process of selecting

bearings from the company's tapered roller bearing catalog [ 11] can be avoided.

The Timken Company has concentrated its efforts in two main areas [ 12]. The first is the product

itself. This includes the raw materials used to manufacture the bearings, refinements to the internal

geometry of the bearings, and the design of individual bearing configurations to suit particular ap-

LITERATURE REVIEW 4

plications. The second area is the application technology. Bearing system analysis, computerized

selection and application, customized bearings, and automated setting techniques ( designed to op-

timize the performance characteristics while simplifying adjustment on assembly) are all part of the

second area. As alluded to, bearings need to be properly installed and cared for if they are to meet

their performance specifications. Excellent bearing maintenance manuals can be obtained from

Deere & Company [131 and from the Anti-Friction Bearing Manufacturers Association (AFBMA)

[14]. The AFBMA also provides anti-friction bearing standards for almost every aspect of the in-

dustry.

Until now, this review has focused on the selection, analysis, and application of anti-friction

bearings. Although the SAN preprocessor developed is concerned with these topics, the main goal

of this thesis was to create a computer-graphics interface for them. Unfortunately, no published

information could be located about geometry interfaces of this nature. All of the available material

focuses on constructing engineering models from supplied data. Nothing was found on retrieving

data from engineering models and processing that data for analysis purposes. The IBM/CADAM

manuals [ 15-18] were, therefore, the only source of computer-graphics information used in this

thesis.

Though not incorporated into this work, information on CADAM 2-D drawings of Timken ta-

pered roller bearings is available [19-23]. The Timken Company uses these CADAM details to

reproduce their bearings on engineering drawings. To complete the geometry interface, a SAN

postprocessor could be developed that either uses these bearing details or bearing models

parametrically generated with Timken data.

Finally, this literature review would not be complete without any references to the programming

practices used. The top-down principle [24] was instrumental in the formulation of the SAN pre-

processor. This highly structured, modular, hierarchic method of software development first starts

with the program requirements. Once these are established, the functional specifications can be

made. These, in turn, lead to the program design. Then, and only then, may the actual coding

LITERATURE REVIEW 5

begin. After the program is complete, thorough testing is required to ensure its validity. Operations

finish the process. McCracken [25] also provides useful information. For example, the use of un-

formatted READ and WRITE statements allows the SAN preprocessor to execute more quickly.

Finally, vector operation techniques were taken from the work of Mortenson [26].

LITERATURE REVIEW 6

Chapter 3

OVERVIEW OF SAN AND CADAM

Brief descriptions of SELECT-A-NALYSIS (SAN) and the Computer-Graphics Augmented De-

sign and Manufacturing System (CADAM) are presented in this chapter. Only the aspects that are

relevant to the developed SAN preprocessor are examined in detail. Limitations and specific re-

quirements of each are explored in the next chapter in relation to software requirements.

SAN S1unn1ary

SELECT-A-NALYSIS is the Timken Company's bearing selection arid analysis program. It

combines bearing selection and analysis routines (developed by Timken bearing application engi-

neers) with the electronic version of the company's tapered roller bearing catalog. Currently, SAN

is resident on a stand-alone VAX computer and is available to Timken customers through an

international time-share network. All data files and SAN output are password-protected to main-

tain client confidentiality.

OVERVIEW OF SAN AND CADAM 7

Tapered roller bearing selection is usually based on four design constraints [9].

1) An established range for bearing envelope size which includes

bore diameter, outer diameter, and overall bearing width.

2) A minimum required calculated life and/or weighted average

life for each load condition.

3) Interpositional constraints or dimensional specifications

relating both bearings together.

4) The best bearings at the lowest cost.

Although both the traditional method and the automated (SAN) method use the same design

constraints, each approach searches for suitable bearings from a different angle.

The traditional (manual) method of bearing selection is considered first [9]. After determining the

bearing minimum required (design fatigue) lives for a given support problem, the applied loads are

reduced into a single resultant thrust load and the resultant radial reactions at the assumed bearing

center locations. Bearing dynamic equivalent radial loads are then estimated based on assumed

K-factors (bearing radial/thrust load capacity ratios) and the shaft mounting used. Next, the re-

quired dynamic radial load ratings are calculated. These values are based on the estimated dynamic

equivalent radial loads, the desired bearing lives, the bearing speeds, and the appropriate application

factors. Using this information and the bearing dimensional constraints, bearings that have actual

dynamic radial load ratings higher than the ones required are cho~en from the Timken catalog.

Next, the true K-factors of the selected bearings are used to calculate the actual equivalent radial

loads. With all of the known bearing parameters, the actual bearing lives can be found. If the life

of a selected bearing is less than the design life, another bearing must be selected. After several pairs

of bearings have been selected, the least expensive set is usually chosen. However, if the bearing

center locations were incorrectly assumed (based on the actual bearing widths), then the corre-

sponding reaction forces are also incorrect and the selected bearings may no longer be acceptable.

In this case, the entire process must be repeated.

OVERVIEW OF SAN AND CADAM 8

To summarize, the manual approach is an iterative process of selecting bearings (based on educated

guesses), analyzing their characteristics under the applied loading, and making better selections if

they do not meet the design lives or are too expensive. Therefore, no matter how experienced the

"guesser" is, the traditional approach of selecting bearings remains slow and inefficient. Further, the

best bearings for a given support condition will probably not be selected because of the many

combinations possible.

SELECT-A-NALYSIS, however, combines the processing speed of the computer with the com-

plete inventory of standard Timken bearings. Instead of estimating radial ratings to select bearings,

SAN analyzes all 1:;,earings that meet the bearing dimensional constraints. Thus, no acceptable

bearings are overlooked. Six successive steps are taken in the selection process [9].

ll Establish coordinate system to identify all dimensions,

bearing positions, load producing elements, and results.

2) Resolve all force vectors into their components at the

given locations for each part of the duty cycle.

3) From the data base, extract all bearings that meet the

dynamic radial load rating, application factor, and

dimensional envelope requirements.

4) Eliminate bearings that do not meet the

interpositional dimensional constraints.

5) Eliminate all bearings that fail to meet the

required minimum life at each bearing location.

6) Rank acceptable bearing sets by increasing cost

or by decreasing system life.

This approach guarantees selection of the best available bearings for the given application. If no

suitable bearings exist, the constraints prohibiting selection are identified. To minimize computa-

tion time, SAN always analyzes the worst load case first, rejecting a bearing at the first sign of

failure. By limiting the number of bearing pairs to 50, SAN can quit analyzing bearings once the

best combinations have been found. Several other time-saving algorithms are also used [9].

OVERVIEW OF SAN AND CADAM 9

Specific data file requirements are considered in the next two chapters. Appendix F contains the

SAN data file that was generated by the SAN preprocessor for the example problem in Appendix

E. The SELECT-A-NALYSIS Instruction Manual [10] covers the SAN input data file coding re-

quirements in detail.

CADAM Su,nnzary

CADAM is an interactive graphics system for computer-aided design and manufacturing. It is

currently installed on an IBM 4341 processor in the Mechanical Engineering CAD/CAM Labora-

tory at Virginia Tech. Originally developed by the Lockheed Corporation, CADAM is now a

product of CADAM, Incorporated (a subsidiary of Lockheed) and is marketed by IBM. The

computer-aided design (CAD) portion of CADAM is a sophisticated, multifaceted design/drafting

system. The computer-aided manufacturing (CAM) portion of CADAM generates NC control

data automatically. Together, they share a central data base, providing efficient communication

betweeri the two divisions. Figure 1 illustrates the product development process possible with the

CADAM system [18].

The interrelationships between the CADAM data base and the various CADAM modules are

shown in Figure 2. Macro geometry is a key feature of the CADAM CAD system. The CADAM

Geometry Interface module allows design engineers and application programmers to modify the

CADAM data base by combining CADAM control routines and user-written subroutines. Ge-

ometric data may be transferred both to and from CADAM models. The five Geometry Interface

application programs are explained below [15].

1) CADCD CADCD is a collection of utility programs that allow

CADAM elements to be created in a batch environment. Both

new and existing drawing files may be processed.

OVERVIEW OF SAN AND CADAM 10

PROJECT MANAGEMENT Bill OF

L-----r_~~:-:B~ll~l-:'OF?···~--":"'. ~\~,; MATERIAL / MATERIAL CREATION / TEXTUAL

..,,.-.=~.;.;,,:.;.......: DATA

DRAWING LIBRARY

r-----.l' PROCESS PLANN l;G 7 -------, I

MATERIAL PLANNING

AND CONTROL

: : SHOP I I FLOOR I I I I I I I --- -1-_____ .J

T

... . ·•:::~::::: .. :._:._: .. ~:_-_::'::: :1/;~Jt::::~::: ·.·:.-::.:::-.-:;:-:.·.-.•:: :-:~::,•.-::.::

t hiif ~N_ w; vwiriu~ -:-:-\·.-:-~:~ .. ; __ :.·.:_::~::::.~-? .. /\).\\?~~

N/C PROGRAMMING

hiXd APPLICATION AREAS COVERED BY CAOAM SYSTEM

Figure I. CADA:\'I Product Development Proce~~ (18)

OVERVIEW OF SAN A:\D CADAM 11

IOI I l

M1crofi1r.-

CADAM CAD ONLY

OR CAD/CAM

Figure 2. Interrelationships Between \fodules and File [ I 8)

OVERVIEW OF SAN A~D CADA:YI

' I I CA.DAJr.1 I

"., I

L::J

F1 , I ! , CADAM FILE '------'

12

2) CADET

3) CADMACGM

4l LOFT

SJ SCLIB

CADET transfers CADAM model geometry to user-written

routines in a batch environment. It can be enhanced to

alter the CADAM-supplied source code to fit particular

in-house needs.

Macro Geometry ICADMACGMl enables user-written

programs to be executed interactively. The user-written

program IUSRPGMl can use CADCD routines to create geometry.

If USRPGM is linked with the macro program, then CADET can

be used to retrieve CADAM element information.

LOFT is the Master Dimension Data Interface. It

provides a convenient way to input complicated geometry

into the CADAM data base.

SCLIB is a drawing file scan program that produces a

list of subgroups or drawing identifications for a given

drawing file.

Since this thesis uses the macro geometry module extensively, CADMACGM will now be discussed

in greater detail.

Access to the macro geometry program is possible through selection of the MACRO GM function

key. The two parts to CADMACGM are the user-written program (USRPGM) and the

CADPARMC table, a user-modified assembly program that passes parameters from the interactive

CADAM session to the USRPGM. Each part is discussed in turn (15].

USRPGM must be the name of the FORTRAN subroutine that accepts the interactively defined

data from the CADPARMC table. A maximum of 500 variables may be passed to it. In addition

to user-written subroutines, CADCD geometry and utility routines may be called from within

USRPGM. This allows the user to create CADAM elements for the current drawing from inter-

actively defined parameters. The CADCD routines used in the SAN preprocessor are discussed in

more detail in Chapter 5. A complete listing of the USRPGM portion of the SA~ preprocessor

is provided in Appendix B.

OVERVIEW OF SAN AND CADAM 13

USRPGM may also use CADET to retrieve information from the current CADAM drawing.

CADET calls SUBROUTINE RESOLV to process the given geometry. For every type of

CADAM element, there is a corresponding entry point in RESOLV. When an element is interac-

tively selected from the screen, the element identification number is passed back to USRPGM.

This element number is used by RESOLV to determine which entry point section is required. By

modifying selected entry point sections in RESOLV, the user can pass back the element's geomet-

rical information to USRPGM.

Common blocks are used to pass all information to CADET and RESOLV. CADET control

variables are contained in the /CDTCOM/ common block. Those that are used in the SAN pre-

processor are explained below [ 15].

LETGO

NOREAD

CDTSHO

IPRINT

IHANT

An integer that determines how CADET is to process the

transfer of model elements. If LETGO = 0, CADET will keep

sending model elements to the user until done.

An integer value that allows implementation of CADET

without reading in a new drawing file. If NOREAD = 1,

CADET will accept the drawing which is already within the

model and will not try to read a new drawing. This is

necessary for interactive macro geometry programs.

An integer value that allows NOSHOH elements not to

be processed. If CDTSHO = 0, all element types will be

processed, irrespective of their SHOH/NOSHOH status.

An integer value indicating the print file where CADET

diagnostics are to be written. Unit number~ is used.

A variable that restricts model elements to be processed

to those specifically requested. This allows control

of element processing. If IHANT(ll = 'ONE ', CADET

will process only the element whose element number is

contained in IHANTl21. This element number is returned

from the interactive program for the selected element.

OVERVIEW OF SAN AND CADAM 14

The particular geometric information used by the SAN preprocessor is covered in Chapter 5. The

modified portions of SUBROUTINE RESOLV are provided in Appendix C. Although the unused

portions have been omitted from the listing, their presence in the actual program is required for

proper execution.

The CADPARMC table provides a collection of user-written macro programs that may be inter-

actively accessed at the scope. More than one table can be included in the executable module

(MYCADAM); the user must request the desired table after pressing the MACRO GM (GEOwt-

ETRY) function key. The two parts of a CADPARMC table are the index of available application

programs and the parameters used in those macros. The four assembler language macros that de-

fine the CADPARMC table are explained below [15].

MACNAME

MACNMEND

MACHDR

MACDEF

Defines an application program name to be put in the index.

All MACNAME'S must precede the MACNMEND.

Identifies the end of the index portion of the table.

It must be used once and only once.

Defines the titles and column headings that appear on

the scope for the user program MACDEF macros.

Defines the parameter list for an application program.

It cannot be used before MACNMEND. There must be one

MACDEF for every MACNAME.

There are two modes of operation possible with the MACRO Gl\l function key: DISPLAY mode

and DIALOGUE mode. The DISPLAY mode allows the user to key in the values of parameters

displayed in a table. While this mode is in operation, only the table is visible. The DIALOGUE

mode allows for program logic to be followed. User-defined messages and menus are used to

branch through an interactive macro program while entering data or selecting geometry. All of the

information is stored sequentially in RDATA, a 500 element parameter list. DIALOGlJE mode

also maintains the CADA:Vt drawing on the screen during operation of the macro program. The

two modes may be mixed, but only one mode can operate at a time. If the two are combined and

OVERVIEW OF SAN AND CADAM 15

the DIALOGUE part precedes the DISPLAY part, then the parameter table will not appear after

the messages and menus. Mixing the two modes, therefore, is not justified. Only the DIALOGUE

mode will be discussed in detail because the SAN preprocessor uses this mode of operation only.

The DIALOGUE mode becomes active when the MACDEF x-position values exceed 1000.

Program logic is possible by specifying certain x-coordinates for the various macro program state-

ments. A brief summary of each CADPARMC function for the corresponding x-coordinate is

given below [15].

900

901

902

903

904

1000

1001

1002

1003

1004

1005

1006

1007

1008

1009,0

1009,1

1009,2

1010

1011

1012

1014

1016

Place initial value field into RDATA.

Put model's units-per-inch (UPI) into RDATA.

Specify MACNAME or MACDEF UPI.

Units-per-inch (UPIJ for automatic symbol.

Units-per-inch (UPIJ for HELP symbol.

Geometry select on a specific type.

INDICATE to define a temporary point.

Floating point key-in.

Define temporary point by key-in, select, or indicate.

Branch point after /END/ menu option selected.

Defines an automatic symbol.

Defines a branch point.

User menu.

Conditional branch (depending on selected menu option).

Unconditional branch forward to a 1006 branch point.

Execute the macro program.

Restart the parameter definitions.

An unconditional branch backward.

Conditional branch after a 1000 or 1016 element select.

Request for text key-in.

Specify a /HELP/ symbol.

Return x,y location of geometry selected.

OVERVIEW OF SAN AND CADAM 16

Once all of the data has been defined, the macro program is executed. Control is then passed to

USRPGM, which updates the CADAM data base. When control is returned to the last macro

program executed, the user can either save the new geometry on the screen (if any) or delete it. In

either case, the parameter list is reinitialized and the user may choose the desired macro program

to continue. The message tree for a DIALOGUE mode macro program is shown in Figure 3.

Specific coding requirements are discussed in the next chapter. Explanations of the developed

macro programs are given in Chapter 5. A complete listing for the assembly language portion of

the SAN preprocessor is supplied in Appendix A. An in-depth description of CADAM's macro

geometry is available in the CAD AM Geometry Interface Installation Guide [ 15].

OVERVIEW OF SAN AND CADAM 17

SEL MACRO PROGRAM I

DIALOGUE mode macro program

selected

I SEL MENU/ YN REJECT/ (DIALOGUE MESSAGE)

I l l I

/ (DIALOGUE MENU)// RESTART/ END/ HELP/ RETURN/

.-------1 _ __,I l I

I *

Execute Macro Program

(Macro Response Message) / SEL MENU

/RESTART/ SAVE/ SAVE+RESTART / MENU I / I I * *

(No HELP Symbol Deflned)

(HELP Symbol Deflned)

I I NO HELP SYMBOL DEFINED SEL MENU

I *

/RESTART/ NEXT PAGE/ MENU I /RETURN/ I * I

*

• - Return to the Top of the Message Loop

Figure 3. Message Tree for DIALOGUE Mode Macro Program (16]

OVERVIEW OF SAN AND CADAM 18

Chapter 4

PROGRAlVI DEVELOPMENT

This chapter concerns the development of the SELECT-A-NALYSIS preprocessor. Software re-

quirements that dictated the program development are considered first. The chapter concludes with

a discussion of the design process employed. The actual program structure is saved for the next

chapter.

Software Require111ents

As stated in the objective, the main goal of this thesis is to interactively generate an input data file

for SELECT-A-NALYSIS (SAN) from a CADAM design model using the MACRO GM (GE-

OMETRY) function key of CADAM. In addition, the SAN preprocessor developed must be

compatible with any future postprocessor that generates the selected bearings into the CADAM

model. Alteration of the SAN source code is unlikely because it is proprietary. Therefore, any file

generated for SAN must conform to the SAN format exactly. Complete specifications for writing

PROGRAM DEVELOPMENT 19

a SAN data file can be found in the SELECT-A-NALYSIS Instruction Manual [10]; the more

important requirements are outlined below.

The first SAN requirement is that only two points of support are permitted per shaft. In a single

row analysis, Timken bearings TS and TSF are acceptable. In a two row analysis, Timken bearings

TDI, TDO, 2TS-DM, and 2TS-IM may be used. As long as a Timken two row bearing is used

at one end of a shaft, a non-Timken bearing may be used at the opposite end. This enables the

use of a journal bearing at one support.

If analysis of preselected bearings is all that is desired, then up to five shafts with up to four alternate

bearings per shaft may be analyzed at a time. If selection of any bearing is also involved, the data

file can only contain information for one shaft without any alternate bearings specified. In all cases,

the data file is based on having a left end view of the shaft. The angle reference point, from which

clockwise angles and rotations are positive, may be set at any location in the left end view. All

bearing, gear, load, etc. locations are referenced from the user defined zero axial datum point in the

primary view.

SAN restricts the number of gears per shaft to 20 with a maximum of four gear mesh points

transmitting power per load condition. Up to 10 externally applied thrust loads and 10 externally

applied radial loads are allowed per load condition. Gear forces are not considered in this last re-

quirement. Distributed loads, moments, and other types of common loading cases must be broken

down into pure radial and/or pure thrust loads only (for the current version of SAN). Each shaft

may have up to 50 load conditions defined. If a specified case of gear loading occurs concurrently

with externally applied loads, then both cases require the same load condition number. Likewise,

gear loads and external loads that do not occur together require distinct load condition numbers.

Idle conditions are omitted.

In the selection of bearings, certain constraints override other constraints. For example, if a cone

is specified, then a minimum or maximum bore diameter has no meaning. Likewise, an outer di-

PROGRAM DEVELOPMENT 20

ameter constraint is overridden by a specified cup. C(90) and K-factor constraints are ignored if

preceded by a cone, cup, or series number. Depending on the bearing type, other constraints may

not be applicable. For example, a width constraint is irrelevant for a 2TS-IM bearing due to its

variable width spacer. The variable width of this last example also necessitates using only the

bearing center for positional information.

More subtle requirements include the exclusion of thrust loads when a floating mount is used.

Since the user has the option of specifying bearing life in either time or distance traveled by the

vehicle, consistency of data input is paramount. Further, minimum life values requested are

lubricant-adjusted if both the bearing lubricant and operating temperature are specified. Finally,

coding requirements include the use of only capital characters in the data file and all entries must

be separated by blanks, not commas.

There are CADAM requirements in addition to those of SAN. Although the MACRO GM

function key of CADAM has a great deal of graphics applications, it does have several limitations

that should be pointed out. The major limitation is in the storage of data while using the required

DIALOGUE mode of operation. A 500 element, one dimensional, real array (RDA TA) is used

to store all interactively defined information, whether it be real numbers, integers, text strings, ge-

ometry selects, etc. All information is stored sequentially in the array. Keyed in values occupy one

slot in the array, unless an option to select geometry from the screen exists. In this latter case, keyed

in values are preceded by a negative one in the array. Each four characters of a text string occupy

one slot in the RDA TA array with the first slot depicting the negative of the number of characters

keyed in.

Therefore, based on the user's choice of data input and on the length of any keyed in text string,

there is no way to predetermine which slot in the RDA TA array has what value stored in it. It is

only after a macro program is executed that the stored information can be sorted out, based on the

negative number flags and counters. This is a problem, though, because branching while still in the

macro program depends on prior knowledge of stored data locations. In order to branch to a given

PROGRAM DEVELOPMENT 21

section of the assembler code, a specified slot in the RDAT A array is checked against a particular

value. For example, the programmer can specify a branch to branch point "B 1" if the 10th slot in

RDA TA is a "2" (the "2" may have been placed in the array after the user selected the second of

several menu choices provided by the macro program). This branch is not possible once the current

position in the array is no longer known.

Another limitation of macro geometry is that each macro program can be no more than 5600 bytes

long. The assembler will not issue any error or warning statements, but the given macro program

will not be selectable from the screen. This is due to buffer capacity. CADAM allows branching

to other CADPARM tables, but the macro names are limited to five characters preceded by an 11 @"

sign and the user can become confused in knowing what the current command level is. In either

case, menus can have no more than 45 characters, and prompts are limited to 35 characters. Fur-

ther, only 20 geometry selects are allowed per execution.

While executing a macro program, the user is locked out of all other CADAM function keys, except

the WINDOW function key. Therefore, if a user wishes to add a point on a given drawing, he must

first return to the main menu, select the desired function key (in this case POINT), perform the

operation, and then return to the macro program. However, the RDA TA array will have been

re-initialized to all zeros and the user will have to start the given macro program from the beginning

again, not from where the exit occured.

More of an inconvenience than a limitation is the requirement of using FORTRAN IV and the

HX compiler. CADAM does not currently support VSFORTRAN 77 when CADCD, CADET,

and file input/output are all required in the same macro geometry load module. Another incon-

venience is due to CADAM's practice of overlaying memory locations. This results in the loss of

all array information in the FORTRAN user program (USRPGM) when control is passed back

to the interactive portion of the program. Therefore, any information that must be saved for later

processing must be written to a file while still in the FORTRAN routine. Solutions to the re-

quirements and limitations addressed in this section are now presented.

PROGRAM DEVELOPMENT 22

Design Process

The design process centered on an attempt to make all of the SAN preprocessor limitations those

of CADAM and SAN. To a reasonable extent, this goal was achieved. Outlined below are the

various programming strategies used to accomplish this task.

The most important consideration was to make the SAN preprocessor as "user friendly" as possible.

This requires an unambiguous menu structure as well as the earliest possible notification of erro-

neous input. Further, similar and/or dependent items need to be grouped together in the same

macro program as to minimize confusion on the part of the user. However, the amount of data

that must be entered in any given section should be kept to a minimum in case the user needs to

start that particular macro program over again.

Based on these requirements, an independent modular format was developed. Each macro program

concentrates on a particular area of data specification. In this way, the user can complete the var-

ious sections in any order. Only required data need be entered and default sections can be ignored

completely. Further, any section may be redone at any time without affecting the other sections.

Since the various modules are self-contained, error messages and warning notes can be relayed to

the user after completion of a given section; knowledge of specified data in other sections is not

required. It is important to note that the macro program is only partially interactive. If, for in-

stance, the user keys in a text string when a numerical value is requested, an error message can not

be displayed until the macro program is executed and control is passed to the batch FORTRAN

portion of the SAN preprocessor.

The DIALOGUE mode of the MACRO GM function key is required for several reasons. First,

DIALOGUE mode allows menu branching. Branching is needed at all levels of the program. For

example, if the user specifies a particular cone to be used at a given bearing position, then the option

of specifying a bore constraint is not permitted and that section of the code should be bypassed.

PROGRAM DEVELOP!\-IENT 23

Secondly, DIALOGUE mode maintains the drawing on the screen while it is being processed. This

is necessary so that geometry selects can be made. For example, the minimum bore desired might

be the diameter of the shaft. The user must be able to select the end view circle of the shaft or the

primary view shaft end to define the given diameter. Another possibility with DIALOGUE mode

is the option to request a detail page of "help" information at any time. Different help pages can

be defined for each macro program.

As mentioned earlier, CADAM does not allow access to any other function keys while executing

a macro program. CADAM does allow geometry to be selected from other views, but all of the

geometry coordinates are based on the current view. If the end view origin is two inches to the left

of the primary view origin, the end view coordinates are returned as (-2,0) and not (0,0). This no-

tation requires an extra coordinate transformation to keep the correct coordinates in both views.

Therefore, although the zero axial datum point is on the shaft axis, it must be defined in both views.

Since the shaft orientation must be specified in both views, shafts at any angle to the CADAM

coordinate system are allowed.

As discussed earlier, DIALOGUE mode has many drawbacks when large macro programs are re-

quired, especially when variable length data is entered. One method to overcome the problem of

unknown data storage locations is to offer the user only one menu choice in addition to the

CADAM supplied menus of /RESTART/, /END/, /HELP/, and /RETURN/. In this practice,

the user can either select the single menu and step through the various prompts or else select the

/END/ menu and thus jump to the next section. The jump is possible by placing a backward loop

end statement prior to the next section; even if no loop exists. The backv;ard loop was not designed

for this function, but has proven successful in application. However, the exact number of RDA TA

slots filled depends on the number and type of statements between the single menu choice and the

backward loop end statement. It is therefore necessary to operate the macro program in TEST

mode before the corresponding FORTRAN portion can be written. TEST mode allows the ap-

plications programmer to know what is contained in the RDA TA array without actual execution

of the program. For example, the user might be supplied with the single menu iGEARS

PROGRAM DEVELOPMENT 24

TRANSMITTING POWER/. If there are gears transmitting power in the given load condition,

the user would select the single menu choice and proceed to enter the required gear loading data.

If no gears were transmitting power in the given load condition, the user would select the CAD AM

supplied /END/ menu and thus branch to the next loading section. In the latter option, the macro

program would fill the next four RDATA slots (in this case) with zeros because the /END/ menu

selection is expected only at the end of backward loops. Therefore, the applications programmer

can code the FORTRAN portion of the program knowing that the current RDA TA value will be

a one (one for the first - and only - menu choice) followed by gear loading information if the gear

loading menu was selected or else a zero followed by three more zeros if the /END/ menu was se-

lected instead. This ''bread crumb trail" of programming is very difficult for the applications pro-

grammer to code, but it allows the user to easily branch through the program at times when

CADAM has no defined method to do so. Incidentally, if the single menu technique is employed

in an actual backward loop, selecting /END/ causes the given number of zeros to be followed by

the end-of-data flag from the loop back statement.

Another use for the unconventional, single menu choice method is in specifying yes or no options.

For example, if several SAN print option statements occur in a row, the user can select the options

desired or select the accompanying /END/ menu instead. If no other statements come between

the menu prompts, there is no way of telling which menus were selected and which were skipped.

To get around this problem, different dummy values can be placed after each menu prompt. Based

on the sequence of ones (for selected menus) and the dummy values (that are always stored in

RDA TA regardless of the menu select), the applications programmer can determine which menus

were selected and which ones were skipped. For example, if five consecutive RDA TA values ap-

pear as 1, -1, -2, 1, -3; the application programmer can be certain that only the first and third

options were picked and the second was skipped ( the dummy values were arbitrarily picked as -1,

-2, and -3).

Another application of dummy values is when the user has a choice to specify a constraint or not.

For example, if the user is prompted with the two choice menu /KEY APPLICATION

PROGRAM DEVELOPMENT 25

FACTOR/USE DEFAULT/, the selection of the first menu choice will require an additional

memory slot of RDA TA when compared to the selection of the second menu choice. In order not

to lose knowledge of the current slot number in RDA TA, a dummy value can be stored in the array

if and only if the second menu is selected. This practice enables branching later on in the same

macro program because the specific RDA TA location can thus be successfully tracked.

If it were not for the 5600 byte limitation in each macro program, this last technique would prove

more useful. However, storing large numbers of dummy values is a waste of precious memory

space. In fact, menu and other prompts often have to be abbreviated in order to conserve space

in the given macro program.

One last coding trick involves solving a problem developed by using the unconventional single

menu choice method. Whenever a section of code is skipped by selecting the /END/ menu, the last

menu in that section will automatically be displayed if the next section does not start with its own

menu. The application programmer can ensure that each section starts with its own menu, but the

last section creates a problem. For example, consider a backward loop consisting of specifying

point loads (point loads are forces at any orientation in space) which is the last section of a macro

program. This last section may start with the menu /POINT LOADS/. Inside this section are

several menu choices for specifying point loads. If the user selects the single choice menu and fol-

lows the various prompts, the program will then loop back to the beginning of the last section and

display the /POINT LOADS/ menu again. If another point load needs to be entered, the user

would select the menu again and proceed as before. The problem occurs when the user decides to

stop entering point loads or to skip the last section entirely. In selecting the /END/ menu, the next

prompt (in this case, the request for a note location) will appear at the top of the screen. However,

the last menu in the point loads section will also appear on the menu line. This would surely

confuse the user since the point load menu would not have been expected. To circumvent this

dilemma, an identical menu (in this case /POINT LOADS/) can be placed at the end of the loop

and the backward loop continue statement can be placed just after the initial single menu choice

of /POINT LOADS/. In this case, the initial menu /POINT LOADS/ would be encountered only

PROGRAM DEVELOPMENT 26

once, but the identical menu /POINT LOADS/ would be displayed after each completion of the

loop. Therefore, when the /END/ menu is selected, the identical menu will be displayed with a

prompt for a note location. The user will have been tricked into thinking that a new menu did not

appear on the menu line, when in all actuality, an identical menu did appear to replace the initial

one.

Throughout the SAN preprocessor, the stipulation is made that the /END/ menu can only be se-

lected when a single menu choice exists or when a prompt specifically states its application. This

precedent reduces the chance that the user might select the /END/ menu at an incorrect time, thus

causing an error message. Macro program coding requirements necessitate these regulations.

Although much time was spent on developing a suitable menu structure for the interactive portion

of the SAN preprocessor, a great deal of time was also spent on data specification. Various meth-

ods were used to obtain all of the required information with the least amount of data input, thus

simplifying the user's job. One such example is the grouping of gear loading information with that

of externally applied loads. SAN currently requires the specification of gear loading in a

HISTOGRAM section of the data file and the specification of externally applied radial and thrust

loads in a LOADS section. In each section, the load condition number, shaft speed, direction of

rotation for the shaft or housing, and percent time or distance of the load cycle are all required. If

a given load condition has both gear loading and externally applied radial and/or thrust loads, then

the common information must appear exactly the same in each section. This is both redundant

and error prone. Likewise, load conditions that either have gear loading or externally applied loads,

but not both, must be distinct from each other. Therefore, the best solution to this problem is to

classify all loading information based on load condition number and not type of loading. In this

way, common information is entered only once and the chance for error is reduced. Further, if a

change is required for a given load condition, it can be made for gear loads and externally applied

loads all at once. Since the SAN code cannot be altered itself, the SAN preprocessor must break

the two different types of loading back into the current SAN format.

PROGRAM DEVELOPMENT 27

Flexibility in specifying a given data input is also important. The more opportunities there are for

the user to choose between geometry selects and directly keying in a value, the better the program

is. If the user were limited to just selecting lines and circles for minimum and maximum bore di-

ameter constraints, the program would become difficult to operate. Likewise, if the user were lim-

ited to just keying in values, a graphics program would not even be necessary. In its place, an

interactive FORTRAN program would be sufficient. These are the reasons why every attempt has

been made to maximize the options in specifying data.

As outlined earlier, the current loading format of SAN is limited to the specification of pure radial

and/or pure thrust loads. In the developed SAN preprocessor, several types of loading are handled.

The breakdown of the specific types are saved for the next chapter, but a few of the design con-

siderations that went into them are discussed below.

Vector operations are used to process most load types. Point loads serve as an example again.

Figure 4 illustrates a point load in both the primary view, ( G), and the left end view, (H). The

thrust component of the load is the component of G in the direction of£, the shaft direction vector.

The radial component of the load is the component of H in the opposite direction of F, the end

view application point vector. Several operations are required to determine these force components.

First, the z components of the primary view vectors are set to zero (the vector is actually a

projection of a 3-D vector). Likewise, the x components of the left end view vectors are set to zero.

The magnitude of the thrust component is the magnitude of the total load times the scalar product

of the unit vector of G and the unit vector of £. This force requires a sign change if the load is

applied to the housing instead of the shaft. The magnitude of the radial component is the non-

thrust magnitude of the total load times the scalar product of the unit vector of H and the unit

vector of F. The non-thrust magnitude of the total load is the square root of the difference in the

total load squared and the thrust component squared. If the radial component is towards the shaft,

then it is taken as positive; otherwise, it is taken as negative.

PROGRAM DEVELOPMENT 28

A

H

A

Q

LEFT ENO VIEW OF

SHAFT

Figure 4. Point Load Force Decomposition

PROGRA~IDEVELOPMENT

A

G

A

E

PRIMARY VIEW OF SHAFT

29

The application point angle of both components can be found from the left end view. The absolute

value of the angle is the inverse cosine of the scalar product of the unit vector of Q (the user defined

angle reference vector) and the the unit vector of F. Since clockwise rotation from Q is positive, .

the cross product of Q and F determines the sign. If the x component of the cross product is pos-

itive, then the rotation from Q to Fis clockwise and the angle is positive. Otherwise, the angle is

negative.

The moment arm distance of the thrust component is simply the length of the end view application . point vector, F. The axial distance of the radial load from the user defined zero axial datum point

is the scalar product of the primary view application point vector, P, and the unit vector of the di-. rection vector, £. All of the above illustrates the general case; special cases must be dealt with on

an individual basis.

Since SAN is limited to specifying radial and/or thrust loads at a given location for a certain amount

of time, there is currently no means available to specify dynamic loads - loads whose angular posi-

tions are constantly changing. These unbalanced forces are quite common, such as in the case of

an unbalanced shaft. Ideally, unbalanced forces should be added in each time period at the angle

that causes the severest loading case. Since these angular positions are based on the initially un-

known bearing reaction forces, the unbalanced forces cannot be fully defined until the system force

analysis is completed.

In anticipation of future inclusion of dynamic loading in SAN, a coding format that parallels SAN's

HISTOGRAM and LOADS sections was developed. A macro program prompts the user for un-

balanced mass magnitudes and locations. This information is used in conjunction with the shaft

speed and percent time of load cycle for each load condition already defined. The axial shaft lo-

cation, the eccentricity, and the resulting unbalanced force are written to the SAN data file in

comment form; only the angle of the load point cannot be specified. The unbalanced force is equal

to the product of the mass, the eccentricity, and the square of the angular frequency in radians per

second. When the SAN code is eventually altered to include dynamic loading, the comment sym-

PROGRAM DEVELOPMENT 30

bols can be removed from the FORTRAN write statements and the SAN preprocessor will provide

the required information.

Finally, the design process included FORTRAN programming strategies. Due to the large amounts

of data required, any information that is read from or written to files is done so in an unformatted

form. This is the fastest form of file input/output because no conversions are necessary by the

computer. As will be seen in the next chapter, some modules have extensive memory allocations.

In order to minimize the amount of information written to the files, large arrays are divided up into

smaller arrays for each shaft. In this manner, only the shafts with defined data are written to the

files, thus saving disk space. In some cases, as in the module containing loading information, array

mapping is used. This involves writing different information to the same memory locations at dif-

ferent times. Therefore, various flags are required to determine what information is stored in a given

block of memory. The actual array structure is detailed in the next chapter.

PROGRAM DEVELOPMENT 31

Chapter 5

PROGRAM STRUCTURE

This chapter is dedicated to explaining the program structure. To assist in future revisions, a dis-

cussion of the various data storage techniques used is included as well. This should also aid in the

development of a SAN postprocessor that will need to retrieve information about bearing positions

and orientations from the arrays. Step-by-step program instructions for an example problem are

provided in Appendix E. Also supplied in the appendices are complete listings of the interactive

macro programs, batch FORTRAN programs, and important execution files.

The SAN preprocessor accommodates CADAM 2-D drawings in either inches or millimeters. The

two major parts to the preprocessor are the interactive macro programs and the batch FORTRAN

programs. English unit macro programs are assembled in the CADPARMC table. Likewise, the

metric version programs are assembled in the CADPARMl table. The only difference between

these two tables involves the specification of units. For example, the CADPARMC macro pro-

grams request forces in pounds whereas the CADPARMl programs request forces in newtons.

When a macro program is executed, control is passed over to the batch FORTRAN programs.

The main FORTRAN program is called SUBROCTINE USRPGM (user program). l.:SRPG'.\1

may access both CAD AM and user written subroutines to process interactively generated data from

PROGRA:vISTRUCTURE 32

the macro programs and thus update the data base. Figure 5 illustrates the overall programming

flow.

There are 11 independent macro programs for the user to choose from. Six of these modules are

required in order to successfully generate a SAN data file; the other five are optional. All 11 mod-

ules are shown in Figure 6. Following is a discussion of each macro program and the corresponding

batch FORTRAN programs.

RESET Module

The first required module is the RESET module. Although it may be selected at any time, it is

not really independent from the other modules. Execution of this module causes all of the module

flags to be cleared and written to the flag file. Since the other modules use the module flags as a

guide in processing data, any previously entered information in those modules is ignored from that

point on. This useful "restart" could be catastrophic if the RESET module was accidentally se-

lected. Therefore, an option to abort the reset is provided.

The module flags are contained in a 10 row, 140 column integer array called MODFLG. Since the

SAN preprocessor allows data storage for up to 10 shafts, each row in the array is for an individual

shaft. The first operation that occurs when a macro module is executed is the reading in of the

module flags from the flag file. Since FORTRAN IV has no means to inquire the status of a file,

an abnormal termination of the program will occur if the flag file is not available. This requires that

each new session start by executing the RESET module (which creates the flag file). Once the flag

file has been generated, the user may modify any of the modules, in any order, at any time. Since

the important information from the various modules is written to working files, the user may end

a scope session and continue data entry at a later date. In this last case, the RESET module should

PROGRAM STRUCTURE 33

START

RETRIEVE CADAM 2-0 DRAWING

USE INTERACTIVE MACRO GEOMETRY PORTION OF

SAN PREPROCESSOR

EXECUTE BATCH FORTRAN PORTION OF

SAN PREPROCESSOR AND UPDATE DATA BASE

GENERATE INPUT DATA FILE AND PASS TO SAN FOR BEARING ANALYSIS

AND/OR SELECTION

STOP

Figure S. Overall Program Flow Diagram

PROGRAM STRUCTURE

YES

34

INTERACTIVE MACRO GEOMETRY PORTION OF

SELECT-A-NALYSIS PREPROCESSOR

REQUIRED: RESET MODULE INITIALIZE OPTIONAL: WORK FILES GEARS MODULE

DEFINE SHAFT MODULE GEARS

SET-UP COORDINATE DYNAM MODULE SYSTEM DEFINE LOADS MODULE UNBALANCED

FORCES DEFINE LOAD CONDITIONS INTER MODULE

DEFINE INTER-

MOUNT MODULE POSITIONAL DEFINE CONSTRAINTS

BEARING TEXT MODULE MOUNTING DEFINE

BRGCN MODULE COMMENTS AND PRINT OPTIONS

DEFINE BEARING HELP MODULE CONSTRAINTS

PROGRAM SANDF MODULE INSTRUCTIONS GENERATES

SAN DATA FILE

Figure 6. Independent Interactive Macro Programs

PROGRAM STRUCTURE 35

not be executed on return or else all of the current information would be lost. Figure 7 shows the

RESET module flow diagram. The module flags are discussed on an individual basis in the ap-

propriate paragraphs below.

SHAFT Module

The second required module is the SHAFT module. As described earlier, information for up to

10 shafts may be processed concurrently. Since SAN and the SAN preprocessor run under different

operating systems, the option to specify up to 10 shafts allows the user to generate more than one

data file per session. It is, therefore, necessary to prompt the user for the given shaft number in each

of the other modules.

After specifying the current shaft number, the user is asked to define the shaft coordinate system.

The primary view (PV) zero axial datum point is first defined. This point determines all of the

bearing, gear, and force locations along the shaft. Next, the PV direction point is established. This

point on the shaft axis determines the positive direction vector from the PV zero axial datum point

and must be in the opposite direction of the left end view (LV) zero axial datum point, which is

defined next. The zero axial datum point must be defined in both views due to macro geometry's

handling of coordinate transformations. Therefore, all three of these points must lie on a straight

line; an error message will result if they do not. The last point to be defined is the L V angle refer-

ence point, which defines the L V angle reference vector. Angles whose vectors are clockwise from

this reference vector are positive; otherwise they are negative. A flow diagram for the SHAFT

module is shown in Figure 8.

SUBROUTINE SSHAFT processes all of this information and stores it in RSHAFT, a 10 row

by 20 column real array. The temporary variable NU:\'lSHA (shaft number) determines which row

PROGRAM STRUCTURE 36

RESET MODULE

INITIALIZE WORK FILES BY CLEARING ALL PROGRAM FLAGS

RETURN TO MACRO PROGRAM

Figure 7. RESET Module Flow Diagram

PROGRAM STRUCTURE 37

SHAFT MODULE

DEFINE SHAFT \ I

DEFINE SHAFT COORDINATE SYSTEM

WITH 11 LEFT 11 END VIEW

\ I

DEFINE ANGLE REFERENCE SYSTEM

\/

EXECUTE

Figure 8. SHAFT Module Flow Diagram

PROGRAM STRUCTURE 38

of the array is to be used. Figure 9 depicts the data storage locations for a given shaft. The variables

stored in the array are explained below.

PZEROX

PZEROY

DIRECX

DIRECY

EZEROZ

EZEROY

EANGRZ

EANGRY

XY

N

NHORDS

SHFTXT

UPIFLG

PV zero axial datum point, x coordinate

PV zero axial datum point, y coordinate

PV direction point, x coordinate

PV direction point, y coordinate

LV zero axial datum point, z coordinate

LV zero axial datum point, y coordinate

LV angle reference point, z coordinate

LV angle reference point, y coordinate

x and y coordinates of the note location

number of characters in shaft name

number of REAL*4 words in shaft name

keyed in or default name of shaft

drawing units flag, l=inches and 2=mm

The first column of the MODFLG array is used to specify whether a shaft coordinate system has

been defined or not. For a given shaft, the corresponding flag will be set to 111 if the shaft has been

defined or redefined. Otherwise, it will be cleared at 13. Before control is returned to the macro

program, the contents of RSHAFT are written to the shaft file and those of MODFLG are written

to the module flag file, both in unformatted form.

GEARS Module

The GEARS module is only required when gear loading is specified; otherwise, it is optional. At

any time in the data specification process, gears may be added, redefined, or deleted from the data

base. After the number of the current shaft is entered, the user specifies the gear number. A

PROGRAM STRUCTURE 39

IPZEROXIPZEROYIDIRECXIDIRECYIEZEROZI

2 3 4 5

IEZEROYIEANGRZIEANGRYI XY N

6 7 8 9-10 I I

INWORDSISHFTXTIUPIFLGI

12 13-19 20

Figure 9. RSHAFT Storage Locations

PROGRAwlSTRUCTURE 40

maximum of 20 gears are allowed per shaft and they are numbered consecutively from the '1eft" end

of the shaft to the right. When deleting a gear, no further data input is required.

If a gear is to be added or redefined, the gear center ( on the shaft axis) is then defined. The user

must then select the correct gear mounting - either on the shaft or on the outer race of the bearing.

Specification of the appropriate gear type is required next. The necessary gear parameters, listed in

the order required by the SAN data file, are given below for each of the 11 allowable gear types.

1) SPUR

2) HELICAL

3 ) HERRINGBONE

4 ) STRAIGHT BEVEL

5) SPIRAL BEVEL

6 ) STRAIGHT HORM

7) STRAIGHT

HORM GEAR

8) DOUBLE ENVELOPE

HORM

9) DOUBLE ENVELOPE

HORM GEAR

10 ) HYPOID GEAR

11 ) HYPOID PINION

pitch diameter and pressure angle

pitch diameter, pressure angle, helix angle, and hand

pitch diameter, pressure angle, and helix angle

mean working diameter, pressure angle, apex,

and pitch angle

mean working diameter, pressure angle, spiral angle,

hand, apex, and pitch angle

pitch diameter, pressure angle,

gearing efficiency, lead angle, and hand

pitch diameter, pressure angle,

gearing efficiency, lead angle, and hand

pitch diameter, pressure angle, gearing efficiency,

gearing ratio, hand, and center distance

pitch diameter, pressure angle, gearing efficiency,

gearing ratio, hand, and center distance

mean working diameter, pressure angle, spiral angle,

hand, apex, and root angle of gear

mean working diameter, pressure angle, spiral angle,

hand, apex, and face angle of pinion

Although only the pertinent information for the specified gear is requested in the GEARS module,

macro geometry coding requirements (discussed earlier) usually necessitate a different order of data

input than presented above. For gear types not listed here, the user is instructed to determine the

PROGRAM STRUCTURE 41

gear forces manually and enter them as external loads in the LOADS module. A flow diagram for

the GEARS module is shown in Figure 10.

SUBROUTINE SGEARS reduces the entered data and stores it all in one of 10, identical, 20 row

by 10 column real arrays. Ten 2-dimensional arrays (1 for each shaft) are used instead of one

3-dimensional array so that only shafts with defined gear data will have information written to the

gear file, thus saving disk space. The shaft number (NUMSHA) determines which array the in-

formation will eventually be stored in (every shaft uses the working array RGEARS while in the

main portion of SUBROUTINE SGEARS). The gear number (NUMGRS) determines which row

of the array is to be used. Figure 11 shows the data storage locations for a given gear number in

the working array RGEARS. The variables stored in the array are defined ·below.

GRTYPE

GEARX

GEARY

DIAM

PRSANG

HELANG

HAND

APEX

PITANG

SPIANG

GRGEFF

LEDANG

GRGRAT

CENDIS

ROTANG

FACANG

one of eleven possible gear types

gear center location, x coordinate

gear center location, y coordinate

either pitch diameter or mean working diameter

pressure angle, degrees

helix angle, degrees

l=left hand, 2=right hand

l=apex to left, 2=apex to right

pitch angle, degrees

spiral angle, degrees

gearing efficiency, decimal value

lead angle, degrees

gearing ratio, input over output

center distance

root angle of hypoid gear, degrees

face angle of hypoid pinion, degrees

Certain temporary variables were used to process information while in SCBROUTI~E SGEARS.

These variables are explained below.

PROGRAM STRUCTCRE 42

GEARS MODULE

SPECIFY SHAFT AND GEAR

ADD/REDO DELETE -----A GEAR OR >--~ EXECUTE

DELETE ONE?

ADD/REDO

SPECIFY GEAR TYPE: SPUR, HELICAL, HERRINGBONE, STRAIGHT BEVEL, SPIRAL BEVEL,

STR. WORM, STR. WORM GEAR, DBL ENV WORM, DBL ENV WORM GEAR,

HYPOID GEAR, OR HYPOID PINION

SPECIFY GEAR LOCATION, MOUNTING, DIMENSIONS, AND OTHER PARAMETERS

EXECUTE

Figure 10. GEARS Module Flow Diagram

PROGRAM STRUCTURE 43

IGRTYPEI GEARX GEARY DIAM IPRSANGI

GRTYPE: I 2 3 4 5 6 7 8 9 10 I I

2

HELANG HELANG

APEX SPIANG GRGEFF GRGEFF GRGEFF GRGEFF SPIANG SPIANG

6

Figure 11. RGEARS Storage Locations

PROGRA~ISTRUCTURE

3 4 5

HAND

PITANG HAND APEX PITANG

LEDANG HAND LEDANG HAND GRGRAT HAND CENDIS GRGRAT HAND CENDIS

HAND APEX ROTANG HAND APEX FACANG

7 8 9

44

PORMHD

TOOLEN

PITCHD

VALUE

PINTTH

GERTTH

GRSPIA

GRDIAH

UPI

pitch or mean working diameter flag

tooth length

pitch diameter used to compute mean working diameter

temporary variable used to process gear notes

number of pinion teeth

number of gear teeth

gear spiral angle, degrees

mean working diameter of gear

units per inch of drawing

The second column of the MODFLG array is used to signal if a given shaft has any defined gears

or not. If this column is set (for the given shaft), then columns 3 through 22 specify which gear

numbers have been defined. Column 3 is for gear 1, column 4 is for gear 2, ... , and column 22 is

for gear 20. If a flag is set, then the number 111 is stored in the given location. A clear flag has the

number 13 stored in the slot instead. When SUBROUTINE SGEARS is through processing data

and writing input summary notes to the screen, the gear and module flag arrays are written to their

respective files.

LOADS Module

The third required module is the LOADS module. Due to the independ~nt modular construction

of the program, load conditions may be defined, redefined, or deleted from the data base at any

time. In all cases, the user must specify the shaft number and the load condition number. Only

50 load conditions per shaft are allowed. When a load condition is to be deleted, execution of the

macro program immediately occurs and the following information is not applicable ( except for

updating the loads and module flag files).

PROGRAM STRUCTURE 45

The rotational speed of the shaft ( or housing) and the direction of rotation are then defined. Next,

the user specifies whether the calculated bearing lives are to be in hours or in miles (kilometers) that

a vehicle would travel with the subject bearings. If the user selects hours, then the percent time that

the load condition contributes to the entire load cycle must be keyed in. Otherwise, the user must

key in the percentage of the total distance travelled by the vehicle that the load condition consti-

tutes. In this latter case, the tire rolling radius must also be entered.

With the preliminary loading specifications made, the user is then instructed to enter the actual

loading cases. The six types of loading cases provided and their respective uses are listed below.

1) GEARS TRANSMITTING

POHER

2) LINEAR DISTRIBUTED

LOADS

3) PARABOLIC DISTRIBUTED

LOADS

4) TRANSVERSE PLANE

DISTRIBUTED LOADS

5) MOMENTS AND

COUPLES

6) POINT LOADS

selected gear loading, maximum of four

gear meshes under load per load condition

shaft axis plane radial loads

- includes constant distributed loads

shaft axis plane radial loads

- for higher degree loads than above

resultant forces from distributed loading

like pressure fits or cam loading

torques perpendicular to shaft

axis such as from overhung weights

forces at any orientation in space

- catch all for externally applied loads

In the case of gear loading, the shaft transmitted power or torque is required. If the bearing life is

in terms of distance, the user will also be asked to key in the overall spted reduction ratio to the

wheel for the modeled vehicle. In either case, the user must then specify the gear number, the

power factor, and whether the gear is driven or is a driver. The mesh point angle is also required.

The angle may be keyed in or a point from the screen that represents the angle may be selected

instead. This angle specification option is repeated for all of the other loading cases that require

angles.

PROGRA,vl STRUCTURE 46

The next type of loading case permitted is that of linear distributed loads in the shaft axis plane.

This option first requests the direction of the radial loads for the specified shaft segment (either

towards or away from the shaft). The user must then specify the load segment end-points on the

shaft axis and the force magnitudes at those locations. Finally, the angle of the loads is defined.

Parabolic distributed loads in the shaft axis plane are allowed, too. The specified input is the exact

same as that for the linear case except that an extra force is required to determine the quadratic

shape. This load is requested at the load segment midpoint for equation standardization. In both

of these distributed load cases, a sign change is not permitted. This is because each distributed load

segment is represented as a resultant radial load at the segment's centroid - thus preserving any

moments. Therefore, the load segment must be made small enough not to have a sign change. ·

Distributed loads in the transverse plane may also be specified. Due to the number of variables

involved, eight resultant radial loads and their corresponding angles need to be specified. The shaft

axis location and the direction of the loads must also be defined. If eight sample loads were used

instead of eight resultant loads, the eight radial distances and the degree of the distributed load

segment would also be required. Since a major goal of the SAN preprocessor was to simplify the

coding requirements, resultant load specification was deemed more attractive than that of sample

load. This loading case is useful in specifying cam and friction wheel loading as well as interference

fits because the shaft location and direction must be entered only once.

True moments and couples perpendicular to the shaft axis may be defined. The user first specifies

which type is desired and then selects if it is applied to the shaft or homing. Next, the point of

application is selected in the left end view. The moment arm of the moment or couple is required

next. The user may either key a distance or select a point a given distance from the application

point. The right hand rule direction point is then selected, followed by keying in the torque. Since

the program calculates the thrust loads from the torque and moment arm, any moment arm may

be specified. However, a "ball park" figure is recommended. If a couple is specified, the resulting

PROGRAM STRUCTURE 47

thrust loads need not be in the same plane as the shaft axis. All that the vector operations require

is that the moment or couple be perpendicular to the shaft axis.

If none of the previous loading conditions can adequately represent the actual loading case, then

the loads can be added as point loads (forces at any orientation in space). The user must specify

the point of application and the point at the tail of the vector in both views. Further, the user must

specify whether the force is applied to the shaft or to the housing. Since vector operations are used

to find the force components, the total force magnitude is to be keyed in.

The user must also specify if the force is a pure radial load, a pure thrust load, or a combination

of the two. This specification is not used in the force decomposition, but is used to ensure a

maximum of 10 radial and 10 thrust loads per load condition. Point loads are the only case when

the number of radial and thrust loads can not be determined in the LOADS module. This infor-

mation is based on the coordinate system defined in the SHAFT module. Therefore, the

radial/thrust/combination counter is used to warn the user of exceeding a load limit while still in

the LOADS module. The actual number of these components is calculated in the SANDF module

which is discussed later in this chapter. Incidentally, torque components about the shaft axis are

not opposed by the bearings and are thus ignored.

Point loads may be used to specify gear forces for gears that cannot be defined in the GEARS

module. Dynamic loading (due to unbalanced forces) is not entered in this module, but rather in

the DYNAM module. Since idle load conditions are omitted from the SAN data file, the SAN

preprocessor will not allow the specification of a load condition with no loading defined. The flow

diagram for the LOADS module is shown in Figure 12.

SUBROUTINE SLOADS processes gear loads separately from externally applied loads. This fa-

cilitates SAN's distinction between keywords HISTOGRAM and LOADS. Gear loading data is

stored in 10, identical, 50 row by 26 column real arrays. External loading data is stored in 10,

identical, 50 row by 230 column real arrays. The identical arrays are referenced by the shaft number

PROGRAM STRUCTURE 48

LOADS MODULE

SPECIFY SHAFT AND LOAD CONDITION

ADD/REDO DELETE ___ _

LOAD CONDITION>---'~ EXECUTE OR DELETE

ONE?

ADD/REDO SPECIFY SHAFT OR HOUSING SPEED,

DIRECTION, ANO PERCENT TIME/DISTANCE

PROCESS ANY GEAR LOADING

PROCESS ANY LINEAR DISTRIBUTED LOADS IN SHAFT AXIS PLANE

PROCESS ANY PARABOLIC DISTRIBUTED LOADS IN SHAFT AXIS PLANE

PROCESS DISTRIBUTED LOADS IN TRANSVERSE PLANE

PROCESS MOMENTS AND COUPLES PERPENDICULAR TO SHAFT AXIS

PROCESS ANY POINT LOADS

EXECUTE

Figure 12. LOADS Module Flow Diagram

PROGRAM STRUCTURE 49

(NUMSHA). They are used to reduce disk space requirements. In both cases, the load condition

number (NUMLC) determines which row of the given array is to be used. The name of the

working array for the gear loading cases is RHISTO. Figure 13 shows the data storage locations

for a given load condition number in the working array RHISTO. The variables stored in the array

are defined below.

TIRERR

POWER

SPEED

PTIME

REDRAT

MESHPT

NUMGR

POWFAC

PTOANG

ANGl

ANG2

tire rolling radius or -3 if not applicable

shaft transmitted power

rotational speed, RPM

percent time or distance

speed reduction ratio to wheel

number of gear mesh points transmitting power

gear number in question

power factor, Oto l

point or angle flag, l=point and 2=keyed angle

x coordinate of angle point or keyed angle

y coordinate of angle point or keyed angle

The working array for the externally applied loads is called RLOADS. If each section of the array

was reserved for a specific type of loading information, then the array would need to be twice as

large. However, by sequentially filling the array with the necessary data, both memory and disk

space can be saved. This process is known as array mapping and requires storing counters to know

where a given section of data is located. It is somewhat analogous to the way CADA\1 stores

macro program data in the RDA TA array. Both techniques compress the memory space required,

but both also make it more difficult to retrieve data.

The minimum number of array slots needed is based on SAN external load limits per load condi-

tion and also on the load cases that store the most amount of reduced data. Figure 14 shows the

data storage locations for a given load condition number in the working array RLOADS. The

variables stored in the array are defined below.

PROGRAM STRUCTURE 50

I TIRERR I POWER j SPEED I PTIME I REDRA T I I 2 3 4 5

I ME SHPT INUMGR ( I ) INUMGR ( 2) INUMGR ( 3) INUMGR ( 4) I 6 7 8 9 10

jPOWF AC ( I ) IPOWF AC ( 2) IPOWF AC ( 3) IPOWF AC ( 4) IPTOANG ( I ) I I I I 2 I 3 I 4 I 5

IPTOANG ( 2) IPTOANG ( 3) IPTOANG ( 4) I ANG I ( I ) I ANG I ( 2) I 16 17 18 19 20

I ANG I ( 3) I ANG I ( 4) I ANG2 ( I ) I ANG2 ( 2) I ANG2 ( 3) I 21 22 23 24 25

I ANG2 ( 4) I 26

Figure 13. RHISTO Storage Locations

PROGRAM STRUCTURE 51

ITIRERRI POWER SPEED BLANK NLPOL I 2 3 4 5

NROL NMCL NPL IFUTUREIFUTUREI 6 7 8 9 I 0

LINEAR PARABOLIC 8 COUPLE/ POINT DISTIB DISTIB RESULT MOMENT LOADS

MAG MAG XLOC XLOC YLOC YLOC

ANGOPT ANGOPT XANG XANG YANG YANG

TOAWAY TOAWAY

KEYUSE XLOC YLOC

TOAWAY MAG ( I )

ANGLE/PTX ANGLE/PTY MAG(2)

ANGLE/PTX ANGLE/PTY

MAG(8) ANGLE/PTX ANGLE/PTY

COUPMO LDTYPE SHAHOU SHAHOU PTX ( I ) PTX ( I ) PTY ( I ) PTY ( I ) PTX(2) PTX(2) PTY(2) PTY(2) PTX(3) PTX(3) PTY(3) PTY(3)

MAG PTX(4) PTY(4)

MAG

ACTUAL SLOTS BASED ON llMEMLOCll

Figure 14. RLOADS Storage Locations

PROGRAM STRUCTURE 52

TIRERR

SPEED

PTIHE

BLANK

FUTURE

N

NLPDL

NRDL

NHCL

NPL

HAG

XLOC

VLOC

ANGOPT

XANG

VANG

TOAHAV

KEYUSE

ANGLE

ANGPTX

ANGPTV

COUPMO

SHAHOU

ARMDIS

LDTVPE

PTX(l)

PTV(l)

PTXl2)

PTVl2l

PTX(3)

tire rolling radius or -3 if not applicable

rotational speed, RPM

percent time or distance

not used

for future use

actual counter that is redefined for each load case

imaginary N counter for linear and parabolic loads

imaginary N counter for resultant loads

imaginary N counter for moments and couples

imaginary N counter for point loads

magnitude of a given force, moment, or couple

location of force, x coordinate

location of force, y coordinate

angle or point flag, l=point and 2=angle

x coordinate of angle point or keyed angle

y coordinate of angle point or keyed angle

load direction flag, l=towards shaft and 2=away from shaft

l=all resultant load angles keyed in and 2=all points used

resultant load angle, degrees

x coordinate of angle point

y coordinate of angle point

couple or moment flag, l=couple and 2=moment

load application flag, l=to shaft and 2=to housing

moment arm

load type flag, l=radial, 2=thrust, and 3=combination

moment/couple LV application point, z coordinate

or point load PV application point, x coordinate

moment/couple LV application point, y coordinate

or point load PV application point, y coordinate

moment/couple moment arm or

point load PV tail point, x coordinate

moment/couple moment arm or

point load PV tail point, y coordinate

moment/couple right hand rule LV direc. pt., z coordinate

PROGRAM STRUCTURE 53

PTYl3)

PTXl4)

PTYl4)

or point load LV application point, z coordinate

moment/couple right hand rule LV direc, pt., y coordinate

or point load LV application point, y coordinate

point load LV tail point, z coordinate

point load LY tail point, y coordinate

Several temporary variables used in SUBROUTINE SLOADS are listed below to aid in under-

standing the program logic.

HRSMLS

NRLOAD

NTLOAD

MEMLOC

XC

UPI

bearing life flag, l=time and 2=distance

number of radial loads in a given load condition

number of thrust loads in a given load condition

array mapping memory locator

centroid distance along shaft axis segment

units per inch of drawing

SUBROUTINE SLOADS calls several subroutines to process data. The first one, SUBROUTINE

CAR WHL, checks each load condition to make sure the user has consistantly specified bearing life

in either time or distance, not both. SUBROUTINE FINDXC is used to find the shaft axis lo-

cation of the centroid of a parabolic distributed load segment. It also determines the resultant

magnitude of the parabolic load by integrating the characteristic quadratic equation - the coefficients

of which are found in SUBROUTINE SIMULT using Cramer's Rule. SUBROUTINE DETVAL

is used to find the determinant of a 3X3 matrix.

Most of the module flags are used to signal the status of load conditions. For a given shaft, column

23 of the MODFLG array contains a 111 if there is any gear loading. If a 13 is in the given slot,

no gear loading has been specified for the shaft. Likewise, column 74 is used to flag the existence

of externally applied radial and/or thrust loads. If column 23 is set (equal to 111), then columns

24 to 73 that are set define the existence of corresponding load conditions 1 to 50. Likewise, if

PROGRAM STRUCTt.;RE 54

column 74 is set, then load conditions whose corresponding flags in columns 75 to 124 are set have

externally applied loads specified.

Bearing life flags are contained in columns 125 and 126 of MODFLG. If column 125 is set, then

the user has specified bearing lives to be in hours. If column 126 is set, then bearing lives in terms

of distance have been requested. If both are clear, the user has entered contradictory information.

In this last case, a warning note will have been issued along with the other displayed CADA:\1

summary notes when the data processing is complete. Before control is returned to the macro

program, SUBROUTINE SLOADS writes the respective arrays to the gear loading, externally ap-

plied loading, and module flag files.

DYNAM Module

The second optional module is the DYNAM module. Currently, SAN does not incorporate dy-

namic loading. Therefore, use of this module will have no effect on any subsequent bearing se-

lection or analysis. However, all of the machinery is in place for supplying SAN with the necessary

information. For this reason, discussion of the module is included in this chapter.

A dynamic loading case (which may contain up to 10 dynamic loads) may be defined, redefined,

or deleted for a given shaft at any time. For the last option, only the shaft number is required.

Otherwise, the magnitude and location of each mass are also needed. Figure 15 depicts the

DYNAM module flow diagram.

Due to the small amount of data that needs to be saved, SUBROUTINE SDYNAM uses only one,

10 row by 51 column real array (RDYNAM) to store dynamic loading information. The shaft

number (NUMSHA) determines which row of the array is to be used. The data storage locations

PROGRAM STRUCTURE 55

DYNAM MODULE

DEFINE/ DELETE REDEFINE OR

DELETE DYNAMIC EXECUTE LOADING FOR GIVEN

. SHAFT?

DEFINE/REDEFINE

SPECIFY UNBALANCED MASSES

EXECUTE

Figure 15. DYNAM IVlodule Flow Diagram

PROGRAM STRUCTURE 56

for a given row of the RDYNAM array are shown in Figure 16. The variables used in that array

are explained below.

NULOAD

MASS

PTX(l)

PTYll J

PTX(2)

PTY( 2)

number of unbalanced loads for a given shaft

magnitude of unbalanced mass, slugs or kg

PV location of mass, x coordinate

PV location of mass, y coordinate

LV location of mass, z coordinate or -333 if not

LV location of mass, y coordinate or eccentricity

Column 127 of MODFLG is set to 111 if dynamic loading has been defined (for a given shaft).

Otherwise, it will be clear at 13. The magnitude of the unbalanced masses are then displayed to the

user. SUBROUTINE SDYNAM writes the module flag and dynamic loading arrays to the ap-

propriate files to complete the data processing.

MOUNT Module

The fourth required module, the MOUNT module, defines bearing applications, such as the

mounting used. After specifying the shaft number, the user must select the type of bearing analysis

desired. If a single row analysis is used, then a direct or indirect mounting may be chosen. The

user then selects either a TS or TSF bearing for each support. Finally, the position indicator (ef-

fective center, cone back face, or cup back face) and the corresponding position are defined for each

bearing.

If a two row analysis is used instead, then the allowable mountings include fixing the left bearing,

fixing the right bearing, or leaving both bearings float. A warning note against thrust loads will be

displayed after execution of the MOUNT module if the last mounting type is used. Bearing types

PROGRAM STRUCTURE 57

INULOADI

MASS j PTX ( I ) j PTY ( I ) I PTX ( 2) I PTY ( 2) I

LAST LINE REPEATED UP TO 5 TIMES

ACTUAL SLOTS DEPEND ON llMEMLOCll

Figure 16. RDYNAM Storage Locations

PROGRAM STRUCTURE 58

TDI, TDO, 2TS-DM, and 2TS-IM are acceptable as well as a non-Timken bearing at one of the

supports. The bearing position indicator (center, left cone face, right cone face, left cup face, or

right cup face) and the corresponding position are then defined for each bearing. In compliance

with SAN requirements, the menu structure restricts the bearing position indicator to the bearing

center for 2TS-IM bearings as well as for non-Timken bearings.

No matter which analysis type is chosen, the default application factor of 1 may be replaced by a

more suitable estimate. The user may also define the bearing lubricants and operating temperatures.

The commercial lubricant tradename of the grease or oil and the 40 degree C and 100 degree C

viscosities in centistokes (for both the English and metric versions) are entered for each bearing,

along with the operating temperature. An option to copy the lubrication data from one bearing to

the other is provided, too. All of this information allows SAN to calculate more accurate estimates

of bearing lives. Therefore, all user-specified minimum bearing lives are lubricant-adjusted as well.

Finally, ISO (International Standards Organization) bearings may be considered for selection. The

default option does not consider ISO bearings. The flow diagram of the MOUNT module is shown

in Figure 17.

SUBROUTINE SMOUNT collects all of the MOUNT module data and stores it in a 10 row by

50 column real array called R:vtOUNT. Each row of the array contains information for a given

shaft number. Since each shaft requires a mounting, no option to delete the information is pro-

vided. Rather, the information can be redefined by a later execution of the MOUi':T module.

Figure 18 shows the data storage locations for a given row in RMOUNT. The variables stored in

the array are defined below.

SNGDBL

TYPMNT

APFACT

ISONOT

analysis type, l=single row and 2=two row

mounting type, l=direct, Z=indirect,

3=fixed left, 4=fixed right, and 5=float all

application factor

ISO flag, l=ISO bearings considered

and Z=ISO bearings not considered

PROGRAM STRUCTURE 59

MOUNT MODULE

SPECIFY SHAFT AND TYPE OF BEARING ANALYSIS

SPECIFY BEARING MOUNTING USED

SPECIFY BEARING TYPES

SPECIFY BEARING POSITION INDICATORS AND SHAFT LOCATIONS

SPECIFY BEARING LUBRICANTS, OPERATING TEMPERATURES, AND APPLICATION FACTOR

DETERMINE IF ISO BEARINGS USED

EXECUTE

Figure 17. MOUNT Module Flow Diagram

PROGRAM STRUCTURE 60

ISNGDBLITYPMNTIAPFACTIISONOTIPOSLBGI I 2 3 4 5

IPTL(I) IPTL(2) ILBGTXTITYPLBGIPOSRBGI 6 7 8-13 14 15

IPTR(I) IPTR(2) IRBGTXTITYPRBGILFLAGLI 16 I 7 I 8-23 24 25

I LLUBEN I GROILL I VS40L I vs I OOL I TEMPL I 26-32 33 34 35 36

ILFLAGRIRLUBENIGROILRI VS40R IVSIOORI 37 38-44 45 46 4 7

TEMPR I FUTURE I 48 49-50

Figure 18. RMOUNT Storage Locations

PROGRAM STRUCTURE · 61

POSLBG

POSRBG

PTU l)

PTU2J

PTRll)

PTRl2)

LBGTXT

RBGTXT

TYPLBG

TYPRBG

LFLAGL

LFLAGR

LLUBEN

RLUBEN

GROILL

GROILR

VS40L

VS40R

VSlOOL

VSlOOR

TEMPL

TEMPR

FUTURE

left bearing position indicator, l=effective center,

2=cone back face, 3=cup back face, 4=center, 5=left cone face,

6=right cone face, 7=left cup face, and 8=right cup face

right bearing position indicator, .•.

left bearing position, x coordinate

left bearing position, y coordinate

right bearing position, x coordinate

right bearing position, y coordinate

left bearing name

right bearing name

left bearing type, l=TS, 2=TSF, 3=TDI, 4=TDO,

5=2TS-DM, 6=2TS-IM, and 7=non-Timken bearing

right bearing type,

left bearing lubrication flag, l=lube given and O=none

right bearing lubrication flag, l=lube given and O=none

left bearing lubricant tradename

right bearing lubricant tradename

left bear~ng lubricant base flag, l=grease and 2=oil

right bearing lubricant base flag, l=grease and 2=oil

left bearing lubricant 40 degree C viscosity, est

right bearing lubricant 40 degree C viscosity, est

left bearing lubricant 100 degree C viscosity, est

right bearing lubricant 100 degree C viscosity, est

left bearing operating temperature

right bearing operating temperature

for future use

After the mounting for a shaft has been defined, column 128 of MODFLG is set to 111. If, after

the update, a 13 exists in this slot (for a given row), then the corresponding shaft has no mounting

defined. SUBROUTINE SMOUNT displays a summary of the interactively entered data before

writing the mounting and module flag arrays to their appropriate files.

PROGRAM STRUCTURE 62

BRGCN Module

The fifth required module is the BRGCN module. This module defines all of the bearing constraint

information. It must be executed twice, once for each bearing. Bearing types, positions, and

lubricants are not contained in this module because they concern bearing applications, not bearing

physical requirements. Further, the 5600 byte level of a macro program prohibits their inclusion

here. For these reasons, they are contained in the MOUNT module (discussed previously).

After selecting the BRGCN module, the user must specify the shaft number and the bearing sup-

port (left= A and right= B). The mode of operations is then specified. The user may either analyze

pre-selected bearings or have SAN select the most suitable bearings to be used in the analysis. If

the bearing at the specified support is not a Timken bearing, the module will execute.

The rest of the data specification for Timken bearings is based on the mode of operation. In the

analysis only mode, the user must key in the cone and cup numbers for the given bearing. Alternate

bearing cone, cup, and/or series numbers may be specified for a given support. If bearings are to

be selected, the user must first decide on the constraint parameters to be used. This enables the

menu structure to provide the user with the applicable prompts and to prevent the specification of

any contradictory information. The five constraint groups and the information provided in each

are given below.

1) CONE AND CUP

NUMBERS

2) CONE NUMBER

HITHOUT CUP

3) CUP NUMBER

HITHOUT CONE

PROGRA~1STRUCTURE

specify the bearing cone

and cup numbers only

specify the bearing cone number and

constrain the outer diameter, width,

minimum required life for a load condition,

and/or minimum required weighted average life

specify the bearing cup number and

constrain the bore diameter, width,

63

41 SERIES NUMBER

HITHOUT CUP

OR CONE

5 J DIFFERENT

PARAMETERS

minimum required life for a load condition,

and/or minimum required weighted average life

specify the bearing series number and

constrain the bore diameter, o.d., width,

minimum required life for a load condition,

and/or minimum required weighted average life

specify no bearing part numbers, but

constrain the C(90) value, K-factor value,

bore diameter, outer diameter, width,

minimum required life for a load condition,

and/or minimum required weighted average life

Most constraints request a minimum and a maximum value. The desired ranges for bore diameters,

outer diameters, and bearing widths may either be keyed in or selected from the available geometry.

C(90) and K-factor ranges must be keyed in. Only one minimum required weighted average life

may be defined, but each load condition may have its own minimum life requirement. Specifying

a bearing life for a non-existent load condition will result in an error message in the SA?\DF

module. If the user had designated bearing lives to be in terms of distance (while executing the

LOADS module), then all bearing lives entered in the BRGCN module ,vill be in either miles or

kilometers. Otherwise, they will be in hours. Further, if lubrication information has been defined

for both bearings (while in the MOUNT module), then the specified bearing lives are lubricant-

adjusted. Finally, specified width constraints will be ignored for type 2TS-IM bearings (due to the

variable spacers). The menu structure cannot branch around the width constraint section for

2TS-IM bearings because bearing types are defined in the MOUNT module. This is a minor

drawback of the independent modular construction used in the SAN preprocessor.

If bearings are selected or if alternate bearings are specified, then a summary list needs to be defined.

The user must specify the number of bearings to be examined, the ranking criteria ( either by bearing

price or life), and the load condition life or weighted life that is to be printed with the given bearings.

To simplify the data entry of identical cases, an option to copy the bearing constraint information

PROGRAM STRUCTURE 64

at the left support (A) to the right support (B) is provided. Figure 19 illustrates the BRGCN

module flow diagram.

The bearing constraint information is processed by SUBROUTINE SBRGCN and stored in

RBRGCN, a 10 row by 153 column real array. The shaft number (NUMSHA) determines which

row of the array is to be processed. The first 25 columns of the array are filled with information

common to both modes of operation (analysis only or selection too). The next 64 store data for

bearing A and the last 64 columns are used for bearing B. Since each of the bearings can be proc-

essed under only one mode of operation, array space is conserved by overlaying both types of in-

formation in the 64 column sections. The data storage locations for a given row of RBRGCN are

shown in Figure 20. Below is an explanation of the array variables, some of which are used by both

bearings at different times.

ANASEL

TIMOTH

ALTNOT

CONSTR

BLANK

COPDIF

SUMPRS

LIFPRI

LCNUM

CONE

CUP

ALT

BORMIN

BORMAX

ODMIN

ODMAX

operation mode, !=analysis only and 2=selection too

bearing flag, l=Timken and 2=non-Timken

alternate bearing flag, !=alternates used and 2=none used

- only applicable in analysis without selection

constraint flag, l=cone and cup, 2=cone,

3=cup, 4=series, and 5=different parameters

- only applicable in selecting bearings

not used

bearing copy flag, l=copy, 2=different, and -l=no option

number of bearing pairs in summary list

ranking criteria, l=by life and 2=by price

life load condition number or 51 for weighted average

cone number

cup number

alternate bearing cone, cup, or series number

minimum bore diameter desired

maximum bore diameter desired

minimum outer diameter desired

maximum outer diameter desired

PROGRAM STRUCTURE 65

BRGCN MODULE

SPECIFY SHAFT AND BEARING

SPECIFY BEARING

CONE AND CUP

SPECIFY ANY ALTERNATE BEARINGS

SPECIFY CONE AND/OR CUP OR SERIES

CONSTRAIN OD, BORE, WIDTH,

KFACTOR, AND/OR C(9O)

SPECIFY MINIMUM

BEARING LIVES

DETERMINE CRITERIA TO RANK ACCEPTABLE BEARINGS

EXECUTE

Figure 19. BRGCN Module Flow Diagram

PROGRAM STRUCTURE 66

IA ANASELIB ANASELIA TIMOTHIB TIMOTHIA AL TNOTI I 2 3 4 5

Is AL TNOTIA coNSTRIB coNsTRI BLANK I coPDIF 6 7 8 9 10

I SUMPRS LIFPRI LCNUM I A CONE I B CONE I I 12 13 14-16 17-19

A CUP B CUP 20-22 23-25

FOR PRE-SELECTED BEARINGS: I CNCPSR IA ALT ( I ) j · • • I CNCPSR IA ALT ( 8) I

26 27-29 54 55-57

FOR BEARINGS SELECTION: IA BORMINIA BORMAXI A ODMIN I A OOMAX IA WIDMINI

26 27 28 29 30

IA WIDMAXIA C90MINIA C90MAXIA RKFMINIA RKFMAXj 31 32 33 34 35

IA SERIESjRLIFE ( I ) I · • • jRL IF E ( 5 0 ) j A W LIFE j 36-38 39 88 89

REPEAT THE LAST TWO SECTIONS FOR SLOTS 90-153 (BEARING B)

Figure 20. RBRGCN Storage Locations

PROGRA~ISTRUCTURE 67

HIOMIN

HIDMAX

C90MIN

C90MAX

RKFMIN

RKFMAX

SERIES

RLIFE

HLIFE

minimum width desired

maximum width desired

minimum C(90) value desired

maximum C(90) value desired

minimum K-factor desired

maximum K-factor desired

series number

minimum bearing life for a given NUMLC

minimum weighted life allowed

Several subroutines are used in conjunction with SUBROUTINE SBRGCN to process the given

information. SUBROUTINE ANLYSS sorts through data for pre-::;elected bearings. If bearings

need to be selected, SUBROUTINE SELECT and SUBROUTINE RANGE are both used in the

data reduction. Some of the variables contained in these subroutines are listed below.

NAB

CNCPSR

RMIN

RMAX

bearing flag, l=bearing A and 2=bearing B

bearing part flag, l=cone, 2=cup, and 3=series

generic minimum constraint value

generic maximum constraint value

Column 129 of MODFLG is set ( 111) when bearing A has been defined for a given shaft. Likewise,

column 130 is used for bearing B. If summary list information has been established, then column

131 of the array is set. After the summary notes are processed, the bearing constraint information

and module flags are written to their respective files.

PROGRA~tSTRUCTURE 68

INTER Module

The third optional module is the INTER module. If Timken bearings are being selected, then this

module may be used to define bearing interpositional constraints. Otherwise, it may not be used.

As with the other modules, the INTER module may be executed at any time. Although this

module specifies bearing constraints, it is not contained in the RBRGCN module due to the macro

program 5600 byte limit. However, this separation is acceptable because the user can change the

interpositional constraints without redefining the individual bearing constraints, and vice versa.

Before specifying the shaft number, the user must choose between defining/redefining and deleting

all of the interpositional cases for a given shaft. Since this module is only applicable for selected

Timken bearings, the operation mode and the bearing brand are checked next. If the module has

not executed by this point, interpositional constraint equations may be defined or redefined. The

format of the equations is shown below.

LEFT

BEARING

CONSTRAINT

+/-

RIGHT

BEARING

CONSTRAINT

<

<=

=

>=

>

+/-

NUMERICAL

VALUE

Bearing constraints include cone, cup, and series numbers as well as bearing bore and outer diam-

eters and overall width. A maximum of 5 interpositional constraint equations may be defined per

shaft. If SAN cannot successfully select any suitable bearings from the Timken computer catalog,

the interpositional constraints may be too limiting. Therefore, it is the responsibility of the user to

specify realistic bearing constraints. The flow diagram for the INTER module is shown in Figure

21.

PROGRAM STRUCTURE 69

INTER MODULE

SPECIFY SHAFT

DEFINE/ DELETE REDEFINE OR

DELETE INTERPOSITIONAL

CONSTRAINT CASE?

DEFINE/REDEFINE

DETERMINE CONSTRAINT EQUATIONS WITH BORE, OD, WIDTH, CONE, CUP, AND SERIES

EXECUTE

Figure 21. INTER Module Flow Diagram

PROGRAM STRUCTURE 70

SUBROUTINE SINTER stores the interpositional constraints in a 10 row by 26 column real array

called RINTER. Figure 22 depicts the data storage locations in the array. The variables used in

RINTER are shown below.

NINTCN

ACONST

PLUSMI

BCONST

OPERAN

EVALUE

number of interpositional constraint equations

bearing A constraint

operator flag, l=plus and 2=minus

bearing B constraint

equality flag, l=I<), 2=1<=), 3=1=), 4=1>=l, and 5=1>)

numerical value

If any interpositional constraints have been defined, then column 132 of MODFLG will be set

(contain 111) for the given shaft. A clear flag means that the constraints were deleted or else never

defined at all. RINTER and MODFLG are written to their respective files after a summary of the

constraint equations is displayed on the screen.

TEXT Module

The fourth optional module is the TEXT module. With this module, comment lines may be added

to (or deleted from) the SAN data file. Also, the default print options may be overridden. This last

capability allows the exclusion of nonessential SAN output. Further, detailed information may be

viewed that concerns specific Timken bearings.

After defining the shaft number, the user must decide on whether to process comments, define print

options, or do both. If comments are to be processed, the user is first asked to a<ld or redo any

comments for the given shaft. Then, the user may delete any existing comments, including com-

ments just entered above. All comments are referenced by a unique comment number. If print

PROGRAM STRUCTURE 71

ININTCNI

IACONSTIPLUSMIIBCONSTIOPERANIEVALUEI

LAST LINE REPEATED UP TO 5 TIMES

ACTUAL SLOTS DEPEND ON '' MEMLOC"

Figure 22. Rll\TER Storage Locations

PROGRAM STRUCTURE 72

options are to be changed, the user should select the appropriate print options from the supplied

single menu choices. If a default option is desired, the user should select the accompanying /END/

menu instead. Figure 23 illustrates the Text module flow diagram.

All text and print option information is processed in SUBROUTINE STEXTS and stored in

RTEXT, a 10 row by 97 column real array. Each row corresponds to a particular shaft. Up to five,

72 character comments may be defined per shaft. Since each comment has its own comment

number, individual comments may be added or deleted without effecting the other comments.

Figure 24 shows the storage locations for a row in R TEXT. The variables used in the subroutine

are considered below.

COMTXT

NPRl

NPR2

NPR3

NPR4

NPRS

NPR6

NPR7

COMPOS

NUMCOM

NSTART

UPI

72 character comment array (reused)

l=suppress printing constraint section and 2=use default

l=suppress printing data file and 2=use default

l=suppress printing gear data section and 2=use default

l=suppress printing gear loads and 2=use default

l=suppress printing extra loads and 2=use default

l=print out bearing running torque and 2=use default

l=print out Timken bearing data tables and 2=use default

l=comments only, 2=print options only, and 3=both

comment number

memory locator for comment storage

units per inch of drawing

For a given row in ;'vlODFLG, column 133 is used to store the print opt:on flag. If it is set, then

at least one print option has been changed. If it is clear (contains a 13), then all of the default print

options are to be used. Column 134 is set when the particular shaft has comments associated with

it. In this case, columns 135 through 139 are used to signal the existance of comments 1 through

5, respectively. As with the other modules, RTEXT and :VlODFLG are written to their corre-

sponding files after a summary of the entered data is displayed on the screen.

PROGRAM STRUCTURE 73

TEXT MODULE

SPECIFY SHAFT

YES

NO ADD/REDO 1---E='---~OR DELETE ANY

DEFINE/ REDEFINE PRINT OPTIONS OR USE

DEFAULT ONES?

DEFINE/REDEFINE

COMMENTS

DEFAULT

SUPPRESS PRINTING CONSTRAINT SECTION DATA FILE, GEAR DATA, GEAR LOADS,

ANO/OR EXTRA LOADS AND MOMENTS

PRINT OUT BEARING RUNNING TORQUE AND/OR BEARING DATA TABLES

EXECUTE

Figure 23. TEXT Module Flow Diagram

PROGRAM STRUCTURE 74

NPRI NPR2 NPR3 NPR4 NPR5

2 3 4 5

NPR6 NPR7 lcoMTXT I lcoMTXT 2lcoMTXT 31 6 7 8-25 26-43 44-6 I

ICOMTXT 4ICOMTXT 51 62-79 80-97

Figure 24. RTEXT Storage Locations

PROGRAM STRUCTURE 75

SANDF Module

The sixth required module is the SANDF module. With this module, the user generates the

SELECT-A-NALYSIS data file for the desired shaft(s). After specifying the unit number of the

output file, the user must choose the mode of operation required. If only pre-selected bearings are

used, then up to five previously defined shafts may be analyzed within a given data file. However,

if bearing selection is also needed, then only one shaft number may be entered for processing.

Finally, up to four title lines may be keyed in for the data file heading. The flow diagram for the

SANDF module is shown in Figure 25.

After the SANDF module is executed, control is eventually passed to SUBROUTINE SSANDF.

Once the module flag file contents are read into the MODFLG array, SUBROUTINE SSANDF

is able to determine which files contain the needed information. The MODFLG array is also used

to organize the information into a useable form. If any specified shaft is not completely defined (i.e.

incorrect or missing loading, mounting, bearing, etc. information), then the SAN data file will not

be completely generated and an error message citing the problem will be displayed. In this case,

the user can correct the specific problem without redefining the entire data base - an added benefit

of the SAN preprocessor's independent modular construction.

Once all of the SAN input data files have been successfully generated, the user may stop execution

of the SAN preprocessor and pass the desired files to SAN for processing. If bearings are to be

selected, SAN will either provide the user with a list of suitable bearings or else the limiting con-

straint that prevents such a list. If it is acceptable to relax the given constraint, the user may return

to the SAN preprocessor and make the necessary modifications to the data base. The RESET

module should not be selected because all of the stored information would then be lost, thus re-

quiring the user to start from the beginning again. After generating a new data file, the user can

return to SAN and procede as normal.

PROGRAM STRUCTURE 76

SANDF MODULE

SPECIFY SELECT-A-NALYSIS INPUT FILE NUMBER

\/ SPECIFY RUN TYPE:

ANALYSIS OF PRE-SELECTED BEARINGS OR SELECTION TOO

\ I

SPECIFY SHAFT NUMBER(S)

\ I

SPECIFY DATA FILE TITLE

\/

EXECUTE

Figure 25. SANDF :\lodule Flow Diagram

PROGRAM STRUCTURE 77

All of the variable names used in SUBROUTINE SSANDF are very similar, if not identical, to the

corresponding variable names in the other subroutines. Further, none of the variables used in this

subroutine are stored for later use. They are only used to produce the SAN input data file. For

these reasons, an explanation of each variable in SUBROUTINE SSANDF is omitted. An ex-

ample SAN input data file is provided in Appendix F and the corresponding output data is listed

in Appendix G.

CADA1l1 Routines

As discussed earlier, several CADAM routines are used in conjunction with the user-written sub-

routines. The most important of these is SUBROUTINE CADET (CADAM Element Transfer),

which processes geometry selected from the screen. CADET calls SUBROUTINE RESOLV

which returns the coordinates of points, line endpoints, and circle centers. RESOLV is also used

to return circle radii. The geometrical information is passed via the /SIMBA/ common block.

Appendix C shows the modified portions of SUBROUTINE RESOLV.

Summary notes are written to the screen with SUBROUTINE CADNS. CADNS is a CADCD

(CADAM Model to Card) routine that allows small character text strings to be displayed from a

batch mode. CADNS requires the coordinates of the note location, the number of characters in

the note, and a text variable or literal string. In order to write data to the screen, SUBROUTINE

CONVT is used. CONVT is a CADCD utility routine that converts floating point numbers to

character data. CONVT requires an input floating point number (one REAL*4 word), the number

of decimal places desired in the output, and a 16 element output text array. Finally, MSGGEN, a

CADAM subroutine, is used to display text strings on the message line after a macro program is

executed. The message is replaced each time MSGGEN is called. Therefore, it should be called

PROGRA~1STRUCTLRE 78

only once during the macro program. These three routines are imbedded in the batch FORTRAN

subroutines supplied in Appendix B.

HELP Module

The HELP module is the last macro program contained in the SAN preprocessor. Although op-

tional, its use is highly recommended. After selecting the module, the user must select the 1;11enu

/HELP/. At this point, a CADAM DETAIL page of overall program instructions will replace the

drawing on the screen. After reading the general information, the user may advance through the

DETAIL pages of specific information for each module by selecting the /NEXT PAGE/ menu.

Each of these module help pages is also provided in the corresponding macro program. For ex-

ample, selecting the /HELP/ menu at any time while in the SHAFT module will show program

instructions for the SHAFT module only. Since help pages are not executable, they have no effect

on the data specification. To exit from a help page, the /RETURN/ menu may be selected. The

flow diagram of the HELP module is shown in Figure 26. Figures 27 through 37 show the various

help pages in the order they appear in the HELP module.

PROGRAM STRUCTURE 79

HELP MODULE

SELECTIVELY VIEW THE HELP MENUS FROM EACH

OF THE DIFFERENT INTERACTIVE MODULES

RETURN TO MAIN MENU

Figure 26. HELP :\Jodule Flow Diagram

PROGRAM STRUCTURE 80

THIS IS THE MAIN /HELP/ TABLE FOR THE SELECT-A-NALYSIS PREPROCESSOR.

EACH MODULE (MACRO PROGRAM) HAS ITS OWN /HELP/ TABLE DEFINED TO SUPPLEMENT THE PROGRAM PROMPTS AND MENU CHOICES.

ALL OF THESE /HELP/ TABLES MAY BE VIEWED IN THIS MODULE BY REPEATEDLY SELECTING THE /NEXT PAGE/ MENU ITEM PROVIDED AT THE BOTTOM OF THE SCREEN.

TO STOP VIEWING A /HELP/ TABLE, SELECT THE /RETURN/ OR /MENU I/ MENU.

SINCE /HELP/ TABLES ARE NON-EXECUTABLE, SELECTION OF ONE WILL NOT ALTER THE DATA SPECIFICATION IN ANY MANNER.

TO SUCCESSFULLY GENERATE A SELECT-A-NALYSIS DATA FILE, THE FOLLOWING MODULES ARE REQUIRED: RESET, SHAFT, LOADS, MOUNT, BRGCN, AND SANDF.

THE OTHER MODULES ARE OPTIONAL, BUT THE GEAR MODULE IS REQUIRED IF GEAR LOADING HAS BEEN DEFINED IN THE LOADS MODULE.

ALL OF THE MODULES ARE INDEPENDENT (EXCEPT FOR THE RESET MODULE) AND MAY BE EXECUTED AT ANY TIME, IN ANY ORDER. AND AS OFTEN AS DESIRED.

IN ALL OF THE MODULES. THE /END/ MENU MAY ONLY BE SELECTED WHEN A SINGLE MENU CHOICE IS OFFERED OR WHEN A PROMPT

SPECIFICALLY STATES THAT IT MAY BE USED TO STOP A LOOP.

WHILE INSIDE A MACRO PROGRAM, ONLY FUNCTION KEY WINDOW IS ACCESSABLE.

IF A MACRO PROGRAM IS LEFT BEFORE BEING EXECUTED (E.G. TO ACCESS ANOTHER FUNCTION KEY), ANY DATA VALUES DEFINED BEFORE LEAVING WILL BE LOST AND THE MACRO PROGRAM WILL HAVE TO BE STARTED OVER AGAIN.

CADPARMC USES UNITS OF INCHES AND CADPARMI USES MILLIMETERS. BOTH REQUIRE THE SHAFT LENGTH IN THE CURRENT VIEW AT ALL TIMES.

Figure 27. HELP Module Main /HELP/ Table

PROGRAM STRlJCTURE 81

THIS IS THE /HELP/ TABLE FOR THE RESET MODULE.

THIS MODULE IS USED TO RESET ALL OF THE MODULE FLAGS.

IF THIS IS NOT THE FIRST MODULE EXECUTED, THE PROGRAM WILL TERMINATE WHEN ANOTHER MODULE IS ATTEMPTED.

THIS MODULE CAN BE USED AS A RESTART FUNCTION BY DISCARDING ALL DATA PREVIOUSLY DEFINED IN OTHER MODULES.

AN OPTION TO ABORT THE RESET IS PROVIDED IN CASE THIS MODULE IS ACCIDENTALLY SELECTED AFTER IMPORTANT DATA HAS BEEN ENTERED.

ALL OF THE OTHER MODULES ARE INDEPENDENT OF EACH OTHER AND MAY BE SELECTED AT ANY TIME, IN ANY ORDER, AND AS OFTEN AS DESIRED.

SINCE THE IMPORTANT INFORMATION OF THE VARIOUS MODULES IS WRITTEN TO WORKING FILES, A SCOPE SESSION MAY BE ENDED AND

THE DATA ENTRY CONTINUED AT A LATER DATE. IN THIS CASE, THE RESET MODULE SHOULD NOT BE SELECTED UPON RETURN.

CADPARMC MACRO PROGRAMS REQUIRE DRAWING UNITS OF INCHES AND CADPARMI MACRO PROGRAMS REQUIRE DRAWING UNITS OF MILLIMETERS.

IN BOTH CASES, THE SHAFT LENGTH SHOULD REMAIN IN THE CURRENT VIEW.

Figure 28. RESET Module /HELP/ Table

PROGRAM STRUCTURE 82

THIS IS THE /HELP/ TABLE FOR THE SHAFT MODULE.

THIS MODULE IS USED TO ESTABLISH THE COORDINATE SYSTEM FOR EACH SHAFT. THE SHAFTS MAY BE AT ANY ORIENTATION, BUT REQUIRE A "LEFT" ENO VIEW.

THE TWO ZERO POINTS AND THE DIRECTION POINT MUST ALL BE COLLINEAR.

UP TO 10 SHAFTS MAY BE PROCESSED CONCURRENTLY, SO IT IS IMPORTANT TO SPECIFY THE CORRECT SHAFT NUMBER IN EACH MODULE.

THE SHAFT LENGTH MUST ALWAYS BE IN THE CURRENT VIEW. AN EXAMPLE SHOWING THE REQUIRED DATA POINTS IS GIVEN BELOW.

NEGATIVE ANGLES

POSITIVE ANGLES

ENO VIEW ANGLE REFERENCE POINT

LEFT ENO VIEW OF SHAFT

Figure 29. SHAFT Module /HELP/ Table

PROGRAM STRUCTURE

PRIMARY VIEW OF SHAFT LENGTH

,PRIMARY VIEW ZERO AXIAL DATUM POINT

) POSITIVE X DIRECTION

PRIMARY ,, VIEW DIRECTION

POINT

83

THIS IS THE /HELP/ TABLE FOR THE GEARS MODULE.

THIS MODULE IS USED TO DEFINE GEARS AND THEIR ACCOMPANYING PARAMETERS. IT IS ONLY REQUIRED IF GEAR LOADING IS DEFINED IN THE LOADS MODULE.

UP TO 20 GEARS ARE ALLOWED PER SHAFT, BUT ONLY 4 GEAR MESH POINTS MAY BE TRANSMITTING POWER DURING A GIVEN LOAD CONDITION.

THE GEAR NUMBERING SHOULD BE CONSECUTIVE FROM THE SHAFT'S "LEFT" END.

GEARS MAY BE ADDED TO, REPLACED IN, OR DELETED FROM THE DATA BASE AT ANYTIME. THE ALLOWABLE GEAR TYPES AND THEIR PARAMETERS ARE SHOWN BELOW.

I- SPUR 2- HELICAL 3- HERRINGBONE 4- STRAIGHT BEVEL 5- SPIRAL BEVEL 6- STRAIGHT WORM 7- STRAIGHT WORM

GEAR 8- DOUBLE ENVELOPE

WORM 9- DOUBLE ENVELOPE

WORM GEAR I 0- HYPOID GEAR I I - HYPOID PINION

PITCH DIAMETER AND PRESSURE ANGLE PITCH DIAM., PRESSURE AND HELIX ANGLES, AND HANO PITCH DIAMETER AND PRESSURE AND HELIX ANGLES MEAN WORKING DIAMETER, PRESSURE ANGLE, APEX,

AND PITCH ANGLE MEAN WORKING DIAMETER, PRESSURE ANGLE, APEX,

PITCH AND SPIRAL ANGLES, AND HAND PITCH DIAMETER, PRESSURE AND LEAD ANGLES, HAND,

AND GEARING EFFICIENCY PITCH DIAMETER, PRESSURE AND LEAD ANGLES, HAND,

AND GEARING EFFICIENCY PITCH DIAMETER, PRESSURE ANGLE, GEARING RATIO,

GEARING EFFICIENCY, HAND, AND CENTER DISTANCE PITCH DIAMETER, PRESSURE ANGLE, GEARING RATIO,

GEARING EFFICIENCY, HAND, AND CENTER DISTANCE MEAN WORKING DIAM., PRESSURE AND SPIRAL ANGLES,

HAND, APEX, AND ROOT ANGLE OF GEAR MEAN WORKING DIAM., PRESSURE AND SPIRAL ANGLES,

HAND, APEX, AND FACE ANGLE OF PINION

IF THE DESIRED GEAR TYPE IS NOT IN THIS LIST, THE GEAR FORCES FOR THAT GEAR MUST BE DETERMINED MANUALLY AND ENTERED

IN THE LOADS MODULE AS POINT LOADS.

Figure 30. GEARS Module /HELP/ Table

PROGRAM STRUCTURE 84

THIS IS THE /HELP/ TABLE FOR THE LOADS MODULE.

THIS MODULE IS USED TO DEFINE LOAD CONDITIONS. BOTH GEAR LOADS AND EXTERNALLY APPLIED FORCES MAY BE SPECIFIED. ALL GEAR LOADS

MUST REFERENCE GEARS DEFINED IN THE GEARS MODULE. UP TO 50 LOAD CONDITIONS MAY BE DEFINED PER SHAFT. EACH MAY BE

ADDED TO, REPLACED IN, OR DELETED FROM THE DATA BASE AT ANY TIME. SELECT-A-NALYSIS ONLY ALLOWS 10 RADIAL AND/OR 10 THRUST LOAD COMPONENTS PER LOAD CONDITION (EXCLUDING GEAR LOADS). ALSO, THE BEARING LIFE MUST

EITHER BE IN TERMS OF TIME OR DISTANCE FOR A GIVEN SHAFT, NOT BOTH.

THE SIX LOADING TYPES ALLOWED ARE LISTED BELOW: I- GEARS TRANSMITTING SELECTED GEAR LOADING; MAXIMUM OF 4 GEAR

POWER MESH POINTS TRANSMITTING POWER AT A TIME 2- LINEAR DISTRIBUTED SHAFT AXIS PLANE RADIAL LOADS; NO SIGN

LOADS CHANGE IS ALLOWED ON A LOAD SEGMENT THIS LOAD TYPE REQUIRES I RADIAL LOAD

J- PARABOLIC DISTRIB. SHAFT AXIS PLANE RADIAL LOADS; NO SIGN LOADS CHANGE IS ALLOWED ON A LOAD SEGMENT

THIS LOAD TYPE REQUIRES I RADIAL LOAD 4- TRANSVERSE PLANE RESULTANT FORCES FROM DISTRIBUTED LOADING;

DISTRIBUTED LOADS USEFUL FOR SPECIFYING CAM LOADS, ETC. THIS LOAD TYPE REQUIRES 8 RADIAL LOADS

5- MOMENTS AND COUPLES TORQUES PERPENDICULAR TO SHAFT AXIS EACH MOMENT REQUIRES I THRUST LOAD EACH COUPLE REQUIRES 2 THRUST LOADS

6- POINT LOADS FORCES AT ANY ORIENTATION IN SPACE THIS LOAD TYPE REQUIRES I RADIAL ANO/OR

I THRUST LOAD (DEPENDING ON CASE)

DYNAMIC LOADS ARE NOT ENTERED HERE, BUT RATHER IN THE DYNAM MODULE.

Figure 31. LOADS Module /HELP/ Table

PROGRAM STRUCTURE 85

THIS IS THE /HELP/ TABLE FOR THE DYNAM MODULE.

THIS MODULE IS USED TO DEFINE DYNAMIC LOADS. ALTHOUGH NOT CURRENTLY INSTALLED ON SELECT-A-NALYSIS, FUTURE INCLUSION IS EXPECTED, SO THE

NECESSARY VALUES ARE WRITTEN TO THE DATA FILE IN COMMENT FORM.

EACH SHAFT MAY HAVE UP TO 10 DYNAMIC LOADS DEFINED. THEY COLLECTIVELY FORM A DYNAMIC LOAD CASE WHICH MAY BE ADDED TO,

REPLACED IN, OR DELETED FROM THE DATA BASE AT ANY TIME.

ALL OTHER TYPES OF LOADING ARE DEFINED IN THE LOADS MODULE.

Figure 32. DYNAM Module /HELP/ Table

PROGRAM STRUCTURE 86

THIS IS THE /HELP/ TABLE FOR THE MOUNT MODULE.

THIS MODULE IS USED TO DEFINE BEARING APPLICATIONS, SUCH AS THE TYPE OF MOUNTING USED. ALSO SPECIFIED IN THIS MODULE

ARE THE BEARING TYPES, POSITION INDICATORS, AND SHAFT LOCATIONS.

OPTIONS TO INCLUDE ISO BEARINGS, LUBRICATION INFORMATION, AND AN APPLICATION FACTOR ARE ALSO PROVIDED.

OPTIONS ALLOWED WITH A SINGLE ROW TAPERED ROLLER BEARING ANALYSIS ARE: MOUNTING TYPES: BEARING TYPES: BEARING POSITION

INDICATORS:

DIRECT AND INDIRECT TIMKEN TS AND TSF BEARINGS EFFECTIVE CENTER(EFF CTR), CONE BACK FACE(CONEBF),

AND CUP BACK(CUPBF) OPTIONS ALLOWED WITH A DOUBLE ROW TAPERED ROLLER BEARING ANALYSIS ARE:

MOUNTING TYPES: LEFT BEARING FIXED, RIGHT BEARING FIXED, AND NEITHER BEARING FIXED (FLOAT ALL)

BEARING TYPES: TIMKEN TDI, TOO, 2TS-DM, AND 2TS-IM BEARINGS (ONE SUPPORT MAY HAVE A NON-TIMKEN BEARING)

BEARING POSITION BEARING CENTER(CTR), LEFT CONE FACE(LCONF), INDICATORS: RIGHT CONE FACE(RCONF), LEFT CUP FACE(LCUPF),

AND RIGHT CUP FACE(RCUP)

NOTE: NO THRUST LOADS ARE ALLOWED WITH A FLOAT ALL MOUNTING. NOTE: THE POSITION INDICATOR MUST BE THE BEARING CENTER FOR BEARING

TYPES 2TS-IM (TWO TS BEARINGS, INDIRECTLY MOUNTED WITH A VARIABLE WIDTH SPACER) AND NON-TIMKEN BEARINGS.

NOTE: IF LUBRICATION INFORMATION IS ENTERED FOR BOTH BEARINGS, THEN THE SPECIFIED BEARING LIVES WILL BE LUBRICANT-ADJUSTED.

NOTE: THE DEFAULT APPLICATION FACTOR IS ONE.

Figure 33. MOLNT Module /HELP/ Table

PROGRAi\l STRUCTURE 87

THIS IS THE /HELP/ TABLE FOR THE BRGCN MODULE.

THIS MODULE IS USED TO DEFINE THE INDIVIDUAL BEARING CONSTRAINTS AND MUST BE EXECUTED ONCE FOR EACH BEARING. BEARING APPLICATIONS

ARE DEFINED IN THE MOUNT MODULE AND BEARING INTERPOSITIONAL CONSTRAINTS ARE DEFINED IN THE INTER MODULE.

IF BOTH BEARINGS ARE PRESELECTED AND ONLY AN ANALYSIS IS REQUIRED, THEN THE CONE AND CUP NUMBERS OF EACH BEARING MUST BE SPECIFIED.

ALTERNATE BEARING PARTS FOR UP TO 4 BEARINGS MAY ALSO BE SPECIFIED.

IF ONE OR BOTH BEARINGS NEEDS TO BE SELECTED, THEN SPECIFIC BEARING CONSTRAINTS MAY BE DEFINED. THERE ARE 5 OPTIONS TO SPECIFY THIS DATA:

I- CONE AND CUP SPECIFY THE BEARING CONE AND CUP NUMBERS ONLY NUMBERS

2- CONE NUMBER WITHOUT CUP

3- CUP NUMBER WITHOUT CONE

4- SERIES NUMBER WITHOUT CUP OR CONE

5- DIFFERENT PARAMETERS

SPECIFY THE BEARING CONE NUMBER AND CONSTRAIN THE OUTER DIAMETER AND THE BEARING WIDTH

SPECIFY THE BEARING CUP NUMBER AND CONSTRAIN THE BORE DIAMETER AND THE BEARING WIDTH

SPECIFY THE BEARING SERIES NUMBER AND CONSTRAIN BORE DIAMETER, OUTER DIAMETER, AND OVERALL BEARING WIDTH

SPECIFY NO BEARING PART NUMBERS, BUT CONSTRAIN THE C(9O) AND K-FACTOR VALUES, BORE AND OUTER DIAMETERS, AND OVERALL BEARING WIDTH

NOTE: BEARING LIFE CONSTRAINTS MAY BE ADDED FOR OPTIONS 2 THROUGH 5 NOTE: IF BEARING LUBRICATION INFORMATION IS DEFINED IN THE MOUNT

MODULE, SPECIFIED BEARING LIVES ARE LUBRICANT-ADJUSTED NOTE: FOR BEARING LIFE DEFINED IN DISTANCE (IN THE LOADS MODULE),

THE LIFE VALUE ENTERED WILL BE IN MILES OR KILOMETERS NOTE: ONLY THE LAST SUMMARY INFORMATION SPECIFIED WILL BE USED NOTE: EXACT CONSTRAINTS ARE DEFINED WITH EQUAL MIN. AND MAX. VALUES NOTE: WIDTH VALUES ARE IGNORED FOR TYPE 2TS-IM BEARINGS NOTE: SUMMARY LIST LIFE VALUES ARE USED FOR RANKING CRITERIA NOTE: BEARING CONSTRAINT RANGES SHOULD BE MADE AS SMALL AS POSSIBLE

Figure 34. BRGC;',1 Module /HELP/ Table

PROGRAM STRUCTURE 88

THIS IS THE /HELP/ TABLE FOR THE INTER MODULE

THIS MODULE IS USED TO DEFINE A SET OF UP TO 5 INTERPOSITIONAL CONSTRAINT EQUATIONS PER SHAFT. THE SET OF EQUATIONS MAY BE

ADDED TO, REPLACED IN, OR DELETED FROM THE DATA BASE AT ANY TIME. TWO TIMKEN BEARINGS NEED TO BE SELECTED FOR USE OF THIS MODULE.

THE FORMAT FOR AN INTERPOSITIONAL CONSTRAINT EQUATION IS SHOWN BELOW.

LEFT BEARING +/-

CONSTRAINT RIGHT

BEARING CONSTRAINT

< <= >= >

NUMERICAL VALUE

ALLOWABLE BEARING CONSTRAINTS INCLUDE CONE, CUP, AND SERIES NUMBERS AS WELL AS BEARING BORE AND OUTER DIAMETERS AND OVERALL WIDTH.

INTERPOSITIONAL CONSTRAINTS SHOULD BE MADE AS LIMITING AS POSSIBLE.

Figure 35. INTER Module /HELP/ Table

PROGRAM STRUCTURE 89

THIS IS THE /HELP/ TABLE FOR THE TEXT MODULE.

THIS MODULE IS USED TO DEFINE COMMENTS AND OVERRIDE DEFAULT PRINT OPTIONS. UP TO 5 INDEPENDENT COMMENTS MAY BE DEFINED PER SHAFT AND THESE MAY BE ADDED TO, REPLACED IN, OR DELETED FROM THE DATA BASE AT ANY TIME.

THE FOLLOWING PRINT OPTIONS ARE AVAILABLE:

I- SUPPRESS PRINTING CONSTRAINT SECTION 2- SUPPRESS PRINTING DATA FILE 3- SUPPRESS PRINTING GEAR DATA SECTION 4- SUPPRESS PRINTING GEAR LOADS 5- SUPPRESS PRINTING EXTRA LOADS 6- PRINT OUT BEARING RUNNING TORQUE 7- PRINT OUT TIMKEN BEARING DATA TABLES

FOR THOSE OPTIONS NOT SPECIFIED, THE DEFAULT OPTIONS ARE USED.

Figure 36. TEXT Module /HELP/ Table

PROGRAM STRUCTURE 90

THIS IS THE /HELP/ TABLE FOR THE SANDF MODULE.

THIS MODULE IS USED TO GENERATE THE SELECT-A-NALYSIS DATA FILE. IF BEARINGS ARE BEING SELECTED, THEN ONLY I SHAFT IS ALLOWED PER FILE.

IF ONLY BEARING ANALYSIS IS REQUIRED, THEN UP TO 5 SHAFTS WITH THE SAME SYSTEM OF UNITS MAY BE CONCATENATED IN A FILE.

THIS MODULE READS IN ALL OF THE INFORMATION FROM THE OTHER MODULES AND REDUCES IT TO THE STANDARD SELECT-A-NALYSIS (SAN) DATA FILE FORMAT.

IF A DATA SPECIFICATION ERROR IS DETECTED WHILE THE SAN DATA FILE IS BEING WRITTEN, AN INSTRUCTION TO CORRECT THE PROBLEM WILL BE DISPLAYED.

THE MODULE MAY BE RE-EXECUTED ONCE THE PARTICULAR PROBLEM IS FIXED.

WHEN THE MESSAGE: "SELECT-A-NALYSIS FILE GENERATED" APPEARS ON THE MESSAGE LINE, THE DATA SPECIFICATION PROCESS IS COMPLETE.

TO PASS THE DESIRED DATA FILE(S) TO SELECT-A-NALYSIS, THE SAN PREPROCESSOR MUST BE TERMINATED. HOWEVER, THE WORK FILES SHOULD NOT BE ERASED IN CASE SAN REQUIRES ADDITIONAL MODIFICATIONS TO THE DATA FILE.

IN THE LATTER CASE, THE SAN PREPROCESSOR MAY BE RE-ENTERED AND ONLY THE SPECIFIC PROBLEMS NEED BE ADDRESSED. THE RESET MODULE SHOULD

NOT BE USED OR ELSE ALL OF THE PREVIOUSLY DEFINED DATA WOULD BE LOST.

FOR COMPLETE INSTRUCTIONS ON HOW TO CREATE A SAN DATA FILE, THE SELECT-A-NALYSIS INSTRUCTION MANUAL SHOULD BE CONSULTED.

Figure 37. SAl'iDF i\fodulc /HELP/ Table

PROGRAM STRUCTURE 91

Chapter 6

CONCLUSIONS AND RECOMMENDATIONS

The computer-graphics geometry interface developed has proven successful in reducing the com-

plexity and ambiguity of selecting anti-friction bearings. Specifically, Timken tapered roller bearings

are easily selected by combining the computing power of CADAM with that of

SELECT-A-NALYSIS (SAN). This bridge is the first step in the integration of Timken bearing

design with a major CAD/CAM system.

The independent modular format of the SAN preprocessor permits the user to concentrate on one

particular area of data specification at a time. The interactive macro programs may be completed

in any order and as often as desired. Further, only the required modules need to be used; optional

information may be omitted entirely. Throughout, the program supplies the user with a clear menu

structure, warning/error messages, and summary information of data just entered. Supplemental

program instructions are also provided in /HELP/ tables.

During the writing of this thesis, a new version of SELECT-A-NALYSIS has been released. Al-

though the old version will still be accessible for several months, the SAN preprocessor developed

should be converted over to the new format. However, current macro program coding limitations

CONCLUSIONS AND RECO:YIMENDATIONS 92

will complicate the inclusion of the new Timken applications. Therefore, revisions to the SA~

preprocessor should be postponed until CADAM releases its new interface, IUE (Interactive User

Exits). IUE's will provide greater flexibility in writing interactive applications software by opening

the CADAM architecture to the user.

Future work should also expand the program to handle 3-D CAD AM models. Although 3-D wire

frames are more difficult to visualize, they allow for solid model generation and other important

engineering configurations. Extensions should also be made to other brands of software. This

would accommodate a broader range of Timken customers.

Finally, a postprocessor that draws the selected Timken bearings onto the CADAM model should

be developed. This program would need to retrieve bearing positional and orientational informa-

tion stored in the SAN preprocessor work files. Therefore, compatibility between the two

processors is paramount. For this reason, the program listings of the SAN preprocessor have been

supplied in the appendices.

CONCLUSIONS Ai\D RECOMMENDATIONS 93

REFERENCES

1. Reti, Ladislao, The Unknown Leonardo, McGraw-Hill Book Company (UK) Limited, l'vlaidenhead, England, 1974.

2. Ehrlich, Roger, and Batt, Suzanne, C., "Computers in Bearing Design," Power Transmission Design, Vol. 27, No. 4, April, 1985, pp. 15-17.

3. Gupta, Pradeep K., Advanced Dynamics of Rolling Elements, Springer-Verlag, New York, 1984.

4. McCutchan, Ben 0., Jr., "Selecting Ball Bearings Off-the-Shelf," Machine Design, Vol. 57, No. 6, March 21, 1985, pp. 134-139.

5. Orthwein, William C., "Selecting Ball and Roller Bearings," Computers In Mechanical Engi-neering, Vol. 4, No. 5, March, 1986, pp. 48-56.

6. Orthwein, William C., "Calculating the Bearing Life for Opposed Mounts and Unsteady Loads," Computers In Mechanical Engineering, Vol. 4, No. 6, May, 1986, pp. 56-68.

7. Sibley, L.B., and Privies, J., "Computer Analysis of Rolling Bearings," ASiv1E Computer-Aided Design of Bearings and Seals, New York, 1976.

8. Privies, J., "Computerized Analysis and Design Methodology for Rolling Element Bearing Load Support Systems," ASME Bearing Design - Historical Aspects, Present Technology, and Future Problems, New York, 1980.

9. Strong, Stephen R., and Fahrni, Glenn R., Jr., "Selecting Bearings Without a Catalog," SAE Paper No. 851510, Bearing Technology: Analysis, Development, and Testing, 1985, pp. 1-10.

10. Timken, SELECT-A-NALYS/S Instruction lvfanual, The Timken Company, Canton, Ohio, 1984.

11. Timken, Bearing Selection Handbook, The Timken Company, Canton, Ohio, 1983.

12. Osborne, Bernal, "All Their Eggs in One Basket," Industrial Lubrication and Tribology, Vol. 37, No. 6, November/December, 1985, pp. 212-214.

13. John Deere, Fundamentals of Service: Bearings and Seals, 4th ed., Deere & Company, :V1oline, Illinois, 1985.

14. ANSI/AFB:V1A, Anti-Friction Bearing Maintenance Manual, Anti-Friction Bearing Manufac-turers Association, Arlington, Virginia.

15. CADAM, CADAM - Geometry Interface Installation Guide, Program ?\o. 5668-842, Docu-ment No. SH20-6899-0, 1st ed., CADAM;IB:Vl, December, 1985.

REFERENCES 94

16. CADAM, CADAM - Geometry Interface User Reference Manual, Program No. 5668-842, Document No. SH20-6499-0, 1st ed., CADAM/IB:v1, January, 1985.

17. CADAM, CADAM - Interactive Design and Design/Manufacturing Installation Guide, Pro-gram No. 5668-840, Document No. SH20-6897-0, 1st ed., CADAM/IBM, December, 1985.

18. CADAM, CADAM - General Information Manual, Program Nos. 5796-ATA, ATB, ATC, ATD, ATE, ATF, ATG, ATH, ATJ, AWR, AWT, 1st ed., CADAM/IBM, January, 1982.

19. Timken, Bearing Dimensional Data Tape Procedure for Drawing Bearing Assemblies, The Timken Company, Canton, Ohio, 1984.

20. Timken, Electronic Bearing Drawing Manual Installation Guide, The Timken Company, Canton, Ohio, 1984.

21. Timken, Electronic Bearing Drawing Manual Users Guide, The Timken Company, Canton, Ohio, 1984.

22. Timken, Electronic Bearing Drawing Manual Model Tape Position Listing, The Timken Com-pany, Canton, Ohio, 1984.

23. Timken, Electronic Bearing Drawing Master Part Number Listing, The Timken Company, Canton, Ohio, 1984.

24. Tausworthe, R.C., Standardized Development of Computer Software ( Part I), Prentice-Hall, Inc., 1977.

25. McCracken, Daniel D., A Guide To FORTRAN IV Programming, 2nd ed., John Wiley & Sons, New York, 1972.

26. Mortenson, Michael E., Geometric Modeling, John Wiley & Sons, New York, 1985.

REFERE~CES 95

* * * * * * * * * * * * * * *

Appendix A MACRO PROGRAM LISTINGS

A CADAH INTERFACE FOR THE COMPUTER-AIDED SELECTION OF TIMKEN TAPERED ROLLER BEARINGS

AUTHOR: DINO CIABATTONI

ADVISOR: DR, ARVID MYKLEBUST

VIRGINIA POLYTECHNIC INSTITUTE AND STATE UNIVERSITY BLACKSBURG, VIRGINIA - 24061

*******ll'll'll'll'lEIE!l'lEX!t******************************************lEIE!l'll'll'lE-**** * * This is the CADPARMC table of DIALOGUE mode, interactive macro * programs which uses English units. The macro assembly routines * allow menu branching, geometry selects, and data input. The * CADAM source code that precedes this table is not shown for * the sake of brevity. After each macro program is executed, * a 500 element REAL*4 array IRDATAJ of interactively defined * data is passed to the user-written FORTRAN subroutine IUSRPGMJ. * USRPGM processes RDATA in a batch mode and then returns control * to the macro program last executed. At this point, RDATA is * reinitialized to all zeros and the user may then run the next * macro program desired. * * The RESET module clears the working flags. * The SHAFT module defines the coordinate systems. * The GEARS module defines the given gears. * The LOADS module defines load conditions. * The DYNAH module defines dynamic loads. * The MOUNT module defines bearing applications. * The BRGCN module defines bearing constraints. * The INTER module defines bearing interpositional constraints. * The TEXT module defines comments and print options. * The SANDF module generates a SELECT-A-NALYSIS data file. * The HELP module provides supplemental program instructions. * * * * * *

MACRO PROGRAM LISTINGS 96

* * 5796-ATJ COPYRIGHT CAOAM INC. 1977,1985 * BURBANK, CALIFORNIA 91504 MACRGEOM TITLE 'MACRO NAME ANO PARAMETER DEFINITION TABLE'

CAOPARMC CSECT

SPACE

The CADAM source code has been omitted here ••.

MACNAME RESET,-4.0,4.5 MACNAME SHAFT,-4.0,3.5 MACNAME GEARS,-4.0,2.5

MACNAME LOADS,-4.0,1.5 MACNAME DYNAM,-4.0,0.5

MACNAME MOUNT,-4.0,-0.5

MACNAME BRGCN,-4.0,-1.5

MACNAME INTER,-4.0,-2.5 MACNAME TEXT,-4.0,-3.5

MACNAME SANDF,-4.0,-4.5

MACNAME HELP,3.0,-4.5 MACNMEND MACHDR ( 'MACRO PROGRAM ',-4.0,4.5), *

I 'PARAMETER DEFINITIONS' ,-3.0,4.0), *

I' ',0,801,FILL='?',STAR=YES

MACDEF RESET,IRl,900,0,4,1.0l, *

IR2,900,0,4,ll, *

(R3,901,0,1,0J, *

IR4,1007,0,38,'/ START NEH DATA FILE/ ABORT RESET /l'l,*

IHM1,1014,011,8,SYMTB099l, *

IXR,1009,1,1,ll MACHDR ( 'MACRO PROGRAM ',-4.0,3.5), *

I 'PARAMETER DEFINITIONS' ,-3.0,4.0l, *

I' ',0,80),FILL='?' ,STAR=YES MACDEF SHAFT,IRl,900,0,4,1.0l, *

IR2,900,0,4,2J, *

IR3,901,0,1,0J, *

IR4,1002,0,18,'SHAFT NUMBER: 1-10' J, *

(R5,1007,1,40,'/DEFINE PV ZERO POINT/ USE LINE MID-PT/l'*

), *

(Sl,1008,5,1,2), *

IR6,l003,2,25,'PV ZERO AXIAL DATUM POINT' l, *

(S2,1009,0,1,1), *

(Sl,1006,0,1,0J, *

I B, 1000, 1, 25, 'LINE FOR PV ZERO MIDPOINT' J, *

(R7,900,0,5,-3.14J, *

(S2,1006,0,l,O), *

IR8,1007,1,42,'/DEFINE PV DIRECTION PT/ USE LINE MID-PT/* ) I ) J lf ( S3, 1008 ,8, 1, 2 l, *

IR9,1003,2,24,'PV AXIAL DIRECTION POINT' J, *

1S4,1009,0,1,ll, *

IS3,1006,0,l,Ol, *

IB,1000,1,30,'LINE FOR PV DIRECTION MIDPOINT' l, *

IR10,900,0,5,-3.14J, *

IS4,1006,0,l,OJ, *

IRll,1007,1,40,'/SELECT LV ZERO POINT/ USE CIRCLE CENTER*

/) I l,

(S5,1008,11,1,2l,

MACRO PROGRAM LISTINGS 97

IA,1000,1,25,'LV ZERO AXIAL DATUM POINT'), * IS6,1009,0,1,1J, * ISS,1006,0,1,0), * (C,1000,1,31,'CIRCLE FOR LV ZERO CENTER POINT' J, * IS6,1006,0,1,0J, * IA,1000,1,24,'LV ANGLE REFERENCE POINT'), * IR14,1003,2,23,'LOCATION FOR SHAFT NOTE'>, * IR16,1007,1,34,'/KEY SHAFT NAME/USE DEFAULT NAME/)'), * IS7,1008,16,l,2J, * IH,1012,0,35,'KEY SHAFT NAME: l-25 CAPITAL CHARS,' J, * IS7,1006,0,1,0), * IHM2,1014,012,8,SYMTB099), * IXS,1009,1,l,lJ

MACHDR I 'MACRO PROGRAM ',-4.0,2.5), * I 'PARAMETER DEFINITIONS' ,-3.0,4.0J, * (' ',0,80),FILL='?',STAR=YES

MACDEF GEARS,IRl,900,0,l,lJ, * IR2,900,0,l,3), * IR3,901,0,1,0l, * IR4,1007,1,31,'/ADD OR REDO GEAR/DELETE GEAR/)'), * IRS,1002,0,13,'SHAFT #: 1-10' J, * IR6,1002,0,28,'GEAR #: 1-20 FROM "LEFT" END'), * IG41,1008,4,1,ll, * IXG,1009,1,1,1), * IG41,l006,0,1,0J, * IR7,1007,1,38,'/DEF GEAR CENTER LOC/USE LINE MID-PT/)'),* (622,1008,7,1,2), * IRS,1003,2,29,'GEAR PV CENTER LOCATION POINT'), * IG23,l009,0,1,1J, * IG22,1006,0,l,Ol, * 18,1000,1,27,'PV LINE FOR GEAR LOC MIO-PT'), * IR9,900,0,2,-3J, * IG23,1006,0,l,O), * IRl0,1007,0,35,'/GEAR ON SHAFT/ ON BRG OUTER RACE/)' J, * IRll,1007,0,33,'/SPUR/HELICAL/HERRINGBONE/OTHER/)' J, * IG43,1008,11,1,4), * IG44,1008,ll,1,1J, * IR12,1002,0,17, 'HELIX ANGLE - DEG' J, * (645,1008,11,1,3), * IR13,1007,0,23,'/LEFT HAND/RIGHT HAND/)'), * IG46,1009,0,1,ll, * IG43,1006,0,l,Ol, * IR12,1007,0,32,'/STR. BEVEL/SPIRAL BEVEL/OTHER/)'), * IG47,1008,12,1,3l, * IR13,1007,0,3S,'/KEY MEAN HORKING DIAM/COMPUTE IT/)' l, * (R14,1007,0,29,'/APEX TO LEFT/APEX TO RIGHT/)'>, * (RlS,1002,0,17, 'PITCH ANGLE - DEG'>, * (G48,1008,12,1,1), * IR16,1002,0,18,'SPIRAL ANGLE - DEG'>, * IR17,1007,0,23,'/LEFT HAND/RIGHT HAND/)'), * IG49,1009,0,1,1J, * IG47,1006,0,l,O>, * IR13,1007,0,33,'/STR, HORM/STR. HORM GEAR/OTHER/;'), * IG50,1008,13,1,3l, * IR14,1007,0,44,'/KEY GEARING EFFICIENCY/USE TIMKEN DEFAU* LT/J' ), * IG35,1008,14,l,2J, * IR15,1002,0,25,'GEARING EFFICIENCY: 0-1.0'J, * IG36,1009,0,1,ll, * IG35,1006,0,1,0l, * IRlS,900,0,2,-3), * IG36,1006,0,1,0J, * (R16,1002,0,16, 'LEAD ANGLE - DEG' J, * IR17,1007,0,23,'/LEFT HAND/RIGHT HAND/)'), * IG51,1009,0,1,1J, * IG50,1006,0,1,0J, * IR14,1007,0,43,'/DBL. ENV. HORM/DBL. ENV. HORM GEAR/OTHE*

MACRO PROGRAM LISTINGS 98

R/J'J, * (G5Z,l008,l4,l,3J, * (Rl5,lOOZ,O,Z5,'GEARING EFFICIENCY: 0-l.O'J, * (Rl6,lOOZ,0,13,'GEARING RATIO'), * (Rl7,l007,0,Z3,'/LEFT HAND/RIGHT HAND/J'J, * ( Rl8,100Z,O,l5, 'CENTER DISTANCE' 1, * IG53,1009,0,1,l), * IG5Z,l006,0,l,OJ, * IR15,l007,0,34,'/HYPOID GEAR/HYPOID PINION/OTHER/)'), * (G54,l008,15,l,31, * IRl6,lOOZ,O,l8,'SPIRAL ANGLE - DEG' J, * (Rl7,l007,0,Z3,'/LEFT HAND/RIGHT HAND/)'), * IR18,1007,0,Z9,'/APEX TO LEFT/APEX TO RIGHT/)'), * (G33,l008,15,l,Z1, * (Rl9,lOOZ,0,31,'ROOT ANGLE OF HYPOID GEAR - DEG'), * (G34,1009,0,1,11, * (G33,1006,0,1,0J, * (Rl9,100Z,0,30,'HYPOID PINION FACE ANGLE - DEG'J, * IG34,1006,0,l,OJ, * IRZ0,1007,0,35,'/KEY HEAN HORKING DIAM/COMPUTE IT/J'J, * (G37,1008,Z0,1,ZJ, * IR2l,lOOZ,0,17,'MEAN HORKING DIAM' J, * (G55,1009,0,l,1J, * (G37,l006,0,l,OJ, * (G56,l008,15,l,lJ, * (RZl,1002,0,17,'# OF PINION TEETH' J, * (R2Z,1002,0,15,'# OF GEAR TEETH' J, * IR23,l002,0,30,'HYPOID GEAR SPIRAL ANGLE - DEG' J, * (R24,1007,0,39,'/KEY GEAR HEAN HORKING DIAM/COMPUTE IT/)* I ) > IG57,1008,24,1,2J, IR25,lOOZ,0,25,'MEAN HORKING DIAM OF GEAR'), (G58,1009,0,1,1), (G57,l006,0,1,0J, IRZ5,1002,0,31,'ROOT ANGLE OF HYPOID GEAR - DEG'J, IG56,1006,0,1,0J, (RA,lOOZ,0,24,'HYPOID GEAR TOOTH LENGTH'), (RB,lOOZ,0,22,'HYPOID GEAR PITCH DIAM'), IG59,1009,0,1,1), IG48,l006,0,1,0J, IG49,1006,0,1,0J, IG60,1008,13,1,ZJ, (RC,1002,0,17,'MEAN HORKING DIAM'J, IG6l,1009,0,1,1J, IG60,1006,0,l,OJ, (RD,1002,0,18,'BEVEL TOOTH LENGTH'), IG44,1006,0,l,OJ, IG45,1006,0,l,OJ, (G46,1006,0,l,OJ, (G51,1006,0,l,O), (G53,1006,0,l,OJ, IRE,lOOZ,0,10,'PITCH DIAM'), IGSS,1006,0,1,0J, (G58,1006,0,l,OJ, IG59,1006,0,l,OJ, IG61,l006,0,l,OJ, IRF,1002,0,ZO,'PRESSURE ANGLE - DEG'), IRG,1003,Z,18,'LOC FOR GEAR NOTES'), IG54,1006,0,l,OJ, I Ht13,1014,0l3,8,SYMTB099), IXG,1009,1,1,1)

HACHDR I 'MACRO PROGRAM ',-4.0,1.5), ( 'PARAMETER DEFINITIONS' ,-3.0,4.0 J, (' ',0,80),FILL='?',STAR=YES

MACDEF LOADS,IRl,900,0,1,lJ, I RZ,900 ,0 ,1,4 J, IR3,901,0,1,0J,

MACRO PROGRAM LISTINGS 99

IR4,1007,l,38,'/ADD OR REDO A LOAD COND./DELETE ONE/J'l,* IRS,1002,0,13,'SHAFT #: 1-lO'J, * (R6,1002,0,22, 'LOAD CONDITION#: 1-50' J, * (Ll,1008,4,1,21, * I R7,1002,0,21, 'ROTATIONAL SPEED: RPM' l, * (R8,1007,0,33,'/LV CH ROTATION/LY CCH ROTATION/)'), * IR9,1007,0,45,'/BEARING LIFE IN HOURS/BEARNG LIFE IN MIL* ES/) I), * IRl0,1002,0,32,'PERCENT TIME OR DISTANCE: 0-100%' J, * IL5,1008,9,1,2l, * (Rll,900,0,2,-31, * IL6,1009,0,l,l), * (L5,1006,0,l,Ol, * (Rll,1002,0,27,'TIRE ROLLING RADIUS: INCHES'), * IL6,l006,0,l,Ol, * (Rl2,1007,0,27,'/GEARS TRANSMITTING POHER/l'l, * (Rl3,1007,0,27,'/INPUT POHER/INPUT TORQUE/)'), * IL3,l008,13,l,2l, * (Rl4,l002,0,10,'HORSEPOHER'), * IL4,1009,0,l,ll, * (L3,1006,0,1,0l, * IR14,l002,0,14, 'TORQ,UE: FT-LBF' l, * IL4,1006,0,l,0), * IL2,1008,9,l,1J, * IRlS,1002,0,24,'REDUCTION RATIO TO HHEEL'J, * IL2,l006,0,l,OJ, * (RFG,1002,0,12,'GEAR#: 1-20' l, * ILLl,1006,0,l,Ol, * IRAl,1007,0,31,'/GEAR DRIVEN/GEAR IS A DRIVER/)'), * IRA2,1002,0,17,'POHER FACTOR: 0-l'l, * IA,1000,-1,34,'LV MESH PT REF. OR KEY MESH PT ANG'), * IRAS,1002,0,31,'NEXT GEAR# -MAX OF 4- OR /END/'), * ILLl,1010,-111,1,0l, * ILEl,1004,0,1,0l, * ILL2,1006,0,1,0), * IRBl,1007,0,43,'/LINEAR DISTRIB LOADS IN SHAFT AXIS PLAN* E/) I ) , * (RB2,1007,0,37,'/LOADS TOHARD SHAFT/AHAY FROM SHAFT/)'),* IRB3,l003,2,33,'LOAD SEGMENT END-PT ON SHAFT AXIS'), * IRBS,1002,0,14,'MAGNITUDE: LBF'l, * IRB6,1003,2,39,'0THER LOAD SEGMENT END-PT ON SHAFT AXIS'* ), * IRB8,1002,0,14,'MAGNITUDE: LBF' l, * IA,1000,-1,34,'LV LOAD PT REF. OR KEY LOAD PT ANG'), * ILL2,1010,-222,l,Ol, * ILE2,1004,0,l,Ol, * ILL3,1006,0,1,0), * IRCl,1007,0,45,'/PARABOLIC DISTRIB LOADS IN SHFT AXIS PL* ANE/l'l, * IRC2,1007,0,37,'/LOADS TOWARD SHAFT/AHAV FROM SHAFT/)'),* IRC3,1003,2,33,'LOAD SEGMENT ENO-PT ON SHAFT AXIS'), * ( RCS,1002,0 1 14, 'MAGNITUDE: LBF' ) , * (RC6,1003,2,29,'0THER LOAD SEGMENT END-PT ON SHAFT AXIS'* ), * IRC8,l002,0,14,'MAGNITUDE: LBF' >, * IRC9,1002,0,32,'MAGNITUDE AT SEGMENT MID-PT: LBF' l, * IA,1000,-1,34,'LV LOAD PT REF. OR KEY LOAD PT ANG'>, * I LL3,1010,-333,l,O l, * ILE3,1004,0,l,Ol, * IREl,1007,0,45,'/RESULTANT DISTRIB LOADS IN TRANSVERS PL* ANE/) I), * IREZ,1003,2,28,'SHAFT AXIS LOCATION OF LOADS' l, * IRE4,l007,0,37,'/LOADS TOHARD SHAFT/AHAY FROM SHAFT/)' l,* IRES,1007,0,39,'/KEV ALL 8 LOAD ANGLES/USE ALL LV PTS/l'* ), * IA,1000,-1,34,'lST OF 8 LV REF PTS OR KEY 1ST ANG' l, * IRE7,1002,0,14,'RESULTANT: LBF' l, *

MACRO PROGRAM LISTINGS 100

(LLS,1006,0,1,0J, * IA,1000,-1,35,'NEXT OF 8 LV REF PTS, KEY ANG,/END/' l, * (RE9,l002,0,14,'RESULTANT: LBF' J, * ILLS,1010,-555,1,0J, * (LE5,1004,0,1,0J, * (LL6,1006,0,l,OJ, * (RFl,1007,0,44,'/COUPLE OR MOMENT PERPENDIC. TO SHAFT AX* IS/l'l, * IRF2,1007,0,16,'/COUPLE/MOMENT/l' l, * (RF,1007,0,38,'/APPLIED TO SHAFT/APPLIED TO HOUSING/)' l,* (A,1000,1,20, 'LV APPLICATION POINT' l, * IA,1000,-1,33,'LV MOMENT ARM PT OR KEY IN INCHES' l, * IA,1000,1,34,'R.HAND RULE LV DIRECTION VECTOR PT' l, * (RF7,1002,0,17,'MAGNITUDE: FT-LBF' J, * ILL6,l010,-666,1,0J, * ( LE6,1004,0,1,0J, * (RGl, 1007, 0, 14, '/POINT LOADS/ l' J, * (LL7,1006,0,1,0J, * IRG,1007,0,38,'/PURE RADIAL/PURE THRUST/COMSINATION/J'l,* (RJ,1007,0,38,'/APPLIED TO SHAFT/APPLIED TO HOUSING/)' l,* (A,1000,1,17,'PV APPLICATION PT' J, * (A,1000,1,10,'PV TAIL PT' l, * IA,1000,1,17,'LV APPLICATION PT' l, * IA,1000,1,10,'LV TAIL PT'l, * CRG8,1002,0,20,'TOTAL MAGNITUDE: LBF'J, * IRG9, 1007 ,0, 14, '/POINT LOADS/)' ) , * ILL7,1010,-777,l,OJ, * ILE7,1004,0,1,0J, * (Ril,1003,2,33,'LOCATION FOR LOAD CONDITION NOTES' l, * ILl,1006,0,1,0J, * (HM4,1014,014,8,SYMTB099l, * (XL,1009,1,1,ll

MACHDR I 'MACRO PROGRAM ',-4.0,0.5), * ( 'PARAMETER DEFINITIONS',-3.0,4.0J, * I' ',0,80),FILL='?',STAR=YES

MACDEF DYNAM,(Rl,900,0,4,1.0J, * IRZ,900,0,4,SJ, * IR3,90l,0,1,0J, * IR4,1007,1,41,'/REDEFINE UNBALANCED FORCES/DELETE CASE/)* I J, * (R5,1002,0,13,'SHAFT #: 1-10' J, * IDl,1008,4,1,2), * IR6,1002,0,21,'MASS MAGNITUDE: SLUGS' J, * tDLl,1006,0,1,0l, * (A,1000,1,30,'PV LOCATION OF UNBALANCED MASS'), * IA,1000,-1,34,'LV LOC OR KEY ECCENTRICITY: INCHES' J, * IRA,1002,0,35,'NEXT MASS -MAX OF 10- OR SEL. /END/' J, * (DLl,1010,-111,1,0J, * (DEl,1004,0,1,0l, * IRB,1003,2,30,'LOCATION FOR DYNAMIC LOAD NOTE'), * (Dl,1006,0,1,0l, * IHN5,1014,015,8,SYMTB099J, * IXD,1009,1,1,ll

MACHDR I 'MACRO PROGRAM ',-4.0,-0.5), * I 'PARAMETER DEFINITIONS' ,-3.0,4.0J, * I' ',0,80J,FILL='?' ,STAR=YES

MACDEF MOUNT,IRl,900,0,4,l.OJ, * IR2,900,0,4,6l, * (R3,901,0,1,0J, * IR4,1002,0,13,'SHAFT #: 1-10' J, * (R,1007,0,39,'/SINGLE ROH BEARINGS/THO ROH BEARINGS/)' l,* IR6,1007,1,33,'/APPLICATION FACTOR/USE DEFAULT/)' J, * lMl,1008,6,1,2), * IR7,1002,0,18, 'APPLICATION FACTOR' J, * IMZ,1009,0,1,ll, * lMl,1006,0,1,0l, * (R7,900,0,2,-3J, *

MACRO PROGRAM LISTINGS IOI

I M2, 1006, 0, 1, 0 ) , *

IM3,1008,5,1,2), *

IRS,1007,0,36,'/DIRECT MOUNTING/INDIRECT MOUNTING/)'), *

IR9,1007,0,37,'/LEFT BRG TYPE TS/LEFT BRG TYPE TSF/)'), *

IR,1007,0,39,'/RIGHT BRG TYPE TS/RIGHT BRG TYPE TSF/)' l,*

(Rll,1007,0,42,'/LEFT BRG POSITION: EFF CTR/CONEBF/CUPBF*

/)'), *

IAB,1000,1,35,'PV PT OR LINE FOR LEFT BRG POSITION' J, *

IR13,1007,0,43,'/RIGHT BRG POSITION: EFF CTR/CONEBF/CUPB*

F/)'), *

IAB,1000,1,34,'PV PT, LINE FOR RIGHT BRG POSITION' J, *

IM4,1009,0,1,1), *

IM3,1006,0,1,0), *

IR8,1007,0,45,'/MOUNTING: FIXED LEFT/FIXED RIGHT/FLOAT A*

LL/ J' J, *

IR9,1007,0,44,'/LEFT BRG TYPE TDI/TD0/2TS-DH/2TS-IM/OTHE*

R/J'), *

IRl0,1007,0,45,'/RIGHT BRG TYPE TDI/TD0/2TS-DH/2TS-IM/OT*

HER/J'l, *

IM5,1008,9,1,4J, *

IM6,1008,9,1,5J, *

(Rll,1007,0,44,'/LEFT BRG PCS: CTR/LCONF/RCONF/LCUPF/RCU*

PF/)' J, *

IAB,1000,1,35,'PV PT OR LINE FOR LEFT BRG POSITION' J, *

CH7,1009,0,ljll, *

IM5,1006,0,1,0l, *

I M6, 1006, 0, 1, 0 J , *

IAB,1000,1,33,'PV PT OR LINE FOR LEFT BRG CENTER'), *

IM7,1006,0,1,0J, *

(M8,1008,10,l,4J, *

IM9,l008,10,1,5l, *

IRA,1007,0,45,'/RIGHT BRG POS: CTR/LCONF/RCONF/LCUPF/RCU*

PF/J' J, *

IAB,1000,1,34,'PV PT, LINE FOR RIGHT BRG POSITION'), *

IMl0,1009,0,1,lJ, *

IM8,1006,0,1,0J, *

IM9,1006,0,1,0l, *

IAB,1000,1,34,'PV PT OR LINE FOR RIGHT BRG CENTER'), *

IMl0,1006,0,1,0), *

IM4,1006,0,l,OJ, *

IH,1012,0,32,'KEY LEFT BEARING NAME: 1-23 CHAR'), *

IH,1012,0,33,'KEY RIGHT BEARING NAME: 1-23 CHAR' l, *

(RD,1007,0,45,'/LEFT BEARING LUBE AND OPER TEMP BOTH KNO*

l'lN/)'), *

tR,900,0,2,-lJ, *

IH,1012,0,29,'KEY LUBE TRADENAME: 1-25 CHAR'), *

I RE ,1007 ,0 ,13, '/GREASE/OIL/ J' J, *

IRF,1002,0,18,'40C VISCOSITY: CST' J, *

IRG,1002,0,19,'lOOC VISCOSITY: CST' J, *

IRH,1002,0,24, 'OPERATING TEMPERATURE: F' J, *

IMEl,1004,0,l,Ol, *

IRI,1007,0,41,'/RIGHT BEARING LUBE AND TEMP BOTH KNOl'lNll*

I l, *

IR,900,0,2,-2J, *

IRJ,1007,0,44,'/LUBE ANO TEMP DIFFERENT FROM LEFT SEARIN*

G/) I J' *

IR,900,0,3,-lOJ, *

IH,1012,0,29,'KEY LUBE TRAOENAME: 1-25 CHAR' J, *

IRK,1007,0,13,'/GREASE/OIL/J' J, *

IRL,1002,0,18,'40C VISCOSITY: CST' l, *

(RM,1002,0,19,'lOOC VISCOSITY: CST' J, *

IRN,1002,0,24,'0PERATING TEMPERATURE: F' l, *

IME2,1004,0,1,0l, *

(R0,1007,0,37,'/ISO BRGS CONSIDERED/NOT CONSIDERED/)'), *

IRP,1003,2,26,'LOCATION FOR MOUNTING NOTE'}, *

IHM6,1014,016,8,SYMTB099J, *

IXM,1009,1,1,11

MACRO PROGRAM LISTINGS 102

MACHDR ( 'MACRO PROGRAM ',-4.0,-1.5), ( 'PARAMETER DEFINITIONS',-3.0,4.0), (' ',0,80),FILL='?',STAR=YES

MACDEF BRGCN,IRl,900,0,4,1.0), * IR2,900,0,1,7), * IR3,901,0,l,O), * IR4,1002,0,13, 'SHAFT #: 1-10' ), * IR5,1007,0,35,'/LEFT BEARING: A/RIGHT BEARING: B/)' ), * IR6,1007,0,43,'/BOTH BRGS: ANALYSIS ONLY/A OR 8 SELECTED* /)' ), * IR7,1007,0,23,'/TIMKEN BEARING/OTHER/)'), * (Bl,1008,7,1,2), * IB2,1008,5,1,2), * IR8,900,0,2,-l), * IB3,1009,0,1,l), * IB2,1006,0,1,0J, * IR8,l007,0,41,'/COPY BRGS USED AT A/USE DIFFERENT BRGS/)* I ) ) * 183,1006,0,l,O,l, * IB4,1008,6,1,2l, * (833,1008,8,1,1), * IR9,1007,0,31,'/ALTERNATE BRGS USED/NOT USED/)'), * IH,1012,0,13, 'KEY IN CONE #' J", * tH,1012,0,12,'KEY IN CUP#'), * (834,1008,9,1,2), * (BLl,1006,0,1,0,l, * IR,1007,0,34,'/ALTERNATE CONE #/CUP #/SERIES#/)'), * t H,1012,0,23, 'KEY IN PART OR SERIES #' ), * IR,1007,0,43,'/ANOTHER BRG PART, MAX OF 4 COMPLETE BRGS/* ) I ) , * IBLl,1010,-111,1,0), * tBEl,1004,0,1,0l, * (899,1009,0,1,1), * (B4,1006,0,1,0J, * IB6,1008,8,1,ll, * tR9,1007,0,45,'/SPECIFY CONE+CUP/CONE/CUP/SERIES/DIFF CN* ST/)' J, * (B7,1008,9,1,5J, * IB9,1008,9,1,4J, * IB10,1008,9,1,3J, * IH,1012,0,13, 'KEY IN CONE #' J, * IBll,1008,9,l,2l, * IBl0,1006,0,1,0J, * IH,1012,0,12,'KEY IN CUP#' J, * IB12,1008,9,1,ll, * 1 B 7, 1006, O, 1, 0), * IB9,1006,0,1,0J, * IR,1007,0,25,'/DEFINE BORE CONSTRAINT/)' J, * IR,900,0,2,-2>, * IBC,1000,-1,27,'LINE,CIRCLE OR KEY MIN BORE'), * IBC,1000,-l,27,'LINE,CIRCLE OR KEY MAX BORE' J, * IBEZ,1004,0,l,OJ, * (815,1008,9,1,3), * IBll,1006,0,1,0J, * IR,1007,0,35,'/DEFINE OUTER DIAMETER CONSTRAINT/]' l, * IR,900,0,2,-3), * IBC,1000,-1,27,'LINE,CIRCLE OR KEY MIN O.D.' ), * IBC,1000,-1,27,'LINE,CIRCLE OR KEY MAX O.D.' ), * IBE3,1004,0,1,0J, * IB13,1008,9,1,2l, * (814,1008,9,1,5), * (H,1012,0,15,'KEY IN SERIES#'), * IB8,1009,0,1,l), * IB14,1006,0,1,0l, * IR,1007,0,25,'/DEFINE C-90 CONSTRAINT/)'), * I R,900,0,2,-5), IR,1002,0,24,'MIN SINGLE ROH C-90: LBF' J,

MACRO PROGRAM LISTINGS

* *

103

(R,1002,0,24,'MAX SINGLE ROH C-90: LBF' l, * (BES,1004,0,1,0l, * (R,1007,0,28,'/DEFINE KFACTOR CONSTRAINT/)'), * IR,900,0,2,-6), * (R,1002,0,11,'MIN KFACTOR'), * (R,1002,0,11,'MAX KFACTOR'l, * (BE6,1004,0,1,0), * (B15,1006,0,1,0), * (B13,1006,0,1,0), * 1B8,1006,0,1,0), * (BL7,1006,0,1,0, ), * (R,1007,0,30,'/DEFINE MIN LIFE CONSTRAINTS/)'), * (R,1002,0,16,'LOAD CONDITION#'), * IR,1002,0,23,'LIFE: IN HOURS OR MILES'), * (BL7,1010,-777,1,0), * IBE7,1004,0,1,0l, * (R,1007,0,38,'/DEFINE MIN HEIGHTED LIFE CONSTRAINT/)'),* ( R, 900, 0, 2, -8 l, * IR,1002,0,32,'HEIGHTED LIFE: IN HOURS OR MILES'), * IBES,1004,0,1,0J, * IR,1007,0,26,'/DEFINE HIDTH CONSTRAINT/)'), * IR,900,0,2,-91, * (B,1000,-1,27,'LINE OR KEY MIN HIDTH' ), * 1B,1000,-1,27, 'LINE OR KEY MAX HIDTH' J, * IBE9,1004,0,l,Ol, * (86,1006,0,1,0), * IB12,1006,0,1,0), * (B99,1006,0,1,0), * (R,1002,0,35,'# OF BRG PAIRS IN SUMMARY LIST:3-50'), * (R,1007,0,29,'/RANK BY LIFE/RANK BY PRICE/)'), * (R,1002,0,34,'LOAD COND # OR H FOR HEIGHTED LIFE'), * (Bl,1006,0,1,0l, * (B33,1006,0,1,0l, * IB34,1006,0,1,0), * (R,1003,2,25,'LOCATION FOR BEARING NOTE'), * IHM7,1014,017,8,SYMTB099l, * IXB,1009,1,1,11

MACHDR ( 'MACRO PROGRAM ',-4.0,-2.S), * ( 'PARAMETER DEFINITIONS' ,-3.0,4.0l, * (' ',0,80),FILL='?',STAR=YES

MACDEF INTER,IRl,900,0,4,1.0l, * (R2,900,0,4,8l, * IR3,901,0,1,0), * IR4,1007,0,45,'/REDEF INTERPOSITIONAL CONSTRS./DELETE TH* EM/) I), * I RS,1002,0,13, 'SHAFT #: 1-10' l, * IIl,1008,4,1,2), * IR6,1007,0,43,'/BOTH BRGS: ANALYSIS ONLY/A ORB SELECTED* /)'), * (I2,1008,6,1,l), * (R7,1007,0,37,'/BOTH TIMKEN BRGS/OTHER COMBINATION/)'),* (I3,1008,7,1,2), * IILl,1006,0,1,0,J, * (R,1007,0,39,'/BRG A: BORE/0D/HIDTH/CONE/CUP/SERIES/)'J,* (R,1007,0,10,'/ + / - /)'), * (R,1007,0,39,'/BRG B: BORE/0D/HIDTH/CONE/CUP/SERIES/J'J,* IR,1007,0,27,'/.LT./,LE./.EQ./.GE./.GT./J'l, * (R,1002,0,15,'NUMERICAL VALUE' J, * IR,1007,0,44,'/DEFINE NEXT INTERPOS CONSTRAINT, MAX OF 5* /)'), * (ILl,1010,-123,1,0J, * IIEl,1004,0,1,0J, * (R,1003,2,33,'LOCATION FOR INTERPOSITIONAL NOTE'J, * (Il,1006,0,1,0J, * II2,1006,0,1,0J, * II3,1006,0,1,0J, * IHM8,1014,018,8,SYMTB099J, *

MACRO PROGRAM LISTINGS 104

IXI,1009,1,1,1) MACHDR I 'MACRO PROGRAM ',-4.0,-3.5),

I 'PARAMETER DEFINITIONS',-3.0,4.0), (' ',0,80),FILL='?' ,STAR=YES

MACDEF TEXT,IRl,900,0,4,1.0), (RZ,900,0,4,9), ( R3 ,901,0 ,1,0), (R4,1002,0,13,'SHAFT #: * 1-10'), * IRS,1007,0,45,'/PROCESS COMMENTS/DEFINE PRINT OPTIONS/BO* TH/) I). (Tl,1008,5,1,2), (R6,1007,0,24,'/ADO OR REDO A COMMENT/)' l, ITLl,1006,0,1,0), IR,1002,0,14,'COMMENT #: 1-5'), <H,1012,0,30,'KEY IN COMMENT - UP TO 72 CHAR'), IR,1007,0,24,'/AOD OR REDO A COMMENT/)'), ITLl,1010,-111,1,0), ITEl,1004,0,1,0), IR,1007,0,19,'/DELETE A COMMENT/)'), ITL2,1006,0,1,0), I R,1002,0,14, 'COMMENT I: 1-5' ), IR,1007,0,19,'/DELETE A COMMENT/)'), ITL2,1010,-222,1,0), (TE2,1004,0,1,0), IT2,1008,5,1,1), (Tl,1006,0,1,0l,

* * * * * * *

* *

IR,1007,0,39,'/SUPPRESS PRINTING CONSTRAINT SECTION/)' l,* IR,900,0,2,-3J, ITE3,1004,0,l,Ol, IR,1007,0,30,'/SUPPRESS PRINTING DATA FILE/)'), ( R , 90 0 , 0 , 2 , -4 l , ITE4,1004,0,1,0),

* * *

(R,1007,0,38,'/SUPPRESS PRINTING GEAR DATA SECTION/)'),* IR,900,0,2,-Sl, * ITES,1004,0,1,0l, * IR,1007,0,39,'/SUPPRESS PRINTING GEAR LOADS SECTION/)'),* IR, 900, 0, 2, -6 ) , * ITE6,1004,0,1,0l, * IR,1007,0,45,'/SUPPRESS PRINTING EXTRA LOADS ANO MOMENTS* /)' ) . IR,900,0,2,-7), ITE7,1004,0,1,0), IR,1007,0,35,'/PRINT OUT BEARING RUNNING TORQUE/)'), ( R, 900, 0, 2, -8 l , ITE8,1004,0,1,0l, IR,1007,0,32,'/PRINT OUT BEARING DATA TABLES/I'), IR,900,0,2,-91, ITE9,1004,0,1,0), IT2,1006,0,1,0), IR,1003,2,22,'LOCATION FOR TEXT NOTE' l, (HM9,1014,019,8,SYMTB099l, IXT,1009,1,1,ll

MACHDR ( 'MACRO PROGRAM ',-4.0,-4.51, ( 'PARAMETER DEFINITIONS',-3.0,4.0l, I' ',0,801,FILL='?',STAR=YES

MACDEF SANDF,IRl,900,0,4,1.0l, IR2,900,0,4,10), I R3 , 901 , 0 , 1 , 0 l ,

* * * * * * * * * * *

* *

IR4,1002,0,26,'FORTRAN UNIT NUMBER: 21-30' ), * I RS, 1007 ,O ,38, '/BRG ANALYSIS ONLY /BRG SELECTION TOO/)' l ,* (Fl,1008,5,1,ll, IR6,1002,0,27,'SHAFT NUMBER TO BE ANALYZED' l, IF2,1009,0,1,ll, IFl,1006,0,1,0l, (R6,1002,0,32,'NUMBER OF 1ST OF 5 SHAFTS TO RUN' l, (FLl,1006,0,1,0l, IRA,1002,0,29,'NUMBER OF NEXT SHAFT OR /ENO/' l,

MACRO PROGRAM LISTil'iGS

* * *

105

*

(Fll,1010,-100,1,0), * CFEl,1004,0,1,0), * IF2,1006,0,1,0), * IH,1012,0,34,'KEY 1ST TITLE LINE - UP TO 72 CHAR'), * IFL2,1006,0,l,OJ, * IH,1012,0,34,'NEXT LINE OF 4 LINE TITLE OR /END/' J, * IFL2,1010,-200,1,0), * CFE2,1004,0,1,0), * (HM10,1014,020,8,SYMTB099J, * IXF,1009,1,1,1)

MACHDR C 'MACRO PROGRAM ',3.0,-4.5), * ( 'PARAMETER DEFINITIONS' ,-3.0,4.0), * (' ',0,80),FILL='?',STAR=YES

MACDEF HELP,IRl,900,0,4,1.0J, * IR2,900,0,4,11), * IR3,1002,0,24,' SELECT /HELP/ MENU'), * IHMB,1014,021,8,SYMTB099), * (HM1,1014,011,8,SYMTB099J, * IHM2,1014,012,8,SYMTB099), * IHM3,1014,013,8,SYMTB099J, * IHM4,1014,014,8,SYMTB099J, * (HM5,1014,015,8,SYMTB099J, * IHM6,1014,016,8,SYMTB099J, * (HM7,1014,017,8,SYMTB099J, * IHM8,1014,018,8,SYMTB099J, * IHM9,1014,019,8,SYMTB099J, * IHMA,1014,020,8,SYMTB099J, * (XH,1009,1,1,1)

END

* This is the CADPARMl table of DIALOGUE mode, interactive macro * programs which uses metric units. The macro assembly routines * allow menu branching, geometry selects, and data input. The * CADAM source code that precedes this table is not shown for * the sake of brevity. After each macro program is executed, * a 500 element REAL*4 array IRDATA) of interactively defined * data is passed to the user-written FORTRAN subroutine IUSRPGMJ. * USRPGM processes RDATA in a batch mode and then returns control * to the macro program last executed. At this point, RDATA is * reinitialized to all zeros and the user may then run the next * macro program desired.

The RESET The SHAFT The GEARS The LOADS The DYNAM The MOUNT The BRGCN The INTER The TEXT The SANDF The HELP

module clears the working flags. module defines the coordinate systems. module defines the given gears. module defines load conditions. module defines dynamic loads. module defines bearing applications. module defines bearing constraints. module defines bearing interpositional constraints. module defines comments and print options. module generates a SELECT-A-NALYSIS data file. module provides supplemental program instructions.

MACRO PROGRAM LISTINGS 106

* * 5796-ATJ COPYRIGHT CADAM INC. 1977,1985 * BURBANK, CALIFORNIA 91504 MACRGEOM TITLE 'MACRO NAME AND PARAMETER DEFINITION TABLE'

CADPARMC CSECT SPACE

The CADAM source code has been omitted here .•.

MACNAHE RESET,-101.6,114.3 MACNAME SHAFT,-101.6,88.9 MACNAME GEARS,-101.6,63,5 MACNAME LOADS,-101.6,38.1 MACNAHE DYNAM,-101.6,12.7 MACNAME MOUNT,-101.6,-12.7 MACNAME BRGCN,-101.6,-38.l MACNAME INTER,-101.6,-63.5 MACNAHE TEXT,-101.60,-88.9 MACNAME SANDF ,-101.6,-114.3 MACNAME HELP,76,2,-114.3 MACNMEND MACHDR ( 'MACRO PROGRAM ',-4.0,4.5),

( 'PARAMETER DEFINITIONS',-3.0,4.0), I • • ,o ,80), FILL='?' ,STAR=YES

MACDEF RESET,(Rl,900,0,4,2.0l, ( R2, 900, 0, 4, 1 ) , (R3,90l,O,l,Ol, * IR4,1007,0,38,'/ START NEH DATA FILE/ ABORT RESET/)'),* IRUl,904,1,1,0), IHM1,1014,011,8,SYMTB099), IXR,1009,1,1,ll

MACHDR ( 'MACRO PROGRAM ',-4.0,3.5), ( 'PARAMETER DEFINITIONS',-3.0,4,0), (' ',0,80),FILL='?',STAR=YES

MACDEF SHAFT,(Rl,900,0,4,2,0l, I R2, 900, 0 ,4, 2 l, ( R3 , 901 , 0 , 1 , 0 ) , * ( R4,l002,0,18, 'SHAFT NUMBER: 1-10' ), * (R5,1007,l,40,'/DEFINE PV ZERO POINT/ USE LINE MID-PT/)'* ) , (Sl,1008,5,1,2), (R6,1003,2,25,'PV ZERO AXIAL DATUM POINT'), 1S2,1009,0,1,ll, (S1,1006,0,1,0J,

* * * * * IB,1000,1,25,'LINE FOR PV ZERO MIDPOINT' l,

(R7,900,0,5,-3.14l, * * PV DIRECTION PT/ USE LINE MID-PT/*

(S2,1006,0,1,0J, IRS,1007,1,42,'/DEFINE ) I ) > 1S3,1008,8,1,2), IR9,1003,2,24,'PV AXIAL DIRECTION POINT' l, (S4,1009,0,1,ll, (S3,1006,0,1,0l, IB,1000,1,30,'LINE FOR PV DIRECTION MIDPOINT' l, IR10,900,0,5,-3.14J,

* * * * * * * (S4,1006,0,1,0l, *

IRll,1007,1,40,'/SELECT LV ZERO POINT/ USE CIRCLE CENTER* /)' ) ' *

MACRO PROGRAM LISTINGS 107 .

IS5,1008,11,1,2), * IA,1000,1,25,'LV ZERO AXIAL DATUM POINT'), * (S6,1009,0,1,1J, * 1S5,1006,0,1,0J, * (C,l000,1,31,'CIRCLE FOR LV ZERO CENTER POINT'), * I S6, 1006, 0, 1, 0 J, * IA,1000,1,24, 'LV ANGLE REFERENCE POINT'), * IR14,1003,2,23,'LOCATION FOR SHAFT NOTE' J, * IR16,l007,1,34,'/KEY SHAFT NAME/USE DEFAULT NAME/)'), * IS7,1008,16,1,2J, * IH,1012,0,35,'KEY SHAFT NAME: 1-25 CAPITAL CHARS.' J, * IS7,1006,0,1,0l, * IRU2,904,1,1,0), * IHM2,1014,012,8,SYMTB099), * IXS,1009,1,1,ll

MACHDR ( 'MACRO PROGRAM ',-4.0,2.5), *

MACDEF

I 'PARAMETER DEFINITIONS' ,-3.0,4.0), * I' ',0,80),FILL='?',STAR=YES GEARS,IRl,900,0,1,2),

( R2, 900, 0, 1, 3 ) , I R3 , 901, 0 , 1, 0 ) , IR4,1007,1,31,'/ADD OR REDO GEAR/DELETE GEAR/)'), IR5,1002,0,13,'SHAFT #: 1-10' >, IR6,1002,0,12,'GEAR #: 1-20'), IG41,1008,4,1,1), *

* IXG,1009,1,1,ll, IG41,1006,0,1,0J, IR7,1007,1,38,'/DEF IG22,1008,7,1,2J,

* * GEAR CENTER LDC/USE LINE MID-PT/)' l,*

IR8,1003,2,21,'GEAR PV CENTER LDC PT'J, IG23,1009,0,l,1J, IG22,1006,0,1,0J, IB,1000,1,27,'PV LINE FOR GEAR LOC MID-PT' J, IR9,900,0,2,-3l, IG23,1006,0,1,0J, IRl0,1007,0,34,'/GEAR ON SHAFT/ON BRG OUTER RACE/)' J, (Rll,1007,0,33,'/SPUR/HELICAL/HERRINGBONE/OTHER/l'J, IG43,l008,11,1,4l, IG44,l008,ll,l,ll, IR12,1002,0,17,'HELIX ANGLE - DEG' J, IG45,1008,11,l,3l, IR13,1007,0,23,'/LEFT HAND/RIGHT HAND/)' J, (G46,l009,0,1,1J, IG43,1006,0,1,0l,

* * * * * * * *

IR12,1007,0,32,'/STR. BEVEL/SPIRAL BEVEL/OTHER/)' l, IG47,l008,12,l,3l, * IR13,1007,0,35,'/KEY MEAN WORKING DIAM/COMPUTE IT/J'J, * (Rl4,1007,0,29,'/APEX TO LEFT/APEX TO RIGHT/)' J, IR15,1002,0,17,'PITCH ANGLE - DEG' J, * IG48,l008,12,1,ll, IR16,1002,0,18,'SPIRAL ANGLE - DEG' l, (Rl7,1007,0,23,'/LEFT HANO/RIGHT HANO/)'), IG49,1009,0,1,ll, IG47,1006,0,1,0J, IR13,1007,0,33,'/STR. WORM/STR. WORM GEAR/OTHER/)' J, IGS0,1008,13,1,3), * IR14,1007,0,40,'/KEY GEARING EFFIC./USE TIMKEN DEFAULT/)* I ) > IG35,1008,14,1,2l, IR15,1002,0,21,'GEARING EFFIC.: 0-1.0' l, IG36,1009,0,1,ll, IG35,1006,0,1,0l, IR15,900,0,2,-3l, IG36,1006,0,1,0J, 1Rl6,1002,0,16,'LEAO ANGLE - DEG' J, IR17,1007,0,23,'/LEFT HANO/RIGHT HANO/)' l, IGSl,1009,0,1,ll,

MACRO PROGRAM LISTINGS 108

IG50,1006,0,1,0), * IR14,1007,0,43,'/DBL. ENV. HORWDBL. ENV. HORM GEAR/OTHE* R/1'1, * IG52,1008,14,1,31, * IR15,1002,0,21, 'GEARING EFFIC.: 0-1.0' 1, * IR16,1002,0,13, 'GEARING RATIO' 1, * IR17,1007,0,23,'/LEFT HAND/RIGHT HAND/)'), * IR18,1002,0,15,'CENTER DISTANCE'), * tG53,1009,0,1,11, * IG52,1006,0,1,0l, * IR15,1007,0,34,'/HYPOID GEAR/HYPOID PINION/OTHER/)' J, * IG54,1008,15,1,3J, * IR16,1002,0,18, 'SPIRAL ANGLE - DEG' J, * IR17,1007,0,23,'/LEFT HAND/RIGHT HAND/)' J, * IR18,1007,0,29,'/APEX TO LEFT/APEX TO RIGHT/)' J, * tG33,1008,15,1,2l, * tR19,1002,0,31,'ROOT ANGLE OF HYPOID GEAR - DEG'), * tG34,1009,0,1,1J, * IG33,1006,0,1,0J, * IR19,1002,0,30,'HYPOID PINION FACE ANGLE - DEG' J, * tG34,1006,0,1,0J, * IR20,1007,0,35,'/KEY MEAN HORKING DIAM/COMPUTE IT/)'), * IG37,1008,20,1,21, * IR21,l002,0,17,'MEAN HORKING DIAM' J, * IG55,l009,0,1,1J, * IG37,1006,0,1,0l, * IG56,1008,15,1,ll, * IR21,1002,0,17,'# OF PINION TEETH' J, * IR22,1002,0,15,'# OF GEAR TEETH' J, * (R23,l002,0,30,'HYPOID GEAR SPIRAL ANGLE - DEG' J, * IR24,1007,0,39,'/KEY GEAR MEAN HORKING DIAM/COMPUTE IT/1* I ) , * tG57,1008,24,1,2l, * (R25,1002,0,25,'MEAN HORKING DIAM OF GEAR'), * IG58,1009,0,1,1J, * IG57,1006,0,1,0), * IR25,1002,0,31,'ROOT ANGLE OF HYPOID GEAR - DEG' l, * IG56,1006,0,1,0J, * tRA,1002,0,24,'HYPOID GEAR TOOTH LENGTH' l, * t RB,1002,0,22, 'HYPOID GEAR PITCH DIAM' l, * IG59,1009,0,1,1J, * IG48,1006,0,1,0l, * (G49,1006,0,l,Ol, * IG60,1008,13,l,2l, * tRC,1002,0,17,'MEAN HORKING DIAM' l, * tG6l,1009,0,1,1J, * tG60,1006,0,1,0J, * IRD,1002,0,18,'BEVEL TOOTH LENGTH' J, * IG44,1006,0,1,0J, * tG45,1006,0,l,OJ, * IG46,1006,0,1,0), * (G51,1006,0,1,0), * IG53,1006,0,1,0l, * IRE,1002,0,10,'PITCH DIAM' l, * IG55,1006,0,1,0J, * IG58,1006,0,1,0J, * IG59,1006,0,1,0J, * IG61,1006,0,1,0J, * IRF,1002,0,20, 'PRESSURE ANGLE - DEG' J, * ( RG, 1003, 2, 18, 'LOC FOR GEAR NOTES' l, * IG54,1006,0,1,0J, * IRU3,904,1,l,Ol, * IHM3,1014,0l3,8,SYMTB099l, * tXG,1009,1,1,1)

MACHDR I 'MACRO PROGRAM ',-4.0,1.5), * I 'PARAMETER DEFINITIONS' ,-3.0,4.0), * t' ',0,80),FILL='?' ,STAR=YES

MACRO PROGRAM LISTINGS 109

MACDEF LOADS,(Rl,900,0,1,2l, I R2,900,0,1,4l, I R3 , 901 , 0 , 1, 0 l , IR4,1007,1,38,'/ADD OR REDO A LOAD COND./DELETE IRS,1002,0,13,'SHAFT #: 1-10' l, IR6,1002,0,22,'LOAD CONDITION I: 1-50'), (Ll,1008,4,1,2),

* * ONE/)'),*

IR7,1002,0,21,'ROTATIONAL SPEED: RPM' l, IRS,1007,0,33,'/LV CH ROTATION/LV CCH ROTATION/)' l, (R9,1007,0,42,'/BEARING LIFE IN HOURS/BEARNG LIFE IN ) I ) , * IRl0,1002,0,32,'PERCENT TIME OR DISTANCE: 0-100%'), * ILS,1008,9,1,2), * IR11,900,0,2,-3l, * IL6,1009,0,1,ll, * IL5,1006,0,1,0l, * IRll,1002,0,23,'TIRE ROLLING RADIUS: MM'), * I L6,1006,0,1,0 l, * IR12,1007,0,27,'/GEARS TRANSMITTING POHER/J' l, * IR13,1007,0,27,'/INPUT POHER/INPUT TORQUE/)' J, * IL3,1008,13,1,2l, * IR14,1002,0,9,'KILOHATTS'l, * IL4,1009,0,1,ll, * IL3,1006,0,l,O), * IR14,1002,0,11,'TORQUE: N-M'l, * IL4,1006,0,1,0l, * IL2,1008,9,1,1), * IR15,1002,0,24,'REDUCTION RATIO TO HHEEL'J, * ILZ,1006,0,1,0J, * IRFG,1002,0,12,'GEAR#: 1-ZO'J, * ILLl,1006,0,1,0J, * IRAl,1007,0,31,'/GEAR DRIVEN/GEAR IS A DRIVER/)'), * IRAZ,1002,0,17,'POHER FACTOR: 0-1' l, * IA,1000,-1,34,'LV MESH PT REF. OR KEY MESH PT ANG' l, * (RA5,1002,0,31,'NEXT GEAR I -MAX OF 4- OR /END/' J, * ILLl,1010,-111,1,0l, * ILEl,1004,0,1,0l, * ILLZ,1006,0,1,0J, * IRBl,1007,0,43,'/LINEAR DISTRIB LOADS IN SHAFT AXIS PLAN* E/ J' l' * IRBZ,1007,0,37,'/LOADS TOHARD SHAFT/AHAY FROM SHAFT/)' l,* I RB3, 1003, 2, 33, 'LOAD SEGMENT END-PT ON SHAFT AXIS' l, * IRB5,1002,0,12,'MAGNITUDE: N' l, * IRB6,1003,2,39,'0THER LOAD SEGMENT END-PT ON SHAFT AXIS'* ), * IRBS,1002,0,12, 'MAGNITUDE: N' l, * IA,1000,-1,34,'LV LOAD PT REF. OR KEY LOAD PT ANG' l, * ILL2,1010,-222,1,0l, * ILE2,1004,0,l,Ol, * ILL3,1006,0,1,0l, * IRCl,1007,0,45,'/PARABOLIC DISTRIB LOADS IN SHFT AXIS PL* ANE/J' l, * IRC2,1007,0,37,'/LOADS TOHARD SHAFT/AHAY FROM SH~FT/l' l,* I RC3, 1003, 2, 33, 'LOAD SEGMENT END-PT ON SHAFT AXIS' ) , * IRC5,1002,0,12, 'MAGNITUDE: N' l, * IRC6,1003,2,29,'0THER LOAD SEGMENT END-PT ON SHAFT AXIS'* l, * IRC8,1002,0,12,'MAGNITUDE: N' l, * IRC9,1002,0,30,'MAGNITUDE AT SEGMENT MID-PT: N'l, * IA,1000,-1,34,'LV LOAD PT REF. OR KEY LOAD PT ANG'), * ILL3,1010,-333,1,0J, * ILE3,1004,0,1,0J, * IREl,1007,0,45,'/RESULTANT DISTRIB LOADS IN TRANSVERS PL* ANE/J' J, * IRE2,1003,2,28,'SHAFT AXIS LOCATION OF LOADS' l, * IRE4,1007,0,37,'/LOADS TOHARD SHAFT/AHAY FROM SHAFT/)' l,* (RE5,1007,0,39,'/KEY ALL 8 LOAD ANGLES/USE ALL LV PTS/l'*

MACRO PROGRAM LISTINGS 110

), * tA,1000,-1,34,'lST OF 8 LV REF PTS OR KEY 1ST ANG'}, * tRE7,1002,0,12,'RESULTANT: N' }, * ILLS,1006,0,1,0l, * tA,1000,-1,35,'NEXT OF 8 LV REF PTS, KEY ANG,/END/' ), * (RE9,1002,0,12,'RESULTANT: N' J, * ( LLS,1010,-555,1,0 l, * CLES,1004,0,1,0l, * ILL6,1006,0,1,0), * (RFl,1007,0,44,'/COUPLE OR MOMENT PERPENDIC. TO SHAFT AX* IS/)' l, * IRF2,1007,0,16,'/COUPLE/MOMENT/l' l, * IRF,1007,0,38,'/APPLIED TO SHAFT/APPLIED TO HOUSING/)' l,* IA,1000,1,20, 'LV APPLICATION POINT'), * (A,1000,-1,29,'LV MOMENT ARM PT OR KEY IN MM'}, * tA,1000,1,34,'R.HAND RULE LV DIRECTION VECTOR PT'l, * (RF7,1002,0,14, 'MAGNITUDE: N-M' l, * I LL6,1010,-666,1,0 }, * tLE6,1004,0,1,0l, * IRGl,1007,0,14, '/POINT LOADS/)' l, * ILL7,1006,0,l,Ol, * IRG,10D7,0,38,'/PURE RADIAL/PURE THRUST/COMBINATION/)'},* IRJ,1007,0,38,'/APPLIED TO SHAFT/APPLIED TO HOUSING/)'),* IA,1000,1,17,'PV APPLICATION PT' l, * IA,1000,1,10,'PV TAIL PT'}, * IA,1000,1,17,'LV APPLICATION PT'), * IA,1000,1,10,'LV TAIL PT' l, * IRGS,1002,0,18,'TOTAL MAGNITUDE: N' }, * IRG9,1007,0,14,'/POINT LOADS/)'}, * ILL7,1010,-777,1,0}, * CLE7,1004,0,1,0}, * IRil,1003,2,33,'LOCATION FOR LOAD CONDITION NOTES'}, * I Ll,1006,0,1,0 l, * IRU4,904,1,1,0}, * IHM4,1014,014,8,SYMTB099}, * IXL,1009,1,1,ll

MACHDR I 'MACRO PROGRAM ',-4.0,0.5), * I 'PARAMETER DEFINITIONS' ,-3.0,4.0 l, * (' ',0,80),FILL='?' ,STAR=YES

MACDEF DYNAM,IRl,900,0,4,2.0J, * tR2,900,0,4,5l, * IR3,901,0,1,0l, * (R4,1007,1,41,'/REDEFINE UNBALANCED FORCES/DELETE CASE/l* I l, * tRS,1002,0,13,'SHAFT #: 1-10' l, * tDl,1008,4,l,2l, * IR6,1002,0,18, 'MASS MAGNITUDE: KG' l, * IDLl,1006,0,1,0l, * IA,1000,1,30,'PV LOCATION OF UNBALANCED MASS' l, * IA,1000,-1,30,'LV LOC OR KEY ECCENTRICITY: MM' l, * IRA,1002,0,35,'NEXT MASS -MAX OF 10- OR SEL. /END/' l, * IDLl,1010,-111,1,0l, * IDEl,1004,0,1,0l, * IRB,1003,2,30,'LOCATION FOR DYNAMIC LOAD NOTE' l, * IDl,1006,0,1,0l, * IRUS,904,1,1,0l, * IHM5,1014,015,8,SYMTB099l, * IXD,1009,1,1,ll

MACHDR I 'MACRO PROGRAM ',-4.0,-0.Sl, * ( 'PARAMETER DEFINITIONS' ,-3.0,4,0}, * I' ',0,80),FILL='?' ,STAR=YES

MACDEF MOUNT,IRl,900,0,4,2.0), * IR2,900,0,4,6l, * IR3,901,0,1,0l, * IR4,1002,0,13,'SHAFT #: 1-10' l, * IR,1007,0,39,'/SINGLE ROH BEARINGS/THO ROH BEARINGS/}' l,* IR6,1007,1,33,'/APPLICATION FACTOR/USE DEFAULT/)'}, *

MACRO PROGRAM LISTINGS 111

(Ml,1008,6,1,21, * (R7,1002,0,18,'APPLICATION FACTOR' l, * (M2,1009,0,1,ll, * (Ml,1006,0,1,0 l, * <R7,900,0,2,-3l, * (M2,1006,0,1,0 l, * (M3,1008,5,1,2l, * (RS,1007,0,36,'/DIRECT MOUNTING/INDIRECT MOUNTING/)'), * (R9,1007,0,37,'/LEFT BRG TYPE TS/LEFT BRG TYPE TSF/l' l, * (R,1007,0,39,'/RIGHT BRG TYPE TS/RIGHT BRG TYPE TSF/l' l,* (Rll,1007,0,42,'/LEFT BRG POSITION: EFF CTR/CONEBF/CUPBF* /)'), * (AB,1000,1,35,'PV PT OR LINE FOR LEFT BRG POSITION' l, * IR13,1007,0,43,'/RIGHT BRG POSITION: EFF CTR/CONEBF/CUPB* F/l'l, * (AB,1000,1,34,'PV PT, LINE FOR RIGHT BRG POSITION' l, * (M4,1009,0,1,ll, * (M3,1006,0,1,0l, * (R8,1007,0,45,'/MOUNTING: FIXED LEFT/FIXED RIGHT/FLOAT A* LL/l'l, * (R9,1007,0,44,'/LEFT BRG TYPE TDI/TD0/2TS-DM/2TS-IH/OTHE* R/l'l, * lRl0,1007,0,45,'/RIGHT BRG TYPE TDI/TD0/2TS-DM/2TS-IM/OT* HER/) I l, * (M5,1008,9,1,4l, * (M6,1008,9,1,5l, * IRll,1007,0,44,'/LEFT BRG POS: CTR/LCONF/RCONF/LCUPF/RCU* PF/l'l, * (AB,1000,1,35,'PV PT OR LINE FOR LEFT BRG POSITION'), * IM7,1009,0,1,ll, * IM5,1006,0,1,0l, * (M6,1006,0,1,0l, * IAB,1000,1,33,'PV PT OR LINE FOR LEFT BRG CENTER' l, * IM7,1006,0,1,0l, * (M8,1008,10,1,4l, * IM9,1008,10,1,5l, * (RA,1007,0,45,'/RIGHT BRG POS: CTR/LCONF/RCONF/LCUPF/RCU* PF/l' l, * (AB,1000,1,34,'PV PT, LINE FOR RIGHT BRG POSITION' l, * (Ml0,1009,0,1,ll, * (M8,1006,0,1,0l, * IH9,1006,0,1,0l, * (AB,1000,1,34,'PV PT OR LINE FOR RIGHT BRG CENTER' l, * lMl0,1006,0,1,0l, * (M4,1006,0,1,0l, * IH,1012,0,32,'KEY LEFT BEARING NAME: 1-23 CHAR' l, * <H,1012,0,33,'KEY RIGHT BEARING NAME: 1-23 CHAR' l, * (RD,1007,0,45,'/LEFT BEARING LUBE AND OPER TEMP BOTH KNO* HN/l' l, * ( R,900,0,2,-ll, * (H,1012,0,29,'KEY LUBE TRADENAME: 1-25 CHAR' l, * ( RE ,1007 ,o ,13, '/GREASE/OIL/)' ) , * <RF,1002,0,18,'40C VISCOSITY: CST' l, * (RG,1002,0,19,'lOOC VISCOSITY: CST' l, * IRH,1002,0,24,'0PERATING TEMPERATURE: C'l, * (MEl,1004,0,1,0l, * (RI,1007,0,41,'/RIGHT BEARING LUBE AND TEMP BOTH KNOl'mll* I l, * (R,900,0,2,-21, * (RJ,1007,0,44,'/LUBE AND TEMP DIFFERENT FROM LEFT BEARIN* G/) I)' * IR,900,0,3,-10), * IH,1012,0,29,'KEY LUBE TRADENAME: 1-25 CHAR'), * IRK,1007,0,13,'/GREASE/OIL/l' l, * IRL,1002,0,18,'40C VISCOSITY: CST' l, * lRM,1002,0,19,'lOOC VISCOSITY: CST' l, * IRN,1002,0,24,'0PERATING TEMPERATURE: C' l, *

MACRO PROGRAM LISTINGS 112

IMEZ,1004,0,1,0), * IR0,1007,0,37,'/ISO BRGS CONSIDERED/NOT CONSIDERED/)'),* IRP,1003,2,26,'LOCATION FOR MOUNTING NOTE'), * IRU6,904,1,1,0J, * IHM6,1014,016,8,SYMTB099), * IXM,1009,1,1,1)

MACHDR I 'MACRO PROGRAM ',-4.0,-1.5), I 'PARAMETER DEFINITIONS',-3.0,4.0), I' ',0,80),FILL='7',STAR=YES

MACDEF BRGCN,IRl,900,0,4,2.0), I R2, 900, 0, 1, 7 J, *

* #: 1-10' ), * I R3, 901, 0, 1, 0 l, IR4,l002,0,13,'SHAFT IR5,1007,0,35,'/LEFT IR6,1007,0,43,'/BOTH /)I))

BEARING: A/RIGHT BEARING: B/)' l, * BRGS: ANALYSIS ONLY/A ORB SELECTED*

IR7,1007,0,23,'/TIMKEN BEARING/OTHER/)' J, IBl,1008,7,1,2), IB2,1008,5,1,2l, IR8,900,0,2,-ll, IB3,1009,0,1,1}, (B2,1006,0,1,0),

* * * * *

IRS,1007,0,41,'/COPY BRGS USED AT A/USE DIFFERENT BRGS/l* I)) * IB3,1006,0,1,0,), * IB4,1008,6,1,2), * IB33,1008,8,l,1), * IR9,l007,0,31,'/ALTERNATE BRGS USED/NOT USED/)'), * IH,1012,0,13,'KEY IN CONE #'l, * IH,1012,0,12,'KEY IN CUP#' J, * IB34,1008,9,1,2l, * 18Ll,1006,0,1,0,J, * IR,1007,0,34,'/ALTERNATE CONE #/CUP #/SERIES#/)'), * IH,1012,0,23,'KEY IN PART OR SERIES#' l, * IR,1007,0,43,'/ANOTHER BRG PART, MAX OF 4 COMPLETE BRGS/* } I ) , * IBLl,1010,-111,1,0), * IBEl,1004,0,1,0), * IB99,1009,0,1,ll, * IB4,1006,0,1,0J, * IB6,1008,8,1,ll, * IR9,1007,0,45,'/SPECIFY CONE+CUP/CONE/CUP/SERIES/DIFF CN* ST/) I)' * IB7,1008,9,1,5J, * IB9,1008,9,l,4l, * IBl0,1008,9,1,3), * CH,1012,0,13,'KEY IN CONE#' l, * (Bll,1008,9,1,2), * (Bl0,1006,0,1,0l, * (H,1012,0,12,'KEY IN CUP#' l, * CB12,1008,9,l,ll, * (87,1006,0,1,0), * CB9,1006,0,l,Ol, * IR,1007,0,25,'/DEFINE BORE CONSTRAINT/}'), * IR,900,0,2,-2), * (BC,1000,-1,27,'LINE,CIRCLE OR KEY MIN BORE' l, * IBC,1000,-1,27,'LINE,CIRCLE OR KEY MAX BORE' l, * IBEZ,1004,0,1,0l, * IB15,1008,9,1,3l, * IBll,1006,0,1,0l, * IR,1007,0,35,'/DEFINE-OUTER DIAMETER CONSTRAINT/)'), * IR,900,0,2,-3l, IBC,1000,-1,27,'LINE,CIRCLE OR KEY MIN O.D.' l, IBC,1000,-1,27,'LINE,CIRCLE OR KEY MAX 0.0.' l, IBE3,1004,0,1,0l, (813,1008,9,1,2), (814,1008,9,1,5),

MACRO PROGRAM LISTI:"/GS 113

(H,1012,0,lS, 'KEY IN SERIES I' J, * (88,1009,0,1,1), * (814,1006,0,1,0), * IR,1007,0,25,'/DEFINE C-90 CONSTRAINT/)'), * I R,900,0,2,-SJ, * ( R,1002,0,22, 'MIN SINGLE ROH C-90: N' J, * (R,1002,0,22,'MAX SINGLE ROH C-90: N'J, * IBES,1004,0,1,0J, * IR,1007,0,28,'/DEFINE KFACTOR CONSTRAINT/)'), * IR,900,0,2,-6), * IR,1002,0,11,'MIN KFACTOR'), * IR,1002,0,11,'MAX KFACTOR'J, * IBE6,1004,0,1,0J, * (815,1006,0,1,0), * (813,1006,0,1,0), * (88,1006,0,1,0), * IBL7,1006,0,1,0,J, * (R,1007,0,30,'/DEFINE MIN LIFE CONSTRAINTS/)'), * (R,1002,0,16,'LOAD CONDITION#'), * (R,1002,0,20,'LIFE: IN HOURS OR KM'J, * (BL7,1010,-777,1,0J, * IBE7,1004,0,1,0), * IR,1007,0,38,'/DEFINE MIN HEIGHTED LIFE CONSTRAINT/)'),* IR,900,0,2,-8), * IR,1002,0,29,'HEIGHTED LIFE: IN HOURS OR KM'), * IBES,1004,0,1,0J, * IR,1007,0,26,'/DEFINE HIDTH CONSTRAINT/)'), * IR,900,0,2,-9J, * IB,1000,-1,27,'LINE OR KEY MIN HIDTH'J, * IB,1000,-1,27,'LINE OR KEY MAX HIDTH' J, * IBE9,1004,0,1,0J, * 1B6,1006,0,1,0J, * 1B12,1006,0,1,0), * (B99,1006,0,1,0J, * IR,1002,0,35,'# OF BRG PAIRS IN SUMMARY LIST:3-50'), * IR,1007,0,29,'/RANK BY LIFE/RANK BY PRICE/)' l, * (R,1002,0,34,'LOAD CONDI OR H FOR HEIGHTED LIFE'l, * IBl,1006,0,1,0l, * 1B33,1006,0,1,0l, * (B34,1006,0,1,0), * IR,1003,2,25,'LOCATION FOR BEARING NOTE'), * IRU7,904,1,1,0l, * IHM7,1014,017,8,SYMTB099), * IXB,1009,1,1,ll

MACHOR I 'MACRO PROGRAM ',-4.0,-2.5), * I 'PARAMETER DEFINITIONS' ,-3.0,4.0l, * I' ',0,80),FILL='?',STAR=YES

MACDEF INTER,IRl,900,0,4,2.0l, * (RZ,900,0,4,81, * IR3,901,0,l,O), * IR4,1007,0,45,'/REDEF INTERPOSITIONAL CONSTRS./DELETE TH* EM/l'l, * IR5,1002,0,13,'SHAFT I: l-10' l, * II1,1008,4,1,2l, * IR6,1007,0,43,'/BOTH BRGS: ANALYSIS ONLY/A ORB SE~ECTED* /l' l, * IIZ,1008,6,1,ll, * (R7,1007,0,37,'/BOTH TIMKEN BRGS/OTHER COMBINATION/l'l, * II3,1008,7,l,2l, * (ILl,1006,0,1,0,J, * IR,1007,0,39,'/BRG A: BORE/00/HIOTH/CONE/CUP/SERIES/l' l,* IR,1007,0,10,'/ + / - /l' l, * IR,1007,0,39,'/BRG B: BORE/OD/HIDTH/CONE/CUP/SERIES/l' l,* IR,1007,0,27,'/.LT./.LE./.EQ./.GE./.GT./l' l, * (R,1002,0,15, 'NUMERICAL VALUE' l, * (R,1007,0,44,'/DEFINE NEXT INTERPOS CONSTRAINT, MAX OF S* /) I ) > *

MACRO PROGRAM LISTINGS 114

(ILl,1010,-123,1,0J, * IIEl,1004,0,1,0J, * IR,1003,2,33,'LOCATION FOR INTERPOSITIONAL NOTE'), * (Il,100&,0,l,Ol, * ( IZ,lOOo,0,1,0 l, * I I3,1006,0,1,0 l, * (RUS,904,1,1,0J, * IHM8,l014,018,8,SYMTB099J, * IXI,1009,1,1,ll

MACHDR I 'MACRO PROGRAM ',-4.0,-3.5J, * ( 'PARAMETER DEFINITIONS' ,-3.0,4.0J, * (' ',0,80),FILL='?',STAR=YES

MACDEF TEXT,(Rl,900,0,4,2.0l, * IR2,900,0,4,9J, * IR3,901,0,1,0l, * IR4,1002,0,13,'SHAFT #: 1-10' l, * IRS,1007,0,45,'/PROCESS COMMENTS/DEFINE PRINT OPTIONS/BO* TH/l' l, * (Tl,1008,5,1,2), * (R6,1007,0,24,'/ADD OR REDO A COMMENT/I'), * ITLl,1006,0,1,0l, * IR,1002,0,14,'COMMENT #: l-5'J, * (H,1012,0,30,'KEY IN COMMENT - UP TO 72 CHAR' l, * IR,1007,0,24,'/ADD OR REDO A COMMENT/)' J, * ITLl,1010,-111,1,0l, * ITEl,1004,0,1,0J, * IR,1007,0,19, '/DELETE A COMMENT/)' J, * (TLZ,1006,0,l,Ol, * IR,1002,0,14, 'COMMENT #: 1-5' J, * IR,1007,0,19,'/DELETE A COMMENT/)' l, * (TLZ,1010,-222,1,0l, * ITEZ,1004,0,1,0l, * ITZ,1008,5,1,ll, * ITl,1006,0,1,0l, * IR,1007,0,39,'/SUPPRESS PRINTING CONSTRAINT SECTION/)' l,* ( R,900,0,2,-3 l, * ITE3,1004,0,1,0l, * IR,1007,0,30,'/SUPPRESS PRINTING DATA FILE/l'J, * I R , 900 , 0 , 2 , -4 l , * ITE4,1004,0,l,Ol, * IR,1007,0,38,'/SUPPRESS PRINTING GEAR DATA SECTION/)' l, * IR,900,0,2,-5l, * ITE5,l004,0,1,0l, * IR,1007,0,39,'/SUPPRESS PRINTING GEAR LOADS SECTION/)' J,* IR,900,0,2,-61, * (TE6,l004,0,1,0l, * (R,1007,0,45,'/SUPPRESS PRINTING EXTRA LOADS AND MOMENTS* /)'), * IR,900,0,2,-7), * (TE7,l004,0,1,0l, * (R,1007,0,35,'/PRINT OUT BEARING RUNNING TORQUE/)' J, * ( R, 900 , 0, 2, -8 l , * ITE8,1004,0,1,0l, * (R,1007,0,32,'/PRINT OUT BEARING DATA TABLES/}'), * IR,900,0,2,-9l, * ITE9,1004,0,1,0l, * ITZ,1006,0,1,0l, * IR,1003,2,22,'LOCATION FOR TEXT NOTE' l, * ( RU9, 904, 1, 1, 0 l , * IHM9,1014,019,8,SYMTB099l, * IXT,1009,1,1,ll

MACHDR I 'MACRO PROGRAM ',-4. 0 ,-4.5 l, * ( 'PARAMETER DEFINITIONS' ,-3.0,4.0l, * (' ',0,80),FILL='?',STAR=VES

MACDEF SANDF,(Rl,900,0,4,2.0l, IR2,900,0,4,10l, (R3,901,0,1,0l, *

MACRO PROGRAM LISTINGS 115

IR4,1002,0,26,'FORTRAN UNIT NUMBER: 21-30'), *

IR5,1007,0,38,'/BRG ANALYSIS ONLY/BRG SELECTION TOO/)'),*

( Fl,1008,5,1,1 J, *

IR6,1002,0,27,'SHAFT NUMBER TO BE ANALYZED'), *

I FZ,1009,0,1,1 l, *

( Fl,1006,0,1,0 J, *

IR6,1002,0,32,'NUMBER OF 1ST OF 5 SHAFTS TO RUN' J, *

(FLl,1006,0,1,0J, *

IRA,1002,0,29,'NUMBER OF NEXT SHAFT OR /END/'), *

IFLl,1010,-100,1,0l, *

IFEl,1004,0,1,0l, *

I FZ,1006,0,1,0 J, *

IH,1012,0,34,'KEY 1ST TITLE LINE - UP TO 72 CHAR'), *

IFLZ,1006,0,l,OJ, *

IH,1012,0,34,'NEXT LINE OF 4 LINE TITLE OR /END/'), *

IFLZ,1010,-200,1,0J, *

IFEZ,1004,0,1,0J, *

IRUA,904,1,1,0J, *

IHM10,1014,020,8,SYMTB099J, *

IXF,1009,1,1,1)

MACHDR I 'MACRO PROGRAM ',3,0,-4,5), *

I 'PARAMETER OEFINITIONS',-3.0,4,0J, *

I' ',0,80),FILL='?',STAR=YES

MACDEF HELP,IRl,900,0,4,2.0J, *

END

IR2,900,0,4,11), *

IR3,1002,0,24,' SELECT /HELP/ MENU' J, *

IRUB,904,1,1,0), *

IHMB,1014,021,8,SYMTB099J, *

IHM1,1014,011,8,SYMTB099J, *

IHM2,1014,012,8,SYMTB099J, *

IHM3,1014,013,8,SYMTB099J, *

IHM4,1014,014,8,SYMTB099), *

IHM5,1014,015,8,SYMTB099), *

IHM6,1014,016,8,SYMTB099), *

IHM7,1014,017,8,SYMTB099J, *

(HM8,1014,018,8,SYMTB099), *

(HM9,1014,019,8,SYMTB099), *

IHMA,1014,020,8,SYMTB099l, *

IXH,1009,1,1,ll

MACRO PROGRAM LISTINGS 116

Appendix B SUBROUTINE USRPGM LISTING

C*ififif*****************************************************~********* C * C * C * C A CADAM INTERFACE FOR THE COMPUTER-AIDED * C SELECTION OF TIMKEN TAPERED ROLLER BEARINGS * C * C AUTHOR: DINO CIABATTONI * C * C ADVISOR: DR. ARVID MYKLEBUST * C * C VIRGINIA POLYTECHNIC INSTITUTE AND STATE UNIVERSITY * C BLACKSBURG, VIRGINIA - 24061 * C * C * C * C*ififif**-***************lf*****ififif~**********************ififif*********

SUBROUTINE USRPGMIRDATA,*l C*-lf***************************************************************** C C C C C C C C C C C C C C

THIS IS THE USER WRITTEN PROGRAM THAT IS ACCESSED BY THE CADAM CADPARM TABLES. WHENEVER A MACRO PROGRAM IS EXECUTED, THE 500 ELEMENT REAL ARRAY RDATA IHHICH CONTAINS INTERACTIVELY DEFINED INFORMATION) IS PASSED TO THIS MAIN ROUTINE. USRPGM MAY, IN TURN, CALL OTHER USER HRITTEN SUBROUTINES THAT ARE ALL PART OF THE SAME FILE, USRPGM MAY ALSO CALL CADET HHICH, IN TURN, CALLS SUBROUTINE RESOLV. RESOLV IS USED TO RETRIEVE AND PROCESS CADAM ELEMENTS, SUCH AS POINTS, LINES, AND CIRCLES. SINCE THIS PROGRAM IS USED INTERACTIVELY, ONLY THE CURRENT CADAM DRAHING MAY BE USED. ANY OF THE ROUTINES CONTAINED IN THIS FILE MAY USE CADCD TO UPDATE THE DATA BASE. AFTER REACHING THE LAST RETURN STATEMENT, CONTROL IS RETURNED TO THE MACRO PROGRAM LAST EXECUTED.

REAL*4 RDATAISOO)

C CHECK IF CORRECT UNITS ARE BEING USED

C THE CADPARMC MACRO PROGRAMS REQUIRE UNITS OF lNCHES IF IIRDATAlll.EQ.l.Ol.AND.IRDATAl3l.NE.l.Oll GO TO 88

C THE CADPARMl MACRO PROGRAMS REQUIRE UNITS OF MILLIMETERS IF IIRDATA1ll.EQ.2.0l.AND.IRDATAl3l.NE.25.4ll GO TO 88

C CALL THE APPROPRIATE ENGLISH/METRIC 2-D MODULE:

SUBROUTINE USRPGM LISTING 117

C TO CLEAR THE MODULE FLAGS AND START OVER: IF (RDATA(2J.EQ.l.OJ CALL SRESETIRDATAJ

C TO DEFINE A SHAFT COORDINATE SYSTEM: IF (RDATA(2J,EQ.2,0J CALL SSHAFT(RDATAJ

C TO DEFINE ANY GEARS: IF (RDATA(2J,EQ,3.0J CALL SGEARS(RDATAJ

C TO DEFINE ANY LOAD CONDITIONS: IF (RDATA(2J,EQ.4,0J CALL SLOADSIRDATAJ

C TO DEFINE ANY DYNAMIC LOADS: IF (RDATA(2J.EQ.5.0J CALL SDYNAMIRDATAJ

C TO DEFINE THE SHAFT MOUNTING AND BEARING TYPES: IF (RDATA(2J.EQ.6.0J CALL SMOUNT(RDATAJ

C TO DEFINE THE BEARING CONSTRAINTS: IF (RDATA(2).EQ,7.0J CALL SBRGCN(RDATA)

C TO DEFINE INTERPOSITIONAL CONSTRAINTS: IF <RDATAl2J,EQ.8.0) CALL SINTERIRDATA)

C TO DEFINE COMMENTS AND PRINT OPTIONS: IF (RDATA(2J.EQ.9.0) CALL STEXTS(RDATA)

C TO GENERATE A SELECT-A-NALYSIS DATA FILE IF (RDATAl2).EQ.10.) CALL SSANDF(RDATA)

C IN CASE THE USER TRIES TO EXECUTE THE HELP TABLE: IF (RDATA(2),EQ,ll.) CALL SHELPS(RDATA)

GO TO 99 88 CALL MSGGEN( 'CADPARMC IN INCHES AND CADPARMl IN MILLIMETERS)') 99 RETURN

END

CiHHHfif****itifitif*itifitif**--*-**~HHHHfitif****itif*-*~HHfiHfilHHHE*-**-SUBROUTINE SRESET(RDATAJ

c--***--*****-***-**-**-*-----~***-*-***-* C C C C C C C C C C

THIS SUBROUTINE RESETS ALL OF THE MODULE FLAGS. HHEN THE PROGRAM IS BEING EXECUTED FOR THE FIRST TIME, THE RESET MODULE MUST BE SELECTED FIRST. OTHERHISE, THE PROGRAM HILL ABEND HHEN A SUBROUTINE TRIES TO READ FROM THE NON-EXISTENT FLAG FILE. THIS IS BECAUSE FORTRAN IV HAS NO OPEN STATEMENT HITH A FILE STATUS CHECK. THE RESET MODULE MAY ALSO BE USED TO "CLEAR" THE FILES HHEN A USER HANTS TO START OVER. AN ABORT OPTION IS PROVIDED IN CASE OF ACCIDENTAL SELECTION OF THIS MODULE.

INTEGER REAL*4 DATA

MOOFLG(l0,140) RDATA(500) N31/31/

IF IRDATA(4J.NE.l.O) GO TO 97 C CLEAR THE RESET FLAGS:

DO 11 I=l,10 DO 12 J=l,140

MODFLGII,J)=l3 12 CONTINUE 11 CONTINUE

REHIND N31 HRITE(N31,*) MODFLG CALL MSGGENI 'RESET COMPLETED)') GO TO 99

SUBROUTINE USRPGM LISTING 118

97 CALL MSGGENI 'RESET ABORTED)' l GO TO 99

99 RETURN ENO

C***************'ltiHf'IHOHt*********************************************** SUBROUTINE SSHAFTIROATAl

C**************************************************************'ltiHf**** C C C C C C C C C C

THIS SUBROUTINE IS USED TO ESTABLISH THE COORDINATE SYSTEM FOR EACH SHAFT. UP TO 10 SHAFTS MAY BE DEFINED AT A TIME. A ZERO AXIAL DATUM POINT MUST BE DEFINED IN BOTH VIEWS DUE TO MACRO GEOMETRY CONSTRAINTS. THE SHAFT MAY BE AT ANY ORIENTATION, BUT MUST HAVE A "LEFT" END VIEH. GEOMETRY SUCH AS POINTS, LINES, AND CIRCLES MAY BE USED TO DEFINE VARIOUS COORDINATES. AS HITH THE OTHER MODULES, THIS MODULE MAY BE EXECUTED AT ANY TIME.

COMMON /SIMBA/ ETFLAG, CCl2l, DD12l, RRR COMMON/COTCOM/LETGO,NOREAD,COTSHO,ELSHOH,IPRINT,MOOSIZ,

$ MDLLFT ,FILDATI 2 l ,MDLTXTI 17 l,IHANTI 9 l INTEGER COTSHO, ELSHOH, ONE, ETFLAG, MODFLGll0,140) REAL*4 RDATAl500J, XYl2l, RSHAFTll0,20), SHFTXTl7), TXTSHF(7,10),

$ HOLD, OUT LOGICAL*l BLANK, TEMPl4J, RESULTl4) EQUIVALENCE IHOLO,TEMPllll, IOUT,RESULT(l)) DATA ONE/'ONE '/, BLANK/' '/ DATA N31/31/, N32/32/ DATA SHFTXT/ 1 ',' , , ','

DATA TXTSHF/'SHAF','T NU','MBER',' ONE',' $ 'SHAF','T NU','MBER',' THO','

I) I

I I , I I ,

$ 'SHAF', 'T NU', 'MBER', I THR', 'EE I, I

$ 'SHAF','T NU','MBER',' FOU','R $ 'SHAF','T NU','MBER',' FIV','E $ 'SHAF','T NU','MBER',' SIX','

I I , I I , ' ' ,

$ 'SHAF','T NU','MBER',' SEV','EN ',' $ 'SHAF','T NU','MBER',' EIG','HT ',' $ 'SHAF','T NU','MBER',' NIN','E $ 'SHAF','T NU','MBER',' TEN','

UPI=ROATAl3) DO 901 I=l,10 00 901 J=l,20

901 RSHAFTII,Jl=O.O LETGO=O NOREAD=l COTSHO=O IPRINT=6 NUMSHA=RDATA14) IF IINUMSHA.LT.l).OR.INUMSHA.GT.10)) GO TO 77 REHIND N31 READIN31,*l MODFLG DO 11 I=l,10

IF IMODFLGII,ll.EQ.111) GO TO 12 11 CONTINUE

GO TO 13 12 REWIND N32

READIN32,*l RSHAFT 13 CONTINUE

IF IRDATA(5J.EQ.2.0l GO TO 21 PZEROX=RDATAl6l PZEROY=RDATA17J GO TO 22

21 CONTINUE LETGO=O NOREAD=l

SUBROlJTINE USRPGM LISTING

I I , I I ,

I I , ' ' , I I , I I , I I , I I , ' ' , I I , I I , I 0 , I I ,

'I

, 'I

119

CDTSHO=O IPRINT=6 ETFLAG=O IHANTI l )=ONE IHANTf2)=RDATAf6) CALL CADET IF IETFLAG.NE.2l GO TO 23 PZEROX=(CCfl)+DDflll/2.0 PZEROY=(CC(2l+DD(2)l/2.0

22 CONTINUE IF IRDATAIS).EQ.2.0l GO TO 25 DIRECX=RDATAl9) DIRECY=RDATAllOJ GO TO 26

25 CONTINUE LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O !HANT< 1 )=ONE IHANTl2l=RDATAl9l CALL CADET IF IETFLAG.NE.2) GO TO 23 DIRECX=I CC( 1 HOD( 1) )/2". 0 DIRECY=(CC(2)+DD(2l)/2.0

26 CONTINUE IF IIDIRECX.EQ.PZEROXJ.AND.IDIRECY.EQ.PZEROYJ) GO TO 66 IF IRDATAlllJ.EQ.2.0) GO TO 41 LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IHANTlll=ONE IHANTf2l=RDATAfl2) CALL CADET IF IETFLAG,NE.l) GO TO 23 EZEROZ=CClll EZEROY=CCl2) GO TO 42

41 CONTINUE LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IHANTI l l =ONE IHANTl2l=RDATAfl2) CALL CADET IF IETFLAG.NE.3) GO TO 23 EZEROZ=CCt 1 l EZEROY=CC( 2 l

42 CONTINUE IF (IEZEROZ.EQ.PZEROXJ.AND.fEZEROY.EQ.PZEROYll GO TO 67

C CHECK TO SEE IF PZERO, DIREC, AND EZERO POINTS ALIGN IF IABSIDIRECX-PZEROXJ.LE .. 001) GO TO 51 SLOPE=tDIRECY-PZEROYJ/fDIRECX-PZEROXJ GO TO 52

51 IF (ABStEZEROZ-PZEROXJ.GE.0.7) GO TO 69 52 Y=PZEROY+SLOPE*fEZEROZ-PZEROXJ

IF IABSIYJ.LE .. 001) GO TO 53 DISCRP=EZEROY/Y IF (IDISCRP.LT.0.98J.OR.(OISCRP.GT,l.02ll GO TO 69 GO TO 54

53 IF fABStEZEROY-Yl.GE.0.7l GO TO 69 54 CONTINUE

SUBROUTINE USRPGM LISTING 120

LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O rnANTlll=ONE IHANTl2l=RDATAl13) CALL CADET IF IETFLAG.NE.l) GO TO 23 EANGRZ=CC(l) EANGRY=CCl2l IF IIEZEROZ.EQ.EANGRZl.AND.IEZEROY.EQ.EANGRYll GO TO 68 XY(ll=RDATAl14) XYI 2 l=RDATAI 15) IFIRDATAl16l.EQ.2.l GO TO 36 N= -RDATAl17l NHORDS=IN+3)/4 IF IN.LT.ll GO TO 31 IF IN.GT.25) GO TO 32 DO 34 K=l,NHORDS

SHFTXTIKl=RDATAIK+l7l 34 CONTINUE

HOLD=SHFTXTINHORDSJ NCHAR=N-1 N~lORDS-1 )*4 DO 50 I=l,NCHAR

50 RESULTIIJ=TEMP(I) IF INCHAR.EQ.4) GO TO 70 NLEFT=NCHAR+l DO 60 I=NLEFT,4

60 RESULT(Il=BLANK 70 SHFTXTINHORDSJ=OUT

GO TO 37 36 CONTINUE

DO 38 K=l,7 SHFTXTIKl=TXTSHFIK,NUHSHAJ

38 CONTINUE N=24 NWORDS=6

37 CONTINUE LETGO=O NOREAD=l CDTSHO=O IPRINT=6 CALL CADNSIXY,N,SHFTXT,&1001) MODFLG(NUMSHA,ll=lll RSHAFTINUMSHA,ll=PZEROX RSHAFTINUMSHA,2l=PZEROY RSHAFTINUMSHA,3l=DIRECX RSHAFTINUMSHA,4l=DIRECY RSHAFTI NUMSHA ,5 l=EZEROZ RSHAFT(NUMSHA,6l=EZEROY RSHAFT(NUNSHA,7l=EANGRZ RSHAFTI NUMSHA, 8 l =EANGRY RSHAFTI NUMSHA, 9 l =XY 11 l RSHAFTINUMSHA,10l=XYl2l RSHAFTINUMSHA,lll=N RSHAFTINUMSHA,12l=NWORDS DO 35 M=l,7

RSHAFTINUMSHA,M+l2l=SHFTXTIMJ 35 CONTINUE

C STORE UNITS FLAG IN SHAFT ARRAY UPIFLG=RDATA(ll RSHAFT(NUMSHA,20l=UPIFLG REl'IIND N31 REWIND N32 HRITE(N31,*l MODFLG HRITEIN32,*l RSHAFT

SUBROUTINE VSRPGM LISTING 121

CALL MSGGEN( 'SHAFT MODULE UPDATED)') GO TO 99

23 CONTINUE CALL MSGGENI 'ETFLAG PROBLEMS)') GO TO 99

31 CALL MSGGENI 'YOU MUST ENTER A SHAFT NAME)') GO TO 99

32 CALL MSGGENI 'SHAFT NAME OVER 25 CHARACTERS)') GO TO 99

66 CALL MSGGENI 'DIRECTION POINT MUST NOT BE THE PV ZERO POINT)') GO TO 99

67 CALL MSGGENI 'ZERO POINTS MUST COME FROM DIFFERENT VIEHSJ') GO TO 99

68 CALL MSGGENI 'THE EV ZERO POINT CAN NOT BE THE ANGLE REF POINT)') GO TO 99

69 CALL MSGGENI 'END VIEH ZERO POINT NOT ON SHAFT CENTERLINE)') GO TO 99

77 CALL MSGGENI 'THE SHAFT NUMBER MUST BE BETHEEN l AND 10)') GO TO 99

1001 CALL MSGGENI 'CADNS PROBLEMS IN SHAFT MODULE)') 99 RETURN

END

C************-*******************************'lHf*'lHf**'lHf********'lHf**'lHf SUBROUTINE SGEARSIRDATA)

C********'lHf******************'lHf*'lHf****'lHf****************************** C C C C C C C C C C

THIS SUBROUTINE IS USED TO DEFINE EXISTING GEARS. AT PRESENT, SAN ACCEPTS ONLY ll GEAR TYPES: SPUR, HELICAL, HERRINGBONE, STRAIGHT BEVEL, SPIRAL BEVAL, STRAIGHT HORM, STRAIGHT HORM GEAR, DOUBLE ENVELOPING HORM, DOUBLE ENVELOPING HORM GEAR, HYPOID GEAR, AND HYPOID PINION, THE GEAR EQUATIONS USED ARE TAKEN FROM THE SELECT-A-NALYSIS INSTRUCTION MANUAL. THEY ARE NEEDED TO COMPUTE THE MEAN WORKING DIAMETERS OF CERTAIN GEARS, GEAR LOADS ARE DEFINED IN THE LOADS MODULE.

COMMON /SIMBA/ ETFLAG, CCl2), DDl2), RRR COMMON/CDTCOM/LETGO,NOREAD,CDTSHO,ELSHOH,IPRINT,MODSIZ,

$ MDLLFT,FILDAT(2),MDLTXT1l7J,IHANTl9) COMMON /NTGEAR/ NUMSHA,NUMGRS,GEARX,GEARY,DIAM,PRSANG,TNUMSH(l6),

$ TNUMGRI 16), TGEARXI 16), TGEARYI 16), TDIAMI 16), $ TPRSANt 16) ,GRTYPE ,PORMl~D,XYI 2) ,UPI

INTEGER CDTSHO, ELSHOH, ONE, ETFLAG, MODFLGll0,140), $ NUMSHA, NUMGRS

REAL*4 RDATAl500), VALUE, SHFTXTl7), TDEFLTl4), $ THELANll6),TPITANll6),TSPIAN(l6l,TLEDANl16),LEDANG, $ TGRGEFtl6l,TGRGRA116),TCENDI(l6),TROTAN(l6),TFACANl16), $ RGEAR1(20,10l,RGEAR2120,10l,RGEAR3(20,l0),RGEAR4120,10l, $ RGEAR5(20,10l,RGEAR6120,10l,RGEAR7120,10l,RGEAR8120,10l, $ RGEAR9120,10l,RGEARA(20,10J,RGEARS(20,10J

DATA ONE/'ONE '/, TDEFLT/'TIMK','EN D','EFAU','LT '/ DATA N31/3l/, N33/33/

UPI=RDATAl3) DO 901 I=l, 20 DO 901 J=l,10

RGEARSII,J)=0,0 RGEARllI,J)=O.O RGEAR2tI,J)=O.O RGEAR3tI,Jl=O.O RGEAR41I,J)=O.O RGEARSII,Jl=O.O RGEAR61I,J)=O.O RGEAR7tI,J)=O.O RGEAR81I,Jl=O.O RGEAR91I,J)=O.O

SUBROUTINE USRPGM LISTING 122

RGEARA(I,J)=O.O 901 CONTINUE

LETGO=O NOREAD=l CDTSHO=O IPRINT=6 NUMSHA=RDATAl5) NUMGRS=RDATAl6) IF IINUMSHA.LT.1).0R.INUMSHA.GT.10)) GO TO 77 IF IINUMGRS.LT.1).0R.INUMGRS.GT.20)) GO TO 78 REHIND N31 READIN31,*) MODFLG

C READ IN ANY EXISTING GEAR INFORMATION REHIND N33 IF IMODFLGll,2).EQ.111) READIN33,*) RGEARl IF IMODFLGl2,2).EQ.lll) READIN33,*) RGEAR2 IF IMODFLG13,2).EQ.lll) READIN33,*) RGEAR3 IF (MODFLG14,2).EQ.lll) READIN33,*) RGEAR4 IF IMODFLGIS,2).EQ.111) READIN33,*) RGEARS IF IMODFLG16,2).EQ.lll) READIN33,*) RGEAR6 IF IMODFLG17,2).EQ.lll) READIN33,*) RGEAR7 IF IMODFLG18,2).EQ.lll) READIN33,*) RGEAR8 IF IMODFLG19,2).EQ.lll) READIN33,*) RGEAR9 IF IMODFLGll0,2).EQ.111) READIN33,*) RGEARA

IF IRDATAl4).NE.2.) GO TO 10 C SET FLAGS TO DELETE GEAR INFORMATION FROM THE

HODFLGINUMSHA,NUMGRS+2)=13 DO 9 J=3,22,1

IF IMODFLGINUMSHA,J).EQ.111) GO TO 8 9 CONTINUE

MODFLGINUMSHA,21=13 8 CONTINUE

GO TO 333

C ADD OR OVERHRITE A GEAR IN THE DATA BASE: 10 CONTINUE

IF IRDATAl7).EQ.2.0) GO TO 21 GEARX=RDATAl8) GEARY=RDATAl9) GO TO 22

21 CONTINUE ETFLAG=O IHANTll)=ONE IHANTl2)=RDATAl8) CALL CADET IF IETFLAG,NE,2) GO TO 23 GEARX=ICCll)+DDllll/2.0 GEARY=ICCl2)+DDl2l)/2.0 GO TO 22

23 CONTINUE CALL MSGGEN( 'ETFLAG PROBLEMS)') GO TO 99

22 CONTINUE C DETERMINE GEAR TYPE:

IF IRDATA(ll).EQ.1.0) GO TO 31 IF IRDATAlll),EQ.2.0) GO TO 32 IF IRDATAlll).EQ.3.0) GO TO 33 IF IRDATAl12).EQ.l.O) GO TO 34 IF IRDATAl12J.EQ.2.0) GO TO 35 IF IRDATA113).EQ.l.0) GO TO 36 IF IRDATAl13).EQ.2.0) GO TO 37 IF IRDATAl14),EQ,l.Ol GO TO 38 IF IRDATAl14).EQ.2.0) GO TO 39 IF IROATA115).EQ.l.OJ GO TO 40

SUBROUTINE USRPGM LISTING

DATA BASE:

123

IF (RDATAl15l.EQ.2.0) GO TO 41 C IF THE DESIRED GEAR TYPE IS NOT AVAILABLE, PROMPT USER:

CALL MSGGENI 'USE FORCE COMPONENTS IN "LOADS" MODULE INSTEAD)') GO TO 99

C GEAR TYPE= SPUR 31 CONTINUE

GRTYPE=l.O IF IRDATAllOJ.EQ.2.) GRTYPE= -1.0 DIAM=RDATAl12) PORMWD=l.O PRSANG=RDATA(l3) CALL SNITCH XLOC=RDATA114) XY1l)=RDATA114l XYl2)=RDATAl15l CALL CADNSIXY,15,'GEAR TYPE: SPUR',&1001) XY12l=XYl2l-.20*UPI CALL GRNOTE GO TO 19

C GEAR TYPE= HELICAL 32 CONTINUE

GRTYPE=Z.O IF IRDATAllOJ.EQ.2. l GRTYPE= -2.0 HELANG=RDATAl12l RGEARSINUMGRS,6l=HELANG HAND=RDATAI 13 l RGEARStNUMGRS,7l=HAND DIAM=RDATAl14l PORM~·ID=l. 0 PRSANG=RDATA(l5l CALL SWITCH VALUE=HELANG CALL CONVTITHELAN,3,VALUE,&1111) XLOC=RDATAl16l XYlll=RDATA116) XYl2)=RDATAl17l CALL CADNSIXY,18,'GEAR TYPE: HELICAL',&1001) XYl2l=XYl2l-.20*UPI CALL GRNOTE CALL CADNSIXY,18,'HELIX ANGLE - DEG:',&1001) XYll)=XYlll+3.0*UPI CALL CADNSIXY,16,THELAN,&1001) XYlll=XLOC XYl2l=XYl2)-.20*UPI IF IHAND.EQ.l.Ol GO TO 51 CALL CADNSIXY,22,'RIGHT HAND ORIENTATION',&1001) GO TO 52

51 CALL CADNSIXY,21,'LEFT HAND ORIENTATION',&1001) 52 CONTINUE

GO TO 19 C GEAR TYPE= HERRINGBONE

33 CONTINUE GRTYPE=3.0 IF IRDATAllOJ.EQ.2. l GRTYPE= -3.0 HELANG=RDATAl12J RGEARSINUMGRS,6)=HELANG DIAM=RDATAl13) PORMWD=l.O PRSANG=RDATAl14) CALL SIUTCH VALUE=HELANG CALL CONVTITHELAN,3,VALUE,&1111) XLOC=RDATAl15) XVI l l=RDATAI 15 l XY(2l=RDATA116) CALL CADNSIXY,22,'GEAR TYPE: HERRINGBONE',&1001) XY12l=XYl2)-.20*UPI

SUBROUTINE USRPGM LISTING 124

CALL GRNOTE CALL CADNS(XY,18,'HELIX ANGLE - DEG:',&1001) XY(ll=XYlll+3.0*UPI CALL CADNS(XY,16,THELAN,&1001) GO TO 19

C GEAR TYPE= STRAIGHT BEVEL 34 CONTINUE

GRTYPE=4.0 IF (RDATAllO).EQ.2. l GRTYPE= -4.0 APEX=RDATAl14l RGEARSINUMGRS,6l=APEX PITANG=RDATA(l5l RGEARSINUMGRS,7l=PITANG PORMWD=2.0 IF IRDATA(l3l.EQ.2. l GO TO 53 DIAM=RDATA116l PRSANG=RDATAl17) XLOC=RDATA(l8) XY1ll=RDATAl18) XYl2l=RDATAl19l GO TO 54

53 CONTINUE TOOLEN=RDATAl16) PITCHD=RDATA(l7l PRSANG=RDATAl18) DIAM= PITCHD - ITOOLEN * SINIPITANG)) XLOC=RDATAl19) XYlll=RDATA(l9l XYl2)=RDATAl20)

54 CONTINUE CALL SHITCH VALUE=PITANG CALL CONVTITPITAN,3,VALUE,&1111) CALL CADNSIXY,25,'GEAR TYPE: STRAIGHT BEVEL',&1001) XYl2l=XYl2l-.20*UPI CALL GRNOTE IF (APEX.EQ.1.0) GO TO 55 CALL CADNS( XY, 15, 'APEX TO "RIGHT"', &1001) GO TO 56

55 CALL CADNSIXY,14,'APEX TO "LEFT"',&lOOll 56 CONTINUE

XYlll=XLOC XY12J=XY(2l-,20*UPI CALL CADNS(XY,18,'PITCH ANGLE - DEG:',&1001) XY(lJ=XYlll+3.0*UPI CALL CADNSIXY,16,TPITAN,&1001) GO TO 19

C GEAR TYPE= SPIRAL BEVEL 35 CONTINUE

GRTYPE=5.0 IF IRDATAllOl.EQ.2. l GRTYPE= -5.0 APEX=RDATA( 14) RGEARSINUMGRS,8J=APEX PITANG=RDATAl15J RGEARSINUMGRS,9J=PITANG SPIANG=RDATA(l6) RGEARSINUMGRS,6l=SPIANG HAND=RDATAl17) RGEARS(NUMGRS,7l=HAND PORMHD=2.0 IF IRDATAl13l.EQ.2.) GO TO 57 DIAM=RDATA(l8) PRSANG=RDATA(l9J XLOC=RDATAl20) XYI l l=RDATA( 20 l XY12J=RDATA121) GO TO 58

SUBROUTINE USRPGM LISTING 125

57 CONTINUE TOOLEN=RDATA(18) PITCHD=RDATA(19) PRSANG=RDATA(20) DIAM= PITCHD - tTOOLEN * SINIPITANG)) XLOC=RDATA(21l XY(ll=RDATA(21) XY(2)=RDATA(22)

58 CONTINUE CALL SHITCH VALUE=SPIANG CALL CONVT(TSPIAN,3,VALUE,&1111) VALUE=PITANG CALL CONVTITPITAN,3,VALUE,&1111) CALL CADNS<XY,23,'GEAR TYPE: SPIRAL BEVEL',&1001) XYl2)=XY12)-.20*UPI CALL GRNOTE CALL CADNS(XY,19,'SPIRAL ANGLE - DEG:',&1001) XY(l)=XY(l)+3.25*UPI CALL CADNS(XY,16,TSPIAN,&1001) XY(l)=XLOC XY(2l=XY(2)-.20*UPI IF IHAND.EQ.1.0) GO TO 59 CALL CADNS(XY,22,'RIGHT HAND ORIENTATION',&1001) GO TO 60

59 CALL CADNSIXY,21,'LEFT HAND ORIENTATION',&1001) 60 CONTINUE

XYtl)=XLOC XY(2)=XYl2)-.20*UPI IF (APEX.EQ.1.0) GO TO 61 CALL CADNS( XY, 15, 'APEX TO "RIGHT"' , &1001) GO TO 62

61 CALL CADNSIXY,14, 'APEX TO "LEFT'" ,&1001) 62 CONTINUE

XYl2)=XY(2)-.20*UPI CALL CADNSIXY,18,'PITCH ANGLE - DEG:',&1001) XYlll=XY(l)+3.0*UPI CALL CADNS(XY,16,TPITAN,&1001) GO TO 19

C GEAR TYPES= STRAIGHT HORM AND STRAIGHT HORM GEAR 36 CONTINUE

GRTYPE=6.0 IF IRDATA(lO),EQ.2.J GRTYPE= -6.0 GO TO 67

37 CONTINUE GRTYPE=7.0 IF (RDATA(lO).EQ.2,J GRTYPE= -7.0

67 CONTINUE LEDANG=RDATA(l6J RGEARSINUMGRS,7)=LEDANG HAND=RDATAl17) RGEARS(NUMGRS,8J=HAND DIAM=RDATA(l8) PORMWD=l.O PRSANG=RDATA(19l IF IRDATA(14l,EQ.1. J GRGEFF=RDATA(15) IF (RDATA(l4).EQ.2.) GRGEFF=O.O RGEARSINUMGRS,6)=GRGEFF CALL SHITCH VALUE=LEDANG CALL CONVT(TLEDAN,3,VALUE,&1111) IF IRDATA(l4l.EQ.1. l VALUE= GRGEFF IF IRDATAl14l.EQ.1.) CALL CONVTITGRGEF,3,VALUE,&1111) XLOC=RDATA(20) XY(ll=RDATAl20) XYl2l=RDATAl21l IF IRDATAl13l.EQ.2.) GO TO 68

SUBROUTINE USRPGM LISTING 126

CALL CADNS(XY,24,'GEAR TYPE: STRAIGHT HORM',&1001) GO TO 69

68 CALL CADNSIXY,29,'GEAR TYPE: STRAIGHT HORM GEAR',&1001) 69 CONTINUE

XYl2l=XY(2l-.20*UPI CALL GRNOTE CALL CADNSlXY,19,'GEARING EFFICIENCY:',&1001! IF IRDATAll4l.EQ.l) GO TO 63 XY!ll=XY1ll+3.3*UPI CALL CAONS(XY,16,TDEFLT,&lOOll GO TO 64

63 CONTINUE XYlll=XYlll+3.3~PI CALL CAONSIXY,16,TGRGEF,&1001)

64 CONTINUE XYlll=XLOC XYl2l=XYl2l-.20*UPI CALL CADNS(XY,17,'LEAD ANGLE - DEG:',&1001) XY1ll=XY(l)+3.0*UPI CALL CADNSIXY,16,TLEDAN,&1001) XYlll=XLOC XYl2l=XYl2)-.20*UPI IF IHANO.EQ.1.0) GO TO 65 CALL CADNSIXY,22,'RIGHT HANO ORIENTATION',&1001) GO TO 66

65 CALL CAONSIXY,21,'LEFT HAND ORIENTATION',&1001) 66 CONTINUE

GO TO 19 C GEAR TYPES= DOUBLE ENVELOPE HORM AND DOUBLE ENVELOPE HORM GEAR

38 CONTINUE GRTYPE=8.0 IF lRDATA(lO).EQ.2. l GRTYPE= -8.0 GO TO 70

39 CONTINUE GRTYPE=9.0 IF IRDATAllOl.EQ.2.l GRTYPE= -9.0

70 CONTINUE GRGEFF=RDATAl15l RGEARSINUMGRS,6l=GRGEFF GRGRAT=RDATA116) RGEARSINUMGRS,7l=GRGRAT HAND=RDATAl17l RGEARS(NUMGRS,8l=HAND CENDIS=RDATAl18) RGEARSlNUMGRS,9l=CENDIS DIAM=RDATAll9l PORMND=l,O PRSANG=RDATAl20) CALL SWITCH VALUE=GRGEFF CALL CONVTITGRGEF,3,VALUE,&1111) VALUE=GRGRAT CALL CONVTlTGRGRA,3,VALUE,&lllll VALUE=CENDIS CALL CONVTlTCENDI,3,VALUE,&1111) XLOC=RDATAl2ll XYlll=RDATAl2ll XYl2l=ROATAl22l IF IRDATAll4).EQ.2. l GO TO 71 CALL CADNSlXY,31,'GEAR TYPE: DOUBLE ENVELOPE HORM',&1001) GO TO 72

71 CALL CADNSIXY,36,'GEAR TYPE: DOUBLE ENVELOPE HORM GEAR',&1001) 72 CONTINUE

XYl2l=XYl2l-.20*UPI CALL GRNOTE CALL CADNSIXY,19,'GEARING EFFICIENCY: ',&1001) XYlll=XYlll+3.3*UPI

SUBROUTINE USRPGM LISTING 127

CALL CADNSIXY,16,TGRGEF,&10011 XY(l)=XLOC XYl2)=XYl2)-.20*UPI CALL CADNSIXY,14,'GEARING RATI0:',&1001) XYll)=XYlll+2.75*UPI CALL CADNSIXY,16,TGRGRA,&1001) XYlll=XLOC XYl2J=XYl2J-.20*UPI IF IHAND.EQ.l.OJ GO TO 73 CALL CADNSIXY,22,'RIGHT HAND ORIENTATION',&1001) GO TO 74

73 CALL CADNSIXY,21,'LEFT HAND ORIENTATION',&1001) 74 CONTINUE

XY(l)=XLOC XYl2)=XYl2l-.20*UPI CALL CADNSIXY,16,'CENTER DISTANCE:',&1001) XY1ll=XYl1)+2.9*UPI CALL CADNSIXY,16,TCENDI,&10011 GO TO 19

C GEAR TYPES= HYPOID GEAR AND HYPOID PINION 40 CONTINUE

GRTYPE=lO.O IF IRDATAllO).EQ.2.l GRTYPE= -10.0 ROTANG=RDATAl19) RGEARSINUMGRS,9l=ROTANG GO TO 75

41 CONTINUE GRTYPE=ll.O IF IRDATAllOJ.EQ.2.) GRTYPE= -11.0 FACANG=RDATAl19J RGEARS(NUMGRS,9l=FACANG

75 CONTINUE SPIANG=RDATAl16l RGEARS(NUMGRS,6J=SPIANG HAND=RDATAl17) RGEARSINUMGRS,7)=HAND APEX=RDATA(l8) RGEARSINUMGRS,8)=APEX PORMl'l0=2.0 IF IRDATAl20J.EQ.2.) GO TO 76 DIAM=RDATAl21) PRSANG=RDATAl22l XLOC=RDATA(23) XYl1)=RDATAl23J XY(2l=RDATAl24) GO TO 80

76 CONTINUE IF IRDATAl15J.EQ.2.) GO TO 81 TOOLEN=RDATAl21J PITCHD=RDATA(22) PRSANG=RDATA(23) DIAM= PITCHD - (TOOLEN * SIN(ROTANG)) XLOC=RDATA(24) XY(l)=RDATA(24) XYl2)=RDATA(25) GO TO 80

81 CONTINUE PINTTH=RDATA(2ll GERTTH=RDATAl22l GRSPIA=RDATAl23l IF (RDATAl24J.EQ.2. J GO TO 82 GRDIAM=RDATA(25) PRSANG=RDATA(26) DIAM=GRDIAM*IPINTTH/GERTTH)*ICOS(GRSPIAJ/COS(SPIANGJJ XLOC=RDATAl27J XYl1J=RDATAl27) XY( 2 J=RDATA( 28 l

SUBROUTINE USRPGM LISTING 128

GO TO 80 82 CONTINUE

ROTANG=ROATAl25) TOOLEN=RDATAl26) PITCHO=ROATA(27) PRSANG=ROATAl28) GROIAM = PITCHO - (TOOLEN * SIN(ROTANG)) OIAM=GROIAM*IPINTTH/GERTTH)*ICOSIGRSPIA)/COS(SPIANG)) XLOC=ROATAl29) XY1ll=RDATAl29) XY12l=ROATAl30)

80 CONTINUE CALL Sl'UTCH VALUE=SPIANG CALL CONVT(TSPIAN,3,VALUE,&lllll IF IROATAl15J.EQ.l. l VALUE= ROTANG IF IROATAl15).EQ.2.) VALUE= FACANG IF (ROATAl15l.EQ.l. l CALL CONVTITROTAN,3,VALUE,&1111) IF IROATAl15l.EQ.2. J CALL CONVTITFACAN,3,VALUE,&1111) IF IROATAl15l.EQ.2.) GO TO 83 CALL CAONSIXY,22,'GEAR TYPE: HYPOIO GEAR',&1001) GO TO 84

83 CALL CAONSIXY,24,'GEAR TYPE: HYPOIO PINION',&1001) 84 CONTINUE

XY12)=XYl2)-.20*UPI CALL GRNOTE CALL CAONSIXY,19,'SPIRAL ANGLE - OEG:',&1001) XY(l)=XYl1J+3.25*UPI CALL CAONSIXY,16,TSPIAN,&1001) XYlll=XLOC XY12l=XY12)-.20*UPI IF IHANO.EQ.l.OJ GO TO 85 CALL CAONS(XY,22,'RIGHT HANO ORIENTATION',&1001) GO TO 86

85 CALL CAONSIXY,21,'LEFT HANO ORIENTATION',&1001) 86 CONTINUE

XYll)=XLOC XYl2l=XYl2)-.20*UPI IF IAPEX.EQ.l.Ol GO TO 87 CALL CAONSI XY, 15, 'APEX TO "RIGHT"' , &1001 l GO TO 89

87 CALL CAONSI XY ,14, 'APEX TO "LEFT"' ,&1001) 89 CONTINUE

XY(2)=XYl2J-.20*UPI IF IROATAl15J.EQ.2) GO TO 90 CALL CAONSIXY,16,'GEAR ROOT ANGLE:',&1001) XYlll=XYl1)+2.9*UPI CALL CAONSIXY,16,TROTAN,&1001) GO TO 91

90 CONTINUE CALL CAONSIXY,18,'PINION FACE ANGLE:',&1001) XYlll=XYlll+3.0*UPI CALL CADNSIXY,16,TFACAN,&1001)

91 CONTINUE GO TO 19

19 CONTINUE MOOFLGINUMSHA,2)=111 MOOFLGINUMSHA,NUMGRS+2l=lll

RGEARSINUMGRS,ll=GRTYPE RGEARSINUMGRS,2J=GEARX RGEARS(NUMGRS,3l=GEARY RGEARSINUMGRS,4l=OIAM RGEARSINUMGRS,5l=PRSANG

IF (NUMSHA.EQ.ll CALL COPYGRIRGEARS,NUMGRS,RGEARll

SUBROUTINE USRPGM LISTING 129

IF (NUHSHA.EQ.ZJ CALL COPYGRIRGEARS,NUMGRS,RGEARZJ IF INUHSHA.EQ.3) CALL COPYGR(RGEARS,NUMGRS,RGEAR3J IF (NUMSHA.EQ.4) CALL COPYGR(RGEARS,NUMGRS,RGEAR4J IF (NUMSHA.EQ.Sl CALL COPYGR(RGEARS,NUHGRS,RGEARSJ IF INUMSHA.EQ.6l CALL COPYGRIRGEARS,NUMGRS,RGEAR6l IF INUMSHA.EQ.7) CALL COPYGR(RGEARS,NUMGRS,RGEAR7J IF INUHSHA.EQ.8) CALL COPYGR(RGEARS,NUMGRS,RGEAR8) IF INUMSHA.EQ.9) CALL COPYGR(RGEARS,NUMGRS,RGEAR9J IF INUHSHA,EQ.10) CALL COPYGRIRGEARS,NUMGRS,RGEARAJ

333 CONTINUE REWIND N31 HRITEIN31,*1 MODFLG

REWIND N33 IF IMODFLGll, Z J. EQ .111 l WRITE I N33 ,* J RGEARl IF IMODFLG(Z,ZJ.EQ.1111 HRITE(N33,*1 RGEARZ IF (MODFLG(3,ZJ.EQ,111J HRITEIN33,*l RGEAR3 IF ( MODFLGI 4,2 J. EQ.111 J l'IRITEIN33,* J RGEAR4 IF IMODFLG(S,2J.EQ.111J HRITEIN33,*1 RGEARS IF (MODFLG16,ZJ.EQ.111J HRITE(N33,*l RGEAR6 IF IMODFLG17,2J.EQ.llll HRITElN33,*l RGEAR7 IF (MODFLG18,2J.EQ.llll HRITE(N33,*1 RGEAR8 IF (MODFLG(9,2J.EQ.111J HRITE(N33,*l RGEAR9 IF IMODFLGll0,21.EQ.lli J HRITE(N33,*l RGEARA

C INFORM USER THAT A GEAR HAS DELETED FROM THE DATA BASE IF IRDATA(4).EQ.2.J GO TO 79

C OTHERHISE, TELL USER THAT A GEAR HAS ADDED TO THE DATA BASE CALL MSGGEN( 'GEARS MODULE UPDATED)') GO TO 99

77 CALL MSGGENl'THE SHAFT NUMBER MUST BE BETWEEN 1 AND 101' J GO TO 99

78 CALL MSGGEN( 'THE GEAR NUMBER MUST BE BETWEEN 1 AND 201'1 GO TO 99

79 CALL MSGGENI 'GEAR DELETED FROM DATA BASEJ'J GO TO 99

1001 CALL MSGGEN( 'CADNS PROBLEMS IN GEARS MODULE)' J GO TO 99

1111 CALL MSGGEN( 'CONVT PROBLEMS IN GEARS MODULE)') 99 RETURN

END

C********************************************************************* SUBROUTINE COPYGRIOLD,LABEL,NEH)

C********************************************************************* C C C C C

THIS SUBROUTINE IS USED TO COPY THE HORKING ARRAY OF SUBROUTINE GEARS TO THE ACTUAL GEAR ARRAY FOR THE GIVEN SHAFT. THIS ENABLES ONLY SHAFTS HITH GEARS DEFINED TO BE HRITTEN TO THE FILE.

REAL*4 OLDl20,10l, NEH120,10J INTEGER LABEL

DO 10 J=l,10 NEHILABEL,Jl=OLDILABEL,JJ

10 CONTINUE RETURN END

C****************************iHHI************************************** SUBROUTINE SHITCH

C********************************************************************* C C THIS SUBROUTINE IS USED TO CONVERT REAL*4 AND INTEGER VARIABLES

SUBROUTINE USRPGM LISTING 130

C TO TEXT VARIABLES SO THAT THEY CAN BE HRITTEN IN CADAM NOTES. C SUBROUTINE CONVT IS A CADCD UTILITY ROUTINE. C

COMMON /NTGEAR/ NUMSHA,NUMGRS,GEARX,GEARY,DIAM,PRSANG,TNUMSH(l6l, $ TNUMGR(l6l,TGEARX(l6l,TGEARY(l6l,TDIAM(l6), $ TPRSAN(l6l,GRTYPE,PORMHD,XY(2l,UPI

INTEGER NUMSHA, NUMGRS

VALUE=NUMSHA CALL CONVT(TNUMSH,O,VALUE,&lllll VALUE=NUMGRS CALL CONVT(TNUMGR,O,VALUE,&1111) VALUE=GEARX CALL CONVT(TGEARX,3,VALUE,&lllll VALUE=GEARY CALL CONVT(TGEARY,3,VALUE,&lllll VALUE=DIAM CALL CONVT(TDIAM,3,VALUE,&11111 VALUE=PRSANG CALL CONVT(TPRSAN,3,VALUE,&1111) GO TO 99

1111 CALL MSGGEN( 'CONVT PROBLEMS IN GEARS MODULE)' J 99 RETURN

END

C'IHHf*********************iHHHOHf*********--**~*****'IHHf*-******** SUBROUTINE GRNOTE

C**********************'IHHf**'IHHf*******'IHHf**'IHHf***********-*********** C C C C C

THIS SUBROUTINE IS USED TO HRITE COMMON GEAR INFORMATION TO THE SCREEN HITH CADAM NOTES. ALL GEARS TYPES ACCESS THIS ROUTINE AFTER DISPLAYING THE GIVEN GEAR TYPE.

COMMON /NTGEAR/ NUMSHA,NUMGRS,GEARX,GEARY,DIAM,PRSANG,TNUMSH(l6), $ TNUMGR(l6J,TGEARX(l6J,TGEARYl16J,TDIAM(l6J, $ TPRSAN(l6l,GRTYPE,PORMHD,XY(2J,UPI

INTEGER NUMSHA, NUMGRS

XLOC=XY( 1 J CALL CADNS(XY,13,'SHAFT NUMBER:',&10011 XY(lJ=XY<lJ+2.25*UPI CALL CADNS(XY,16,TNUMSH,&1001) XYlll=XLOC XYl2J=XY!2J-.20*UPI CALL CADNS<XY,12,'GEAR NUMBER:',&1001) XYlll=XY(lJ+2.0*UPI CALL CADNSIXY,16,TNUMGR,&1001) XYlll=XLOC XY!2J=XYl2J-.20*UPI IF IGRTYPE.GT.O.OJ GO TO 45 CALL CADNSIXY,26,'GEAR ON BEARING OUTER RACE',&1001) GO TO 46

45 CALL CADNSIXY,13,'GEAR ON SHAFT',&1001) 46 CONTINUE

XY(2J=XY(2J-.20*UPI CALL CADNS(XY,16,'GEAR X LOCATION:',&1001) XYl1J=XYl1)+2.75*UPI CALL CADNSIXY,16,TGEARX,&1001) XYlll=XLOC XY(2J=XY(2)-.20*UPI CALL CADNSIXY,16,'GEAR Y LOCATION:',&1001) XY1ll=XY(ll+2.75*UPI CALL CADNSIXY,16,TGEARY,&1001) XYllJ=XLOC XYl2J=XYl2J-.20*UPI

SUBROUTINE USRPGM LISTING 131

IF IPORMHO.EQ.2.0) GO TO 47 CALL CAONSIXY,15,'PITCH DIAMETER:',&1001) XYlll=XYlll+2.5*UPI CALL CADNSIXY,16,TDIAM,&1001) GO TO 48

47 CONTINUE CALL CADNSIXY,22,'MEAN HORKING OIAMETER:',&1001) XY(l)=XYl1)+3.70*UPI CALL CADNSIXY,16,TDIAM,&1001)

48 CONTINUE XY(l)=XLOC XYl2)=XYl2)-.20*UPI CALL CADNS(XY,21,'PRESSURE ANGLE - OEG:',&1001) XYlll=XYlll+3.5*UPI CALL CADNSIXY,16,TPRSAN,&1001) XYll)=XLOC XY(2l=XY(2l-.20*UPI

1001 CALL MSGGENI 'CADNS PROBLEMS IN GEARS MODULE)' l 99 RETURN

END

C***********************-*******************--***-************** SUBROUTINE SLOADSIRDATAl

C********************************************************-********** C C C C C C C C C C C

THIS SUBROUTINE IS USED TO PROCESS BOTH GEAR LOADS AND EXTER-NALLY APPLIED FORCES. THE ALLOHABLE TYPES OF EXTERNAL LOADS ARE: LINEAR DISTRIBUTED LOADS IN THE SHAFT AXIS PLANE, PARABOLIC DISTRIBUTED LOADS IN THE SHAFT AXIS PLANE, RESULTANT DISTRIBUTED LOADS IN THE TRANSVERSE PLANE, MOMENTS AND COUPLES PERPENDICULAR TO THE SHAFT AXIS, AND POINT LOADS (LOADS AT ANY ORIENTATION IN SPACE). SAN SPECIFICATIONS REQUIRE THAT GEAR LOADS BE SEPARATE FROM EXTERNAL LOADS. TO SAVE ARRAY AND DISK SPACE, ARRAY MAPPING AND SEPARATE SHAFT ARRAYS ARE USED.

COMMON /SIMBA/ ETFLAG, CCl2), DDl2), RRR COMHON/COTCOM/LETGO,NOREAD,CDTSHO,ELSHOH,IPRINT,MODSIZ,

$ MDLLFT,FILDATl2l,MDLTXTl17),IHANT(9) INTEGER CDTSHO, ELSHOH, ONE, ETFLAG, MODFLG(l0,140), NUMGRl4),

$ HIFLAG, LOFLAG REAL*4 RDATAl500J, POHFACl4), PTOANG(4J, ANG114J, ANG214),

$ MAG, MAGl, MAG2, MAG3, MASS, PTX14J, PTYl4), XYl2J REAL*4 RHISTOl50,26l, RHIST1150,26l, RHIST2150,26l,

$ RHIST3150,26l, RHIST4150,26), RHIST5150,26), $ RHIST6150,26), RHIST7150,26), RHIST8150,26), $ RHIST9150,26J, RHISTA150,26)

REAL*4 RLOADSl50,230l, RLOAD1150,230), RLOAD2150,230), $ RLOAD3150,230l, RLOAD4(50,230l, RLOAD5150,230), $ RLOAD6150,230l, RLOAD7150,230l, RLOADSIS0,230), $ RLOAD9150,230l, RLOADAl50,230l

LOGICAL*l TNUMSH( 16 J, TNUMLC( 16), TSPEEDI 16 J, TPTIMEI 16), $ TGEARSl16),TPFACTl16),TANG1116),TANG2(16J, $ TVALUEI 16 J, THIGH I 16 J, TLOHI 16 J, TTIRER( 16 l, TREDRAI 16 J, $ TPO~ER116)

DATA N31/31/, N34/34/, N35/35/, ONE/'ONE '/

UPI=RDATAl3) DO 901 I=l,50 DO 901 J=l,26

RHISTOII,J)=O.O RHISTllI,Jl=O.O RHIST21I,J)=O.O RHIST31I,Jl=O.O RHIST4(I,J)=O.O RHIST51I,JJ=O.O RHIST61I,JJ=O.O

SUBROUTINE USRPGM LISTING 132

RHIST71I,J)=O.O

RHIST8!I,J)=O.O

RHIST9tI,J)=O.O

RHISTAII,J)=O.O

901 CONTINUE

DO 902 I=l,50

DO 902 J=l,230

RLOADSII,J)=O.O

RLOADllI,J)=O.O

RLOAD21I,JJ=O.O

RLOAD31I,Jl=O.O

RLOAD41I,Jl=O.O

RLOAD5tI,Jl=O.O

RLOAD61I,Jl=O.O

RLOAD7tI,JJ=O.O

RLOAD81I,JJ=O.O

RLOAD91I,JJ=O.O

RLOADA!I,JJ=O.O

902 CONTINUE

LETGO=O

NOREAD=l

CDTSHO=O

IPRINT=6

NUMSHA=RDATA(5J

NUMLC=RDATA!6J

IF IINUMSHA.LT.l).OR.tNUMSHA.GT.lOJJ GO TO 77

IF IINUMLC.LT,ll.OR.INUMLC.GT.50Jl GO TO 78

REHIND N31

READIN31,*) MODFLG

C READ IN ANY EXISTING HISTOGRAM INFORMATION

REHIND N34

IF tMODFLGll,231.EQ.llll REAOIN34,*l RHISTl

IF IMODFLGt2,23l,EQ.llll READ!N34,*l RHIST2

IF IMODFLGt3,23).EQ.llll READ !N34 ,* l RHIST3

IF !MODFLG14,23).EQ,lll) READ!N34,*l RHIST4

IF IMODFLG15,23).EQ.111J READIN34,*l RHISTS

IF IMODFLG16,23l.EQ.111J READIN34,*) RHIST6

IF IMODFLG17,23J.EQ,llll READIN34,*l RHIST7

IF tMODFLG18,23J.EQ.llll READIN34,*l RHIST8

IF IMODFLG19,23J.EQ.lll) READIN34,*l RHIST9

IF IMODFLG(10,23J.EQ.llll READIN34,*l RHISTA

C READ IN ANY EXISTING LOADING INFORMATION

REHIND N35

IF IMODFLG11,74l.EQ.llll READ!N35,*l RLOAOl

IF IMODFLG12,74l.EQ.llll READIN35,*l RLOAD2

IF IMODFLG13,74l,EQ.llll READIN35,*l RLOAD3

IF IMODFLG14,74).EQ.llll READIN35,*l RLOAD4

IF IMODFLGIS,74).EQ.llll READIN35,*l RLOAD5

IF IMODFLG16,74J.EQ.llll READ!N35,*l RLOAD6

IF IMODFLG17,74J.EQ.llll READIN35,*l RLOAD7

IF IMODFLG18,74J.EQ.llll READIN35,*l RLOAD8

IF (MODFLG19,74l.EQ.llll READIN35,*l RLOAD9

IF IMODFLGll0,74).EQ,111) READIN35,*l RLOADA

C SET FLAGS TO DELETE A LOAD CONDITION FROM THE DATA BASE:

IF (RDATAl4J.NE.2. l GO TO 10

MODFLGINUMSHA,NUMLC+23l=l3

MODFLGINUMSHA,NUMLC+74J=l3

HIFLAG=O

LOFLAG=O

DO 9 J=l,50

IF IMODFLGINUMSHA,J+23J.EQ.111J HIFLAG=l

IF IMODFLGINUMSHA,J+74J.EQ.llll LOFLAG=l

9 CONTINUE

IF IHIFLAG.EQ.OJ HODFLGINUMSHA,23)=13

IF ILOFLAG.EQ.Ol MODFLGINUMSHA,74)=13

SUBROUTINE USRPGM LISTING 133

GO TO 333 C ADD OR OVERHRITE A LOAD CONDITION IN THE DATA BASE:

10 CONTINUE C INITIALIZE LOAD COUNTERS AND LOCATION FOR MEMORY STORAGE IN ARRAY

NRLOAD=l NTLOAD=l MEMLOC=ll

C READ IN ALL REQUIRED INFORMATION .•. SPEED=ABS(RDATAl7)l IF tRDATAl8).EQ.2.l SPEED=O.O - SPEED HRSMLS=RDATAl9) PTIME=ABSIRDATAtlOll IF tPTIME.GT.100. l GO TO 80 TIRERR=RDATA(lll NCNT=l6 IF IRDATAl12).EQ.0.0) GO TO 21

C ONE TO FOUR GEARS TRANSMITTING POHER POHER=ABSIRDATAl14ll IF IRDATA113l.EQ.l.Ol GO TO 22

C CONVERT SPECIFIED TORQUE TO POHER C TAKE INTO ACCOUNT HHICH SYSTEM OF UNITS ARE BEING USED

IF IRDATAtll.EQ.1.0) POHER=POHER*ABStSPEED)/5252.113 IF tRDATAll).EQ.2.0) POHER=POWER*ABStSPEED)/9549.296

22 CONTINUE NCNT=l5 REDRAT=-3.0 IF IHRSMLS.EQ.l.Ol GO TO 19 REDRAT=RDATA(l5) NCNT=l6

19 CONTINUE MESHPT=O

23 CONTINUE MESHPT=MESHPT+l IF tMESHPT.GT.4) GO TO 81 NUMGRtMESHPTl=RDATAINCNTl IF ttNUMGRtMESHPTJ.LT.l).OR.(NUMGR!MESHPTJ.GT.20)) GO TO 82 NCNT=NCNT+2 POHFAC(MESHPTl=ABStRDATA(NCNTll IF tPOWFACIMESHPTJ.GT.l. l GO TO 83 IF IRDATAINCNT-1).EQ.l.) POWFACIMESHPTJ=0.0-POHFACIMESHPTJ NCNT=NCNT+l IF IRDATAINCNTJ.EQ.-1.0l GO TO 24 PTOANGIMESHPTJ=l.O LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IHANT(ll=ONE IHANT12l=RDATAINCNT) CALL CADET IF IETFLAG.NE.ll GO TO 84 ANGltMESHPTl=CC(ll ANG2tMESHPTl=CC(2) NCNT=NCNT+l IF IRDATA!NCNTJ.NE.-111. l GO TO 23 GO TO 25

24 CONTINUE NCNT=NCNT+l PTOANGIMESHPTJ=2.0 ANGllMESHPT)=RDATAINCNTJ ANG21MESHPTJ=RDATAINCNTl NCNT=NCNT+l IF IRDATAINCNTJ.NE.-111. l GO TO 23

25 CONTINUE RHISTO(NUMLC,ll=TIRERR RHISTO(NUMLC,2l=POWER

SUBROUTINE USRPGM LISTING 134

RHISTOINUMLC,3l=SPEED RHISTOINUMLC,4l=PTIME RHISTOINUMLC,5l=REDRAT RHISTOINUMLC,6)=MESHPT DO 5 I=l,MESHPT

RHISTOINUMLC,I+6)=NUMGRII) RHISTOINUMLC,I+lO)=POHFACII) RHISTOINUMLC,I+l4)=PTOANGII) RHISTOINUMLC,I+l8)=ANGllil RHISTOINUMLC,I+22l=ANG21Il

5 CONTINUE MODFLGINUMSHA,23)=111 MODFLGINUMSHA,NUMLC+23)=lll NCNT=NCNT+l

C LINEAR DISTRIBUTED LOADS IN SHAFT AXIS PLANE 21 CONTINUE

N=O RLOADSINUMLC,5)=0.0 IF IRDATAINCNTl.EQ.1.0) GO TO 26 IF IRDATAINCNT).NE.0.0) GO TO 190 NCNT=NCNT+7 GO TO 27

26 CONTINUE NCNT=NCNT+l IF INRLOAO.GT.10) GO TO 85 TOAHAY=RDATAINCNT) Xl=RDATAINCNT+l) Yl=RDATAINCNT+2) X2=RDATAINCNT+4l Y2=RDATAINCNT+5) IF 11Xl.EQ.X2J.AND.1Yl.EQ.Y2)) GO TO 86 DIS=IIX2-XlHHt2+1Y2-Yll**2)~.5 MAGl=ABSIRDATAINCNT+3l) MAG2=ABSIRDATAINCNT+6)J MAG=DIS*IMAGl+MAG2J/2.0 SLOPE=IMAG2-MAGl)/DIS SXYDX=ISLOPE/3.0l*DIS**3+1MAGl/2.0)*DIS**2 XC=SXYDX/MAG XLOC=Xl+IXC*IX2-Xlll/DIS IF IABSIX2-Xl).LT •• 000001) GO TO 32 SLOPE=IY2-Yl)/IX2-Xll YLOC=Yl+SLOPE*IXLOC-Xl) GO TO 33

32 CONTINUE IF IY2.GT.Yl) YLOC=Yl+XC IF IY2.LT.Yl) YLOC=Yl-XC

33 CONTINUE NCNT=NCNT+7 IF IRDATAINCNT).EQ,-1.0) GO TO 28 ANGOPT=l.O LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IHANTll)=ONE IHANTl2J=RDATAINCNT) CALL CADET IF IETFLAG,NE.l) GO TO 84 XANG=CCll) YANG=CCl2)

29 CONTINUE RLOADSINUMLC,MEMLOCJ=MAG RLOADSINUMLC,MEMLOC+ll=XLOC RLOADSINUMLC,MEMLOC+2l=YLOC RLOADSINUMLC,MEMLOC+3J=ANGOPT RLOADSINUMLC,MEMLOC+4)=XANG

SUBROUTINE USRPGM LISTING 135

RLOADSINUMLC,MEMLOC+5)=YANG RLOADSINUMLC,MEMLOC+6)=TOAHAY MEMLOC=MEMLOC+7 N=N+l NRLOAD=NRLOAD+l MODFLGINUMSHA,74)=111 MODFLGINUMSHA,NUMLC+74l=lll NCNT=NCNT+l IF IRDATAINCNTJ.EQ.1.0) GO TO 26 IF IRDATAINCNTJ.NE.0.0) GO TO 190 RLOADSINUMLC,5l=N NCNT=NCNT+7 GO TO 27

28 CONTINUE NCNT=NCNT+l ANGOPT=2.0 XANG=RDATA(NCNT) YANG=RDATAINCNTJ GO TO 29

C PARABOLIC DISTRIBUTED LOADS IN SHAFT AXIS PLANE 27 CONTINUE

IF IRDATAINCNT).EQ.1.0) GO TO 30 IF IRDATAINCNT).NE.0.0) GO TO 191 NCNT=NCNT+7 GO TO 39

30 CONTINUE NCNT=NCNT+l IF INRLOAD.GT.10) GO TO 85 TOAHAY=RDATAINCNT) Xl=RDATAINCNT+ll Yl=RDATAINCNT+2) X2=RDATAINCNT+4l Y2=RDATAINCNT+5) MAGl=ABSIRDATAINCNT+3)) MAG2=ABSIRDATAINCNT+6)) MAG3=ABSIRDATAINCNT+7)) IF IIX1.EQ.X2).AND.IY1.EQ.Y2)) GO TO 86 IF IMAG3.EQ.IIMAGl+MAG2J/2.0)J GO TO 87 XDl=O.O XD2=11X2-Xll**2+(Y2-Yl)**2)**•5 XD3=XD2/2.0 NZERO=l CALL FINDXC(XD1,XD2,XD3,MAG1,MAG2,MAG3,XC,MAG,NZERO) IF INZERO.EQ.0) GO TO 87 XLOC=Xl+IXC*IX2-Xl)J/XD2 IF IABSIX2-Xl).LT .. 000001) GO TO 34 SLOPE=IY2-Yll/lX2-Xll YLOC=Yl+SLOPE*IXLOC-Xl) GO TO 35

34 CONTINUE IF IY2.GT.Yll YLOC=Yl+XC IF IY2.LT.Yl) YLOC=Yl-XC

35 CONTINUE NCNT=NCNT+8 IF IRDATAINCNTJ.EQ.-1.0) GO TO 36 ANGOPT=l.O LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IWANTll)=ONE IHANTl2J=RDATAINCNTJ CALL CADET IF IETFLAG.NE.ll GO TO 84 XANG=CC(l) YANG=CCl2J

SUBROUTINE USRPGM LISTING 136

37 CONTINUE RLOADSINUMLC,MEMLOCJ=MAG RLOADSINUMLC,MEMLOC+lJ=XLOC RLOADSINUMLC,MEMLOC+ZJ=YLOC RLOADSINUMLC,MEMLOC+3)=ANGOPT RLOADSINUMLC,MEMLOC+4l=XANG RLOADSINUMLC,MEMLOC+Sl=YANG RLOADSINUMLC,MEMLOC+6J=TOAHAY MEMLOC=MEMLOC+7 N=N+l NRLOAD=NRLOAD+l MODFLGINUMSHA,74)=111 MODFLGINUMSHA,NUMLC+74J=lll NCNT=NCNT+l IF IRDATAINCNTl.EQ.1.0) GO TO 30 IF IRDATAINCNTl.NE.O.O) GO TO 191 RLOADSINUMLC,Sl=N NCNT=NCNT+7 GO TO 39

36 CONTINUE NCNT=NCNT+l ANGOPT=2.0 XANG=RDATAINCNTl YANG=RDATAINCNT J GO TO 37

C RESULTANT OF DISTRIBUTED LOADS IN TRANSVERSE PLANE 39 CONTINUE

RLOADSINUMLC,6)=0.0 IF IRDATACNCNTJ.EQ.l.OJ GO TO 40 IF IRDATAINCNTl.NE.0.0) GO TO 193 NCNT=NCNT+7 GO TO 41

40 CONTINUE NCNT=NCNT+l IF INRLOAD.GT.3.0J GO TO 89 XLOC=RDATAINCNTJ YLOC=RDATAINCNT+l) TOAHAY=RDATAINCNT+2J KEYUSE=RDATAINCNT+3J RLOADSINUMLC,6)=8 RLOADSINUMLC,MEMLOCJ=KEYUSE RLOADSINUt1LC,MEMLOC+ll=XLOC RLOADSINUMLC,MEMLOC+2l=YLOC RLOADSINUMLC,MEMLOC+3)=TOAHAY MEMLOC=MEMLOC+4 NRLOAD=NRLOAD+8 MODFLGINUMSHA,74)=111 MODFLGINUMSHA,NUMLC+74l=lll IF IRDATAINCNT+3).EQ.2.0J GO TO 42 NCNT=NCNT+4 DO 44 I=l,8

IFIRDATAINCNTJ.NE.-1.0l GO TO 91 ANGLE=RDATAINCNT+ll MAG=ABSIRDATAINCNT+2ll NCNT=NCNT+3 RLOADSINUMLC,MEMLOCl=MAG RLOADSINUMLC,MEMLOC+ll=ANGLE

C SKIP ONE SPACE TO KEEP TRACK EASIER MEMLOC=MEMLOC+3

44 CONTINUE GO TO 43

42 CONTINUE NCNT=NCNT+4 DO 45 I=l,8

IFIRDATAINCNTJ.EQ.-1.0J GO TO 91 LETGO=O NOREAD=l

SUBROUTINE USRPGM LISTING 137

CDTSHO=O IPRINT=6 ETFLAG=O IHANTll)=ONE IHANTl2l=RDATAINCNT) CALL CADET IF IETFLAG.NE,l) GO TO 84 ANGPTX=CC(l) ANGPTY=CCl2) MAG=ABSIRDATAINCNT+l)) NCNT=NCNT+2 RLOADSINUMLC,MEMLOC)=MAG RLOADSINUMLC,MEMLOC+ll=ANGPTX RLOADSINUMLC,MEMLOC+2l=ANGPTY MEMLOC=MEMLOC+3

45 CONTINUE 43 CONTINUE

IF IRDATAINCNT),NE.-555,) GO TO 197 NCNT=NCNT+l

C COUPLES AND MOMENTS 41 CONTINUE

N=l RLOADSINUMLC,7l=O.O

49 IF IRDATAINCNT).EQ.1.0) GO TO 38 IF IRDATAINCNT).NE.0.0) GO TO 194 NCNT=NCNT+6 GO TO 50

38 NCNT=NCNT+l IF IRDATAINCNT),EQ.1.0) GO TO 46 IF IRDATAINCNT).EQ.2.0) GO TO 47 IF IIRDATAINCNT).NE,1,).0R,IRDATACNCNT).NE.2.)) GO TO 194

C SET COUPLE FLAG 46 COUPMO=l.O

IF CNTLOAD.GT.9) GO TO 92 GO TO 48

C SET MOMENT FLAG 47 COUPM0=2.0

IF CNTLOAD.GT.10) GO TO 92 48 NCNT=NCNT+l

SHAHOU=RDATACNCNT) NCNT=NCNT+l RLOADSCNUMLC,7l=N RLOADSCNUMLC,MEMLOC)=COUPMO RLOADSINUMLC,MEMLOC+l)=SHAHOU MEMLOC=MEMLOC+2 DO 51 I=l,3

IF II.NE,2) GO TO 65 IF IRDATACNCNTl.NE.-1.0) GO TO 65 NCNT=NCNT+l PTXl2l=RDATAINCNT) PTYCZ)=RDATAINCNTl GO TO 66

65 CONTINUE LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IHANTC 1 l=ONE IHANT(2l=RDATAINCNT) CALL CADET IF CETFLAG.NE.1) GO TO 84 PTX( I )=CC( 1 J PTY(IJ=CCl2) IF II.NE.2) GO TO 66 IF llPTXC1J.EQ.PTXC2ll.AND.lPTYlll.EQ.PTYl2lll GO TO 93 ARMDIS=l IPTXl1l-PTXl2))itit2 + IPTYl1l-PTYC2)l**2 l**,5

SUBROUTINE USRPGM LISTING 138

PTX12J=ARMDIS PTYt2J=ARMDIS

66 CONTINUE NCNT=NCNT+l RLOADSINUMLC,MEMLOCJ=PTXIIJ RLOADSINUMLC,MEMLOC+ll=PTYIIJ MEMLOC=MEMLOC+2

51 CONTINUE IF ltPTXlll.EQ.PTXl3)).AND.tPTYtl).EQ.PTYt3J)) GO TO 93 MAG=ABSIRDATAINCNT)J RLOADSINUMLC,MEMLOCJ=MAG MEMLOC=MEMLOC+l NCNT=NCNT+l N=N+l IF ICOUPMO.EQ.1.0) NTLOAD=NTLOAD+2 IF ICOUPMO.EQ.2.0J NTLOAD=NTLOAD+l MODFLGtNUMSHA,74)=111 MODFLGINUMSHA,NUMLC+74l=lll GO TO 49

C POINT LOADS - I FORCES AT ANY ORIENTATION! 50 CONTINUE

N=l RLOADStNUMLC,8)=0.0

52 IF IRDATAtNCNTJ.EQ.l.OJ GO TO 53 IF tRDATAtNCNTJ.NE.0.0) GO TO 195 NCNT=NCNT+8 GO TO 60

53 CONTINUE IF tNRLOAD.GT.10) GO TO 94 IF INTLOAD.GT.10) GO TO 94 LDTYPE=RDATAINCNT+l) SHAHOU=RDATAtNCNT+2) NCNT=NCNT+3 RLOADStNUMLC,8l=N RLOADStNUMLC,MEMLOCJ=LDTYPE RLOADSl~'UMLC,MEMLOC+ll=SHAHOU MEMLOC=MEMLOC+2 DO 55 I=l,4

LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IWANTtll=ONE IHANTt2)=RDATAINCNTJ CALL CADET IF tETFLAG.NE.l) GO TO 84 PTXII)=CC(l) PTYtI)=CC(2) NCNT=NCNT+l RLOADS(NUMLC,MEMLOCJ=PTXIIJ RLOADStNUMLC,MEMLOC+l)=PTYtI) MEMLOC=MEMLOC+2

55 CONTINUE IF ttPTXl3).EQ.PTXtlll.AND.IPTYt3).EQ.PTYCl))) GO TO 95 IF IIPTXt2).EQ.PTXll)J.AND.(PTYl2l.EQ.PTYllJ)) GO TO 56 GO TO 57

56 IF IIPTXt4J.EQ.PTXl3)).AND.tPTYl4l.EQ.PTYl3lll GO TO 95 57 CONTINUE

MAG=ABStRDATAINCNT)) RLOADSINUMLC,MEMLOCl=MAG MEMLOC=MEMLOC+l NCNT=NCNT+l N=N+l

C INCREMENT COMBINATION LOAD COUNTER AND DEDUCT EXCESS NRLOAD=NRLOAD+l NTLOAD=NTLOAD+l

SUBROUTINE USRPGM LISTING 139

IF (LDTYPE.EQ.l.OJ NTLOAD=NTLOAD-1 IF (LDTYPE.EQ.2.0J NRLOAD=NRLOAD-1 MODFLGtNUMSHA,74)=111 MODFLGINUMSHA,NUMLC+74J=lll IF (RDATAINCNTJ.EQ.1.0) GO TO 53 IF IRDATAINCNT).NE.-777.J GO TO 195 NCNT=NCNT+l

60 CONTINUE C CHECK TO MAKE SURE THAT SOME LOADS HAVE BEEN ENTERED

IF((MODFLGtNUMSHA,NUMLC+23J.NE.lllJ.ANO. $ (MODFLGtNUMSHA,NUMLC+74J.NE.lllJJ GO TO 62

C DETERMINE NOTE LOCATION XY(ll=RDATA(NCNTJ XYl2)=RDATAINCNT+l) XTAB=RDATA(NCNTJ

C STORE DATA COMMON TO ALL LOAD CONDITION CASES RLOADStNUMLC,ll=TIRERR RLOADStNUMLC,2)=SPEED RLOADSINUMLC,3J=PTIME

C HRITE OUT INFORMATION TO SCREEN (THAT IS COMMON TO ALL CASES) SHANUH=NUMSHA RLCNUH=NUMLC CALL CONVTITNUMSH,O,SHANUM,&lllll CALL CONVTITNUMLC,O,RLCNUM,&lllll CALL CONVT(TTIRER,3,TIRERR,&1111) CALL CONVT(TSPEED,3,SPEED,&lllll CALL CONVT(TPTIME,3,PTIME,&lllll CALL CONVTITPOHER,3,POHER,&lllll CALL CONVTITREDRA,3,REDRAT,&1111) CALL CADNStXY,13,'SHAFT NUMBER:',&1001) XYl1J=XTAB+2.25*UPI CALL CADNSIXY,16,TNUMSH,&1001) XY(ll=XTAB XYl2J=XYt2J-.20*UPI CALL CADNStXY,22,'LOAD CONDITION NUMBER:',&1001) XYtlJ=XTAB+3.75*UPI CALL CADNSIXY,16,TNUMLC,&1001) XYlll=XTAB XYl2J=XYl2J-.20*UPI IF tHRSMLS.NE.2.0J GO TO 63 IF IRDATA(lJ.EQ.l.OJ

$ CALL CADNSIXY,30,'TIRE ROLLING RADIUS IN INCHES:',&10011 IF IRDATAtlJ.EQ.2.0J

$ CALL CADNSIXY,26,'TIRE ROLLING RADIUS IN MM: ',&1001) XYl1J=XTAB+5.0*UPI CALL CADNSIXY,16,TTIRER,&1001) XYllJ=XTAB XYl2)=XYl2)-.20*UPI

63 CONTINUE CALL CADNSIXY,24,'ROTATIONAL SPEED IN RPM:',&1001) XYl1J=XTAB+4.0*UPI CALL CADNSIXY,16,TSPEED,&lOOlJ XYll)=XTAB XYt2J=XYl2J-.20*UPI CALL CADNStXY,13,'PERCENT TIME:',&1001) XYl1J=XTAB+2.25*UPI CALL CADNS(XY,16,TPTIME,&10011 XYllJ=XTAB XYl2J=XYl2J-.20*UPI

C HRITE TO SCREEN ANY GEAR INFORMATION IF IT EXISTS IF IMODFLGINUMSHA,NUMLC+23J.NE.llll GO TO 201 IF IRDATAllJ.EQ.l.OJ

$ CALL CADNSIXY,11,'HORSEPOHER:',&lOOlJ IF IRDATAllJ.EQ.2.0J

$ CALL CADNSIXY,10,'KILOHATTS: ',&10011 XY11J=XTAB+2.0*UPI CALL CADNSIXY,16,TPOHER,&lOOlJ

SUBROUTINE USRPGM LISTING 140

XY!ll=XTAB XY!2l=XY!2l-.20*UPI IF !HRSMLS.NE.2.0l GO TO 64 CALL CADNS!XY,31,'SPEED REDUCTION RATIO TO WHEEL:',&10011 XYl1J=XTAB+5.2*UPI CALL CADNSIXY,16,TREDRA,&1001) XV! 1 J=XTAB XYl2l=XY!2l-.20*UPI

64 CONTINUE DO 202 I=l,MESHPT

GEARSN=NUMGRIIJ PFACTR=POWFACIIl CALL CONVT!TGEARS,O,GEARSN,&1111) CALL CONVT!TPFACT,3,PFACTR,&lllll CALL CADNSIXY,12,'GEAR NUMBER:',&10011 XYlll=XTAB+2.0*UPI CALL CADNSIXY,16,TGEARS,&1001) XYlll=XTAB XY(2l=XYl2l-.20*UPI CALL CADNSIXY,18,'GEAR POWER FACTOR:',&lOOll XYlll=XTAB+3.0*UPI CALL CADNSIXV,16,TPFACT,&1001) XYlll=XTAB XYl2l=XYl2J-.20*UPI RANGl=ANGl(Il RANG2=ANG21I) CALL CONVTITANGl,2,RANGl,&1111) CALL CONVTITANG2,2,RANG2,&lllll IF !PTOANG!Il.EQ.1.0) GO TO 203 CALL CADNSIXY,16,'GEAR MESH ANGLE:',&1001) XYlll=XTAB+2.75*UPI CALL CADNSIXY,16,TANGl,&1001) XYlll=XTAB XYl2l=XYl2l-.20*UPI GO TO 202

203 CALL CADNSIXY,16,'GEAR MESH REF X:',&1001) XV!ll=XTAB+2.75*UPI CALL CADNSIXY,16,TANGl,&1001) XYlll=XTAB XY(2J=XYl2l-.20*UPI CALL CAONS(XY,16,'GEAR MESH REF Y:',&1001) XV11J=XTAB+2.75*UPI CALL CADNS(XY,16,TANG2,&l00l) XYlll=XTAB XYl2l=XY(2l-.20*UPI

202 CONTINUE 201 CONTINUE

C WRITE TO SCREEN AN'f LOAD INFORMATION IF IT EXISTS IF IMODFLGINUMSHA,NUMLC+74J.NE.llll GO TO 200 MEMLOC=ll

C WRITE TO SCREEN LINEAR AND PARABOLIC LOAD INFORMATION IF PRESENT IF IRLOADS(NUMLC,5J.EQ.O.OJ GO TO 204 VALUE=RLOADSINUMLC,5) NVALUE=VALUE CALL CONVT(TVALUE,O,VALUE,&lllll CALL CAONSIXY,37,'NUMBER OF LINEAR AND PARABOLIC LOADS:',&1001) XYlll=XTA8+6.3*UPI CALL CAONSIXV,16,TVALUE,&1001) XYlll=XTAB XVl2l=XYl2l-.20*UPI DO 210 I=l,NVALUE

VALUE=RLOADSINUMLC,MEMLOCJ MEMLOC=MEMLOC+7 CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,28,'MAGNITUDE OF RESULTANT LOAD: ',&1001) XY(ll=XTAB+4.75*UPI CALL CADNSIXY,16,TVALUE,&lOOll

SUBROUTINE USRPGM LISTING 141

XYI l l=XTAB XVt2l=XVt2l-,20*UPI

210 CONTINUE 204 CONTINUE

C HRITE TO SCREEN RESULTANT LOAD INFORMATION IF PRESENT IF IRLOADSINUMLC,6l,EQ.O.Ol GO TO 206 MEMLOC=MEMLOC+4 RLOH=RLOADStNUMLC,MEMLOCl RHIGH=RLOADStNUMLC,MEMLOCl MEMLOC=MEMLOC+3 VALUE=RLOH DO 207 I=l,7

RNEXT=RLOADSINUMLC,MEMLOCl MEMLOC=MEMLOC+3 IF IRNEXT.LT.RLOHJ RLOH=RNEXT IF tRNEXT,GT,RHIGHl RHIGH=RNEXT VALUE=VALUE+RNEXT

207 CONTINUE VALUE=VALUE/8.0 CALL CONVTITVALUE,2,VALUE,&lllll CALL CONVTITLOH,2,RLOH,&lllll CALL CONVTITHIGH,2,RHIGH,&1111) CALL CADNSIXY,32,'AVERAGE VALUE OF RESULTANT LOAD: ',&1001) XVtll=XTAB+5.4*UPI CALL CADNStXY,16,TVALUE,&lOOll XYlll=XTAB XYl2l=XV12l-.20*UPI CALL CADNSIXV,30,'LOHEST VALUE OF RESULTANT LOAD:',&1001) XY(ll=XTAB+5.2*UPI CALL CADNSIXV,16,TLOH,&1001) XYlll=XTAB XVl2l=XYl2l-.20*UPI CALL CADNSIXY,31,'HIGHEST VALUE OF RESULTANT LOAD:',&1001) XYtll=XTAB+5,3*UPI CALL CADNSIXY,16,THIGH,&1001) XYlll=XTAB XYl2l=XY12l-.20*UPI

206 CONTINUE C HRITE TO SCREEN COUPLE OR MOMENT INFORMATION IF PRESENT

IF IRLOADSINUMLC,7),EQ.O.Ol GO TO 208 NUMBER=RLOADSINUMLC,7) DO 209 I=l,NUl1BER

VALUE=RLOADSINUMLC,MEMLOC+8) CALL CONVTITVALUE,3,VALUE,&lllll COUPMO=RLOADSINUMLC,MEMLOC) MEMLOC=MEMLOC+9 IFICOUPMO.EQ.2.0l GO TO 211 CALL CADNSIXY,17,'COUPLE MAGNITUDE:',&1001) GO TO 212

211 CALL CADNSIXY,17,'MOMENT MAGNITUDE:',&1001) 212 XVtll=XTAB+3.l*UPI

CALL CADNSIXY,16,TVALUE,&1001) XYtll=XTAB XY12l=XYl2)-.20*UPI

209 CONTINUE 208 CONTINUE

C HRITE TO SCREEN POINT LOAD INFORMATION IF PRESENT IF IRLOADSINUMLC,8).EQ.O.Ol GO TO 213 NUMBER=RLOADSINUMLC,8) MEMLOC=MEMLOC+lO DO 214 I=l,NUMBER

VALUE=RLOADSINUMLC,MEMLOCl MEMLOC=MEMLOC+ll CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,24,'MAGNITUDE OF POINT LOAD:',&10011 XYtll=XTAB+5.0*UPI CALL CADNSIXY,16,TVALUE,&1001)

SUBROUTINE USRPGM LISTING 142

XYll)=XTAB XY(2)=XYl2)-.20*UPI

214 CONTINUE 213 CONTINUE

C STORE LOAD CONDITION INFORMATION IN ARRAYS IF PRESENT 200 CONTINUE

IF (NUMSHA.EQ.l) CALL COPYHSIRHISTO,NUMLC,RHISTl) IF INUMSHA.EQ.2) CALL COPYHSIRHISTO,NUMLC,RHIST2) IF 1Nlr.1SHA.EQ.3) CALL COPYHS(RHISTO,NUMLC,RHIST3J IF INUMSHA.EQ.4) CALL COPYHS(RHISTO,NUMLC,RHIST4l IF (NUMSHA.EQ.5l CALL COPYHSIRHISTO,NUMLC,RHIST5l IF (NUMSHA.EQ.61 CALL COPYHS(RHISTO,NUMLC,RHIST6) IF (NUMSHA.EQ.71 CALL COPYHSIRHISTO,NUMLC,RHIST7l IF (NUMSHA.EQ.8) CALL COPYHSIRHISTO,NUMLC,RHIST8J IF INUMSHA.EQ.9) CALL COPYHSIRHISTO,NUMLC,RHIST9l IF INUMSHA.EQ.10) CALL COPYHSIRHISTO,NUMLC,RHISTAJ

IF INUMSHA.EQ.ll CALL COPYLDIRLOADS,NUMLC,RLOADll IF INUMSHA.EQ.2l CALL COPYLDIRLOADS,NUMLC,RLOAD2) IF INUMSHA.EQ.3l CALL COPYLDIRLOADS,NUMLC,RLOAD3J IF INUMSHA.EQ.4l CALL COPYLDIRLOADS,NUMLC,RLOAD4J IF INUMSHA.EQ.5l CALL COPYLDIRLOADS,NUMLC,RLOAD5l IF INUMSHA.EQ.6) CALL COPYLDIRLOADS,NUMLC,RLOAD6l IF (NUMSHA.EQ.7l CALL COPYLDIRLOADS,NUMLC,RLOAD7) IF INUMSHA.EQ.8) CALL COPYLDIRLOADS,NUMLC,RLOAD8l IF (NUMSHA.EQ.9) CALL COPYLOtRLOADS,NUMLC,RLOAD9l IF (NUMSHA.EQ.10) CALL COPYLDIRLOADS,NUMLC,RLOADAJ

333 CONTINUE IF INUMSHA.EQ.l) CALL CARHHLINUMSHA,RHISTl,RLOADl,MODFLGl IF (NUMSHA.EQ.2) CALL CARHHL(NUMSHA,RHIST2,RLOAD2,MODFLGl IF INUMSHA.EQ.3) CALL CARHHLINUMSHA,RHIST3,RLOAD3,MODFLGl IF INUMSHA.EQ.4) CALL CARHHLINUMSHA,RHIST4,RLOAD4,MODFLGl IF INUMSHA.EQ.5l CALL CAR~IHLINUMSHA,RHIST5,RLOAD5,MODFLGl IF INUMSHA.EQ.6l CALL CARl~HLINUMSHA,RHIST6,RLOAD6,MODFLG) IF INUMSHA.EQ.7l CALL CARWHLINUMSHA,RHIST7,RLOAD7,MODFLG) IF (NUMSHA.EQ.8) CALL CARWHL(NUMSHA,RHIST8,RLOAD8,MODFLGl IF INUMSHA.EQ.9) CALL CARWHL(NUMSHA,RHIST9,RLOAD9,MODFLG) IF (NUMSHA.EQ.10) CALL CARWHLINUMSHA,RHISTA,RLOADA,MODFLGJ

XYlll=XTAB XY12l=XYl2J-.30*UPI IF l(MODFLGINUMSHA,125J.EQ.13J.AND.IMODFLGINUMSHA,126l.EQ.13)l

$CALL CADNS(XY,38,'HARNING: DIFFERENT BRG LIFE TYPES USED',&1001)

REHIND N31 WRITEIN31,*l MODFLG

REHIND N34 IF tMODFLGtl,23).EQ.llll HRITE(N34,*l RHISTl IF IMODFLGl2,23l.EQ.lll) HRITEIN34,*l RHIST2 IF IMODFLG13,23l.EQ.llll WRITEIN34,*) RHIST3 IF IMODFLG14,23l.EQ.llll WRITEIN34,*l RHIST4 IF tMODFLG15,23l.EQ.lll) WRITEIN34,*l RHIST5 IF IMODFLG16,23l.EQ.llll WRITE(N34,*l RHIST6 IF IMODFLG17,23).EQ.lll) HRITEIN34,*) RHIST7 IF IMODFLG18,23l.EQ.llll HRITEIN34,*l RHIST8 IF IMODFLG(9,23J.EQ.llll HRITE(N34,*l RHIST9 IF IMODFLG(l0,23).EQ.lllJ HRITE(N34,*l RHISTA

REWIND N35 IF IMODFLGll,74).EQ.llll WRITEIN35,*l RLOADl IF IMODFLG12,74l.EQ.llll HRITEIN35,*l RLOAD2 IF IMODFLG13,74J.EQ.llll HRITEIN35,*l RLOAD3 IF IMODFLG14,74).EQ.llll HRITEIN35,*l RLOAD4 IF IMODFLGIS,74).EQ.llll HRITEIN35,*l RLOAD5

SUBROUTINE USRPGM LISTING 143

IF IMODFLG16,74l.EQ.llll HRITEIN35,*) RLOAD6 IF IMODFLG17,74l.EQ.llll HRITEIN35,*l RLOAD7 IF IMODFLG18,74l.EQ.llll HRITEIN35,*l RLOAD8 IF IMODFLG19,74l.EQ.llll HRITEIN35,*I RLOAD9 IF IMODFLGll0,741.EQ.llll HRITEIN35,*l RLOADA

C INFORM USER THAT A LOAD CONDITION HAS DELETED FROM THE DATA BASE IF IRDATA14l,EQ.2,0J GO TO 79

C OTHERHISE, TELL USER THAT A LOAD COND. HAS ADDED TO THE DATA BASE CALL MSGGENI 'LOADS MODULE UPDATED)' l GO TO 99

62 CALL MSGGENI 'NO LOADS HERE ENTERED)') GO TO 99

77 CALL MSGGENI 'THE SHAFT NUMBER MUST BE BETHEEN l AND lOl'l GO TO 99

78 CALL MSGGEN( 'LOAD CONDITION NUMBER MUST BE BETHEEN l AND 50)') GO TO 99

79 CALL MSGGENI 'LOAD CONDTION DELETED FROM DATA BASE)' l GO TO 99

80 CALL MSGGENI 'PERCENT TIME MUST BE BETHEEN O AND 1001' l GO TO 99

81 CALL MSGGEN( 'MAX OF 4 GEAR MESH PTS. TRANSMIT. POHER/LOAD COND.l'l GO TO 99

82 CALL MSGGENI 'GEAR NUMBER MUST BE BETHEEN l AND 201'1 GO TO 99

83 CALL MSGGENI 'POHER FACTOR MUST BE BETHEEN O AND ll'I GO TO 99

84 CALL MSGGENI 'ETFLAG PROBLEMS IN LOADS MODULE I') GO TO 99

85 CALL MSGGENI 'MAXIMUM OF 10 RADIAL LOADS PER LOAD CONDITION)' l GO TO 99

86 CALL MSGGENI 'LOAD SEGMENT ENDPOINTS MUST BE DISTINCT)' l GO TO 99

87 CALL MSGGEN( 'PARABOLIC LOADING REQUIRES A PARABOLA!)') GO TO 99

89 CALL MSGGENI 'MAXIMUM OF 10 RADIAL LOADS - SEE /HELP/ MENUJ'l GO TO 99

90 CALL MSGGENI 'USE DISTRIB LOADS IN TRANSVERSE PLANE ONCE)') GO TO 99

91 CALL MSGGENI 'USE ALL 8 REF PTS OR ALL 8 KEYED ANGLES ONLYl'l GO TO 99

92 CALL MSGGEN( 'MAX OF 10 EQUIV. THRUST LOADS - COUPLES=2, ETC)' I GO TO 99

93 CALL MSGGENI 'MOMENT OR COUPLE POINTS INCORRECTLY SPECIFIED I' I GO TO 99

94 CALL MSGGEN( 'MAX OF 10 RADIAL & 10 THRUST COMPONENTS ALLOHEDl'l GO TO 99

95 CALL MSGGENI 'POINT LOADS INCORRECTLY SPECIFIED)') GO TO 99

190 CALL MSGGEN( 'INCORRECT SELECTION OF /END/ IN "LINEAR" LOOPl'I GO TO 99

191 CALL MSGGENI 'INCORRECT SELECTION OF /END/ IN "PARABOLIC" LOOP!') GO TO 99

193 CALL MSGGEN( 'INCORRECT SELECTION OF /END/ IN A LOOP)' l GO TO 99

194 CALL MSGGENI 'INCORRECT SELECTION OF /END/ IN "MOMENT" LOOP)'! GO TO 99

195 CALL MSGGENI 'INCORRECT SELECTION OF /END/ IN "POINT" LOOPJ'l GO TO 99

197 CALL MSGGENI 'VAR. DISTRIB LOOP REQUIRES 8 FORCES AND 8 ANGLES)') GO TO 99

1001 CALL MSGGENI 'CADNS PROBLEMS IN LOADS MODULEJ'J GO TO 99

1111 CALL MSGGEN( 'CONVT PROBLEMS IN LOADS MODULEl'J 99 RETURN

END

SUBROUTINE USRPGM LISTING 144

C*************************************:!Hf****************************** SUBROUTINE COPYHSIOLD,LABEL,NEH)

C********************************************************************* C C C C C

THIS SUBROUTINE IS USED TO COPY THE HORKING HISTOGRAM ARRAY INTO THE ACTUAL ARRAY FOR THE GIVEN SHAFT. THIS ENABLES ONLY SHAFTS HITH DEFINED GEAR LOADS TO BE HRITT~N TO THE FILE.

REAL*4 OLDIS0,26), NEH150,26J INTEGER LABEL

DO 10 J=l,26 NEHILABEL,Jl=OLDtLABEL,JJ

10 CONTINUE RETURN END

C********************************************************************* SUBROUTINE COPYLDtOLD,LABEL,NEHl

C********************************************************************* C C C C C

THIS SUBROUTINE IS USED TO COPY THE HORKING LOADING ARRAY INTO THE ACTUAL ARRAY FOR THE GIVEN SHAFT. THIS ENABLES ONLY SHAFTS HITH DEFINED EXTERNAL LOADS TO BE HRITTEN TO THE FILE.

REAL*4 OLD150,230l, NEHIS0,230) INTEGER LABEL

DO 10 J=l,230 NEHILABEL,Jl=OLDILABEL,Jl

10 CONTINUE RETURN END

C**************************:!Hf***************************************** SUBROUTINE CARHHLINUMSHA,HIST,LOAD,MODFLGJ

C********************************************************************* C C C C C C C C

THIS SUBROUTINE CHECKS ALL LOAD CONDITIONS OF A SHAFT AND SEES IF THE USER AL~AYS ENTERED LIFE VALUES IN TIME OR IN DISTANCE. IF THERE IS A CONTRADICTION, A FLAG IS SET AND THE USER HILL BE HARNED BACK IN THE LOADS MODULE (THE DATA HILL STILL BE PROCESSED SO THAT THE USER CAN CHANGE HIS MIND AT ANY TIME AND THEN DELETE THE DISCREPANCY LATER IN THE DATA SPECIFICATION PROCESS.

REAL*4 HIST(S0,26), LOADtS0,230) INTEGER NUMSHA, MODFLG(l0,140)

NHl=O NH2=0 NLl=O NL2=0 DO 10 I=l,50

IF (MODFLGINUMSHA,I+23).NE.lll) GO TO 20 IF tHISTII,ll.EQ.-3.0l NHl=l IF tHISTII,ll.NE.-3.0l NH2=1

20 IF IMODFLGtNUMSHA,I+74l.NE.llll GO TO 10 IF ILOADtI,l).EQ.-3.0l NLl=l IF ILOADII,1).NE.-3.0l NLZ=l

10 CONTINUE

IFIIINHl.EQ.l).OR.tNLl.EQ.lll.AND.ltNH2.EQ.Ol.AND.INL2.EQ.Olll $ GO TO 30

SUBROUTINE USRPGM LISTING 145

IF(((NH2.EQ.l).OR.(NL2.EQ,l)).AND.((NH1.EQ.O).AND.(NL1.EQ.O))) $ GO TO 40

C MIXED CONDITION CURRENTLY OCCURS MODFLGINUMSHA,125)=13 MODFLG(NUMSHA,126)=13 GO TO 99

C KEYWORD "CARWHEEL" NOT USED AT ALL 30 MODFLG(NUMSHA,125)=111

MODFLGINUMSHA,126)=13 GO TO 99

C KEYWORD "CARWHEEL" ALWAYS USED 40 MODFLGINUMSHA,125)=13

MODFLGINUMSHA,126)=111

99 RETURN END

C**~*************************************************************** SUBROUTINE FINDXCIXD1,XD2,XD3,MAG1,MAG2,MAG3,XC,MAG,NZERO)

C********************************************************************* C C C C C C

THIS SUBROUTINE IS USED TO FIND THE X-COORDINATE OF THE CENTROID OF THE PARABOLIC DISTRIBUTED LOAD CASE. IT ALSO DETERMINES THE MAGNITUDE OF THE RESULTANT LOAD BY INTEGRATING THE PARTICULAR QUADRATIC EQUATION. NO SIGN CHANGE IS ALLOWED OVER THE INTERVAL.

REAL*4 XDl, XDZ, XD3, MAGl, MAGZ, MAG3, XC, MAG, AA(3,3), BB13) INTEGER NZERO

AAll,l)=XDl**Z AA12,l)=XD3**Z AA(3,l)=XD2**Z AAll,Zl=XDl AA12,2l=XD3 AA13,ZJ=XDZ AAI 1,3 l=l.O AA( 2,3 )=l.O AA13,3)=1.0 BBlll=MAGl BBl2J=MAG3 BBl3J=MAG2 CALL SIMULTIAA,BB,NZERO) IF INZERO.EQ.OJ GO TO 99 A=BB(l) B=B812) C=BBI 3 J MAG= IA/3.0l*XDZ**3 + IB/Z.Ol*XD2**2 + C*XDZ SXDA = (A/4. l*XDZ**4 + (B/3. )*XDZ**3 + (C/2, )*XD2**Z XC=SXDA/MAG

99 RETURN END

C*itit******************************************************************** SUBROUTINE SIMULTIAA,BB,NZERO)

CiHE*iHE****************************************************************** C C C C C C

THIS SUBROUTINE USES CRAMER'S RULE TO DETERMINE THE COEFFICIENTS OF THREE SIMULTANEOUS EQUATIONS OF THE FORM: Y=AX**2+BX+C. THE EQUATION IS FROM THE 3 POINT PARABOLIC LOAD DEFINITION. ALSO, THE SOLUTION VECTOR OVER~IRITES THE LOAD VECTOR.

REAL*4 AA13,3J, BB(3), Dll3,3), D213,3J, D313,3)

SUBROUTINE USRPGM LISTING 146

INTEGER NZERO

DO 10 I=l,3 DO 20 J=l,3

Dl!I,Jl=AA!I,Jl D2!I,Jl=AA!I,Jl D31I,Jl=AAII,Jl

20 CONTINUE 10 CONTINUE

DO 30 I=l,3 DllI,lJ=BB!IJ D2( I,2 l=BB!I l D3!I,3l=BB!Il

30 CONTINUE CALL DETVALIAA,AADETl CALL DETVAL!D1,DlDET) CALL DETVAL(D2,D2DETl CALL DETVALID3,D3DET) IF IAADET.EQ.O.OJ NZERO=O IF INZERO.EQ.OJ GO TO 99 BBlll=DlDET/AADET BB(2l=D2DET/AADET BB(3l=D3DET/AADET

99 RETURN END

C**********************-***********-****-********************** SUBROUTINE DETVALIDI,VAL)

C************************-****************************************** C C THIS SUBROUTINE IS USED TO FIND THE DETERMINANT OF A 3X3 C MATRIX. IT IS USED IN CONJUNCTION HITH SUBROUTINE SIMULT. C

REAL*4 DI13,3l, VAL

Vl=DI!l,ll*IDI12,2l*DI13,3l-Dil2,3l*DI!3,2ll V2=DI11,2l*IDI12,ll*Dil3,3l-DI12,3l*DI13,lll V3=DI!l,3l*(DI(2,ll*DI13,2l-DI12,2l*DI13,lll VAL=Vl-V2+V3

99 RETURN END

C********************************************************************* SUBROUTINE SDYNAMIRDATAJ

C********************************************************************* C C C C C

THIS SUBROUTINE IS USED TO DEFINE DYNAMIC LOADS SUCH AS THOSE THAT OCCUR FROM AN UNBALANCED SHAFT. CURRENTLY, SAN DOES NOT INCORPORATE THIS TYPE OF LOAD, BUT FUTURE INCLUSION IS EXPECTED.

COMMON /SIMBA/ ETFLAG, CC(2l, D0121, RRR COMMON/CDTCOM/LETGO,NOREAD,CDTSHO,ELSHON,IPRINT,MODSIZ,

$ MDLLFT ,FILDATI 2 l ,MDLTXTI 17 l ,Il'IANTI 9 l INTEGER CDTSHO, ELSHOI~, ONE, ETFLAG, MODFLG110,140l REAL*4 RDATAl500J, RDYNAM110,51l, MASS, PTXl2l, PTYl2l, XY(2) LOGICAL*l TNUMSHI 16 l, TVALUEI 16 l DATA ONE/'ONE '/ DATA N31/31/, N36/36/

UPI=RDATAl3l DO 901 I=l,10 DO 901 J=l,51

901 RDYNAMII,Jl=O.O LETGO=O NOREAD=l

SUBROUTINE USRPGM LISTING 147

CDTSHO=O IPRINT=6 NUMSHA=RDATA15) IF IINUMSHA.LT.lJ.OR.INUMSHA.GT.10)) GO TO 77 REWIND N31 READIN31,*) MODFLG

IF IRDATAl4J,NE,2.0J GO TO 10 C DELETE A DYNAMIC CASE FROM THE DATA BASE

MODFLGINUMSHA,127)=13 REWIND N31 HRITEIN31,*) MODFLG GO TO 79

C DEFINE OR REDEFINE A DYNAMIC CASE TO THE DATA BASE 10 CONTINUE

DO 11 I=l,10 IF IMODFLGII,127J.EQ.llll GO TO 12

11 CONTINUE GO TO 13

12 REWIND N36 READIN36,*) RDYNAM

13 CONTINUE

C READ IN UNBALANCED LOAD INFORMATION NCNT=6 NULOAD=O MEMLOC=2

59 CONTINUE NULOAD=NULOAD+l IF INULOAD.GT.10) GO TO 89

C MASS IN EITHER SLUGS OR KG MASS=ABSIRDATAINCNTJJ RDYNAMINUMSHA,MEMLOC)=MASS NCNT=NCNT+l MEMLOC=MEMLOC+l DO 61 I=l,2

IF II.NE.2) GO TO 67 IF IRDATAINCNT).NE.-1.0J GO TO 67 NCNT=NCNT+l

C SET FLAG IF ECCENTRICITY HAS KEYED IN INSTEAD OF USING A POINT RDYNAMINUMSHA,MEMLOCJ= -333. RDYNAMINUMSHA,MEMLOC+ll=ABSIRDATAINCNTJJ NCNT=NCNT+l MEMLOC=MEMLOC+2 GO TO 61

67 LETGD=O NDREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IHANTI ll =ONE IHANTl2J=RDATAINCNT) CALL CADET IF IETFLAG.NE.ll GO TD 84 PTXIIJ=CCll) PTYIIJ=CCl2J IF II.NE.2J GO TO 68 IF IIPTX12J.EQ.PTXl1JJ.AND.IPTY12J.EQ.PTYl1JJJ GO TO 96

68 NCNT=NCNT+l RDYNAMINUMSHA,MEMLOCJ=PTXII) RDYNAMI NUMSHA,MEMLDC+l l=PTYI I) MEMLOC=MEMLOC+2

61 CONTINUE IF IMASS.NE.O.OJ GD TD 69 NULDAD=NULOAD-1 MEMLOC=MEMLOC-5

SUBROUTINE USRPGM LISTING 148

69 CONTINUE C CHECK END-OF-DATA FLAG

IF IRDATAINCNT),NE,-111.l GO TO 59 NCNT=NCNT+l RDYNAMINUMSHA,ll=NULOAD

C HRITE TO SCREEN UNBALANCED LOAD INFORMATION XTAB=RDATAINCNTJ XYlll=RDATAINCNTl XYl2l=RDATA(NCNT+ll SHANUM=NUMSHA CALL CONVTITNUMSH,O,SHANUM,&1111) CALL CADNStXY,13,'SHAFT NUMBER:',&1001) XY1ll=XTAB+2.25*UPI CALL CADNSIXY,16,TNUMSH,&lOOll XV( l l=XTAB XY12l=XYl2l-.20*UPI MEMLOC=2 DO 216 I=l,NULOAD

VALUE=RDYNAMINUMSHA,MEMLOCJ MEMLOC=MEMLOC+S CALL CONVTITVALUE,3,VALUE,&lllll CALL CADNStXY,29,'MAGNITUDE OF UNBALANCED MASS:',&1001) XYtll=XTAB+S.S*UPI CALL CADNSIXY,16,TVALUE,&1001) XYlll=XTAB XYl2l=XY(2)-.20*UPI

216 CONTINUE

MOOFLGINUMSHA,127!=111 REHINO N3l HRITEIN31,*) MOOFLG REHIND N36 HRITEIN36,*l ROYNAM

CALL MSGGENI 'OYNAM MODULE UPDATED)') GO TO 99

77 CALL MSGGENI 'THE SHAFT NUMBER MUST BE BETHEEN 1 ANO lOJ'l GO TO 99

79 CALL MSGGEN( 'DYNAMIC CASE DELETED FROM DATA BASEJ'J GO TO 99

84 CALL MSGGENI 'ETFLAG PROBLEMS IN DYNAM MODULE)' J GO TO 99

89 CALL MSGGENI 'MAXIMUM OF 10 UNBALANCED LOADS PER SHAFT)') GO TO 99

96 CALL MSGGENI 'UNBALANCED MASS LOCATION INCORRECTLY SPECIFIED)' l GO TO 99

196 CALL MSGGENI 'INCORRECT SELECTION OF /END/ IN "UNBALANCED" LOOP)' J GO TO 99

1001 CALL MSGGENI 'CADNS PROBLEMS IN DYNAH MODULE)') GO TO 99

1111 CALL MSGGEN( 'CONVT PROBLEMS IN OYNAM MODULE)' l 99 RETURN

END

C***************************-*-***********************-********* SUBROUTINE SMOUNTIROATAJ

C********************************************************************* C C C C C

THIS SUBROUTINE IS USED TO DEFINE BEARING APPLICATIONS SUCH AS SHAFT MOUNTING, BEARING TYPES, BEARING POSITION INDICATORS, BEARING LOCATIONS, LUBRICANTS, AND OPERATING TEMPERATURES.

COMMON /SIMBA/ ETFLAG, CCl2l, DDl2l, RRR COMMON/CDTCOM/LETGO,NOREAD,COTSHO,ELSHOH,IPRINT,MODSIZ,

$ MDLLFT,FILDATl2l,MDLTXT117J,IHANTl9l

SUBROUTINE USRPGM LISTING 149

INTEGER CDTSHO, ELSHOH, ONE, ETFLAG, MODFLGll0,140) REAL*4 RDATAI 500), RMOUNTI 10 ,50 l, PTLI 2 J, PTRt 2), XVI 2 l,

$ LBGTXTl6), RBGTXTt6J, LLUBENt7), RLUBEN(7), TVALUEtl6) LOGICAL*l TNUMSHl16J DATA ONE/'ONE '/ DATA N31/31/, N37/37/ DATA LBGTXT/' ',' DATA RBGTXT/' ',' DATA LLUBEN/' ',' DATA RLUBEN/' ','

UPI=RDATAl3) DO 901 I=l,10 DO 901 J=l,50

901 RMOUNTtI,Jl=O.O LETGO=O NOREAD=l CDTSHO=O IPRINT=6 NUMSHA=RDATAt4)

I I , I ) I

I > I I I ,

I I , I I , I , I

I , I

I) I

I I

' I) I

I) I

IF IINUMSHA.LT.ll.OR.(NUMSHA.GT,10)) GO TO 77 REHIND N31 READIN31,*l MODFLG

C READ IN ANY EXISTING MOUNTING INFORMATION DO 11 I=l,10

IF !MODFLGII,128J.EQ.llll GO TO 12 11 CONTINUE

GO TO 13 12 REHIND N37

READIN37,*) RMOUNT 13 CONTINUE

C OBTAIN BEARING INFORMATION SNGDBL=RDATA(5l RMOUNT(NUMSHA,l)=SNGDBL APFACT=RDATA17l IF IRDATAl6l.EQ.2.) APFACT=l.O RMOUNTINUMSHA,3)=APFACT TYPMNT=RDATAl8) TYPLBG=RDATAl9l TYPRBG=RDATAllOJ IF ISNGDBL.EQ.l.) GO TO 14 TYPMNT=TYPMNT+Z. TYPLBG=TYPLBG+Z. TYPRBG=TYPRBG+2.

14 CONTINUE RMOUNT(NUMSHA,Zl=TYPMNT RHOUNTINUMSHA,14l=TYPLBG RHOUNTINUMSHA,24)=TYPRBG IF ITYPLBG.EQ.7.) GO TO l IF ITYPRBG.EQ.7. l GO TO 2 GO TO 3

l IFIITYPRBG.LT.2.5).0R.ITYPRBG.GT.6.5ll GO TO 83 GO TO 3

2 IFIITYPLBG.LT.2.5J.OR.ITYPLBG.GT.6.5ll GO TO 83 3 CONTINUE

NCNT=ll IF ISNGDBL.EQ.2. J GO TO 15

C PROCESS SINGLE ROH BEARINGS POSLBG=RDATAINCNTJ NCNT=NCNT+l LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O HlANTI l l=ONE IHANTl2l=RDATAINCNTJ

SUBROUTINE USRPGM LISTING

I I

' I I

' I I , I I ,

'/ '/ I ) I

I ) I

'/ '/

150

CALL CADET IF ((ETFLAG.NE.l).AND.IETFLAG.NE.2)) GO TO 84 IF IETFLAG.EQ.2) GO TO 17

C A POINT HAS SELECTED PTLI l )=CCI l) PTLl2)=CCl2) GO TO 18

C A LINE HAS SELECTED 17 PTLll)=ICCll)+DDll))/2.0

PTLl2)=1CCl2)+DDl2))/2.0 18 NCNT=NCNT+l

POSRBG=RDATAINCNT) NCNT=NCNT+l LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IHANTI l ) =ONE IHANTl2)=RDATAINCNT) CALL CADET IF IIETFLAG.NE.l).AND.IETFLAG.NE.2)) GO TO 84 IF IETFLAG.EQ.2) GO TO 19

C A POINT HAS SELECTED PTRll)=CC(l) PTRl2)=CC(2) GO TO 20

C A LINE HAS SELECTED 19 PTRll)=ICCll)+DD(l))/2.0

PTR(2)=1CCl2)+DDl2))/2.0 20 NCNT=NCNT+l

IF IIPTLl1).EQ,PTR(l)).AND.IPTLl2).EQ.PTRl1))) GO TO 85 GO TO 16

C PROCESS DOUBLE ROH BEARINGS 15 CONTINUE

IF IITYPLBG,EQ.6. ).OR.(TYPLBG.EQ.7,)) GO TO 21 POSLBG=3+RDATAINCNT) NCNT=NCNT+l GO TO 22

21 POSLBG=4 22 CONTINUE

LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IHANT(l)=ONE IHANTl2J=RDATAINCNTJ CALL CADET IF IIETFLAG.NE.l).AND.IETFLAG.NE.2)) GO TO 84 IF IETFLAG.EQ.2) GO TO 23

C A POINT HAS SELECTED PTU l )=CCI l) PTLI 2 )=CCI 2) GO TO 24

C A LINE HAS SELECTED 23 PTL(l)=ICC(lJ+DD(l))/2,0

PTLl2J=ICCl2)+DDl2))/2.0 24 NCNT=NCNT+l

IF IITYPRBG.EQ.6. J,OR,ITYPRBG.EQ.7, )) GO TO 25 POSRBG=3+RDATAINCNT) NCNT=NCNT+l GO TO 26

25 POSRBG=4 26 CONTINUE

LETGO=O NOREAD=l

SUBROUTINE USRPGM LISTING 151

CDTSHO=O IPRINT=6 ETFLAG=O IHANTI l l =ONE IHANTl2l=RDATA(NCNTJ CALL CADET IF IIETFLAG.NE.ll.AND.IETFLAG.NE.2ll GO TO 84 IF IETFLAG.EQ.2l GO TO 27

C A POINT HAS SELECTED PTRll)=CC(l) PTRl2l=CCl2) GO TO 28

C A LINE HAS SELECTED 27 PTRlll=ICCll)+DDll))/2.0

PTRl2l=ICCl2l+DDl2ll/2.0 28 NCNT=NCNT+l

IF IIPTLlll.EQ.PTRlll),AND,IPTL(2J.EQ.PTR(l)ll GO TO 85 16 CONTINUE

RMOUNT(NUMSHA,5l=POSLBG RMOUNTINUHSHA,15l=POSRBG RHOUNTINUHSHA,6l=PTLlll RHOUNTINUMSHA,7l=PTLl2) RHOUNTINUHSHA,16l=PTR(l) RMOUNTINUMSHA,17l=PTRl2)

C PROCESS BEARING NAMES NCHAR=ABSIRDATA(NCNTll NHORDS=(NCHAR+3l/4 IF IINCHAR.LT.ll.OR.INCHAR.GT.23)) GO TO 86 DO 30 I=l,NHORDS

LBGTXT(I)=RDATAINCNT+I) 30 CONTINUE

N=6 CALL OVERHRIN,LBGTXT,NCHAR,NHORDSl NCNT=NCNT+NHORDS+l NCHAR=ABSIRDATAINCNTl) NHORDS=(NCHAR+3)/4 IF IINCHAR.LT.l).OR.INCHAR.GT,23)) GO TO 86 DO 31 I=l,NHORDS

RBGTXTIIl=RDATAINCNT+I) 31 CONTINUE

N=6 CALL OVERHRIN,RBGTXT,NCHAR,NHORDS) NCNT=NCNT+NHORDS+l DO 32 I=l,6

RMOUNTI NUMSHA ,I+7 l=LBGTXTI I) RMOUNTINUMSHA,I+l7)=RBGTXTII)

32 CONTINUE C PROCESS LUBRICATION INFORMATION C FIRST CHECK LEFT BEARING

IF IRDATAINCNTJ.EQ.l. l GO TO 33 IF IRDATAINCNT).NE.-1.0l GO TO 90 RMOUNTI NUMSHA, 25 J =O. 0 NCNT=NCNT+3 GO TO 34

33 NCNT=NCNT+2 NCHAR=ABSIRDATAINCNT)) NHORDS=INCHAR+3)/4 IF IINCHAR.LT.ll.OR.(NCHAR.GT.25)) GO TO 91 DO 35 I=l,NHORDS

LLUBENII)=RDATAINCNT+Il 35 CONTINUE

N=7 CALL OVERHRIN,LLUBEN,NCHAR,NHORDS) NCNT=NCNT+NHORDS+l DO 36 I=l,7

RMOUNTINUMSHA,I+25l=LLUBENII) 36 CONTINUE

SlJBROUTll'iE USRPGM LISTING 152

GROILL=RDATA(NCNTJ

VS40L=RDATAINCNT+ll

VSlOOL=RDATAtNCNT+2l

TEMPL=RDATA(NCNT+3}

NCNT=NCNT+4

RMOUNTtNUMSHA,33)=GROILL

RMOUNTI NUMSHA ,34 l=VS40L

RMOUNTtNUMSHA,35}=VSlOOL

RMOUNTI NUMSHA,36 }=TEMPL

RMOUNT(NUMSHA,25}=1.0

34 CONTINUE

C NOH CHECK RIGHT BEARING

IF IRDATAtNCNTJ.EQ.l.l GO TO 38

IF tRDATAtNCNTJ.NE.-2.0} GO TO 90

RMOUNTtNUMSHA,37)=0.0

NCNT=NCNT+5

GO TO 37

38 NCNT=NCNT+2

IF tRDATAtNCNT).EQ.l.) GO TO 40

C RIGHT SIDE THE SAME AS THE LEFT SIDE

IF tRDATAtNCNT).NE.-10.) GO TO 90

NCNT=NCNT+3

IF (RMOUNT(NUMSHA,25}.EQ.0.0) GO TO 92

DO 41 I=l,7

RLUBEN!Il=LLUBENII)

41 CONTINUE

GROILR=GROILL

VS40R=VS40L

VSlOOR=VSlOOL

TEMPR=TEMPL

GO TO 42

C RIGHT SIDE DIFFERENT FROM LEFT SIDE

40 NCNT=NCNT+2

NCHAR=ABStRDATAINCNT})

NHORDS=(NCHAR+3}/4

IF ltNCHAR.LT.l}.OR.INCHAR.GT.25)} GO TO 91

DO 43 I=l,NHORDS

RLUBENtil=RDATAINCNT+I}

43 CONTINUE

N=7

CALL OVERHRtN,RLUBEN,NCHAR,NHORDSJ

NCNT=NCNT+NHORDS+l

GROILR=ROATAINCNT)

VS40R=RDATAINCNT+ll

VSlOOR=RDATAtNCNT+2l

TEMPR=RDATA(NCNT+3)

NCNT=NCNT+4

42 CONTINUE

DO 44 I=l,7

RMOUNTINUMSHA,I+37l=RLUBEN(Il

44 CONTINUE

RMOUNTI NUMSHA ,45 )=GROILR

RMOUNTINUMSHA,46J=VS40R

RMOUNTINUMSHA,47)=VS100R

RMOUNTINUMSHA,48J=TEMPR

RMOUNTINUMSHA,37)=1.0

37 CONTINUE

C CHECK IF ISO BEARINGS ARE TO BE CONSIDERED OR NOT

ISONOT=ROATA(NCNT)

RMOUNT(NUMSHA,4}=ISONOT

C WRITE OUT APPROPRIATE NOTES TO SCREEN

XYll}=RDATAINCNT+lJ

XYl2J=RDATAINCNT+2)

XTAB=XY!ll

SHANUM=NUMSHA

CALL CONVT(TNUMSH,O,SHANUM,&1111)

CALL CADNSIXY,13,'SHAFT NUMBER: ',&1001)

SUBROUTINE USRPGM LISTI�G 153

XY1ll=XTAB+2.25*UPI CALL CADNSIXY,16,TNUMSH,&1001) XY(ll=XTAB XYl2)=XYl2J-.20*UPI IF ISNGDBL.EQ,l, J CALL CADNSIXY,19,'SINGLE ROH ANALYSIS',&1001) IF ISNGDBL.EQ.2. l CALL CADNSIXY,19,'DOUBLE ROH ANALYSIS',&1001) XYl2l=XYl2l-.20*UPI IF ITYPMNT.EQ.l. l CALL CADNSIXY,15,'DIRECT MOUNTING',&1001) IF (TYPMNT.EQ.2. l CALL CADNSIXY,17,'INDIRECT MOUNTING',&1001) IF ITYPMNT.EQ.3. l CALL CADNSIXY,19,'FIXED LEFT MOUNTING' ,&1001) IF ITYPMNT.EQ.4. l CALL CADNSIXY,20,'FIXED RIGHT MOUNTING',&1001) XY(2l=XYl2)-.20*UPI IF ITYPMNT.NE.5. J GO TO 45 CALL CADNSIXY,18,'FLOAT ALL MOUNTING',&1001) CALL CADNSIXY,28,'NO THRUST LOADS ARE ALLOHED.',&1001) XYl2J=XY(2)-.20*UPI

45 CONTINUE CALL CADNS(XY,19,'APPLICATION FACTOR:',&1001) XYlll=XYlll+3.l*UPI VALUE=APFACT CALL CONVTITVALUE,3,VALUE,&lllll CALL CADNSIXY,16,TVALUE,&1001) XYll)=XTAB XYl2)=XYl2)-.20*UPI IF(ISONOT.EQ.lJCALL CADNS(XY,23,'ISO BEARINGS CONSIDERED',&1001) IFIISONOT.EQ.2JCALL CADNSIXY,23,'ISO BRGS NOT CONSIDERED',&1001) XYl2J=XYl2J-.20*UPI

C PUT OUT NOTES FOR LEFT BEARING CALL CADNSIXY,26,'LEFT BRG POSITION LOCATOR:',&1001) XYlll=XY(ll+4.35*UPI IF (POSLBG.EQ.l.) CALL CADNSIXY,16,'EFFECTIVE CENTER',&1001) IF (POSLBG.EQ.2.) CALL CADNSIXY,14,'CONE BACK FACE',&1001) IF IPOSLBG.EQ.3.l CALL CADNSIXY,13,'CUP BACK FACE',&1001) IF (POSLBG.EQ.4.l CALL CADNSIXY,14,'LEFT CONE FACE',&1001) IF (POSLBG.EQ.5.l CALL CADNSIXY,15,'RIGHT CONE FACE',&1001) IF (POSLBG.EQ.6.) CALL CADNSIXY,13,'LEFT CUP FACE',&1001) IF (POSLBG.EQ.7.l CALL CADNSIXY,14,'RIGHT CUP FACE',&1001) XYll)=XTAB XYl2l=XYl2)-.20*UPI CALL CADNSIXY,11,'X LOCATION:',&1001) XY(ll=XYlll+2.0*UPI VALUE=PTLI l J CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&1001) XYlll=XTAB XYl2l=XYl2)-.20*UPI CALL CADNSIXY,11,'Y LOCATION:',&1001) XYlll=XYl1)+2.0*UPI VALUE=PTLl2) CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNS(XY,16,TVALUE,&1001) XYll)=XTAB XYl2)=XY12l-.20*UPI CALL CADNSIXY,15,'BEARING A NAME:',&1001) XYl1J=XYl1)+2.5*UPI CALL CADNSIXY,24,LBGTXT,&1001) XYlll=XTAB XYl2l=XYl2)-.20*UPI IF ITYPLBG.EQ.l. l CALL CADNSIXY,7,'TYPE TS',&1001) IF ITYPLBG.EQ.2.) CALL CADNSIXY,8,'TYPE TSF',&1001) IF ITYPLBG.EQ.3.) CALL CADNSIXY,8,'TYPE TDI',&1001) IF ITYPLBG.EQ.4. J CALL CADNSIXY ,8, 'TYPE TDO' ,&1001 J IF ITYPLBG.EQ.5.) CALL CADNSIXY,11,'TYPE 2TS-DM',&1001J IF IITYPLBG.NE.6. ).AND.(TYPLBG.NE.7. ll GO TO 46 IF ITYPLBG.EQ.6. J CALL CADNSIXY,11,'TYPE 2TS-IM',&100ll IF ITYPLBG.EQ.7.) CALL CADNSIXY,18,'NON TIMKEN BEARING',&1001) XYl2J=XYl2J-.20*UPI

SUBROUTINE USRPGM LISTING 154

CALL CADNS(XY,28,'NOTE: A HIDTH CANNOT BE USED',&1001) 46 CONTINUE

XYl2J=XYl2J-.20*UPI C PUT OUT NOTES FOR RIGHT BEARING

CALL CADNSIXY,27,'RIGHT BRG POSITION LOCATOR:',&1001) XYlll=XYlll+4.5*UPI IF IPOSRBG.EQ.l.) CALL CADNSIXY,16,'EFFECTIVE CENTER',&1001) IF IPOSRBG.EQ.2.) CALL CADNSIXY,14,'CONE BACK FACE',&1001) IF (POSRBG.EQ.3. J CALL CADNSIXY,13,'CUP BACK FACE',&1001) IF IPOSRBG.EQ.4.) CALL CADNSIXY,14,'LEFT CONE FACE',&10011 IF IPOSRBG.EQ.5. l CALL CADNS(XY,15,'RIGHT CONE FACE',&1001) IF IPOSRBG.EQ.6. l CALL CADNSIXY,13,'LEFT CUP FACE',&1001) IF IPOSRBG.EQ.7. J CALL CADNSIXY,14,'RIGHT CUP FACE',&1001) XYlll=XTAB XYl2)=XYl2l-.20*UPI CALL CADNSIXY,11,'X LOCATION:',&10011 XYlll=XYlll+2.0*UPI VALUE=PTRlll CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&1001) XY(ll=XTAB XY(2l=XYl2J-.20*UPI CALL CADNSIXY,11,'Y LOCATION:',&1001) XYl1J=XY(ll+2.0*UPI VALUE=PTRl2J CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&1001) XYlll=XTAB XYl2l=XYt2J-.20*UPI CALL CADNSIXY,15,'BEA~ING B NAME:',&1001) XY(ll=XYl1l+2.5*UPI CALL CADNSIXY,24,RBGTXT,&1001) XYlll=XTAB XYl2l=XY(2l-.20*UPI IF ITYPRBG.EQ.1. l CALL CADNSIXY,7,'TYPE TS',&10011 IF tTYPRBG.EQ.2. J CALL CADNSIXY,8,'TYPE TSF',&10011 IF ITYPRBG.EQ.3. l CALL CADNSIXY,8,'TYPE TDI',&1001) IF ITYPRBG.EQ.4.J CALL CADNSIXY,8,'TYPE TD0',&1001) IF ( TYPRBG. EQ. 5. l CALL CADNS( XY, 11, 'TYPE 2TS-DM' , &1001 J IF IITYRLBG.NE.6.J.AND.ITYPLBG.NE.7.)) GO TO 47 IF ITYPRBG.EQ.6. J CALL CADNSIXY,11,'TYPE 2TS-IM',&1001J IF ITYPRBG.EQ.7. l CALL CADNSIXY,18,'NON TIMKEN BEARING',&1001) XYl2l=XYl2l-.20*UPI CALL CADNSIXY,28,'NOTE: A WIDTH CANNOT BE USED',&10011

47 CONTINUE XYl2l=XYl2l-.20*UPI

C PUT OUT LUBRICATION INFORMATION C FIRST CHECK IF THERE IS ANY LEFT BEARING LUBRICATION INFORMATION

IF IRMOUNTINUMSHA,251.EQ.O.Ol GO TO 50 C WRITE OUT LEFT BEARING INFORMATION

CALL CADNSIXY,19,'LEFT BRG LUBE NAME:',&1001) XY11J=XYl1)+3.2*UPI CALL CADNSIXY,28,LLUBEN,&1001) XYlll=XTAB XYl2l=XYl2)-.20*UPI IFIRMOUNTINUMSHA,33).EQ.l. )CALL CADNSIXY,11,'GREASE USED',&1001) IFIRMOUNT(NUMSHA,33).EQ.2. )CALL CADNSIXY,8,'0IL USED',&lOOlJ XYl2l=XYl2)-.20*UPI CALL CADNSIXY,19,'40C VISCOSITY, CST:',&1001) XYl1)=XY(l)+3.2*UPI VALUE=VS40L CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&1001) XYlll=XTAB XYl2l=XY12l-.20*UPI CALL CADNSIXY,20,'lOOC VISCOSITY, CST:',&1001) XYlll=XYlll+3.2*UPI

SUBROUTINE USRPG;\'1 LISTl:"IG 155

VALUE=VSlOOL CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&1001) XYlll=XTAB XYl2l=XYl2)-.20*UPI IF IRDATA(ll.EQ.l.Ol

$ CALL CADNStXY,33,'0PERATING TEMPERATURE, DEGREES F:',&1001) IF tRDATAtll,EQ.2.0)

$ CALL CADNStXY,33,'0PERATING TEMPERATURE, DEGREES C:',&1001) XYlll=XYl1)+5.5*UPI VALUE=TEMPL CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&1001) XY(ll=XTAB XYt2l=XYl2l-.20*UPI

50 CONTINUE C NOW CHECK IF THERE IS ANY RIGHT BEARING LUBRICATION INFORMATION

IF IRMOUNT(NUMSHA,37).EQ.O.Ol GO TO 51 C WRITE OUT RIGHT BEARING INFORMATION

CALL CADNSIXY,20,'RIGHT BRG LUBE NAME:',&1001) XY(ll=XY(ll+3.3*UPI CALL CADNSIXY,28,RLUBEN,&1001) XY(ll=XTAB XYl2l=XYl2l-,20*UPI IFIRMOUNTINUMSHA,45),EQ,l, )CALL CADNSIXY,11,'GREASE USED',&10011 IFIRMOUNTINUMSHA,451.EQ.2. )CALL CADNS(XY,8,'0IL USED',&1001) XYt2l=XYl2l-.20*UPI CALL CADNSIXY,19,'40C VISCOSITY, CST:',&1001) XY1ll=XY(ll+3.2*UPI VALUE=VS40R CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&10011 XY(ll=XTAB XY12l=XY(2)-.20*UPI CALL CADNS(XY,20,'lOOC VISCOSITY, CST:',&1001) XYlll=XYtl)+3.2*UPI VALUE=VSlOOR CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNStXY,16,TVALUE,&1001) XY(ll=XTAB XYl2l=XY(2)-.20*UPI IF IRDATA(ll.EQ.1.0)

$ CALL CADNStXY,33,'0PERATING TEMPERATURE, DEGREES F:',&1001) IF IRDATA(l),EQ,2.0l

$ CALL CADNSIXY,33,'0PERATING TEMPERATURE, DEGREES C:',&1001) XYl1l=XY(ll+5.5*UPI VALUE=TEMPR CALL CONVTITVALUE,3,VALUE,&lllll CALL CADNSIXY,16,TVALUE,&1001) XYtll=XTAB XYt2J=XYt2l-.20*UPI

51 CONTINUE C ~IRITE INFORMATION TO FILES

MODFLG(NUMSHA,128)=111 REHIND N31 WRITEIN31,*l MODFLG REWIND N37 WRITEIN37,*l RMOUNT CALL MSGGENt 'MOUNT MODULE UPDATED)' l

GO TO 99 77 CALL MSGGENI 'THE SHAFT NUMBER MUST BE BETWEEN 1 AND 10)' l

GO TO 99 83 CALL MSGGENI 'OTHER REQUIRES A 2 ROW BRG AT OPPOSITE END)' l

GO TO 99 84 CALL MSGGEN( 'ETFLAG PROBLEMS IN MOUNT MODULE)' l

GO TO 99

SUBROUTINE USRPGM LISTING 156

85 CALL MSGGENI 'BEARING POSITIONS CAN NOT BE THE SAME)') GO TO 99

86 CALL MSGGENC 'BEARING NAMES MUST BE BETWEEN l AND 23 CHAR)') GO TO 99

90 CALL MSGGENC 'INCORRECT SELECTION OF /END/ IN LUBRICATION PART)') GO TO 99

91 CALL MSGGENC 'LUBRICATION NAMES MUST BE BETWEEN l AND 25 CHAR)') GO TO 99

92 CALL MSGGEN( 'COPYING LUBE INFORMATION AT B NEEDS INFO AT AJ') GO TO 99

1001 CALL MSGGEN( 'CADNS PROBLEMS IN MOUNT MODULE)') GO TO 99

1111 CALL MSGGEN( 'CONVT PROBLEMS IN MOUNT MODULE)') 99 RETURN

END

C********************************************************************* SUBROUTINE OVERWRIN,TEXT,NCHAR,NWORDSl

C********************************************************************* C C C C C C C

THIS SUBROUTINE IS USED TO "CLEAN UP" THE LAST BYTE OF A TEXT STRING KEYED IN WHILE RUNNING A MACRO PROGRAM. CADAM EVIDENTLY FILLS THE UNUSED PORTION OF THE LAST BYTE WITH GARBAGE. IT IS, THEREFORE, NECESSARY TO USE EQUIVALENCE STATEMENTS TO PAD THE UNUSED PORTION OF THE BYTE WITH BLANKS AFTER EXECUTION.

REAL*4 TEXTCNl, HOLD, OUT INTEGER N, NCHAR, NWORDS LOGICAL*l BLANK, TEMPC4l, RESULTl4l EQUIVALENCE CHOLD,TEMPtlll, IOUT,RESULTtll) DATA BLANK/' '/

LHCHAR=NCHAR-INWORDS-ll*4 IF ILWCHAR.EQ.4l GO TO 99 HOLD=TEXTINHORDSl DO 50 I=l,LHCHAR

50 RESULTIIl=TEMPIIJ NLEFT=LHCHAR+l DO 60 I=NLEFT,4

60 RESULTII)=BLANK TEXTINNORDSl=OUT

99 RETURN END

C********************************************************************* SUBROUTINE SBRGCNIRDATAJ

C********************************************************************* C C THIS SUBROUTINE IS USED TO DEFINE ALL BEARING CONSTRAINTS. C THESE INCLUDE BORE DIAMETER, OUTER DIAMETER, WIDTH, K-FACTOR, C C(90l VALUE, AND BEARING LIFE tIN TIME OR DISTANCE). ALSO, C BEARING PART NUMBERS ARE SPECIFIED IN THIS SUBROUTINE. THEY C INCLUDE CONE, CUP AND SERIES NUMBERS. C

INTEGER REAL*4

$ LOGICAL*l DATA

MODFLG(l0,140) RDATAl500), RBRGCNll0,153), PT12J, XYl2l, CONEl3l, CUPl3l, ALTl3l, SERIES13l TNUMSHI 16), TVALUEI 16 l, TVALll 16 l, TVAL2116), TRLCNI 16) N31/31/, N38/38/

UPI=RDATAl3) DO 902 I=l,10 DO 902 J=l,153

902 RBRGCNII,Jl=O.O NUMSHA=RDATA(4)

SUBROUTINE USRPGM LISTI:\G 157

IF IINUMSHA.LT,ll,OR,INUMSHA.GT,lOll GO TO 77 REWIND N31 READIN31,*) MODFLG

C READ IN ANY EXISTING BEARING CONSTRAINT INFORMATION DO 11 I=l,10

IF IIMODFLGII,129).EQ.111).0R.CMODFLGCI,130).EQ,111)) GO TO 12 11 CONTINUE

GO TO 13 12 REHIND N38

READIN38,*) RBRGCN 13 CONTINUE

C DETERMINE WHICH BEARING TO PROCESS NAB=RDATAC5)

C CLEAR WORKING ARRAY IN CASE OF AN OVERWRITE REQUIREMENT IFIINAB.NE.l).AND.INAB,NE,2)1 GO TO 95 IF CNAB.EQ.ll MSTART=25 IF INAB.EQ.2) MSTART=89 DO 901 I=l,64

RBRGCNCNUMSHA,I+MSTARTl=O,O 901 CONTINUE

C OBTAIN NEW BEARING CONSTRAINT INFORMATION ANASEL=RDATAl6l RBRGCNINUMSHA,NABl=ANASEL TIMOTH=RDATAl7) RBRGCNINUMSHA,NAB+2l=TIMOTH

C CHECK IF A TIMKEN BEARING IS USED NCNT=8 IF CTIMOTH.EQ.2.0l GO TO 9

C CHECK IF ANALYSIS ONLY OR SELECTION TOO NFLAG=O IF CANASEL.EQ.2. l GO TO 15

C ANALYSIS ONLY SECTION CALL ANLYSSINAB,NCNT,RDATA,NUMSHA,RBRGCN,NFLAG,MODFLG) IF INFLAG.NE.Ol GO TO 99 GO TO 9

15 CONTINUE C SELECTION TOO SECTION

CALL SELECTINAB,NCNT,RDATA,NUMSHA,RBRGCN,NFLAG,MODFLGl IF INFLAG.NE.OJ GO TO 99

9 CONTINUE C HRITE OUT APPROPRIATE NOTES TO SCREEN

XYlll=RDATAINCNTl XYl2l=RDATA(NCNT+ll XTAB=XY(l) SHANUM=NUMSHA CALL CONVTITNUMSH,O,SHANUM,&1111) CALL CADNSIXY,13,'SHAFT NUMBER:',&1001) XY!ll=XTAB+2.25*UPI CALL CADNSIXY,16,TNUMSH,&1001) XYlll=XTAB XYC2l=XYl2l-.20*UPI IF INAB.EQ.ll CALL CADNSIXY,9,'BEARING A',&1001) IF INAB.EQ.2) CALL CADNSIXY,9,'BEARING B',&1001) XY12l=XYl2l-.20*UPI IF IANASEL.EQ.l.Ol

$ CALL CADNSIXY,31,'BOTH BEARINGS ARE ANALYSIS ONLY',&1001) IF IANASEL.EQ.2.0l

$ CALL CADNSIXY,31,'l OR BOTH BEARINGS ARE SELECTED',&10011 XYl2l=XYl2l-.20*UPI IF ITIMOTH.EQ.1.0)

$ CALL CADNSIXY,34,'TIMKEN TAPERED ROLLER BEARING USED',&1001)

SUBROUTINE USRPGM LISTING 158

IF ITIMOTH.EQ,2.0l $ CALL CADNSIXY,23,'NON-TIMKEN BEARING USED',&1001) XY(2l=XY12l-.20*UPI IF ITIMOTH.EQ,2,0l GO TO 76

IF INAB.EQ.2) GO TO 18 MEM=O MEMLOC=O MEMTYP=O GO TO 17

18 MEM=lO MEHLOC=64 MEMTYP=3

17 CONTINUE

IF (ANASEL,EQ.2.0l GO TO 19 C "ANALYSIS ONLY" NOTES TO THE SCREEN

IF IRSRGCNINUMSHA,NAB+Bl.NE.l.Ol GO TO 20 CALL CADNSIXY,31,'BEARING B COPIED FROM BEARING A',&1001) GO TO 76

20 DO 21 I=l,3 CONE1Il=RBRGCNINUMSHA,MEMTYP+l3+Il CUPIIl=RBRGCNINUMSHA,MEMTYP+l9+Il

21 CONTINUE CALL CADNSIXY,12,'CONE NUMBER:',&1001) XY1ll=XY11)+2.0*UPI CALL CADNS(XY,12,CONE,&1001) XYll)=XTAB XYl2l=XYl2)-.20*UPI CALL CADNSIXY,11,'CUP NUMBER:',&1001) XY(l)=XYl1)+2.0*UPI CALL CADNSIXY,12,CUP,&1001) XY(ll=XTAB XYl2J=XY12J-.20*UPI IF (RBRGCN(NUMSHA,NAB+4l.EQ.2,0) GO TO 76

C ~RITE OUT ALTERNATE BEARINGS TO THE SCREEN LR=O DO 22 I=l,8

CNCPSR=RBRGCN(NUMSHA,MEMLOC+26+LRJ IF ICNCPSR.EQ.0.0) GO TO 66 IF ICNCPSR.EQ.l. l CALL CADNSIXY,14,'ALTERNATE CONE',&1001) IF (CNCPSR.EQ.2.) CALL CADNSIXY,13,'ALTERNATE CUP',&1001) IF (CNCPSR.EQ.3.) CALL CADNSIXY,16,'ALTERNATE SERIES',&1001) XY(ll=XYl1)+2,9*UPI DO 23 J=l,3

LR=LR+l ALTIJ)=RBRGCNINUMSHA,MEMLOC+26+LRl

23 CONTINUE LR=LR+l CALL CADNSIXY,12,ALT,&lOOlJ XYlll=XTAB XY(2l=XYl2)-,20*UPI

22 CONTINUE

19 CONTINUE C "SELECTION TOO" NOTES TO THE SCREEN

IF IRBRGCNINUMSHA,NAB+8).NE.l.OJ GO TO 30 CALL CADNSIXY,31,'BEARING B COPIED FROM BEARING A',&1001) XYl2l=XYl2)-.20*UPI GO TO 66

30 CONTINUE CONSTR=RBRGCNINUMSHA,NAB+6)

IF ICONSTR.GT.2.0J GO TO 31 C CHECK CONE CONSTRAINT

DO 32 I=l,3 CONE(IJ=RBRGCNINUMSHA,MEMTYP+l3+IJ

SUBROUTINE USRPG;\,l LISTING 159

32 CONTINUE CALL CADNSIXY,12,'CONE NUMBER:',&1001) XYlll=XYllJ+2.0~UPI CALL CADNSIXY,12,CONE,&1001) XY(ll=XTAB XY12l=XYl2J-.20*UPI

31 IF l(CONSTR.EQ.2.0l.OR.ICONSTR.GT.3.0JJ GO TO 33 C CHECK CUP CONSTRAINT

DO 34 I=l,3 CUPIIJ=RBRGCNINUMSHA,MEMTYP+l9+IJ

34 CONTINUE CALL CADNS(XY,11,'CUP NUMBER:',&1001) XYl1J=XYl1)+2.0*UPI CALL CADNSIXY,12,CUP,&1001) XYllJ=XTAB XY(2l=XY(2J-.20*UPI IF (CONSTR.EQ.l.OJ GO TO 56

33 IF (CONSTR.EQ.2.0J GO TO 35 C CHECK BORE CONSTRAINT

VALl=RBRGCNINUMSHA,MEMLOC+26J VAL2=RBRGCNINUMSHA,MEMLOC+27J IFIIVAL1.EQ.O.OJ.AND.(VAL2.EQ.O.OJJ GO TO 35 CALL CONVTITVALl,3,VALl,&llllJ CALL CONVTITVAL2,3,VAL2,&lllll CALL CADNS(XY,13,'MINIMUM BORE:',&1001) XYl1J=XYl1)+2.l*UPI CALL CADNS(XY,16,TVALl,&1001) XYllJ=XTAB XYl2J=XY12J-.20*UPI CALL CADNSIXY,13,'MAXIMUM BORE:',&1001)

• XY(ll=XYl1)+2.l*UPI CALL CADNSIXY,16,TVAL2,&1001) XY(ll=XTAB XYl2l=XYl2)-.20*UPI

35 IF (CONSTR.EQ.3.0J GO TO 56 C CHECK OUTER DIAMETER CONSTRAINT

VALl=RBRGCNINUMSHA,MEMLOC+28l VAL2=RBRGCNINUMSHA,MEMLOC+29J IF(IVAL1.EQ.O.OJ.AND.IVAL2.EQ.O.OJJ GO TO 36 CALL CONVTITVALl,3,VALl,&llllJ CALL CONVT(TVAL2,3,VAL2,&llll) CALL CADNSIXY,11,'MINIMUM 0D:',&1001) XYl1J=XYl1J+2.0*UPI CALL CADNS(XY,16,TVALl,&lOOlJ XY(ll=XTAB XYl2l=XYl2J-.20*UPI CALL CADNSIXY,11,'MAXIMUM OD: ',&1001) XY(lJ=XYllJ+2.0*UPI CALL CADNSIXY,16,TVAL2,&1001J XYlll=XTAB XYl2J=XYl2l-.20*UPI

36 IF (CONSTR.EQ.2.0) GO TO 56 IF ICONSTR.EQ.4.0) GO TO 50

C C(90l INFORMATION VALl=RBRGCNINUMSHA,MEMLOC+32J VAL2=RBRGCNINUMSHA,MEMLOC+33J IFIIVAL1.EQ.O.OJ.AND.(VAL2.EQ.O.OJJ GO TO 37 CALL CONVTITVALl,3,VALl,&llllJ CALL CONVTITVAL2,3,VAL2,&1111J CALL CADNSIXY,13,'MINIMUM C-90:',&1001) XYl1J=XYl1J+2.l*UPI CALL CADNSIXY,16,TVALl,&1001) XYlll=XTAB

SUBROUTINE USRPGM LISTING 160

XY(2)=XYl2)-.20*UPI CALL CADNS(XY,13,'MAXIMUM C-90:',&1001) XY(l)=XY11)+2.l*UPI CALL CADNS(XY,16,TVALZ,&1001) XYI U=XTAB XYl2)=XY(2)-.20*UPI

C K-FACTOR INFORMATION 37 VALl=RBRGCN(NUMSHA,MEMLOC+34)

VAL2=RBRGCN(NUMSHA,MEMLOC+35) IF((VAL1.EQ.O.OJ.AND.(VAL2.EQ.0.0)) GO TO 56 CALL CONVT(TVALl,3,VALl,&1111) CALL CONVT(TVAL2,3,VAL2,&llll) CALL CADNS(XY,17,'MINIMUM K-FACTOR:',&1001) XY(l)=XY(l)+2.9*UPI CALL CADNS(XY,16,TVALl,&1001) XY(l)=XTAB XY(2)=XY(2)-.20*UPI CALL CADNSIXY,17,'MAXIMUM K-FACTOR:',&1001) XYllJ=XYll)+Z,9*UPI CALL CADNS(XY,16,TVAL2,&1001) XYll)=XTAB XYl2l=XYIZJ-.20*UPI GO TO 56

50 CONTINUE C SERIES INFORMATION

DO 51 I=l,3 SERIES(IJ=RBRGCN(NUMSHA,MEMLOC+35+I)

51 CONTINUE CALL CADNS(XY,14,'SERIES NUMBER:',&1001) XY(ll=XY(ll+2.3*UPI CALL CADNS(XY,12,SERIES,&1001) XY(l)=XTAB XY(2l=XYl2l-.20*UPI

C WIDTH INFORMATION 56 VAL1=RBRGCN(NUMSHA,MEMLOC+30l

VAL2=RBRGCNINUMSHA,MEMLOC+3ll IFl(VAL1.EQ.O.Ol.AND.IVAL2.EQ.O.Oll GO TO 57 CALL CONVT(TVALl,3,VALl,&lllll CALL CONVT(TVAL2,3,VAL2,&lllll CALL CADNSIXY,14,'MINIMUM HIDTH:',&1001) XYl1l=XY(ll+2.4*UPI CALL CADNS(XY,16,TVALl,&1001) XV( 1 l=XTAB XY(2l=XY(2J-.20*UPI CALL CADNS(XY,14,'MAXIMUM HIDTH:',&1001) XY(l)=XYl1)+2.4*UPI CALL CADNS(XY,16,TVALZ,&1001) XY(lJ=XTAB XY(2l=XYl2l-.20*UPI CALL CADNS(XY,40,'BEARING TYPE 2TS-IM IGNORES WIDTH CONSTR',&1001) XY(2l=XYl2l-.20*UPI

57 NFANG=O

C MINIMUM LIFE NOTES, IF ANY DO 58 I=l,50

VALUE=RBRGCN(NUMSHA,MEMLOC+38+Il IF (VALUE.EQ.O.Ol GO TO 58 NFANG=l CALL CADNS(XY,21,'LOAD CONDITION NUMBER',&1001) XY1ll=XY(ll+3.5*UPI RLCN=I CALL CONVTITRLCN,O,RLCN,&1111) CALL CADNS(XY,16,TRLCN,&1001)

SUBROUTINE USRPGM LISTING 161

XY(l)=XTAB+0.3*UPI XY(2)=XY12)-.20*UPI CALL CAONS(XY,21,'MINIMUM REQUIRED LIFE',&1001) XY(l)=XYl1)+3.5*UPI CALL CONVTITVALUE,3,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&1001) XY(l)=XTAB XYl2)=XYl2)-.20*UPI

58 CONTINUE

C MINIMUM WEIGHTED LIFE, IF ANY VALUE=RBRGCNINUMSHA,MEMLOC+89) IF IVALUE.EQ.0.0) GO TO 59 NFANG=l CALL CADNSIXY,30,'MINIMUM REQUIRED WEIGHTED LIFE',&1001) XYll)=XYl1)+6.0*UPI CALL CONVT(TVALUE,3,VALUE,&1111) CALL CAONSIXY,16,TVALUE,&1001) XYll)=XTAB XY12)=XYl2)-.20*UPI

59 IF (NFANG.EQ.0) GO TO 66 CALL CADNSIXY,38,'MINIMUM LIVES IN EITHER HOURS OR MI/KM',&1001) XYll)=XTAB+0.3*UPI XYl2)=XY(2)-.20*UPI CALL CADNSIXY,37,'- BASED ON LOADS MODULE SPECIFICATION',&1001) XYll)=XTAB XY(2)=XYl2)-.20*UPI

66 CONTINUE C SUMMARY INFORMATION FOR BEARINGS

CALL CADNSIXY,40,'SUMMARY LIST DEFINED OR REDEFINED TO BE:',&1001) XY(ll=XTAB+0.3*UPI XY(2)=XYl2)-.20*UPI CALL CADNSIXY,32,'NUMBER OF BEARING PAIRS IN LIST:',&1001) XY(ll=XYl1)+5.2*UPI VALUE=RBRGCN(NUMSHA,lll CALL CONVTITVALUE,O,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&1001) XY(l)=XTAB+0.3*UPI XYl2)=XYl2)-.20*UPI K=NUMSHA IF IRBRGCNIK,12).EQ.l.O) CALL CADNSIXY,12,'RANK BY LIFE',&1001) IF IRBRGCNIK,12).EQ.2.0l CALL CADNSIXY,13,'RANK BY PRICE',&1001) XYl2l=XYl2)-.20*UPI VALUE=RBRGCNINUMSHA,13) IF IIVALUE.LT.l. J.OR.(VALUE.GT.50. ll GO TO 25 CALL CADNS(XY,36,'LIFE BASED ON LOAD CONDITION NUMBER:',&1001) XY1l)=XY(l)+6.0*UPI CALL CONVTITVALUE,O,VALUE,&lllll CALL CADNSIXY,16,TVALUE,&1001) GO TO 76

25 CALL CADNSIXY,35,'SUMMARY LIST BASED ON WEIGHTED LIFE',&lGOll

76 CONTINUE C WRITE INFORMATION TO FILES

MODFLGINUMSHA,NAB+l28)=111 REl>lIND N31 HRITEIN31,*l MOOFLG REHIND N38 HRITEIN38,*l RBRGCN CALL MSGGEN( 'BRGCN MODULE UPDATED)' l GO TO 99

77 CALL MSGGENI 'THE SHAFT NUMBER MUST BE BETWEEN 1 ANO lOl' l GO TO 99

95 CALL MSGGENI 'INCORRECT SELECTION OF CURRENT BEARING)' l

SUBROUTINE USRPGM LISTl::\G 162

GO TO 99 1001 CALL MSGGENI 'CADNS PROBLEMS IN BRGCN MODULE)')

GO TO 99 1111 CALL MSGGENI 'CONVT PROBLEMS IN BRGCN MODULE)') 99 RETURN

END

C***-*********-*-**************-*******-**********-***-******** SUBROUTINE ANLYSSINAB,NCNT,RDATA,NUMSHA,RBRGCN,NFLAG,MODFLG)

C******-***-*****************************************************-* C C C C C

THIS SUBROUTINE IS USED TO PROCESS BEARING CONSTRAINTS HHILE IN THE "ANALYSIS ONLY" MODE OF OPERATION. CONE AND CUP NUMBERS ARE SPECIFIED ALONG HITH ANY ALTERNATE BEARING PART NUMBERS.

INTEGER REAL*4

NAB, NCNT, NUMSHA, NFLAG, MODFLGll0,140) ROATAl500l, RBRGCNll0,153), PTl2l, XYl2),

$ DATA DATA DATA

CONEt3l, CUPt3), ALTl3) BLANKS/' '/, ALT/' CONE/ I I , I I • I

CUP/' I I • I I • COPDIF=RDATAINCNT) NCNT=NCNT+l

• 'I 'I

I I •

C CHECK IF BEARING BIS TO BE THE SAME AS BEARING A IF ICOPDIF.NE.1.0) GO TO 20

'I

C ONLY A DEFINED BEARING AT "A" CAN BE COPIED TO "B" IF IMODFLGINUMSHA,129).NE.lll) GO TO 78

C CHECK TO MAKE SURE THEY ARE BOTH ANALYSIS ONLY IF IRBRGCNINUMSHA,1).NE.l.Ol GO TO 79 RBRGCNINUMSHA,NAB+8)=COPDIF GO TO 99

20 CONTINUE C BEARING "A" OR A DIFFERENT BEARING "B"

RBRGCNtNUMSHA,NAB+8)=COPDIF ALTNOT=RDATAINCNT) NCNT=NCNT+l RBRGCNtNUMSHA,NAB+4)=ALTNOT NCHAR=ABSIRDATAINCNT)J IF IINCHAR.LT.ll.OR.INCHAR.GT.12)) GO TO 80 NNORDS=INCHAR+3)/4 DO 21 I=l ,Nl~ORDS

CONEIIJ=RDATAINCNT+I) 21 CONTINUE

N=3 CALL OVERHRIN,CONE,NCHAR,NHORDSJ NCNT=NCNT+NHORDS+l NCHAR=ABSIRDATAINCNTJJ IF IINCHAR.LT.lJ.OR.INCHAR.GT.12)) GO TO 80 NWORDS=tNCHAR+3J/4 DO 22 I=l,Nl~ORDS

CUPII)=RDATAINCNT+I) 22 CONTINUE

N=3 CALL OVERHRIN,CUP,NCHAR,NHORDSJ NCNT=NCNT+NHORDS+l IF INAB.EQ.2) GO TO 23 DO 24 I=l,3

RBRGCNINUMSHA,I+l3J=CONEII) RBRGCNINUMSHA,I+l9J=CUPIIJ

24 CONTINUE GO TO 25

23 CONTINUE DO 26 I=l,3

RBRGCNINUMSHA,I+l6J=CONEIIJ RBRGCNINUMSHA,I+22J=CUPIIJ

SUBROUTINE USRPGM LISTING

BLANKS,

163

26 CONTINUE 25 CONTINUE

IF (ALTNOT.EQ.2,0) GO TO 99 C ALTERNATE BEARINGS SPECIFIED

NCONE=O NCUP=O NSERS=O NCNSR=O NCPSR=O IF INAB.EQ.ll MEMLOC=26 IF INAB.EQ,2) MEMLOC=90

27 CONTINUE CNCPSR=RDATAINCNT)

C SET FLAGS FOR MAXIMUM NUMBER OF ALTERNATE BEARINGS IF ICNCPSR.EQ.l.OJ NCONE=NCONE+l IF ICNCPSR.EQ.2.0l NCUP=NCUP+l IF ICNCPSR.EQ.3.0) NSERS=NSERS+l NCNSR=NCONE+NSERS NCPSR=NCUP+NSERS

C CHECK IF MORE THAN 4 COMPLETE BEARING ALTERNATES USED IF INCNSR.GT.4) GO TO 81 IF INCPSR.GT.4) GO TO 81 NCNT=NCNT+l RBRGCNINUMSHA,MEMLOCJ=CNCPSR NCHAR=ABSIRDATA(NCNT)) IF ((NCHAR.LT.l).OR.INCHAR.GT.12)) GO TO 80 NHORDS=INCHAR+3l/4 DO 28 I=l,NWORDS

ALTIIJ=RDATA(NCNT+I) 28 CONTINUE

N=3 CALL OVERHRIN,ALT,NCHAR,NHORDS) NCNT=NCNT+NHORDS+l DO 29 I=l,3

RBRGCNINUMSHA,MEMLOC+Il=ALTII) 29 CONTINUE

MEMLOC=MEMLOC+4 DO 30 I=l,3

AL Tl I )=BLANKS 30 CONTINUE

NCNT=NCNT+l IF (RDATA(NCNT-1).EQ.l.OJ GO TO 27 IF IRDATAINCNT-l).NE.-111. l GO TO 82

C PROCESS SUMt1ARY LIST INFORMATION SUMPRS=RDATAINCNTJ IF I (SUMPRS. LT .3 .OJ.OR. ISUMPRS.GT .50.0)) GO TO 83 LIFPRI=RDATAINCNT+ll LCNUM=RDATAINCNT+2l

C SET LOAD CONDITION NUMBER EQUAL TO 51 IF WEIGHTED LIFE DESIRED IF ( ( LCNUM. LT. l J.OR. I LCNUH.GT.50 J J LCNUH=51 NCNT=NCNT+3

C STORE SUMMARY LIST INFORMATION AND SET SUMMARY FLAG RBRGCNINUMSHA,lll=SUMPRS RBRGCNINUMSHA,12J=LIFPRI RBRGCN(NUMSHA,13J=LCNUH MODFLG(NUMSHA,131)=111 GO TO 99

78 CALL MSGGENI 'COPYING A BRG TO "B" NEEDS A BRG AT "A")') NFLAG=l GO TO 99

79 CALL MSGGENI 'A SELECTED BRG CANNOT BE COPIED FOR ANALYSIS)' J NFLAG=l GO TO 99

80 CALL MSGGEN( 'l TO 12 CHAR CONE, PART, OR SERIES NUMBERS ONLY)' J NFLAG=l

SUBROUTINE USRPGM LISTING 164

GO TO 99 81 CALL MSGGEN( 'ONLY FOUR COMPLETE BEARING ALTERNATES ALLOWED)' l

NFLAG=l GO TO 99

82 CALL MSGGEN( 'INCORRECT SELECTION OF /END/ IN ALTERNATE LOOP)') NFLAG=l GO TO 99

83 CALL MSGGEN( 'ONLY 3-50 SUMMARY PAIRS ARE ALLOWED)' J NFLAG=l

99 RETURN END

C*************-********************************ififif****************** SUBROUTINE SELECTINAB,NCNT,RDATA,NUMSHA,RBRGCN,NFLAG,MODFLGJ

C********************************************************************* C C C C C

THIS SUBROUTINE IS USED TO PROCESS BEARING CONSTRAINTS WHILE IN THE "SELECTION TOO" MODE OF OPERATION. BOTH RANGES AND SINGLE VALUES (MIN=MAXJ FOR THE CONSTRAINTS ARE ALLOWED.

INTEGER REAL*4

$ DATA DATA DATA

NAB, NCNT, NUMSHA, NFLAG, MODFLG(l0,140) RDATA(500J, RBRGCNll0,153), PT12l, XY12), CONE13J, CUPl3l, SERIESl3l SERIES/' ',' ',' '/ CONE/' ',' ',' 'I CUP/' ',' ',' '/

IF (NAB.EQ.ll MEMLOC=O IF INAB.EQ.2) MEMLOC=64 COPDIF=RDATAINCNTJ NCNT=NCNT+l

C CHECK IF BEARING BIS TO BE THE SAME AS BEARING A IF ICOPDIF.NE.l.OJ GO TO 20

C ONLY A DEFINED BEARING AT "A" CAN BE COPIED TO 11 B11

IF IMODFLGINUMSHA,129J.NE.llll GO TO 78 C CHECK TO MAKE SURE THEY ARE BOTH SELECTED BEARINGS

IF IRBRGCNINUMSHA,ll.NE.2.0l GO TO 79 RBRGCNINUMSHA,NAB+8l=COPDIF GO TO 19

20 CONTINUE C BEARING "A" OR A DIFFERENT BEARING 11811

RBRGCNINUMSHA,NAB+8l=COPDIF C DETERMINE WHICH CONSTRAINT EQUATIONS ARE APPLICABLE

CONSTR=RDATAINCNTJ RBRGCNINUMSHA,NAB+6l=CONSTR NCNT=NCNT+l IF ICOtlSTR.EQ.l.Ol GO TO 21 IF ICONSTR.EQ.2.0) GO TO 22 IF ICONSTR.EQ.3.0l GO TO 23 IF ICONSTR.EQ.4.0J GO TO 24 IF ICONSTR.EQ.5.0J GO TO 25 GO TO 81

21 CONTINUE C CONE AND CUP BOTH SPECIFIED:

NCHAR=ABSIRDATAINCNTJJ IF l(NCHAR.LT.l).OR.INCHAR.GT.12)) GO TO 80 NWORDS=INCHAR+3l/4 DO 26 I=l,NWOROS

CONEIIJ=RDATAINCNT+Il 26 CONTINUE

N=3 CALL OVERWRIN,CONE,NCHAR,NWORDSJ NCNT=NCNT+NWORDS+l NCHAR=ABSIRDATAINCNTJJ

SUBROUTINE USRPGM LISTING 165

IF IINCHAR.LT.l),OR.INCHAR,GT.12)) GO TO 80 NWORDS=INCHAR+3J/4 DO 27 I=l,NWORDS

CUPtIJ=RDATAtNCNT+Il 27 CONTINUE

N=3 CALL OVERWRIN,CUP,NCHAR,NHORDSJ NCNT=NCNT+NWORDS+l IF INAB,EQ,2) GO TO 29 DO 28 I=l,3

RBRGCNINUMSHA,I+l3l=CONEIIJ RBRGCN(NUMSHA,I+l9l=CUPIIJ

28 CONTINUE GO TO 31

29 CONTINUE DO 30 I=l,3

RBRGCNINUMSHA,I+l6J=CONEIIJ RBRGCNINUMSHA,I+22J=CUPIIJ

30 CONTINUE 31 CONTINUE

GO TO 19

22 CONTINUE C CONE SPECIFIED, BUT CUP NOT SPECIFIED

NCHAR=ABSI RDATAI NCNT l J . IF IINCHAR.LT.lJ.OR.INCHAR.GT.l2ll GO TO 80 NWORDS=INCHAR+3)/4 DO 32 I=l ,Nl~ORDS

CONEIIJ=RDATAINCNT+Il 32 CONTINUE

N=3 CALL OVERWRIN,CONE,NCHAR,NHORDSJ NCNT=NCNT+NWORDS+l IF INAB.EQ.2) GO TO 36 DO 37 I=l,3

RBRGCNINUMSHA,I+l3J=CONEIIJ 37 CONTINUE

GO TO 35 36 DO 38 I=l,3

RBRGCNINUMSHA,I+l6l=CONEIIJ 38 CONTINUE 35 CONTINUE

C CHECK IF OUTSIDE DIAMETER CONSTRAINED OR NOT IF IRDATAINCNTJ.EQ,l,Ol GO TO 33 NCNT=NCNT+3 RBRGCNINUMSHA,MEMLOC+28l=O.O RBRGCNINUMSHA,MEMLOC+29l=O.O GO TO 17

33 NCNT=NCNT+2 CALL RANGEtNFLAG,NCNT,RMIN,RMAX,RDATAl IF INFLAG.NE.Ol GO TO 99 RBRGCNINUMSHA,MEMLOC+28l=RMIN RBRGCNINUMSHA,MEMLOC+29l=RMAX GO TO 17

23 CONTINUE C CUP SPECIFIED, BUT CONE NOT SPECIFIED

NCHAR=ABSIRDATAINCNTll IF (INCHAR,LT.ll.OR.INCHAR.GT.12)) GO TO 80 NHORDS=INCHAR+3)/4 DO 34 I=l ,N~IORDS

CUPIIJ=RDATAINCNT+I) 34 CONTINUE

N=3 CALL OVERWRIN,CUP,NCHAR,NWORDSJ NCNT=NCNT+NHORDS+l IF INAB.EQ,2) GO TO 39

SUBROUTINE USRPGM LISTING 166

DO 40 I=l,3 RBRGCN(NUMSHA,I+l9l=CUPII)

40 CONTINUE GO TO 41

39 DO 42 I=l,3 RBRGCNINUMSHA,I+22)=CUPII)

42 CONTINUE 41 CONTINUE

C CHECK IF BORE DIAMETER CONSTRAINED OR NOT IF IRDATAINCNT).EQ.1,0) GO TO 43 NCNT=NCNT+3 RBRGCNINUMSHA,MEMLOC+26)=0.0 RBRGCNINUMSHA,MEMLOC+27)=0,0 GO TO 17

43 NCNT=NCNT+2 CALL RANGEINFLAG,NCNT,RMIN,RMAX,RDATA) IF INFLAG.NE.O) GO TO 99 RBRGCNINUMSHA,MEMLOC+26)=RMIN RBRGCNINUMSHA,MEMLOC+27)=RMAX GO TO 17

24 CONTINUE C SERIES SPECIFIED C CHECK IF BORE DIAMETER CONSTRAINED OR NOT

IF (RDATAINCNT).EQ.l.O) GO TO 44 NCNT=NCNT+3 RBRGCNINUMSHA,MEMLOC+26J=O.O RBRGCN(NUMSHA,MEMLOC+27J=O.O GO TO 16

44 NCNT=NCNT+2 CALL RANGEINFLAG,NCNT,RMIN,RMAX,RDATA) IF INFLAG.NE.Ol GO TO 99 RBRGCNINUMSHA,MEMLOC+26l=RMIN RBRGCNINUMSHA,MEMLOC+27l=RMAX

16 CONTINUE C CHECK IF OUTSIDE DIAMETER CONSTRAINED OR NOT

IF IRDATAINCNT).EQ.1.0) GO TO 45 NCNT=NCNT+3 RBRGCNINUMSHA,MEMLOC+28l=O.O RBRGCNINUMSHA,MEMLOC+29J=O.O GO TO 15

45 NCNT=NCNT+2 CALL RANGEINFLAG,NCNT,RMIN,RMAX,RDATA) IF INFLAG.NE.Ol GO TO 99 RBRGCNINUMSHA,MEMLOC+28l=RMIN RBRGCNINUMSHA,MEMLOC+29)=RMAX

15 CONTINUE C DETERMINE HHICH SERIES HAS SPECIFIED

NCHAR=ABSIRDATAINCNTll IF (INCHAR.LT.ll.OR.(NCHAR.GT.12)) GO TO 80 NHORDS=(NCHAR+3)/4 DO 46 I=l,NHORDS

SERIESII)=RDATAINCNT+I) 46 CONTINUE

N=3 CALL OVERHRIN,SERIES,NCHAR,NHORDSJ NCNT=NCNT+NHORDS+l DO 47 I=l,3

RBRGCNINUMSHA,I+MEMLOC+35l=SERIESIIJ 47 CONTINUE

GO TO 17

25 CONTINUE C DIFFERENT CONSTRAINTS SPECIFIED (I.E. NOT CONE, CUP, OR SERIES) C CHECK IF BORE DIAMETER CONSTRAINED OR NOT

IF IRDATAINCNTJ,EQ.1.0) GO TO 48 NCNT=NCNT+3

SUBROUTINE USRPGM LISTil'iG 167

RBRGCNINUHSHA,MEMLOC+26)=0.0 RBRGCNINUMSHA,MEMLOC+27)=0.0 GO TO 14

48 NCNT=NCNT+2 CALL RANGE(NFLAG,NCNT,RMIN,RMAX,RDATA) IF (NFLAG.NE.OJ GO TO 99 RBRGCN(NUMSHA,MEMLOC+26)=RMIN RBRGCNINUMSHA,MEMLOC+27)=RMAX

14 CONTINUE C CHECK IF OUTSIDE DIAMETER CONSTRAINED OR NOT

IF IRDATAINCNTJ.EQ.1.0) GO TO 49 NCNT=NCNT+3 RBRGCN(NUMSHA,MEMLOC+28)=0.0 RBRGCNINUHSHA,MEMLOC+29J=O.O GO TO 13

49 NCNT=NCNT+2 CALL RANGEINFLAG,NCNT,RMIN,RMAX,RDATA) IF (NFLAG.NE.OJ GO TO 99 RBRGCN(NUMSHA,MEMLOC+28)=RMIN RBRGCNINUMSHA,MEMLOC+29)=RMAX

13 CONTINUE C CHECK IF C(90J VALUE CONSTRAINED OR NOT

IF IRDATAINCNTJ.EQ.1.0) GO TO 50 NCNT=NCNT+l RBRGCNINUMSHA,MEMLOC+32)=0.0 RBRGCNINUHSHA,MEMLOC+33J=O.O GO TO 12

50 NCNT=NCNT+2 C90MIN=RDATA(NCNT) C90MAX=RDATAINCNT+l) NCNT=NCNT+2 IF (C90MIN.GT.C90MAX) GO TO 82 IF l(C90MIN.LT.O.OJ.OR.(C90MAX.LT.O.O)J GO TO 83 RBRGCNINUMSHA,MEMLOC+32J=C90MIN RBRGCN(NUMSHA,MEMLOC+33)=C90MAX

12 CONTINUE C CHECK IF K-FACTOR CONSTRAINED OR NOT

IF tRDATAINCNTJ.EQ.l.OJ GO TO 51 NCNT=NCNT+l RBRGCNINUMSHA,MEMLOC+34)=0.0 RBRGCNINUMSHA,MEMLOC+35J=O.O GO TO 17

51 NCNT=NCNT+2 RKFMIN=RDATAINCNT) RKFMAX=RDATAINCNT+l) NCNT=NCNT+2 IF IRKFMIN.GT.RKFMAXJ GO TO 84 IF IIRKFMIN.LT.0.0).0R.(RKFMAX.LT.O.OJJ GO TO 85 RBRGCN(NUMSHA,MEMLOC+34)=RKFMIN RBRGCNINUMSHA,MEMLOC+35J=RKFMAX

17 CONTINUE C CHECK IF ANY MIN LIVES ~ERE SPECIFIED (LIVES IN HOURS OR ~I/KMJ

IF IRDATA(NCNTl.EQ.l.OJ GO TO 52 NCNT=NCNT+l DO 53 I=l,50

RBRGCN(NUMSHA,MEMLOC+I+38)=0.0 53 CONTINUE

GO TO 11 52 NCNT=NCNT+l

LCNUM=RDATAINCNT) IF l(LCNUM.LT.ll.OR.(LCNUM.GT.50)) GO TO 86 RLIFE=ABStRDATAINCNT+lJl NCNT=NCNT+2 RBRGCNINUMSHA,MEMLOC+LCNUM+38)=RLIFE IF IRDATA(NCNTl.EQ.l.OJ GO TO 52 IF IRDATAINCNTJ.NE.-777.) GO TO 87

SUBROUTINE USRPGM LISTIJ\G 168

NCNT=NCNT+l

11 CONTINUE C CHECK IF A MINIMUM WEIGHTED LIFE HAS SPECIFIED OR NOT

IF IRDATAINCNTJ.EQ.l.OJ GO TO 54 NCNT=NCNT+l RBRGCNINUMSHA,MEMLOC+89)=0.0 GO TO 10

54 NCNT=NCNT+2 HLIFE=ABSIRDATAINCNTJJ RBRGCNINUMSHA,MEMLOC+89J=HLIFE NCNT=NCNT+l

10 CONTINUE C CHECK IF A HIDTH CONSTRAINT HAS SPECIFIED

IF IRDATAINCNTJ.EQ.1.0) GO TO 55 NCNT=NCNT+3 RBRGCNINUMSHA,MEMLOC+30J=O.O RBRGCN(NUMSHA,MEMLOC+31)=0.0 GO TO 19

55 NCNT=NCNT+2 CALL RANGEINFLAG,NCNT,RMIN,RMAX,RDATAJ IF INFLAG.NE.OJ GO TO 99 RBRGCN(NUMSHA,MEMLOC+30J=RMIN RBRGCNINUMSHA,MEMLOC+31J=RMAX

19 CONTINUE C PROCESS SUMMARY LIST INFORMATION

SUMPRS=RDATAINCNTJ IF IISUMPRS.LT.3.0J.OR.(SUMPRS.GT.50.0JJ GO TO 88 LIFPRI=RDATAINCNT+l) LCNUM=RDATAINCNT+2J

C SET LOAD CONDITION NUMBER EQUAL TO 51 IF WEIGHTED LIFE DESIRED IF ((LCNUM.LT.1J.OR.ILCNUM.GT.50JJ LCNUM=51 NCNT=NCNT+3

C STORE SUMMARY LIST INFORMATION AND SET SUMMARY FLAG RBRGCNINUMSHA,llJ=SUMPRS RBRGCNINUMSHA,12l=LIFPRI RBRGCNINUMSHA,13)=LCNUM MODFLGINUMSHA,131)=111 GO TO 99

78 CALL MSGGENI 'COPYING A BRG TO 118 11 NEEDS A BRG AT "A")') NFLAG=l GO TO 99

79 CALL MSGGEN( 'AN ANALYSIS BRG CANNOT BE COPIED FOR SELECTION)') NFLAG=l GO TO 99

80 CALL MSGGENI '1 TO 12 CHAR CONE, PART, OR SERIES NUMBER~ ONLY)') NFLAG=l GO TO 99

81 CALL MSGGEN( 'CONSTRAINT NOT PROPERLY SELECTED)') NFLAG=l GO TO 99

82 CALL MSGGEN( 'C-90 MINIMUM HAS SPECIFIED MORE THAN C-90 MAXI1'1UM l' l NFLAG=l GO TO 99

83 CALL MSGGENI 'A C-90 VALUE HAS SPECIFIED LESS THAN ZEROJ'J NFLAG=l GO TO 99

84 CALL MSGGENI 'K-FACTOR MIN SPECIFIED MORE THAN K-FACTOR MAX)') NFLAG=l GO TO 99

85 CALL MSGGEN( 'A K-FACTOR VALUE HAS SPECIFIED LESS THAN ZEROJ'J NFLAG=l GO TO 99

86 CALL MSGGEN( 'ONLY LOAD CONDITIONS FROM 1 TO 50 ARE ALLOHEDJ'J

SUBROUTINE USRPGM LISTING 169

NFLAG=l GO TO 99

87 CALL MSGGENI 'INCORRECT SELECTION OF /END/ IN MIN LIFE LOOP)' J NFLAG=l GO TO 99

88 CALL MSGGENI 'ONLY 3-50 SUMMARY PAIRS ARE ALLOHEDJ') NFLAG=l

99 RETURN END

C********************************************************************* SUBROUTINE RANGE(NFLAG,NCNT,RMIN,RMAX,RDATA)

C********************************************************************* C C C C C

THIS SUBROUTINE IS USED TO GENERICALLY FIND OUT THE RANGE FOR A NUMBER OF BEARING CONSTRAINTS. IT IS ONLY ACCESSED FROM SUBROUTINE SELECT.

COMMON /SIMSA/ ETFLAG, CC(2), 0012), RRR COMMON/CDTCOM/LETGO,NOREAD,CDTSHO,ELSHOH,IPRINT,MODSIZ,

$ MDLLFT,FILDAT(2),MDLTXTl17J,IHANT(9J INTEGER CDTSHO, ELSHOH, ONE, ETFLAG, NFLAG, NCNT REAL*4 RDATAt500J, VALUEl2J, RMIN, RMAX DATA ONE/'ONE '/

DO 10 I=l,2 IF IRDATA(NCNTJ.NE.-1.0J GO TO 11

C A VALUE HAS KEYED IN VALUEIIJ=RDATA(NCNT+ll NCNT=NCNT+2 GO TO 10

11 CONTINUE C GEOMETRY HAS SELECTED FROM THE SCREEN

LETGO=O NOREAD=l CDTSHO=O IPRINT=6 ETFLAG=O IHANTll)=ONE IHANTt2J=RDATAINCNTJ NCNT=NCNT+l CALL CADET IF IETFLAG.EQ.3J GO TO 12 IF IETFLAG.NE.2J GO TO 84

C A LINE HAS SELECTED VALUE(I)=(IDD(lJ-CC(l))**2+(DDl2J-CCl2l)**2l**•5 GO TO 10

12 CONTINUE C A CIRCLE WAS SELECTED

VALUE(Il=Z.O*RRR 10 CONTINUE

RHIN=VALUE(l) RHAX=VALUE(2J IF IRMIN.GT.RMAXJ GO TO 85 IF IIRMIN.LT.0.0),0R.IRMAX.LT.O.OJJ GO TO 86 GO TO 99

84 CALL MSGGEN( 'ETFLAG PROBLEMS IN BRGCN MODULE!') NFLAG=l GO TO 99

85 CALL MSGGEN( 'A MIN CONSTRAINT SPECIFIED BIGGER THAN A MAX ONEJ') NFLAG=l GO TO 99

86 CALL MSGGEN( 'A CONSTRAINT HAS SPECIFIED LESS THAN ZERO)') NFLAG=l

99 RETURN

SUBROUTINE USRPGM LISTl~G 170

END

C*****'IEit***************'IEit******-****-***--****--***-**-*******

SUBROUTINE SINTERIRDATAJ

C'IEit********'IEit*'IEit*'IEit************'IEit**'IEit'IEit******-***-************-'IEit*

C

C

C

C

C

THIS SUBROUTINE IS USED TO DETERMINE THE INTERPOSITIONAL

BEARING CONSTRAINTS. THE EQUATION FOLLOl'IS THIS FORMAT:

LEFT CONSTRAINT+/- RIGHT CONSTRAINT I <,<=,= ,>=,> l VALUE.

INTEGER

REAL�

LOGICAL*l

DATA

MODFLGI 10,140 l

RDATAl500J, RINTERll0,26),

TVALUEl16l, TNUMSHl16l

N31/31/, N39/39/

UPI=RDATA(3)

DO 901 I=l,10

DO 901 J=l,26

901 RINTERII,Jl=O.O

NUMSHA=RDATAl5)

XY( 21

IF IINUMSHA.LT.ll.OR.(NUMSHA.GT.lOJJ GO TO 77

REl'IIND N31

READIN31,*l HODFLG

IF IRDATA14J.NE.2.0) GO TO 10

C DELETE AN INTERPOSITIONAL CONSTRAINT CASE FROM THE DATA BASE

HODFLGINUHSHA,132)=13

REl'IIND N31

HRITEIN31,*l HODFLG

GO TO 79

C DEFINE OR REDEFINE AN INTERPOSITIONAL CASE TO THE DATA BASE

10 CONTINUE

DO 11 I=l,10

IF IMODFLGII,132l,EQ,llll GO TO 12

11 CONTINUE

GO TO 13

12 REl'IIND N39

READIN39,*l RINTER

13 CONTINUE

C READ IN INTERPOSITIONAL CONSTRAINT INFORMATION

ANASEL=RDATAl6l

IF IANASEL.EQ.2,0) GO TO 15

CALL MSGGEN( 'ONLY SELECTED BRGS MAY HAVE INTERPOS. CONSTRS.)' l

GO TO 99

15 CONTINUE

TIMOTH=ROATAl7l

IF ITIMOTH.EQ.1.0) GO TO 16

CALL MSGGENI 'ONLY TIMKEN BRGS MAY HAVE INTERPOS, CONSTRS. l'l

GO TO 99

16 CONTINUE

NINTCN=O

NCNT=8

MEMLOC=2

20 CONTINUE

NINTCN=NINTCN+l

IF ININTCN.GT.5l GO TO 78

ACONST=RDATAINCNTJ

PLUSMI=RDATAINCNT+ll

BCONST=RDATAINCNT+2l

OPERAN=RDATAINCNT+3l

EVALUE=RDATAINCNT+4)

SUBROUTINE CSRPG;VI LISTING 171

NCNT=NCNT+5 RINTERINUMSHA,MEMLOC)=ACONST RINTERINUMSHA,MEMLOC+lJ=PLUSMI RINTERINUMSHA,MEMLOC+2J=BCONST RINTERINUMSHA,MEMLOC+3)=0PERAN RINTERINUMSHA,MEMLOC+4J=EVALUE

C CHECK END OF DATA INPUT FLAG IF IRDATAINCNTJ.EQ.-123.) GO TO 22 NCNT=NCNT+l MEMLOC=MEMLOC+5 GO TO 20

22 NCNT=NCNT+l RINTERINUMSHA,ll=NINTCN

C WRITE OUT APPROPRIATE NOTES TO THE SCREEN XYll)=RDATAINCNTJ XYl2l=RDATAINCNT+l) XTAB=XYllJ SHANUM=NUMSHA CALL CONVTITNUMSH,O,SHANUM,&1111) CALL CADNSIXY,13,'SHAFT NUMBER:',&1001) XY(l)=XTAB+2.25*UPI CALL CADNSIXY,16,TNUMSH,&1001) XYlll=XTAB XYl2l=XY(2l-.ZO*UPI

C WRITE OUT EACH INTERPOSITIONAL CONSTRAINT SPECIFIED MEMLOC=2 DO 30 I=l,NINTCN

AC=RINTERINUMSHA,MEMLOCJ PM=RINTERINUMSHA,MEMLOC+lJ BC=RINTERINUMSHA,MEMLOC+2J OP=RINTERINUMSHA,MEMLOC+3) VALUE=RINTERINUMSHA,MEMLOC+4) IF IAC.EQ.l. J CALL CADNSIXY,14,'BEARING A BORE',&1001) IF IAC.EQ.2. J CALL CADNSIXY,14,'BEARING A 0.D.',&1001) IF IAC.EQ.3.) CALL CADNSIXY,15,'BEARING A WIDTH',&lOOll IF IAC.EQ.4. l CALL CADNSIXY,14,'BEARING A CONE',&1001) IF (AC.EQ.5. l CALL CADNSIXY,13,'BEARING A CUP',&1001) IF (AC.EQ.6.) CALL CADNSIXY ,16, 'BEARING A SERIES' ,&1001 l XYl1J=XTAB+2.7*UPI IF IPM.EQ.l. l CALL CADNSIXY,3,' + ',&1001) IF (PM.EQ.2. J CALL CADNSIXY,3,' - ',&1001) XYlll=XYllJ+0.7*UPI IF IBC.EQ.l. J CALL CADNSIXY,14,'BEARING B BORE',&1001) IF IBC.EQ.2. l CALL CADNS(XY,14,'BEARING B 0.D.',&1001) IF (BC.EQ.3. l CALL CAONSIXY,15,'BEARING B HIDTH',&lOOll IF IBC.EQ.4. J CALL CADNSIXY,14, 'BEARING B CONE' ,&lOOll IF IBC.EQ.5.) CALL CADNSIXY,13,'BEARING B CUP',&1001) IF IBC.EQ.6. l CALL CADNSIXY,16,'BEARING B SERIES',&1001) XYl1J=XY11J+2.7*UPI IF IOP.EQ.l. l CALL CADNSIXY,3,' < ',&1001) IF IOP.EQ.2. l CALL CADNSIXY,4,' <= ',&10011 IF IOP.EQ.3. l CALL CADNSIXY,3,' = ',&1001) IF IOP.EQ.4. J CALL CADNS(XY,4,' >= ',&10011 IF (OP.EQ.5. l CALL CADNSIXY,3,' > ',&1001) XY(lJ=XYlll+0.85*UPI CALL CONVTITVALUE,3,VALUE,&lllll CALL CADNS(XY,16,TVALUE,&1001) XVI l l=XTAB XYl2l=XYl2l-.20*UPI MEMLOC=MEMLOC+5

30 CONTINUE

C UPDATE FLAGS AND ARRAYS MODFLGINUMSHA,132)=111 REWIND N31

SUBROUTINE USRPGM LISTING 172

HRITE(N31,*) MODFLG REWIND N39 HRITE(N39,*) RINTER

CALL MSGGENI 'INTER MODULE UPDATED)') GO TO 99

77 CALL MSGGENI 'THE SHAFT NUMBER MUST BE BETWEEN l AND 10)') GO TO 99

78 CALL MSGGEN( 'MAX OF 5 INTERPOSITIONAL CONSTRAINT EQUATIONS J') GO TO 99

79 CALL MSGGEN( 'INTERPOSITIONAL CASE DELETED FROM DATA BASEJ'J GO TO 99

1001 CALL MSGGEN( 'CADNS PROBLEMS IN INTER MODULE)') GO TO 99

1111 CALL MSGGEN( 'CONVT PROBLEMS IN INTER MODULE)' J

99 RETURN END

C********************************************************************* SUBROUTINE STEXTSIRDATA)

C********************************************************************* C C C C C

THIS SUBROUTINE IS USED TO DEFINE PROGRAM COMMENTS AS HELL AS SET THE PRINT OPTIONS FOR THE SAN OUTPUT DATA. THIS LATTER TOOL ,ALLOWS THE USER TO SKIP OVER UNWANTED DATA OUTPUT.

INTEGER REAL*4 LOGICAL*l DATA DATA

MOOFLG(l0,140), NPLACE(5) RDATA(500), RTEXTl10,97l, XY12J, COMTXT(l8J TNUMSH(l6), TVALUE(l6) N31/31/, N40/40/, BLANKS/' '/ NPLACE/7,25,43,61,79/

UPI=RDATA(3) DO 901 I=l,10 DO 901 J=l,97

901 RTEXT!I,J)=O.O NUMSHA=RDATA(4J IF ((NUMSHA.LT.lJ.OR.INUMSHA.GT.lO)J GO TO 77 REWIND N31 READ!N31,*) MODFLG

C READ IN ANY EXISTING TEXT INFORMATION DO 11 I=l,10

IF l(MODFLGII,133J.EQ.111J.OR.IMODFLGII,134l.EQ.lll)) GO TO 12 11 CONTINUE

GO TO 13 12 REl'UND N40

READIN40,*) RTEXT 13 CONTINUE

C READ IN NEH TEXT INFORMATION COMPOB=RDATA(5J NCNT=6 IF (COMPOB.EQ.2.0) GO TO 40 IF IRDATAINCNTJ.EQ.l.Ol GO TO 20 NCNT=NCNT+3 GO TO 30

C ADD OR REDO A COMMENT 20 NCNT=NCNT+l

NUMCOM=RDATAINCNT) NCNT=NCNT+l IF I ( NUMCOM . LT . 1 ). OR . I NUMCOM . GT. 5 ) l GO TO 78

C CLEAR WORKING ARRAY DO 22 I=l,18

COMTXTIIJ=BLANKS

SUBROUTINE USRPGM LISTl;,,/G 173

22 CONTINUE NCHAR=ABSIRDATAINCNTll ~~ORDS=INCHAR+3)/4 IF l(NCHAR.LT.ll.OR.INCHAR.GT.72)) GO TO 79 DO 23 I=l,~ORDS

COMTXTIIl=RDATAINCNT+I) 23 CONTINUE

N=l8 CALL OVERHRIN,COMTXT,NCHAR,NHORDSl NCNT=NCNT+~ORDS+l NSTART=NPLACE(NUMCOM) DO 24 I=l,18

RTEXT(NUMSHA,NSTART+IJ=COMTXT(IJ 24 CONTINUE

MODFLGINUMSHA,1341=111 MODFLG(NUMSHA,134+NUMCOMl=lll IF (RDATAINCNTJ.EQ.l.Ol GO TO 20 IF IRDATAINCNTl.NE.-111.l GO TO 80 NCNT=NCNT+l

30 CONTINUE IF IRDATAINCNT).EQ.l.Ol GO TO 31 NCNT=NCNT+2 IF tCOMPOB.EQ.l.Ol GO TO 60 GO TO 40

C DELETE A COMMENT 31 NCNT=NCNT+l

NUMCOM=RDATAINCNTJ NCNT=NCNT+l IF t I NUMCOM. LT .1 ). OR. I NUMCOM. GT. 5)) GO TO 78 MODFLGINUMSHA,134+NUMC0Ml=l3 IF IRDATA(NCNTJ.EQ.l.Ol GO TO 31 IF (RDATAINCNTl.NE,-222, l GO TO 80 NCNT=NCNT+l DO 32 I=l,5

IF (MODFLG(NUMSHA,134+I).EQ.llll GO TO 33 32 CONTINUE

MOOFLGtNUMSHA,1341=13 33 CONTINUE

C CHECK PRINT OPTIONS 40 IF tCOMPOB.EQ.l.Ol GO TO 60

IF IRDATAINCNTl,NE,1,0) GO TO 41 C SUPPRESS PRINTING THE CONSTRAINT SECTION

RTEXTI NUMSHA,1 l=l.O MODFLG(NUMSHA,133)=111 NCNT=NCNT+2 GO TO 42

C PRINT OUT THE CONSTRAINT SECTION (DEFAULT) 41 RTEXTtNUMSHA,ll=O.O

NCNT=NCNT+l

42 IF IRDATAINCNTl.NE.l.OJ GO TO 43 C SUPPRESS PRINTING THE DATA FILE

RTEXTINUMSHA,Zl=l,O MODFLGINUMSHA,1331=111 NCNT=NCNT+2 GO TO 44

C PRINT OUT THE DATA FILE (DEFAULT) 43 RTEXTtNUMSHA,2l=O.O

NCNT=NCNT+l

44 IF tRDATAtNCNTl.NE.l.Ol GO TO 45 C SUPPRESS PRINTING GEAR DATA SECTION

RTEXT<NUMSHA,3l=l.O MODFLG(NUMSHA,1331=111

SUBROUTINE USRPGM LISTING 174

NCNT=NCNT+2 GO TO 46

C PRINT OUT THE GEAR DATA (DEFAULT) 45 RTEXTINUMSHA,3)=0.0

NCNT=NCNT+l

46 IF (RDATAINCNTJ.NE.l.0) GO TO 47 C SUPPRESS PRINTING GEAR LOADS SECTION

RTEXTINUMSHA,41=1,0 MODFLGINUMSHA,l33)=lll NCNT=NCNT+2 GO TO 48

C PRINT OUT THE GEAR LOADS I DEFAULT) 47 RTEXTINUMSHA,41=0.0

NCNT=NCNT+l

48 IF IRDATAINCNT).NE.1.0) GO TO 49 C SUPPRESS PRINTING EXTRA LOADS AND MOMENTS SECTION

RTEXT!NUMSHA,5)=1.0 MODFLGINUMSHA,1331=111 NCNT=NCNT+2 GO TO 50

C PRINT OUT THE EXTRA LOADS AND MOMENTS (DEFAULT) 49 RTEXTINUMSHA,5l=O.O

NCNT=NCNT+l

50 IF IRDATAINCNTJ.NE.1.0) GO TO 51 C PRINT OUT BEARING RUNNING TOQUE SECTION

RTEXTI NUMSHA,6 l=l.O MODFLGINUMSHA,l33J=lll NCNT=NCNT+2 GO TO 52

C SUPPRESS PRINTING OUT BEARING RUNNING TORQUES (DEFAULT) 51 RTEXTINUMSHA,6 J=O.O

NCNT=NCNT+l

52 IF IRDATAINCNTl.NE.1.0) GO TO 53 C PRINT OUT BEARING DATA TABLES SECTION

RTEXTINUMSHA,7l=l.O MODFLGINUMSHA,l33J=lll NCNT=NCNT+2 GO TO 54

C SUPPRESS PRINTING OUT BEARING DATA TABLES I DEFAULT) 53 RTEXTINUMSHA,71=0.0

NCNT=NCNT+l

54 DO 57 I=l,7 IF IRTEXTINUMSHA,IJ.EQ.1.0) GO TO 58

57 CONTINUE MODFLGINUMSHA,133)=13

58 CONTINUE

60 CONTINUE C HRITE OUT APPROPRIATE NOTES TO SCREEN

XYlll=RDATAINCNTJ XY12J=RDATAINCNT+ll XTAB=XYI 1 l SHANUM=NUMSHA CALL CONVTITNUMSH,O,SHANUM,&1111) CALL CADNSIXY,13,'SHAFT NUMBER:',&1001) XYl1l=XTAB+2.25*UPI CALL CADNSIXY,16,TNUMSH,&1001) XYlll=XTAB XY12l=XYl2l-.20*UPI

C HRITE OUT All COMMENTS STORED IN THE ARRAY FOR THE GIVEN SHAFT IF IMODFLGINUMSHA,134).EQ.lll) GO TO 62 CALL CADNSIXY,37,'NO COMMENTS ARE STORED FOR THIS SHAFT',&1001)

SUBROUTINE USRPGM LISTING 175

XY(2)=XY12)-.20*UPI GO TO 63

62 DO 64 I=l,5 IF (MODFLG(NUMSHA,134+Il.NE.lll) GO TO 64 CALL CADNS(XY,9,'NOTE :',&1001) XY(l)=XY(l)+l.O*UPI VALUE=I CALL CONVT(TVALUE,O,VALUE,&1111) CALL CADNSIXY,16,TVALUE,&1001) XY(l)=XY(l)+0.9*UPI NSTART=NPLACE(IJ DO 65 J=l,18

COMTXT(JJ=RTEXT(NUMSHA,NSTART+J) 65 CONTINUE

CALL CADNS(XY,72,COMTXT,&1001) XY(l)=XTAB XY(2l=XYl2l-.20*UPI

64 CONTINUE

C WRITE OUT THE SPECIFIED PRINT OPTIONS 63 IF (MODFLG(NUMSHA,133).EQ.lll) GO TO 66

CALL CADNS(XY,26,'DEFAULT PRINT OPTIONS USED',&1001) GO TO 67

66 CONTINUE IF (RTEXT(NUMSHA,ll.EQ.l,Ol

$ CALL CADNSIXY,30,'CONSTRAINT SECTION NOT PRINTED',&1001) IF (RTEXT(NUMSHA,1).EQ.l.Ol XY(2l=XYl2l-.20*UPI IF I RTEXT( NUMSHA,2). EQ. l. 0 l

$ CALL CADNSIXY,21,'DATA FILE NOT PRINTED',&1001) IF ( RTEXTI NUMSHA, 2). EGl .1. 0 l XY( 2 l=XY( 2 l-. 20*UPI IF (RTEXT(NUMSHA,3l.EQ.l.Ol

$ CALL CADNS(XY,21,'GEAR DATA NOT PRINTED',&1001) IF IRTEXT(NUMSHA,3).EQ.1,0) XY12l=XY12l-.20*UPI IF IRTEXT(NUMSHA,4J.EQ.l.Ol

$ CALL CADNS(XY,22,'GEAR LOADS NOT PRINTED',&1001) IF IRTEXT(NUMSHA,4).EQ.l.Ol XYl2)=XYl2l-.20*UPI IF (RTEXT(NUMSHA,5).EQ.l.Ol

$ CALL CADNS(XY,35,'EXTRA LOADS AND MOMENTS NOT PRINTED',&1001) IF (RTEXT(NUMSHA,5).EQ.l.Ol XY(2l=XY(2)-.20*UPI IF ( RTEXT( NUMSHA ,6). EQ. 1. 0 l

$ CALL CADNSIXY,28,'PRINT BEARING RUNNING TORQUE',&1001) IF (RTEXT(NUMSHA,6l.EQ.l.Ol XY(2l=XY(2l-.20*UPI IF IRTEXTINUMSHA,7).EQ.l.Ol

$ CALL CADNSIXY,25,'PRINT BEARING DATA TABLES',&1001) IF (RTEXTINUMSHA,7l.EQ.l.Ol XYl2l=XYl2l-.20*UPI

67 CONTINUE C UPDATE FLAGS AND VARIABLES

RBUND N31 HRITEIN31,*l MODFLG REHIND N40 HRITEIN40,*l RTEXT

CALL MSGGEN( 'TEXT MODULE UPDATED)') GO TO 99

77 CALL MSGGENI 'THE SHAFT NUMBER MUST BE BETWEEN 1 AND 10)' l GO TO 99

78 CALL MSGGEN( 'COMMENT NUMBERS MUST BE FROM l TO 51' l GO TO 99

79 CALL MSGGENI 'l TO 72 CHARACTERS PER COMMENT)' l GO TO 99

80 CALL MSGGEN( 'INCORRECT SELECTION OF /END/ IN A COMMENT LOOPl'l GO TO 99

1001 CALL MSGGENI 'CADNS PROBLEMS IN TEXT MODULE)' l GO TO 99

1111 CALL MSGGENI 'CONVT PROBLEMS IN TEXT MODULE)' l

SUBROUTINE USRPGM LISTING 176

99 RETURN END

C,!Hf******,!Hf,!Hf,!Hf*:IHHHf,!Hf****,!Hf*M*MMMMMMMMMMMMMMMMM~iHHHHf******iHHfifif:IHHHt* SUBROUTINE SSANDFIRDATA)

C*--**-***-*****************--iHHf********---****** ___ _ C C C C C C C

THIS SUBROUTINE GENERATES THE SELECT-A-NALYSIS DATA FILE. THE FIRST THING IT DOES IS READ ALL OF THE DATA FROM THE OTHER MODULES. THEN, IT DETERMINES IF ENOUGH INFORMATION HAS ENTERED FOR THE GIVEN SHAFTIS). FINALLY, IF NO PROBLEMS IN THE DATA EXIST, THE SAN INPUT DATA FILE IS GENERATED.

INTEGER MODFLGll0,1401, NUMBER(5), NPLACEl5l REAL*4 RDATA(500), XY112l, XY212l, XYC(2l, XY(2l, SHFTXTl7l,

$ RSHAFTll0,201, HOLD, OUT, LEDANG, TLINEl18J, $ RGEAR1120,10J,RGEAR2120,10),RGEAR3120,l0), $ RGEAR4120,10l,RGEAR5(20,10l,RGEAR6(20,10J, $ RGEAR7(20,10J,RGEAR8120,10l,RGEAR9(20,10l, $ RGEARAl20,lOJ,RGEARSl20,10)

REAL*4 RHIST0(50,26J, RHIST1150,26), RHIST2(50,26J, $ RHIST3(50,26l, RHIST4(50,26l, RHIST5150,26l, $ RHIST6( 50,261, RHIST7( 50,26,l, RHIST8( 50,261, $ RHIST9150,26J, RHISTAl50,26J

REAL*4 RLOADSl50,230J, RLOADl(S0,230), RLOAD2(50,230l, $ RLOAD3150,230l, RLOAD4150,230l, RLOAD5150,230l, $ RLOAD6(50,230J, RLOAD7(50,230l, RLOAD8150,230J, $ RLOAD9(50,230l, RLOADAIS0,230)

REAL*4 VECT113l, VECT213J, VECT313J, Al3J, 813), Cl3J, Dl3J, $ El3J, Fl3J, Gl3J, H(3J, Pl3), UEl3l, UFl3l, UGl3J, $ Ql3J, R(3J, UHl3J, MASS, RDYNAM(l0,511, UNBALl50,2J, $ RADANGllOJ, THRANG(lOJ, RADLDllOl, THRLDllOJ, $ RADDISllOJ, THRDISllOJ, RMOUNT(l0,501, RBRGCNll0,153), $ BGTXTl6), LUBEN17J, BYWHATl2l, BYLIFl2), BYPRil2J, $ TYPE112), TYPE212J, TYPE312), TYPE412J, TYPE512J, $ TYPE612J, TYPE712J, TYPBRGl2J, ABLOCl3J

REAL*4 CONE13), CUPl3J, ALTl3J, SERIES13J, ALTCCSl2J, $ ALTCONl2J, ALTCUPIZJ, ALTSER12), RINTERll0,26), $ CONLABl12J, PLORMil2), OPERLBl5J, RTEXTll0,97), $ COMTXTI 18 J

LOGICAL*l BLANK, TEMPl4J, RESULTl4l LOGICAL*l TNOPRTl35J, TPRINTl26J, TCONSTl6l, TDATATISJ, TGEARTl6J LOGICAL*l THISTTl5J, TLOADTl5J, TOPERTl9), TBRGDTlllJ EQUIVALENCE IHOLD,TEMPllJJ, IOUT,RESULTll)J DATA BLANKS/' '/, BLANK/' '/, UNBAL/100*0.0/ DATA TNOPRT/'N','0','P','R','I','N','T',' ',''' ',' ',' ',

$ I 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 I

$ I 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 1,1 I/ DATA TPRINT/'P','R','I','N','T',' ',' ',' ',' ',' ','','I

$ I 1,1 1 1 1 1,1 1,1 1 1 1 1 1 1 1,1 1 1 1 1,1 1,1 1,1 I

$ I I) I 1/ DATA TCONST/'C','O','N','S','T',' '/ DATA TDATAT/'D','A','T','A',' '/ DATA TGEART/'G','E','A','R','S',' '/ DATA THISTT/'H','I','S','T',' '/ DATA TLOADT/'L','0','A','D','S'/ DATA TOPE RT/' o, , , p , , , E , , , R, , , T, , , 0, , , R, , , Q, , , , / DATA TBRGDT / I B' , IE I , I A I , IR I , I I I , IN I , I GI , ID I , I A I , 'TI , 'A I/ DATA BYLIF/'BYLI','FE '/, BYPRI/'BYPR','ICE '/ DATA POSITl/'EFF '/, POSIT2/'CNBF'/, POSIT3/'CPBF'/,

$ POSIT4/'CTR '/, POSIT5/'LCNF'/, POSIT6/'RCNF'/, $ POSIT7/'LCPF'/, POSIT8/'RCPF'/

DATA TYPEl/'TS ',' '/, TYPE2/'TSF ',' '/, $ TYPE3/'TDI ',' '/, TYPE4/'TDO ',' '/, $ TYPE5/'2TS-','DM '/, TYPE6/'2TS-','IM '/, $ TYPE7/'0THE','R '/

SUBROUTINE USRPGM LISTING 177

DATA DATA DATA DATA DATA DATA

$ DATA

$ DATA DATA

ALTTR/' A '/, BLTTR/' B '/ CONE/' ',' ',' '/, ALTCON/'CONE',' 'I CUP/' ',' ',' '/, ALTCUP/'CUP ',' '/ SERIES/' ',' ',' '/, ALTSER/'SERI','ES '/ ALT/' I , I I ' I I/' ALAB/ I (A) '/, BLAB/ I ( B) '/ CONLAB/' BOR','E ','OD',' ',' l'lID','TH ,

I CON I' IE I , ' CUP I, I ', I SER I , I IES I/ PLORMI/' + ',' - '/, OPERLB/' < ',' <= ',' = • >= ',' > '/, NPLACE/7,25,43,61,79/ N31/31/, N32/32/, N33/33/, N34/34/, N35/35/, N36/36/ N37/37/, N38/38/, N39/39/, N40/40/

NOUT=RDATA(4) IF ((NOUT.LT.21).0R.(NOUT.GT.30)) GO TO 98 REl'lIND NOUT

NCNT=7 DO 6 I=l,5

NUMBER(Il=O 6 CONTINUE

C DETERMINE SAN RUN TYPE RUNTYP=RDATA(5) IF (RUNTYP.EQ.l.) GO TO 11

C SELECTION AND ANALYSIS REQUIRED: ONLY ONE SHAFT ALLOWED NUMBER(ll=RDATA(6) IF (INUMBERtlJ.LT.ll.OR.(NUMBERtlJ.GT.10)) GO TO 13 ' GO TO 14

11 CONTINUE C ANALYSIS ONLY: UP TO FIVE SHAFTS ALLOWED

DO 15 I=l,5 IF (RDATA(I+5l.EQ.-100.) GO TO 14 NUMBERtIJ=RDATA(I+5) IF ((NUMBERtI).LT.ll.OR.INUMBER(Il.GT.10)) GO TO 13 NCNT=NCNT+l

15 CONTINUE IF IRDATA(ll).NE.-100. l GO TO 17

C READ IN TITLE INFORMATION AND l'lRITE IT OUT 14 CONTINUE

DO 18 I=l,4 IF tRDATA(NCNT).EQ.-200. l GO TO 19 N= -RDATA(NCNT) NWORD=(N+3 l/4 IF ((Nl'lORD.LT.ll.OR.(NHORD.GT.18)) GO TO 21 NCNT=NCNT+l DO 7 J=l,18

TLINE(Jl=BLANKS 7 CONTINUE

DO 22 J=l,Nl'lORD TLINE(Jl=RDATA(NCNT) NCNT=NCNT+l

22 CONTINUE HOLD=TLINE(Nl'lORDJ NCHAR=N-(NHORD-1)*4 DO 10 J=l,NCHAR

10 RESULTIJl=TEMPIJJ IF (NCHAR.EQ.4) GO TO 31 NLEFT=NCHAR+l DO 20 J=NLEFT,4

20 RESULT(Jl=BLANK 31 TLINEINWOROJ=OUT

~IRITE ( NOUT, 200 l TLINE 200 FORMATITl, 'TITLE ',18A4) 18 CONTINUE

IF (RDATAINCNTJ.NE.-200. J GO TO 23

SUBROUTINE USRPGM LISTING 178

19 CONTINUE C HRITE OUT TYPE OF UNITS USED

HRITEINOUT,*l IF (RDATAlll.EQ.l.Ol HRITEINOUT,201) IF (RDATAll).EQ.2.0) HRITEINOUT,202) GO TO 199

201 FORMATITl,'UNITS ENGLISH') 202 FORMATITl,'UNITS METRIC') 199 CONTINUE

HRITEI NOUT ,* l HRITE I NOUT ,* l HRITEI NOUT ,*)

REHIND N31 READIN31,*l MODFLG

C CHECK TO SEE IF THERE IS ANY SHAFT INFORMATION AT ALL DO 1 I=l,10

IF IMODFLGII,ll.EQ.111) GO TO 2 1 CONTINUE

CALL MSGGENI 'RUN ABORTED: NO SHAFT INFORMATION EXISTS)') GO TO 99

2 CONTINUE REHIND N32 READIN32,*) RSHAFT

C READ IN ANY EXISTING GEAR INFORMATION REHIND N33 IF IMODFLGll,2).EQ.111) READIN33,*l RGEARl IF IMODFLG12,2).EQ.lll) READIN33,*) RGEAR2 IF IMODFLG13,2).EQ.llll READIN33,*) RGEAR3 IF IMODFLG14,2l.EQ.lll) READIN33,*l RGEAR4 IF IMODFLG15,2l,EQ,llll READIN33,*l RGEAR5 IF IMODFLG16,2).EQ.lll) READIN33,*) RGEAR6 IF IMODFLG17,2).EQ.lll) READIN33,*) RGEAR7 IF (MODFLG18,2).EQ.llll READ(N33,*l RGEAR8 IF IMODFLG19,Z),EQ.llll READIN33,*) RGEAR9 IF (MODFLGllO,Z),EQ.111) READIN33,*) RGEARA

C READ IN ANY EXISTING HISTOGRAM INFORMATION REHIND N34 IF (MODFLG(l,23).EQ.111) READIN34,*) RHISTl IF IMODFLGIZ,23).EQ.111) READIN34,*) RHISTZ IF IMODFLG13,23),EQ.lll) READIN34,*) RHIST3 IF IMODFLG14,Z3).EQ.lll) READIN34,*) RHIST4 IF (MODFLG15,23).EQ.llll READIN34,*) RHISTS IF IMODFLG16,23J.EQ.111J READIN34,*l RHIST6 IF IMODFLG17,23).EQ.lll) READIN34,*) RHIST7 IF (MODFLG18,Z3J.EQ.lll) READIN34,*) RHIST8 IF IMODFLG19,23J.EQ.lll) READIN34,*) RHIST9 IF IMODFLGll0,23).EQ.111) READIN34,*) RHISTA

C READ IN ANY EXISTING LOADING INFORMATION REHIND N35 IF IMODFLGll,74).EQ.111) READIN35,*) RLOADl IF IMODFLGIZ,74).EQ.lll) READIN35,*) RLOADZ IF IMODFLG13,74l.EQ.lll) READIN35,*) RLOAD3 IF IMODFLG14,74J.EQ.111J READIN35,*) RLOAD4 IF IMODFLGIS,74).EQ.111) READIN35,*) RLOADS IF IMODFLG16,74l.EQ.lll) READIN35,*) RLOAD6 IF IMODFLG17,74J.EQ.llll READIN35,*) RLOAD7 IF (MODFLG18,74).EQ.lll) READIN35,*) RLOADS IF IMODFLG19,74).EQ.lll) READIN35,*) RLOAD9 IF (MODFLGll0,74).EQ,llll READIN35,*) RLOADA

C READ IN ANY EXISTING DYNAMIC INFORMATION DO 3 I=l,10

SUBROUTINE USRPGM LISTING 179

3

4

5

C

140

141

C

142

143

C

148

149

150

C

155

156

157

C

IF IMODFLGII,127).EQ.llll GO TO 4 CONTINUE GO TO 5 REHIND N36 READIN36,*l RDYNAM CONTINUE

CHECK TO SEE IF THERE IS ANY MOUNTING INFORMATION AT ALL DO 140 I=l,10

IF IMODFLGII,128).EQ.llll GO TO 141 CONTINUE CALL MSGGENI 'RUN ABORTED: NO MOUNTING INFORMATION EXISTS)') GO TO 99 REHIND N37 READIN37,*l RMOUNT

CHECK TO SEE IF THERE IS ANY BEARING INFORMATION AT ALL DO 142 I=l,10

IFIIMODFLGII,129l.EQ.llll.OR.IHODFLGII,130J.EQ.lllll GO TO 143 CONTINUE CALL MSGGENI 'RUN ABORTED: NO BEARING INFORMATION EXISTS)') GO TO 99 REHIND N38 READIN38,*l RBRGCN

READ IN ANY EXISTING INTERPOSITIONAL CONSTRAINT INFORMATION DO 148 I=l,10

IF IMODFLGII,132).EQ.llll GO TO 149 CONTINUE GO TO 150 REHIND N39 READIN39,*l RINTER CONTINUE

READ IN ANY EXISTING TEXT INFORMATION DO 155 I=l,10

IFIIMODFLGII,133).EQ.llll.OR.IMODFLGII,134).EQ.lllll GO TO 156 CONTINUE GO TO 157 REHIND N40 READIN40,*l RTEXT CONTINUE

PROCESS UP TO FIVE SHAFTS !DEPENDING ON RUN TYPE) DO 30 I=l,5

NUMSHA=NUMBERIIl C JUMP OUT OF LOOP HHEN END OF SHAFTS REACHED

IF INUMSHA.EQ.Ol GO TO 33 C CHECK TO SEE IF SPECIFIED SHAFT HAS DEFINED

IF IMODFLGI NUMSHA, l J. NE .111 l GO TO 34 C HISTOGRAM AND/OR LOADING REQUIRED

IFIIMODFLGINUMSHA,23l.NE.llll.AND.IMODFLGINUMSHA,74l.NE.lllll $ GO TO 51

C IF HISTOGRAM IS USED, GEARS ARE NEEDED AS HELL IFIIMODFLGINUMSHA,23).EQ.lll).AND.IMODFLGINUMSHA,2).NE.lllll

$ GO TO 52 C BEARING LIFE IN DISTANCE OR TIME, BUT NOT BOTH

IFIIMODFLGINUMSHA,125l.NE.llll.AND.IMODFLGINUMSHA,126l.NE.lllll $ GO TO 53

C CHECK IF MOUNTING DEFINED FOR SPECIFIED SHAFT OR NOT IF IMODFLGINUMSHA,128l.NE.llll GO TO 144

C CHECK IF BOTH ARE BEARINGS DEFINED FOR SPECIFIED SHAFT OR NOT IFIIMODFLGINUMSHA,129J.NE.lll).OR.tMODFLGINUMSHA,130J.NE.lllll

$ GO TO 145 C CHECK IF BOTH BEARINGS ARE ANALYSIS ONLY OR SELECTION TOO

IF IRBRGCNINUMSHA,ll.NE.RBRGCNINUMSHA,2)) GO TO 146

SUBROUTINE USRPGM LISTING 180

ANASEL=RBRGCNINUMSHA,lJ C CHECK IF USER CORRECTLY SPECIFIED BEARINGS IN SANDF MACRO

IF IRUNTYP.NE.ANASELJ GO TO 147 C CHECK IF INTERPOSITIONAL CONSTRAINTS ARE A VALID OPTION

IF IIMODFLGINUMSHA,1321.EQ.lllJ.AND.IRUNTYP.NE.2.J) GO TO 151

DO 32 J=l,7 SHFTXTIJ)=RSHAFTINUMSHA,J+l2J

32 CONTINUE HRITEINOUT,203) NUMSHA, SHFTXT

203 FORMATITl,'SHAFT ',I2,lX,7A4J PZEROX=RSHAFTINUMSHA,l) PZEROY=RSHAFTINUMSHA,21 DIRX=RSHAFT(NUMSHA,31 DIRY=RSHAFT(NUMSHA,4) EZEROZ=RSHAFTINUMSHA,SJ EZEROY=RSHAFTINUMSHA,6) EANGRZ=RSHAFTINUMSHA,71 EANGRY=RSHAFTINUMSHA,8) IF (MODFLGINUMSHA,2).NE.lll) GO TO 36

IF INUMSHA.EQ.l) CALL GETGRSIRGEARl,RGEARS) IF INUMSHA.EQ.2) CALL GETGRSIRGEAR2,RGEARS) IF (NUMSHA.EQ.3) CALL GETGRSIRGEAR3,RGEARS) IF (NUMSHA,EQ,4) CALL GETGRSIRGEAR4,RGEARS) IF (NUMSHA.EQ.S) CALL GETGRSIRGEARS,RGEARS) IF INUMSHA.EQ.6) CALL GETGRSIRGEAR6,RGEARSJ IF INUMSHA.EQ.7) CALL GETGRSIRGEAR7,RGEARS) IF (NUMSHA,EQ.8) CALL GETGRSIRGEAR8,RGEARSJ IF INUMSHA.EQ.9) CALL GETGRSIRGEAR9,RGEARS) IF (NUMSHA.EQ,10) CALL GETGRSIRGEARA,RGEARS)

C HRITE OUT GEAR INFORMATION FOR THE SPECIFIED SHAFT HRITEINOUT,*) HRITEINOUT,208)

208 FORMAT(Tl,'GEARS') DO 37 NUMGRS=l,20

C ONLY HRITE OUT GEARS THAT HAVE BEEN DEFINED IF IMODFLGINUMSHA,NUMGRS+2).NE.llll GO TO 37 NGRTYP=RGEARSINUMGRS,ll GEARX=RGEARSINUMGRS,2) GEARY=RGEARSINUMGRS,3) DIAM=RGEARSINUMGRS,41 PRSANG=RGEARSINUMGRS,S)

C DETERMINE GEAR LOCATION HITH RESPECT TO ZERO POINT: IFIIGEARX.EQ.PZEROXJ.AND.IGEARY.EQ.PZEROY)l GO TO 38 GRLOC=ltGEARX-PZEROXl**2 + IGEARY-PZEROY)**2l**•S VECTl(ll=DIRX-PZEROX VECTll2l=DIRY-PZEROY VECTl13)=0.0 VECT21ll=GEARX-PZEROX VECT212l=GEARY-PZEROY VECT2(3J=O.O

C DETERMINE THE ANGLE BETHEEN THE COLINEAR VECTORS FOR 3IGN CALL VANGIVECT1,VECT2,ANGLEJ IF IANGLE.GT,90,0) GRLOC= -GRLOC GO TO 39

38 GRLOC=O.O 39 CONTINUE

NTYPE=IABS(NGRTYPJ IF INTYPE.EQ.l) GO TO 41 IF INTYPE.EQ.21 GO TO 42 IF INTYPE.EQ.31 GO TO 43 IF INTYPE.EQ.4) GO TO 44 IF INTYPE.EQ.5) GO TO 45

SUBROUTINE USRPGM LISTING 181

41

211

42

212

43

213

44

214

45

215

46

216

48

217

50

$

$

$

IF (NTYPE.EQ.6J GO TO 46 IF INTYPE.EQ.7J GO TO 46 IF (NTYPE.EQ.8) GO TO 48 IF INTYPE.EQ.9) GO TO 48 IF INTYPE.EQ.10) GO TO 50 IF INTYPE.EQ.11) GO TO 50 GO TO 25

CONTINUE HRITEINOUT,211) NUMGRS, NGRTYP, GRLOC, DIAM, PRSANG FORMATIT1,I2,1X,I3,1X,F9.3,1X,F9.3,1X,F9.3) GO TO 37 HELANG=RGEARSINUMGRS,6) NHAND=RGEARSINUMGRS,7) IF (NHAND.EQ.l) NHAND= -1 IF INHAND,EQ.2) NHAND= 1 HRITE(NOUT,212)NUMGRS,NGRTYP,GRLOC,DIAM,PRSANG,HELANG,NHAND FORMAT I Tl ,I2, lX,13 ,lX,41 F9. 3 ,lX l, 12 J GO TO 37 HELANG=RGEARS(NUMGRS,6J HRITEINOUT,213)NUMGRS,NGRTYP,GRLOC,DIAH,PRSANG,HELANG FORMATIT1,I2,1X,I3,1X,41F9.3,1XJJ GO TO 37 NAPEX=RGEARSINUMGRS,6) IF INAPEX.EQ.ll NAPEX= -1 IF (NAPEX.EQ.2) NAPEX= l PITANG=RGEARSINUMGRS,7) HRITEINOUT,214JNUMGRS,NGRTYP,GRLOC,DIAM,PRSANG,NAPEX,PITANG FORMAT(Tl,I2,1X,I3,1X,31F9,3,1XJ,I2,1X,F9.3) GO TO 37 SPIANG=RGEARS(NUMGRS,6) NHAND=RGEARSINUMGRS,7) IF (NHAND.EQ.l) NHAND= -1 IF (NHAND.EQ.2) NHAND= 1 NAPEX=RGEARS(NUMGRS,8) IF !NAPEX.EQ.ll NAPEX= -1 IF (NAPEX.EQ.2) NAPEX= 1 PITANG=RGEARS(NUMGRS,9) HRITEINOUT,215JNUMGRS,NGRTYP,GRLOC,DIAH,PRSANG,SPIANG, NHAND,NAPEX,PITANG FORMAT(Tl,I2,1X,I3,1X,4(F9.3,1Xl,21I2,1Xl,F9,3) GO TO 37 GRGEFF=RGEARS(NUMGRS,6) LEDANG=RGEARS!NUMGRS,7) NHAND=RGEARStNUMGRS,8) IF tNHAND.EQ.ll NHAND= -1 IF tNHAND.EQ.2) NHAND= 1 HRITE!NOUT,216JNUMGRS,NGRTYP,GRLOC,DIAM,PRSANG, GRGEFF,LEDANG,NHAND FORMATIT1,I2,1X,I3,1X,51F9.3,1Xl,I2l GO TO 37 GRGEFF=RGEARSINUMGRS,6) GRGRAT=RGEARSINUMGRS,7) NHAND=RGEARSINUMGRS,8l IF INHAND.EQ.ll NHAND= -1 IF (NHAND.EQ.21 NHAND= 1 CENDIS=RGEARS(NUMGRS,9) HRITEINOUT,217JNUMGRS,NGRTYP,GRLOC,DIAM,PRSANG, GRGEFF,GRGRAT,NHAND,CENDIS FORMATIT1,I2,1X,I3,1X,51F9.3,1Xl,I2,1X,F9.3) GO TO 37 SPIANG=RGEARSINUMGRS,6) NHAND=RGEARSINUMGRS,7) IF INHAND.EQ.l) NHAND= -1 IF (NHAND,EQ.2J NHAND= 1 NAPEX=RGEARSINUMGRS,8) IF (NAPEX.EQ.ll NAPEX= -1

SUBROUTINE USRPGM LISTING 182

IF INAPEX.EQ.2) NAPEX= 1 HYPANG=RGEARSINUMGRS,9) HRITEINOUT,218)NUMGRS,NGRTYP,GRLOC,DIAM,PRSANG,

$ SPIANG,NHAND,NAPEX,HYPANG 218 FORMATIT1,I2,1X,I3,1X,41F9.3,1XJ,2(I2,1XJ,F9.3)

37 CONTINUE

36 CONTINUE

TIRERR= -3.0 C SET ARRAY USED AS A CHECK FOR SPECIFIED LOAD CONDITIONS

DO 139 LR=l,50 UNBALI LR,1 )=O. 0 UNBALILR,2)=0.0

139 CONTINUE C SKIP HISTOGRAM SECTION IF IT DOESN'T EXIST

IF (MODFLG(NUMSHA,23).NE.111) GO TO 54

IF INUMSHA,EQ.1) CALL GETHSTIRHISTl,RHISTO) IF (NUMSHA,EQ.2) CALL GETHSTIRHIST2,RHISTO) IF (NUMSHA.EQ.3) CALL GETHST(RHIST3,RHISTOl IF (NUMSHA.EQ.4) CALL GETHST(RHIST4,RHISTO) IF (NUMSHA,EQ,5) CALL GETHSTIRHIST5,RHISTOJ IF INUMSHA,EQ.6) CALL GETHST(RHIST6,RHISTOl IF (NUMSHA.EQ.7) CALL GETHST(RHIST7,RHISTO) IF (NUMSHA.EQ.81 CALL GETHSTIRHIST8,RHISTO) IF (NUMSHA.EQ.9) CALL GETHSTIRHIST9,RHISTOl IF INUMSHA.EQ,10) CALL GETHSTIRHISTA,RHISTO)

C CHECK IF KEYWORD "CARHHEEL" IS USED OR NOT IF IMODFLGINUMSHA,125),EQ.lll) GO TO 55

C CARHHEEL USED C CHECK IF USER ALHAYS KEYED THE SAME TIRE ROLLING RADIUS

DO 56 NUMLC=l,50 IF IMODFLG(NUMSHA,NUMLC+23l.NE.llll GO TO 56 TIRERR=RHISTOINUMLC,l) GO TO 57

56 CONTINUE 57 DO 58 NUMLC=l,50

IF (MODFLGINUMSHA,NUMLC+23).NE.llll GO TO 58 RRTIRE=RHISTOINUMLC,ll IF ITIRERR,NE.RRTIREJ GO TO 59

58 CONTINUE

HRITEINOUT,*) HRITEINOUT,220) TIRERR

220 FORMATfTl, 'HISTOGRAM POHER CARHHEEL ',F14.3) NUNCAR=l UNTIRE=TIRERR

C HRITE OUT THE HISTOGRAM LOAD CONDITIONS HITH CARHHEEL

DO 60 NUMLC=l,50 C ONLY HRITE OUT LOAD CONDITIONS THAT HAVE BEEN DEFINED

IF IMODFLG(NUMSHA,NUMLC+23J.NE.llll GO TO 60 POHER=RHISTOINUMLC,2) SPEED=RHISTO(NUMLC,3) PTIME=RHISTOINUMLC,41 REDRAT=RHISTOINUMLC,5J MESHPT=RHISTO(NUMLC,6) HRITEINOUT,2211 NUMLC,POHER,SPEED,PTIME,REDRAT,MESHPT

221 FORMATITl,I2,lX,41Fl4.3,1Xl,2X,Ill UNBAL(NUMLC,ll=SPEED UNBALINUMLC,2l=PTIME IF (MESHPT.LT.ll GO TO 61 DO 62 L=l,MESHPT

SUBROUTINE USRPGM LISTING 183

NUMGR=RHISTOINUMLC,L+6) POHFAC=RHISTO(NUMLC,L+lO) PTOANG=RHISTOINUMLC,L+l4) ANGl=RHISTO(NUMLC,L+l8) ANG2=RHISTOINUMLC,L+22) ANGLE=ANGl

C IF AN ANGLE HAS KEYED IN, SKIP THE ANGLE REF PT PART IF (PTOANG.EQ.2.0) GO TO 63 IF (IANG1.EQ.EZEROZ).AND.(ANG2.EQ.EZEROY)) GO TO 64 ANGLE=O.O IF (IANGl.EQ.EANGRZ).AND.(ANG2.EQ.EANGRYl) GO TO 63 VECTllll=O.O VECT1(2)=EANGRY-EZEROY VECT1(3l=EANGRZ-EZEROZ VECT2(ll=O.O VECT212l=ANG2-EZEROY VECT2(3l=ANG1-EZEROZ

C DETERMINE THE ANGLE BETHEEN THE THO VECTORS CALL VANGIVECT1,VECT2,ANGLEl IF IANGLE.EQ.O.Ol GO TO 63

C DETERMINE SIGN OF ANGLE CALL VPROD(VECT1,VECT2,VECT3l IF (VECT3(ll.LT.O.Ol ANGLE=0.0-ANGLE

63 CONTINUE HRITEINOUT,222) NUMGR, POHFAC, ANGLE

222 FORMAT(T4,I2,3X,Fl0.3,3X,Fll.3l 62 CONTINUE 60 CONTINUE

GO TO 54

55 CONTINUE C CARHHEEL NOT USED

HRITE(NOUT,*l HRITEINOUT,223)

223 FORMATITl,'HISTOGRAM POHER 'l NUNCAR=O

C HRITE OUT THE HISTOGRAM LOAD CONDITIONS HITHOUT CARHHEEL

DO 69 NUMLC=l,50 C ONLY HRITE OUT LOAD CONDITIONS THAT HAVE BEEN DEFINED

IF IMODFLG(NUMSHA,NUMLC+23J.NE.llll GO TO 69 POHER=RHISTO(NUMLC,2) SPEED=RHISTOINUMLC,3) PTIME=RHISTOINUMLC,41 MESHPT=RHISTO(NUMLC,61 HRITE(NOUT,224) NUMLC,POHER,SPEED,PTIME,MESHPT

224 FORMAT(Tl,I2,1X,3(Fl4.3,1Xl,2X,Ill UNBAL(NUMLC,ll=SPEED UNBALINUMLC,2l=PTIME IF IMESHPT.LT.ll GO TO 61 DO 70 L=l,MESHPT

NUMGR=RHISTOINUMLC,L+6l POHFAC=RHISTOINUMLC,L+lOl PTOANG=RHISTO(NUMLC,L+l4l ANGl=RHISTOINUMLC,L+l8l ANG2=RHISTO(NUMLC,L+22l ANGLE=ANGl

C IF AN ANGLE HAS KEYED IN, SKIP THE ANGLE REF PT PART IF IPTOANG.EQ.2.0l GO TO 71 IF IIANGl.EQ.EZEROZl.AND.(ANG2.EQ.EZEROYll GO TO 64 ANGLE=O.O IF IIANGl.EQ.EANGRZl.AND.IANG2.EQ.EANGRYll GO TO 71 VECTllll=O.O VECT112l=EANGRY-EZEROY VECT113l=EANGRZ-EZEROZ VECT21ll=O.O VECT2(2J=ANG2-EZEROY

SUBROUTINE USRPGM LISTING 184

VECT213)=ANG1-EZEROZ C DETERMINE THE ANGLE BETHEEN THE THO VECTORS

CALL VANGIVECT1,VECT2,ANGLE) IF IANGLE.EQ.O.Ol GO TO 71

C DETERMINE SIGN OF ANGLE CALL VPRODIVECT1,VECT2,VECT3l IF IVECT311l.LT.O.Ol ANGLE=0.0-ANGLE

71 CONTINUE HRITEINOUT,225) NUMGR, POHFAC, ANGLE

225 FORMATIT4,I2,3X,F10.3,3X,Fll.3l 70 CONTINUE 69 CONTINUE

54 CONTINUE C CLEAR FLOATALL MOUNT. FLAG TO GUARD AGAINST SPEC. THRUST LOADS

NFLOAT=O C SKIP LOADS SECTION IF IT DOESN'T EXIST

IF IHODFLGINUMSHA,74).NE.llll GO TO 66

IF INUMSHA.EQ.1) CALL GETLDSIRLOADl,RLOADS) IF INUMSHA.EQ.2) CALL GETLDSIRLOAD2,RLOADS) IF INUMSHA.EQ.3) CALL GETLDSIRLOAD3,RLOADSJ IF (NUMSHA.EQ.4) CALL GETLDSIRLOAD4,RLOADSJ IF (NUMSHA.EQ.5) CALL GETLDSIRLOADS,RLOADS) IF INUMSHA.EQ.6l CALL GETLDSIRLOAD6,RLOADSJ IF INUMSHA.EQ.7) CALL GETLDSIRLOAD7,RLOADS) IF INUMSHA.EQ.8) CALL GETLDSIRLOAD8,RLOADSJ IF INUMSHA.EQ.9l CALL GETLDSIRLOAD9,RLOADS) IF INUMSHA.EQ.10) CALL GETLDSIRLOADA,RLOADS)

HRITEINOUT,*l C CHECK IF KEYl'IORD "CARHHEEL" IS USED OR NOT

IF (MODFLGINUMSHA,125l.EQ.lll) GO TO 72

C CARHHEEL USED C CHECK IF USER ALHAYS KEYED THE SAME TIRE ROLLING RADIUS

IF IMODFLGINUMSHA,23).EQ.111) GO TO 73 DO 74 NUMLC=l,50

IF IMODFLGINUMSHA,NUMLC+74l.NE.llll GO TO 74 TIRERR=RLOADSINUMLC,ll GO TO 73

74 CONTINUE 73 DO 75 NUMLC=l,50

IF (MODFLGINUMSHA,NUMLC+74).NE.llll GO TO 75 RRTIRE=RLOADSINUMLC,1) IF ITIRERR.NE.RRTIREJ GO TO 59

75 CONTINUE HRITEINOUT,226) TIRERR

226 FORMATITl,'LOADS CARWHEEL ',Fl4.3) NUNCAR=l UNTIRE=TIRERR GO TO 65

C CARWHEEL NOT USED 72 HRITEINOUT,227) 227 FORMATITl,'LOADS ')

NUNCAR=O 65 CONTINUE

DO 67 NUMLC=l,50 C ONLY HRITE OUT LOAD CONDITIONS THAT HAVE BEEN DEFINED

IF IMODFLGINUMSHA,NUMLC+74l.NE.llll GO TO 67

SPEED=RLOADSINUMLC,2l PTIME=RLOADSINUMLC,3) UNBALINUMLC,ll=SPEED

SUBROUTINE USRPGM LISTING 185

UNBALINUMLC,2)=PTIME NRLOAD=O NTLOAD=O MEMLOC=ll

C PROCESS Am LINEAR AND/OR PARABOLIC LOADS LINPAR=RLOADSINUMLC,5) IF ILINPAR.EQ.O) GO TO 76 DO 77 L=l,LINPAR

NRLOAD=NRLOAD+l IF INRLOAD.GT.10) GO TO 78 TOAHAY=RLOADSINUMLC,MEMLOC+6) IF ITOAHAY,GT.1,5) TOAHAY= -1.0 RADLDINRLOADJ=TOAHAY*RLOADSINUMLC,MEMLOCJ XLOC=RLOADSINUMLC,MEMLOC+ll YLOC=RLOADSINUMLC,MEMLOC+2) IF l(XLOC,EQ,PZEROXJ,AND,(YLOC.EQ,PZEROYJ) GO TO 79 VECTllll=DIRX-PZEROX VECT1(2J=DIRY-PZEROY VECT1(3J=O.O VECT21ll=XLOC-PZEROX VECT212J=YLOC-PZEROY VECT2(3J=O.O DIST=(VECT211)**2+VECT212)**2)**,5

C DETERMINE THE ANGLE BETHEEN THE COLINEAR VECTORS FOR SIGN CALL VANGIVECT1,VECT2,ANGLEJ IF IANGLE.GT.90.0J DIST= -DIST GO TO 80

79 DIST=O.O 80 CONTINUE

RADDISINRLOADJ=DIST ANGOPT=RLOADS(NUMLC,MEMLOC+3) ANGl=RLOADS(NUMLC,MEMLOC+4J ANG2=RLOADSINUMLC,MEMLOC+5) MEMLOC=MEMLOC+7 ANGLE=ANGl

C IF AN ANGLE HAS KEYED IN, SKIP THE ANGLE REFERENCE PART IF IANGOPT.EQ.2.0) GO TO 81 IF l(ANG1.EQ.EZEROZJ.AND,IANG2.EQ.EZEROYJJ GO TO 64 ANGLE=O,O IF IIANG1,EQ,EANGRZJ,AND,IANG2.EQ.EANGRYJ) GO TO 81 VECTlllJ=O.O VECT112)=EANGRY-EZEROY VECT113l=EANGRZ-EZEROZ VECT211)=0.0 VECT212)=ANG2-EZEROY VECT213J=ANG1-EZEROZ

C DETERMINE THE ANGLE BETHEEN THE THO VECTORS CALL VANGIVECT1,VECT2,ANGLE) IF IANGLE.EQ.O.OJ GO TO 81

C DETERMINE SIGN OF ANGLE CALL VPRODIVECT1,VECT2,VECT3) IF IVECT311).LT,O.OJ ANGLE=0.0-ANGLE

81 CONTINUE RADANGINRLOADJ=ANGLE IF IRADLDINRLOADJ.EQ.0,0) NRLOAD=NRLOAD-1

77 CONTINUE

76 CONTINUE C PROCESS ANY RESULTANTS OF VARIABLE DISTRIBUTED LOADS

NVARDL=RLOADSINUMLC,6) IF INVARDL.EQ.O) GO TO 82 IF INVARDL.GT.2) GO TO 78 KEYUSE=RLOADSINUMLC,MEMLOCJ XLOC=RLOADSINUMLC,MEMLOC+l) YLOC=RLOADSINUMLC,MEMLOC+2J TOAHAJ=RLOADSINUMLC,MEMLOC+3)

SUBROUTINE USRPGM LISTING 186

C

C

C

C

83 84

87

85

82

MEMLOC=MEMLOC+4 IF ((XLOC.EQ.PZEROXl.AND.(YLOC.EQ.PZEROYll GO TO 83 VECTl(ll=DIRX-PZEROX VECT112l=DIRY-PZEROY VECT113l=O.O VECT21ll=XLOC-PZEROX VECT212l=YLOC-PZEROY VECT2(3l=O.O DIST=IVECT2(ll**2+VECT2(2l**2l**•5 DETERMINE THE ANGLE BETWEEN THE COLINEAR VECTORS FOR SIGN CALL VANGtVECT1,VECT2,ANGLEl IF t ANGLE . GT. 90. 0 l DIST= -DIST GO TO 84 DIST=O.O CONTINUE DO 85 L=l,8

NRLOAD=NRLOAD+l RADDISINRLOADl=DIST IF tTOAWAY.GT.1.5) TOAWAY= -1.0 RADLDINRLOADl=TOAWAY*RLOADS(NUMLC,MEMLOCl ANGl=RLOADStNUMLC,MEMLOC+ll ANG2=RLOADSINUMLC,MEMLOC+2l MEMLOC=MEMLOC+3 ANGLE=ANGl IF IKEYUSE.EQ.ll GO TO 87 IF (IANGl.EQ.EZEROZl.AND.(ANG2.EQ.EZEROYll GO TO 64 ANGLE=O.O IF ((ANGl.EQ.EANGRZl.AND.(ANG2.EQ.EANGRYll GO TO 87 VECTl(ll=O.O VECT1(2l=EANGRY-EZEROY VECT113l=EANGRZ-EZEROZ VECT21ll=O.O VECT2(2l=ANG2-EZEROY VECT213l=ANG1-EZEROZ DETERMINE THE ANGLE BETWEEN THE TWO VECTORS CALL VANG(VECT1,VECT2,ANGLEl IF IANGLE.EQ.O.Ol GO TO 87 DETERMINE SIGN OF ANGLE CALL VPROD(VECT1,VECT2,VECT3l IF IVECT3(ll.LT.O.Ol ANGLE=0.0-ANGLE CONTINUE RADANGINRLOADl=ANGLE

CONTINUE

CONTINUE PROCESS ANY MOMENTS AND COUPLES NMANDC=RLOADS(NUMLC,7l IF (NMANDC.EQ.Ol GO TO 86 UElll=l.O UEl2l=O.O UE13l=O.O Blll=O.O B(2l=EANGRY Bl3J=EANGRZ Cl ll=O.O C(2l=EZEROY C(3l=EZEROZ DO 90 L=l,NMANDC

COUPMO=RLOADS(NUMLC,MEMLOC) IF (NTLOAD.GT.9) GO TO 89 IF ((COUPMO.EQ.l.Ol.AND.INTLOAD.GT.8ll GO TO 89 SHAHOU=RLOADSINUMLC,MEMLOC+ll All)=O.O Al2l=RLOADSINUMLC,MEMLOC+3) Al3l=RLOADSINUMLC,MEMLOC+2) Dll J=O.O Dl2l=RLOADSINUMLC,MEMLOC+7)

SUBROUTINE USRPGM LISTING 187

C

C

C

C

C

C

C

C

C

C

91

93

92 90

$

$

Dl3J=RLOADSINUMLC,MEMLOC+6J DETERMINE EQUIVALENT THRUST LOADISJ ARMDIS~RLOADSINUMLC,MEMLOC+4J IF IRDATAllJ.EQ.l.OJ

FORCE=ll2.0/ARMDIS)*RLOADSINUMLC,MEMLOC+8) IF IRDATAllJ.EQ.2.0J

FORCE=ll000.0/ARMDIS)*RLOADSINUMLC,MEMLOC+8) MEMLOC=MEMLOC+9 IF ICOUPMO.EQ.l.0) FORCE=FORCE/2.0 IF (SHAHOU.EQ.2.0) FORCE= -FORCE DETERMINE MOMENT ARM FROM SHAFT CENTERLINE NCASE=2 CALL ADDSUBID,A,F,NCASE) CALL VUNITIF,UFJ CALL VPRODIUE,UF,UGJ Gll)=UGll)*ARMDIS Gl2J=UGl2)*ARMDIS Gl3J=UG(3l*ARMDIS NCASE=l CALL ADDSUB(A,G,H,NCASEJ ARM=IIHl3J-Cl3l)**2+1Hl2J-Cl2)l**2l**.5 DETERMINE ANGLE OF THRUST LOAD NCASE=2 CALL ADDSUB(B,C,VECTl,NCASEJ CALL ADDSUBIH,C,VECT2,NCASE) DETERMINE THE ANGLE BETHEEN THE THO VECTORS CALL VANGIVECTl,VECT2,ANGLE) IF IANGLE.EQ.O.OJ GO TO 91 DETERMINE SIGN OF ANGLE CALL VPROD(VECTl,VECT2,VECT3J IF IVECT311J.LT.O.OJ ANGLE=0.0-ANGLE CONTINUE NTLOAD=NTLOAD+l THRLDINTLOADJ=FORCE THRDISINTLOADJ=ARM THRANGINTLOADJ=ANGLE IF ITHRLDINTLOADJ.EQ.0.0) NTLOAD=NTLOAD-1 EQUAL BUT OPPOSITTE LOAD REQUIRED FOR COUPLES IF (COUPMO.EQ.2.0) GO TO 92 FORCE= -FORCE SHITCH ORDER OF CROSS PRODUCT TO GET OTHER POINT CALL VPRODIUF,UE,UGJ GllJ=UGlll*ARMDIS Gl2J=UG(2)*ARMDIS Gl3J=UGl3l*ARMDIS NCASE=l CALL ADDSUBIA,G,H,NCASEJ ARM=IIH13J-C13JJ**2+1Hl2J-Cl2J)**2)**.5 DETERMINE ANGLE OF THRUST LOAD NCASE=2 CALL ADDSUBIB,C,VECTl,NCASEJ CALL ADDSUBIH,C,VECT2,NCASEJ DETERMINE THE ANGLE BETHEEN THE THO VECTORS CALL VANGIVECT1,VECT2,ANGLE) IF IANGLE.EQ.O.OJ GO TO 93 DETERMINE SIGN OF ANGLE CALL VPRODIVECTl,VECT2,VECT3J IF (VECT311).LT.O.OJ ANGLE=0.0-ANGLE CONTINUE NTLOAD=NTLOAD+l THRLDINTLOADJ=FORCE THRDIS(NTLOADJ=ARM THRANGINTLOADJ=ANGLE IF ITHRLDINTLOADJ.EQ.O.OJ NTLOAD=NTLOAD-l CONTINUE

CONTINUE

SUBROUTINE USRPGM LISTING 188

86 C

C

C 101

CONTINUE PROCESS ANY POINT LOADS NPOINT=RLOADSINUMLC,8) IF INPOINT.EQ.OJ GO TO 94 Ell)=DIRX-PZEROX El2)=DIRY-PZEROY E13J=O.O CALL VUNITIE,UE) QI U=O.O Ql2)=EANGRY-EZEROY Q(3)=EANGRZ-EZEROZ

DO 95 L=l,NPOINT LDTYPE=RLOADSINUMLC,MEMLOC) SHAHOU=RLOADSINUMLC,MEMLOC+ll All)=RLOADSINUMLC,MEMLOC+2) Al2J=RLOADSINUMLC,MEMLOC+3) Al3J=0.0 Bll)=RLOADSINUMLC,MEMLOC+4) B12)=RLOADSINUMLC,MEMLOC+5) B13)=0.0 C(l)=O.O Cl2J=RLOADSINUMLC,MEMLOC+7) Cl3)=RLOADSINUMLC,MEMLOC+6) 0(1)=0.0 D12)=RLOADSINUMLC,MEMLOC+9) D13J=RLOADSINUMLC,MEMLOC+8) FORCE=RLOADSINUMLC,MEMLOC+lO) MEMLOC=MEMLOC+ll Flll=O.O Fl2)=Cl2)-EZEROY F(3l=Cl3J-EZEROZ Glll=Alll-Blll Gl2J=Al2l-B12) Gl3)=0.0 HI l)=O.O HI 2)=CI 2 )-DI 2) Hl3J=Cl3)-D13J Pll)=Alll-PZEROX P(2J=Al2)-PZEROY P(3)=0.0

CHECK FOR SPECIAL CASES: NSETl=O NSET2=0 NSET3=0 NSET4=0 NSET5=0 IF l(Cl2).EQ.0(2)).AND.ICl3).EQ.D13))) NSET2=1 IF ((C(2J.EQ.EZEROYJ.ANO.(C(3J.EQ.EZEROZll NSET3=1 IF ((0(2).EQ.EZEROYJ.AND.1013).EQ.EZEROZJ) NSET4=1 IF tlNSET3.EQ.l).AND.INSET4.EQ.llJ NSETl=l IF t1Atll,EQ.Btl)).AND.IAl2l.EQ.B12lll NSET5=1 IF (NSETl.EQ.l) GO TO 101 IF tNSET2.EQ.l) GO TO 102 IF tNSET3.EQ.lJ GO TO 103 IF INSET4.EQ.ll GO TO 104 IF INSET5.EQ.ll GO TO 105 GO TO 106

PURE THRUST LOAD ALONG SHAFT AXIS TANG=O.O TDIST=O.O RFORCE=O.O TFORCE=FORCE CALL VANGtE,G,ANGLEl IF IANGLE.GT.90.0l TFORCE= -TFORCE

SUBROUTINE USRPGM LISTING 189

C 102

C 103

110

111

112

C 104

113

114

C 105

IF ISHAHOU.EQ.2.0J TFORCE= -TFORCE GO TO 96

PURE THRUST LOADS NOT ON SHAFT AXIS CALL VANGIQ,F,ANGLEJ CALL VPRODIQ,F,RJ IF IR(lJ.LT.O.OJ ANGLE= -ANGLE TANG=ANGLE TDIST=IF12l**2+Fl3l**2l**,5 RFORCE=O.O TFORCE=FORCE CALL VANGIE,G,ANGLEJ IF IANGLE.GT.90.0J TFORCE= -TFORCE IF ISHAHOU.EQ.2.0J TFORCE= -TFORCE GO TO 96

NO TORQUE HITH APPLICATION POINT ON SHAFT AXIS CALL VANGIQ,H,ANGLElJ CALL VPRODIQ,H,RJ ANGLE=90.0 IF IANGLEl.LT.O.OlJ ANGLE=l80.0 IF (ANGLEl.GT.179.99) ANGLE=O.O IF IIANGLE.EQ.O.OJ.OR,IANGLE.EQ.180.0JJ GO TO 110 IF IR(lJ.LT.O.OJ ANGLE=l80.0-ANGLE1 IF IR(l}.GT.O.O) ANGLE=ANGLEl-180.0 CONTINUE TANG=O.O RANG=ANGLE TDIST=O.O RDIST=IIAllJ-PZEROXl**2+(A(2J-PZEROYl**2l**,5 IF IRDIST.EQ.O.OJ GO TO 111 CALL VANG(E,P,ANGLEJ IF IANGLE.GT.90.0J RDIST= -RDIST IF INSET5.NE.1J GO TO 112 TFORCE=O.O RFORCE=FORCE GO TO 96 CALL VUNITIG,UGJ CALL SPROD(UG,UE,SCALERJ TFORCE=FORCE*SCALER IF (SHAHOU.EQ.2.0l TFORCE= -TFORCE RFORCE=IFORCE**2-TFORCE**2l**·5 GO TO 96

NO TORQUE HITH TAIL POINT ON SHAFT AXIS CALL VANGIQ,F,ANGLEJ CALL VPRODIQ,F,RJ IF IRllJ,LT.O.OJ ANGLE= -ANGLE TANG= ANGLE RANG= ANGLE TDIST=(F{2)**2+F{3l**2)**·5 RDIST=O.O IF IIA(l).EQ.PZEROXJ.AND.IA(2J,EQ.PZEROYJJ GO TO 113 CALL SPROO{P,UE,SCALERJ RDIST=SCALER IF INSETS.NE.lJ GO TO 114 TFORCE=O.O RFORCE= -RFORCE GO TO 96 CALL VUNIT{G,UGJ CALL SPROO{UG,UE,SCALERJ TFORCE=FORCE*SCALER RFORCE= -IFORCE**2-TFORCE**2)**·5 GO TO 96

ALL OTHER NO THRUST CASES CALL VANG{Q,F,ANGLE)

SUBROUTINE USRPGM LISTI:\G 190

CALL VPROD(Q,F,R) IF IRlll.LT.0.0) ANGLE= -ANGLE RANG=ANGLE RDIST=O.O IF l(All).EQ.PZEROX).AND.(Al2).EQ.PZEROY)) GO TO 115 CALL SPRODIP,UE,SCALER) RDIST=SCALER

115 CALL VUNITIH,UH) CALL VUNITIF,UF) CALL SPRODIUH,UF,SCALER) TFORCE=O.O RFORCE= -FORCE*SCALER GO TO 96

C ALL OTHER LOAD CASES 106 CALL VANGIQ,F,ANGLE)

CALL VPRODIQ,F,RJ IF IRll).LT.0.0) ANGLE= -ANGLE TANG=ANGLE RANG=ANGLE TDIST=IFl2)**2+Fl3)**2)**•5 CALL SPRODIP,UE,SCALER) RDIST=SCALER CALL VUNITIG,UG) CALL SPRODIUG,UE,SCALER) TFORCE=FORCE*SCALER IF ISHAHOU.EQ.2.0) TFORCE= -TFORCE CALL VUNITIH,UH) CALL VUNITIF,UFJ CALL SPROOIUH,UF,SCALERJ RAOTOR=IFORCE**2-TFORCE**2)**·5 RFORCE= -RAOTOR*SCALER

96 CONTINUE

C CHECK FOR ANY RADIAL LOAD COMPONENTS IF IRFORCE.EQ.O.O) GO TO 118 IF INRLOAO.GT.9l GO TO 78 NRLOAO=NRLOAO+l RADLOINRLOADJ=RFORCE RADDISINRLOADl=RDIST RADANGINRLOADJ=RANG

C CHECK FOR ANY THRUST LOAD COMPONENTS 118 IF ITFORCE.EQ.O.Ol GO TO 119

IF INTLOAD.GT.9) GO TO 89 NTLOAD=NTLOAD+l THRLDINTLOADl=TFORCE THRDISINTLOAD)=TDIST THRANGINTLOAD)=TANG

119 CONTINUE 95 CONTINUE

94 CONTINUE C HRITE OUT MAIN INFORMATION FOR EACH LOAD CONDITION

HRITEINOUT,228) NUMLC, SPEED, PTIME, NRLOAD, NTLOAD 228 FORMAT! Tl ,I2, lX,21 Fl4. 3, lX), 21 2X,I2 J)

C HRITE OUT ANY RADIAL LOADS FOR THE GIVEN LOAD CONDITION IF INRLOAD.EQ.Ol GO TO 121 DO 122 KH=l,NRLOAD

HRITEINOUT,229) RADLDIKHl, RADANGIKHl, RADDISIKHl 229 FORMATIT4,Fl6.3,1X,Fl2.3,1X,Fl4.3) 122 CONTINUE

C HRITE OUT ANY THRUST LOADS FOR THE GIVEN LOAD CONDITION 121 IF INTLOAD.EQ.Ol GO TO 67

SUBROUTINE USRPGM LISTING 191

DO 123 KH=l,NTLOAD C SET FLOATALL MOUNTING FLAG FOR ANY THRUST LOADS

IF (THRLDIKHJ.GT.l.Ol NFLOAT=l HRITEINOUT,230) THRLD(KHJ, THRANGIKHJ, THRDISIKHJ

230 FORMATIT4,Fl6.3,1X,Fl2.3,1X,Fl4.3l 123 CONTINUE 67 CONTINUE

66 CONTINUE C CHECK IF TOTAL PERCENT TIME HAS OVER 100%

TOTPER=O.O DO 134 NUMLC=l,50

PTIME=UNBALINUMLC,2) TOTPER=TOTPER+PTIME

134 CONTINUE IF (TOTPER.GT.100.0l GO TO 135

C SELECT-A-NALYSIS CURRENTLY DOES NOT HANDLE DYNAMIC LOADING C BUT THE FOLLOI-UNG SECTION HAS BEEN CODED TO "STANDARD" SAN C FORMAT IN ANTICIPATION OF A FUTURE DYNAMIC LOADING SECTION.

C SKIP DYNAMIC LOADS SECTION IF IT DOESN'T EXIST IF IMODFLGINUMSHA,127).NE.llll GO TO 125 NULOAD=RDYNAMINUMSHA,ll IF (NULOAD.EQ.Ol GO TO 125

HRITEINOUT,*l IF INUNCAR.EQ.ll GO TO 126

C CAR~IHEEL NOT USED HRITEINOUT,231)

231 FORMATITl,'R DYNAMIC 'l GO TO 127

126 CONTINUE C CARHHEEL USED

HRITEINOUT,232) UNTIRE 232 FORMATITl,'R DYNAMIC CARHHEEL ',F14.3l 127 CONTINUE

DO 128 NUMLC=l,50 C ONLY HRITE OUT INFORMATION FOR SPECIFIED LOAD CONDITIONS

IF(IMODFLGINUMSHA,NUMLC+23J.NE.llll.AND. $ I MODFLGI NUMSHA ,NUMLC+ 74 l. NE .111 l l GO TO 128

SPEED=UNBALINUMLC,ll PTIME=UNBAL(NUMLC,2)

C COMMENT OUT THE "FUTURE USE" DYNAMIC LOADING HEADING HRITEINOUT,233) NUMLC, SPEED, PTIME, NULOAD

233 FORMATITl,'R ',I2,1X,21Fl4.3,1Xl,2X,I2l Elll=DIRX-PZEROX El2l=DIRY-PZEROY E13l=O.O CALL VUNITIE,UEJ Qll l=O.O Ql2l=EANGRY-EZEROY Q(3l=EANGRZ-EZEROZ MEMLOC=2

C COMMENT OUT EACH MASS ENTRY AS HELL ... DO 130 L=l,NULOAD

IF IL.GT.10) GO TO 129 C MASS IN EITHER SLUGS OR KG

MASS=RDYNAMINUMSHA,MEMLOCJ Alll=RDYNAM(NUMSHA,MEMLOC+ll Al2l=RDYNAMINUMSHA,MEMLOC+2l Al3l=O.O Cl ll=O.O Cl2l=RDYNAMINUMSHA,MEMLOC+4l

SUBROUTINE USRPGM LISTING 192

Cl3)=RDYNAMCNUMSHA,MEMLOC+3) MEMLOC=MEMLOC+5 Fil )=0.0 Fl2)=Cl2)-EZEROY FC3)=Cl3)-EZEROZ Pll)=All)-PZEROX P12)=Al2)-PZEROY Pl3)=0.0

C CHECK ECCENTRICITY FLAG FOR KEYED VALUE OR NOT RADIUS=Cl2) IF ICl3).EQ.-333.) GO TO 131 RADIUS=IFl2)H2+F(3)**2)H,5

131 UFORCE=O.O IF IRADIUS.EQ.0.0) GO TO 132 IF IRDATAll).EQ.1.0)

$ UFORCE=9.l385E-04*MASS*RADIUS*ISPEED**2) IF IRDATAll).EQ.2.0)

$ UFORCE=l,0966E-05*MASS*RADIUS*ISPEED**2) 132 UDIST=O.O

IF 11Pll),EQ.0.0J.AND.IPl2J,EQ,0,0)) GO TO 133 CALL SPRODIP,UE,SCALER) UDIST=SCALER

133 CONTINUE C HRITE OUT INFORMATION FOR EACH MASS IIN COMMENT FORM)

HRITEINOUT,234) MASS, UDIST, RADIUS, UFORCE 234 FORMATITl,'R ',Fl6,3,1X,Fl4.3,1X,Fl4.3,lX,Fl6.3) 130 CONTINUE 128 CONTINUE

125 CONTINUE C SPECIFY THE SHAFT MOUNTING USED

MNTYPE=RMOUNTINUMSHA,2) HRITE INOUT, *) IF (MNTYPE.EQ.l) HRITEINOUT,237) IF CHNTYPE.EQ.2) HRITEINOUT,238) IF CMNTYPE.EQ.3) HRITEINOUT,239) IF CMNTYPE.EQ.4) HRITEINOUT,240) IF (MNTYPE.EQ.5) HRITEINOUT,241) IF IIMNTYPE.LT.l).OR.IMNTYPE.GT.5)) GO TO 301 GO TO 302

237 FORMATITl,'DIRECT ') 238 FORMATCTl,'INDIRECT ') 239 FORMATITl,'FIXEDLEFT ') 240 FORMATITl,'FIXEDRIGHT ') 241 FORMAT(Tl,'FLOATALL ')

302 CONTINUE C CHECK AGAINST ANY THRUST LOADS HITH FLOATALL MOUNTING

IF IIMNTYPE.EQ.5).AND.INFLOAT.NE.0)) GO TO 303

C CHECK IF AN APPLICATION FACTOR HAS APPLIED OR NOT APFACT=RMOUNTINUMSHA,3) IF (APFACT.EQ,l,O) GO TO 304 HRITEI NOUT •*) HRITECNOUT,242) APFACT

242 FORMAT(Tl,'APFACTOR ',F9.3)

304 CONTINUE C CHECK IF ISO BEARINGS ARE TO BE CONSIDERED FOR SELECTION

IF IRUNTYP.EQ.l.Ol GO TO 305 ISONOT=RMOUNTINUMSHA,4) IF IISONOT.EQ.2) GO TO 305

SUBROUTINE USRPGM LISTING 193

HRITEINOUT,*) HRITEINOUT,243)

243 FORMATfTl,'ISO ')

305 CONTINUE C CHECK IF A SUMMARY LIST IS REQUIRED OR NOT

IF fANASEL.EQ.2.) GO TO 306 ALTNTA=RBRGCNINUMSHA,5) ALTNTB=RBRGCNINUMSHA,6) IF lfALTNTA.EQ.l.O).OR.IALTNTB.EQ.1.0)) GO TO 306 GO TO 307

306 CONTINUE C CHECK IF SUMMARY LIST HAS BEEN DEFINED

IF IMODFLGINUMSHA,131).NE.lll) GO TO 308 C WRITE OUT SUMMARY LIST INFORMATION

NSUMPR=RBRGCNINUMSHA,11) LIFPRI=RBRGCNINUMSHA,12) IF ILIFPRI.EQ.2) GO TO 309 BYHHAT(l)=BYLIF(l) BYHHAT(2)=BYLIFf2) GO TO 310

309 CONTINUE BYHHATfl)=BYPRill) BYHHAT(2)=BYPRif2)

310 CONTINUE LCNUM=RBRGCNINUMSHA,13)

C DETERMINE IF RANK BASED ON A LOAD COND NUMBER OR WEIGHTED LIFE IF flLCNUM.LT.l).OR.fLCNUM.GT.50)) GO TO 311

C CHECK IF A VALID LOAD CONDITION NUMBER HAS SPECIFIED OR NOT IF fUNBALILCNUM,2l.EQ.O.Ol GO TO 313

C RANK BASED ON SPECIFIED LOAD CONDITION NUMBER HRITEINOUT,*) HRITEINOUT,244) NSUMPR,BYHHAT,LCNUM

244 FORMATfTl,'SUMMARY ',I2,1X,2A4,1X,I2l GO TO 307

311 CONTINUE HRITE(NOUT,*) HRITEINOUT,245) NSUMPR,BYHHAT

245 FORMATfTl,'SUMMARY ',I2,1X,2A4,1X,'H')

307 CONTINUE C WRITE OUT POSITION, TYPE, CONSTRAINT, AND LUBE INFORMATION

VECTllll=DIRX-PZEROX VECT112l=DIRY-PZEROY VECT113)=0.0

C SET INTERPOSITIONAL CONSTRAINT SECTION FLAGS N2TSIM=O NOTHER=O

C DO THE FOLLOWING FOR EACH BEARING: DO 315 NAB=l,2

IF INAB.EQ.2) GO TO 324 C SET BEARING "A" MEMORY LOCATORS AND VARIABLES

MEM=O MEMLOC=O MEMTYP=O BGLTTR=ALTTR GO TO 325

324 CONTINUE C SET BEARING "B" MEMORY LOCATORS AND VARIABLES

MEM=lO MEMLOC=64 MEMTYP=3 BGLTTR=BLTTR

325 CONTINUE NPOS=RMOUNTI NUMSHA ,MEM+5 l

SUBROUTINE USRPGM LISTING 194

NTYPBG=RMOUNTINUMSHA,MEM+l4) IF INTYPBG.EQ.6} N2TSIM=l IF (NTYPBG.EQ.7) NOTHER=l ABLOC(l)=RMOUNTINUMSHA,MEM+6) ABLOC(2)=RMOUNT(NUMSHA,MEM+7) ABLOCl3)=0.0 DO 316 MM=l,6

BGTXTIMMJ=RMOUNTINUMSHA,MEM+7+MM) 316 CONTINUE

C DETERMINE BEARING LOCATION HITH RESPECT TO ZERO POINT IFIIABLOCl1).EQ.PZEROX).AND.(ABLOC(2l.EQ.PZEROYJJGO TO 317 BGLOC=IIABLOCl1J-PZEROX)**2 + IABLOC(2}-PZEROY)**2)**·5 VECT2(l)=ABLOC(l)-PZEROX VECT2(2l=ABLOC(2l-PZEROY VECT213}=0.0

C DETERMINE THE ANGLE BErnEEN THE COLINEAR VECTORS FOR SIGN CALL VANGIVECT1,VECT2,ANGLE) IF IANGLE.GT.90.0) BGLOC= -BGLOC GO TO 318

317 BGLOC=O.O 318 CONTINUE

IF INPOS.EQ.l) POSBRG=POSITl IF INPOS.EQ.2) POSBRG=POSIT2 IF INPOS.EQ.3) POSBRG=POSIT3 IF INPOS.EQ.4) POSBRG=POSIT4 IF INPOS,EQ.5) POSBRG=POSITS IF (NPOS.EQ.6) POSBRG=POSIT6 IF INPOS.EQ.7) POSBRG=POSIT7 IF INPOS.EQ.8) POSBRG=POSIT8

IF INTYPBG.EQ.l} TYPBRGllJ=TYPEl(l} IF INTYPBG.EQ.l) TYPBRG(2)=TYPE112) IF (NTYPBG.EQ.2) TYPBRGlll=TYPE2(1) IF INTYPBG.EQ.2l TYPBRG(2l=TYPE212J IF (NTYPBG.EQ.3} TYPBRGl1J=TYPE3(ll IF (NTYPBG.EQ.3} TYPBRG(2l=TYPE3(2l IF (NTYPBG.EQ.4l TYPBRGlll=TYPE4(ll IF (NTYPBG.EQ.4) TYPBRGl2l=TYPE412l IF (NTYPBG.EQ.5) TYPBRGlll=TYPESlll IF (NTYPBG.EQ.5) TYPBRGl2l=TYPE512l IF (NTYPBG.EQ,6} TYPBRGlll=TYPE611} IF (NTYPBG.EQ.6} TYPBRG(2l=TYPE612l IF INTYPBG.EQ.7} TYPBRG1ll=TYPE71ll IF INTYPBG.EQ.7} TYPBRG(2l=TYPE712l

C HRITE OUT MAIN HEADINGS HRITEINOUT,*l HRITEINOUT,246} POSBRG, BGLOC, BGLTTR, BGTXT

246 FORMAT(Tl,'POSITION ',A4,1X,Fl4.3,1X,A4,1X,6A4}

HRITEINOUT,247} TYPBRG 247 FORMAT(Tl,'TYPE ',2A4l

C TYPE "OTHER" HAS NO MORE PARAMETERS IF (NTYPBG.EQ.7) GO TO 315

C CHECK IF BEARING 11B11 AND IF COPIED FROM "A" COPDIF=RBRGCN(NUMSHA,NAB+8} IF ICOPDIF.NE.l.Ol GO TO 321 HRITE I NOUT, 248}

248 FORMAT(Tl,'COPY (Al 'l GO TO 315

321 CONTINUE C DETERMINE IF ANALYSIS ONLY OR SELECTION TOO

IF IANASEL.EQ.2.0l GO TO 320

SUBROUTINE USRPGM LISTING 195

C ANALYSIS SECTION ONLY DO 326 MM=l,3

CONE(MMJ=RBRGCNINUMSHA,MEMTYP+l3+MM) CUPIMMJ=RBRGCNINUMSHA,MEMTYP+l9+MM)

326 CONTINUE

HRITEINOUT,249) CONE, CUP 249 FORMATITl,'CONE ',1X,3A4,3X,'CUP ',1X,3A4)

C CHECK IF ALTERNATE BEARINGS ARE CONSIDERED ALTNOT=RBRGCNINUMSHA,NAB+4) IF (ALTNOT.NE.1.0) GO TO 323

C READ IN AND HRITE OUT ALTERNATE BEARINGS LR=O

328 CONTINUE DO 327 MM=l,3

AL Tl MM )=BLANKS 327 CONTINUE

CNCPSR=RBRGCNINUMSHA,MEMLOC+26+LRJ DO 329 MM=l,3

LR=LR+l ALTIMMJ=RBRGCNINUMSHA,MEMLOC+26+LRJ

329 CONTINUE LR=LR+l IF (CNCPSR.EQ.1.0) ALTCCS(l)=ALTCON(l) IF ICNCPSR.EQ.1.0J ALTCCSl2l=ALTCONl2) IF ICNCPSR.EQ.2.0l ALTCCS(l)=ALTCUPlll IF ICNCPSR.EQ.2.0) ALTCCS(2J=ALTCUP(2J IF ICNCPSR.EQ.3.0) ALTCCSlll=ALTSERlll IF ICNCPSR.EQ.3.0J ALTCCS(2l=ALTSER(2J

HRITEINOUT,250) ALTCCS, ALT 250 FORMAT( Tl,' ALTERNATE ',3X, 2A4,3X,3A4 J

C MAXIMUM OF 8 ALTERNATE BEARING PARTS ALLOHED (4 COMP BRGSJ IF ILR.GT.31) GO TO 323

C CHECK END OF INPUT FLAG IF IRBRGCNINUMSHA,MEMLOC+26+LRJ.EQ.O.OJ GO TO 323

C LOOP BACK FOR NEXT ALTERNATE BEARING PART GO TO 328

320 CONTINUE C SELECTION TOO SECTION C DETERMINE WHICH CONSTRAINTS ARE APPLICABLE

CONSTR=RBRGCNINUMSHA,NAB+6) IF ICONSTR.GT.2.0J GO TO 330

C SPECIFY CONE CONSTRAINT DO 331 MM=l,3

CONEIMMJ=RBRGCNINUMSHA,MEMTYP+l3+MMJ 331 CONTINUE

HRITEINOUT,251) CONE 251 FORMAT(Tl,'CONE ',1X,3A4J 330 CONTINUE

IF IICONSTR.GT.3.0J.OR.(CONSTR.EQ.2.0JJ GO TO 332

C SPECIFY CUP CONSTRAINT

C

DO 334 MM=l,3 CUPIMMJ=RBRGCNINUMSHA,MEMTYP+l9+MMJ

334 CONTINUE HRITEINOUT,252) CUP

252 FORMATITl, 'CUP ',1X,3A4) 332 CONTINUE

IF ICONSTR.EQ.l.OJ GO TO 323 IF ICONSTR.EQ.2.0) GO TO 335

SPECIFY BORE CONSTRAINTS, IF ANY

SUBROUTINE USRPGM LISTING 196

BORHIN=RBRGCNINUHSHA,MEMLOC+26) BORMAX=RBRGCNINUHSHA,MEMLOC+27) IF (IBORMIN.EQ.O.OJ.AND.(BORHAX.EQ.0.0)) GO TO 335 IF (BORMIN.EQ.BORMAX) GO TO 336 WRITEINOUT,253) BORMIN, BORHAX

253 FORMATITl,'BORE ',1X,Fl4.3,1X,Fl4.3) GO TO 335

336 WRITEINOUT,254) BORMIN 254 FORMAT(Tl,'BORE ',1X,Fl4.3) 335 CONTINUE

IF ICONSTR.EQ.3.0) GO TO 333

C SPECIFY OUTER DIAMETER CONSTRAINTS, IF ANY ODMIN=RBRGCNINUMSHA,MEHLOC+28) ODMAX=RBRGCNINUMSHA,MEMLOC+29) IF (IODHIN.EQ.0.0).AND.IODMAX.EQ.O.Oll GO TO 333 IF IODMIN.EQ.ODMAXJ GO TO 338 WRITEINOUT,255) ODMIN, ODHAX

255 FORMATITl,'OD ',1X,Fl4.3,1X,Fl4.3) GO TO 333

338 WRITEINOUT,256) OOHIN 256 FORHATITl,'OD ',1X,Fl4.3)

333 CONTINUE C SPECIFY WIDTH CONSTRAINTS, IF ANY C BEARING TYPE 2TS-IH OVERRIDES WIDTH CONSTRAINTS

IF INTYPBG.GE.6) GO TO 339 HIOMIN=RBRGCNINUHSHA,MEMLOC+30) HIOHAX=RBRGCNINUMSHA,MEMLOC+31) IF IIWIDMIN.EQ.~.OJ.AND.IHIOMAX.EQ.0.0)) GO TO 339 IF <HIOMIN. EQ. WIDMAX J GO TO 340 WRITEINOUT,257) WIOMIN, WIDMAX

257 FORHATITl,'HIDTH ',1X,Fl4.3,1X,Fl4,3) GO TO 339

340 WRITEINOUT,258) HIDMIN 258 FORMATITl,'HIDTH ',1X,Fl4.3J 339 CONTINUE

IF ICONSTR,EQ.4.0) GO TO 341 IF ICONSTR.LT.5.0l GO TO 344

C SPECIFY Cl90l CONSTRAINTS, IF ANY C90HIN=RBRGCNINUMSHA,MEMLOC+32) C90HAX=RBRGCNINUMSHA,MEMLOC+33) IF (IC90MIN.EQ.0.0).AND.IC90HAX.EQ.O.O)) GO TO 342 IF (C90MIN.EQ.C90MAXJ GO TO 343 HRITEINOUT,259) C90MIN, C90MAX

259 FORMAT! Tl,' Cl 90 l ', 1X,Fl4. 3, lX ,F14. 3 l GO TO 342

343 HRITEINOUT,2601 C90MIN 260 FORMATIT1,'Cl90) ',1X,Fl4.3J 342 CONTINUE

C SPECIFY KFACTOR CONSTRAINTS, IF ANY RKFHIN=RBRGCNINUMSHA,MEMLOC+34J RKFHAX=RBRGCNINUHSHA,MEMLOC+35J IF IIRKFMIN.EQ.O.Ol.AND.IRKFMAX.EQ.0.0)) GO TO 344 IF IRKFMIN,EQ,RKFMAXl GO TO 345 HRITEINOUT,261) RKFMIN, RKFMAX

261 FORMAT(Tl,'KFACTOR ',1X,Fl4.3,1X,Fl4.3l GO TO 344

345 WRITEINOUT,261) RKFMIN 262 FORMAT(Tl,'KFACTOR ',1X,Fl4.3l

GO TO 344

341 CONTINUE C SPECIFY SERIES CONSTRAINT

DO 346 MM=l,3

SUBROUTINE USRPGM LISTING 197

SERIES(MMJ=RBRGCN(NUMSHA,MEMLOC+35+MM) 346 CONTINUE

HRITEINOUT,263) SERIES 263 FORMAT(Tl,'SERIES ',1X,3A4l

344 CONTINUE C SPECIFY MINIMUM LIVES FOR LOAD CONDITIONS, IF ANY C LIVES IN HOURS OR MI/KM DEPENDING ON LOADING CLASSIFICATION

DO 347 MM=l,50 RLIFE=RBRGCNCNUMSHA,MEMLOC+38+MMJ IF (RLIFE.EQ.O.Ol GO TO 347

C CHECK IF A VALID LOAD CONDITION HAS SPECIFIED OR NOT IF (UNBAL(MM,2).EQ.0.0) GO TO 313 HRITEINOUT,264) MM, RLIFE

264 FORMAT(Tl,'LIFE ',1X,I2,1X,Fl5.3) 347 CONTINUE

C SPECIFY MINIMUM HEIGHTED LIFE, IF ANY HLIFE=RBRGCNCNUMSHA,MEMLOC+89l IF IHLIFE.EQ.O.Ol GO TO 323 HRITE(NOUT,265) HLIFE

265 FORMAT(Tl,'HTDLIFE ',1X,Fl5.3)

323 CONTINUE C RESET BEARING B MEMORY LOCATOR

IF INAB.EQ.2) MEM=l2 C CHECK IF LUBRICATION INFORMATION SPECIFIED

IF (RMOUNTINUMSHA,MEM+25),NE.l,Ol GO TO 315 DO 348 MM=l,7

LUBENIMMJ=RMOUNT(NUMSHA,MEM+25+MMJ 348 CONTINUE

GRSOIL=RMOUNTINUMSHA,MEM+33) VS40=RMOUNT( NUMSHA ,MEM+34 l VS100=RMOUNTINUMSHA,MEM+35l TEMPLB=RMOUNT(NUMSHA,MEM+36) HRITECNOUT,266) LUBEN

266 FORMAT(Tl,'LUBE ',1X,7A4l IF (GRSOIL.EQ.2.0l GO TO 349 HRITEINOUT,267) VS40, VSlOO

267 FORMAT(Tl,'GREASE ',1X,Fl4,3,1X,Fl4,3l GO TO 350

349 HRITEINOUT,268) VS40, VSlOO 268 FORMATITl,'OIL ',1X,Fl4.3,1X,Fl4,3l 350 CONTINUE

HRITEINOUT,269) TEMPLB 269 FORMATITl,'TEMPERATURE ',1X,Fl2.3)

315 CONTINUE

C CHECK IF INTERPOSITIONAL CONSTRAINTS HAVE BEEN SPECIFIED IF (MODFLGINUMSHA,132),NE.llll GO TO 355

C INTERPOSITIONAL CONSTRAINTS ARE VALID ONLY IN SELECTION MODE IF IRUNTYP.NE.2.0l GO TO 151

C CHECK IF NON-TIMKEN BEARINGS USED IF INOTHER.EQ.ll GO TO 152

C HRITE OUT INTERPOSITIONAL CONSTRAINTS HRITEINOUT,*) HRITE ( NOUT, 271 l

271 FORMAT(Tl,'INTERPOS ') MEMLOC=2 NINTCN=RINTERINUMSHA,1) DO 356 MM=l,NINTCN

NLA=RINTER(NUMSHA,MEMLOC) NPM=RINTERINUMSHA,MEMLOC+l)

SUBROUTINE USRPGM LISTING 198

NLB=RINTERtNUMSHA,MEMLOC+2l NOP=RINTER(NUMSHA,MEMLOC+3l EVALUE=RINTERINUMSHA,MEMLOC+4l MEMLOC=MEMLOC+5

C SKIP OVER HIDTH CONSTRAINTS FOR TYPE 2TS-IM BEARINGS IF(t(NLA,EQ,3l,OR,(NLB,EQ,3ll,AND.IN2TSIM,EQ,lll GO TO 356 NLA2=2*NLA NLAl=NLA2-l NLB2=2*NLB NLBl=NLB2-l HRITEINOUT,2721 CONLAB(NLAll,CONLABINLA2l,ALAB,PLORMIINPMl,

$ CONLABtNLBll,CONLAB(NLB2l,BLAB,OPERLBINOPl,EVALUE 272 FORMATIT1,8tA4l,1X,Fl5.3l 356 CONTINUE

355 CONTINUE C CHECK IF ANY PRINT OPTIONS HERE SPECIFIED

IF (MODFLGINUMSHA,133).NE.llll GO TO 360 C OVERRIDE DEFAULT PRINT OPTIONS

NPRl=RTEXTt NUMSHA, 1 l NPR2=RTEXTINUMSHA,2) NPR3=RTEXTINUMSHA,3) NPR4=RTEXTINUMSHA,4) NPR5=RTEXTINUMSHA,5) NPR6=RTEXTINUMSHA,6) NPR7=RTEXTINUMSHA,7l HRITEtNOUT,*l IF (INPRl.EQ.O.O).AND.tNPR2.EQ,O.O).AND.(NPR3.EQ.O.O).AND.

$ (NPR4.EQ.0.0).AND.(NPR5.EQ,O,O)) GO TO 361 NPT=8 IF tNPRl.NE.ll GO TO 701 DO 801 LR=l,6

801 TNOPRT(LR+NPTl=TCONST(LRl NPT=NPT+6

701 IF (NPR2.NE.ll GO TO 702 DO 802 LR=l,5

802 TNOPRTILR+NPTl=TDATATILR) NPT=NPT+5

702 IF (NPR3.NE.ll GO TO 703 DO 803 LR=l,6

803 TNOPRTCLR+NPTl=TGEARTtlR) NPT=NPT+6

703 IF INPR4.NE.ll GO TO 704 DO 804 LR=l,5

804 TNOPRT(LR+NPTl=THISTTtLRl NPT=NPT+5

704 IF INPR5.NE.ll GO TO 705 DO 805 LR=l,5

805 TNOPRTtLR+NPT)=TLOADTtLRl

705 HRITE(NOUT,275) TNOPRT 275 FORMAT(Tl,35All

361 CONTINUE IF ttNPR6.EQ.O.Ol.AND.tNPR7.EQ.0.0)) GO TO 360

NPT=6 IF tNPR6.NE,ll GO TO 706 DO 806 LR=l,9

806 TPRINT(LR+NPTJ=TOPERTtLRJ NPT=NPT+9

706 IF tNPR7.NE.lJ GO TO 707 DO 807 LR=l,11

807 TPRINTILR+NPTJ=TBRGDTtLRl

707 HRITE(NOUT,2811 TPRINT

SUBROUTINE USRPGM LISTING 199

281 . FORMAT(Tl,26Al)

360 IF (MODFLGINUMSHA,134).NE.lll) GO TO 365 HRITEINOUT,*)

C ADD UP TO 5 COMMENTS PER SHAFT TO THE DATA FILE DO 366 NUMCOM=l,5

IF (MODFLGINUMSHA,134+NUMCOM).NE.lll) GO TO 366 NSTART=NPLACEINUMCOM) DO 367 MM=l,18

COMTXT(MMl=RTEXT(NUMSHA,NSTART+MMl 367 CONTINUE

HRITEINOUT,285) COMTXT 285 FORMAT! Tl,' R ' , 18A4) 366 CONTINUE

365 CONTINUE

HRITE I NOUT ,*) HRITEINOUT,*l IF IRUNTYP.EQ.2.) GO TO 33

30 CONTINUE

33 CONTINUE

CALL MSGGEN( 'SELECT-A-NALYSIS FILE GENERATED)') GO TO 99

13 CALL MSGGENI 'RUN ABORTED: SHAFT NUMBERS MUST BE 1 TO 10)') GO TO 99

17 CALL MSGGENI 'RUN ABORTED: MAXIMUM OF 5 SHAFTS PER DATA FILE)' l GO TO 99

21 CALL MSGGENI 'RUN ABORTED: 1 TO 72 CAPITAL CHARS. PER TITLE LINE)') GO TO 99

23 CALL MSGGEN( 'RUN ABORTED: MAXIMUM OF 4 TITLE LINES PER FILE)') GO TO 99

25 CALL MSGGENI 'RUN ABORTED: AN UNSPECIFIED GEAR TYPE PRESENT)' l GO TO 99

34 CALL MSGGENI 'RUN ABORTED: A SPECIFIED SHAFT HAS NOT DEFINED)') GO TO 99

51 CALL MSGGEN( 'RUN ABORTED: LOAD COND. MISSING FOR GIVEN SHAFT)' l GO TO 99

52 CALL MSGGEN( 'RUN ABORTED: GEAR LOADING REQUIRES GEAR I.D. )') GO TO 99

53 CALL MSGGENI 'RUN ABORTED: LIFE IN DISTANCE OR TIME, NOT BOTH)' l GO TO 99

59 CALL MSGGENI 'RUN ABORTED: TIRE ROLLING RADIUS MUST NOT CHANGE)' l GO TO 99

61 CALL MSGGEN( 'RUN ABORTED: NEED GEARS TO TRANSMIT POHER/TORQUEl' l GO TO 99

64 CALL MSGGENI 'RUN ABORTED: INVALID ANGLE REF PT IN LOADS MODULE)') GO TO 99

78 CALL MSGGEN( 'RUN ABORTED: MAX OF 10 RADIAL LOADS PER LOAD CONDJ'l GO TO 99

89 CALL MSGGENI 'RUN ABORTED: MAX OF 10 THRUST LOADS PER LOAD CONDJ' l GO TO 99

98 CALL MSGGEN( 'THE UNIT NUMBER MUST BE BETHEEN 21 AND 30)' l GO TO 99

129 CALL MSGGENI 'RUN ABORTED: MAX OF 10 DYNAMIC LOADS PER SHAFT)' l GO TO 99

135 CALL MSGGENI 'RUN ABORTED: PERCENT TIME CANNOT EXCEED 100%)' l GO TO 99

144 CALL MSGGEN( 'RUN ABORTED: MOUNTING UNDEFINED FOR A GIVEN SHAFT)') GO TO 99

145 CALL MSGGENI 'RUN ABORTED: BRG UNDEFINED FOR A SPECIFIED SHAFTl'J GO TO 99

146 CALL MSGGEN( 'RUN ABORTED: MIXED MODE: ANALYSIS ONLY & SELECT.)' l GO TO 99

147 CALL MSGGEN( 'RUN ABORTED: BRG SPEC. DIFFERENT FROM SANDF SPEC. l' l

SUBROUTINE USRPGM LISTING 200

GO TO 99 151 CALL MSGGENI 'RUN ABORTED: INTERPOS. CONSTR. FOR SELECTION MODE)')

GO TO 99 152 CALL MSGGENI 'RUN ABORTED: INTERPOS. CONSTR NEEDS 2 TIMKEN BRGS)')

GO TO 99 301 CALL MSGGENI 'RUN ABORTED: A MOUNTING INCORRECTLY SPECIFIED)')

GO TO 99 303 CALL MSGGENI 'RUN ABORTED: FLOATALL MNT ALLOHS NO THRUST LOADS)' J

GO TO 99 308 CALL MSGGENI 'RUN ABORTED: A REQUIRED SUMMARY LIST UNDEFINED)')

GO TO 99 313 CALL MSGGENI 'RUN ABORTED: A LIFE BASED ON AN UNSPEC. LOAD CONDl')

GO TO 99 99 RETURN

END

C********************************************************************** SUBROUTINE GETGRSIOLD,NEH)

C********************************************************************** C C THIS SUBROUTINE IS USED TO TAKE THE ACTUAL ARRAY AND PUT IT IN C THE HORKING GEAR ARRAY IHHILE IN THE SANDF MODULE). C

REAL*4 OLDl20,10J, NEHl20,10)

DO 10 I=l,20 DO 10 J=l,10

NEHII,Jl=OLDII,JJ 10 CONTINUE

RETURN END

C********************************************************************** SUBROUTINE GETHST(OLD,NEHl

C********************************************************************** C C THIS SUBROUTINE IS USED TO TAKE THE ACTUAL ARRAY AND PUT IT IN C THE HORKING HISTOGRAM ARRAY IHHILE IN THE SANDF MODULE). C

REAL*4 OLDIS0,26), NEHl50,26l

DO 10 I=l,50 DO 10 J=l,26

NEHII,Jl=OLDII,J) 10 CONTINUE

RETURN END

C********************************************************************** SUBROUTINE GETLDSIOLD,NEHl

C********************************************************************** C C THIS SUBROUTINE IS USED TO TAKE THE ACTUAL ARRAY AND PUT IT IN C THE HORKING LOADS ARRAY IHHILE IN THE SANDF MODULE!. C

REAL*4 OLDl50,230l, NEH150,230l

DO 10 I=l,50 DO 10 J=l,230

NEHII,Jl=OLDII,Jl 10 CONTINUE

RETURN END

SUBROUTINE USRPGM LISTING 201

C********************************************************************** SUBROUTINE VANG(Vl,VZ,Al

C********************~************************************************* C C THIS SUBROUTINE RETURNS THE ANGLE BETHEEN THO VECTORS (DEGREES) C

REAL*4 Vl(3l, V2(3l, A, SP, MAGl, MAG2, COSTHE

SP=Vl(ll*V2(ll+Vl(2l*V2(2l+Vl(3l*V2(3) MAGl=(Vl(ll**Z+Vl12l**Z+Vl(3l**Zl**·5 MAG2=(V2(ll**2+V212l**Z+V2(3l**Zl**·5 COSTHE=SP/(MAGl*MAG2) A=ACOS(COSTHE) A=A*lS0.0/3.14159265 RETURN END

C************************************~-iHOHf***************************** SUBROUTINE VPROD(Vl,V2,V3)

C*****************************-************************************ C C THIS SUBROUTINE COMPUTES THE CROSS OR VECTOR PRODUCT C

REAL*4 Vll3l, V213l, V313)

V31ll=Vll2l*V2(3l-Vl(3l*V212l V312l=Vll3l*V211)-Vllll*V2(3) V3(3l=Vl(ll*V2(2l-Vll2l*V21ll RETURN END

C**********************************--******************************** SUBROUTINE VUNITIV,Ul

C********************************************************************** C C THIS SUBROUTINE COMPUTES THE UNIT VECTOR OF A GIVEN VECTOR C

REAL*4 VI 3 l, UI 3 l, MAG

MAG=(V(ll**Z+V(2)**2+V(3l**Zl**·5 U(ll=V(ll/MAG Ul2l=V(2)/MAG U(3l=V(3)/MAG RETURN END

C********************************************************************** SUBROUTINE ADDSUBIV1,V2,V3,NCASEJ

C********************************************************************** C C THIS SUBROUTINE EITHER ADDS OR SUBTRACTS VECTORS C

REAL*4 INTEGER

Vll3l, V213l, V313) NCASE

IF INCASE.EQ.2) GO TO 77 V31ll=Vl(ll+V21ll V3(2J=Vl(2l+V2(2l V3(3l=Vl(3l+V2(3J GO TO 99

77 CONTINUE V3(ll=Vllll-V2(ll V312l=Vl(2l-V2(2l

SUBROUTINE USRPGM LISTING 202

V313)=Vll3)-V213) 99 RETURN

END

C**********************************************-1HHE-1HHE****************** SUBROUTINE SPRODIV1,V2,S)

C****************************************************-1HHE*************** C C THIS SUBROUTINE COMPUTES THE SCALAR PRODUCT OF THO VECTORS C

REAL~ Vll3), V2(3), S

S=Vlll)*V21l)+Vl(2)*V2(2)+Vll3)*V213) RETURN END

C********************************************************************* SUBROUTINE SHELPSIRDATAJ

C********************************************************************* C C C C C

THIS SUBROUTINE IS MEANT AS A SAFETY VALVE IN CASE THE USER TRIES TO EXECUTE A HELP MODULE. IN THAT CASE, A MESSAGE ASSURING THE USER THAT NOTHING HAS CHANGED HILL BE DISPLAYED.

REAL*4 RDATAl500)

CALL MSGGENI 'STATUS QUO MAINTAINED)') 99 RETURN

END

SUBROUTl;\E USRPGl\1 LISTING 203

Appendix C SUBROUTINE RESOLV LISTING

CiHHfiHHHH{XXXXXXXXKiHEifffXXXXXXXXXKM*~iHE*~*ifiE**ifiE****ifiE*********ifiE**

C * C * C * C A CADAH INTERFACE FOR THE COMPUTER-AIDED * C SELECTION OF TIMKEN TAPERED ROLLER BEARINGS * C * C AUTHOR: DINO CIABATTONI * C * C ADVISOR: DR. ARVID MYKLEBUST * C * C VIRGINIA POLYTECHNIC INSTITUTE AND STATE UNIVERSITY * C BLACKSBURG, VIRGINIA - 24061 * C * C * C * C*XXXXXXXKlHHHHf~*~~XXXXMMMMlHf~*~*iHEiHH<MMMMMMMXM**-*** C C C C C C C C C C

This is the user-modified RESOLV FORTRAN program that processes geometry selected during the operation of a CADPARMC macro program. This routine returns geometry information to CADET which passes it back to the user-written FORTRAN program lUSRPGM). Only the modified portions of RESOLV are shown.

THIS IS VERSION 20.l OF RESOLV

SUBROUTINE RESOLV

COMMON /CDTCOM/ LETGO,NOREAD,CDTSHO,ELSHOH,IPRIN,MODSIZ,MCDLFT, $ FILDATl2), MDLTXTll7), IHANTt9)

c The following common block is used in the user-written program.

COMMON /SIMBA/ ETFLAG, CCl2), DDl2), RRR

INTEGER CDTSHO, ELSHOH, ETFLAG

SUBROUTINE RESOLV LISTING 204

C**itit********************************************ifif**********~********* ENTRY CDTPT IC,LTJ

C*******ifif*********************************************************-** C C This CADAM routine processes all 2-D points. C

ETFLAG=l

CCtl J=CC lJ CC(2)=CC2J

C*****-*************itit********-******************-****************** ENTRY CDTLN IC,D,LTJ

C******************************-************-*-********************* C C This CADAM routine processes all 2-D lines. C

ETFLAG=2

CC(lJ=CCl) CCl2J=Cl2J DD(l)=Dlll DDl2J=D12)

C***********ifif*********ifif*-*************************-*****-******** ENTRY CDTCIR (C,RAD,LT)

C**********itit*****itit*******************-***************************** C C This CADAM routine processes all 2-D circles. C

END

ETFLAG=3 CC(ll=C(l) CCl2J=Cl2J

RRR=RAD

SUBROUTINE RESOLV LISTING 205

Appendix D

EXECUTION FILES

The required steps to generate the CADAM load module MYCADAM are presented below.

Further information may be obtained from the CADAM manuals [15-18].

1) HRITE CADPARMC TABLE

2) ASSEMBLE CADPARMC

3) LINKEDIT CADPARMC

4) HRITE CADPARMl TABLE

5) ASSEMBLE CADPARMl

6) LINKEDIT CADPARMl

7) HRITE USER PROGRAM I FORTRAN)

8) COMPILE USER PROGRAM

9) MODIFY RESOLV PROGRAM I FORTRAN)

10) COMPILE RESOLV PROGRAM

11) LINKEDIT USER AND RESOLV PROGRAMS TO FORM LOAD MODULE

12) CREATE /HELP/ TABLES AS DETAIL PAGES

13) COMBINE HELP TABLES IN LOAD MODULE

14) RUN LOAD MODULE

EXECUTION FILES 206

Appendix E

SAN PREPROCESSOR EXAMPLE PROBLEM

To work through the sample problem, the generic model "EXAMPLE,SHFT" must first be re-

trieved from the CADAM data base. The millimeter-unit drawing is shown in Figure 38. En-

largements of the left end and primary views are shown in Figures 39 and 40, respectively.

Proble11i State1ne11t

Two Timken TS tapered roller bearings are to be directly mounted on the lever-type block brake

with their cone back faces up against the drum (125 mm in from either side). The entire shaft length

is 400 mm and the shaft diameter at both bearing locations is 28 mm. A spur gear is mounted 50

mm from the left end of the shaft. It has a pitch diameter of 120 mm and a pressure angle of 20

degrees. A helical gear is also attached to the shaft (at a distance of 50mm from the shaft right end).

It has a pitch diameter of 200 mm, a pressure angle of 20 degrees, and a right hand helix angle of

27 degrees.

SAN PREPROCESSOR EXAMPLE PROBLEM 207

Figure 38. CADAM Model nEXAMPLE,SHFTn

SAN PREPROCESSOR EXAMPLE PROBLEM 208

.o

I • .J

V

N

Figure 39. Left End View Of"EXAMPLE,SIIFT"

SAN PREPROCESSOR EXAMPLE PROBLEM 209

B

u •

p K T . .s L a---M

Figure 40. Primary View Of"EXAMPLE,SHFT''

SAN PREPROCESSOR EXAMPLE PROBLEM 210

There are two load conditions, each occurring for 50% of the load cycle. In the first load condition,

the shaft rotates at 500 rpm in the clockwise direction (as viewed from the left end) and transmits

a torque of 555 NM. The spur gear drives two gears, one to the left of the shaft and the other to

the right. The left mesh point has a power factor of 40% and the right mesh point has one of 50%.

One hundred percent of the power enters the top of the shaft through the helical gear. A 2100

newton load is applied at point A (point C in the left end view). This load is inclined at 45 degrees

in both views as shown in the figures. An axial thrust load is applied at the right end of the shaft

(point Q). It has a magnitude of 1000 newtons. Finally, a 1100 NM couple is applied to the shaft.

The right hand direction vector goes from point E to point V.

In the second load condition, the shaft turns at 700 rpm in the opposite direction and transmits a

torque of 333 NM. The helical gear maintains a power factor of 100%, but the spur gear is dis-

engaged from its two mating gears. The brake is applied to help compensate for the increased shaft

speed. This results in a linearly distributed load along a 100 mm segment of the drum mid-section.

Each end of this load segment has a magnitude of 10 newtons. The couple remains the same as

before, but the 2100 newton load drops to 1700 newtons and the axial thrust load becomes 600

newtons. Both load conditions also have a dynamic load resulting from a 3 kg mass located 10

mm from the right end of the shaft with an eccentricity of 25 mm.

Both TS bearings are to be selected from the Timken data base and must be identical for assembly

reasons. The bore diameters may range from 28 mm to 33 mm. Likewise, the outer diameters

may range from 62 mm to 77 mm. Housing constraints require the overall bearing widths to be

between 15 and 25 mm. Both bearings require a weighted average life of 1000 hours. This life is

lubricant-adjusted. The viscosity of the lubricating oil (ISOVG220) is 220 cSt at 40 degrees Celsius

and 18.11 cSt at 100 degrees Celsius. The bearing operating temperatures are projected to be 55

degrees Celsius. Finally, the top 5 bearings (based on life) are to be reviewed.

SAN PREPROCESSOR EXAMPLE PROBLEM 211

Program Instructions

Step-by-step instructions to complete the problem are now given. It is assumed that the

MYCADAM load module containing the SAN preprocessor is already resident in the data base.

If it is not, the execution sequence provided in Appendix D must be followed first.

Depress the MACRO GM function key to start the example problem.

To access the metric version macro programs, select the /CADPARMl/ menu.

The CADPARMl table of Figure 41 should now be displayed.

These interactive macro programs constitute the main menu (MENU 1).

Only from this level, may the other CADAM function keys be accessed.

However, the HINDOH function key may be selected at any time.

Now select the HELP module from the screen.

The CADAM drawing should reappear.

Select the /HELP/ menu in response to the program prompt.

The main /HELP/ table should now appear on the screen.

Advance through the /HELP/ tables by selecting /NEXT PAGE/.

When through, select /MENU 1/ to return to the main menu.

Now select the RESET module to clear the module flags.

The menu /START NEH DATA FILE/ABORT RESET/ will appear.

Select the first option.

The batch message will read "RESET COMPLETED."

Select the /MENU 1/ menu to return to the CADPARMl table.

Now select the SHAFT macro program.

The program message will request a shaft number between 1 and 10.

Key in a 1.

The menu should read /DEFINE PV ZERO POINT/USE LINE MID-PT/.

The first menu will be pre-selected.

Therefore, the program message requests a PV point.

Select the second menu to override the default.

The message now requests a PV line.

SAN PREPROCESSOR EXA;'VIPLE PROBLEM 212

MACRO VIEW PV SCL I .000 WOO I .000, .0 /SEL MACRO PROGRAM/ SEL MENU /KEY LIBRARY NAME/

RESET

SHAFT

GEARS

LOADS

DYNAM

MOUNT

BRGCN

INTER

TEXT

SANDF HELP

Figure 41. CADPAR'.\11 Table of Macro Programs

SAN PREPROCESSOR EXAMPLE PROBLEM 213

Select the line at point P (HINDOH in if necessary),

The message now requests the PV direction point.

Accept the default menu by selecting point Q,

The menu /SELECT LV ZERO POINT/USE CIRCLE CENTER/ will appear.

Override the default menu by selecting /USE CIRCLE CENTER/.

HINDOH in on Left End View and select the bore circle.

Select point C as the LV angle reference point.

Indicate on the screen where the shaft name should appear.

Either key in a shaft name or select the default name.

For this example, key in EXAMPLE SHAFT.

The batch message SHAFT MODULE UPDATED will now appear.

Also, the shaft name will appear at the defined location,

The HINDOH size must be set to one to correctly view the note.

Select the /MENU 1/ menu and the shaft note will be erased.

Now select the GEARS module from the CADPARMl table.

Accept the default to add a gear to shaft l by keying in al.

Now key in al for gear number l.

Select point Gas the gear center point.

Now select /GEAR ON SHAFT/ from the menu.

The menu /SPUR/HELICAL/HERRINGBONE/OTHER/ will now appear.

The /HELP/ menu may be selected to view the allowable gear types.

Select /SPUR/.

Key in a pitch diameter of 120 in response to the prompt.

Likewise, key in 20 for the pressure angle.

Define a point for the gear notes and select /EXECUTE/.

The batch message GEARS MODULE UPDATED will verify the operation.

The following notes will appear at the given location IHINDOH size 1),

GEAR TYPE: SPUR

SHAFT NUMBER: 1

GEAR NUMBER: l

GEAR ON SHAFT

GEAR X LOCATION: 50.000

GEARY LOCATION: .ODO

PITCH DIAMETER: 120.000

SAN PREPROCESSOR EXAMPLE PROBLEM 214

PRESSURE ANGLE - DEG: 20.000

Review the information and check for errors.

Select the /RESTART/ menu to erase the note.

Repeat the procedure for gear 2, the helical gear.

The pitch diameter is 200 mm.

The pressure and helix angles are 20 and 27 degrees, respectively.

Make sure that the /RIGHT HAND/ menu is also selected.

View the summary notes and return to the main menu via /MENU 1/.

Now select the LOADS macro program.

Accept the default to add a load cond. to shaft 1 by keying in a 1.

Key in a 1 for the load condition prompt.

Now key in 500 for the shaft speed.

Select the /LV CH ROTATION/ menu.

Now select the /BEARING LIFE IN HOURS/ menu.

Key in 50 for the percent time prompt.

Now select the single menu choice /GEARS TRANSMITTING POHER/.

Select /INPUT TORQUE/ and key in 555 to answer the prompt.

Define the helical gear loading first by keying in a 2.

Select the /GEAR DRIVEN/ menu.

Key in a power factor of 1.

Select point Zin response to the angle prompt.

Now key in a 1 for the spur gear.

Select the /GEAR IS A DRIVER/ menu.

Key in a power factor of 0.4

Select point X as the angle point.

Now key in another 1 for the spur gear.

Select the /GEAR IS A DRIVER/ menu.

Key in a power factor of 0.5

Select point Y as the angle point.

To get out of the loop, the /END/ menu must be selected.

Select /END/ to bypass the linear distributed loads.

Now, select /END/ to bypass the parabolic distributed loads.

Select another /END/ to bypass the resultant loads.

Select the menu /COUPLE OR MOMENT ... /.

SAN PREPROCESSOR EXAMPLE PROBLEM 215

Now select the menu /COUPLE/,

Select the /APPLIED TO SHAFT/ menu next.

Select point E and key in a moment arm of 100,

Now select point V for the right hand rule direction point.

Key in a magnitude of 1100,

Select /END/ to get out of the moment/couple loop.

Select the /POINT LOADS/ menu next.

Now select the /COMBINATION/ menu.

The /APPLIED TO SHAFT/ menu should then be picked.

Select point A and then point 8.

Select point C and then point D,

Now key in a magnitude of 2100.

Select /POINT LOADS/ again for the thrust load.

Select /PURE THRUST/ and then /APPLIED TO SHAFT/.

Select point Q and then point M,

Select point E twice.

Now key in a magnitude of 1000.

To escape the loop, select the /END/ menu.

Define a note location and select /EXECUTE/,

The batch message LOADS MODULE UPDATED will now appear.

After viewing the summary notes, select the /RESTART/ menu,

Now repeat the procedure for the 2nd load condition.

All of the necessary information is in the problem statement,

Remember that the spur gear is not used here.

Power is dissipated by the block brake instead.

To enter the brake load, select the /LINEAR .•. LOADS ••• / menu.

Select the /LOADS TOHARD SHAFT/ menu,

Select point Rand key in a 10.

Select point Sand key in another 10.

Key in 180 and select /END/ to get out of the loop.

Hhen through entering all of the subsequent data, select /MENU 1/.

To add the dynamic load, select DYNAM.

Accept the default to add a dynamic load to shaft l by keying in a 1.

Enter the mass as 3,

SAN PREPROCESSOR EXAMPLE PROBLEM 216

Select point U and key in a 25.

Now select /END/ to escape the loop.

Define a note location and select /EXECUTE/,

The batch message DYNAH MODULE UPDATED will now appear.

Select /MENU 1/ to delete the summary notes and return,

Now select the MOUNT module.

Key in al for the shaft number.

Select /SINGLE ROH BEARINGS/.

Select the default application factor menu.

Now select the /DIRECT MOUNTING/ menu.

Select the menu /LEFT BRG TYPE TS/,

Select the menu /RIGHT BRG TYPE TS/.

Now select /CONEBF/ for the left brg position indicator.

Select point K.

Now select /CONEBF/ for the right brg position indicator.

Select the drum diameter line at point L next.

Key left bearing name as LEFT TIMKEN BEARING.

Key right bearing name as RIGHT TIMKEN BEARING.

Select the menu /LEFT BEARING LUBE AND OPER TEMP BOTH KNOWN/.

Key in ISOVG220 for the lube tradename.

Select the /OIL/ menu.

Enter the 40 degree viscosity as 220.

Enter the 100 degree viscosity as 18.11

Enter the operating temperature as 55.

Select the menu /RIGHT BEARING LUBE AND TEMP BOTH KNOWN/.

Select /END/ to maintain the same lube information at bearing B,

Pick the 2nd menu that follows to ignore ISO bearings.

Define a summary note location and select /EXECUTE/.

The batch message MOUNT MODULE UPDATED will now appear.

Select /MENU 1/ to return to the main menu.

Now select the BRGCN module.

Key in a shaft number of 1.

Select the menu /LEFT BEARING: A/ to define the first bearing,

The menu /BOTH BRGS: ANALYSIS ONLY/A ORB SELECTED/ will appear.

SAN PREPROCESSOR EXAMPLE PROBLEM 217

Select the second menu because the bearings need to be selected.

Next select the menu /TIMKEN BEARING/.

The menu /SPECIFY CONE+CUP/CONE/CUP/SERIES/DIFF CONST/ appears.

Select the /HELP/ menu to better understand the menu prompts.

Select the /RETURN/ menu.

Now select the /DIFF CNST/ menu.

Select the /DEFINE BORE CONSTRAINT/ menu.

HINDOH in on left end view.

Select the smallest circle depicting the 28 mm shaft diameter.

Key in a 33.

Select the /DEFINE OUTER DIAMETER CONSTRAINT/ menu.

Key in a 62.

Then key in a 77.

Select /END/ to bypass the C(90) constraint.

Select /END/ to bypass the K-factor constraint.

Select /END/ to bypass the individual load condition lives.

Select the /DEFINE MIN HEIGHTED LIFE CONSTRAINT/ menu.

Answer the prompt by keying in a life (in hours) of 1000.

Now select the /DEFINE HIDTH CONSTRAINT/ menu.

Enter a 15 for the minimum width.

Enter a 25 for the maximum width.

Enter a 5 in response for the summary list pair request.

Select the /RANK BY LIFE/ menu.

Key in a H for the weighted average life.

Define the location for the bearing notes and select /EXECUTE/.

The summary notes and the message BRGCN MODULE UPDATED will appear.

Select /RESTART/ to enter the information for bearing B.

Enter a 1 for the shaft number.

Next select the menu /RIGHT BEARING: B/,

Now select the menu /A ORB SELECTED/.

Then select the /TIMKEN BEARING/ menu.

Now select the menu /COPY BEARINGS USED AT A/.

Coding limitations require the summary information to be redefined.

This need actually provides additional flexibility 1n data entry.

SAN PREPROCESSOR EXAMPLE PROBLEM 218

Enter the same sequence as before to end the data specification.

The message BRGCN MODULE UPDATED will now appear with the notes.

Select /MENU 1/ to return to the main menu.

Now select the INTER module.

Select the menu /REDEF INTERPOSITIONAL CONSTRS,/.

Enter the shaft number of 1,

Select the menu /A ORB SELECTED/.

Select the menu /BOTH TIMKEN BRGS/.

The menu /BRG A: BORE/OD/HIDTH/CONE/CUP/SERIES/ appears.

Select the /HELP/ menu if extra information is needed.

Select the menu /BRG A: BORE/.

Select the 2nd menu of/+/ - /.

Select the /BRG B: BORE/ menu next.

Select the 3rd menu of /.LT./.LE,/.EQ,/.GE,/.GT./.

Key in a 0.0

Select the menu /DEFINE NEXT INTERPOS CONSTRAINT, MAX OF 5/.

Repeat the procedure for the OD and HIDTH constraints.

This will guarantee selection of identical bearings at both positions.

After keying in the O for the HIDTH constraint, select the /END/ menu.

Define the location for the summary notes and select /EXECUTE/.

The message INTER MODULE UPDATED will be displayed with the notes.

Select the /MENU 1/ menu.

Select the TEXT macro program now.

Enter the shaft number of 1,

The menu /PROCESS COMMENTS/DEFINE PRINT OPTIONS/BOTH/ appears.

Select /BOTH/.

Select /ADD OR REDO A COMMENT/,

Enter the comment number of 1.

Key in LUBRICANT-ADJUSTED HEIGHTED LIFE OF 1000 HOURS USED

Select /ADD OR REDO A COMMENT/,

Enter a comment number of 2.

Key in BOTH BEARINGS MUST BE THE SAHE FOR ASSEMBLY PURPOSES

Enter a comment number of 3.

Key in DYNAMIC LOADS NOT CURRENTLY AVAILABLE

SAN PREPROCESSOR EXAMPLE PROBLE'.\-1 219

Select the /END/ menu.

Select the /END/ menu again to bypass deleting comments.

The menu /SUPPRESS PRINTING CONSTRAINT SECTION/ will appear.

Accept the default option to print this section by selecting /END/.

Likewise, select /END/ 5 more times to accept the default options.

Select the last menu option /PRINT OUT BEARING TABLES/.

Define the note location and select /EXECUTE/.

The summary notes and message TEXT MODULE UPDATED will appear.

Select /MENU 1/ to return to the main menu.

The SELECT-A-NALYSIS (SANJ Data File may now be generated.

Select the SANDF module.

Key in the data file.unit number of 21.

The menu /BRG ANALYSIS ONLY/BRG SELECTION TOO/ appears.

Select the 2nd option provided.

Key in the shaft number of 1.

Key in the following 3-line title:

VIRGINIA POLYTECHNIC INSTITUTE AND STATE UNIVERSITY

MECHANICAL ENGINEERING CAD/CAM LABORATORY

EXAMPLE SAN PREPROCESSOR PROBLEM - 5/20/87

Now select the /END/ menu to execute the program.

The message line should read SELECT-A-NALYSIS FILE GENERATED.

If not, corrections in the data base are required.

Follow the instructions on the message line to correct any problems.

This completes the program instructions for the sample problem. The generated SAN data file is

provided in Appendix F. After exiting the SAN preprocessor, the SAN data file should be sent to

the Timken Stand Alone VAX for processing. If SELECT-A-NALYSIS requires further modifi-

cations to the data, the SAN preprocessor may be re-entered to make the alterations. In this latter

case, the RESET module should not be selected or else all of the previously defined information

would be lost. If no problems are detected, the desired information is provided. The output file

for the sample problem is supplied in Appendix G.

SAN PREPROCESSOR EXAMPLE PROBLEM 220

Appendix F

EXAMPLE PROBLEM SAN DATA FILE

The data file generated by the SAN preprocessor for the example problem is shown below. Com-

plete instructions to generate this input file are presented in Appendix E. The output file from the

Timken Stand Alone VAX is provided in Appendix G.

TITLE VIRGINIA POLYTECHNIC INSTITUTE AND STATE UNIVERSITY

TITLE MECHANICAL ENGINEERING CAD/CAM LABORATORY

TITLE EXAMPLE SAN PREPROCESSOR PROBLEM - 5/20/87

UNITS METRIC

SHAFT l EXAMPLE SHAFT

GEARS

l l 50.000 120.000

2 2 350.000 200.000

20.000

20.000

EXAMPLE PROBLEM SAN DAT A FILE

27.000 l

221

HISTOGRAM POHER

1 29.060

2 -1.000

1 0.400

1 0.500

2 24.410

2 -1. 000

LOADS

1 500.000

1050.001

5500.000

-5500.000

1484.925

-1000.000

2 -700.000

1000.000

850.000

5500.000

-5500.000

1202.082

-600.000

R DYNAMIC

R

R

R

R

1

2

DIRECT

500.000

3.000

-700.000

3.000

SUMMARY 5 BYLIFE H

500.000

0.0

-90.000

90.000

-700.000

o.o

50.000 1

o.o -45.000

135.000

0.0

o.o 50.000 2

180.000

0.0

-45.000

135.000

o.o 0.0

50.000

390.000

50.000

390.000

EXAMPLE PROBLEM SAN DATA FILE

50.000 3

50.000 1

4

10.000

100.000

100.000

14.000

o.o 4

200.000

10.000

100.000

100.000

14.000

o.o

1

25.000 205.612

1

25.000 403.000

222

POSITION CNBF

TYPE TS

125.000 A LEFT TIMKEN BEARING

BORE

OD

HIDTH

HTDLIFE

28.000 33.000

62.000 77.000

15.000 25.000

1000.000

LUBE ISOVG220

OIL

TEMPERATURE

220.000

55.000

18.110

POSITION CNBF

TYPE TS

275.000 8 RIGHT TIMKEN BEARING

COPY IA)

INTERPOS

BORE IA) - BORE (Bl = OD IA) -

HIDTH IA) -

PRINT BEARINGDATA

OD (8) =

HIDTH 18) =

o.o o.o 0.0

R LUBRICANT-ADJUSTED WEIGHTED LIFE OF 1000 HOURS USED

R BOTH BEARINGS MUST BE THE SAME FOR ASSEMBLY PURPOSES

R DYNAMIC LOADS NOT CURRENTLY AVAILABLE

EXAMPLE PROBLE:\1 SAN DATA FILE 223

Appendix G

EXAMPLE PROBLEM SAN OUTPUT FILE

The output file from the Timken Stand Alone VAX is shown below. SELECT-A-NALYSIS

produced this file using the input data file of Appendix F. The Timken company's

SELECT-A-NALYSIS computer program is available on a time-sharing network. For further in-

formation, the Timken Company of Canton, Ohio should be contacted.

THE TIMKEN COMPANY

--------------------------------------------------------

"SELECT-A-NAL YSIS/BSA" Vl. O49u

INTERNATIONAL BEARING SELECTION AND ANALYSIS PROGRAM

EXAMPLE PROBLEM SAN Ol.iTPUT FILE 224

VIRGINIA POLYTECHNIC INSTITUTE AND STATE UNIVERSITY

MECHANICAL ENGINEERING CAD/CAM LABORATORY

EXAMPLE SAN PREPROCESSOR PROBLEM - 5/20/87

UNITS: METRIC MAY 29, 87 12:32:32

The accuracy of this bearing application review is dependent upon the

validity and completeness of the data supplied to "SELECT-A-NALYSIS"'.

Actual bearing performance is also affected by

the control of The Tin.ken Company, which

this program. Therefore, the feasibility of

should be validated by you, a customer of

are

many

beyond

factors beyond

the scope of

all bearing

The Timken

l TITLE VIRGINIA POLYTECHNIC INSTITUTE AND STATE UNIVERSITY

Z TITLE MECHANICAL ENGINEERING CAD/CAM LABORATORY

3 TITLE EXAMPLE SAN PREPROCESSOR PROBLEM - 5/20/87

4

5 UNITS METRIC

6

7

8

9 SHAFT l EXAMPLE SHAFT

10

11 GEARS

EXAMPLE PROBLEM SAN OUTPUT FILE

applications

Company.

225

12 1 1 S0.000 120.000 20.000

13 2 2 350.000 200.000 20.000 27.000 1

14

lS HISTOGRAM POl'lER

16 1 29.060 S00,000 S0.000 3

17 2 -1.000 0.0

18 1 0,400 -90.000

19 1 o.soo 90.000

20 2 24.410 -700,000 S0,000 1

21 2 -1. 000 0.000

22

23 LOADS

24 1 soo.ooo S0,000 1 4

25 1050.001 0.0 10.000

26 5500.000 -45.000 100.000

27 -5500.000 135.000 100.000

28 1484.925 0.0 14.000

29 -1000.000 0.0 0.0

30 2 -700.000 50.000 2 4

31 1000.000 180,000 200.000

32 850.000 0.0 10.000

33 5500,000 -45.000 100.000

34 -5500.000 135.000 100.000

35 1202.082 o.o 14.000

36 -600.000 0.0 0.0

37

38 R DYNAMIC

39 R 1 500.000 50.000 1

40 R 3,000 390.000 25,000 205.612

41 R 2 -700.000 SO.ODO l

42 R 3.000 390.000 25.000 403.000

43

44 DIRECT

45

EXAMPLE PROBLEM SAN OUTPUT FILE 226

46 SUMMARY 5 BYLIFE H

47

48 POSITION CNBF

49 TYPE TS

125.000 A LEFT TIMKEN BEARING

50 BORE

51 OD

52 HIDTH

53 HTDLIFE

28.000

62.000

15.000

1000.000

54 LUBE ISOVG220

55 OIL

56 TEMPERATURE

57

220.000

55.000

33.000

77.000

25,000

18.110

58 POSITION CNBF

59 TYPE TS

275.000 B RIGHT TIMKEN BEARING

60 COPY IA)

61

62 INTERPOS

63 BORE IA) - BORE IB) =

64 OD I A ) - OD I B ) = 65 HIDTH IA) - HIDTH (BJ =

66

67 PRINT BEARINGDATA

68

0.0

o.o o.o

69 R LUBRICANT-ADJUSTED HEIGHTED LIFE OF 1000 HOURS USED

70 R BOTH BEARINGS MUST BE THE SAME FOR ASSEMBLY PURPOSES

71 R DYNAMIC LOADS NOT CURRENTLY AVAILABLE

GEAR DATA <GEARS>

--------------------------------

GEAR GEAR

NO. TYPE

SHAFT GEAR PITCH

NO, LOCATION DIAM.

PRESS HELIX H A PITCH

ANGLE ANGLE N P ANGLE

MM MM DEG DEG D X DEG

EXAMPLE PROBLEM SAN OUTPUT FILE 227

l +SPUR l 50.000 120.000 20.00

2 +HELICAL l 350.000 200.000 20.00 27.00 R

NOTES: ALL LOCATIONS ARE REFERENCED FROM ZERO, POSITIVE I+) TO THE RIGHT(-->).

GEAR LOADS <HIST>

----------------------------------

POHER

KHATT

RPM :--------GEAR INFORMATION-----------::----FORCES ON GEARS-----:

+CH NO. TYPE

-CCH

LOC

MM

POHER MESH TANGENT SEPARATE THRUST

COND NO. l

29.06

COND NO. 2

% TIME = 50.0000

500. 2 +HELICAL

l +SPUR

l +SPUR

% TIME = 50.0000

24.41 -700. 2 +HELICAL

FACT ANGLE

350.00 -1.00 0

50.00 0.40 -90

50.00 0.50 90

350.00 -1.00 0

N

5547

-3698

-4622

-3328

N

2266

1346

1682

1359

N

-2826

0

0

1695

NOTES: DIRECTION OF SHAFT ROTATION AS VIEWED FROM THE LEFT END OF SHAFT IS

POSITIVE(+) IF CLOCKHISEICHJ & NEGATIVE(-) IF COUNTERCLOCKHISEICCHJ.

NOTES: ALL LOCATIONS ARE REFERENCED FROM ZERO, POSITIVE(+) TO THE RIGHT(-->).

EXAMPLE PROBLEM SAN OUTPUT FILE 228

NOTES: MESH ANGLES ARE VIEHED FROM THE LEFT END OF THE SHAFT & ARE REFERENCED

FROM TOP DEAD CENTER, POSITIVE(+) IN CLOCKHISEICH) DIRECTION.

NOTES: POHER FACTOR POSITIVE(+) INDICATES GEAR IS DRIVER, AND POHER FACTOR

NEGATIVE!-) INDICATES GEAR IS DRIVEN.

NOTES: FOR EXPLANATION OF SIGN NOTATION FOR GEAR FORCES, SEE KEYHORD

GEARS IN INSTRUCTION MANUAL.

EXTERNAL LOADS AND MOMENTS <LOADS>

=================================

RPM :----EXTERNAL RADIAL LOADS----::----EXTERNAL THRUST & MOMENTS----:

+CH FORCE ANGLE LOCATION THRUST ANGLE RADIUS

-CCH N DEG MM N DEG MM

COND NO. l

500.

COND NO. 2

-700.

% TIME = 50.0000

1050. o. 10.00

% TIME = 50.0000

1000.

850.

180.

o. 200.00

10.00

EXAMPLE PROBLEM SAN OUTPUT FILE

5500.

-5500.

1485.

-1000.

5500.

-5500.

1202.

-600.

-45.

135.

o. o.

-45.

135.

o. o.

100.00

100.00

14.00

0.00

100.00

100.00

14.00

o.oo

229

NOTES: DIRECTION OF SHAFT ROTATION IS AS VIEHED FROM LEFT END OF SHAFT AND IS

POSITIVE(+) IF CLOCKHISEICH) & NEGATIVE(-) IF COUNTERCLOCKHISEICCH).

NOTES: ALL LOCATIONS ARE REFERENCED FROM ZERO, POSITIVE(+) TO THE RIGHT!-->).

NOTES: EXT. THRUST LOADS ARE POSITIVE!+) IF APPLIED TO THE RIGHT!-->) THRU

THE SHAFT OR TO THE LEFTI<--) THRU THE HOUSING, AND ARE NEGATIVE(-)

IF APPLIED TO THE LEFT(<--) THRU THE SHAFT OR TO THE RIGHT!-->)

THRU THE HOUSING.

NOTES: ANGLES ARE VIEHED FROM LEFT END OF SHAFT AND ARE REFERENCED FROM

TOP DEAD CENTER AND ARE POSITIVE!+) IN A CLOCKHISECCH) DIRECTION.

BEARING SELECTION CONSTRAINTS <CONST>

=====================================

SHAFT NO. l SHAFT NAME: EXAMPLE SHAFT

POSITION (A): LEFT TIMKEN BEARING

MINIMUM REQUIRED WEIGHTED LIFE

ITEM·

CONSTRAINED MIN.

EXAMPLE PROBLEM SAN OUTPUT FILE

MOUNTING: DIRECT

LOCATION: 125.000 MM

1000. HOURS

MAX.

230

BORE: 28,001

OD: 61.999

HIDTH: 15.001

POSITION CB): RIGHT TIMKEN BEARING

MINIMUM REQUIRED HEIGHTED LIFE

ITEM

CONSTRAINED

BORE:

OD:

HIDTH:

MIN.

28.001

61.999

15.001

33.000 MM

77.000 MM

25,001 MM

LOCATION: 275.000 MM

1000. HOURS

MAX.

33.000 MM

77.000 MM

25.001 MM

INTERPOSITIONAL BEARING CONSTRAINTS <INTERPOS>

==============================================

BORE IA) - BORE 18) = o.o

OD IA) - OD 18) = 0.0

HIDTH (A) - HIDTH 18) = 0.0

EXAMPLE PROBLE:\1 SAN OUTPUT FILE 231

BEARING SEARCH SECTION ENTERED

MIN ESTIMATED Cl90) FOR POSITION IA): LEFT TIMKEN BEARING IS

354 PART NUMBERS FOUND FOR POSITION: A LEFT TIMKEN BEARING

--> COPY OPTION FOR POSITION: BRIGHT TIMKEN BEARING

354 PARTS COPIED FROM POSITION: A LEFT TIMKEN BEARING

4687.

TYPE TS

BEARING CATALOG SELECTION SECTION 125316. BEARING PAIRS REVIEWED.

THE NUMBER OF SELECTIONS HERE LIMITED TO 5 SORTED BY LIFE

AND THE FOLLOWING 5 BEARING PAIRS MEET ALL YOUR CONSTRAINTS AND

ARE ALSO THE LEAST EXPENSIVE BRG. COMBINATION IN THEIR SERIES:

BEARING SELECTION SUMMARY LIST

================================

N p

0 0

s

1 A

TIMKEN CO. PART NUMBERS

.---------------------. CONE NO. CUP NO.

2783 2720

EXAMPLE PROBLEM SAN OUTPUT FILE

CONE

BORE

MM

31. 750

CUP

OD

MM

BRG. L-10a3l

HIDTH HTD LIFE

MM HOURS

76.200 23.813 22269

N

232

B

2 A

B

3 A

B

4 A

B

5 A

B

2783

2783

2783

2783

2783

2783

2783

2783

2783

MANUFACTURING COUNTRY:

2720

2720

2729

2720

2729X

2729

2720

2729

2729

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

18710

22269

18710

22269

18710

22269

18710

22269

18710

U-U.S.A. E-ENGLAND F-FRANCE C-CANADA A-AUSTRALIA B-BRAZIL

BEARING JOURNAL DATA TABULATION

--------------------------------------------------------------

POSITION (Al: LEFT TIMKEN BEARING LOCATION: 125.000 MM

CONE OATA CUP DATA BEARING ASSEMBLY DATA

PART NO. 2783 PART NO. 2720 SERIES NO. 2700

EXAMPLE PROBLEM SAN OUTPUT FILE 233

MFG. COUNTRY cil u MFG. COUNTRY cil UEAB MFG. COUNTRY cil UUL,

BORE 31. 750 OD 76.200 BRG. TYPE TS

HIDTH 25,654 HIDTH 19.050 Ct 90) N 20800.

BF BACKING DIA. 40.9 BF BACKING DIA. 66.0 K FACTOR 1.93

BF FILLET RAD. I 1.5 BF FILLET RAD. I 3.3 Gl FACTOR 28.7

FF BACKING DIA. 38.6 FF BACKING DIA. 70.l G2 FACTOR 12.2

FF FILLET RAD. I 0.5 FF FILLET RAD. I 0.8 RIB SPEED/ RPM 0.003

EFF. CENTER $ -8.l OVERALL BRG. HIDTH 23.813

FF= FRONTFACE BF= BACKFACE SEE APPENDIX A IN INSTRUCTION MANUAL.

I THESE MAXIMUM FILLET RADII ARE CLEARED BY BEARING CORNERS.

$ MINUS VALUE INDICATES EFF. LOAD CENTER IS INSIDE CONE BACKFACE.

cil MANUFACTURING COUNTRY:

U-U.S.A. E-ENGLAND F-FRANCE C-CANADA A-AUSTRALIA B-BRAZIL

BEARING JOURNAL DATA TABULATION

===============================

POSITION (Al: LEFT TIMKEN BEARING LOCATION: 125.000 MH

CONE DATA CUP DATA BEARING AS3EMBLY DATA

PART NO.

MFG. COUNTRY cil

BORE

2783 PART NO.

U MFG. COUNTRY cil

31.750 OD

EXAMPLE PROBLEM SAN OUTPUT FILE

2720 SERIES NO.

UEAB MFG. COUNTRY cil

76.200 BRG. TYPE

2700

uuu TS

234

HIDTH 25.654 HIDTH 19.050 C!90J

66.0 K FACTOR

3.3 Gl FACTOR

70.l G2 FACTOR

N 20800.

1.93

28.7

12.2

BF BACKING DIA.

BF FILLET RAD. I

FF BACKING DIA.

FF FILLET RAD. I

EFF. CENTER $

40.9 BF BACKING DIA.

1.5 BF FILLET RAD. I

38.6 FF BACKING DIA.

0.5 FF FILLET RAD. I

-8.1

0.8 RIB SPEED/ RPM 0.003

OVERALL BRG. HIDTH 23.813

FF= FRONTFACE BF= BACKFACE SEE APPENDIX A IN INSTRUCTION MANUAL.

I THESE MAXIMUM FILLET RADII ARE CLEARED BY BEARING CORNERS.

$ MINUS VALUE INDICATES EFF. LOAD CENTER IS INSIDE CONE BACKFACE.

@ MANUFACTURING COUNTRY:

U-U.S.A. E-ENGLAND F-FRANCE C-CANADA A-AUSTRALIA 8-BRAZIL

BEARING JOURNAL DATA TABULATION

--------------------------------------------------------------

POSITION IBJ: RIGHT TIMKEN BEARING LOCATION: 275.000 MM

CONE DATA CUP DATA BEARING ASSEMBLY DATA

PART NO.

MFG. COUNTRY@

BORE

HIDTH

BF BACKING DIA.

2783 PART NO.

U MFG. COUNTRY@

31. 750 OD

25.654 HIDTH

40.9 BF BACKING DIA.

EXAMPLE PROBLEM SAN OUTPUT FILE

2729 SERIES NO.

UEB MFG. COUNTRY@·

76.200 BRG. TYPE

19 . 050 CI 90 J

68.1 K FACTOR

N

2700

uuu TS

20800.

1. 93

235

0,8 Gl FACTOR

70.l G2 FACTOR

28.7

12.2

BF FILLET RAD.#

FF BACKING DIA.

FF FILLET RAD.#

EFF. CENTER $

1.5 BF FILLET RAD,#

38.6 FF BACKING DIA.

0,5 FF FILLET RAD,#

-8.l

0.8 RIB SPEED/ RPM 0,003

OVERALL BRG. HIDTH 23.813

FF= FRONTFACE BF= BACKFACE SEE APPENDIX A IN INSTRUCTION MANUAL.

# THESE MAXIMUM FILLET RADII ARE CLEARED BY BEARING CORNERS.

$ MINUS VALUE INDICATES EFF. LOAD CENTER IS INSIDE CONE BACKFACE.

MANUFACTURING COUNTRY:

U-U.S.A. E-ENGLAND F-FRANCE C-CANADA A-AUSTRALIA B-BRAZIL

BEARING JOURNAL DATA TABULATION

===============================

POSITION (A): LEFT TIMKEN BEARING LOCATION: 125.000 HM

CONE DATA CUP DATA BEARING ASSEMBLY DATA

PART NO.

MFG. COUNTRY~

BORE

HIDTH

BF BACKING DIA.

BF FILLET RAD.#

FF BACKING DIA.

2783 PART NO.

U MFG. COUNTRY~

31. 750 OD

25,654 HIDTH

40.9 BF BACKING DIA.

1.5 BF FILLET RAD. #

38.6 FF BACKING DIA.

EXAMPLE PROBLEM SAN OUTPUT FILE

2720 SERIES NO.

UEAB MFG. COUNTRY~

76.200 BRG. TYPE

19.050 Cl 90)

66.0 K FACTOR

3.3 Gl FACTOR

70.l G2 FACTOR

N

2700

uuu TS

20800.

l. 93

28.7

12.2

236

FF FILLET RAD.#

EFF. CENTER $

0.5 FF FILLET RAD.#

-8.1

0.8 RIB SPEED/ RPM 0.003

OVERALL BRG. HIDTH 23.813

FF= FRONTFACE BF= BACKFACE SEE APPENDIX A IN INSTRUCTION MANUAL.

# THESE MAXIMUM FILLET RADII ARE CLEARED BY BEARING CORNERS.

$ MINUS VALUE INDICATES EFF. LOAD CENTER IS INSIDE CONE BACKFACE.

o) MANUFACTURING COUNTRY:

u-u.s.A. E-ENGLAND F-FRANCE C-CANADA A-AUSTRALIA B-BRAZIL

BEARING JOURNAL DATA TABULATION

--------------------------------------------------------------

POSITION (BJ: RIGHT TIMKEN BEARING LOCATION: 275.000 MM

CONE DATA CUP DATA BEARING ASSEMBLY DATA

PART NO.

MFG. COUNTRY o>

BORE

HIDTH

BF BACKING DIA.

BF FILLET RAD.#

FF BACKING DIA.

FF FILLET RAD.#

EFF. CENTER $

2783 PART NO.

U MFG. COUNTRY o>

31. 750 OD

25.654 HIDTH

40.9 BF BACKING DIA.

1.5 BF FILLET RAD. I

38.6 FF BACKING DIA.

0.5 FF FILLET RAD.#

-8.1

EXAMPLE PROBLEM SAN OUTPUT FILE

2729X SERIES NO.

U MFG. COUNTRY o>

76.200 BRG. TYPE

19. 050 CI 90 J

67.1 K FACTOR

1.5 Gl FACTOR

70.1 G2 FACTOR

N

2700

u

TS

20800.

1. 93

28.7

12.2

0.8 RIB SPEED/ RPM 0.003

OVERALL BRG. HIDTH 23.813

237

FF= FRONTFACE BF= BACKFACE SEE APPENDIX A IN INSTRUCTION MANUAL.

# THESE MAXIMUM FILLET RADII ARE CLEARED BY BEARING CORNERS.

$ MINUS VALUE INDICATES EFF. LOAD CENTER IS INSIDE CONE BACKFACE.

MANUFACTURING COUNTRY:

U-U.S.A. E-ENGLAND F-FRANCE C-CANADA A-AUSTRALIA B-BRAZIL

BEARING JOURNAL DATA ~ABULATION

===============================

POSITION IAJ: LEFT TIMKEN BEARING LOCATION: 125.000 MM

CONE DATA CUP DATA BEARING ASSEMBLY DATA

PART NO. 2783 PART NO. 2729 SERIES NO. 2700

MFG. COUNTRY~ u MFG. COUNTRY~ UEB MFG. COUNTRY uw

BORE 31. 750 OD 76.200 BRG. TYPE TS

HIDTH 25.654 HIDTH 19.050 Cl 90) N 20800.

BF BACKING DIA. 40.9 BF BACKING DIA. 68.l K FACTOR 1.93

BF FILLET RAD.# 1.5 BF FILLET RAD.# 0.8 Gl FACTOR 28.7

FF BACKING DIA. 38.6 FF BACKING DIA. 70.1 G2 FACTOR 12.2

FF FILLET RAD.# 0.5 FF FILLET RAD. # 0.8 RIB SPEED/ RPM 0.003

EFF. CENTER $ -8.1 OVERALL BRG. HIDTH 23.813

EXAMPLE PROBLEM SAN OUTPUT FILE 238

FF= FRONTFACE BF= BACKFACE SEE APPENDIX A IN INSTRUCTION MANUAL.

# THESE MAXIMUM FILLET RADII ARE CLEARED BY BEARING CORNERS.

$ MINUS VALUE INDICATES EFF. LOAD CENTER IS INSIDE CONE BACKFACE.

MANUFACTURING COUNTRY:

u-u.s.A. E-ENGLAND F-FRANCE C-CANADA A-AUSTRALIA B-BRAZIL

BEARING JOURNAL DATA TABULATION

--------------------------------------------------------------

POSITION (8): RIGHT TIMKEN BEARING LOCATION: 275.000 MM

CONE DATA CUP DATA BEARING ASSEMBLY DATA

PART NO. 2783 PART NO. 2720 SERIES NO. 2700

MFG. COUNTRY u MFG. COUNTRY~ UEAB MFG. COUNTRY uuu BORE 31.750 OD 76.200 BRG. TYPE TS

HIDTH 25.654 HIDTH 19.050 Cl 90 l N 20800.

BF BACKING DIA. 40.9 BF BACKING DIA. 66.0 K FACTOR 1.93

BF FILLET RAD.# 1.5 BF FILLET RAD.# 3.3 Gl FACTOR 28.7

FF BACKING DIA. 38.6 FF BACKING DIA. 70,l G2 FACTOR 12.2

FF FILLET RAD.# 0.5 FF FILLET RAD.# 0.8 RIB SPEED I RPM 0.003

EFF. CENTER $ -8.l OVERALL BRG. HIDTH 23.813

FF= FRONTFACE BF= BACKFACE SEE APPENDIX A IN INSTRUCTION MANUAL.

# THESE MAXIMUM FILLET RADII ARE CLEARED BY BEARING CORNERS.

EXAMPLE PROBLEM SAN OUTPUT FILE 239

$ MINUS VALUE INDICATES EFF. LOAD CENTER IS INSIDE CONE BACKFACE.

MANUFACTURING COUNTRY:

u-u.s.A. E-ENGLAND F-FRANCE C-CANADA A-AUSTRALIA B-BRAZIL

BEARING JOURNAL DATA TABULATION

===============================

POSITION IAJ: LEFT TIMKEN BEARING LOCATION: 125,000 MM

CONE DATA CUP DATA BEARING ASSEMBLY DATA

PART NO. 2783 PART NO. 2729 SERIES NO. 2700

MFG. COUNTRY~ u MFG. COUNTRY~ UEB MFG. COUNTRY uuu BORE 31. 750 OD 76.200 BRG. TYPE TS

HIDTH 25.654 HIDTH 19.050 Cl 90 J N 20800.

BF BACKING DIA. 40.9 BF BACKING DIA. 68.l K FACTOR l.93

BF FILLET RAD.# l.5 BF FILLET RAD.# 0.8 Gl FACTOR 28.7

FF BACKING DIA. 38.6 FF BACKING DIA. 70,1 G2 FACTOR 12.2

FF FILLET RAD. # 0.5 FF FILLET RAD.# 0.8 RIB SPEED/ RtlM 0.003

EFF. CENTER $ -8.l OVERALL BRG, HIDTH 23.813

FF= FRONTFACE BF= BACKFACE SEE APPENDIX A IN INSTRUCTION MANUAL,

# THESE MAXIMUM FILLET RADII ARE CLEARED BY BEARING CORNERS.

$ MINUS VALUE INDICATES EFF. LOAD CENTER IS INSIDE CONE BACKFACE.

EXAMPLE PROBLEM SAN OUTPUT FILE 240

THE NUMBER OF SELECTIONS HERE LIMITED TO 5 SORTED BY LIFE

AND THE FOLLOHING 5 BEARING PAIRS MEET ALL YOUR CONSTRAINTS AND

ARE ALSO THE LEAST EXPENSIVE BRG, COMBINATION IN THEIR SERIES:

BEARING SELECTION SUMMARY LIST

================================

N p

0 0

s

1 A

B

2 A

B

3 A

B

4 A

B

5 A

B

TIMKEN CO, PART NUMBERS

.---------------------. CONE NO.

2783

2783

2783

2783

2783

2783

2783

2783

2783

2783

CUP NO,

2720

2720

2720

2729

2720

2729X

2729

2720

2729

2729

EXAMPLE PROBLEM SAN OUTPUT FILE

CONE

BORE

MM

CUP

OD

MM

BRG.

HIDTH

MM

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750 76.200 23.813

31.750

31. 750

31.750

76.200 23.813

76.200 23.813

76.200 23.813

L-10a31

HTD LIFE PRICE

HOURS US.$

22269

18710

22269

18710

22269

18710

22269

18710

22269

18710

111.03

111.28

112.06

111.28

111.53

241

The vita has been removed from the scanned document