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.18 DMAINTESTIN1

***************************************************************************
        SUBROUTINE WWPLOT(DIFF,NORMB)
*                                                                         *
* PURPOSE : THIS ROUTINE INITIALISES APPROPRIATE ARRAYS TO BE PASSED TO   *
*          TO THE PLOT ROUTINE SO THAT THE MAGNETIC FIELD VALUES CAN BE   *
*          PLOTTED AGAINST X AND Y COORDINATES.                           *
* VARIABLES :                                                             *
* INPUT :                                                                 *
* DIFF,NORMB : 2-D ARRAYS THAT CONTAIN THE EXPERIMENTALLY OBSERVED AND THE*
*            CALCULATED FIELD VALUES AS PASSED BY THE MAIN ROUTINE DMAIN1.*
* OUTPUT :                                                                *
* PLOTS OF EXPERIMENTALLY OBSERVED AND CALCULATED VALUES AGAINST THE X AND*
* Y COORDINATES.                                                          *
* OTHERS :                                                                *
* NLN : TOTAL NUMBER OF LINES TO BE PLOTTED.                              *
* NPT : 1-D ARRAY; (I) : NUMBER OF POINTS TO BE PLOTTED IN THE Ith. LINE. *
* X, Y, Q : 2-D ARRAYS THAT CONTAIN THE VALUES TO BE PLOTTED ON THE X AND *
*          THE LATTER TWO ON THE Y-AXES. THEREFORE, THESE HAVE TO APPROPRI*
*         -AELY INITIALISED BY THE POINTS TO BE PLOTTED ON THE X AND THE Y*
*          AXES.                                                          *
*          Ith. ROW: COL. 1 >>> COL. NPT(I) CONTAINS THE VALUES OF POINTS *
*          TO BE PLOTTED IN THE Ith. LINE.                                *
***************************************************************************
      PARAMETER (NB=50,NN=1000)
      REAL X(NB,NN),Y(NB,NN),XI,P(NB,NN),Q(NB,NN),XYM(4)
      REAL EXPT(-9:8,-11:5),DIFF(-9:8,-11:5),NORMB(-9:8,-11:5)
      INTEGER NPT(NB),NLN,I,NX,NY
      CHARACTER*72 TITLE,XLAB,YLAB
        WRITE(6,*) 'ENTER THE NO. OF LINES TO BE PLOTTED FOR Y'
        READ (5,*) NLN
        do I=1,3
         NPT(I) = 11
        end do
        NPT(4) = 12
        do I=5,13
         NPT(I) = 17
        end do
        do I=14,16
         NPT(I) = 10
        end do
        do I=17,18
         NPT(I) = 11
        end do
        YI = -1.0         
        DO J = 1,3
          DO I = 1,11
           X(J,I) = YI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
d          print *,'i',i,'j',j,'x',Y(j,i)
d          print *,' '
           YI = YI - 1.0
          END DO
        YI = -1.0
        END DO
        YI = 0.0         
        J = 4
          DO I = 1,12
           X(J,I) = YI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
d          print *,'i',i,'j',j,'x',Y(j,i)
d          print *,' '
           YI = YI - 1.0
          END DO
        YI = 5.0         
        DO J = 5,13
          DO I = 1,17
           X(J,I) = YI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
d          print *,'i',i,'j',j,'x',Y(j,i)
d          print *,' '
           YI = YI - 1.0
          END DO
        YI = 5.0
        END DO
    
        
        YI = -2.0
        do J = 14,16
          do I = 1,10
           X(J,I) = YI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
d          print *,'i',i,'j',j,'x',x(j,i)
d          print *,' '
           YI = YI - 1.0
          end do
        YI = -2.0
        end do
   
        YI = -1.0
        DO J = 17,18
          DO I = 1,11
           X(J,I) = YI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
d          print *,'i',i,'j',j,'x',x(j,i)
d          print *,' '
           YI = YI - 1.0
          END DO
        YI = -1.0
        END DO
       
        NY = -1
        NX = 8
        do J=1,3
         do I = 1,11  
          Y(J,I) = DIFF(NX,NY)
          Q(J,I) = NORMB(NX,NY)
