Fundamental Technologies

Voyager LECP Pages

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

by Sheela Shodhan

E.17 DMAIN1

*****************************************************************************
*                       PROGRAM DMAIN1                                      *
* PURPOSE : THIS IS THE MAIN PROGRAM IN A SET OF ROUTINES TO CALCULATE THE  *
*          MAGNETIC FIELD AT DESIRED POINTS IN SPACE AND TO PLOT THE FIELD  *
*          VALUES WITH RESPECT TO X OR Y AXIS.                              *
* ROUTINES TO BE LINKED : DMAIN1, DMAINTESTIN1, FDMOD1, PLOTR4MYY1          *
* DESCRIPTION : (1) DMAIN1:THIS IS THE MAIN ROUTINE TO FIND THE FIELD VALUES*
*                 AT THE DESIRED POINTS IN SPACE. IT READS IN THE EXPERIMENT*
*                -ALLY OBSERVED VALUES FROM THE DATA FILE 'BFIELD.DAT', ITER*
*                -ATES UPON THE COORDINATES X AND Y AT Z=0.0, FINDS THE     *
*                 MAGNETIC FIELD AND COMPUTES THE RELATIVE PERCENTAGE ERROR *
*                 BETWEEN THE EXPERIMENTALLY OBSERVED VALUES AND THE CALCULA*
*                -TED VALUES AT THOSE DESIRED POINTS. FINALLY, IT HANDS     *
*                 IN THE ARRAYS THAT CONTAIN THE EXPERIMENTALLY OBSERVED VAL*
*                -UES (EXPT) AND THE CALCULATED VALUES (MGZ) TO THE ROUTINE *
*                 DMAINTESTIN1 SO THAT THESE CAN BE PLOTTED.                *
*                 THE MAIN PURPOSE IS THAT VARIOUS MODELS OF THE MAGNETIC   *
*                 FIELD CAN BE TESTED BY THIS SET OF ROUTINES SINCE IT HAS  *
*                 TO BE LINKED WITH FDMOD1 WHICH COMPUTES THE FIELD IN SPACE*
*                 AND WHICH IS CHANGEABLE.                                  *
* FOR A MORE DETAILED EXPLANATION, PLEASE SEE THE COMMENTS IN THE ROUTINES  *
* THEMSELVES.                                                               *
*               (2) DMAINTESTIN1:THIS ROUTINE READS FROM THE ARRAYS OF EXPER*
*               -IMENTALLY OBSERVED VALUES AND CALCULATED VALUES INTO ARRAYS*
*                WHICH CAN THEN BE SENT TO THE PLOT ROUTINE SO THAT THESE VA*
*               -LUES CAN BE PLOTTED.                                       *
*               (3) FDMOD1:THIS IS THE ROUTINE THAT COMPUTES THE FIELD COMPO*
*               -NENTS Bx, By AND Bz AT A GIVEN POINT (X,Y,Z) IN SPACE.     *
*               (4) PLOTR4MYY1:THIS PLOTS THE EXPERIMENTALLY OBSERVED VALUES*
*                AND THE CALCULATED VALUES WITH RESPECT TO THE X AND THE Y  *
*                COORDINATES.                                               *
* VARIABLES :                                                               *
* BX, BY, BZ, B : X,Y,Z AND THE TOTAL FIELD VALUES RESPECTIVELY AT A POINT  *
*                IN SPACE.                                                  *
* NOTE : THE FOLLOWING ARRAYS ARE ALL DOUBLE PRECISION ARRAYS.              *
* DIFF : 2-D ARRAY THAT CONTAINS THE RELATIVE PERCENTAGE ERROR BETWEEN THE  *
*       EXPERIMENTALLY OBSERVED VALUES AND THE CALCULATED VALUES.           *
* EXPT : 2-D ARRAY THAT CONTAINS THE EXPERIMENTALLY OBSERVED VALUES AT THE  *
*       GIVEN POINTS IN SPACE. Z=0.0, X=-0.9 >> 0.8 AND Y=-1.1>>0.5. NOTE:  *
*       ALL THE MEASUREMENTS ARE IN INCHES.                                 *
* MAGB : 2-D ARRAY THAT CONTAINS THE CALCULATED TOTAL FIELD VALUES AT THE   *
*       REQUIRED POINTS IN SPACE.                                           *
* MGX, MGY, MGZ : 2-D ARRAYS THAT CONTAIN THE X, Y AND Z COMPONENT RESPECTIV*
*                -ELY OF THE MAGNETIC FIELD AT THE REQUIRED POINTS IN SPACE.*
* NOTE : THE FOLLOWING ARRAYS ARE ALL SINGLE PRECISION ARRAYS.              *
* DIFF1, EXPT1, MGZ1 : CORRESPONDING SINGLE PRECISION ARRAYS FOR DIFF, EXPT *
*                     AND MGZ.                                              *
*****************************************************************************
     
        IMPLICIT NONE        
        INTEGER NX,NY
        REAL*8 X,Y,Z
	REAL*8 BX,BY,BZ,B
        REAL*8 MAGB(-9:8,-11:5),NORMB(-9:8,-11:5),EXPT(-9:8,-11:5)
        REAL*8 MGX(-9:8,-11:5),MGY(-9:8,-11:5),MGZ(-9:8,-11:5)
        REAL*8 DIFF(-9:8,-11:5)
        REAL DIFF1(-9:8,-11:5),MGZ1(-9:8,-11:5),EXPT1(-9:8,-11:5)
        PRINT *,'PLEASE WAIT!'
        OPEN(1,FILE='EXTTES.DAT',ACCESS='SEQUENTIAL',STATUS='NEW')
        OPEN(2,FILE='BFIELD.DAT',ACCESS='SEQUENTIAL',STATUS='OLD')
        DO NY = 5,-11,-1
          DO NX = 8,-9,-1
             READ(2,*) EXPT(NX,NY)   
          END DO
        END DO
        Z = 0.0d0
  	DO NY = -11,5
          DO NX = -9,8
             X = DFLOAT(NX) * 0.1d0
             Y =  DFLOAT(NY) * 0.1d0
             CALL FDMOD (X,Y,Z,BX,BY,BZ)
