Viewing contents of file '../idllib/contrib/esrg_ucsb/balloon_lift.pro'
function balloon_lift,r,rho,kg=kg
;+
; ROUTINE:   balloon_lift 
;
; PURPOSE:   compute lifting capacity of a helium balloon
;
; USEAGE:    result=balloon_lift(r,rho,kg=kg)
;
; KEYWORD INPUT:    
;   r        balloon radius in meters         (default=1.0 m)
;   rho      air density at operating alitude (defualt=1.29 kg/m3)
;
;   result   lifting capacity in newtons 
;            (if kg is set lifting capacity is in kg)
;
; EXAMPLE:   lifting capacity of a 1 m radius helium balloon at an 
;            altitude of 1 km. 
;      
;            rho=rhoz(p0=1013.,t0=273.,z=1.,lr=7.)
;            print,balloon_lift(1.,rho)
;
; EXAMPLE:   lifting capacity of a non-stretching 1 m radius helium
;            balloon at an altitude of 1 km.  To prevent the balloon
;            from bursting at high altitude the balloon should not be
;            filled to full capacity with helium at sealevel. Assume
;            the helium retains its sealevel temperature (maybe less
;            than ambient).
;
; r=1
; t0 = 273.
; p0 = 1013.
; rho1 = rhoz(p0 = p0,t0 = t0,z = 1,lr = 7.)
; rho0 = rhoz(p0 = p0,t0 = t0,z = 0,lr = 7.)
; p1 = p0*(rho1/rho0)*(t0-7.)/t0
; rs=r*(p1/p0)^.3333
; print,balloon_lift(rs,rho1)
;
;  author:  Paul Ricchiazzi                            jan94
;           Institute for Computational Earth System Science
;           University of California, Santa Barbara
;-
;
; the lifting mass = 4/3 * pi * r^3 * rho * (1. - M_helium/M_air)
;
; where rho is evaluated at the operating alitude
;
;

mair=28.91
mhe=4.
g=9.8067

if keyword_set(kg) then begin
  return,(4./3.)*!pi*r^3*rho*(1.-mhe/mair)
endif else begin
  return,(4./3.)*!pi*r^3*rho*(1.-mhe/mair)*g
endelse

end