include "ConsoleWindow" local fn rad2deg( theta as double ) as double end fn = theta * 180 / pi local fn deg2rad( theta as double ) as double end fn = theta * pi / 180 local fn SolarHourAngle( latitude as double, longitude as double, meridian as double ) dim as long hour dim as double hra, hla, time dim as Str15 ap print "Latitude = "; latitude; chr$(13); "Longitude = "; longitude; chr$(13); "Meridian = "; meridian print : print "sine of latitude: "; sin(latitude * pi / 180 ); chr$(13); " diff longitude: "; longitude - meridian print : print "Time", "Sun hour angle", "Dial hour line angle" for hour = 6 to 18 hra = ( 15 * hour ) - longitude + meridian - 180 hla = fn rad2deg( atn( sin( fn deg2rad( latitude ) ) * tan( fn deg2rad( hra ) ))) if abs( hra ) > 90 then hla = hla + 180 * sgn( hra * latitude ) if hour > 12 then time = hour - 12 : ap = " a.m." else time = hour : ap = " p.m." print using "##"; time; ap, using "####.##"; hra, using "####.###"; hla next hour end fn fn SolarHourAngle( -4.95, -150.5, -150.0 )