d         print *,'i',i,'j',j,'y',y(j,i)
d         print *,' '
          NY = NY - 1
         END DO
        NY = -1
        NX = NX - 1
        END DO
        J = 4
        NY = 0
        NX = 5
        DO I = 1,12
         Y(J,I) = DIFF(NX,NY)       !POINTS TO BE PLOTTED ON Y-AXIS
         Q(J,I) = NORMB(NX,NY)
d        print *,'i',i,'j',j,'y',y(j,i)
d        print *,' '
         NY = NY - 1
        END DO
        NY = 5
        NX = 4
        do J=5,13
         do I = 1,17
          Y(J,I) = DIFF(NX,NY)
          Q(J,I) = NORMB(NX,NY)
d         print *,'i',i,'j',j,'y',y(j,i)
d         print *,' '
          NY = NY - 1
         END DO
        NY = 5
        NX = NX - 1
        END DO
        NY = -2
        NX = -5
        do J=14,16
         do I = 1,10
          Y(J,I) = DIFF(NX,NY)
          Q(J,I) = NORMB(NX,NY)
d         print *,'i',i,'j',j,'y',y(j,i)
d         print *,' '
          NY = NY - 1
         END DO
        NY = -2
        NX = NX - 1
        END DO
       
        NY = -1
        NX = -8
        do J=17,18
         do I = 1,11
          Y(J,I) = DIFF(NX,NY)
          Q(J,I) = NORMB(NX,NY)
d         print *,'i',i,'j',j,'y',y(j,i)
d         print *,' '
          NY = NY - 1
         END DO
        NY = -1
        NX = NX - 1
        END DO
           
       TITLE = 'RESULTS OF THE OBSERVED AND CALCULATED VALUES'
       XLAB = 'Y VALUES (INCHES) '
       YLAB = 'OBSERVED FIELD VALUES'   
       WRITE(6,*) 'ENTER LNPT,LNK'
       READ(5,*) LNPT,LNK
       NC = 1
       CALL PLOTR4(NC,X,Y,NPT,NLN,TITLE,XLAB,YLAB,LNPT,LNK)
       XLAB = 'Y VALUES (INCHES)'
       YLAB = 'CALCULATED FIELD VALUES'
       NC = 2
       CALL PLOTR4(NC,X,Q,NPT,NLN,TITLE,XLAB,YLAB,LNPT,LNK)
C----------------------------------------------------------------------
        WRITE(6,*) 'ENTER THE NO. OF LINES TO BE PLOTTED FOR X'
        READ (5,*) NLN
        do I=1,2
         NPT(I) = 11
        end do
        NPT(3) = 10
        do I=4,5
         NPT(I) = 9
        end do
        NPT(6) = 10
        NPT(7) = 13
        do I=8,9
         NPT(I) = 18
        end do
         NPT(10) = 15
        
        do I=11,NLN 
          NPT(I) = 18                  !range of x:8 to -9
        end do
        XI = 5.0         
        DO J = 1,2
          DO I = 1,11
           X(J,I) = XI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
           P(J,I) = XI/10.0
d          print *,'i',i,'j',j,'x',x(j,i)
d          print *,' '
           XI = XI - 1.0
          END DO
        XI = 5.0
        END DO
    
        XI = 5.0
        J = 3
        DO I = 1,10
         X(J,I) = XI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
         P(J,I) = XI/10.0
d        print *,'i',i,'j',j,'x',x(j,i)
d        print *,' '
         XI = XI - 1.0
        END DO
        
        XI =4.0
        do J = 4,5
          do I = 1,9
           X(J,I) = XI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
           P(J,I) = XI/10.0
d          print *,'i',i,'j',j,'x',x(j,i)
d          print *,' '
           XI = XI - 1.0
          end do
        XI = 4.0
        end do
   
        J = 6
        XI = 5.0
        do I=1,10
         X(J,I) = XI/10.0
         P(J,I) = XI/10.0
d        print *,'i',i,'j',j,'x',x(j,i)
d        print *,' '
         XI = XI - 1.0
        end do
        
        J = 7
        XI = 8.0
        do I=1,13
         X(J,I) = XI/10.0
         P(J,I) = XI/10.0
d        print *,'i',i,'j',j,'x',x(j,i)
d        print *,' '
         XI = XI -1.0
        end do
        XI = 8.0
        DO J = 8,9
          DO I = 1,18
           X(J,I) = XI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
           P(J,I) = XI/10.0
