PROGRAM StdAtmos

implicit none

TYPE atmosLayer
	Real :: Altitude
	Real :: Temp
	Real :: Press
	Real :: Dens
END TYPE atmosLayer

Integer, Parameter :: numLayers = 10
TYPE (atmosLayer), Dimension(numLayers) :: atmosArray
Integer :: i
Real :: frac =0.0
Real, Parameter :: eNum = 2.718281828

! Initialize my atmosphere
DO i = 1, numLayers
	atmosArray(i)%Altitude = (i-1)*500.     ! Count up by half kilometers
	frac = i*(2.0/numLayers)-2.8
	atmosArray(i)%Press = 1013.0-1013.0*(eNum**(frac))
	atmosArray(i)%Temp = 288.0 - (i-1)*70.0/numLayers
	atmosArray(i)%Dens = (atmosArray(i)%Press*100.0)/287.0/atmosArray(i)%Temp
ENDDO

print *, 'My atmosphere!'

100 FORMAT(f6.1,a,f8.3,a,f5.1,a,f5.2,a)
DO i = 1, numLayers
   write (*,100) atmosArray(i)%Altitude,'m  ', atmosArray(i)%Press,'hPa  ', &
                 atmosArray(i)%Temp, 'K  ', atmosArray(i)%Dens, 'kg/m2'
ENDDO

ENDPROGRAM StdAtmos
