PROGRAM ComplexAtmos

implicit none

Integer, Parameter :: numLayers = 10
Real, Dimension(numLayers,4) :: atmosArray
! 1 = Altitude, 2 = Temp, 3 = Pres, 4 = Dens
Integer :: i
Real :: frac =0.0
Real, Parameter :: eNum = 2.718281828

! Initialize my atmosphere
DO i = 1, numLayers
	atmosArray(i,1) = (i-1)*500.     ! Height, count up by half kilometers
	frac = i*(2.0/numLayers)-2.8
	atmosArray(i,2) = 1013.0-1013.0*(eNum**(frac)) ! Pressure decrease
	atmosArray(i,3) = 288.0 - (i-1)*70.0/numLayers ! Temp linear decrease
	atmosArray(i,4) = (atmosArray(i,2)*100.0)/287.0/atmosArray(i,3)  ! Density
ENDDO

print *, 'My atmosphere!'

100 FORMAT(i6,a,f8.3,a,f5.1,a,f5.2,a)
DO i = 1, numLayers
   write (*,100) floor(atmosArray(i,1)),'m  ', atmosArray(i,2),'hPa  ', &
                 atmosArray(i,3), 'K  ', atmosArray(i,4), 'kg/m2'
ENDDO

ENDPROGRAM ComplexAtmos
