C+ C NAME: C DustAsymmetry C PURPOSE: C Converts an observed intensity in the ecliptic into an intensity as C would be observed in the plane of symmetry of the zodiacal dust cloud C (iD=0) and v.v. (iD=1) C CATEGORY: C Physics: empirical correction C CALLING SEQUENCE: subroutine DustAsymmetry(nD,iSc,iT,P,L,nS,Z) C INPUTS: C nD integer =0 : convert from ecliptic to symmetry plane C =1 : convert from symmetry plane to ecliptic C iT integer # measurements C P(iT) integer photometers C L(iT) real ecliptic longitude of Sun C nS integer # sectors C Z(nS,iT) real intensities C OUTPUTS: C Z(nS,iT) real corrected intensities C CALLS: C BadR4 C PROCEDURE: C The corrections used are from Leinert et al.: Astron. Astrophys. 110 C (1982) 355-357 C MODIFICATION HISTORY: C ???-1990, Paul Hick (UCSD/CASS; pphick@ucsd.edu) C- integer nD integer iSc integer iT integer P(iT) real L(iT) integer nS real Z(nS,iT) integer PP real Omega /-93./ real Alfa(3) /.067,.096,.115/ ! Omega=87-180 real Gamma(16,2) /.007,.024,.035,.044,.050,.056,.061,.065, & .068,.068,.064,.058,.047,.034,.021,.004, & .005,.013,.019,.025,.028,.034,.038,.043, & .048,.052,.050,.046,.039,.027,.015,.004/ logical bSwap Bad = BadR4() ! 0,1,2,3=nD iD = mod(nD,2) ! 0,1,0,1 jD = 1-iD ! 1,0,1,0 bSwap = nD/2 .eq. 1 ! F,F,T,T iS = nS/2 do I=1,iT PP = P(I) A = L(I)-Omega F = 1.+Alfa(PP)*sind(A)*(2*iSc-3) ! Correction for not observing .. ! .. in the plane of symmetry if (PP .eq. 3) then do J=1,2 if (Z(J,I) .ne. Bad) Z(J,I) = Z(J,I)*(jD/F+iD*F) end do else cA = cosd(A) ! East-west asymmetry do JJ=1,nS if (Z(JJ,I) .ne. Bad) then J = JJ-nS/2 ! Convert array index to modified sector if (.not. bSwap) then J = JJ+(32-nS)*(1+sign(1,J-1))/2 J = J-16-sign(1,J-17)*16 end if G = F*(1.+sign(1,J-1)*Gamma((1+abs(2*J-1))/2,PP)*cA) Z(JJ,I) = Z(JJ,I)*(jD/G+iD*G) end if end do end if end do return end