*COMDECK  COMCCFD            CONVERT CONSTANT TO F10.3 FORMAT.           COMCCFD
 CFD      CTEXT  COMCCFD - CONVERT CONSTANT TO F10.3 FORMAT.             COMCCFD
 CFD      SPACE  4,10                                                    COMCCFD
          IF     -DEF,QUAL$,1                                            COMCCFD
          QUAL   COMCCFD                                                 COMCCFD
          BASE   D                                                       COMCCFD
*         COMMENT COPYRIGHT CONTROL DATA CORPORATION. 1971, 1978.        COMCCFD
 CFD      SPACE  4,10                                                    COMCCFD
***       CFD - CONVERT CONSTANT TO F10.3 FORMAT.                        COMCCFD
*                                                                        COMCCFD
*         J. C. BOHNHOFF.    71/08/15.                                   COMCCFD
*         C. J. CONRAD.      81/08/06.
* 
*         ******************************************************* 
*         * THIS COMMON DECK IS PART OF THE COMMON COMMON DECKS * 
*         * RESIDING ON THE COMPASS PROGRAM LIBRARY, AND BEING  * 
*         * MAINTAINED BY THE COMPASS PROJECT.  ANY CHANGES     * 
*         * REQUIRED SHOULD BE DIRECTED TO THE COMPASS PROJECT  * 
*         * THROUGH THE PROPER PROCEDURE.                       * 
*         ******************************************************* 
* 
*                                                                        COMCCFD
*         CFD CONVERTS AN INTEGER TO DISPLAY CODE WITH A DECIMAL POINT.  COMCCFD
 CFD      SPACE  4,10                                                    COMCCFD
***       *CFD* CONVERTS A 30 BIT INTEGER TO DISPLAY CODE IN *FORTRAN*
*         F10.34 FORMAT.  THE VALUE RETURNED IS EQUAL TO THE INPUT
*         VALUE DIVIDED BY 1000D, THE RESULT IS RETURNED BOTH LEFT
*         AND RIGHT JUSTIFIED AND LEADING ZEROS IN THE INTEGER PORTION
*         ARE SUPPRESSED.  IF THE 30 BIT NUMBER EXCEEDS 999999.999
*         (INPUT EXCEEDS 7346544777B) THE RESULT WILL BE **********.
*         AN INPUT VALUE GREATER THAN 30 BITS IS TRUNCATED TO THE 
*         LOWER 30 BITS.
*                                                                        COMCCFD
*         ENTRY  (X1) = INTEGER TO BE CONVERTED.                         COMCCFD
*                (B1) = 1.                                               COMCCFD
*                                                                        COMCCFD
*         EXIT   (X6)= CONVERSION RIGHT JUSTIFIED.                       COMCCFD
*                (X4)= CONVERSION LEFT JUSTIFIED.                        COMCCFD
*                (B3) = -(NUMBER OF BLANK FILL BITS IN RESULT).          COMCCFD
*                                                                        COMCCFD
*         USES   X - 1, 2, 3, 4, 6, 7.                                   COMCCFD
*                B - 2, 3, 4, 5.                                         COMCCFD
*                A - 2, 3, 4. 
*                                                                        COMCCFD
*         CALLS  NONE.                                                   COMCCFD
                                                                         COMCCFD
                                                                         COMCCFD
 CFD3     SA4    CFDC 
          SB3    B0 
          BX6    X4 
                                                                         COMCCFD
 CFD      SUBR               ENTRY/EXIT                                  COMCCFD
          SA2    CFDA        =.1P48+1                                    COMCCFD
          SA3    CFDB        =10.0P                                      COMCCFD
          SA4    A2+B1       =7346544777B 
          MX6    -30
          SB5    6                                                       COMCCFD
          BX6    -X6*X1      DISCARD UPPER BITS 
          SX7    1000                                                    COMCCFD
          IX4    X4-X6
          MI     X4,CFD3     IF INPUT .GT. 999999.999 
          SB4    1R0-1R      (B4) = CONVERSION                           COMCCFD
          SA4    A3+B1       (X4) = BACKGROUND                           COMCCFD
          PX1    X6                                                      COMCCFD
          IX7    X6-X7                                                   COMCCFD
          SB2    -B5                                                     COMCCFD
          PL     X7,CFD1     IF INTEGER PRESENT                          COMCCFD
          SB4    B0 
          SA4    A4+B1
 CFD1     DX6    X2*X1       EXTRACT REMAINDER                           COMCCFD
          FX1    X2*X1                                                   COMCCFD
          UX7    X1          CHECK QUOTIENT                              COMCCFD
          LX4    -6          SHIFT ASSEMBLY                              COMCCFD
          SB2    B2+B5       ADVANCE SHIFT COUNT                         COMCCFD
          FX6    X3*X6       EXTRACT DIGIT                               COMCCFD
          SX6    X6+B4       CONVERT DIGIT                               COMCCFD
          IX4    X6+X4                                                   COMCCFD
          NZ     X7,CFD1     LOOP TO ZERO QUOTIENT                       COMCCFD
          SX3    1R.         INSERT DECIMAL POINT                        COMCCFD
          MX2    -18         FRACTION MASK                               COMCCFD
          LX6    X4,B2       RIGHT JUSTIFY ASSEMBLY                      COMCCFD
          SB2    B2+12       CALCULATE SHIFT TO LEFT JUSTIFY             COMCCFD
          LX3    18                                                      COMCCFD
          BX1    -X2*X6      EXTRACT FRACTION                            COMCCFD
          SB3    6*5                                                     COMCCFD
          IX7    X1+X3       ADD DECIMAL POINT                           COMCCFD
          BX4    X2*X6       EXTRACT INTEGER                             COMCCFD
          LX4    6                                                       COMCCFD
          IX6    X4+X7       ADD INTEGER INTO RESULT                     COMCCFD
          LT     B2,B3,CFD2  LEFT JUSTIFY RESULT                         COMCCFD
          SB3    B2+                                                     COMCCFD
 CFD2     SB3    B3-60                                                   COMCCFD
          AX4    X6,B3                                                   COMCCFD
          EQ     CFDX        RETURN                                      COMCCFD
                                                                         COMCCFD
 CFDA     CON    0.1P48+1                                                COMCCFD
          CON    7346544777B OVERFLOW BOUNDARY
 CFDB     CON    10.0P                                                   COMCCFD
          CON    9L                                                      COMCCFD
          CON    9L     0000                                             COMCCFD
 CFDC     DATA   10R**********
 CFD      SPACE  4,10                                                    COMCCFD
          BASE   *                                                       COMCCFD
 QUAL$    IF     -DEF,QUAL$                                              COMCCFD
          QUAL   *                                                       COMCCFD
 CFD      EQU    /COMCCFD/CFD                                            COMCCFD
 CFD=     EQU    /COMCCFD/CFD 
 QUAL$    ENDIF                                                          COMCCFD
 CFD      ENDX                                                           COMCCFD
