C 00000110 C PROGRAM 'TERRLIST' --- SORTS AND LISTS THE CONTENTS OF FILE 00000120 C 'SE.GEODESY.DIST&AZ' 00000130 C 00000140 C INPUT: DATE ON WHICH PROGRAM IS RUN 00000150 C FORMAT IS 5A4 00000160 C 00000170 REAL*8D1,D2,AL,AZ1,AZ2 00000180 DIMENSION DATE(5) 00000190 C 00000200 C READ DATE CARD 00000210 C 00000220 READ 1000,(DATE(I),I=1,5) 00000230 PRINT 1010,(DATE(I),I=1,5) 00000240 C 00000250 C J=NUMBER OF NON BLANK RECORDS 00000260 C 00000270 J=0 00000280 10 READ(11,1020,END=20)N1,N2,D1,VD1,IC1,CODE1,D2,VD2,IC2,CODE2, 00000290 1 AL,AZ1,VAZ1,AZ2,VAZ2 00000300 IF(N1.EQ.0)GO TO 10 00000310 J=J+1 00000320 CALL RADARC(AL,ID,IM,SEC1) 00000330 CALL RADARC(AZ1,JD,JM,SEC2) 00000340 CALL RADARC(AZ2,KD,KM,SEC3) 00000350 IF(MOD(J,28).EQ.1)PRINT 1030 00000360 PRINT 1040,N1,N2 00000370 C 00000380 C PRINT ONLY NON-ZERO DATA 00000390 C 00000400 IF(D1.GT.0.1)PRINT 1050,D1,VD1,IC1,CODE1 00000410 IF(D2.GT.0.1)PRINT 1060,D2,VD2,IC2,CODE2 00000420 IF(VAZ1.GT.0.1D-5)PRINT 1070,ID,IM,SEC1,JD,JM,SEC2,VAZ1 00000430 IF(VAZ2.GT.0.1D-5)PRINT 1080,KD,KM,SEC3,VAZ2 00000440 GO TO 10 00000450 20 PRINT 1090 00000460 PRINT 1100,J 00000470 STOP 00000480 1000 FORMAT(5A4) 00000490 1010 FORMAT('1',20(/),30X,73('*'),2(/30X,'*',71X,'*')/30X,'*',7X,'CONTE00000500 1NTS OF FILE SE.GEODESY.DIST&AZ ON ',5A4,T103,'*',2(/30X,'*',71X,'*00000510 2')/30X,73('*')) 00000520 1020 FORMAT(2I9,2(F13.5,F10.6,I1,A1),2F19.16,F10.6,F19.16,F10.6) 00000 1030 FORMAT('1',' FROM TO FIRST VARIANCE RED SECOND 00000540 1 VARIANCE RED ASTRONOMIC FIRST ASTRO VARIANCE SECOND AST00000550 2RO VARIANCE'/1X,' STATION STATION DISTANCE (M.SQ) CODES DIS00000560 3TANCE (M.SQ) CODES LONGTITUDE AZIMUTH (SEC.SQ) AZI00000570 4MUTH (SEC.SQ)'/1X,132('_')) 00000580 1040 FORMAT('0',I9,I10) 00000590 1050 FORMAT('+',T22,F11.3,F7.3,I3,A2) 00000600 1060 FORMAT('+',T47,F11.3,F7.3,I3,A2) 00000610 1070 FORMAT('+',T72,I4,I3,F7.3,I6,I3,2F7.3) 00000620 1080 FORMAT('+',T111,I4,I3,2F7.3) 00000630 1090 FORMAT('1'/////46X,'DISTANCE REDUCTION CODES'////29X,'FIRST CODE 00000640 1 0 = SEA LEVEL DISTANCE'//44X,'1 = SPATIAL DISTANCE'///28X, 00000650 2'SECOND CODE B = BASE LINE'//44X,'G = GEODIMETER'//44X, 00000660 3'T = TELLUROMETER'//44X,'C = TRAVERSE (IE. DISTANCE MUST BE INCLUD00000670 4ED'/62X,'OR POINT BECOMES UNDEFINED)') 00000680 1100 FORMAT(/////15X,' ***** THERE ARE ',I4,' RECORDS ON FILE') 00000690 END 00000700 C 00000710 C SUBROUTINE 'RADARC' CONVERTS RADIANS TO DEGREES MINUTES AND 00000720 C SECONDS. FOR NEGATIVE ANGLES ONLY THE LEFTMOST NONZERO VALUE IS 00000730 C NEGATIVE (EGS. -50,15,30.5 ; 0,-35,30.0 ; 0,0,-50.5) 00000740 C 00000750 C NOTE: THE 0.0005 VALUE IS TO GUARD AGAINST ROUNDOFF 00000760 C 00000770 C INPUT: A = RADIAN VALUE OF ANGLE (REAL*8) 00000780 C 00000790 C OUTPUT: I = DEGREES (INTEGER) 00000800 C J = MINUTES (INTEGER) 00000810 C S = SECONDS (REAL*4) 00000820 C 00000830 SUBROUTINE RADARC(A,I,J,S) 00000840 DOUBLE PRECISION A,SEC,AD,AJ,RHO, SIGN 00000850 DATA RHO/206264.8062470963D0/ 00000860 C 00000870 C CHECK SIGN OF 'A' -- SET SIGN=-1 IF NEGATIVE AND CONVERT 'A' TO 00000880 C POSITIVE VALUE 00000890 C 00000900 SIGN=1.0D0 00000910 IF(A.LT.0.0)SIGN=-1.0D0 00000920 IF(SIGN.LT.0.0)A=-A 00000930 C 00000940 C CONVERT 'A' TO ARCSECONDS 00000950 C 00000960 SEC=A*RHO+0.0005D0 00000970 C 00000980 C FIND INTEGER DEGREES 00000990 C 00001000 I=SEC/3600.0D0 00001010 AD=I 00001020 C 00001030 C FIND INTEGER MINUTES 00001040 C 00001050 J=SEC/60.0D0-AD*60.0D0 00001060 AJ=J 00001070 C 00001080 C FIND REAL*4 SECONDS 00001090 C 00001100 S=SEC-AD*3600.0D0-AJ*60.0D0-0.0005D0 00001110 C 00001120 C SET LEFTMOST VALUE NEGATIVE IF SIGN=-1 00001130 C 00001140 IF(I.NE.0)GO TO 20 00001150 IF(J.EQ.0)GO TO 10 00001160 J=J*SIGN 00001170 GO TO 30 00001180 10 S=S*SIGN 00001190 GO TO 30 00001200 20 I=I*SIGN 00001210 C 00001220 C CONVERT 'A' BACK TO NEGATIVE IF SIGN=-1 00001230 C 00001240 30 IF(SIGN.LT.0.0)A=-A 00001250 RETURN 00001260 END 00001270