10 REM *** PROGRAM LOWBELTS *** 20 REM *** THIS PROGRAM GETS DATA FROM MAP2.DAT *** 30 REM *** AND DRAWS THE APPROPRIATE MAP *** 40 REM *** STANLEY DAVID GEDZELMAN *** 50 REM *** 21 MARCH 1999 REF FOR PS2 SCREEN 12 *** 80 DIM LTS(100), LNS(100), XST(100), YST(100) DIM LTRJ(50, 5), LNTRJ(50, 5), ZTRJ(50, 5) DIM LTLOW(7), LNLOW(7) HUE(1) = 12: HUE(2) = 1: HUE(3) = 2: HUE(4) = 6 JMAX = 4 82 DRC = 1.745329E-02 OPEN "LOWTRAJ" FOR INPUT AS #1 INPUT #1, A$ FOR I = 1 TO 7 INPUT #1, LTLOW(I), LNLOW(I) LTLOW(I) = LTLOW(I) * DRC LNLOW(I) = LNLOW(I) * DRC NEXT I INPUT #1, A$ FOR I = 1 TO 6 INPUT #1, LTWF(I), LNWF(I) LTWF(I) = LTWF(I) * DRC LNWF(I) = LNWF(I) * DRC NEXT I INPUT #1, A$ FOR I = 1 TO 6 INPUT #1, LTCF(I), LNCF(I) LTCF(I) = LTCF(I) * DRC LNCF(I) = LNCF(I) * DRC NEXT I INPUT #1, A$ FOR I = 1 TO 3 INPUT #1, LTDL(I), LNDL(I) LTDL(I) = LTDL(I) * DRC LNDL(I) = LNDL(I) * DRC NEXT I FOR J = 1 TO JMAX INPUT #1, A$ FOR I = 1 TO 6 INPUT #1, LTRJ(I, J), LNTRJ(I, J), ZTRJ(I, J) LTRJ(I, J) = LTRJ(I, J) * DRC LNTRJ(I, J) = LNTRJ(I, J) * DRC NEXT I NEXT J CLOSE #1 85 GOSUB 600 90 CLS : SCREEN 12 100 OPEN "I", #1, "MAP2.DAT" 110 LINE INPUT #1, NREG$ 120 CTR = 1 130 REM PRINT NREG$ 200 FOR NR = 1 TO NFIN 210 LINE INPUT #1, REG$ 225 REM PRINT REG$ 230 LINE INPUT #1, NPT$ 245 REM PRINT NPT$ 250 NP = VAL(NPT$) 255 IF NR < NST THEN 330 260 FOR II = 1 TO NP 270 LINE INPUT #1, PST$ 280 LT$ = LEFT$(PST$, 7) 285 LN$ = MID$(PST$, 8, 7) 290 LTS(II) = VAL(LT$) * DRC 300 LNS(II) = VAL(LN$) * DRC 305 REM PRINT LTS(II), LNS(II) 310 NEXT II 320 GOTO 400 330 FOR II = 1 TO NP 340 LINE INPUT #1, PST$ 350 NEXT II 360 GOTO 590 400 REM CHANGING LATITUDES AND LONGITUDES TO X AND Y 430 FOR II = 1 TO NP 470 XST(II) = XCON - SCL * COS(LTS(II)) * SIN(LNS(II) - CLON) / (1 + SIN(LTS(II))) 480 YST(II) = YCON + SCL * COS(LTS(II)) * COS(LNS(II) - CLON) / (1 + SIN(LTS(II))) 485 REM PRINT XST(II), YST(II) 490 NEXT II 492 REM WHILE INKEY$="" WEND 500 REM DRAW THE STATES DXMAP = .2: DYMAP = .35 510 FOR I = 1 TO NP - 1 XC1 = XST(I) - YST(I) * DXMAP YC1 = YST(I) * DYMAP XC2 = XST(I + 1) - YST(I + 1) * DXMAP YC2 = YST(I + 1) * DYMAP LINE (XC1, YC1 + 100)-(XC2, YC2 + 100) 530 NEXT I 590 NEXT NR PAINT (620, 450), 11, 15: REM THIS PAINTS THE WATER BLUE PAINT (400, 10), 11, 15 LOCATE 1, 20: PRINT "HIT ANY KEY TO START TRAJECTORIES" WHILE INKEY$ = "": WEND FOR I = 1 TO 7 XLOW(I) = XCON - SCL * COS(LTLOW(I)) * SIN(LNLOW(I) - CLON) / (1 + SIN(LTLOW(I))) YLOW(I) = YCON + SCL * COS(LTLOW(I)) * COS(LNLOW(I) - CLON) / (1 + SIN(LTLOW(I))) NEXT I FOR I = 1 TO 6 XCL1 = XLOW(I) - YLOW(I) * DXMAP YCL1 = YLOW(I) * DYMAP XCL2 = XLOW(I + 1) - YLOW(I + 1) * DXMAP YCL2 = YLOW(I + 1) * DYMAP LINE (XCL1, YCL1 + 100)-(XCL2, YCL2 + 100), 12 NEXT I PAINT (XCL2 + 2, YCL2 + 105), 12 FOR I = 1 TO 6 XLOW(I) = XCON - SCL * COS(LTWF(I)) * SIN(LNWF(I) - CLON) / (1 + SIN(LTWF(I))) YLOW(I) = YCON + SCL * COS(LTWF(I)) * COS(LNWF(I) - CLON) / (1 + SIN(LTWF(I))) NEXT I FOR I = 1 TO 5 XCL1 = XLOW(I) - YLOW(I) * DXMAP YCL1 = YLOW(I) * DYMAP XCL2 = XLOW(I + 1) - YLOW(I + 1) * DXMAP YCL2 = YLOW(I + 1) * DYMAP IF I < 5 THEN HUEF = 12 ELSE HUEF = 13 LINE (XCL1, YCL1 + 100)-(XCL2, YCL2 + 100), HUEF LINE (XCL1, YCL1 + 99)-(XCL2, YCL2 + 99), HUEF LINE (XCL1, YCL1 + 101)-(XCL2, YCL2 + 101), HUEF NEXT I FOR I = 1 TO 6 XLOW(I) = XCON - SCL * COS(LTCF(I)) * SIN(LNCF(I) - CLON) / (1 + SIN(LTCF(I))) YLOW(I) = YCON + SCL * COS(LTCF(I)) * COS(LNCF(I) - CLON) / (1 + SIN(LTCF(I))) NEXT I FOR I = 1 TO 5 XCL1 = XLOW(I) - YLOW(I) * DXMAP YCL1 = YLOW(I) * DYMAP XCL2 = XLOW(I + 1) - YLOW(I + 1) * DXMAP YCL2 = YLOW(I + 1) * DYMAP LINE (XCL1, YCL1 + 100)-(XCL2, YCL2 + 100), 9 LINE (XCL1, YCL1 + 101)-(XCL2, YCL2 + 101), 9 LINE (XCL1, YCL1 + 99)-(XCL2, YCL2 + 99), 9 NEXT I FOR I = 1 TO 3 XLOW(I) = XCON - SCL * COS(LTDL(I)) * SIN(LNDL(I) - CLON) / (1 + SIN(LTDL(I))) YLOW(I) = YCON + SCL * COS(LTDL(I)) * COS(LNDL(I) - CLON) / (1 + SIN(LTDL(I))) NEXT I FOR I = 1 TO 2 XCL1 = XLOW(I) - YLOW(I) * DXMAP YCL1 = YLOW(I) * DYMAP XCL2 = XLOW(I + 1) - YLOW(I + 1) * DXMAP YCL2 = YLOW(I + 1) * DYMAP LINE (XCL1, YCL1 + 100)-(XCL2, YCL2 + 100), 6 LINE (XCL1 + 1, YCL1 + 101)-(XCL2 + 1, YCL2 + 101), 6 LINE (XCL1 - 1, YCL1 + 99)-(XCL2 - 1, YCL2 + 99), 6 NEXT I REM DRAWING TRAJECTORIES FOR LOW PRESSURE AREA TRJMAX = 5000 FOR I = 1 TO 5 FOR K = 1 TO TRJMAX FOR J = 1 TO JMAX LTT = LTRJ(I, J) + (LTRJ(I + 1, J) - LTRJ(I, J)) * K / TRJMAX LNTT = LNTRJ(I, J) + (LNTRJ(I + 1, J) - LNTRJ(I, J)) * K / TRJMAX ZTT = ZTRJ(I, J) + (ZTRJ(I + 1, J) - ZTRJ(I, J)) * K / TRJMAX XTRJ = XCON - SCL * COS(LTT) * SIN(LNTT - CLON) / (1 + SIN(LTT)) YTRJ = YCON + SCL * COS(LTT) * COS(LNTT - CLON) / (1 + SIN(LTT)) XCT = XTRJ - YTRJ * DXMAP YCT = YTRJ * DYMAP IF INT(K / 500) = K / 500 THEN LINE (XCT, YCT + 100)-(XCT, YCT + 100 - 10 * ZTT), 14 PSET (XCT, YCT + 100 - 10 * ZTT), HUE(J) PSET (XCT, YCT + 101 - 10 * ZTT), HUE(J) PSET (XCT, YCT + 99 - 10 * ZTT), HUE(J) NEXT J NEXT K NEXT I 592 WHILE INKEY$ = "": WEND 595 END 600 NST = 1: NFIN = 94 CLON = 92 * DRC XMIN = -COS(32 * DRC) * SIN(18 * DRC) / (1 + SIN(32 * DRC)) XMAX = COS(45 * DRC) * SIN(18 * DRC) / (1 + SIN(45 * DRC)) YMIN = COS(47.5 * DRC) * COS(17 * DRC) / (1 + SIN(47.5 * DRC)) YMAX = COS(29.5 * DRC) * COS(9 * DRC) / (1 + SIN(29.5 * DRC)) 709 REM *** SETTING THE MAP SCALES *** 710 XSCL = ABS(XMAX - XMIN) 720 YSCL = ABS(YMAX - YMIN) 730 IF XSCL > 1.33 * YSCL THEN SCL = 620 / XSCL ELSE SCL = 480 / YSCL 740 YCON = 240 - SCL * (YMAX + YMIN) / 2 750 XCON = 320 - SCL * (XMAX + XMIN) / 2 790 RETURN