MODULE desks SHARE iet(48), ip(32), iq(16, 4, 8), ibin(4, 16) SHARE ipc1(56), ipc2(48) ! First, initialize the arrays for the routine cyfun MAT READ iet DATA 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10, 11 DATA 12, 13, 12, 13, 14, 15, 16, 17, 16, 17, 18, 19, 20, 21, 20, 21 DATA 22, 23, 24, 25, 24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1 MAT READ ip DATA 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10 DATA 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25 ! This array is read in Fortran order; can't use MAT READ FOR kk = 1 to 8 FOR j = 1 to 4 FOR i = 1 to 16 READ iq(i, j, kk) NEXT i NEXT j NEXT kk DATA 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 DATA 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8 DATA 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 DATA 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 DATA 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10 DATA 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5 DATA 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15 DATA 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9 DATA 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8 DATA 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1 DATA 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7 DATA 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12 DATA 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15 DATA 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9 DATA 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4 DATA 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14 DATA 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9 DATA 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6 DATA 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14 DATA 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3 DATA 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11 DATA 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8 DATA 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6 DATA 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13 DATA 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 DATA 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6 DATA 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2 DATA 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12 DATA 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7 DATA 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2 DATA 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8 DATA 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 ! This array is read in Fortran order; can't use MAT READ. FOR j = 1 to 16 FOR i = 1 to 4 READ ibin(i, j) NEXT i NEXT j DATA 0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1 DATA 0,1,0,0,0,1,0,1,0,1,1,0,0,1,1,1 DATA 1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,1 DATA 1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,1 ! This element is shared (STATIC) in ks SHARE icd(56) ! Now initialize the arrays for the routine ks MAT READ ipc1 DATA 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18 DATA 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36 DATA 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22 DATA 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4 MAT READ ipc2 DATA 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4 DATA 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40 DATA 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32 SUB cyfun (ir(), k(), iout()) DIM itmp(32), ie(48) FOR j = 1 to 48 LET ie(j) = mod(ir(iet(j)) + k(j), 2) NEXT j FOR jj = 1 to 8 LET j = 6 * jj - 5 LET irow = 2 * ie(j) + ie(j + 5) LET icol = 8 * ie(j + 1) + 4 * ie(j + 2) + 2 * ie(j + 3) + ie(j + 4) LET iss = iq(icol + 1, irow + 1, jj) LET kk = 4 * (jj - 1) FOR ki = 1 to 4 LET itmp(kk + ki) = ibin(ki, iss + 1) NEXT ki NEXT jj FOR j = 1 to 32 LET iout(j) = itmp(ip(j)) NEXT j END SUB SUB ks (keq(), n, kn()) IF n = 1 then FOR j = 1 to 56 LET icd(j) = keq(ipc1(j)) NEXT j END IF LET it = 2 IF n = 1 or n = 2 or n = 9 or n = 16 then LET it = 1 FOR i = 1 to it LET ic = icd(1) LET id = icd(29) FOR j = 1 to 27 LET icd(j) = icd(j + 1) LET icd(j + 28) = icd(j + 29) NEXT j LET icd(28) = ic LET icd(56) = id NEXT i FOR j = 1 to 48 LET kn(j) = icd(ipc2(j)) NEXT j END SUB END MODULE