      SUBROUTINE BESCON
C
C     * JULY 17/92. - GUANG JUN ZHANG.
C 
C     * CALCULATE BESSEL FUNCTIONS (NUMBER="NBF") AND ASSOCIATED FACTORS
C     * FOR USE IN CUMULUS MOMENTUM MIXING SCHEME.
C     * THIS ROUTINE IS CALLED ONLY ONCE PER JOB AT START OF TIME LOOP
C     * AND THE INFORMATION IS PASSED IN COMMON BLOCKS TO THE SUBROUTINE
C     * MOMENT AND ITS VARIOUS FUNCTIONS.
C
      IMPLICIT REAL   (A-H,O-Z),
     +INTEGER (I-N)
 
      PARAMETER(NBF=10) 
C
      REAL   MMBSJ0,MMBSJ1
C
      COMMON/CONST/ALFA1(NBF),ALFA2(NBF),BSJ0(NBF),BSJ1(NBF), 
     1             BSJ0CHI,FACTOR 
      COMMON/TAU/TAU(NBF) 
      COMMON/RLMT/N,RC,RMAX 
C
      EXTERNAL FUN1,FUN2,FUN3,DCADRE,MMBSJ0,MMBSJ1
C-----------------------------------------------------------------------
      RMAX=30000. 
      RC=3000.
      TAU(1)=3.8317 
      TAU(2)=7.0156 
      TAU(3)=10.1735
      TAU(4)=13.3237
      TAU(5)=16.4705
C
      DO 100 N=6,NBF
         TAU(N)=(N+.25)*3.1415927 
  100 CONTINUE
C
      DO 200 N=1,NBF
         ALFA1(N)=DCADRE(FUN1,0.,RC/RMAX,0.,1.E-8,ERR  ,IER) 
         ALFA2(N)=3.8317/RC*RMAX 
     1           *DCADRE(FUN2,0.,RC/RMAX,0.,1.E-8,ERR  ,IER)
         BSJ0(N)=MMBSJ0(TAU(N),IER)
         BSJ1(N)=MMBSJ1(TAU(N)*RC/RMAX,IER)
  200 CONTINUE
C
      BSJ0CHI=MMBSJ0(3.8317,IER)
      FACTOR=DCADRE(FUN3,0.,1.,0.,1.E-8,ERR  ,IER)
C
      RETURN
      END 