C            TO FIND THE TOTAL FIELD
C            B = DSQRT(BX*BX + BY*BY + BZ*BZ)
C            TO STORE IT IN THE ARRAY
C            MAGB(NX,NY) = B
             MGZ(NX,NY) = DABS(BZ)
D            PRINT *,'BX',BX,' BY: ',BY,' BZ: ',BZ
D            PRINT *,'MGZ: ',MGZ(NX,NY)
          END DO
        END DO
          
        DO NY = -11,5
          DO NX = -9,8
       
C           FIND THE RELATIVE PERCENTAGE ERROR
            DIFF(NX,NY)=1.0d0 - (MGZ(NX,NY)/EXPT(NX,NY))
            DIFF(NX,NY)=DIFF(NX,NY) * 100.0d0
          END DO
        END DO     
        WRITE(1,70) (NX,NX=8,0,-1)
        WRITE(1,70) (NX,NX=-1,-9,-1)
        WRITE (1,*) 'EXPERIMENTAL VALUES'
        DO NY = 5,-11,-1
           WRITE(1,*) 'Y:',NY
           WRITE(1,60) (EXPT(NX,NY),NX=8,0,-1)
           WRITE(1,60) (EXPT(NX,NY),NX=-1,-9,-1)
        END DO
        WRITE(1,70) (NX,NX=8,0,-1)
        WRITE(1,70) (NX,NX=-1,-9,-1)
        WRITE(1,10)
       
        DO NY = 5,-11,-1
          WRITE(1,*) 'Y:',NY
          WRITE(1,60) (MGZ(NX,NY),NX=8,0,-1)
          WRITE(1,60) (MGZ(NX,NY),NX=-1,-9,-1)
        END DO
        WRITE(1,*)
        WRITE(1,35)  
        WRITE(1,75) (NX,NX=8,-9,-1)        
        DO NY = 5,-11,-1
           WRITE(1,*) 'Y:',NY
           WRITE(1,55) (DIFF(NX,NY),NX=8,-9,-1)
        END DO
        DO NY = 5,-11,-1
          DO NX=8,-9,-1
            DIFF1(NX,NY)=SNGL(DIFF(NX,NY))
            EXPT1(NX,NY)=SNGL(EXPT(NX,NY))
C           PRINT *,NX,NY,DIFF(NX,NY)
            MGZ1(NX,NY)=SNGL(MGZ(NX,NY))
          END DO
        END DO
        CALL WWPLOT(EXPT1,MGZ1)
 10     FORMAT (' NORMALISED VALUES')
 25     FORMAT (' ')
 30     FORMAT (' CALCULATED VALUES')
 35     FORMAT (' 1.0 - (CALCULATED/EXPT.) * 100.0')
 40     FORMAT (' EXPERIMENTAL VALUES')
 55     FORMAT (18(1X,F6.1))
 60     FORMAT (9(1X,F9.2))
 70     FORMAT (9(5X,I3,2X))
 75     FORMAT (1X,18(3X,I2,2X))
        CLOSE (1)
        CLOSE (2)
	STOP
        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.

Last modified 12/9/02, Tizby Hunt-Ward
tizby@ftecs.com