home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / EDUCATIN / AVIAUTL1.LBR / DENSALT.BZS / DENSALT.BAS
BASIC Source File  |  2000-06-30  |  4KB  |  87 lines

  1. 10   IF F$="f" OR F$="F" THEN PRINT USING "####.#";OBSTEMP*9/5+32;
  2. 20 'Program written and compiled by R. Gross, Santa Cruz, CA.  This program may
  3. 30 'be used and copied by anyone for their own noncommercial use.
  4. 40 'The writer accepts no responsibility for the consequences of using this
  5. 50 'program.
  6. 60 'Certain portions copyright (C) Microsoft Corporation.
  7. 70 '*****************************************************
  8. 80 'The first section of the program calls for the user to declare whether he
  9. 90 'wishes to use Celsius (Centigrade) or Fahrenheit for his temperature read-
  10. 100 'out.  The routines following assume that all temperatures will be given in
  11. 110 'the units as previously declared, i.e., all Celsius or all Fahrenheit.
  12. 120 '
  13. 130 'It should be noted that the temperatures called for in the beginning of the
  14. 140 'program are Static Air Temperatures (OAT), not indicated temperatures.
  15. 150 'Most light reciprocating aircraft are slow enough that no ram (friction)
  16. 160 'correction need to be made to the indicated temperature, however nearly
  17. 170 'all jet aircraft cruise at a mach number high enough to require correction
  18. 180 'from Indicated to Static temperatures in order to give correct results.
  19. 190 '
  20. 200 'Note that at certain pressure altitudes, the computed density altitude will
  21. 210 'disagree by a few feet when the computed standard temperature is entered.
  22. 220 'This is because of (1) rounding of coefficients used in the equations, and
  23. 230 '(2) internal rounding errors in the computer itself.
  24. 231 'This program has been modified to run on an H/Z-89,H/Z-90 CP/M-80 system 
  25. 240 PRINT CHR$(27);CHR$(69)
  26. 250 PRINT TAB(30)"DENSALT PROGRAM"
  27. 251 PRINT
  28. 260 'calculate standard air temperature
  29. 270 INPUT "Pressure altitude in feet above msl=";PRESSALT
  30. 280 'compute standard atmospheric pressure ratio, delta
  31. 290 DELTA=((288.2-.001981*PRESSALT)/288.2)^5.2561
  32. 300  IF PRESSALT>36089! THEN LET DELTA=.2234*EXP(-(PRESSALT-36089!)/20806)
  33. 310 'compute standard atmosphere temperature and absolute temperature
  34. 320 STDTEMP=-.001981*PRESSALT+15:STDABSTEMP=-.001981*PRESSALT+288.2
  35. 330  IF PRESSALT>36089! THEN LET STDTEMP=-56.5:STDABSTEMP=216.7
  36. 340 PRINT
  37. 350 'determine Celsius or Fahrenheit basis
  38. 360 PRINT "  Do you want temperature in Celsius [C] or Fahrenheit (F)?"
  39. 370   F$=INKEY$:IF F$="" THEN 370
  40. 380 PRINT
  41. 390 PRINT "Standard temperature at";PRESSALT;
  42. 400 PRINT " feet msl=";
  43. 410   IF F$<>"f" AND F$<>"F" THEN PRINT USING "####.#";STDTEMP;
  44. 420   IF F$<>"f" AND F$<>"F" THEN PRINT CHR$(248);" C.":GOTO 460
  45. 430 'convert degrees Celsius (Centigrade) to Fahrenheit
  46. 440 PRINT USING "####.#";STDTEMP*9/5+32;
  47. 450 PRINT CHR$(248);" F."
  48. 460 '
  49. 470 'routine to determine density altitude
  50. 480 PRINT
  51. 490 'enter observed (ambient) temperature
  52. 500 INPUT "Observed temperature";OBSTEMP
  53. 510 'convert degrees F. to degrees C.
  54. 520   IF F$="f" OR F$="F" THEN LET OBSTEMP=(OBSTEMP-32)*5/9
  55. 530 PRINT
  56. 540 'convert observed temperature to absolute temperature (degrees Kelvin)
  57. 550 OBSABSTEMP=OBSTEMP+273.2
  58. 560 'compute atmospheric temperature ratio, theta
  59. 570 THETA=OBSABSTEMP/288.2
  60. 580 'compute atmospheric density ratio, sigma
  61. 590 SIGMA=DELTA/THETA
  62. 600 'compute density altitude if pressure altitude above standard tropopause
  63. 610   IF PRESSALT>36089! THEN LET DENSALT=-20806*LOG(SIGMA/.2971)+36089!:GOTO 640
  64. 620 'compute density altitude if pressure altitude below standard tropopause
  65. 630 DENSALT=-(SIGMA^(1/4.2561)-1)/6.88E-06
  66. 640 PRINT
  67. 650 PRINT "At a Pressure Altitude of";PRESSALT;" feet and a Temperature of";
  68. 660   IF F$="f" OR F$="F" THEN PRINT USING "####.#";OBSTEMP*9/5+32;
  69. 670   IF F$="f" OR F$="F" THEN GOTO 690
  70. 680 PRINT USING "####.#";OBSTEMP;
  71. 690    IF F$="f"OR F$="F" THEN PRINT CHR$(248);" F.," ELSE PRINT CHR$(248);" C.,"
  72. 700 PRINT "the Density Altitude is ";
  73. 710 PRINT USING"######";DENSALT;
  74. 720 PRINT " feet."
  75. 730 PRINT
  76. 740 PRINT
  77. 750 REM
  78. 760 REM
  79. 761 PRINT
  80. 762 PRINT TAB(20)"Would you like to run another (Y or N)?";:X$=INPUT$(1)
  81. 763 IF X$="Y" THEN 770   
  82. 764 IF X$="N" THEN 780
  83. 770 PRINT CHR$(27);CHR$(69):CLEAR:GOTO 240
  84. 780 PRINT CHR$(27);CHR$(69):END
  85. 63 IF X$="Y" THEN 770   
  86. 764 IF X$="N" THEN 780
  87. 770 PRINT CHR$(27);CHR$(69):CLEAR