## `Example run file for IMO High Speed Craft Annex 7

project HSCIMO

enter pm

units mt

title block catamaran

create cathull\stbd.s

class hull

ends 15f, 15a

top 4

bot 0

out 1.5

vector 0, 5, 0

comp prow.s

top 4

bot 3 @ 18f, 0 @ 15f

out 1.5 @ 15f, 0.1 @ 18f

vector 0, 5, 0

join stbd.s

comp port.p

shape cathull\stbd.s

vector 0, -5, 0

comp deck

ends -14, 15

top 8

bot 4

out 6.5

/

create sail

class sail

top 30 @ -8, 10 @ 10

bot 10

out 0.01

/

create cmpt1

ends -5, 5

fit stbd

/

write

quit pm

report /box:bw

`di print /nooff

\\\\\\\\\\\\\Stability Report\

\\After IMO HSC code\

`Light ship & loads:

vcg 6

draft 2

solve weight, lcg

`Set these constants as appropriate:

VARIABLE NPASS = 30 `Number of crowding passengers

VARIABLE WPASS = 0.8 `MT/passenger?

VARIABLE DCROWD = 5.0 `Distance off CL of crowd center

VARIABLE WINDMPS = 30 `Wind speed in meters/sec

VARIABLE TURNRAD = 50 `Turn radius in meters

VARIABLE TURNSPEED = 20 `Knots

VARIABLE MAXDEQ = 15 `Max damage equilibrium 15 for passenger, 20 for cargo craft

MACRO WINDHM `%1 - I for intact or D for damaged

VARIABLE P

SET P = {WINDMPS} DIV 26

SET P = {P} TIMES {P}

IF "%1"="I" THEN SET P = {P} TIMES 500 ELSE SET P = {P} TIMES 120

\\Wind pressure = {P} N/sqm\

SET P = {P} DIV 9800

WIND (PRESS) {P}

TRIM = 0

HMMT WIND /CONST

HMMT REPORT

HMMT = {HMMT}

/

MACRO CROWD

VARIABLE %1

SET %1 = {NPASS} TIMES {WPASS} TIMES {DCROWD}

\\Passenger crowding heeling moment: {%1:2}\

\

/

MACRO TURN

HMMT TURN {TURNRAD}, {TURNSPEED}

HEEL = 0

SOLVE TRIM

VARIABLE %1 = {HMMT}

HMMT REPORT

HMMT OFF

/

MACRO FINDFLD

HEEL = 0

RA 0, 5 ... 40 /STOP:FLD /HOLD /NOPRINT

VARIABLE FLDANG = {HEEL}

HEEL = 0

/

MACRO FINDMAX

HEEL = 0

RA 0, 5 ... 60 /STOP:MAX /HOLD /NOPRINT

VARIABLE MAXANG = {HEEL}

HEEL = 0

/

MACRO LIM1

HMMT OFF

.FINDFLD

.FINDMAX

VARIABLE A = {FLDANG}

IF {A} > {MAXANG} THEN SET A = {MAXANG}

IF {A} > 30 THEN SET A = 30

UNITS MT

VARIABLE T

SET T = 1.65 DIV {A}

LIMIT AREA FROM 0 TO {A} > {T}

/

MACRO ROLLRA

LIMITS OFF

LIMIT AREA FROM EQU TO 15 OR FLD > 0.028

SOLVE

VARIABLE A

SET A = ABS {HEEL}

MACRO SAY

\\Capsized to an angle of {HEEL:0} degrees with this heeling moment.\

\

//

IF {A} > 20 THEN .SAY ELSE RA 0, 2 /LIM:ATT

HEEL = 0

/

`Area to limiting angle without considering heeling moment:

SUBTITLE

\Intact Stability\

\Absolute area\

PAGE

LIMITS OFF

.LIM1

LIMIT ANGLE AT MAX > 10

LIMIT REPORT

MACRO SAY

\Downflooding angle%1\

/

IF {FLDANG} > 30 THEN .SAY " is greater than 30 degrees." ELSE .SAY ": {FLDANG:1}"

\Angle of maximum righting arm: {MAXANG:1}\

\

HEEL = 0

RA 0, 2 /LIM:ATT

`Equilibrium angle with gust:

SUBTITLE

\Intact Stability\

\Equilibrium angle with wind gust\

PAGE

TRIM = 0

.WINDHM I

VARIABLE GHM

SET GHM = {HMMT} TIMES 1.5

\Gust Heeling moment is 1.5 x {HMMT:2} = {GHM:2}\

\

HMMT = {GHM}

LIMITS OFF

LIMIT ANGLE AT EQU < 10

RA 0, 5 /LIM:ATT /GRAPH:NONE

`Residual area in roll with wind plus crowding or turning:

SUBTITLE

\Intact Stability\

\Residual Area with wind plus crowding or turning\

PAGE

.CROWD PHM

.TURN THM

VARIABLE HM = {PHM}

IF {HM} < {THM} THEN SET HM = {THM}

SET HM = {HM} PLUS {GHM}

HMMT = {HM}

MACRO SAY

\Total heeling moment: %1 plus wind gust {GHM:2} = {HM:2}\

\

/

IF {PHM} > {THM} THEN .SAY "passenger {PHM:2}" ELSE .SAY "turning {THM:2}"

.ROLLRA

`Damage:

SUBTITLE

\Damage Stability\

PAGE

.WINDHM D

VARIABLE HM3 = {HMMT}

VARIABLE HM4

SET HM4 = {HM3} PLUS {PHM}

\Heeling moment with wind {HM3:2} plus crowding {PHM:2} = {HM4:2}\

\

MACRO FLDCASE

TYPE (%1) FLOOD

HMMT = {HM3}

SOLVE

STATUS

PAGE

LIMITS OFF

LIMIT ANGLE AT EQU < {MAXDEQ}

HEEL = 0

RA 0, 5 /LIM:ATT /GRAPH:NONE

HMMT = {HM4}

.ROLLRA

TYPE (%1) INTACT

/

.FLDCASE CMPT1

print preview

report off

end