100 REM Program 'LASER101.BAS' computes parameters for a 4.9 mW laser pointer. 110 REM Variables = double precision except I*. R. B. Minton, 04/27/2005. 120 DEFDBL A-H: DEFDBL J-Z: REM I=SINGLE, REST=DOUBLE 130 DEF FNA(X)=INT(X*10+.5)/10: REM ROUND TO 1 DECIMAL PLACE 140 DEF FNB(X)=INT(X*100+.5)/100: REM ROUND TO 2 DECIMAL PLACES 150 DEF FNC(X)=INT(X*1000+.5)/1000: REM ROUND TO 3 DECIMAL PLACES 160 DEF FND(X)=INT(X*10000+.5)/10000: REM ROUND TO 4 DECIMAL PLACES 170 DEF FNE(X)=INT(X*100000!+.5)/100000!: REM ROUND TO 5 DECIMAL PLACES 180 DEF FNF(X)=INT(X*1000000!+.5)/1000000!: REM ROUND TO 6 DECIMAL PLACES 190 DEF FNG(X)=LOG(X)/(LOG(10#)): REM LOG BASE 10(X) 200 DEF FNH(X)=LOG(X)/(LOG(E)): REM LOG BASE E(X) [NATURAL LOG] 210 DEF FNJ(X)=X*C*C: REM ENERGY = MC^2 (JOULES) 220 DEF FNM(X)=X*C*C*6241455000000#: REM ENERGY = MC^2 (MeV) 230 DEF FNY(X)=ATN(X/SQR(1#-(X*X))): REM ASIN(X) 240 DEF FNZ(X)=ATN(SQR(1#-(X*X))/X): REM ACOS(X) 250 DIM M$(25): REM 1 SCREEN OF INFO LINES 260 DIM F$(25): REM FORMATS AND PROMPTS 270 REM ----------- DEFINE SOME CONSTANTS AND CONVERSION FACTORS ------------ 280 REM THE ARITHMETIC OVERFLOW VALUE BELOW RESULTS WITH A DIVISION BY ZERO ! 290 AO=1.7014D+38: REM ARITHMETIC OVERFLOW VALUE 300 PI=4#*ATN(1#): REM PI=3.141592653589793 310 RAD=180#/PI: REM RADIAN=57.29577951308232 320 C=299792458#: REM SPEED OF LIGHT (M/SEC) 330 CC=29979245800#: REM SPEED OF LIGHT (CM/SEC) 340 MUO=1.256637061435917D-06: REM PERMEABILITY OF FREE SPACE 350 EOH=8.841941282883074D-12: REM PERMITTIVITY OF FREE SPACE 360 E=2.7182818459045#: REM VALUE OF E 370 NM=.000000001#: REM RATIO NANOMETER / METER 380 NRC=.0000000000000012#: REM NUCLEAR RADIUS CONSTANT 390 EV=1.60217733D-19: REM ELECTRON VOLT, JOULES 400 EM=9.1093897D-31: REM ELECTRON MASS, KG 410 AMU=1.6605402D-27: REM ATOMIC MASS UNIT, KG 420 JKG=8.987551787368177D+16: REM JOULES PER KILOGRAM 430 AN=6.0221367D+23: REM AVOGADRO'S NUMBER 440 COU=6.25D+18: REM COULOMB CONSTANT, N*M^2/C^2 450 PC=6.6260755D-34: REM PLANCK'S CONSTANT, J/SEC 460 BR=5.29177249D-11: REM BOHR RADIUS, METERS 470 BU$=" ": REM BLANKS TO CENTER SCREEN 480 FC$=" . . . . Enter to Continue " 490 FR$=" . . . . Enter R to Return, or to Continue " 500 FW$=" . . . . Enter Y to use Menu, or to Continue " 510 REM CONTINUE 520 KEY OFF: SCREEN 0,0,0: CLS 530 M$(1) ="------------------------------------------------------------------" 540 M$(2) =" Electromagnetic Radiation - Electric (E) and Magnetic (B) Fields " 550 M$(3) ="------------------------------------------------------------------" 560 M$(4) ="1: User inputs an electromagnetic (e/m) intensity in Watts. " 570 M$(5) ="2: User inputs the linear cross-section of this beam which has " 580 M$(6) =" the given amount of e/m power (the beam diameter). " 590 M$(7) ="3: User inputs the laser beam divergence in milliradians. " 600 M$(8) ="4: User inputs the distance to the target in meters. " 610 M$(9) ="5: Program computes the enlarged beam diameter on the target. " 620 M$(10)="6: Program computes the average power in Watts/square meter, and " 630 M$(11)=" the electric and magnetic fields in Newtons/Coulomb and Teslas." 640 M$(12)="7: The program assumes the e/m intensity is already in Watts, and " 650 M$(13)=" there is 100% efficiency in generating the e/m intensity. " 660 M$(14)="------------------------------------------------------------------" 670 M$(15)="------------------ SAMPLE INPUTS & OUTPUTS -----------------------" 680 M$(16)="Inputs: power = 0.00492 (light from a ~5 mW laser pointer - the " 690 M$(17)=" beam power is actually 4.92 milliwatts) " 700 M$(18)=" beam size = 0.0011 (emerging spot = 1.1 mm) " 710 M$(19)=" divergence = 1.2 milliradians or 0.068755 degrees " 720 M$(20)=" target distance = 100 meters " 730 M$(21)="Outputs: Enlarged beam diameter = 120 millimeters or 0.12 Meters " 740 M$(22)=" Watts per sq. meter = 4.3502 x 10-1 Watts/Meter^2 " 750 M$(23)=" Magnetic field (B) = 6.0390 x 10-8 Tesla " 760 M$(24)=" Electric field (Eo) = 1.8104 x 10+1 Newtons/Coulomb " 770 M$(25)="------------------------------------------------------------------" 780 FOR I=1 TO 14: M$(I)=BU$+M$(I): PRINT M$(I): NEXT I 790 PRINT FC$;:INPUT;CR$ 800 PRINT: PRINT: FOR I=15 TO 25: M$(I)=BU$+M$(I): PRINT M$(I): NEXT I 810 F1$="##.####^^^^": FB$="##.########" 820 REM CONTINUE 830 PRINT BU$; 840 REM WATTS=.00492: EBD=.0011: BDV=1.2: GOTO 880 850 INPUT"Enter electromagnetic radiation power (Watts) : ";WATTS: PRINT BU$; 860 INPUT"Enter the emerging beam/spot diameter (Meters): ";EBD: PRINT BU$; 870 INPUT"Enter the beam divergence (MilliRadians): ";BDV: PRINT BU$; 880 REM CONTINUE 890 INPUT"Enter the distance to the target (Meters): ";DTT: PRINT 900 F2$="Emerging beam diameter =" 910 F3$="Beam divergence =" 920 F4$="Beam divergence =" 930 F5$="Beam divergence =" 940 F6$="Distance to target =" 950 F7$="Distance to target =" 960 F8$="Beam Diameter on target =" 970 F9$="Beam Diameter on target =" 980 F10$="Power per unit area =" 990 F11$="Magnetic field intensity (B) =" 1000 F12$="Electric field intensity (Eo) =" 1010 TBD=DTT*(TAN(BDV/1000)): REM SIZE OF BEAM ON TARGET, METERS 1020 BDD=RAD*(BDV/1000): REM BEAM DIVERGENCE IN DEGREES 1030 BDM=BDD*60: REM BEAM DIVERGENCE IN ARC-MINUTES 1040 RSPOT=TBD/2: AREA=PI*(RSPOT*RSPOT): WPSM=WATTS/AREA 1050 B2=(WPSM*(2#*MUO))/C: B=SQR(B2): ELE=B*C 1060 PRINT BU$;:PRINT F2$;:PRINT USING F1$;EBD*1000;:PRINT" mm" 1070 PRINT BU$;:PRINT F3$;:PRINT USING FB$;BDV;:PRINT" milliradians" 1080 PRINT BU$;:PRINT F4$;:PRINT USING FB$;BDD;:PRINT" degrees" 1090 PRINT BU$;:PRINT F5$;:PRINT USING FB$;BDM;:PRINT" arc-min" 1100 PRINT BU$;:PRINT F6$;:PRINT USING F1$;DTT*1000;:PRINT" mm" 1110 PRINT BU$;:PRINT F7$;:PRINT USING F1$;DTT;:PRINT" Meters" 1120 PRINT BU$;:PRINT F8$;:PRINT USING F1$;TBD*1000;:PRINT" mm" 1130 PRINT BU$;:PRINT F9$;:PRINT USING F1$;TBD;:PRINT" Meters" 1140 PRINT BU$;:PRINT F10$;:PRINT USING F1$;WPSM;:PRINT" Watts/square meter" 1150 PRINT BU$;:PRINT F11$;:PRINT USING F1$;B;:PRINT" Tesla" 1160 PRINT BU$;:PRINT F12$;:PRINT USING F1$;ELE;:PRINT" Newtons/Coulomb" 1170 PRINT 1180 PRINT FR$;:INPUT;CR$ 1190 IF CR$="R" THEN GOTO 820 1200 CLS 1210 M$(1) ="------------------------------------------------------------------" 1220 M$(2) =" Electromagnetic Radiation - Illumination at a Distance " 1230 M$(3) ="------------------------------------------------------------------" 1240 M$(4) ="1: Program calculates the decrease in light intensity at a sur- " 1250 M$(5) =" face from an omnidirectional light source (a light bulb). " 1260 M$(6) ="2: User is prompted for light bulb wattage and distance. " 1270 M$(7) ="3: Program assumes the bulbs' luminous efficiency is 15%. If not," 1280 M$(8) =" enter the luminous efficiency INTO THE BASIC SOURCE CODE. " 1290 M$(9) ="------------------------------------------------------------------" 1300 M$(10)=" Sample inputs & outputs: " 1310 M$(11)="Inputs: power = 15 Watts " 1320 M$(12)=" distance = 1 Meter (distance of bulb to wall) " 1330 M$(13)="Outputs: Watts per sq. meter = 1.1937 x 10+0 Watts/Meter^2 " 1340 M$(14)=" Magnetic field (B) = 1.0003 x 10-7 Tesla " 1350 M$(15)=" Electric field (Eo) = 2.9990 x 10+1 Newtons/Coulomb " 1360 M$(16)="------------------------------------------------------------------" 1370 FOR I=1 TO 16: M$(I)=BU$+M$(I): PRINT M$(I): NEXT I 1380 REM CONTINUE 1390 PRINT BU$; 1400 INPUT"Enter the light bulb wattage (Watts): ";WATTS: PRINT BU$; 1410 LUME=.15: WATTS=WATTS*LUME: REM BULB'S LUMINOUS EFFICIENCY=15% 1420 INPUT"Enter distance from bulb to surface (Meters): ";DIS: PRINT 1430 TAREA=4#*PI*(DIS*DIS): REM TOTAL AREA OF SPHERE AT DISTANCE 1440 WPSM=WATTS/TAREA: REM WATTS INCIDENT ON 1 SQ. METER 1450 B2=(WPSM*(2#*MUO))/C: B=SQR(B2): ELE=B*C 1460 F2$="Power per unit area =" 1470 F3$="Magnetic field intensity (B) =" 1480 F4$="Electric field intensity (Eo) =" 1490 PRINT BU$;:PRINT F2$;:PRINT USING F1$;WPSM;:PRINT" Watts/square meter" 1500 PRINT BU$;:PRINT F3$;:PRINT USING F1$;B;:PRINT" Tesla" 1510 PRINT BU$;:PRINT F4$;:PRINT USING F1$;ELE;:PRINT" Newtons/Coulomb" 1520 PRINT FR$;:INPUT;CR$ 1530 IF CR$="R" THEN GOTO 1380 1540 CLS 1550 REM CONTINUE 1560 GOTO 510: REM LOOP THRU EVERYTHING AGAIN 1570 SAVE"LASER101.BAS",A: REM TYPE RUN (LINE #) TO SAVE TO 'C' DRIVE 1580 SAVE"A:LASER101.BAS",A: REM TYPE RUN (LINE #) TO SAVE TO 'A' FLOPPY 1590 END