# d9pak.f

          DOUBLE PRECISION FUNCTION D9PAK (Y, N)
    C***BEGIN PROLOGUE  D9PAK
    C***PURPOSE  Pack a base 2 exponent into a floating point number.
    C***LIBRARY   SLATEC (FNLIB)
    C***CATEGORY  A6B
    C***TYPE      DOUBLE PRECISION (R9PAK-S, D9PAK-D)
    C***KEYWORDS  FNLIB, PACK
    C***AUTHOR  Fullerton, W., (LANL)
    C***DESCRIPTION
    C
    C Pack a base 2 exponent into floating point number X.  This routine is
    C almost the inverse of D9UPAK.  It is not exactly the inverse, because
    C ABS(X) need not be between 0.5 and 1.0.  If both D9PAK and 2.d0**N
    C were known to be in range we could compute
    C               D9PAK = X *2.0d0**N
    C
    C***REFERENCES  (NONE)
    C***ROUTINES CALLED  D1MACH, D9UPAK, I1MACH, XERMSG
    C***REVISION HISTORY  (YYMMDD)
    C   790801  DATE WRITTEN
    C   890531  Changed all specific intrinsics to generic.  (WRB)
    C   890911  Removed unnecessary intrinsics.  (WRB)
    C   891009  Corrected error when XERROR called.  (WRB)
    C   891009  REVISION DATE from Version 3.2
    C   891214  Prologue converted to Version 4.0 format.  (BAB)
    C   900315  CALLs to XERROR changed to CALLs to XERMSG.  (THJ)
    C   901009  Routine used I1MACH(7) where it should use I1MACH(10),
    C           Corrected (RWC)
    C***END PROLOGUE  D9PAK