;+ ; FUNCTION: auroral_zone ; ; PURPOSE: IDL function to calculate auroral zone position as a ; function of magnetic local time (mlt: 0.0-24.0 hours), ; activity index Q (q: 0-6). ; Returns corrected geomagnetic colatitude in radians. ; ; OPTIONS: To return poleward edge, set poleward. ; To return latitude, set latitude. ; To return value for southern oval, set south. ; To return value in degrees, set degrees. ; ; See Holzworth & Meng, GRL 2, p. 377, 1975. ; ; Originally written by J. Clemmons, June 1993. ; Corrected by J.Rauchleiba under the direction of Mike Temerin Apr 1997. ;- function auroral_zone, mlt, q, $ poleward=pole, $ latitude=lat, $ south=south, $ degrees=deg ; Arrays are indexed (An, Q) where An is the nth ; best-fit constant and Q is the activity index ; n = 0 1 2 3 4 5 6 apole=[[15.22,2.41,3.34,-0.85,1.01,0.32,0.90], $ [15.85,2.70,3.32,-0.67,1.15,0.49,1.00], $ [16.09,2.51,3.27,-0.56,1.30,0.42,0.94], $ [16.16,1.92,3.14,-0.46,1.43,0.32,0.96], $ [16.29,1.41,3.06,-0.09,1.35,0.40,1.03], $ [16.44,0.81,2.99,0.14,1.25,0.48,1.05], $ [16.71,0.37,2.90,0.63,1.59,0.60,1.00]] aequa=[[17.36,3.03,3.46,0.42,2.11,-0.25,1.13], $ [18.66,3.90,3.37,0.16,2.55,-0.13,0.96], $ [19.73,4.69,3.34,-0.57,-1.41,-0.07,0.75], $ [20.63,4.95,3.31,-0.66,-1.28,0.30,-0.58], $ [21.56,4.93,3.31,-0.44,-0.81,-0.07,-0.75], $ [22.32,4.96,3.29,-0.39,-0.72,-0.16,-0.52], $ [23.18,4.85,3.34,-0.38,-0.62,-0.53,-0.16]] ; Columns 0, 1, 3, 5 in above arrays are in degrees. ; Columns 2, 4, 6 (args to cos function) are already in radians. Andeg = [0,1,3,5] ; The An that are in degrees apole(Andeg,*) = !dtor * apole(Andeg,*) aequa(Andeg,*) = !dtor * aequa(Andeg,*) ; Phi relative to Sun pointer, in terms of MLT ; Since Holzworth mentions a different definition of phi(MLT) p=(mlt-12.)/12.0*!pi ; Force i=q to within interval [0,6] i=(fix(q)>0)<6 ; Calculate corrected geomagnetic colattitude if keyword_set(pole) then begin t=apole(0,i) + $ apole(1,i)*cos(p+apole(2,i)) + $ apole(3,i)*cos(2*(p+apole(4,i))) + $ apole(5,i)*cos(3*(p+apole(6,i))) endif else begin t=aequa(0,i) + $ aequa(1,i)*cos(p+aequa(2,i)) + $ aequa(3,i)*cos(2*(p+aequa(4,i))) + $ aequa(5,i)*cos(3*(p+aequa(6,i))) endelse ; Convert to magnetic lattitude if keyword_set(lat) then t=!pi/2.0-t ; Southern auroral zone is merely a reflection if keyword_set(south) then t=-t ; Conver to degrees if desired if keyword_set(deg) then t=t*!radeg return,t end