;+ ; NAME: ; ThomsonSetupLOS ; PURPOSE: ; Sets up common block used by href=ThomsonLOSDensity= to ; calculate electron density at specified locations ; CATEGORY: ; Physics: Thomson scattering ; CALLING SEQUENCE: PRO ThomsonSetupLOS, PosIn, DirIn, density=densityIn ; INPUTS: ; Pos array[3,n]; type: float ; heliocentric location(s) of observer: ; (longitude and latitude in radians; ; and heliocentric distance in solar radii) ; Dir array[2,m]; type: float ; topocentric longitude and latitude of ; lines of sight relative to Sun-observer ; direction (in radians) ; ; OPTIONAL INPUT PARAMETERS: ; density=density ; scalar; type: string; default: undefined ; name of function to be called to calculate ; the electron density. This function takes ; a single argument: ; R array[3,n]; type: float ; heliocentric locations where density is ; to be evaluated, usually ; ecliptic longitude and latitude (radians) ; and heliocentric distance (solar radii) ; OUTPUTS: ; (stored in common block) ; INCLUDE: @compile_opt.pro ; On error, return to caller @thomson_common.pro ; Dummy comment ; CALLS: ; boost, destroyvar, IsType ; SEE ALSO: ; ThomsonLOSDensity ; PROCEDURE: ; The input is stored in common block thomson_common. ; ThomsonLOSDensity uses these together with an input ; argument S (1-dim array[k]) specifying distances ; along the line of sight, and calculates densities ; at locations Loc[k,m,n] (k locations on m lines ; of sight at n locations. ; MODIFICATION HISTORY: ; JAN-1998, Paul Hick (UCSD) ;- Pos_ = PosIn Dir_ = DirIn boost, Dir_, plus=1 ; [2,nlos] -> [3,nlos] CASE IsType(densityIn, /defined) OF 0: destroyvar, density 1: density = densityIn[0] ENDCASE RETURN & END