proj carghold
`demonstrates flooding with solid cargo remaining in hold
`separate tanks created for flooding at each cargo level

read fv

enter pm

macro flood
create %2.c
ends -99,99
fit hold%1.c
deduct CARGO
ends -99,99
top %3
fit hold%1.c
//
/
.flood 1, FLOOD1A, 7.0 `create tank for flooding HOLD1.C with cargo 8.0 ABL
.flood 1, FLOOD1B, 10.0

write fvcargo.gf
quit pm

report

`for convenience, define variables to represent geometry
variable (st) hold1="HOLD1.C"
variable (st) hold1FldA="FLOOD1A.C", hold1FldB="FLOOD1B.C"
variable hold1LdA=7.0, hold1LdB=10.0

`light ship:
draft 6
vcg 7
solve weight, lcg

macro loadfld `%1: hold variable name; %2: permeability;
     `%3: contents name; %4: spgr; %5: cargo permeability; %6: load level letter
heel 0
trim 0
tank {%1}
perm %2 /quiet
content "%3", %4
ref 0,0,0
load height:-{%1Ld%6} `load cargo
type frozen
tank {%1Fld%6}
perm %2 /quiet
variable t
set t=1.0 minus %5 times %2
component {%1Fld%6}\CARGO /perm:{t}
type flood `flood, keeping cargo load
/

.loadfld hold1, 0.95, "ORE No1", 2.5, 0.30, A `Load level "A"

macro status
solve
status /noref
display (*) status profile
/
.status

type (*) intact
page
.loadfld hold1, 0.95, "ORE No1", 2.5, 0.30, B `Load level "B"

.status

print preview
report off
end