      PROGRAM HUNDSCVT
C PROGRAM TO TAKE CATALOG FORMAT AND CONVERT HUND'S CASE
      CHARACTER*36 INFIL,OUTFIL
      CHARACTER*51 LINE
      CHARACTER*2 QN(12),QJ,Q2L,Q2H,QONE,QOMEGA
      CHARACTER*1 XCHR
      INTEGER ICV(5),NLINE,I,IQFMT,NQN
      DATA ICV/0,0,10,20,40/
      QONE=' 1'
      WRITE(*,*) 'ENTER CATALOG INPUT FILE NAME'
      READ(*,102) INFIL
      OPEN(10,FILE=INFIL,STATUS='OLD')
      WRITE(*,*) 'ENTER OUTPUT FILE NAME'
      READ(*,102) OUTFIL
      OPEN(11,FILE=OUTFIL,STATUS='UNKNOWN')
      WRITE(*,*) 'ENTER negative number if A is negative'
      I=0
      READ(*,*) I
      IF(I.LT.0) THEN
          Q2L=' 2'
          Q2H=' 1'
      ELSE
          Q2L=' 1'
          Q2H=' 2'
      ENDIF
      NLINE=0
1     READ(10,100,END=90) LINE,IQFMT,QN,XCHR
100   FORMAT(A51,I4,12A2,1A1)
      NQN=MOD(IQFMT,10)
      IF(NQN.LT.3.OR.NQN.GT.5) GO TO 1
      NQN=600-ICV(NQN)
      IF(IQFMT/100.EQ.2) THEN
C      convert from case b to a
        IF(NLINE.EQ.0) WRITE(*,*) 'convert from case b to a'
        IQFMT=IQFMT+NQN
        DO 10 I=0,6,6
          QJ=QN(I+3)
          QN(I+3)=QN(I+2)
          IF(QN(I+1).EQ.QJ) THEN
              QN(I+2)=Q2H
              IF(QJ.EQ.QONE) QN(I+2)=QONE
          ELSE
              QN(I+2)=Q2L
              QN(I+1)=QJ
          ENDIF
 10       CONTINUE
      ELSE
C      convert from case a to b
        IF(NLINE.EQ.0) WRITE(*,*) 'convert from case a to b'
        IQFMT=IQFMT-NQN
        DO 20 I=0,6,6
          QOMEGA=QN(I+2)
          QN(I+2)=QN(I+3)
          QJ=QN(I+1)
          QN(I+3)=QJ
          IF(QOMEGA.EQ.Q2L) THEN
C            subtract 1 from J to get N 
              IF(QJ(2:2).EQ.'0') THEN
                  QJ(1:1)=CHAR(ICHAR(QJ(1:1))-1)
                  QJ(2:2)='9'
                  IF(QJ.EQ.'09') QJ=' 9'
              ELSE IF(QJ.NE.QONE) THEN
                  QJ(2:2)=CHAR(ICHAR(QJ(2:2))-1)
              ENDIF
              QN(I+1)=QJ
          ENDIF
 20       CONTINUE
      ENDIF
      NLINE=NLINE+1
      WRITE(11,100) LINE,IQFMT,QN,XCHR
      GO TO 1
90    STOP
102   FORMAT(A)
      END
