C Search for non-occurring pairwise differences
C between any 2 terms in sequences OEIS A005282 (Mian-Chowla),
C A051788 (Variant starting with 1,3 instead of 1,2)
C A058335 (Variant starting with 1,4 instead of 1,2)
C Check idea of Jens Voss posted in seqfan mailing list
C on Feb 4 2003.
C
C Hugo Pfoertner, http://www.pfoertner.org/
C
C Version history:
C
C 02.03.2003 Merge with special program to create A080933
C 21.02.2003 Derived program to search for first term of
C            sequences A080200, A080201, A080932 and extensions
C 07.02.2003 Determine record setting differences between
C            adjacent elements of the generalized (1,n) M-C sequences
C 05.02.2003 Initial version
C
C
      INTEGER M, DD, DINC, N2
C M=400000 seems sufficient to create the first terms of A080933
C M=4000000 was used for A080200, A080201, A080932
      PARAMETER (M=400000,M2=M+M)
      INTEGER S(2000),T(M2),D(M)
C Loop over 2nd sequence term of generalized M-C sequence
C starting with 1,N2,...
C To create sequence A080933 activate all lines in
C blocks CA080933BEGIN .. CA080933END
CA080933BEGIN
C      DO 200 N2 = 2, 20
CA080933END
C Special one term loops to create OEIS sequences
C A005282, A080200, A080222
      DO 200 N2 = 2, 2
C A051788, A080201, A080223
C      DO 200 N2 = 3, 3
C A058335, A080932, A080931
C      DO 200 N2 = 4, 4
C
      DO 10 I = 1, M2
      T(I) = I
10    CONTINUE
      DO 15 I = 1, M
      D(I) = I
15    CONTINUE
      L = 2
      S(1) = 1
C Initial value for generalized variant starting with 1, n
      S(2) = N2
      T(S(2)-S(1)) = 0
C
C LOOPS OVER ALL DIFFERENCES BETWEEN ELEMENTS ALREADY FOUND
100   CONTINUE
      DO 20 I = 1, L
      DO 30 J = I+1, L
      DD = S(J) - S(I)
      D(DD) = 0
C ELIMINATE ELEMENTS THAT HAVE ALREADY COVERED DIFFERENCES
      DO 40 K = 2, L
      N = S(K) + DD
      T(N) = 0
40    CONTINUE
30    CONTINUE
20    CONTINUE
C
C SEARCH FOR NEXT CANDIDATE
      L = L + 1
      DO 50 I = S(L-1), M
      IF ( T(I) .NE. 0 ) THEN
        S(L) = I
C
C To watch how the smallest non-occurring difference is
C evolving, active lines from CWATCHDIFBEGIN until CWATCHDIFEND
C The second item in the output line are the Mian-Chowla (1,n)
C sequence terms (n=1:A005282, n=2:A051788, n=3:A058335)
C
CWATCHDIFBEGIN
C        do 51 j = 1, 100
C        if ( d(j) .ne. 0 ) then
C          WRITE (*,*) L, I, d(j)
C          GOTO 100
C        endif
C51      continue
CWATCHDIFEND
        GOTO 100
      ENDIF
50    CONTINUE
C Differences covered so far:
      DO 70 I = 1, 400
      IF ( D(I) .NE. 0 ) THEN
        WRITE (*,1000) N2, D(I)
        WRITE (10,1000) N2, D(I)
1000    FORMAT ( I7, I4 )
C If only smallest non-occurring difference is required,
C terminated loop after first hit
CA080933BEGIN
C        GOTO 200
CA080933END
      ENDIF
70    CONTINUE
C
C To determine the maximum differences of consecutive elements
C the commented code lines from CMAXDIFBEGIN until CMAXDIFEND
C has to be activated
C
CMAXDIFBEGIN
      J = 0
      DINC = 0
      DO 80 I = 2, L
      DD = S(I) - S(I-1)
      IF ( DD .GT. DINC ) THEN
        DINC = DD
C The last item in the output line is used for OEIS
C A080222, A080223, A080931
        WRITE (11,1001) I, S(I-1), S(I), DD
1001    FORMAT ( I4, 2I8, I6 )
      ENDIF
80    CONTINUE
CMAXDIFEND
C
200   CONTINUE
      END