!********************************************************** !* MACRO GEOMETRY MODULE shwwldat(); !* Displays a list of principle design data based on !* vertical position of waterline. !* !* (C)Microform AB 1998-09-23, J.Kjellander !* Stephan Helma !* !********************************************************** INT status; FLOAT k1(1),k2(2),k3(3),k4(4),k6(6); FLOAT displ,lwl,ywl; BEGINMODULE !* !***LWL. !***Length water line. !* status:=getdat_gm("LWL",k2); if status = 2 then lwl:=k2(1); ywl:=k2(2); else lwl:=-1; endif; lst_ini("Current design coefficients @ WL ("+str(ywl/1E3,1,3)+"m) !"); if lwl > 0 then lst_lin("LWL Length waterline = "+str(lwl/1E3,-8,3)+" meters"); lst_lin(" @ vertical position = "+str(ywl/1E3,-8,3)+" meters"); else lst_lin("LWL Length waterline = "+"Not defined"); endif; !* !***BEAM. !***Max beam at waterline. !* status:=getdat_gm("BEAM",k3); if status = 3 then lst_lin("BWL Max beam @ WL = "+str(k3(3)/1E3,-8,3)+" meters"); lst_lin(" @ x-station = "+str(k3(1)/1E3,-8,3)+" meters"); else lst_lin("BWL Max beam = "+"Not defined"); endif; !* !***DRAUGHT. !***Max draught of canoe body. !FIXME: Not good programming practice. Store values for MAXDRAUGHT and LWL... ! See shwcoeff(). !* status:=getdat_gm("MAXDRAUGHT",k3); if status = 3 then lst_lin("Tc Max draught of canoe body = "+str((k2(2)-k3(2))/1E3,-8,3)+" meters"); lst_lin(" @ x-station = "+str(k3(1)/1E3,-8,3)+" meters"); lst_lin(" @ z-buttocks = "+str(k3(3)/1E3,-8,3)+" meters"); else lst_lin("Tc Max draught of canoe body = "+"Not defined"); endif; lst_lin(""); !* !***DISPLACEMENT. !***Displacement (volume and weight). !* status:=getdat_gm("DISPLACEMENT",k4); if status = 4 then displ:=k4(1); lst_lin("V Volume displacement = "+str(k4(1)/1E9,-8,3)+" meters³"); lst_lin(" ¤ @ x-station = "+str(k4(2)/1E3,-8,3)+" meters"); lst_lin(" ¤ @ y-waterline = "+str(k4(3)/1E3,-8,3)+" meters"); lst_lin(" ¤ @ z-buttock = "+str(k4(4)/1E3,-8,3)+" meters"); status:=getdat_gm("DENSITY_WATER",k1); if status = 1 then lst_lin("D Displacement = "+str(k4(1)*k1(1),-8,0)+" kg"); else lst_lin("D Displacement = "+"No density defined"); endif; else displ:=-1; lst_lin("V Volume displacement = "+"Not defined"); endif; lst_lin(""); !* !***SECTAREA. !***Max section area. !* status:=getdat_gm("SECTAREA",k2); if status = 2 then lst_lin("AM Max section area = "+str(k2(1)/1E6,-8,3)+" meters²"); lst_lin(" @ x-station = "+str(k2(2)/1E3,-8,3)+" meters"); else lst_lin("AM Max section area = "+"Not defined"); endif; !* !***WPAREA. !***Waterplane area. !* status:=getdat_gm("WPAREA",k6); if status = 6 then lst_lin("AWP Waterplane area @ WL = "+str(k4(1)/1E6,-8,3)+" meters"); lst_lin(" ¤ @ x-station = "+str(k4(2)/1E3,-8,3)+" meters"); lst_lin(" ¤ @ y-waterline = "+str(k4(3)/1E3,-8,3)+" meters"); lst_lin(" ¤ @ z-buttock = "+str(k4(4)/1E3,-8,3)+" meters"); else lst_lin("AWP Waterplane area @ WL = "+"Not defined"); endif; lst_lin(""); !* !***HULLAREA. !***Wetted surface. !* status:=getdat_gm("HULLAREA",k2); if status = 2 then lst_lin("Sc Wetted area incl. stern = "+str((k2(1)+k2(2))/1E6,-8,1)+" meters²"); lst_lin("Ss Stern area = "+str(k2(2)/1E6,-8,1)+" meters²"); endif; !* !***SIMPSON_SLICES. !***Number of Simpson slices. !* status:=getdat_gm("SIMPSON_SLICES",k1); if status = 1 then lst_lin(""); lst_lin("< Calculated with "+str(k1(1),-1,0)+" Simpson double slices (2*dx="+str((lwl/1E3)/k1(1),-1,2)+"m). >"); endif; !* !***DENSITY_WATER. !***Density of water. !* status:=getdat_gm("DENSITY_WATER",k1); if status = 1 then lst_lin("< Density of water = "+str(k1(1)*1E9,-6,4)+" kg/m³ >"); else lst_lin("< Density of water = "+"Not defined >"); endif; lst_exi(); ENDMODULE !**********************************************************