C+ C NAME: C SC_ECLIPTIC C PURPOSE: C Calculates for a given sector line of sight direction the heliocentric C ecliptic coordinates of the point P on the line of sight where the bulk C of the electrons are supposed to be located. C The spacecraft is supposed to move in the ecliptic. C CATEGORY: C CALLING SEQUENCE: subroutine SC_ECLIPTIC(iSc,SectIn,PP,ELO,LNG,LAT,R_XH) C INPUTS: C iSc integer spacecraft; 1=HELIOS A; 2=HELIOS B C SectIn integer sector number (1,..,32) or C modified sector number (-15,..,16) C PP integer photometer number; 1=15 deg.; 2=30 deg. C OUTPUTS: (angles are in degrees) C ELO real elongation; angle (l.o.s. - Sun-Earth line) C LNG real difference of ecliptic longitudes of P and SC C LAT real ecliptic latitude of P C R_XH real distance of P to Sun in units of Sun-SC distance C CALLS: C dsind, dcosd, dasind, dacosd, datan2d C PROCEDURE: C ELEV photometer elevation below spacecraft X-Y plane C DAZ lag of photometer azimuth behind nominal value C WIDTH sector width of smallest sectors (in degrees) C C Arithmetic is done is double precision C MODIFICATION HISTORY: C 1990, Paul Hick (UCSD) C- integer iSc integer SectIn integer PP real ELO real LNG real LAT real R_XH real*8 DLNG real*8 DLAT real*8 DELO real*8 SIN_ELO real*8 COS_ELO real*8 SINP real*8 COSP real*8 DXH real*8 DR_XH real*8 DXR real WIDTH /5.625/ real ELEV(2,2) /16.2,31.3,16.23,31.02/ real DAZ (2,2) /.49,.5,.0,-.43/ real*8 dsind real*8 dcosd real*8 dasind real*8 dacosd real*8 datan2d IS = SectIn ! Modified sector number -15<=IS<=16 if (IS .gt. 16) IS = IS-32 ! In case input is normal sector number JS = IS if (IS .le. 0) JS = 1-IS ! 1<=JS<=16 !------- ! Calculate phase angle LNG and elevation LAT of the line of sight as defined ! by a photometer-sector combination. The angles refer to a spacecraft- ! centered coordinate system with +Z-axis pointing towards ecliptic North and ! the +X-axis pointing towards the Sun. The phase angle is measured counter- ! clockwise i.e. the angle increases/decreases with sector number for HELIOS ! A/B. HELIOS A looks south of the ecliptic (LAT<0); HELIOS B north (LAT>0). LNG = ( min(JS,8)+2*max(0,min(JS-8,4))+4*max(0,JS-12) )*WIDTH RWDTH = .25*WIDTH*( 5+sign(1,JS-9)+2*sign(1,JS-13) ) !Sector halfwidth LNG = LNG-RWDTH ! Center of sector if (IS .le. 0) LNG = -LNG LNG = LNG+DAZ(PP,iSc) ! Spin axis HELIOS A points to ecliptic North LAT = -ELEV(PP,iSc) ! Photometers cover south hemisphere if (iSc .eq. 2) then LNG = -LNG ! Spin axis HELIOS B points to ecliptic South LAT = -LAT ! Photometers cover north hemisphere end if DLNG = dble(LNG) DLAT = dble(LAT) COS_ELO = dcosd(DLNG)*dcosd(DLAT) DELO = dacosd(COS_ELO) ! Elongation of line of sight SIN_ELO = dsind(DELO) ELO = sngl(DELO) ! Output in single precision !DXH = dble(THOM_PNT_SRCE_HALF(ELO)) ! Dist. to half of total integr intens DXH = COS_ELO ! Dist. along los to plane of the sky DR_XH = dsqrt(1d0+DXH*DXH-2d0*DXH*COS_ELO) R_XH = sngl(DR_XH) ! Output in single precision DXR = DXH/DR_XH LAT = sngl(dasind(dsind(DLAT)*DXR)) ! Ecliptic latitude SINP = -DXR*dcosd(DLAT)*dsind(DLNG) ! prop. sin(LNG) COSP = dsqrt(1d0-(DXR*SIN_ELO)**2) ! prop. cos(LNG) LNG = sngl(datan2d(SINP,COSP)) LNG = amod(amod(LNG,360.0)+360.0,360.0)! 0<=LNG<360 return end