Voyager In Space

 

Galaxy Banner Image
VOYAGER

Voyager LECP Data Analysis Handbook

 

Instrument Modeling Reports

 

An Analysis of the Performance of the Magnetic Deflection System
 in the Voyager Low Energy Charged Particle Experiment

 

by Sheela Shodhan

 

E.21 FDLNX9FR

 

***********************************************************************
* PURPOSE : THIS PROGRAM COMPUTES THE MAGNETIC FIELD IN SPACE.        *
*        THIS IS A MAIN ROUTINE IN A SET OF ROUTINES TO PLOT THE      *
*        PROJECTIONS  OF THE FIELD LINES ON THE XZ PLANE OR THE YZ    *
*        PLANE. THE CHOICE OF THE PLANE DEPENDS UPON THE USER. HE /   *
*        SHE SPECIFIES THE PLANE BY INPUTING THE VALUE OF THE VARIABLE*
*       'NCRS'. NCRS = 1 FOR XZ PLANE;                                *
*                    = 2 FOR YZ PLANE.                                *
* ROUTINES TO BE LINKED : FDLNX9FR, FDLNPLOTBLN5, FDMOD1, PLOTR5BLN   *
* DESCRIPTION : (1) FDLNX9FR:THIS IS THE MAIN ROUTINE TO PLOT THE PROJ*
*              -ECTIONS OF THE FIELD LINES ON THE XZ AND THE YZ PLANE.*
* FOR DETAILED DESCRIPTION, PLEASE SEE THE ROUTINES THEMSELVES.       *
*               (2) FDLNPLOTBLN5:THIS ROUTINE READS THE VALUES TO BE  *
*                PLOTTED FROM THE USER DEFINED FILES AND INITIALISES  *
*                APPROPRIATE ARRAYS TO BE PASSED ON TO THE PLOT ROUTIN*
*               -ES SO THAT THESE CAN BE PLOTTED.                     *
*               (3) FDMOD1:ROUTINE TO COMPUTE FIELD COMPONENTS Bx, By *
*                AND Bz AT THE GIVEN POINT (X,Y,Z) IN SPACE.          *
*               (4) PLOTR5BLN:PLOT ROUTINE TO PLOT THE PROJECTION OF  *
*                THE FIELD LINES ON THE REQUIRED PLANE.               *
***********************************************************************
       IMPLICIT NONE
       REAL*8 X0,Y0,Z0,X,Y,Z
       REAL*8 BOUND,DS,FINT,UP
       INTEGER J,K,NCRS
 02    PRINT *,'ENTER THE CHOICE OF THE PLANE OF PROJECTION'
       PRINT *,'FOR XZ PLANE:1; FOR YZ PLANE:2 '
       READ *,NCRS
 
       IF (NCRS .EQ. 1) THEN
        OPEN (UNIT=1,FILE='FDLNXZ.DAT',STATUS='NEW')
       ELSE 
        IF (NCRS .EQ. 2) THEN
         OPEN (UNIT=1,FILE='FDLNYZ.DAT',STATUS='NEW')
        ELSE 
         PRINT *,'ERROR IN THE CHOICE OF THE PROJECTION PLANE'
         PRINT *,'NO SUCH PLANE-PLEASE TRY AGAIN'
         GO TO 2
        END IF
       END IF
 
       WRITE(1,20)
    
       PRINT *,'ENTER THE INTIAL POINT X0,Y0,Z0'
       READ *, X0,Y0,Z0
   
       PRINT *,'ENTER THE INTERVAL BETWEEN THE FIELD LINES'
       READ *, FINT
 
       PRINT *,'ENTER THE INCREMENT IN SPACE FOR A FIELD LINE'
       READ *,DS
 
       X = X0 
       Y = Y0
       Z = Z0
       CALL MFRAME(NCRS,X,Y,Z)       
       CALL BOUNDCAL(BOUND,FINT,NCRS,UP,X,Y,Z)
       J = 2      
       DO WHILE (((FINT .GT. 0.0D0) .AND. (UP .LE. BOUND)) .OR.
     &     ((FINT .LT. 0.0D0) .AND. (UP .GE. BOUND)))
          
         J = J + 1
         
         DO K=-1,1,2
          CALL FDLINE(J,K,DS,X,Y,Z)
         END DO
  
         IF (NCRS .EQ. 1) THEN
          X = X + FINT
          Y = Y 
          Z = Z
          UP = X
         ELSE
          X = X
          Y = Y + FINT
          Z = Z
          UP = Y
         END IF
       END DO
        
       CLOSE(1)
 20    FORMAT(X,9X,'X',10X,9X,'Y',19X,'Z',19X,'BX',19X,
     1             'BY',15X,'BZ')
   
       STOP
       END
