ld5655.v855_1987.c57.pdf - vtechworks
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
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