NavList:
A Community Devoted to the Preservation and Practice of Celestial Navigation and Other Methods of Traditional Wayfinding
Computing great circle and rhumb lline courses
From: Gary LaPook
Date: 2010 Feb 06, 04:37 -0800
From: Gary LaPook
Date: 2010 Feb 06, 04:37 -0800
Posting about Earhart and Wartime navigation in WW II required me to do some rhumb line calculations. I had programed my Casio PB-1000 calculator in about 1989 to do many navigational calculations including planning great circle and rhumb line courses. I input the starting and ending points and the program computes great circle course and distance followed by rhumb line course and distance and the coordinates of the vertex. Then I put in the longitude of the first intermediate point and the interval of subsequent points and the program returns the latitude of the GC at the selected longitude, the rhumb line course and distance between the prior point and the new point and the cumulative rhumb line distances. I then repeat this for the rest of the intermediate points. At the end it also displays the extra distance of this approximation of the GC over a perfect GC course. Bellow is the subroutine that computes great circle and rhumb line courses and distances. Line 28 computes rhumb line course (RCRS); line 50 rhumb line distance; 60 and 70 the GC distance; and 80 and 90 the GC course. I got the formula for the rhumb line course from AFM 51-40, attached. It is interesting that an Air Force manual would contain a significant typo. The formula given to compute the rhumb line course doesn't work because it is missing a pair of parentheses. I remember that it took me a while to find this problem. The 180 in the bottom of the formula multiplies both terms, not just the first one. (Ln is natural log, log base e in AFM 51-40) The problem persists in the current navigation manual, AFPAM 11-216. gl 5 ON ERROR GOTO900 10 CLS:PRINT"COMPUTING" 11 IF LT1>=90 THENLT1 =89.9999 12 IF LT1<=-90 THENLT1=-89.9999 13 IF LT2>=90 THENLT2 =89.9999 14 IF LT2<=-90 THENLT2=-89.9999 15 IF LT1=0 THENLT1=.0001 16 IF LT2=0 THENLT2=.0001 20 IF LL1<0 THEN LL1=360+LL1 21 IF LL2<0 THEN LL2=360+LL2 23 LHA=LL2-LL1 24 IF LHA<0 THEN LHA=LHA+360 25 IF LHA=180 THEN LHA=179.99982 26 T=LHA 27 IFT>180 THEN T=360-T 28 RCRS=ABS(ATN((PI*(T))/(((LOG(TAN(45+LT2/2)))-(LOG(TAN(45+LT1/2))))*180))) 30 IF LT1>LT2 THEN RCRS=180-RCRS 50 RDIST=ABS(((1/(ABS(COSRCRS)))*60)*(LT2-LT1)) 60 ZD=ACS(SINLT1*SINLT2+COSLT1*COSLT2*COS(LHA)) 70 GDIST=60*ZD 80 AZZ=ACS((COSLT1*SINLT2-SINLT1*COSLT2*COS(LHA))/COS(90-ZD)) 90 GCRS=AZZ:IF LHA<180 THENGCRS=360-AZZ:RCRS=360-RCRS 800 RETURN 900 LT2=LT2+.005 920 RESUME 28