10000 REM April 24, 1996 *** WZ.rtn *** -wf 10001 REM this routine will be used for solar noon schedule. 10010 REM It let Brewer wait so that the next command will start at a specified time, 10020 DATA WZ 10030 CLS 10050 'YE%=95: DA%=22: MO%=151: 10110 'PI= 3.141593: P0= PI/180: P3%=1000: LO=83.376: LA=33.948 10170 'IF YE%=INT(YE%/4)*4 THEN LP%=1 ELSE LP%=0 10200 'IF LP%=1 AND N>1 THEN MO%= MO%+1 10300 gosub 17700: 10400 'rem 11006 ZW=5: rem zenith angle 5 degree stepsize 11020 zstart = zc 11100 x%=zc/5: x%=x%*5: rem round-up the angle, 4/10/96 11200 Gosub 17800: rem get current zenith angle 11300 PRINT CL$: 11400 LOCATE 6,10: PRINT " *** Press HOME to abort ***" 11450 LOCATE 8, 1: 11500 PRINT "Waiting till zenith angle=";x%; " to continue schedule" 14010 rem **** waiting loop **** 14011 'print zc, x% 14012 'for iii = 1 to 32000 14013 'for jjj = 1 to 32000 14014 'next jjj 14016 'next iii 14020 if zc > x% then 14170: rem test angle 14030 GOSUB 9891 14040 GOSUB 2093:IF HF%=1 THEN RETURN 14050 A$=INKEY$: IF A$=Q1$ THEN RETURN 14060 gosub 17800 14070 LOCATE 10,1 14080 PRINT "Current ZENITH ANGLE = "; ZC 14150 GOTO 14010: REM go to test. 14170 Print " end of waiting" 14180 'CLOSE#6: OPEN DD$+"WZLOG."+NO$ FOR APPEND AS 6 14190 'print#6, date$, timer/60, zstart, x%, zc 14200 'CLOSE#6: 14500 RETURN 65529 REM DUMMY LINE 17700 REM -7799 calculate year # from 1965 17710 T=0:IF MO%<35 AND YE%/4=INT(YE%/4) THEN T=-1:REM take off day in leap year 17712 IF YE% < 50 THEN T=(T+25+DA%+INT(YE%/4)+(YE%+35)*365-16+MO%)/365.2422 17720 IF YE% >=50 THEN T=(T+DA%+INT(YE%/4)+(YE%-65)*365-16+MO%)/365.2422 17730 'CLOSE#6 17750 RETURN 17800 REM -7999 calculate solar angles 17805 T0=timer/60: 17810 EP=.999999999#: 17815 I=(279.4574+360*T+T0/1460.97)*P0 17820 E=4.2*SIN(3*I)-2*COS(2*I)+596.5*SIN(2*I) 17830 E=E-12.8*SIN(4*I)+19.3*COS(3*I) 17840 E=E-(102.5+.142*T)*SIN(I)+(.033*T-429.8)*COS(I):RA=(T0+E/60+720-LO*4)*P0/4 17850 A=ATN(.4336*SIN(I-E*P0/240)) 17860 E=COS(RA)*COS(A)*COS(LA*P0)+SIN(LA*P0)*SIN(A):IF E=>1 THEN E=EP 17865 IF E=<-1 THEN E=-EP 17877 IF E=0 THEN E=.0000001 17885 E=ATN(SQR(1-E*E)/E):IF E<0 THEN E=E+PI:REM ** ERROR ON CONVERSION ** 17890 RA=SIN(RA): 'IF AZ=<0 AND RA=<0 THEN AZ=180+AZ:GOTO 7930 17937 IF E>90.5*P0 THEN 17960 17939 C1=COS(E):D1=1/(.955+(20.267*C1))-.047121 17940 C1=C1+.0083*D1:IF C1>-EP AND C1