home *** CD-ROM | disk | FTP | other *** search
- C
- C ..................................................................
- C
- C SUBROUTINE ARRAY
- C
- C PURPOSE
- C CONVERT DATA ARRAY FROM SINGLE TO DOUBLE DIMENSION OR VICE
- C VERSA. THIS SUBROUTINE IS USED TO LINK THE USER PROGRAM
- C WHICH HAS DOUBLE DIMENSION ARRAYS AND THE SSP SUBROUTINES
- C WHICH OPERATE ON ARRAYS OF DATA IN A VECTOR FASHION.
- C
- C USAGE
- C CALL ARRAY (MODE,I,J,N,M,S,D)
- C
- C DESCRIPTION OF PARAMETERS
- C MODE - CODE INDICATING TYPE OF CONVERSION
- C 1 - FROM SINGLE TO DOUBLE DIMENSION
- C 2 - FROM DOUBLE TO SINGLE DIMENSION
- C I - NUMBER OF ROWS IN ACTUAL DATA MATRIX
- C J - NUMBER OF COLUMNS IN ACTUAL DATA MATRIX
- C N - NUMBER OF ROWS SPECIFIED FOR THE MATRIX D IN
- C DIMENSION STATEMENT
- C M - NUMBER OF COLUMNS SPECIFIED FOR THE MATRIX D IN
- C DIMENSION STATEMENT
- C S - IF MODE=1, THIS VECTOR IS INPUT WHICH CONTAINS THE
- C ELEMENTS OF A DATA MATRIX OF SIZE I BY J. COLUMN I+1
- C OF DATA MATRIX FOLLOWS COLUMN I, ETC. IF MODE=2,
- C THIS VECTOR IS OUTPUT REPRESENTING A DATA MATRIX OF
- C SIZE I BY J CONTAINING ITS COLUMNS CONSECUTIVELY.
- C THE LENGTH OF S IS IJ, WHERE IJ=I*J.
- C D - IF MODE=1, THIS MATRIX OF SIZE N BY M IS OUTPUT,
- C CONTAINING A DATA MATRIX OF SIZE I BY J IN THE FIRST
- C I ROWS AND J COLUMNS. IF MODE=2, THIS N BY M MATRIX
- C IS INPUT CONTAINING A DATA MATRIX OF SIZE I BY J IN
- C THE FIRST I ROWS AND J COLUMNS.
- C
- C REMARKS
- C VECTOR S CAN BE IN THE SAME LOCATION AS MATRIX D. VECTOR S
- C IS REFERRED AS A MATRIX IN OTHER SSP ROUTINES, SINCE IT
- C CONTAINS A DATA MATRIX.
- C THIS SUBROUTINE CONVERTS ONLY GENERAL DATA MATRICES (STORAGE
- C MODE OF 0).
- C
- C SUBROUTINES AND FUNCTION SUBROUTINES REQUIRED
- C NONE
- C
- C METHOD
- C REFER TO THE DISCUSSION ON VARIABLE DATA SIZE IN THE SECTION
- C DESCRIBING OVERALL RULES FOR USAGE IN THIS MANUAL.
- C
- C ..................................................................
- C
- SUBROUTINE ARRAY (MODE,I,J,N,M,S,D)
- DIMENSION S(1),D(1)
- C
- NI=N-I
- C
- C TEST TYPE OF CONVERSION
- C
- IF(MODE-1) 100, 100, 120
- C
- C CONVERT FROM SINGLE TO DOUBLE DIMENSION
- C
- 100 IJ=I*J+1
- NM=N*J+1
- DO 110 K=1,J
- NM=NM-NI
- DO 110 L=1,I
- IJ=IJ-1
- NM=NM-1
- 110 D(NM)=S(IJ)
- GO TO 140
- C
- C CONVERT FROM DOUBLE TO SINGLE DIMENSION
- C
- 120 IJ=0
- NM=0
- DO 130 K=1,J
- DO 125 L=1,I
- IJ=IJ+1
- NM=NM+1
- 125 S(IJ)=D(NM)
- 130 NM=NM+NI
- C
- 140 RETURN
- END