-J
a-'-r
-7 4A
-s Report No. 77-8 PRATT PROJECT HULL MEASURING DEVICE: DATA ANALYSISPROCEDUR.-by
Owen H. Oakley, Jr.* and Geor L. Clemmer*
May 1977
H. Irving Pratt
Ocean Race Handicapping Project
's
Deift University of Technology
Ship Hydromechanics Laboratory
Library
Mekelweg 2, 2628 CD Deift
The Netherlands
Phone: +31 15 2786873-Fax:+31 15 2781836 -s- .' -.-..'
-_--t
:i?!L¶î1
'
T: :J'-________;-;.j-ç
--_-Z__i;
';_-- ';_--';_--
.'.
.L-',- -7 r..--.=-.---
. . - - ... .---
".'.-.-'-p--.
u.-. -
..
--s--,-- s--,-- s--,--
;.. - - - . - .-.
-'T ''L
s-
- ,,j
-r----;---:-''-?t.
--:-
._.._.r
MITLibraries
Document Services
Room 14-0551 77 Massachuetts Aveñue Cambridge, MA Q139 Ph: 617.253.5668 Fax: 617.253; 1690 Email: docs@mit.edu http://librarjes.mjt.edu/docsDIScLAIMER OF QUALITY
Due to the condiion of the óriginal
rnateria
there are uhavoidable
flaws in this reproduction We have
made every effort possible to
provide you with the best copy available
If you are dissatisfied with
this product and find it unusable, please contact Document Services as
soon as pçssible.
Thank you
Some pages in the original document
contain picture5,
Report No. 77-8
THE PRATT PROJECT
tL MEASURING DEVICE:
DATA ANALYSIS PROCEDURE by
Owen H. Oakley, Jr.* arid George L. Clemrnér*
May 1977
This research was carried out in part under the H. Irving Pratt Oceaxi Race Handicapping pro-lect, M.I.T.
OS No. 81535. The generous suppört of thé individual donors to this program is gratefully acknowledged.
*Massachugetts Institute of Technology
ABSTRACT
The computer programs used to process the d4ta obtained from the pratt Proj ct Hu11Measúriug Device are described. The programs and an p1e run are implemented tsing the M.I.T. Time Sharing Option ou an IBM370/M16'8.' The documentation is directed at the Information Processing Center user at M.I.T. and as a guide for future software. developmnt to be ued at othér computing facilIties.
TABLE OF CONTENTS
Page
ABSTRACT j
PRATT PROJECT REPORTS LIST
TABLE OF CONTENTS INTRODUCTION
i.
STEP (1) - LOGON AND ALLOCATE 4
STEP (2) - COPY 7
STEP (3) - EDIT io
STEP (4) SCALE, TRANSFORM, AND PLOT.
11
STEP (5) - CONVERT 33
STEP (6) -THELPP
37EXAMPLE RUN 51
* References listed at the end of the report.
**A device allowing the terminai to ik up with the computer over the telephone lines.
-1-INTRODUCTION
This report describes the computer programs used to Process the output of the Pratt Project Hull Measuring Device [i] [2] [3].* The device records four numbers ontO a digital magnetic tape. The four
igit numbers correspond to X, R, , the cylindrical polar coordinates of an offset of the hull Sürface, and N, a code number uséd to identify the nature of the offset. R and O are the output of two digital shaft encoders and need to be corrected and scaled before being converted to rectangular offsets Y and z. The processing of the data into an offset table is accomplished with the. aid of: the MIT Time Sharing Option (TSO) from a Tectronjx 4010 term±nal. The various steps in the process are shown in the center column of igure (1). The corresponding input and output information and computer step
ne or coand are also
shown. Briefly, the nteractive terminal session is initiated using the standard LOGON coand procedúres. The data is read from the
magnetic tape into an online data set b using a tape player interfaced with the terminal and modem.** The raw data is normally scaned by eye in Step Three and any obvious errors., or errors noted by thè meàsurer, can be corrected using the editing capabilities of TSO. The actual scaling of the raw data, rotation of the offséts to a standard coordi-nate system, and plotting are accomplished in Step. (5) in one operation.
INPUT/QtiTtJT
STEP
smp
Tape
Reader
BOAT. DATA
BOAT. ROT. DATA
CCOMP
BOAT .:LPP . DATA
Read Data and Store
In File Set
(3) Edit Data for
Errors
4,
'
(4) Scale and Rötàte
______
the Offsets
aM
Plot the Results
Y
(5,)Convert Rotáted
Data to LPP
Fòrmat
6) LPP
LOGON
EXEC ALLOC
EXEC COPY
EDIT
EXEC LPP
Figure (1)
MIT Pratt Project Hull Measuring Device
Data Processing Sequence
EXEC SCALE
(Level ,Scale,Ploths)
EXEC CVT
initiate CöïiiputerSession
+
-3-The final offset table is reformated in Step (6) to be compatible with the lines processing program (LPP) which computes such geometric quantities as displacement, sectional areas, etc.
The report is ïvided into sections corresponding to the above steps. Each one contains (a) a statement Of purpose, (b) the Imple-mentation procedure, (e) method of, computation, and. finally, (d) the program Listing. The programs listed herein are prelIminary versions (May 197) and are given for guidance only.
STEP (i) LOGON AÑD ALLOCATE
Purpose
This step simply initiates the compute session and reserves the necessary storage space In the machine for the various tables of offsets.
Procedure
The terminal sessjon is initiated using the standard BM TSO L000N command procedures sèe [4]).
Once. the user s logged on to the appropriate account that has ail of the programs on fIlé, the next step is to allocate space in specially named bloccs, called files, for the storage Of the data. This allocatIon step involves a large nimber of control statements that have been assembled into one file called a. Coand Procedure and named ALLOC. CLIST. (The LIST suffix denotes such a Coànd Procedure File.)
The usér simply typeè "EXEC ALLOC" and the series o.f control cards iti the procedure named LLOC. CLIST are sequentially executed. Data files named DEMi1 DATA and DEM2. DATA are reserved for use along with two additional files for thé output of Step (4), i.e., DEM1.ROT.DATA and DEM2.ROT.DATA. An aditïona1 print file named MSG.PRINT is also reserved for speciél messages.
At the end of the tethaI session, the files that are to be
saved on the. disc (i.e., in the computer) should be renamed, for example, the commands:
-4-RENA DEMi. DATA BOATA. DATA
RAllE DEMLROT.DATA .BQATA.ROT.DATA
will rename the files, from DEMI to BOATA. All of the (remaining) DEMi, DEM2, and MSG.PRINT files can be deleted using:
EXEC DALLOC
which executes a Command Procedure called DALLOC.CLIST. This procedute automatically deletes any files created by ALLOC.CLIST which were not renamed using the RESAllE co=and
The CLIST's ALLOC and DALLOC are listed belou All of the follow-ing steps are coñtrolled by similar CLIST's which will be listed prior to the actual FORTRAN IV ptògram they control. (For further information on TSO Coiand procedures, see [51.)
Listings
ALLOC . CLIST
DALLOC . CLIST
-5-
-6-ALLOC.CLIST
00010
PROC O00020
ATTR CARDLRECL(80) BLKSIZE(1680) RECF(F,R)
00030
ALLOC DA(DEM1.DATA) BLOCc(13030) USINGCCARD) SFACE(1,1)
00032
ALLOC DA(DEM2,DATA) BLOCK(.13030) USING(CARD) SPACE(1i)
00034
ALLOC DA(DEM1.ROT.DATA) BLOCK(13030) USINO(CARt') SFACE(1,1)
00036
ALLOC DA(DEN2.ROT.DATA) BL0Cl(1303O) UGING(CARti) SFACE(1,t)
00060
ATTR FRINT LRECL(137) BLKSIZE(1374)
RECFM(V,B,A)
00065
FREED FI(SYSPRINT) DA(MSG.PRINT)
00070
ALLOCFI(SYSPRINT)
USING(PRINT) DA(MSGFRINT) BLOCK(13030) SFACE(5,1
00080
SP * NÓtETAXL
READY-DALLOC CLIST
00010
PROC O00020
D (DEu11.DATA,tIEÑ2,DATA,DEM1,ROT.DATA,tÌEM2.ROTDATA)
00030
D (KG.PRINT)
READY ISTEP (2) - COPY
Purpose
This step actuail accompLishes the reading of the tape, and storage of the data Into a file set in the computer.
Procedure
The miniature tape cassette or "wafer" contain-ing the raw data from the hull measuring device is first inserted in the tape reader and ad'vanced to the beginning of the tape. The
hook-up
of the required equipment s shown in the figure below. After "logging" onto the... machine and allocating file space, the ráw data is obtained by executingthe coand
EC COPY 'DEMi'
which sequentially invokes each of the control cards. or coands in the CLIST called COPY.
110 VÓLTS i; BYrTOM ( PLUG POWER
b
TAPE SUPPLY READER-v&.15v
___J .--TOP PLUGFigure 2.1 Hook-Up of Tape Reader and Terminal
-7--PHONE
MODEN
>LINES
The FORTRAN IV program COPY FORT requires the name of the file into which the raw data IS to be placed and in this example is the data file DEM1.DATA. The '.DATA' is built into the CLIST coand structure and need not be typed here. The program will prompt the user with the
coand 'PUSH
HESTAT
:BUTTOI' on the t.pe reader to begin sendingdata to the computer.
A cpy
of
each line of data will be printed at thè terminal. When the reader is fInished reading all of the. data, the stop bütton should be pushed andSTOP
should be typed, stárting in Column Pne, at thé terminal. The program will then list the data, separating the four itbers into readàble
co.ltns, and will signal its completion with the usual 'READY'. Since the program copiés everything it receives into thé DAA
file
in anA-fOrmat, any bad informatiOn on the tape or transmission failures will no doubt end up in the data file. These should be notéd by Scanning
the listing of thedáta for correction during the next step.
List-ings
CÖP? . LIST
COPY.CLIST
OQO1O PROC i OUT
00020 FREEG FI (FTO5FOO1,FtOopOoi,FTQBFOOJ.)
00030 ALLOC FI(FTO5FOO1) DA(*)
00035 ALLOC FI(FTO6FOO1) DA(*)
00040 ALLÓC FI(F108F001
DA(OUT. .DATA.)OÓOSO CALL COPY
READY
-9-COPY, FORT
00010
DIMENSION DATA(4,500)
00O20
DATA TEST/'STOP'/
00030
WRITE(6,2000)
00040
Db 10 I=1500
00050
DO 10 J1,4
00060
10 DATA(J,'I)=000070
DO 20 Il500
00080
00090
IF(DATA(1,I).EQ.tEgry GO TO 300
00100
20CONTINUE
00110
300
t'O 500 Ki,I
00120
WRITE(6,103)(DATA(J,K),J=1,4y
00130
WRITE9,1O4) (IIATA(J,K) ,J=1.4)
00140 500
CONTINUE
00150 103
FORMAT(4A6)
Q0160 104
FORMAT(4A6)
00170 100
FORMAT(4A4)
00180 2000
FORMAT(2X,'PUSH THE. START BUtTON')
00190
ENDSTEP (3)- EDIT
Purpose
This step is used only if the ràw data needs sorne correction prior to being scaléd añd rotated.
Procedure
The raw data frm the hull measuring deice now résides iú the file named D1.DTA!. Any known errors cati be corréc ted or additions made using the TSÓ EDIT command which allows the user to add, délece, or make changes, to the ata set as desired. (For, more infoadon on the..
EDIT comnd, see [4] and [5].) Typical changes wthld be to correct a station X-distance that the measurer forgot to change after moving to a
new station. This cn also be done automatically if the correct error codes are included ir the data [2].
i_o-STEP (4) - SCALING
Purpose
This step converts the data to decima.l feet and then rotates the offsets from the W centered origin to a bOat-axis sys tam.
Procedure
The data from thé is scaled, rotated, and plotted using the interactive capabilities of TSO under the coand procedure SCALE.CLIST.. The data is presumably residing in the file DEM1.DATA and it will be
converted and written into the fila DEMLROT.DATAjith.the tatéét
E]C SCALE 'DEMi DEMi. ROT'
The data is processed by the load odthle SCALE.LOAD consisting of the main program LEVEL.FORT., subroutines SCALE.FÓRT, PLOTBS.FORT, S.IMQ.FORT, and standard Fortran library and Caicomp Plotting subroutines.
The program will read the input data from the first file, here
D1.DATA, and type the yacht nber, the day it was measured, and the
measuring constant R called RCON ['2]. he user will then be prompted for information as to the side being processed and whether the bow or stern -is first. The data is scaled (and listed if desired), and then rotated (and listed if desired). The final rotated set of offsets is. written into the file DEM1.ROT.DATA and, if desired, the body plan is p.otted.
-11--12=
MethOd
The programs scale the data, shuffle the stations i.to a standard order (bow f-irs t), transform the offsets to a boat äxis system, and f-al-1y plot the body plan using the. following relatiOns:
(a) Scaling
BefOre convering the measured values f R and to rectangular coordinates, R and 4 must bé corrected for a shifted origin at the guide t.theel and converted to physical units. The geometry of the guide wheel and the correction equations used by subroutine SCALE are Show in Figure 3.
Since the scaled offsets ay beg-in with either the bow or the stern, it is desirable at this point to switch to a standard coordinate system. Thê sign cònvention adopted by subroutine SCALE
is shom in
Figure 4 and is used to convert the offset data to a "bow firsttt and "staboard pltis" convéntion.-(b) Tra sforming.to a boat axis syst
The scaled data in the device coordinates are transformed to a boat axis coordinate System in the thãin progr tamed LEVEL.FORT. The coordinate systems are Shown iO Figure 5. The transformation from the device coordinâtes to thé boat axis coordinates X is givè by:
= AX + X
STR\?G POkT OF OttP:
A
P'4I=O
B
P%4rû
STt
FTflÑ
1I
ÇJC
L1
R
=
+ RCOt1 -
coi. - wcoa ?-I
X= RcoMPI 4 Rc.oÑawscur
'?
RS(t4fl 4-
s2.«1
CO&I'fl
FtGURE 3
Device
Coordinate System
-13--HAND iFs
COACT
4LLL
' STRI
cota
\
14I4.L
rt
kA
L
BOAT
Àx s
DEVICE
COORDINATE SYSTEM'
FÖR PÖRT SIDE
FIGURE 4
Sign Conventions AdOpted
cale Suhrouti±e
DEVICE COORDtNATE SYSTEM
FOR ST R.BOAR.D SDÉ
c-.)(a< d)
TRANSLATION AND ROTATION ÖF DEVICE OFFSETS TO BOAT AXIS SYSTEM
STfà\Ì ernk
t4-Yaw,
-Ro11, 8-Pitch wrt Bbat Agis
FIGURE 5
t
-9'
e
I.
--e
I-15-r-1
-e
4
i
-i
The unknOwn ròtatïons
[e,p,j
and translations are to be determined such that:i) the cente1ine coordinates have zero y offsets,
i. e., 0, and
ii) the waterline coordinates have z.
where z.= 8.0 feet.
The first step is to take the N measured centerljne poÍns L
and they-equation fom
Af'
x.'L Ax.'
+±
-i -i -o
which will yield à sèt of N equations:
0=
.- wT_
=z
o
to be solved using least squares for
t,
, and If N < 3, thepobié
is no 1ôiger òver-determined and the following actions aretaken :
-16-where A js the rottíon matrix and x LS the ttanslat-ion vector. For small angles,
WL
-+z.
+z =z
i
o o (i = 1, ., M)for the unknowns 8 and z. The solution g-ives a plane passing, if... possible, through the waterline points and perpendicular to the- center-line piane. The options för
the
method of oiution are as follows:-
least squares
M = 2 -- deterinistic M = i -- 8 = O, z - = 0 -M= o--
e = = o --oKnowing e.,
y, and z, the offsets inthe
device coordiantesystem x are transformed. to
the boat axis
by:x
= X -
j)y+ Oz
= y - c1:z
+
y-1
7-N= 3
Equations are deterministic 4. J,c1,
N<3
= =o,
=N= O
= =yoQ
=o
Clearly, nothing is doüe -in the
last
case when N = O.The next step -is to use the M measured waterline points
and the z-equation which yields a set of M equations,
z
-8x + y + z +
(c) Piotting
The plotting ubroutine PLOTBS.FOEI uses t*dad -C4LÇO plotting subroutines (6] which are implemented using pr ewing capabilities provided by the T TSO installation 17].
The maifl progràm will prompt the user b7 tqu-iring whether a plot
is to be made.- If the answer is yes (and the user: -is at â terminal
with a screen), the following dialogue is iséd:
Do YOU WMT A DISK FILE iADE OF YOU
PLÖT (YES/Ñ0)?
No
-EERNBRICOTION (1, 2,
3, or 4)i
ENTERALPHAOPTOi (C, R, S, V, W,?, * fl)
wENTER NEW CÒR1TER X,! COORDINATES
.75
.75
NEW WIDT
E1tIT IN IÑCHES
10.
7.6
ENTER ALPHA ÖPTION (C, R, S, V, W, ?, *, tÑt).
C
The screen will then automatically erase itself: and draw the plot.
-18-Listings
SCALE. CLIST
SCALE.FORI
Subroutine SCALE
LEVEL.FORTProgram LEVEL
PLOT.FORI
Subroutine PLOTBS
-19--SCALE.CLIST
20-0Ó010 PRÖC 2 IN OUT
00020 FREEG FI(FT18FØO1,FT2OFOO1,FTOBFOO1,FTO9FOO1)
00040 ALLOC FI(FTOBFØOj.) DA(*)
0005c ALLOC FI(FTO9FOOXY tIA(*,)
0007Ó ALLOC FI(FT1BFOQ1) DA(&IN,.DATA)
00080 ALLOC
FI(FT20OO1)
DA(aOUt, ,DATA)
00100 CALL SCALE.LOAD(TEMpNA)
READY
Stibrout-ine SCALE: Dataset Name SCALE.FORT
Line Numbers
180 -- Read dataset as generated by Hull Measuring Dévice from file FrI8POO1.
190- 350 590- 1640J
360- 580
-Interpret codes and identify stations and offsets; -- set up pointers to special points (i.e., freeboard,
waterline, and centerline po-ints) for later use.
-21-- Scale data from polar hull meàsur-21--ing device coordinate system into rectilinear coordinates aligned with device baseline.
1710- 2250 - Determine boat orientatïon and order offsets with bw
first.
450
SÇÁLE.FDRT
-22-00010
SUBROUTINE SCALE
00020
COMMÒN/BOAT/NBOAT,NtIA,NMD,NYR,NSTAR,NMES
0000
COMMON/tIEVICE/x25),y(2,25)pZ(2,25),NC(25,2)
00040
COMMON/F'OINrS/Ng
! NPTS C 25,)00050
COMMOÑ/CL/NCLP,NCL(25)
OO6O
COMMOÑ/WL/NWLP NUL ( 25)00070
COMMON/FREEBD/NFBPNFB(25) 'ZFB(2)
00080
5NXS=-1
0O090
RCON = -1+0
0100
NSTA=0
00110
NUM=0
00130
NFBP=0
00140
10NRÒLD=NR
00150
NPOLD=NPHI
00160
ÑXOLD=NX
00170
NCOLb=NCOti00180
READ(18.,1000,ENt,=5o) NR,NPHI,NX,NcoD
00190
IF((NR.EQ.NROLD).AND,NPHI.E0.NPOLD)AND(NXOLDE0NX)
00200
A.AND.(NCOLD.ÈQ.NcQp))
GO TO 10
00210
IF(NR.LE,-1) ÓO1O
000220
IFNc-OD,EQ.9999) GÓtO 10
00230
IF(+NOT.((NCOtI.EQ.o),oR.(Ncofl,EQ,1),QR,(NcoD.E
20) OR
00240
AcNCOD.Eb,40))) 60 TO 300
00245
14NCIN=NCOD (NCOD/100)*100
ÖÓ2S0
15IF(RCON.LT.0) GO 10 40
00260
IFÇNX.EO.NXs) GO TO 20
00270
NXS = NX
00290
NSTA = NSTA+1
0Ö290
NUM = O
00300
X(NSTA) = NX*.01
00310
NCL(NSTA)=NCIN
00320
NWL(NSTA)=0
00330
NFB(NSTA)=0
00340
ZFB(NSTA)=0
00350
20NUM = NUM+1
00360 C-
DEVICE SCALING PARAMETERS
00370 t
SPHI
ANGLE COUNTS/REVOLUTION
00380 C
SRlSTRING COUÑTS/FOOT
00390 C
RCON
LENGTH OF STRING OUTSIDE CASE
00400 C
RCON1
SET BACK OF GUIDE WHEEL
00410 C
RCON2
GUIDE WHEEL RADIUS
00420
00430
DATA SR1/344.4 I, SPHI/5090.Ó/,
A
RCON1/.285/, RD/57.295779/
00440
B ,RCON2/.005/, TWOPI/6.28318/
00450
IF(NPHI.GT.5000) NPHI = -10000+NPHI
00460
PHI(ÑPHI/SPHI)*TWOPI
00470
R = NR/SRl + RCON + RCON.1 - RCON2*PHI
00475
IF((R.GT.(16,O+RCON) .OR,(R.LT.(RCON+RCON1+,5))) Gd TO
00480
CP = COS(PHI.)00490
SP.= SIN(FHI)
00500
Y(NUM,NSTA.) = R*CP + RCOÑ2*SP
00510
Z(NUMNSTA)= R*SP ± RCON2*(1+0-CF')
00520NC(NUMNSTA) = NCOD
00530
NPTS(NST)
NUM
00540
IF(ÇNCIN.EQ,2O).AND.(NWL(NStA),EQ,o
NWL(NSTA) = NUM
00550
IF((NCIN,ÑÈ+40)+OR,CNFB(NSTA),NE.o)) 001010
00560
NFB(NSTA)=ÑUM
00570
NFBF=NFBF+1
00590 C
MAIN CODE HANDLING
-23-00600 C
NCOEi=9999 IGNORE, START OF NEW DATI
00610 C
ÑCÓD=OO1X FIRST POINT IS REFERENCE CL NO. X
00620 C
NCOD=000Ö FIRST POINT Et
STATION IS CL
.00630 C
NCOtI=i FIRST POINT EA STATION IS NOT CL
00640 C-.
NCOD=20 WATERLINE POINT
00650 C
NCOD=40 FREEBOíRD POINT
00660 C
NCOtI=90 RCON=NX/100.
00670 C
NCOD=1977 MODA=NX00675 C
NCOD=2000 THRU 3999 MEASURER FLAG,STRIF FIRST TWO DIGITS
00680 C
ÑCOD=8000 NBOAT=NX
00690 C
NCOr'=aOOl NBOAT=NX*1000 = NBOAT
00700 C
NCOD=8003 NSIDE=NX
00710 C
NCOD=8005 NMEAS=NX
00720 C
NCOD=93XX DISREGUARt' LAST XX STATIONS
00730 C
NCOD=9300 REMOVE STATION NX
00740 C
NCO41 XFB(NSTA)NX*.01
00750 C
NCOD=91XX REMÓVE LAST XX POINTS
00760 C
ÑCOD=9010
DON'T USE STATION NX FOR CL
00770 C
NCOD=9020 DON'T
SE STAtIÓN NX
ÓR WL00780 C:
NR =-1 END OF DATA
00790
300
IF(NCOD.NE.8090) GO TO 305
00800
RCON = NX*.01
00810
GO TO 10
00811
305
IF(NCQD.GT+2000).AND.(NCOD,LT,3999)) GO TO 14.
00820
310
IF(NCOD,NE1977)GO TO 320
00830
NYR = NCOD
.00840
NMO = NX*0.O1
00850
NDANX-NMO*.100
00860
60 TO 10
00870
320
IF(NCÓD.NE.8000) GO TO 330
00880
NBOAT=NX00890
GO TO 10
00900
330
IF (NCOD.NE.8001) ÓO tO 340
00910
NBOAT=NX*10000+NBOAT
00920
GO TO 10
00930
340
IF(NCOD.NE.8003)
0 to 350
00940
NSIDE=NX
00950
GO TO 10
00960
350
IF (NCOD4NE.S005) GO TO 360
00970
NMEAS=NX00980
.60 TO 10
00990
360
IF ((NCOD,GT.9199),OR,(NCOD.LT,9100)
GO TO 370
01.000N=NCOD-9100
01.010DO 365 I=1,N
01020
IF((NUM.EO.0),AND.(NSTA.EQ,0)) GO
0 10
01040
NUM=NUN-101050
NPTS(NSTA)=NUM
01060
IF(NUMNE,O) 30 10 365
01070
363
.NSTA=NSTA-1
01080
I.F(NSTA.EQ.0) GO TO 10
01090
NUM=NPTS(NSTA)
01100
NXS=X(NSTA)*100.0+5
01110
365
CONTINUE01120
00 tû 1.0
01130
370
IF(NCOD,NE.OIO) 30 10 380
1140
t'O 375 I1NSTA
01150
N=I
O11ÓÖNXI=100.*X(I)+,5
01170
IF(NXEGNXT) GO TO 376
01180
375
CONTINUE
01190
60 TO 440
01200 376NCL(N)=1
01210
GO TO 10
01220 380IF(NCO,D.NE,9020) GO tO 390
01230
DO 385 'I=iNSTA
01240
01250
NXI=,100,*X(I)+.501260
IF(NX.EQ.NXI) GO TO 386
01270
385CÒÑTÏNUE
01280
GO 10 440
01290
386
NWL(N)=0
01300
GO TO 10
01310
390IF(NCOD.NE.9200) GO TO 400
01320
X(ÑSTA)=NX*.01
01330
GO 10 10
01340
400
IF((NCOD.GT.9399).QR.(NCOtI.LT+O1)) GO TO 410
01350
NSTA=NSTA-(NCOD-9300)
01360
IF(NSTA.LT.0)NSTA=O
01370
=0 0138060 10 10
01390
410IF(NCbL.NE.93oo) GO 10 420
01400
hO 415 I=1,NSTA
01410NI
01420
NXI=100.*X(I)+.5
01430
IF(NX.EQ,NXI) GO TO 416
01440
415CONTINUE
0.145060 10 440
01460
416NPTS(N)=0
01470
NWL(N)=0
01480
NCL(N)=0
01490
NFB(N)=0
01.500GO TO 10
01510
420IF(NCOD,NE,0041) GO TO 430
01520
ZFB(NStA)=NX*.Oj. 01530GO TO 10
01540 430IF((NCQD.LT.1O).OR,(NcÓ.T.j.9)) GO TO 440
01550
NCiÑ0
01570
GO 10 15
01580 C
. -NCOD UNDEFINED OR UNRESOLVED
01590
440WAITE (9,40i0) NCOD
01600
GO T
1501605 c-
R OUT OF BOUNDS
01606
450WRITE(9,4,Qljj. NRNPHI,NX,NCOD
0160'?
NUM=NUM-1
01608
60 TO 10
01610 C
RCON NOT IN FILE
01620
40WRITE(9,100j)
01630
READ(9,1002) RCON
01640
GO TO 15'
01650
1000 FORMAT (616)
01660 '
1001 FORMAT (RCON NOT IN FILE: PLEASE PROVIDE(F4.2)
Ö1670
1002 FORMAT (F4.2)
01680
4010 FORMAT
(UNRESOLVED NCOtI.',I5,'
TAf\E NOTE')01681
4011 FORMATÇ'' R OUT OF BOUND,DATA '4I5,' IGNORED')
01890 .50
WRITE(9,1020) ÑBOAT,NMONDA,NYR
01700WRITE(9,1003) RCO.N
01710 C
ESTABLISH AXIS ORIENTATION
0120
IF(NSIDE.NE,-i) GO TO 300
01730
.WRITE (9,4020)
01740
REAt'(3,1CO) NSTAR
01750
WRITE(9,4030)
01760
READ(8,1050) NBOW
01770
GO TO 510
01780
500NBOW = NSIDE -(NSIDE/iQy*i0
01790
NSTARNSIbE-(NSIDE/1O0)*1OO...NBOJ01800
510IF(NSTAR,NÈ,O)NSTR=i
01810
IF (NBOW.ÑE.Ö) NBOW=1
01820
YSIGN=1.0
01830
IF(NSTAR.EQ,i) YSIGÑ=-1.O
01840
DO 520 N=1,NST
01850
NP=NPTS(N)
01860
DO 520 J=1,NP
01870.
Y(J,ÑT)
= YSIGNy(JyN)
01880
520
CONTINUE
01890.XBOW=X(NSTA-NBOW*(NSTA-1))
01900
XSTERN=X( 1+NBOW*(NSTA-1))
01910
XSIGN=j,O
01920
IF (XSTÈRN-XEÓW.LT.o) XSIGN=-1.Ö
01930
DO 530 Ñ=1,Ngî
01940
X(Ñ)(X(N)-XBOW)*XSIGN
01.950530
CONTINUE
01960 C---FLOP BOW g STERN IF NECCESSARY
01.970
IF (ÑBOW.NE,o) GO TO 600
01980NMÓV=NStA/2
01990
DO 560 I=1NMOV
02000
NH=NSTA+1-I
. .02010
XTEMP=X(I)
02020
X(I)=XNHY
02030
X(NH)=XTEMP
02031NTEMP=NPTS(I)
02032
NPTS (I) =ÑFTS (NH) 02.,Q33 .NPTS(NH)=NTEMP
02040
NTEMP=NCL ( I) 02:050NCL(I)NtL(NH)
02060NCL(ÑH)NTEMp
02070NTEMP=NWL(r)
02,080 ,ÑWL(I)=NWL(NH)
02.090 NWL( NH) =NTEIIP02100
NTEMFNFB ( I)02110
NFB(I)=NFB(NH)
02120NFBÇNH)=NTÈMp
02130
.XTEMP=ZFB(I)
02140ZFB(I)=ZFB(jH)
02150
.ZFB(NH)=XTEp
02160'DO .560 J=125
02161NTEMP=NC(J,I)
02162
NC(J,I)=NC(J,NH)
02163
. ,NC(J,NH)=NTEMP
02170
XTEMF=y(J,,.I)02180
02190
Y(J,NH)=XTFMp
02200
XTEMPZ(JI)
02210
Z(J,I)=(J,NH)
02220
Z(J,NH)=XTEp
02230
560
CONTINUE
02240
4020
FORMAT(' 'SThRBo'ARD SIt'E(i)OR PORT SIDE(0) T')
02250
4030
FORMAT(' BOW FLrST(1
OR STERN FIRST0, ?'j
02260
600
WRtTEÇ9,ï'040)02270
READ(8,iO5Q) NrIAtFR
-25-022GO
02290 C
0230
02310
02320
02330
02340
6002350 1003
02360 1010
02370 1020
0238Ö 1040
02390 1050
02400 2010
02410
02420
02430
02440
02450
02460
02470
02480
READY
IF(NDATPR.LE.0
GO TO 70
-26-PRINT SCALED OFFSETS
WRITE(9,2010)
DO 6Ö N=1,NSTA
ÑNÑPTSN
t'o oo J=1,NNWRITE(9,1O1Q) NJX(N) ,Y(J,N) 'Z(JN) NC(JN)
FORMAT(2X, 'RCON: / FF8.3)FORMAT(2X,
I,2,2X,12,2X,3F8,2,2x,14y
FORMAT(/2x, 'YACHT NO, ',IB,'
MEASURED OÑ 'I2, '/',12,
FORMAT(2X,'TypE
i TO
PRINT SCALED OFFSETS, O OTHERWISE'
FORMAT (.110) 70
CONTINUE'
C---DEBUG
CWRITE, (96000) NSTA,NPTS,NCL,NRFCL,NWL,NFB,ZFB
6000
FORMAT C' NStA:'I3,/,' NPTS
',2513,/,' NCL:
',A25I3,/' NRFCL:',25I3/,' NWL
',2513
B,/,' NFB:; ',2513,/,' ZFB:.'25F3.j)
RETURN
END
) 'I' I4)Main Program LEVEL
Line Numbers
120 -- Call subrout-ine SCALE to interpret device data file. 150- 990 Using pointers set up by SCALE to identify centerline
and waterline points, solve for rotation and trans-lation necessary to move device offsets into
conventional boat axis-based table of Offsets. Use least squares if there are more than three centerline points, or two waterline points Otherwise, solve explicitly.
1000- 1070 -- Rotate and translate device offsets.
1080-1230 -- Solve table of offsets.
1240- 1330 -- Write out offsets at termina), if required.
1490- 1510 - Call subroutine PLOTBS to produce a plot if required.
SubrOutine PLOTBS
Line Numbers
160- 250 -- FInd max beam station and set up pOinters.
290- 340 - Establish whih offsets are to go in which panel of the plot (starboard bow in left panel, port bow in right paneÏ)..
350- 880 -- Draw and label a straight-line plot of the body p].an.
-27-LEVEL.FORT
-28-00010
COHNÍON/BOAT/NBOAT,NIIA,NMO,NYR,NSTAR,NMEAS
00020
COKON/DEVICE/X(23),Y(23,25),Z(25,25),NC(25,25)
00030
COMM0Ñ/PorNTs/NsTA, NF'TS (25)00040
COMMON1'ÔL/NCLP,NCL(25)
00050
tOilMON/WL/j4WLP,NWL(23)00060
COMMON/FREEBt'/NFBPNFB(25) ZFB(25)
00070
COMON/OFFSET/XX(25,2),YY(25,2S)ZZ(25,23)
00080
t'IMENSN
00090
AA(25,3),BC25),AA(3,3),BB(3),CC(2,2),r,D(2)
00100
BNX(25)rNY(25)NZ(25)
00120
CALL SCALE
00130
DATA XO/0.0/,ZÚWL/8.0/,RD/57,2957791
00150 C- -
FIND ROLL, vw. AND
yo----00160
NCLP = O
00170
DO 80 I=i,NSTA
00180
IF(NCL(I) .NE. O)GÒ 10 80
00190
NCLP
NCLP+1
00200
A(NCLP,1). = X(I)
00210
A(NCLP,2) = 1.0
00220
A(NCLP,3)
-2(1,1)
00230
B(NCLP) = -Y(1,I)
00240
80CONTINUE
00250
WRITE(92020) NCLP
00260
IF(NCLP.GE.3) GO TO 85
00270
WRITÈ(9,3000)
00280
GO TO 102
-00290
85NA
300300
NBNtLP
00310
90DO 100 II=1,NA
00320
BB(II)
0.0
00330
DO 93 I1,NB
00340
93BB(II) = BB(II)+A(I,II)*B(I)
00350
DO 100 JJ1,NA
00360
AA(II,JJ) = 0,0
00370
DO 95 I=1,NB
00380
93AA(II,JJ) = AA(II,JJ)+A(I,II)*A(IJJ)
00390
IF(NB.GT.NA)
GO 10100
00400
BB(II) = B(II)
00410
AA(II.'JJ)=A(II,JJ)
00420
100
CONTINUE00430
CALL SI1Q(AAiBB,NA,KK)
00440
YAW = BB(i)
0040
YO = BB(2)
00460
ROLL = BB3)
00470
IF(KK.EQ.0) GO TO 105
00480
WRITE (9,010)
00490
102YAW=0,0
00500
ROLL=0.O
00510
YO=O.0
00520
DO 103 I=1,NSTA
00530
IF(NCL(I).NE.0) 00 10 103
00332
YO=-Y(1,I)
00534
60 TO 110500540
1.03CONTINUE
00570
lOS YYY = YAW*F:D0080
RR = ROLLRD
00590 C
FIND FITCH AND
ZU----00600
NWLP = O
00620
IF(:NWLfl+EQ.0) GO DO 120
-29-00630
NWLP
=NWLF +
i00640
ACNWLP,1)
-X(I) 00650A(NWLP,2)
= 1.000660
B(NIWLF) =-ROLL*r(N(liL(I)PI)-Z(NwL(I)I)+ZoWL
00670 120CONTINUE
00680
WRITE(920OO) NWLP
00690IF(NWLF,GE,2) GO TO 135
00700
WRITE(9.3000i
0071Ò
Go TO 152
00720
135 NA = 200730
NNWLP
00740
140DO 150 II=1,NA
00750
DLi(ÌI) =0.0
00760
DO 143 I=1,NB
00770
143DD(II)
=00780
DO 150 JJ=j.,NA00790
CC(IIJJ)
0.Ö
00800
DO 145 I=1,N?
00810145
CC(II,JJ)
=CC(II,JJ)+AU,II)*A(I,JJ)
00820
IF(Ñ9+GT.NA) GO TO 150
00830
Dti(II) =B(II)
00840 CC(I:I,JJ) =A(II,JJ)
00850
150CONTINUE
00860
CALL SIMQCC,DD,NA,I<K)
00870
PITCH
= DtÌ(1)
00880 ZO= DD(2)
00890
IF(KK,EQ,Ö) GO TO 155
00900WRITE (930i0)
00910 152PITCH=0.0
00920ZO=00
00930DO 153 I=1NSTA
00940
IFcNWL(t),Eo,o) GO 10 153
00943
ZO=ZOWL-(NWL(I),I)-ROLL*y(NwL(I)I)
00945
Gb to
i5
00950153
CONTINUE
00980155
PP =PITCH *RD
00990WRITE(9,1Ö30) XOYb,ZO,R,PP,YYY
01000
t
TRANSLATE AND ROTATE
O1Ó1O
DO 160 J=1,NSTA
01020
NP =NPTS(J)
0IÖ3o
DO Ï60 I=1,NP
01Ö40XX(I,J)
=XO+X(J)-YAW*y(I,j)4pI.TCH*Z(I,J)
01050YY(I,J)
=YÓ+YAW*X(J)+Y(I,JRoLL*(i,J)
01060ZZ(.t,J) = ZOPITCH*X(J)+ROLL*y(IJZ(I,J)
01Ó70 160CONTINUE
01080 C
SAVE SCALED ANtI ROTATED OFFSETS ON FILE
2001090
IF(NSTARE.o) WRITE(20, 1080) NBOAT,NMO,NDA,NyR
01095
IF(NSTAR',NE, Ö)WRITE(20, 1085) NBOAT,NO,NDA,NyR
01100
WRITE(20,1070) NSïA, (NPTS(N),N=1,NSTA)
01110
WRITE(20,1070) ÑCLP,. (ÑCL(N,N=1,NSTA)
01120
WRITE¼2O.1070
NWLF, (NWL(N),N=1,NSTA)
0113D
WRITE'20,1070) NFBP,
NFB(N),N=l,NSTÁ
01140
t'O163 I=1,NSTA
01150
I
(NFB(I).NE,Q) WRITE (20,1090) ZFB(I)
01160 163
CONTINUÉ01170
t'O 165 N=1'NSTA
01180
NF' = NF'tS(N)01190
DO 164 J=iNP
01210
NY(d)Yy(J,N)*1OQ.Q+,
-30-01220 164 01230 165WRITE (201060) (NX(I),NY(fl,ÑZ(I),11,Np)
01240
WRITE(9,1040)
01250READ(8,j.050) NDATPR
01260IF(NDATPR.LE.0
GO TO .17501270 C
OUTPÚT SCALED
AND ROTAtED OFFSETS
01280
WRITE (9,1008)
01290DO 17Ö N1NSTA
01300 NPNPTSN)
01310Db 1;70 J1,NP
01320 170WRITE(9,lo1Q) NJXX(JN) 'YY(JrN)
,ZZ(J,N).,NC(J,N) 01330 . 175CONtINUE
01340 1008
FORNAT(/,2X,'STA,pT,
X',6X,'Y',6X,'Z',6X,'COZIE',,)
01350 1010FORMAT(2X,12,2X,12,2X,3F8.2,2X,I4)
0136Ö 1030
FORMÁT' XO, YO, ZO ARE:',3F1Ö,3,'
FEET',
01370 A
/' ROLL, PITCH, YAW
ARE:',3Fio.3.'
t'E6EES'
01380
1040
FORMAT(' TYPE 1 TO PRINT OFFSETS, O OTHERWISE')
01390 105Ö
FORNAt(12)
01400 1060
FORMAT(1215)
0.14.10 1070.
FORNAI(12,'/',25I2)
01420 1080
FORIIAT('YACHT NO. ',I8,2X,12,'/',I2,'/',14,2x,'poRT SIDE')
01421 1083
FORMAÏ('YACH.T NO,',I82X,I2,'/',I2,'/',I4,2X,'STBD SIDE".)
01430 1090
FORMAT (P5.2)
01440 2000
FORAT(' NO. W.L. PIS.
',13)01450 202Ö
FORMAT& NO. C.L.
PIS. =',13.)01460
3000
FORMAT(' NOT ENOUGH PIS TO ROTATE')
Ö1470 O1Ó FORMAT:C' PIS.. ARE IÑDETERMIÑAtÈ') Ö14BÓ
4000
FORMAT'(2513)01490
WRÏTE(9,5000)
01500
READ(8,'1050) NPLOT
01510
IF(NPLÖT.NE.0y CALL PLOIBS
01520
5000 FORMAT (' TYPE i TO FLOT,O OTHERWISE')
01530 200STOP
01540
END
.PLOT FORT
00010
00020 C
00030 C
00040 C
00050
.0006000070
00080 00090 00100 0011000120
00-13000140
00150
0160
00170
00180 00190 0020000210
0Ö215
00220 00222 00225 300230
400240
00250
50060
00270 0028000290 Ç
0030000305
OÖ310
00320
00330 0Ö34000350 C
0Ó360 0Ó370 00380 0Ø39000400
00410 0042000430
00440
00450 00460 00470 0048000485
00487
0049000500
005100020
00-31-SUBROUTINE PLOIBS
PLOT BOW AND STERN
.BOW IS STATIONS NO.
1 TO
1ATION WITH MIX BEiMU4O. JMAX)
StERN IS STATIONS NO. JMAX-i THRU NO, NSTI
COi1iON/BOÄT/NBOAT , NtI(
NMO. NYR ,' NSTAR NMEAS .COMMON/POINTS/N.STA,NpTS(25)
COMMON/OFFSET/XX( 25 25)
( 25 25)
ZZ 25,
25
COMMON/PLOTCT/IST ICL.,.IWL
DIMENSION Y(30),Z(30)
ADATA WLY(-B.,2*0.,2./,wLZ/3*o,,2./,BOxy/_8.,,3*o,,2.,
A BZTIC/3*4.O.,2./
DATA XINC/2./, FACT/i.!, DRAFT/8.0/
DATA XC/999./rSIZEC/0.12/
YMAX=0YSIGN=1.0
IF(NSTAR
.ÈQ,0) YSIGN=-1 .0
rio 5 J=i,NST
NP=NPTS(.J)
DO 5 I=1,NP
IF(NSTAR.EQ,0) GO TO 3
IF(YYCI,J) .LT, YMX) GO TO
5
GO TO 4
IF(YY(I,J) .GT. YMAX)
GO 10 5
JMAX=J
- . . YMAXYYCI,J)
CONTINUECALL PLOTS(IDUM,IttUM, 12)
CALL. PLOT(5,,5.,-3)
CALL FACTOR(FACT)
bEtIDE WHAT GOES IN WHICH PANNEL
IF(NSTAR.NE.0 )NSTAR=1
IF(JMAX.EO.NSTA) JMAX=NSTA-1
NRPL=JMAX+ i -NSTAR*JMAX
NRPH=NSTA-NSTAR* (NSTA-JMAX)
NLPL = 1 + N S T A R *JMAXNLPH=JMAX+NSTAR*.( NSTA-JiIAX)
DRAW LEFT PANEL
CALL AXIS(-4. ,-4.,'
-Y' -4,4, 0. 8. ,-XINC)
CALL AXIS(-4. r-4,,'
Z'46.90. ,-8.
,XINC
CALL LINE(WLY,WLZ,2,.i3O,O)
CALL LINE(BOXY,BOXZ,3. i y0,0)
CLL LINE(YTIC,ZTIC,3,1,-1,3)
CALL SYMBOL
(-4.,3.,SIZEC,'YACHT NO, '0,1O)
CALL NUMBER (XC,XC,SI.ZEC,FLOATCNBOAT),o.-i)
CALL SYMBOL (XCXt,SIZEC,'
MEASU-RED ON '01.4)
CALL NUMBER (XC,XC,SIZEC,FLOAT(NEIA) ,0,-1)
CALL SYMBOL (XC,XC,SIZEC, 'I.' ,0,i)
CALL NUMBER (XC,XC,SIZEC,FLOAT(NMO).o,-1)
CALL SYMBOL (XC,XC,SIZEC, '/'0i)
CALL NUMBER (XC,.XC,SIZEC,FL:OATCNYR),O,_1)
IF(NSTAR.NE.0) CALL SYMBOL (XC,XCSIZEC,'
IF(NSTAR.EQ.0) CALL SYMBOL (XC,XC,SIZEC,'
DO 20 JNLPLNLPH
NP = NPTS(J)
DO 12 I1,NF
Y(I) = -(YSION*YY(I,J))
T(V(T
ar
c'ji-..
rSTBD SIDE'011
PORT SIDE''0i1)
00540
.12 Z(I)ERAFT+ZZ(I,J)
32-00550
Y(NP+1)
= 0.00560
Z(Ñ-fl)
=0.
00570
YN+2
=XINC
0058Ö
Z(NP+2)
XINC
00590
CALL L.INE(Y,Z,NF'. 1,1,2)00600
IF(IST,NE,Q) CALL NUMBER
(Y'NF)/XINC,ZNF,/XINC+,1,O?,
00610
AFLOAT(J),O,-1)
00620
20
CONTINUE
00630 C
DRAW
RIGHT
PANEL
00640
CALL PLOT(.5,0,,-3)
00650
CALL AXIS(0.,-4.,'
Y',-4,4.,O.,O.,XINC)
00660
CALL AXIS(4.,-4,,'
Z',-4,6.,90.,g.,XINC,
O0670
WLY(1)= WLY(1)
00680
BOXY(1)
=BOXY(1)
00690
CALL LINE(WLY,WLZ,2,1,0,0)
00700
CALL LINE(BOXY,BOXZ,3,1,0,0)
00710
DO25 I!1,3
00720
25
Ytï(I)
=YTIC(I)
00730
CALL LINE(yTIC,ZTIC,3,1,-1,3)
00740
DO 40 J=NRPL,NRPH
00750
NP
NPTS(J)
00760
DO 30 I=i,NP
00770
VU) = YS.IGÑ*YY(.I,J)
00780
IF(Y(I) ,LT.,5)Y(Ï)=.5
00790
30 Z(I)ZZ(I,J)DRAFT
00800
Y(ÑP+1)
= 0.00810
.Z(NP+1) = 0.00820
Y(NP*2)
=XINC
0830
Z(NP+2)
=XINC
00840
CALL LINE(Y,ZNP,j..i,2)
00850
IF(IST.NE,Q) CALL NUMBER (Y(NF)/XINC,Z(NF)/XINC,1,.07,
00860
FLOAT(J),0,-1)
00970
40CONTINUE
00880
CALL ENDPLIc2O.,o.,999)
008.90RETURN
00900
END
REA ti YSTEP (5) - REFORMAT DATA
Purpose
This step merely reformats the rotated data to be compatible with the Lines Processing Program (LPP).
Procedure
The totated ata produced by SCALE can be prepared for input to
the LPP by executing the co=and sequence CT.cLIST. If, for example, the rotated data is named DEM1.ROT.DATA and the file BOATA.LPP.DATA is desired, then
EC CVT
'DEMl.ROT BOATA.Ì2P'will call program CVT.FORT.
The Fortran program CVT.FORT reads the scaled and rotated. offsets produced by Step (4), and reformats the data to be consistent with the LPP program. CVT ïnterrogates the user for freeboard and stability data (typically taken from the IOR certificate) which, will be used by the LPP to determine flotation of the boat. Since the rotation performed in Step (4) i a solid-body rotation, each offset. in the boat reference framé has a distinct x position. On each sect-ion, CVT
finds the offset with a' height nearest the waterline, and assigns the x-distance associated with that offset to the entire station.
-33-Listings
CVT.CLIST
CVT.FORT Pogram CVT
-34-
-35-CVT CLIST
00005 PROC 2 IN OUT
00010 FREEQ FI(FTO1FÓO1,FTO2FOO1)
00020 ALLOC FI(FTO1FOO1) DA(&IN,.DATA)
00030 ALLOC
FI(FTO2FOÓ1) DA(&OUT,.DATA)
USING(CARD) BLOCK(168O)
SPACE(1,1)
00040 LOADGO CVT FORTLIB
CVT.FORT
36 0001:0 C
PRÒGRAM TO CONVERT MACHINE DATA TO LPP FORMAT
00020
DIMENSION LABEL2O) 'NP(40) ,XSTN(32) NX(34) ,NZ<34,32),
00030
1 LFBD(20),Ny(34,32)
00040
DATA NWL/800/
00050
REAL LBO
00060
READ(:1,1OÓ)(LABEL(N),N=1,20)
00070
100FORMAT(2OA4)
00080
WRITE(2,106) CLABEL(N),N=1,12)
00085
106FORMAT(1X,12A4,' WITH PRATT DEVICE')
Ó0090
WRITE(6,105)
00100
105
FORMAt(' ENTER VCG,RM1')
00110
READ(5,*)VCG,RM1
00120
READ(1,,112)MSTA,(Np(M),M=1,MSTA)
00130
112FORMAT(12,1X,4012)
00135
READ(1,114) NFB
00136
114
FORMAT(//,12)
00140
WRITE(2, 109)jISTA,VCG,RM100150
109
FORtIAT(i5,2F10.3)00160
WRITE(6,107)
00170
107
FORMAT(' ENTER NOTÉ GIVING
SOURCE 0E FREEBOARDS')
00180
RÈAD(5,lOg)(LFBD(N) N=i,18)
00190
108FORMAT(19A4)
00200
00210
WRITE(6,i1O)
00220
110
FORMAT('
ÈÑTER STEM,FGQ,LBG,FF,FA')
002-30
READ(5,*)STEM,FGQ,LBG,FF,FA
00240
WRITE(2,111)STEM,FGO,LBG,FF,FA
00250
111FRMAT(5FjO,3)
00253
WRITE(5,102)
00254
102FORMAT('PORT(0) OR STBD(1)')
00255
READ(6,*)NSIDE
00260
DC i M=1MSTA
00270
NRAT=800
00280
NTNP(M)
00300
READ(1?101)(Nx(N),Ny(N,M),Nz(N,M),N1,NT)
Ó0310
101FORMAT(1215)
00315
DO 2 N=iNT
00320
NBUG=IABS(NWL-NZ(N,M))
00330
IF(BUO.GT:,NRAT)GQ tO 2
00340
NINDXN
00350
NRAT=NBUG
00360 2CONTINUE
00370
XSTN(M)=FLOAT(NX(NINDX) )*.Ó1
00375
IF(NSIDE.EQ.1) GO TO 1
00380
DO 3 N1,NT
00390
3NY(N,H)=-Ñy(N,M)
00401 iCONTINUE
00402
DO 4 MM=1,MSTA
00405
M=tlM00410
URITE(2,1Ò4)XSTN(H),Np(M)
00420 104FORMAT(F1O.3,15)
00425
NT=NP(fl)00430
WR1TE(2,1t3) (NZ(N.,M.) ,NY(N,M),N=i,NT)Q0440
113FORMAT(1415)
00445
4CONTINUE
00460
99WRITE(6,1Q3)
00470 103
FOR?IAT(' END OF PROGRAM CONVRT')
00480STOP
STEP (6) THE LINES PRDCESSZNG PROGR.A (LPP)
Purpose
The LPP is a special purpose hydrostatics program designed to provide all of the
hull,
geometric informationwhich
might be expected to be used as input to a rating rule. The program accepts offsets obtained either from the huU measuring device or from a lines drawing. In both cases, floatation and inclining information must be
provided. This information can be transcribed directly from an IOR certificate, or can be reconstructed from information provided by the designer.
Procedure
An input data file may be created from the
hull
measuring device data using CVT.PORT, or may be created manually. In either case, the LPP is run simply by typing the coimaudEC LPP
'NAZIE'where NAZIE is the name of the input data file.
Listinqs
LPP. Fort
LPPSLIB. Fort
-37-U.
1 1'98. "3,25. LPt
. FC' RTC 'IA.tN ?C)
PR4TT
T'OJ!C HP( AND STAB
MAY 1977
C
COPY"T-tT(c)
ÂSSACUST
INSTITWrE O' TECUWOLCY 1977
DI'gSIO'
1,A'S (4,4C) , rR(4) ,D
((+) ,HL (f4) ,DF(4) ,ZD(27) ,ZF(69 ,27)
2Y
g. 27)
(2.7) ,f! (27) ,7 (27) ,G (27) ,: (27) ,s (27) ,SE (96)
,X? (100)
DLMFNStON(27)FLWt(j,XALWL(),RE(96),Z?MI'(27)1Z.9QT(27)
DII'!ENSLON LFBrs(2o) ,XPP(27) ,ZRAIL(30) ,LPF(4) ,DPA (4) ,NDISP(4)
DI!!&StON SV(27).1SH(27),SG(27)
RZP1L* LWL (4)
L2'I(4) ,LRG,LS1 (14)
DATA KO)E/1,2,21 1/
DATA
L/0.0,2.O,25.0,r.0/
DATA SMALL/0.04/
POSITIV! AFT, Y POSITIV! STASBORD,
POSITIVE
1PXC*LWL
IDIIGS X'LWL(l) AND
ALhL(1) AR
DFINED AS TR? ZER')
INTERCE-PT OF
.SPLINE TRROUGH 'F SQUARE ROOT OF TRE SCTION
APEA CURVE
C
FOR g=
&T=O. O 16
100
FT)MT(18A4/I5',2F1o..3)
t? (MSTA.CT. 32) WP.IT (6, t4D3)
40.3
FORMAr(5x,tToo MANY STATIONS
- LI!IT 15 32
tFUS QuIT')
IF(3TA.Gr.32)GÒ TO 17
AD(1,15) (L9DS(N) ,!=1,18)
105
?ORíÄT(18k4)
IF(MS'A.EQ.0)GO TO 17
x*
ARRT
**'
DO 7 M=1,i'!STA
ZPRC()=0.O
DO 8 4=1,3
8IÎPTS(M,!fl'=O.O
DO 7 N1,69
Z (N,V)=0.)
7no io K1,4
DO 1'
L=1,140
10
!'4S(K,L)=0.O
C
REA!' STEI & IOR MEAS[TR!D DATA
'101
?OBMAT(SF13.3)
READ(1,101) ST!,!GO,LBG,F,FA
Xi) R F ST 'Z 4-? GOXflflA=C!'R'+LRG
YCiG-=). 5
(XDPR+XDflA)XDR!=!?_XC1G
51
'O.RMkT(I5,12.B.3)
C
'' RAD AND PPFPROc:Ss 3TATTe7 DATA
DC)
.1 M1,S!A
-2rAD(i,1'LL) !STNH(),NP
1"4
'O'('1.3,I5)
TF(P..35)EITF(Ó,LO5)
14r5 0PM
(c,rC
A\IY "Clu 'c - Li?1T 35 - T-TÍ'S
JIr')
T? (N?.:T.35) " TO 17
( ) = X ST N ( '.
KSTN ('1) =Xr.(.) -Xc:r
-38-rLr1 1i98.fl32.LpP.?opT
PAD(1q 1C3) (Z(N,M) ,Y (Ñ,!) ,N1!)
C 103ÖP!'(1.'45.2)
68I?(Y(NP,M).LT.S'ALL)Go
TQ 22 N N iZ(P,1)=Z(NP-1,M)
22 Y(NP,'!)=O.O ZPEO ( =Z (i,N) ZRAiL(.) =Z (NP, N)C
* ID!MTIFY AND
LININATE NFGATI7
hULL OSTS
MP N P
N1
NUT=O
DO 2 J1,WP
IF(N.GT.PP)GO TO 5
IF(AS(?(Ñ,M)).LT.5MALL) Y(N,M)=C.O
tF(Y(N,z).GT.-C.00ci) GO TO
2I?(NUT.?Q.1)Go TC 3
NPTS(M,2)=N-1
NUT= i 3NPPNPP-1
DO 4 E=,NPP
Z (K,N)=Z (K+i,)..NN-1
2N=N+1
C
REFLECT THE UtILL ***
5 ?!UTT=NP?+1
JEPH2*ÑPP
TNPTS(M,1)=JEPH
DO 6 N=MUTT.JEPH
NPP= NPL'- i Y (N,N)=-Y (NPP,N) 6 z (N,!)=z (NPP,N)t?(NPTS(M,2).GT.0) NPTS(M,3)=JPfl-ÑPTs(,2)
NP=NPIS(tl,1) i CDNTINT5C
CALCULATE DRAFTS INTIDED FROM ?REEEOAaD INPUT
MF=2
NSTA
PO 21 N=2,?ÍSTA Ii' (M).G. XF. AND.sTN (t-1) .Lr. XDF) MF=
21
IF(STN(').J:.XD.kND.XSrN(M_1).LT_XDRA)NA
DR? (1) =Z?AIL (-1) (ZR UL ()-:RAIL(NF-1)
) *(XDP_STN (MF-1) ) /(XSTN
i (MF)
STN (NPi))
-DRA (1) =-ZAIL (M
k-l) + (ZRXLL (M)-p.AIL (NA-i))
(xDRA-xsTN(A-1) ) /(XSTN
i (LÀ)-.XSTN(M.Â-1))-F,k
CWR1TE'(6,550) DRF (1) ,1RA (1)
-5C
ORNAT(2F1O.3)
C CDC li K1,11
C
5I:4
ANDO? EiE!L ANGL
57')
IF(KoD().:QQ)G3
c
12C3=COS(t.tL (!)
O.Ci7L53)
-40-U. Nl 109S. 0325. LP. FOT
flO13 M1,tSTA
ZF?OT()=0.0
ZFMtN (N) =1O.O
DO114 N=i,NP
(N1) *C5-Y (N, N)
SSZFNIN(N)=AINi(7FNIN(N),Zp(Ñ,M))
14
Y?(N,fLt)=Y(N,fq)*CS+z(,j)*55
13 CONTINIJE C_T
- --c
robz
INPUT
OUTPUTC
i
DRAFTS VOL C.TR TCC
2
VOL + CTR
DRAFTS ETC
C -
-ffLF=1.O/2.0
5I1.O/6.0
TTH= 2. 0/3.0
KkT=0
IF(KOD(K) .EO.l) E(AT=1
KDQIT:0
kSS=D!A (1)
PRINT=O
IF(K.N.4)GC TC 20
UPF=O.012* (LWL(i)+L2M(1))
UPAI.5*UPF
SLOPE=SLOPEl+ (UPA-IJPF) /LWL (1)
ELK=DRt(1) +rjpy+sr..0pc4* (XDRF-XFLWL (1)
ASS=DRA (i) +tJPA+SLCPE4 (X:DRA-XALWL (1)
20
.00 18 K.TRY=1,49
!DOIT=1OD (.DOIT,3) ft
VOL=0.')
CBLO. O
CV0.O
GIRO.D
kLP=0.0
ALATP=C.O
C
CALCULATE SECTION DATA
T)O 1CJ
,NSTA
ZD (N) =ELÇ# (SS-ZLK)
('S1N (N) -DRF)/ (XERA-XOPF)
C
DEFtNITION
0R KAT--
0= DC MINIUN
1= DC ALL ****
CLL
6113
FOIPIAT{IS,3F10.5)
SA (F M) (N)
19
COÑTIÑ[TFC *
IA!E ARRAYS CF POS AND AREA FRCN
OW O TO STERN C
**
52
DO 54 N=2,1STA
-rF(Zc(M).G!.ZE?IIN(r))Go TO 53
54
ONTI'îJ
53
(B=XS
N (M 1) i- (XSr' (Ml) -s: ( i-ii, ) ' Z 0(11) -Z'Mj
i)
1/?iI4 (Ml) -ZFNIN (1-1))
SV(1)=-.D
S(1)='.O.
1J_ ?!i 109e. D325.LPp. FORL ZPBOT Cl)
=.
JA (1)=0.
J=l to 55 .1f!l,MST,J=J+ i
JS=J
M2=M- iIF(Z1tN(1) .GE.?(M))Go TO
56X (t)
STN (?1)S (J)
A (M) S V (J) =V ( M) S (J) F1 (M) SG (J) G (M)RA (J)
SQRT (S (J)
ZFBOT (J)
ZD (N) -ZF'1IN (M)
55
56
XSXSTN.(M2) +(XSTN(N2+1)-XSTN(M7)
)(Zt(!2)-z7fIN (I2))
RA (J) =0. 0
C(J)=XS
S (J) =tD
O SV(J).=0.,0SF! (J)=0.0
SG(J)=0..0
ZFBOT(J)=O.O
TO 58
X(J-l)
X (J)
RA(J-l)=Q.O
S(J-i)=O.O
SV(J-1)=O.O
SF! (J-1)=0.O
SG (J-i)=0.0
ZFEOT(J-l)=O,Q
JS=JS-1
N2=N2-1
58
CONTINU C*
TAPZCIDAL INTEGRATION
***
60CONTINuE
DO 29 J2,J5
VOL=VOL+HLF
(S (J) +5 (J- 1))'D1L
BUG= (Y (J-i) +LF'DL) S (J-l) CEL
(X(J-1) +T'Ff*DEL) *HLF*DEL
l*(S(J)s (J-i))
caL=c3L+unG
VO LT= VO LCSLT=CSL
ALATP=LATp+LF* (Z9OT (J) +ZFCT (J-lj)
)DIL
GIR=GIRr.F (SG (J)
SG (J-l))
bEL29
CNTINU
SPLIflE
FIT, JEIVA.TIVE AND INTFCP.ALS
OF 5(X)
*
IF(KT.NE.l)GU TO 25
CALt.CALL ¿V?L(JS,_lJG,c,Xp,sp,$)
CALL DITI)(JS,iOO,X,XP,SPF,S22,E)
CALL
-41-1i.O325.LPP.FCRT
CALL
cA:Lr.. !JGL(D((JS,1,1,.Sv,FSL,ESR,V)
CALE. (J3LYD!c(JS,1,1,X,RA,E3L,ESR,Ic2)
CALL INT!DK (JS,XSKB,XS,CBH,20G,RAT,HZ)
CALL INTDK (JS,X,X?,XS,CV,ROGvPrT,Vfl
CALL tITPD (JS.XVXB,XS,RDX.YRC'(,XXICXSflE)
23
LWL()=Xs-x
XFLWL (K) =X3 XALNL (K) XSL2M(K) =5.O*SQRT(A2,VOL_(CBL,VCL)**2)
LSM(K)=(4..355QPT(xRcx/pDx- (XRDX/RDX)**2)
DO 3D
2O,80
NOt1S!=,i
TO 38
.30
CONTINuE
38Mt1OUS
XMA=CP(T)+ (XP
(+1)
-XP (Lt'))*PR(M+1)/(S?R (N+
1)-SPR (N))CALL EVALDK(JS,1,X,!MAX,SNAX,SE)
C WRITE(6,501)X!'IAX,SMAX,NOUSE 501FOaAr(15x,2F9.L,19)
26CONTINUE
IF(TflCIT.PQ.1) VCLZ=1OLIF' (KDOIT. EQ. 1) CBLZ=!1L
IF(KTRY.FQ.149) KPBINT=1
IF(KAT.Q.1)Go TO 95
GO TO(31,32,33),KDOIT
31DRA5=ELK
VOLS= VOLCBL5=CBL
ELK=LK+0. 1
GO TO 18
32AA=1.O*(VOL_vcLS)
CC=1O.0* (CBL-C!L5) ELK=SLK-O. iASS=AS+0. i
GO TO 19
33RB=1O.* (VOL-VOLS)
DD=1O.0* (CBL-CEL5) D N=B B*
CC - A A*
D O0/ON
DEADD=CC/DN 0H F D N=B B/ D NDHADM=-ILt/DN
3LlBVOL=VOLD-VOLZ
NON=CBLD-CPLZ
DHF=DHFOD*EVOLDDMC.
DHA=0!A DOEVOL+DLA tY1*INCM
IF(rTRY.L.21)GO TO 59
LK=L(+''. *DHF
."SS=ASS+ '.. 5'DUA-O. i
OT') 93
59
!LPLic*DFF
AS=A.S5lc:A-C.1
98t(KT. Q.9) (t=1
CTP
NI?«T STAT1ENT
flIT' (5,9') (!c,TRY.,xr3,:LK,'uFx5,kss,D?A)
42-
-43-ti.
M11fl98.0325.Lrp.FCFT
9go
18 CONTIN1r
95 LF (KP'IM. EQ. 1) ir' (6, S02)
502
PORAt(5x,'No CCV-GNCF ('T
13 LOOP K= '.12)
C
*'*
FflLLCVI'JG A°'F5IFt V%LtFs Fo° SEJRSEQ
C'iLC
BALANCING
35
VOLP=VOLT
CLD=CBLT
C
***
FINAL FIXUP OF PESÜLTS
**
I
(K. Q. 1) voLtp: 1OÇ. 0*
(VCL-VCLT) /VOL
DRY (K)
ELK/CS
lRk(K)=ASS/ç
IF(K.Q. 1)SLCPE1=SLQp
.DPF()=b2F(K)gLQ*(xpLL(1) -XDRF)
PPA)=DRACK) +5L*(XALWL{1)_XDRA)
C
**
CALCtfl.AT! FZBOARDS ?RO
DRAFTS*'
FXFLWL(1)
B!ALWL
(i)
DO
61
2,1STA
IF(STN
(ii) .!.
F. .ND. XSTN ('-1) .Lr.F) MF
61
r' (XSTN (M)
.
GF. P A'YD XSTKT (M-1) LT. B) ?IA=M3F=Z!AIL (NP-i) +(P
IL(fl?)_ZfIIt (T'-1))
(F'-XSTN(NF-l))/
i (XSrN (f'F)STN (MF-i)
SBZRAIL (M!t-1) +(ZTIL (MA)-ZRALL (M-l))* (3-.STN (M7-1))/
i (XST'T (4A)-XTN (N-1)
C'*
FINAL
REEDCARDS *DP? (K) =SP-DPF ()
DPA (K)=SB-DPA (K)
ANS(K,1)=VOL
S (K , 2) =54.
vr t
'DISP(k)=ANs(K,2)
ANS (K,5)
(9V*CSfC?,H*3S)/VOL
CVCB AD VCG TO
WtTr?PLA'IE
IF (ic.
EQ.
1) POS=Cs C/VOLI(K.r'O.
ANS (K,5)
=NS (K,5)
ZtJPt?
(K. EQ.2.AND.RM 1.GT.O. 31)GK
(CB:i-2.. G*RM1/64.0)
/(3S*VOL)
H kNS
(K, 6)
*GEÇ-ZWPANS (K,7)=C5E/VCL-G55
ANS (K,8)=NS (K,7)
*ANS (K,2)IF(l1EL(K).NF.3.Q)Go TO 24
ANS(,9) =O.
GO TO
2524
25
ANS(K,1C)=GIR
ÀNSK, 1) VOL/ (3f1AXLWL(K)
11 CONTINU Cc
12
DO 9 '=1,:Is:k
9STNN=r-pF
XL't?= D. O
-44-U.
1), 032 5.L'P. FO PT
x2R;t.iL (1)
.vL.N=c'. 156666' (LWL (1)
L29 (1) +LWL (3) fL2?1 (3) +LWL (4) L2M. (Li))
ITE(6.3:3O)
...
.33')
!O!MflT('
MOVE TO NW
PAGE ANPTtTRN')
READ (5,332)
1CTJSE332
!OR1AT(I5)
WaITs (6,3O) (LAPEL () ,N 1,16)
300
FORltT1:I1,1Ox,'IT - t! IRVtNG PTT
OCEk
RACE tiANDICAPPING .EROJE1Cr'/1X,'LINE$ PROCESSING
aCGA1 -
AY 1977'/5x,16AL)
WRLTE(6,312) (LBCS(N) ,N=1,16) ,STE,STN,?G3,LT3G.FF,FA
312
?!)R1AT(5X,'?REEOARDS FRC: ',16A4/
1SX,34ff"STFMaEÂD" LCCATIO!:
XMEAS,F6.2,6,'XRLWL(1)=',f6.2/
25K,6H"FGO"=
,?52,7X,6h"L8G'=, P5. 2,7X,6EFF(1) ,F5.2,7X,óHFA (1=,
3F5.2/
435C,'*
i
*
2 3*
4535X,'*',4 (8.1,1*?))
W.aITE(6,301)(UEE.L(K),K=1,4)
301
FORMAT(5,'aE!L
DEGREEs',17x,'* ',4(F6.3,'
*
eWarrE(6, 302) IrR?, (DPF (K) ,K=1 ,!I) ,XPRA,
(DPA(K) ,K1 4)
302
0RAT(5X,'R!WCARD FW'P
(AT ',F6.3,.' FT)
',4 (F5,3,'
*
251,'?REBBOARD AFT
(AT ',F6.3,' FT)
*
',UcF6.3,'
WRITE (6,303) (ANS (N, 1) ,N=1,4), (NDISP(N) ,N=1»fl,
(ANS (N,3)
,N=1,4)
.303
FORNAT(15X,'DtSPLACEMF:NT
CUBIC FT
*
',4(P6.1,'
25W,'DtSpLAcENy
PCU$DS SW
* ',4(±6,'
45X,'LCB Z AFT OF FWD END OF Lt(1)*' ',4(F6.2,'
WRIT(,3')((ANS(N,!),N=1,Li),'1=5,6),(ANs(N,9),N=1,4)
304 FORNP1T(151,'VCB ABOVE WATFRPLA.NE(1)
FT ',4 (F6.2,'25X,'VCG ABOVE
WAIERPLÀNE(1)
FT*
',4(F6.2,'
*
55X,'R/DG LiEL
LP.S-FT/D ',Ll(F6.C,'WRITS(6,3')5) ((NS(N,M),N=1,Li),1=iO,11)
305POR1AT(
i5r,'wzTTD SURFACE
SQ FT
',Ll(FG.l,''U
251,'LATE?Ar. PLANE AREA
SQ FT
* '4(F.1,' *
WtTE(6,306)(2tNS(N,14),N=1,Li)
306FOR1AT(
151,'PRIS?lATIc COEFFICIENT
*',4(F7.3,'
*))
WRITE(6,313)
313
?OtMAT(5C,'
..
. 'i
WIt(,31l)(LWL(K),K=1,Li),(LSN(K),K=1,4),(L2(K),K=1,Li),AVLEN
311?OR1At(1OX,?LWL,,22x,*?,4(?7.2,I
*1),
110x,?LSNf,22x,I.*?,Li(F7.2, '2101,'c2.,22Y,':*',4(r7.2,'
')/31OX,'AVERAGE LENGTH'rF9.2)
WRITE(6,313)
!tTE(5,3O7
3C7FOR?AT(
15X,,'SECTtON AREA C[VS -
APEA tN SO FT AT (IN POSITION IN FT AF
2T'/lLiX,'INPUT
;:'
LL(1')
*
1 2 3 43")
WRIT(,3O9)
('1,YX1) ,XP(1),
(SA(N,.),i1,4.)
,M=1,STA)
3O'
i
F7. 2,'
,F7.2,
I*t
F7. 2,
.:RtTZ (5,U9) VCLT!
Uh1.)325. LPP.?ORT
1Ss TERN SL'LTNE')
R!D (5,332) ?IC:USF
GO TO. 16
17
STOP
ND-
(14N)
NI)
(N)i
'
L'kNLN
L 0G L N= N L-LkN=ZN
L-Ni
N=L 1o/d-Iv;
LVQ)Nix
N0IExaQ
iiaa
SLL
D3
1Dß2NIi1JOdflS
QN.anNla,No3
ZflKILNOD
Lt
+=
A)(L-N)
z'
(L-N)
A'
(N)z'
(ti)
((M)
z'
(«)A'
(L-N)
Z'
(L-N)A)
Wtt+A=A
(L)Z(L-N)X)Woll+
(i)1'
((N)z'
LI
Oo(v')1
((N)Z'(N)A'(L-Z'(L_N)A)y2fyV
dN'Z=N
LI
OQ---
3ILDS
5dWI
¿11MI
---
Dl33ddOD
*******(E'Z)salN
01
DI01
Y10N*******
D z L-r=
2flNLLKOD L =(r)
i
L L OJ.oD(az()z)aI
8ciz=(r)z
9dz-az)
(ti)
¿,)/(
(z-(L-N)
C(s)i-
(L-N)
.x)()dA=
(r),i
t,901.Q
(L-N).Ai=
.A)+
Ai-CR)
((L-N)
Z-aZ)u
(L-N)
((LN)Z-(NLz)/(
(L)A
L8010e
01
17 £0i
aoi
o(êN)l1
OQ L'N'I=N
N0I.1DJS
(2SWWI
1I. dOSOI1Y831NI
H0.iLY8Y
W3
---
D 3O=
OOA
0.o=v
LI
Oo(L.)OOCj,'!f
(uz-
(**
(a-s)
*i+oE/(d-s)
((O+a)
*(Ö*oz+a))
C9/
(Ö*a+**Ö+
(a+Ö)
(S;)
i'
(;s)
z'
CL)i
3i,Yd
SMOL13S
''A
(i
!DY
LL6L
s
a
az
'i
IJfl1I1LSI
O-Di.
A0'!O
LLÔLSI,
()
NIX()
s'(O(:G)
''
(oc)
a'
(oc)
'
(L)
¡(L)
NIAa
(L(v
'S'TS2
'
NIA
'NIX"
aYN.''!DM'ÑIN)
aZi'!yII,INI
D:as'
(a-O))
(s
'O'
a'a)
s-s
o Cs'ö'
'a.)
wa
(s'Ò'd'd)
(a-s)
*a)*
&ou y'CL).dz'(L)SdN
NoIsNawIa
I,DS
01,L1NI
NI1çoaens
D
1is
'Z'SI,dN)
2flnoans
(3)11dAd03
iflIDSSV'
3