C 0010 C PLANE - THIS PROGRAMME IS DESIGNED TO-FORMuLjTE OkSERvaTION-EQuATIONS0020 C OF DIRECTION, LENGTH AND AZIMUTH OBSERVATIONS 0030 C BY JOSEPH RADY-PENTEK U.N.B. 1971 0040 C 0050 C INPUT NOTES 0060 C 0070 C CARD # 1: 0080 C COLS 1-3 N - NUMBER OF STATIONS TO BE ADJUSTED 0090 C COLS 4-6 NN - TOTAL NUMBER OF STATIONS 0100 C COLS 7-9 NNN - NUMBER OF OBSERVATIONS 0110 C COLS 10-11 NUN - NUMBER OF FIXED STATIONS NOT OCCUPIED FOR 0120 C DIRECTION OBSERVATIONS 0130 C COLS 12-13 NUA - NUMBER OF STATIONS TO BE ADJUSTED AND NOT 0140 C OCCUPIED FOR DIRECTION OBSERVATIONS 0150 C COLS 14-77 HEAD- A DESCRIPTIVE HEADING AT THE USER'S DISCRETION 0160 C 0170 C CARD # 2: 0180 C COL 3 - INDICATOR #1 - A '1' IS PUNCHED IF LnNpHT IS GIVeN-IN-FEET 0190 C COL 6 - INDICATOR #2 - A '1' IS PUNCHED IF ANGULAR MEASUREMENTS ARE 0200 C GIVEN IN GRADS 0210 C COL 9 - INDICATOR #3 - A '1' IS PUNCHED IF MATRIX 'L' IS NOT REQUIRE0220 C 0230 C CARD # 3: 0240 C COLS 3-5 - SEQUENCE NUMBER 0250 C COLS 7-15 - EASTING - F9.3 0260 C COLS17-25 - NORTHING - F9.3 0270 C COLS27-42 - STATION NAME 0280 C COLS44-47 - STATION NUMBER 0290 C CARD #3 IS REPEATED NN TIMES 0300 C NOTE: THE SEQUENCE OF THE STATIONS ARE : 0310 C 1/ FIXED STATIONS OCCUPIED FOR DIRECTION OBSERVATIONS 0320 C 2/ FIXED STATIONS NOT OCCUPIED FOR DIR. OBS. 0330 C 3/ NEW STATIONS OCCUPIED FOR DIR. OBS. 0340 C 4/ NEW STATIONS NOT OCCUPIED FOR DIR. OBS. 0350 C 0360 C CARD # 4: 0370 C COLS 3-5 - STATION SEQUENCE NUMBER FROM WHERE THE OBSERVATION WAS MAD0380 C COL 6 - ANY NUMERICAL CHARACTER IF THE STATION TO BE HELD FIXED 0390 C COLS 8-10 - STATION SEQUENCE NUMBER TO WHERE THE OBSERVATION WAS MADE 0400 C COL 11 - ANY NUMERICAL CHARACTER IF THE STATION TO BE HELD FIXED 0410 C COLS 14-22 - OBSERVED DIRECTION - F3.0,F2.0,F4.2 0420 C COLS 23-25 - STANDARD DEV. OF OBSERVED DIRECTION (IN SEC.) - F3.2 0430 C COLS 27-35 - OBSERVED DISTANCE - F9.4 0440 C COLS 36-39 - STANDARD DEV. OF OBSERVED DISTANCE (IN CM.) - F4.2 0450 C COLS 41-49 - OBSERVED AZIMUTH - F3.0,F2.0,F4.2 0460 C COLS 50-52 - STANDARD DEV. OF OBSERVED AZIMUTH (IN-SEC.)- -- F3.2 0470 C NOTE: 1/ IF ANGULAR MEASUREMENTS ARE GIVEN IN GRADS THE FOLLOWING 0480 C CHANGES TO BE MADE : 0490 C COLS 13-20 - OBSERVED DIRECTION - F8.5 0500 C COLS 22-26 - STANDARD DEV. OF OBSERVED DIRECTION - F5.5 0510 C COLS 41-48 - OBSERVED AZIMUTH - F8.5 0520 C COLS 50-54 - STANDARD DEV. Oo OBSERvED AZIMuTH -- F5.5 0530 C 2/ IF LENGTH MEASUREMENTS ARE GIVEN IN FEET 0540 C COLS 36-39 - STANDARD DEV. OF OBSERVED DISTANCE (IN 1/100 OF THE FOOT)F0550 C CARD # 4 IS REPEATED NNN TIMES - ONLY ONE OkSERVATION TO-A CARD 0560 C 0570 IMPLICIT REAL*8 (A-H,O-Z) 0580 REAL*8 HEAD(16) 0590 INTEGER FROM(300),TO(300),PNO(100),PS(100),KL(300),LK(300) 0600 INTEGER IZI (100) 0610 DIMENSION EE(100),EN(100),PNA(100),PN(100) 0620 DIMENSION DL(300),W(300),ZI(100) 0630 DIMENSION DD(300),DM(300),DS(300),DSS(300),DIS(300),DISS(300) 0640 DIMENSION AD(300),AM(300),AS(300),ASS(300) 0650 C 0660 C READ IN CARD # 1 - BASIC INFORMATION 0670 C READ IN CARD # 2 - INDICATORS 0680 C 0690 C 0700 KA=7 0710 KAA=6 0720 READ(5,100) N,NN,NNN,NUN,NUA,(HEAD(I),I=1,16) 0730 100 FORMAT(3I3,2I2,16A4) 0740 READ(5,101)I1,I2,I3 0750 101 FORMAT(2X,I1,2X,I1,2X,I1) 0760 RHO=206264.8062470963 0770 MN=(2*N)+(NN-(NUN+NUA)) 0780 L=0 0790 DO 20 I=1,NN 0800 IZI(I)=0 0810 20 ZI(I)=0.0 0820 DO 2 I=1,NNN 0830 DL(I)=0.0 0840 2 W(I)=0.0 0850 C 0860 C WRITE HEADINGS - READ IN DATA PERTAINING TO EACH STATION - PRINT OUT DA0870 C 0880 WRITE(6,115)(HEAD(I),I=1,16) 0890 115 FORMAT('1',10X,16A4,///,20X,'STATIONS TO BE HELD FIXED',///, 0900 *4X,'STATION NAME',4X,'STN. NO.',4X, 0910 *'SEQ. NO.',8X,' EASTING ',6X,' NORtHING ',///) 0920 NK=NN-N 0930 DO 9 I=1,NK 0940 READ(5,103)PS(I),EE(I),EN(I),PNA(I),PN(I),PNO(I) 0950 IF(I1.EQ.0.)GO TO 9 0960 EE(I)=EE(I)*0.30479947 0970 EN(I)=EN(I)*0.30479947 0980 9 WRITE(6,104)PNA(I),PN(I),PNO(I),PS(I),EE(I),EN(I) 0990 WRITE(6,102)(HEAD(I),I=1,16) 1000 102 FORMAT('1',10X,16A4,///,20X,'STATIONS TO BE ADJUSTED',///, 1010 *4X,'STATION NAME',4X,'STN. NO.',4X, 1020 *'SEQ. NO.',8X,'APPROX. EASTING',6X,'APPROX. NORTHING',///) 1030 Z=-1.D0 1040 NKN=NK+1 1050 DO 3 I=NKN,NN 1060 READ(5,103)PS(I),EE(I),EN(I),PNA(I),PN(I),PNO(I) 1070 103 FORMAT(2X,I3,1X,F9.3,1X,F9.3,1X,2A8,1X,I4) 1080 IF(I1.EQ.0)GO TO 3 1090 EE(I)=EE(I)*0.30479947 1100 EN(I)=EN(I)*0.30479947 1110 3 WRITE(6,104)PNA(I),PN(I),PNO(I),PS(I),EE(I),EN(I) 1120 104 FORMAT(4X,2A8,2X,I4,9X,I3,13X,F10.3,12X,F10.3) 1130 IF(I2.EQ.0)GO TO 17 1140 C 1150 C WRITE HEADINGS - READ IN ALL OBSERVATION DATA - PRINT OUT DATA 1160 C FORM THE REQUIRED OBSERVATION EQUATIONS AND SET THE COEFFICIENTS IN THE1170 C PROPER MATRICES - PRINT AND PUNCH ELEMENTS OF MATRIX 'A' 1180 C 1190 WRITE(6,118) 1200 118 FORMAT('1',10X,'OBSERVATIONS AND THEIR STANDARD DEVIATION',///, 1210 *12X,'FROM',4X,'TO',8X,'DIRECTION',3X,'ST. DEV.',6X,'DISTANCE',3X, 1220 *'ST. DEV.',6X,'AZIMUTH',4X,'ST. DEV.',/,29X,' GRAD ',3X, 1230 *'GRAD',10X,'METER',7X,'CM ',7X,' GRAD ',3X,'GRAD ',//) 1240 GO TO 25 1250 17 WRITE(6,105) 1260 105 FORMAT('1',10X,'OBSERVATIONS AND THEIR STANDARD DEVIATION',///, 1270 *12X,'FROM',4X,'TO',8X,'DIRECTION',3X,'ST. DEV.',6X,'DISTANCE',3X, 1280 *'ST. DEV.',6X,'AZIMUTH',4X,'ST. DEV.',/,29X,'DIG MIN SEC',4X,'SEC' 1290 *,10X,'METER',7X,'CM.',7X,'DEG MIN SEC',4X,'SEC',//) 1300 25 CONTINUE 1310 DO 14 I=1,NNN 1320 KA=KA+1 1330 IF(KA.LT.59)GO TO 800 1340 KA=0 1350 WRITE(6,201) 1360 800 IF(I2.EQ.0)GO TO 15 1370 READ(5,117)FROM(I),KL(I),TO(I),LK(I),DD(I),DSS(I),DIS(I),DISS(I), 1380 *AD(I),ASS(I) 1390 117 FORMAT(2X,I3,I1,1X,I3,I1,1X,F8.5,1X,F5.5,F9.4,F4.2,1X,F8.5,1X, 1400 *F5.5) 1410 GO TO 16 1420 15 READ(5,106)FROM(I),KL(I),TO(I),LK(I),DD(I),DM(I),DS(I),DSS(I), 1430 *DIS(I),DISS(I),AD(I),AM(I),AS(I),ASS(I) 1440 106 FORMAT(2X,I3,I1,1X,I3,I1,2X,F3.0,F2.0,F4.2,F3.2,1X, 1450 *F9.4,F4.2,1X,F3.0,F2.0,F4.2,F3.2) 1460 16 IF(I1.EQ.0.)GO TO 18 1470 DIS(I)=DIS(I)*0.30479947 1480 DISS(I)=DISS(I)*0.30479947 1490 18 IF(I2.EQ.0)GO TO 60 1500 WRITE(6,119)FROM(I),TO(I),DD(I),DSS(I),DIS(I),DISS(I), 1510 *AD(I),ASS(I) 1520 119 FORMAT(13X,I3,3X,I3,6X,F10.5,4X,F7.5,4X,F10.4,5X, 1530 *F5.2,5X,F10.5,4X,F7.5) 1540 GO TO 14 1550 60 WRITE(6,107)FROM(I),TO(I),DD(I),DM(I),DS(I),DSS(I), 1560 *DIS(I),DISS(I),AD(I),AM(I),AS(I),ASS(I) 1570 14 CONTINUE 1580 107 FORMAT(13X,I3,3X,I3,6X,F4.0,1X,F3.0,1X,F5.2,2X,F4.2, 1590 *5X,F10.4,5X,F5.2,5X,F4.0,1X,F3.0,1X,F5.2,2X,F4.2) 1600 19 WRITE(6,116)NNN,MN,NNN,MN 1610 116 FORMAT('1',10X,'DIMENSIONS OF MATRIX A=',2X,I3,'*',I3,///, 1620 *8X,'A',2X,I3,'*',I3,//) 1630 WRITE(7,310)(HEAD(I),I=1,16),NN,NNN,MN,N 1640 310 FORMAT(16A4,/,'NP=',I3,/,'NN=',I3,/,'MN=',I3,/,'N=',I3) 1650 WRITE(7,300)NNN,MN 1660 300 FORMAT('A',1X,I3,'*',I3) 1670 DO 8 I=1,NNN 1680 IF(KAA.LT.59)GO TO 801 1690 KAA=0 1700 WRITE(6,201) 1710 801 K=FROM(I) 1720 J=TO(I) 1730 IAA=(K*2-1)-(2*(NN-N)) 1740 IBB=(J*2-1)-(2*(NN-N)) 1750 ICC=(K*2)-(2*(NN-N)) 1760 IFF=(J*2)-(2*(NN-N)) 1770 KA=NK-NUN 1780 IF(K.GT.KA)GO TO 810 1790 IZ=(N*2)+K 1800 GO TO 811 1810 810 IZ=(N*2)+(K-NUN) 1820 811 IF(DSS(I).EQ.0.)GO TO 5 1830 C 1840 C OBSERVATION EQUATION OF A DIRECTION 1850 C 1860 L=L+1 1870 DY=EN(J)-EN(K) 1880 DX=EE(J)-EE(K) 1890 SS=(DX**2)+(DY**2) 1900 AA=-1.D0*RHO*DY/SS 1910 BB=RHO*DY/SS 1920 CC=RHO*DX/SS 1930 FF=-1.D0*RHO*DX/SS 1940 IF(I2.EQ.0)GO TO 61 1950 DL(I)=(DSS(I)*3240.D0)**2 1960 GO TO 62 1970 61 DL(I)=DSS(I)**2 1980 62 IF(DY.EQ.0.)GO TO 22 1990 A=DX/DY 2000 AZ=(DATAN(A))*RHO 2010 IF(A.EQ.0.)GO TO 22 2020 IF(A.GT.0.)GO TO 23 2030 IF(A.LT.0.)GO TO 24 2040 22 IF(DX.GT.0.)AZ=90.D0*3600.D0 2050 IF(DY.LT.0.)AZ=180.D0*3600.D0 2060 IF(DX.LT.0.)AZ=270.D0*3600.D0 2070 GO TO 27 2080 23 IF(DX.LT.0.)AZ=AZ+180.D0*3600.D0 2090 GO TO 27 2100 24 IF(DX.GT.0.)AZ=AZ+180.D0*3600.D0 2110 IF(DX.LT.0.)AZ=AZ+360.D0*3600.D0 2120 27 IF(I2.GT.0)GO TO 46 2130 DIRO=(DD(I)*3600.D0)+(DM(I)*60.D0)+DS(I) 2140 GO TO 47 2150 46 DIRO=DD(I)*3240.D0 2160 47 IF(IZI(K).GT.0)GO TO 21 2170 IZI(K)=1 2180 ZI(K)=DIRO-AZ 2190 21 DIRA=ZI(K)+AZ 2200 IF(DIRA.LT.0.)DIRA=DIRA+360.D0*3600.D0 2210 W(I)=DIRA-DIRO 2220 IF(KL(I).GT.0.)GO TO 10 2230 WRITE(6,109)L,IAA,AA,L,ICC,CC,L,IZ,Z 2240 KAA=KAA+1 2250 WRITE(7,302)L,IAA,AA,L,ICC,CC,L,IZ,Z 2260 301 FORMAT(3X,2(3X,'P*',I3,',',I3,'*',F10.3)) 2270 108 FORMAT(5X,2(3X,'P*',I3,',',I3,'*',F10.3)) 2280 10 IF(LK(I).GT.0.)GO TO 26 2290 IF(KL(I).GT.0.)GO TO 45 2300 WRITE(6,108)L,IBB,BB,L,IFF,FF 2310 KAA=KAA+1 2320 WRITE(7,301)L,IBB,BB,L,IFF,FF 2330 GO TO 5 2340 45 WRITE(6,109)L,IBB,BB,L,IFF,FF,L,IZ,Z 2350 KAA=KAA+1 2360 109 FORMAT(5X,2(3X,'P*',I3,',',I3,'*',F10.3),3X,'P*',I3,',', 2370 *I3,'*',2X,F3.0) 2380 WRITE(7,302)L,IBB,BB,L,IFF,FF,L,IZ,Z 2390 302 FORMAT(2(3X,'P*',I3,',',I3,'*',F10.3),3X,'P*',I3,',',I3,'*',2X, 2400 *F3.0) 2410 GO TO 5 2420 26 IF(KL(I).EQ.0.)GO TO 5 2430 WRITE(6,120)L,IZ,Z 2440 KAA=KAA+1 2450 120 FORMAT(54X,'P*',I3,',',I3,'*',2X,F3.0) 2460 WRITE(7,303)L,IZ,Z 2470 303 FORMAT(54X,'P*',I3,',',I3,'*',2X,F3.0) 2480 5 IF(DISS(I).EQ.0.)GO TO 6 2490 C 2500 C OBSERVATION EQUATION OF A DISTANCE 2510 C 2520 L=L+1 2530 DY=EN(J)-EN(K) 2540 DX=EE(J)-EE(K) 2550 S=DSQRT((DX**2)+(DY**2)) 2560 AA=-1.D0*DX/S 2570 BB=DX/S 2580 CC=-1.D0*DY/S 2590 FF=DY/S 2600 DL(I)=(DISS(I)/100.D0)**2 2610 W(I)=S-DIS(I) 2620 IF(KL(I).GT.0.)GO TO 11 2630 WRITE(6,108)L,IAA,AA,L,ICC,CC 2640 WRITE(7,301)L,IAA,AA,L,ICC,CC 2650 11 IF(LK(I).GT.0.)GO TO 6 2660 WRITE(6,108)L,IBB,BB,L,IFF,FF 2670 WRITE(7,301)L,IBB,BB,L,IFF,FF 2680 6 IF(ASS(I).EQ.0.)GO TO 8 2690 C 2700 C OBSERVATION EQUATION OF AN AZIMUTH 2710 C 2720 L=L+1 2730 DY=EN(J)-EN(K) 2740 DX=EE(J)-EE(K) 2750 SS=((DX**2)+(DY**2)) 2760 AA=-1.D0*RHO*DY/SS 2770 BB=RHO*DY/SS 2780 CC=RHO*DX/SS 2790 FF=-1.D0*RHO*DX/SS 2800 IF(I2.EQ.0)GO TO 63 2810 DL(I)=(ASS(I)*3240.D0)**2 2820 GO TO 64 2830 63 DL(I)=ASS(I)**2 2840 64 IF(DY.EQ.0.)GO TO 28 2850 A=DX/DY 2860 AZ=(DATAN(A))*RHO 2870 IF(A.EQ.0.)GO TO 28 2880 IF(A.GT.0.)GO TO 29 2890 IF(A.LT.0.)GO TO 30 2900 28 IF(DX.GT.0.)AZ=90.D0*3600.D0 2910 IF(DY.LT.0.)AZ=180.D0*3600.D0 2920 IF(DX.LT.0.)AZ=270.D0*3600.D0 2930 GO TO 31 2940 29 IF(DX.LT.0.)AZ=AZ+180.D0*3600.D0 2950 GO TO 31 2960 30 IF(DX.GT.0.)AZ=AZ+180.D0*3600.D0 2970 IF(DX.LT.0.)AZ=AZ+360.D0*3600.D0 2980 31 IF(I2.GT.0)GO TO 48 2990 AZO=(AD(I)*3600.D0)+(AM(I)*60.D0)+AS(I) 3000 GO TO 49 3010 48 AZO=AD(I)*3240.D0 3020 49 W(I)=AZ-AZO 3030 IF(KL(I).GT.0.)GO TO 12 3040 WRITE(6,108)L,IAA,AA,L,ICC,CC 3050 WRITE(7,301)L,IAA,AA,L,ICC,CC 3060 12 IF(LK(I).GT.0.)GO TO 8 3070 WRITE(6,108)L,IBB,BB,L,IFF,FF 3080 WRITE(7,301)L,IBB,BB,L,IFF,FF 3090 8 CONTINUE 3100 WRITE(6,200) 3110 WRITE(7,304) 3120 304 FORMAT('END') 3130 C 3140 C PRINT AND PUNCH THE DIAGONAL ELEMENTS OF MATRIX 'E' 3150 C 3160 WRITE(6,110)NNN,NNN,NNN,NNN 3170 110 FORMAT('1',10X,'DIMENSIONS OF MATRIX E=',2X,I3, 3180 *'*',I3,///,8X,'E',2X,I3,'*',I3,//) 3190 WRITE(7,305)NNN,NNN 3200 305 FORMAT('E',1X,I3,'*',I3) 3210 WRITE(6,111)(DL(K),K=1,NNN) 3220 111 FORMAT(8X,'D*1,1*',/,(8X,8(1X,F7.4))) 3230 WRITE(7,306)(DL(K),K=1,NNN) 3240 306 FORMAT('D*1,1*',/,(1X,8(1X,F8.5))) 3250 WRITE(6,200) 3260 WRITE(7,304) 3270 200 FORMAT(8X,'END') 3280 C 3290 C PRINT AND PUNCH THE ELEMENTS OF MATRIX 'L' 3300 C 3310 IF(I3.EQ.1.)GO TO 999 3320 WRITE(6,112)NNN,NNN 3330 WRITE(6,320)NX 3490 320 FORMAT(2X,'LL',1X,I3,'*','1',2X,'D',/,2X,'C*1,1*') 3500 112 FORMAT('1',10X,'DIMENSIONS OF MATRIX L=',2X,I3, 3340 *'*','1',///,8X,'L',2X,I3,'*','1',//) 3350 WRITE(7,307)NNN 3360 307 FORMAT('L',1X,I3,'*','1') 3370 WRITE(7,307)NNN 3360 WRITE(6,113)(W(I),I=1,NNN) 3380 113 FORMAT(8X,'C*1,1*',/,(5X,5(1X,F10.4))) 3390 WRITE(7,308)(W(I),I=1,NNN) 3400 308 FORMAT('C*1,1*',/,(1X,5(1X,F10.4))) 3410 WRITE(6,200) 3420 WRITE(7,304) 3430 C 3440 C PUNCH APPROXIMATE CO-ORDINATES 3450 C 3460 NX=2*N 3470 WRITE(7,320)NX 3480 DO 70 J=NKN,NN 3510 WRITE(6,321)EE(J),EN(J) 3520 70 WRITE(7,321)EE(J),EN(J) 3530 321 FORMAT(3X,2(2X,F10.3)) 3540 WRITE(7,304) 3550 201 FORMAT('1') 3560 999 WRITE(6,201) 3570 STOP END 3590