a simple version that just returns density
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | Z |
altitude in meters |
kg/m^3
function COESA_density(Z) result(density) !! a simple version that just returns density real(wp),intent(in) :: Z !! altitude in meters real(wp) :: density !! kg/m^3 real(wp) :: H,M,T,P if (Z < -5000.0_wp) then error stop "altitude below lower bound of -5000 m" else if (Z > 1000000.0_wp) then error stop "altitude above upper bound of 1000000 m" else if (Z < 86000.0_wp) then H = geopotential_altitude(Z) M = mean_molecular_weight_lower(Z) T = temperature_lower(H, M) P = pressure_lower(H) else T = temperature_upper(Z) P = pressure_upper(Z) M = mean_molecular_weight_upper(Z) end if density = P * M / (Rstar * T) end function COESA_density