830
procedure prtline(var f : text; slope : integer);
var
j : integer;
begin
write(f, slope:2, ');
for j : = 90 to 359 do
if j mod 5=0 then
begin
write(f, buf[j]);
end;
for j := 0 to 89 do
if j mod 5=0 then
begin
write(f, buf[j]);
end;
writeln(f);
end ;
procedure prtlegend ;
begin
writeln ('s = shadow; * = shadow, not visible');
writeln ('. = sunlit, visible; i = sunlit, not visible')
end;
function iglo(alfa, phi : real) : real;
begin
if phi >= alfa then
iglo := 0
else
iglo := acosd(tand(phi)/tand(alfa))
end ;
procedure readin;
begin
writeln('This is program Iglospot to show areas of shadow and');
writeln('of (steep) slope invisibility in sidelook SPOT imagery');
write('Enter sun elevation: (0-90) '); readln(sunang);
write('Enter sun azimuth: '); readln(sundir);
write('Enter incidence angle: (0-27) '); readln(lookang);
write('Lookdirection left or right: (1/r) '); readln(lr);
write('Satellite inclination: (98.7) '); readln(lookdir);
sundir := sundir + 180;
if sundir > 360 then
sundir :» sundir - 360;
sunang :» 90 - sunang;
if lr in [ ' r' , 'R' ] then
lookdir := lookdir + 180;
end;