VOYAGER
Voyager LECP Data Analysis Handbook
Instrument Modeling Reports
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
*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
*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.
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.