d          print *,'i',i,'j',j,'x',x(j,i)
d          print *,' '
           XI = XI - 1.0
          END DO
        XI = 8.0
        END DO
       
        XI = 5.0
        J = 10
         do I=1,15
          X(J,I) = XI/10.0
          P(J,I) = XI/10.0
d         print *,'i',i,'j',j,'x',x(j,i)
d         print *,' '
          XI = XI - 1.0
         end do
        XI = 8.0
        DO J = 11,NLN
          DO I = 1,18
           X(J,I) = XI/10.0            !POINTS TO BE PLOTTED ON THE X-AXIS
           P(J,I) = XI/10.0
d          print *,'i',i,'j',j,'x',x(j,i)
d          print *,' '
           XI = XI - 1.0
          END DO
        XI = 8.0
        END DO
        NY = 5
        NX = 5
        do J=1,2
         do I = 1,11  
          Y(J,I) = DIFF(NX,NY)
          Q(J,I) = NORMB(NX,NY)
d         print *,'i',i,'j',j,'y',y(j,i)
d         print *,' '
          NX = NX - 1
         END DO
        NX = 5
        NY = NY - 1
        END DO
        J = 3
        NY = 3
        NX = 5
        DO I = 1,10
         Y(J,I) = DIFF(NX,NY)       !POINTS TO BE PLOTTED ON Y-AXIS
         Q(J,I) = NORMB(NX,NY)
d        print *,'i',i,'j',j,'y',y(j,i)
d        print *,' '
         NX = NX - 1
        END DO
        NY = 2
        NX = 4
        do J=4,5
         do I = 1,9  
          Y(J,I) = DIFF(NX,NY)
          Q(J,I) = NORMB(NX,NY)
d         print *,'i',i,'j',j,'y',y(j,i)
d         print *,' '
          NX = NX - 1
         END DO
        NX = 4
        NY = NY - 1
        END DO
       
        J = 6
        NY = 0
        NX = 5
        DO I = 1,10
         Y(J,I) = DIFF(NX,NY)       !POINTS TO BE PLOTTED ON Y-AXIS
         Q(J,I) = NORMB(NX,NY)
d        print *,'i',i,'j',j,'y',y(j,i)
d        print *,' '
         NX = NX - 1
        END DO
        J = 7
        NY = -1
        NX = 8
        DO I=1,13
         Y(J,I) = DIFF(NX,NY)       !POINTS TO BE PLOTTED ON Y-AXIS
         Q(J,I) = NORMB(NX,NY)
d        print *,'i',i,'j',j,'y',y(j,i)
d        print *,' '
         NX = NX - 1
        END DO
             
        NY = -2
        NX = 8
        do J=8,9
         do I = 1,18  
          Y(J,I) = DIFF(NX,NY)
          Q(J,I) = NORMB(NX,NY)
d         print *,'i',i,'j',j,'y',y(j,i)
d         print *,' '
          NX = NX - 1
         END DO
        NX = 8
        NY = NY - 1
        END DO
       
        J = 10
        NY = -4
        NX = 5
        DO I=1,15
         Y(J,I) = DIFF(NX,NY)       !POINTS TO BE PLOTTED ON Y-AXIS
         Q(J,I) = NORMB(NX,NY)
d        print *,'i',i,'j',j,'y',y(j,i)
d        print *,' '
         NX = NX - 1
        END DO
        NY = -5
        NX = 8
        do J=11,NLN
         do I = 1,18  
          Y(J,I) = DIFF(NX,NY)
          Q(J,I) = NORMB(NX,NY)
d         print *,'i',i,'j',j,'y',y(j,i)
d         print *,' '
          NX = NX - 1
         END DO
        NX = 8
        NY = NY - 1
        END DO
       XLAB = 'X VALUES (INCHES) '
       YLAB = 'OBSERVED FIELD VALUES'   
       WRITE(6,*) 'ENTER LNPT,LNK'
       READ(5,*) LNPT,LNK
       NC = 3
       CALL PLOTR4(NC,X,Y,NPT,NLN,TITLE,XLAB,YLAB,LNPT,LNK)
       XLAB = 'X VALUES (INCHES)'
       YLAB = 'CALCULATED FIELD VALUES'
       NC = 4
       CALL PLOTR4(NC,X,Q,NPT,NLN,TITLE,XLAB,YLAB,LNPT,LNK)
       CALL FLUSH
      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.

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