Marine Engineering Specialists -- Bentley Systems has acquired Ultramarine's MOSES Software [ Press Release ]
Allowable Deck Load Macro
To use this macro, you need to have the line
    use_mac stab
in your input file.

This macro finds that allowable deck load for a vessel at a given draft. An example of the command is:

   &set kg =  14.2 13.4  13.0  12.4  11.5  10.8    9.9
   &set wt  = 22.3 66.9 133.9 223.2 446.4 714.2 1339
   $
   $*********************************************      find allowable kg
   $
      &loop draft  (11.5 12 ) $ 12.5 13 13.5 14 14.3)
         gm170 sea_puma %draft% 0 0 185 40 16.5
         &set mgm = &number(min .49 %gm170 )
         dload_allow -draft %draft \
                -kg %kg -wt %wt -fsc %fs_cor \
                -wind        00  \
                -cargo 100 00 26.5 30 40 20 \
                -yaw            0 \
                -i_ar_ratio   0.0 \
                -i_arm_ratio    0 \
                -i_down_h    1.83 \
                -i_gm        %mgm \
                -i_are@marm    15 \
                -i_are@dfld    15 \
                -i_are@40      15 \
                -i_arm_ar      15 \
                -i_zcross      90 \
                -i_theta1      90 \
                -i_range       40 \
                -i_ang_diff     0 \
                -i_dang_t1      0 \
                -i_dang         0 \
                -i_ang@marm    15
      &endloop
   END
The interesting part here is the DLOAD_ALLOW macro call, so it will be the focus of our discussion.

What happens here is that the DLOAD_ALLOW macro produces an allowable deck load for a given set of conditions according to a stability criteria and a cargo box and kg vs. weight curve. Now, this requires further elaboration. For a given condition, the maximum deck load a vessel can possible carry is the displacement at this condition minus the light ship weight. Also, the least deck load is certainly zero. In general, the maximum is reduced because some stability requirement must be satisfied. We have an upper and lower bound to the allowable load, so we use a halving scheme to iterate the maximum allowable. In particular, we take as a first guess the average of the upper and lower bounds, and check the stability with this deck load.

Since the vessel must be in equilibrium, we will add weight (due to fluids) to balance the forces. Since we are attempting to find a conservative condition, we want to place the KG of the fluid weight as high as possible. The location used is obtained for a KG vs WEIGHT curve defined with the options -KG and -WEIGHT. Here, we must have the same number of kg's and weights and this curve should be the maximum kg of the ballast for this weight. To this KG, the macro will add a height specified with the option, -FS_COR. Again, this should be the maximum free surface correction available under the rule being used.

The -CARGO option define a box in space (in vessel coordinates) that the cargo will "fit in side of" and this box is used to compute the wind force on the cargo. The first three numbers after -CARGO are the centroid of the box and the next three numbers are the length, width and height of the box. The -WIND option is used to specify the wind to use, and the -YAW option is used to specify the yaw angles to be checked.

The remainder of the macro options specify the stability criteria to be checked, and these are the same as was discussed above. This particular example is complicated by the fact that a US Coast Guard rule is being used. This rule has a minimum GM which depends on draft, so instead of simply specifying a set of drafts to be checked, we do it in a loop and compute the minimum GM for each draft. The Minimum Allowable GM is computed with the command:

     gm170 sea_puma %draft% 0 0 185 40 16.5
which is a macro taking seven arguments: the vessel name, the draft, roll, trim, length between perpendiculars, beam, and depth.