 MODULE hfodd_sizes

      IMPLICIT NONE

      !
      !   Linear Algebra
      INTEGER, PARAMETER :: I_CRAY=0,IPARAL=0,IPARAT=0
      !
      !   General
      INTEGER, PARAMETER :: NDKART=3
      INTEGER, PARAMETER :: NDPARI=1, NDSIMP=1, NDSIGN=1, NDREVE=1
      INTEGER, PARAMETER :: NDISOS=1, NDSPIN=1, NDRHFB=1
      INTEGER, PARAMETER :: NDPAHO=5
      INTEGER, PARAMETER :: ND04=2, ND08=4, ND12=6, ND16=8, ND32=16, ND64=32, NDMAX=2*ND64
      INTEGER, PARAMETER :: NDENES=43
      !
      !   HO basis: number of states, integration mesh
      INTEGER, PARAMETER :: NDMAIN=08, NDXMAX=NDMAIN, NDYMAX=NDMAIN, NDZMAX=NDMAIN
      INTEGER, PARAMETER :: NDOSCI=NDMAIN, ND0MAX=2*NDOSCI, ND1MAX=NDOSCI+2
      INTEGER, PARAMETER :: ND2MAX=2*NDOSCI+2, NDBTOT=(NDOSCI+1)**3
      INTEGER, PARAMETER :: NDINTE=2*NDOSCI+3, NDINT1=NDOSCI+1, NDINT2=NDOSCI+2
      INTEGER, PARAMETER :: NDPERP=NDMAIN
      INTEGER, PARAMETER :: NDTRAN=((NDMAIN+1)*(NDMAIN+2)*(NDMAIN+3))/6
      INTEGER, PARAMETER :: NDBASE=165, NDBASD=4*NDBASE
      INTEGER, PARAMETER :: NDBASP=NDBASE/2+MAX(20,NDBASE/12)
      INTEGER, PARAMETER :: NDSTAT=165
      INTEGER, PARAMETER :: NDDATA=2*NDSTAT*(NDISOS+1)
      INTEGER, PARAMETER :: NDHALF=2, NDREIM=2
      INTEGER, PARAMETER :: NDXHRM=18, NDYHRM=18, NDZHRM=18
      INTEGER, PARAMETER :: NDGAUS=MAX(NDXHRM,NDYHRM,NDZHRM)
      !
      !   Densities
      INTEGER, PARAMETER :: NDALLD=4+8*NDKART+2*NDKART*NDKART, NDALLP=1
      !INTEGER, PARAMETER :: NDALLP=4+NDKART+NDKART*NDKART
      INTEGER, PARAMETER :: NDTYDE=2
      !
      !   Various: multipoles, Coulomb, iterations, binomial coefficients,
      !            functional
      INTEGER, PARAMETER :: NDMULT=9, NDLAMB=9, NDFACT=2*NDLAMB, NDCONS=10
      INTEGER, PARAMETER :: NDMULR=4, NDMULM=(NDMULR+1)**2
      INTEGER, PARAMETER :: NDDERI=2, NDSCAL=1
      INTEGER, PARAMETER :: NDCOUL=80, NDPOLS=25, NDNETA=NDCOUL
      INTEGER, PARAMETER :: ND_COU=20, NDCOTY=7
      INTEGER, PARAMETER :: NDYUKA=6, NDYUTY=2
      INTEGER, PARAMETER :: NDGOGA=2, NDFORC=4, NDREGA=4
      INTEGER, PARAMETER :: NDITER=5000, NDTERM=15
      INTEGER, PARAMETER :: NDSHIF=100, NDSMTH=20
      INTEGER, PARAMETER :: NDBINO=2*NDOSCI
      INTEGER, PARAMETER :: NDFACR=MAX(2*NDOSCI+7,NDGAUS)
      INTEGER, PARAMETER :: NDCOUP=24, NDCOUT=30, NDVIOL=32
      INTEGER, PARAMETER :: NDJMAX=70, NDJMXD=2*NDJMAX
      INTEGER, PARAMETER :: NFIRST=1, NLAST=40000
      INTEGER, PARAMETER :: NDSUBR=100, NDCOLU=4
      INTEGER, PARAMETER :: MV25=150
      INTEGER, PARAMETER :: NDNUCL=1
      INTEGER, PARAMETER :: NDSEAR=10
      INTEGER, PARAMETER :: ND_PRO=140, ND_NEU=250
      !
      !    Projection
      INTEGER, PARAMETER :: NDAKNO=1, NDBKNO=1
      INTEGER, PARAMETER :: NDASAV=(1-IPARAL)*NDAKNO+IPARAL
      INTEGER, PARAMETER :: NDPROI=2, NDPROT=1, NDPROD=(NDPROI+1)*(NDPROT+1)
      !INTEGER, PARAMETER :: NDPROI=0, NDPROT=20, NDPROD=50
      INTEGER, PARAMETER :: NDPROK=(NDPROI/2+1)**2
      INTEGER, PARAMETER :: NDPROM=((NDPROI+1)*(NDPROI+2)*(NDPROI+3))/6
      INTEGER, PARAMETER :: NUMCOL=70
      INTEGER, PARAMETER :: NDATKN=20,NDBTKN=10
      INTEGER, PARAMETER :: NDASAT=(1-IPARAT)*NDATKN+IPARAT
      !INTEGER, PARAMETER :: NDISOM=1771)
      INTEGER, PARAMETER :: NDISOM=((NDPROT+1)*(NDPROT+2)*(NDPROT+3))/6
      !=========================================================================
      ! INTEGER, PARAMETER NDREDU BELOW IS EQUAL TO THE MINIMUM NECESSARY VALUE
      !=========================================================================
      ! INTEGER, PARAMETER
      !*          (NDREDU=NDPROK*(NDMULR+1)*NDPROK)
      !=========================================================================
      ! INTEGER, PARAMETER NDREDU BELOW IS EQUAL TO THE MINIMUM SUFFICIENT VALUE
      ! WHICH HAS BEEN OBTAINED BY FITTING THE  VALUES  CALCULATED  FOR
      ! NDMULR=4 WITH A 3RD-ORDER POLYNOMIAL, SEE THE ANALYSIS  IN  THE
      ! FILE HF222K.XLS OF 10/02/06
      !=========================================================================
      INTEGER, PARAMETER :: NDREDU=5*((((NDPROI+2)*NDPROI-5)*NDPROI+32))/2

      INTEGER, PARAMETER :: NDCONF=100,NDKERN=20,NDRZUT=20,ND_EXC=20
      INTEGER, PARAMETER :: NDISOK=(NDPROT+1)**2
      INTEGER, PARAMETER :: NDALIB=13
      INTEGER, PARAMETER :: NDORDE=6

 END MODULE hfodd_sizes
