1      SUBROUTINE ATMOS (A3,A8,A4)
2C
3C     THIS ROUTINE CALCULATES ATMOSPHERIC PROPERTIES OF THE
4C     US STANDARD ATMOSPHERE,1962,ASSUMING AN INVERSE SQUARE
5C     GRAVITATIONAL FIELD. THIS ASSUMPTION YIELDS DATA THAT
6C     AGREES WITH THE COESA DOCUMENT WITHIN 1 PER CENT AT
7C     ALL ALTITUDES UP TO 700 KILOMETERS (2296588 FEET). THE
8C     DATA IS ARRANGED IN THE ATMOSPHERE ARRAY, A, AS
9C     FOLLOWS
10C     A(1) = CS, SPEED OF SOUND, FT/SEC
11C     A(2) = (1/CS)(DCS/DZ), SOUND DERIVATIVE, 1/FT
12C     A(3) = Z, GEOMETRIC ALTITUDE, FT
13C     A(4) = P, PRESSURE, LB/FT2
14C     A(5) = DP/DZ, PRESSURE DERIVATIVE, LB/FT3
15C     A(6) = RHO, DENSITY, SLUGS/FT3
16C     A(7) = (1/RHO)(DRHO/DZ), DENSITY DERIVATIVE, 1/FT
17C     A(8) = T, TEMPERATURE, DEG RANKINE
18C     A(9) = DT/DZ, TEMPERATURE DERIVATIVE, DEG RANKINE/FT
19C
20C     VARIOUS CONSTANTS USED
21C      EARTH RADIUS                = 20890855 FT
22C      SPECIFIC HEAT RATIO FOR AIR = 1.4
23C     SEA LEVEL VALUES
24C      GRAVITATIONAL ACCELERATION  = 32.1740484 FT/SEC2
25C      MOLECULAR WEIGHT            = 28.9644
26C      GO*MO/R*                    = 0.018743418 DEG RANK/FT
27C
28      DIMENSION  A( 9),HG(10),ZM(14),WM(14),TM(23),PM(22)
29C
30C     SET ARRAYS AND CONSTANT VALUES
31      DATA G0,WM0,R0,GMRS/32.1740484,28.9644,20890855.0,
32     1     0.018743418/,HG/-16404.,0.0
33     2     ,36089.,65617.,104987.,154199.,170604.,200131.,
34     3     250186.,291160./,ZM/295276.,328084.,
35     4     360892.,393701.,492126.,524934.,557743.,623360.,
36     5     754593.,984252.,1312336.,1640420.,1968504.,
37     6     2296588./,WM/28.9644,28.88,28.56,
38     7     28.07,26.92,26.66,26.4,25.85,24.7,22.66,19.94,
39     8     17.94,16.84,16.17/
40C
41      DATA TM/577.17,518.67,389.97,389.97,411.57
42     1     ,487.17,487.17,454.77,325.17,325.17,379.17,469.17
43     2     ,649.17,1729.17,1999.17,2179.17,2431.17,2791.17
44     3     ,3295.17,3889.17,4357.17,4663.17,4861.17/,PM/
45     4     3711.0839,2116.2165,472.67563,114.34314,
46     5     18.128355,2.3162178,1.2321972,3.8030279E-01,
47     6     2.1671352E-02,3.4313478E-03,6.2773411E-04,1.53490
48     7     91E-04,5.2624212E-05,1.0561806E-05,7.7083076E-06,
49     8     5.8267151E-06,3.5159854E-06,1.4520255E-06,3.92905
50     9     63E-07,8.4030242E-08,2.2835256E-08,7.1875452E-09/
51C
52      A(3) = A3
53C
54C     CALCULATE G, Z, AND CHECK
55C
56 1000 Z = A(3)
57      G = G0*(R0/(R0+Z))**2
58      IF (Z .GT. 295276.0) GO TO 1040
59C
60C     TMS LINEAR WITH GEOPOTENTIAL. CALCULATE H AND SEARCH
61C
62      H     = R0*Z/(R0+Z)
63      DO 1010 I= 2,10
64         J     = I - 1
65         IF (HG(I) .GE. H) GO TO 1020
66 1010 CONTINUE
67C
68C     CALCULATE TMS SLOPE,TMS, AND SET MOL WT STUFF
69C
70 1020 ELH   = (TM(J+1) - TM(J))/(HG(J+1) - HG(J))
71      TMS   = TM(J) + ELH*(H - HG(J))
72      ELZ   = ELH*G/G0
73      DMDZ  = 0.0
74      EM    = WM0
75C
76C     CHECK TMS SLOPE AND CALCULATE PRESSURE
77C
78      IF (ELH .EQ. 0.0) GO TO 1030
79C
80C     NON - ZERO SLOPE PRESSURE EQUATION
81C
82      A(4) = PM(J)*(TM(J)/TMS)**(GMRS/ELH)
83      GO TO 1070
84C
85C     ZERO SLOPE PRESSURE EQUATION
86C
87 1030 A(4) = PM(J)*EXP(GMRS*(HG(J)-H)/TMS)
88      GO TO 1070
89C
90C     TMS LINEAR WITH Z. SEARCH MATRIX
91C
92 1040 DO 1050 I = 2,14
93         J      = I + 8
94         K      = I - 1
95         IF (ZM(I) .GE. Z) GO TO 1060
96 1050 CONTINUE
97C
98C     CALCULATE TMS, SLOPE, AND STUFF
99C
100 1060 ELZ  = (TM(J+1) - TM(J))/(ZM(K+1) - ZM(K))
101      TMS  = TM(J) + ELZ*(Z - ZM(K))
102      DMDZ = (WM(K+1) - WM(K))/(ZM(K+1) - ZM(K))
103      EM = WM(K) + DMDZ*(Z - ZM(K))
104      ZLZ  = Z - TMS/ELZ
105C
106C     PRESSURE EQUATION FOR TMS LINEAR WITH Z
107C
108      A(4) = PM(J)*EXP(GMRS/ELZ*(R0/(R0+ZLZ))**2*((Z-ZM(K))*
109     1       (R0+ZLZ)/(R0+Z)/(R0+ZM(K)) - ALOG(TMS*(R0+ZM(K)
110     2       )/TM(J)/(R0+Z))))
111C
112C     CALCULATE SOUND SPEED AND DERIVATIVE
113C
114 1070 A(1) = 49.022164*SQRT(TMS)
115      A(2) = 0.5*ELZ/TMS
116C
117C     CALCULATE DENSITY, DERIVATIVE, AND PRESSURE DERIVATIVE
118C
119      A(6) = GMRS*A(4)/G0/TMS
120      A(7) = - (A(6)*G/A(4) + ELZ/TMS)
121      A(5) = -A(6)*G
122C
123C     CALCULATE TEMPERATURE, DERIVATIVE, AND LEAVE
124C
125      A(8) = EM*TMS/WM0
126      A(9) = (EM*ELZ + TMS*DMDZ)/WM0
127      A8 = A(8)
128      A4 = A(4)
129      A1 = A(1)
130      A6 = A(6)
131      RETURN
132      END
133