10 ' This progran is to print station data from KER's floppy. 20 ' 30 ' ******************************************* 40 ' * KERSD * 50 ' ******************************************* 60 ' 70 CLS : DEFINT I-N: OPTION BASE 1: SCREEN 0 80 DIM OBDEP$(50), STDEP$(59), ODAT$(26, 50), SDAT$(10, 50) 90 DIM HEAD1$(20) 110 '*DAT1 120 DATA " COD "," BOD ","NH3-N","Chla ","Alkal","Pheao", " T-N "," TOC "," HC "," SS "," PCB "," As ", " Pb "," Hg "," T-N "," Cd " 150 ' RESTORE *DAT1 160 FOR I = 1 TO 16 170 READ HEAD1$(I) 175 NEXT I 180 '*STARTS 181 CLS : LOCATE 3, 3 182 LOCATE 8, 15: PRINT "Please insert FD into the device " 183 LOCATE 10, 20: PRINT "Please key in device No. of FD " 184 LOCATE 12, 24: INPUT "Example : D"; DRIVE$ 185 CLS : LOCATE 1, 1: ON ERROR GOTO 190: FILES DRIVE$ + ":*.?TD" 190 ON ERROR GOTO 196: FILES DRIVE$ + ":*.SD" 196 PRINT : INPUT "Please key in File-Name (xxxx.xxx) "; FLNAME$ 198 FLNAME$ = DRIVE$ + ":" + FLNAME$ 200 OPEN FLNAME$ FOR INPUT AS #1 210 '*ST05 215 GOSUB 2580 220 PRINT 230 INPUT "Which station do you display on the screen (xxxx) "; NSTN 235 '*INPUTMASTER 240 '*ST10 250 INPUT #1, A$ 260 IF EOF(1) THEN PRINT : PRINT "Couldn't find the satation": GOTO 210 265 IF MID$(A$, 1, 1) <> "1" THEN GOTO 240 270 INPUT #1, B$ 280 IF EOF(1) THEN PRINT : PRINT "Couldn't find record type 2": GOTO 210 300 IF VAL(MID$(A$, 11, 4)) <> NSTN THEN GOTO 240 310 ' 320 LIN1$ = "Ref:" + MID$(A$, 3, 12) + " Ship Code:" + MID$(A$, 15, 2) + " Color:" 330 LIN1$ = LIN1$ + MID$(B$, 3, 2) + " Wind:" + MID$(B$, 12, 5) + " Weather:" 340 LIN1$ = LIN1$ + MID$(B$, 28, 2) + " Instrument" 350 ' 360 LIN2$ = "Lat.: " + MID$(A$, 17, 2) + " " + MID$(A$, 19, 2) + "." + MID$(A$, 21, 2) 370 LIN2$ = LIN2$ + " Date:19" + MID$(A$, 31, 2) + " " + MID$(A$, 33, 2) + " " 380 LIN2$ = LIN2$ + MID$(A$, 35, 2) + " Trans:" + MID$(B$, 5, 2) + " Bar :" 390 LIN2$ = LIN2$ + MID$(B$, 17, 2) + "." + MID$(B$, 19, 1) + " Cloud :" 400 LIN2$ = LIN2$ + MID$(B$, 30, 2) + " " 410 IF MID$(A$, 47, 1) = "C" THEN LIN2$ = LIN2$ + "CTD" 420 IF MID$(A$, 47, 1) = "S" THEN LIN2$ = LIN2$ + "STD" 425 IF MID$(A$, 47, 1) = "0" THEN LIN2$ = LIN2$ + "Nanzen" 430 ' 440 LIN3$ = "Lon.:" + MID$(A$, 23, 3) + " " + MID$(A$, 26, 2) + "." + MID$(A$, 28, 2) 450 LIN3$ = LIN3$ + " Time:" + MID$(A$, 37, 2) + " GMT Wave :" 460 LIN3$ = LIN3$ + MID$(B$, 7, 5) 465 IF MID$(B$, 20, 4) = "+000" THEN LIN3$ = LIN3$ + "Temp:" + " " ELSE LIN3$ = LIN3$ + "Temp:" + MID$(B$, 20, 3) + "." + MID$(B$, 23, 1) 475 IF MID$(B$, 24, 4) = "+000" THEN LIN3$ = LIN3$ + ", " ELSE LIN3$ = LIN3$ + "," + MID$(B$, 24, 3) + "." + MID$(B$, 27, 1) 477 LIN3$ = LIN3$ + " Vis:" + MID$(B$, 32, 1) 480 IEOF = 0: ODEPN = 0: ITEM = 0: ODEP$ = "99999": SDEPN = 0: SDEP$ = "99999" 485 IAD = 0 490 '*ST20 500 INPUT #1, D$ 510 IF EOF(1) THEN IEOF = 9: GOTO 1090 520 IF MID$(D$, 1, 1) = "3" THEN GOTO 560 530 IF MID$(D$, 1, 1) = "4" THEN GOTO 790 540 IF MID$(D$, 1, 1) = "6" THEN GOTO 890 550 GOTO 490 555 '*INPUTOBS 560 '*ST30 570 IF MID$(D$, 3, 5) <> ODEP$ THEN ODEPN = ODEPN + 1: ODEP$ = MID$(D$, 3, 5): OBDEP$(ODEPN) = ODEP$ 580 X$ = MID$(D$, 8, 5) 590 IF X$ <> "99999" THEN ODAT$(1, ODEPN) = MID$(X$, 1, 3) + "." + MID$(X$, 4, 2) ELSE ODAT$(1, ODEPN) = " " 600 X$ = MID$(D$, 14, 5) 610 IF X$ <> "99999" THEN ODAT$(2, ODEPN) = MID$(X$, 1, 2) + "." + MID$(X$, 3, 3) ELSE ODAT$(2, ODEPN) = " " 620 X$ = MID$(D$, 20, 4) 630 IF X$ <> "9999" THEN ODAT$(3, ODEPN) = MID$(X$, 1, 2) + "." + MID$(X$, 3, 2) ELSE ODAT$(3, ODEPN) = " " 640 X$ = MID$(D$, 25, 3) 650 IF X$ <> "999" THEN ODAT$(4, ODEPN) = MID$(X$, 1, 1) + "." + MID$(X$, 2, 2) ELSE ODAT$(4, ODEPN) = " " 660 X$ = MID$(D$, 29, 3) 670 IF X$ <> "999" THEN ODAT$(5, ODEPN) = MID$(X$, 1, 1) + "." + MID$(X$, 2, 2) ELSE ODAT$(5, ODEPN) = " " 680 X$ = MID$(D$, 33, 3) 690 IF X$ <> "999" THEN ODAT$(6, ODEPN) = MID$(X$, 1, 1) + "." + MID$(X$, 2, 3) ELSE ODAT$(6, ODEPN) = " " 700 X$ = MID$(D$, 37, 3) 710 IF X$ <> "999" THEN ODAT$(7, ODEPN) = MID$(X$, 1, 2) + "." + MID$(X$, 3, 1) ELSE ODAT$(7, ODEPN) = " " 720 X$ = MID$(D$, 41, 3) 730 IF X$ <> "999" THEN ODAT$(8, ODEPN) = X$ ELSE ODAT$(8, ODEPN) = " " 740 X$ = MID$(D$, 45, 3) 750 IF X$ <> "999" THEN ODAT$(9, ODEPN) = MID$(X$, 1, 1) + "." + MID$(X$, 2, 2) ELSE ODAT$(9, ODEPN) = " " 760 ' 770 IF MID$(D$, 2, 1) = "1" THEN GOTO 1090 ELSE GOTO 490 780 ' 785 '*INPUTADD 790 '*st40 800 IF MID$(D$, 3, 5) <> ODEP$ THEN ODEPN = ODEPN + 1: ODEP$ = MID$(D$, 3, 5): OBDEP$(ODEPN) = ODEP$ 810 FOR I = 1 TO 5 820 X$ = MID$(D$, I * 9 + 1, 5) 830 IF X$ = "99999" THEN GOTO 859 840 N = VAL(MID$(D$, I * 9 - 1, 2)): E = VAL(MID$(D$, I * 9 + 6, 1)) 842 IF IAD = 0 THEN IAD = 1: NAD(IAD) = N: GOTO 854 844 FOR J = 1 TO IAD 846 IF NAD(J) = N THEN GOTO 854 848 NEXT J 850 IAD = IAD + 1 852 NAD(IAD) = N 854 '*ST50 858 ODAT$(N, ODEPN) = MID$(X$, 1, 5 - E) + "." + MID$(X$, 6 - E, E) 859 '*ST55 860 NEXT I 870 IF MID$(D$, 2, 1) = "1" THEN GOTO 1090 ELSE GOTO 490 880 ' 885 '*INPUTSTAND 890 '*ST60 900 IF MID$(D$, 3, 5) <> SDEP$ THEN SDEPN = SDEPN + 1: SDEP$ = MID$(D$, 3, 5): STDEP$(SDEPN) = SDEP$ 910 X$ = MID$(D$, 8, 5) 920 IF X$ <> "99999" THEN SDAT$(1, SDEPN) = MID$(X$, 1, 3) + "." + MID$(X$, 4, 2) ELSE SDAT$(1, SDEPN) = " " 930 X$ = MID$(D$, 14, 5) 940 IF X$ <> "99999" THEN SDAT$(2, SDEPN) = MID$(X$, 1, 2) + "." + MID$(X$, 3, 3) ELSE SDAT$(2, SDEPN) = " " 950 X$ = MID$(D$, 20, 4) 960 IF X$ <> "9999" THEN SDAT$(3, SDEPN) = MID$(X$, 1, 2) + "." + MID$(X$, 3, 2) ELSE SDAT$(3, SDEPN) = " " 970 X$ = MID$(D$, 25, 4) 980 IF X$ <> "9999" THEN SDAT$(4, SDEPN) = MID$(X$, 1, 2) + "." + MID$(X$, 3, 2) ELSE SDAT$(4, SDEPN) = " " 990 X$ = MID$(D$, 30, 5) 1000 IF X$ <> "99999" THEN SDAT$(5, SDEPN) = MID$(X$, 1, 4) + "." + MID$(X$, 5, 1) ELSE SDAT$(5, SDEPN) = " " 1010 X$ = MID$(D$, 36, 5) 1020 IF X$ <> "99999" THEN SDAT$(6, SDEPN) = MID$(X$, 1, 4) + "." + MID$(X$, 5, 1) ELSE SDAT$(6, SDEPN) = " " 1030 X$ = MID$(D$, 42, 4) 1040 IF X$ <> "9999" THEN SDAT$(7, SDEPN) = MID$(X$, 1, 1) + "." + MID$(X$, 2, 3) ELSE SDAT$(7, SDEPN) = " " 1050 X$ = MID$(D$, 47, 4) 1060 IF X$ <> "9999" THEN SDAT$(8, SDEPN) = MID$(X$, 1, 3) + "." + MID$(X$, 4, 1) ELSE SDAT$(8, SDEPN) = " " 1070 IF MID$(D$, 2, 1) = "1" THEN GOTO 1090 ELSE GOTO 490 1080 ' 1085 '*PRINTOBSDATA 1090 '*ST100 1100 N = 0 1110 '*ST110 1120 IF N < 0 THEN N = 0 1130 GOSUB 1630 1140 GOSUB 1710 1150 '*ST120 1160 ID = 3: GOSUB 2050 1170 IF IKEY = 1 THEN N = N + 15: GOTO 1110 1180 IF IKEY = 2 THEN N = N - 15: GOTO 1110 1190 IF IKEY = 3 THEN GOTO 1240 1200 IF IKEY = 4 THEN GOTO 1400 1210 IF IKEY = 5 THEN CLS : GOTO 210 1215 IF IKEY = 9 THEN GOTO 1560 1220 GOTO 1150 1230 ' 1235 '*PRINTSTANDDATA 1240 '*ST140 1250 N = 0 1260 '*ST150 1270 IF N < 0 THEN N = 0 1280 GOSUB 1630 1290 GOSUB 1880 1300 '*ST160 1310 ID = 6: GOSUB 2050 1320 IF IKEY = 1 THEN N = N + 15: GOTO 1260 1330 IF IKEY = 2 THEN N = N - 15: GOTO 1260 1340 IF IKEY = 3 THEN GOTO 1090 1350 IF IKEY = 4 THEN GOTO 1400 1360 IF IKEY = 5 THEN CLS : GOTO 210 1370 IF IKEY = 9 THEN GOTO 1560 1380 GOTO 1300 1390 ' 1395 '*PRINTADDDATA 1400 '*ST200 1410 N = 0 1420 '*ST210 1430 IF N < 0 THEN N = 0 1440 GOSUB 1630 1450 GOSUB 2170 1460 '*ST220 1470 ID = 4: GOSUB 2050 1480 IF IKEY = 1 THEN N = N + 15: GOTO 1420 1490 IF IKEY = 2 THEN N = N - 15: GOTO 1420 1500 IF IKEY = 3 THEN GOTO 1240 1510 IF IKEY = 4 THEN GOTO 1090 1520 IF IKEY = 5 THEN CLS : GOTO 210 1530 IF IKEY = 9 THEN GOTO 1560 1540 GOTO 1460 1550 ' 1560 '*ENDPROG 1565 CLS : PRINT "Program End" 1570 CLOSE 1580 END 1590 ' ***************************************************************: 1600 ' * PRINT HEADER * 1610 ' *************************************************************** 1620 ' 1630 '*PRINTHEAD 1640 CLS 1645 PRINT 1650 PRINT LIN1$: PRINT LIN2$: PRINT LIN3$ 1660 RETURN 1670 ' ***************************************************************: 1680 ' * PRINT OBSERVATION DATA * 1690 ' *************************************************************** 1700 ' 1710 '*PRINTOBS 1712 NFLAG = 0: BFLAG = 0 1714 IF N = 0 OR ODEPN < 16 THEN BFLAG = 9 1720 LOCATE 5, 30: PRINT "Observation Data" 1730 PRINT "Depth Temp Psal DO P T-P NO2-N NO3-N Si pH" 1740 FOR I = 1 TO 15 1750 K = N + I: IF K > ODEPN THEN NFLAG = 9: GOTO 1820 1755 Y$ = OBDEP$(K): GOSUB 2460 1760 X$ = Y$ + " " 1770 FOR J = 1 TO 9 1775 Y$ = ODAT$(J, K): GOSUB 2460 1780 X$ = X$ + Y$ + " " 1790 NEXT J 1800 PRINT X$ 1810 NEXT I 1820 '*OBRTN 1830 RETURN 1840 ' *************************************************************** 1850 ' * PRINT STANDARD DATA * 1860 ' *************************************************************** 1870 ' 1880 '*PRINTSTN 1882 NFLAG = 0: BFLAG = 0 1884 IF N = 0 OR SDEPN < 16 THEN BFLAG = 9 1890 LOCATE 5, 30: PRINT "Standard Depth Data " 1900 PRINT "Depth Temp Psal DO SIGMA-t D-T SVA D-DY S.VEL" 1910 FOR I = 1 TO 15 1920 K = N + I: IF K > SDEPN THEN NFLAG = 9: GOTO 1990 1925 Y$ = STDEP$(K): GOSUB 2460 1930 X$ = Y$ + " " 1940 FOR J = 1 TO 8 1945 Y$ = SDAT$(J, K): GOSUB 2460 1950 X$ = X$ + Y$ + " " 1960 NEXT J 1970 PRINT X$ 1980 NEXT I 1990 '*STRTN 2000 RETURN 2010 ' ***************************************************************: 2020 ' * PRINT KEY * 2030 ' *************************************************************** 2040 ' 2050 '*PRINTKEY 2075 LOCATE 23, 1 2080 IF NFLAG <> 9 THEN PRINT " 1:Next Page "; 2085 IF BFLAG <> 9 THEN PRINT "2:Before Page "; 2090 IF ID = 3 OR ID = 4 THEN PRINT "3:Standard Data "; ELSE PRINT "3:Obs. Data "; 2095 IF ID = 3 OR ID = 6 THEN IF IAD <> 0 THEN PRINT "4:additional Data "; 2100 IF ID <> 3 AND ID <> 6 THEN PRINT "4:Obs. Data "; 2110 PRINT "5:Next Stn. 9:END" 2112 LOCATE 22, 1 2114 INPUT "Please select number to go to next step "; IKEY 2120 RETURN 2130 ' ***************************************************************: 2140 ' * PRINT Additional Data * 2150 ' *************************************************************** 2160 ' 2170 '*PRINTADD 2180 NFLAG = 0: BFLAG = 0 2190 IF N = 0 OR ODEPN < 16 THEN BFLAG = 9 2200 LOCATE 5, 10: PRINT "Additional Data (Chemical Data) " 2202 IF IAD > 10 THEN IAD = 10 2204 X$ = "Depth " 2206 FOR I = 1 TO IAD 2208 J = NAD(I) - 10 2210 X$ = X$ + HEAD1$(J) + " " 2212 NEXT I 2214 PRINT X$ 2230 FOR I = 1 TO 15 2240 K = N + I: IF K > ODEPN THEN NFLAG = 9: GOTO 2400 2250 Y$ = OBDEP$(K): GOSUB 2460 2255 X$ = Y$ + " " 2260 FOR J = 1 TO IAD 2265 L = NAD(J) 2267 Y$ = ODAT$(L, K): GOSUB 2460 2270 X$ = X$ + Y$ + " " 2280 NEXT J 2290 PRINT X$ 2300 NEXT I 2400 '*ADRTN 2410 RETURN 2420 ' ***************************************************************: 2430 ' * PRINT Additional Data * 2440 ' *************************************************************** 2450 ' 2460 '*ZEROSUP 2465 ZFLAG = 0 2467 IF MID$(Y$, 1, 1) = "+" THEN W$ = MID$(Y$, 1, 1): GOTO 2475 2470 IF MID$(Y$, 1, 1) = "0" AND MID$(Y$, 2, 1) <> "." THEN W$ = " " ELSE W$ = MID$(Y$, 1, 1): ZFLAG = 9 2475 '*ZE10 2480 NC = LEN(Y$) 2490 FOR NA = 2 TO NC - 1 2495 IF MID$(Y$, NA, 1) <> "0" THEN ZFLAG = 9 2500 IF MID$(Y$, NA, 1) = "0" AND MID$(Y$, NA + 1, 1) <> "." AND ZFLAG <> 9 THEN W$ = W$ + " " ELSE W$ = W$ + MID$(Y$, NA, 1) 2510 NEXT NA 2520 Y$ = W$ + MID$(Y$, NC, 1) 2530 RETURN 2540 ' ***************************************************************: 2550 ' * PRINT Additional Data * 2560 ' *************************************************************** 2570 ' 2580 '*INIT 2590 FOR I = 1 TO 50 2600 OBDEP$(I) = " " 2610 STDEP$(I) = " " 2620 FOR J = 1 TO 26 2630 ODAT$(J, I) = " " 2640 NEXT J 2650 FOR J = 1 TO 10 2660 SDAT$(J, I) = " " 2670 NEXT J 2680 NEXT I 2690 RETURN