C----------------------------------------------------------------------
C----------------------------------------------------------------------
       SUBROUTINE FDLINE(J,K,DS,X1,Y1,Z1)
*                                                                     *
* PURPOSE : THIS SUBROUTINE COMPUTES THE MAGNETIC FIELD AT POINTS IN  *
*          SPACE GIVEN THE INITIAL POINT. THIS INITIAL POINT IS A POIN*
*         -T IN THE MIDDLE PLANE Z=0.0. THEN STARTING FROM THIS MID-  *
*         -PLANE, CALCULATION CONTINUES UNTIL THE SIGN OF Z/Bz REVERSE*
*         -S.                                                         *
* VARIABLES :                                                         *
* INPUT :                                                             *
* X1,Y1,Z1 : INITIAL POINT ON THE MIDDLE PLANE FROM WHICH THE COMPUTAT*
*           - ION STARTS.                                             *
* J : NUMBER OF THE FIELD LINE.                                       *
* K : INDICATES WHETHER THE COMPUTATION IS TOWARDS THE RIGHT MAGNET OR*
*    THE LEFT MAGNET.                                                 *
* OUTPUT :                                                            *
* *.DAT : FILE ON WHICH THE POSITION COORDINATES (X,Y,Z) AND THE FIELD*
*        COMPONENTS Bx, By AND Bz ARE RECORDED.                       *
* OTHERS :                                                            *
* Bx, By, Bz : FIELD COMPONENTS AT A POINT (X,Y,Z) IN SPACE.          *
* HIT : INDICATES WHETHER THE SIGN OF Z-COORDINATE HAS REVERSED OR NOT*
*      =0 NOT REVERSED SO CONTINUE WITH THE COMPUTATION,              *
*      =1 REVERSED, SO STOP COMPUTATON FOR THIS SIDE OF THE MID-PLANE.*
* X, Y, Z : 1-D ARRAYS OF POSITION COORDINATES OF THE POINT IN SPACE. *     
***********************************************************************
       IMPLICIT NONE
       INTEGER I,J,K,NPT,HIT,MNPT
       REAL*8 X1,Y1,Z1
       REAL*8 DS,DIST,ZB
  
       PARAMETER (MNPT=300)
       REAL*8 X(MNPT),Y(MNPT),Z(MNPT),BX(MNPT),BY(MNPT),BZ(MNPT)
       REAL*8 B,DX,DY,DZ
       X(1) = X1
       Y(1) = Y1
       Z(1) = Z1
       NPT = 250
       HIT = 0
       I = 0
       DIST = DFLOAT(K) * DS
D       PRINT *,'K: ',K,'  DIST: ',DIST
  
       DO WHILE ((HIT .EQ. 0) .AND. (I .LE. NPT)) 
        I = I+1
        CALL FDMOD(X(I),Y(I),Z(I),BX(I),BY(I),BZ(I))
D        PRINT *,'X(I),Y(I),Z(I): ',X(I),Y(I),Z(I)
D        PRINT *,'BX,BY,BZ: ',BX(I),BY(I),BZ(I)
        B = DSQRT(BX(I)**2 + BY(I)**2 + BZ(I)**2)
        DX = BX(I) * DIST/B
        DY = BY(I) * DIST/B
        DZ = BZ(I) * DIST/B
D        WRITE(1,*) 'DX: ',DX,' DY: ',DY,' DZ: ',DZ
D        PRINT *,'DX,DY,DZ: ',DX,DY,DZ
D        PRINT *,' '
        X(I+1) = X(I) + DX
        Y(I+1) = Y(I) + DY
        Z(I+1) = Z(I) + DZ
                   
        IF (K .EQ. -1) THEN
          IF (Z(I+1) .LE. Z(I)) HIT=1
        ELSE
          IF (Z(I+1) .GE. Z(I)) HIT=1
        END IF
       END DO
   
D       PRINT *,'HI, I AM ABOUT TO WRITE ON FILE(?)'
       NPT = I-1
       IF (K .EQ. -1) THEN
         WRITE(1,05) J
         DO I=NPT,1,-1
          WRITE(1,10) X(I),Y(I),Z(I),BX(I),BY(I),BZ(I)          
         END DO
        ELSE
         DO I=2,NPT
          WRITE(1,10) X(I),Y(I),Z(I),BX(I),BY(I),BZ(I)
         END DO
         WRITE(1,15) 
       END IF
 05    FORMAT(X,I3)
 10    FORMAT(X,6(2X,D18.11))
 15    FORMAT(X,'****** END OF A FIELD LINE ******')
       RETURN
       END
C----------------------------------------------------------------------
C----------------------------------------------------------------------
       SUBROUTINE BOUNDCAL(BOUND,FINT,NCRS,UP,X,Y,Z)
