pro norp_frfr_inv,freq,fi,fv,b_los,arg3,arg4,omega,tau

;+
; NAME:
;       norp_frfr_inv
;
; PURPOSE:
;       Derive physical variables from a set of NoRH flux (17GHz-I, 
;       17GHz-V) based on the assumption that the emssion is of
;       Bremsstrahrung.
;         (c.f.  Dulk, 1985, ARAA, 23, 169)
;
; CALLING SEQUENCE:
;        B-los : Line-of-sight component of magnetic field
;        VEM   : Volume emission measure
;        Te    : Electron temperature
;        tau   : Optical thickness
;
;     (0) get B-los and VEM/sqrt(Te) without any assumption
;       norp_frfr_inv,freq,fi,fv,b_los,vem_over_sqrtte
;
;     (1) get B-los and VEM by assuming Te
;       norp_frfr_inv,freq,fi,fv,b_los,tein,vem,/assumete
;
;     (2) get B-los and Te by assuming VEM
;       norp_frfr_inv,freq,fi,fv,b_los,vemin,te,/assumevem
;
;     (3) get B-los, VEM, and tau by assuming Te and omega
;       norp_frfr_inv,freq,fi,fv,b_los,tein,vem,omega,tau,/assumete
;
;     (4) get B-los, Te and tau by assuming VEM and omega
;       norp_frfr_inv,freq,fi,fv,b_los,vemin,te,omega,tau,/assumevem
;
;
; INPUTS:
;       fi: flux density [SFU] of Stokes-I(r+l) component
;       fv: flux density [SFU] of Stokes-V(r-l) component
;       vemin  ; assumed [cm^-3] volume emission measure
;       tein: assumed electron temperature [K]
;       omega: source size in surface angle [steradian]
;
; OUTPUTS:
;      b_los: Line-of-Sight component of magnetic field [G] 
;      vem_over_sqrtte: VEM/sqrt(T) [cm^-3 K^(-1/2)]
;         where T is electron temperature [K], and
;               VEM is [cm^-3] volume emission measure
;      vem  ; [cm^-3] volume emission measure
;      te: electron temperature [K]
;      tau     ; optical thickness
;
; OPTIONAL INPUTS:
;
; HISTORY:
;       Writtern 1999-11-25 T. Yokoyama
;       Revised  2000-05-03 T. Yokoyama bug fix
;
;-


freq0=freq*1.e9


; Universal constant
 
c = 3e10         ; [cm/s] speed of light
kb = 1.38*10.^(-16)  ; [cgs] Bolzmann constant
cm2_per_omega = (7.e7/(!dtor/3600.))^2
cgs2sfu = 1.e19 ; SFU/[erg/s/cm^2/Hz]

rc = fv/fi

;    rc -> B   from eq(38)
;
fratioi = rc /2
fgyro = freq*fratioi
b_los = fgyro/2.8e6


;    Fi -> VEM/sqrt(T)
;
ficgs= fi /cgs2sfu
emomega_over_sqrtte = ficgs / (2*0.2*kb/c^2)
vem_over_sqrtte = emomega_over_sqrtte * cm2_per_omega

if (n_params() eq 4) then begin
  arg3=vem_over_sqrtte
  return
endif

if keyword_set(assumte) then begin
  tein=arg3
  te = tein
  teeff = te
  vem = vem_over_sqrtte * sqrt(tein)
  arg4 = vem
endif else begin
  vemin=arg3
  vem = vemin
  te = (vem_over_sqrtte /vemin )^(-2)
  arg4 = te
endelse

if (n_params() eq 5) then return

em =emomega_over_sqrtte *sqrt(te) / omega
tau = 0.2 * em / te^(3/2) /freq^2



return
end
