Convert a sexigecimal format to floating point.
% sex2float.sh -32:14:15.444 -32.23762333 % sex2float.sh -00:00:1.000 -0.00027778 % sex2float.sh +22:1:2.2 22.01727778 % sex2float.sh +22:0001:002.2 22.01727778
The routine sex2float takes a sexigecimal string and makes a floating point expression. The float2sex script takes a float and creates the sexigecimal string (not that this routine "wants" to know if it is using units of HOURS or DEGREES). I wrote a test for both routines in my Test_Data_for_Codes section.The test script (TEST1) runs both sex2float and float2sex to verify that they work.
Go to Test dir (got) % cd ./T_runs/cdproj/ex0 % cp S/TEST1 . To test the HOURS mode % ./TEST1 12:33:33.0001 h sex in = 12:33:33.0001 float answer = 12.55916671 new form = 12:33:33.0002 NOTE: Does not work yet!!!!!! The answer---> stupid fortran ------------------------------------------------------- 12:33:33.0001 I'll use my calculator set to 9 decimal places 123456789 12 ---> 12.000000000 33 /60 0.550000000 33.0001 /3600 0.009166694 Final_calculator 12.559166694 ---> 12.55916669 So, I changed fortran code: double precision xx1,xx2,xx3,xnum,xo,sign double precision x60, x3600 c This works: x60 = 60.000000000 x3600 = 3600.000000000 xx2 = x2/x60 xx3 = x3/x3600 c This does NOT work: xx2 = x2/60.0 xx3 = x3/3600.0 Now I get: % !se sex2float.sh 12:33:33.0001 12.55916669 12.55916669 -----> This is my hand-calculation value! Now, I get good agreement to the 8th decimal place: % TEST1 12:33:33.0001 h sex in = 12:33:33.0001 float answer = 12.55916669 new form = 12:33:33.0001