*                                                                     *
* PURPOSE : THIS  SUBROUTINE CALCULATES THE BOUND ON THE INITIAL VALUE*
*         OF THE FIELD LINE. THIS BOUND IS NECESSARY SINCE ONLY LINES *
*         NEAR THE MAGNETS ARE TO BE DRAWN.                           *
***********************************************************************        
       IMPLICIT NONE
       REAL * 8 BOUND,FINT,UP,X,Y,Z
       REAL * 8 XS1,XS2,YS1,YS2
       INTEGER NCRS
  
       DATA XS1,XS2,YS1,YS2/0.0D0,1.8D0,-0.8D0,0.0D0/
       IF (NCRS .EQ. 1) THEN
        IF (FINT .GT. 0.0D0) BOUND = XS1+XS2+X
        IF (FINT .LT. 0.0D0) BOUND = XS1+X-XS2
        UP = X
       ELSE
        IF (FINT .GT. 0.0D0) BOUND = YS2+(YS1-Y)
        IF (FINT .LT. 0.0D0) BOUND = YS1-(Y-YS2)
        UP = Y
       END IF
       RETURN
       END    
C----------------------------------------------------------------------
C----------------------------------------------------------------------
       SUBROUTINE MFRAME(NCRS,X,Y,Z)
*                                                                     *
* PURPOSE : THIS ROUTINE PLOTS THE PROJECTIONS OF THE MAGNETS ON THE  *
*           REQUIRED PLANE. 
*           FOR NCRS=1, PROJECTION ON THE XZ PLANE,                   *
*                   =2, PROJECTION ON THE YZ PLANE.                   *
***********************************************************************
         
       REAL*8 X,XM(2),Y,YL,YM(2),YYZ1,YYZ2,Z,ZCR,ZM(2)
       REAL*8 BX,BY,BZ
       INTEGER J,NCRS
       DATA BX,BY,BZ/0.0D0,0.0D0,0.0D0/
       DATA XM(1),XM(2)/0.40D0,-0.4D0/
       DATA YL/0.4698463104D0/
       DATA YYZ1,YYZ2/-0.187938520D0,-0.7517541D0/
       DATA ZYZ1,ZYZ2/0.540106043,0.3348939570D0/      
       DO J=1,2
         WRITE(1,05)J
         IF (NCRS .EQ. 1) THEN
            ZCR = 0.43750D0 + ((YL - DABS(Y))*DTAN(0.3490658504D0))
            WRITE(6,*)' NCRS ',NCRS,' ZCR ',ZCR
            IF (J .EQ. 1) THEN
               WRITE(1,10) XM(1),Y,ZCR,BX,BY,BZ
               WRITE(1,10) XM(2),Y,ZCR,BX,BY,BZ
            ELSE
               WRITE(1,10) XM(1),Y,-ZCR,BX,BY,BZ
               WRITE(1,10) XM(2),Y,-ZCR,BX,BY,BZ
            ENDIF 
   
        ELSE
           IF (NCRS .EQ. 2) THEN
              IF (J .EQ. 1) THEN
                 WRITE(1,10) X,YYZ1,ZYZ1,BX,BY,BZ
                 WRITE(1,10) X,YYZ2,ZYZ2,BX,BY,BZ
              ELSE
                 WRITE(1,10) X,YYZ1,-ZYZ1,BX,BY,BZ
                 WRITE(1,10) X,YYZ2,-ZYZ2,BX,BY,BZ
              ENDIF
           ELSE
                 WRITE(6,*) 'THERE IS EN ERROR IN THE PLANE DESIRED'
           END IF
        END IF
       WRITE(1,15)
       END DO
 05    FORMAT(X,I3)   
 10    FORMAT(X,6(2X,D18.11))     
 15    FORMAT(X,'****** END OF A FIELD LINE ******')
       RETURN
       END
C----------------------------------------------------------------------
C----------------------------------------------------------------------

 

 

Return to thesis table of contents. 

Return to Voyager LECP Data Analysis Handbook Table of Contents.
Return to Fundamental Technologies Home Page.


Updated 8/9/19, Cameron Crane

VOYAGER 1 ELAPSED TIME

--:--:--:--
Days: Hours: Minutes: Seconds

*Since official launch
September 5, 1977, 12:56:00:00 UTC

VOYAGER 2 ELAPSED TIME

--:--:--:--
Days: Hours: Minutes: Seconds

*Since official launch
August 20, 1977, 14:29:00:00 UTC

QUICK FACTS

Manufacturer: Voyagers 1 and 2 were built in the Jet Propulsion Laboratory in Southern California.

Mission Duration: 40+ years have elapsed for both Voyager 1 and Voyager 2 (both are ongoing).

Destination: Their original destinations were Saturn and Jupiter. Their current destination is interstellar space.