!
!  $Author: pkubota $
!  $Date: 2011/05/27 23:15:12 $
! Changed by Tarasova in July 2013 for Clirad Modified (Tarasova and Fomin, 2007)
! with parameterizations (Fomin and Correia, 2005)
!  $Revision: 1.3 $
!
MODULE Rad_CliradTarasova

  USE Constants, ONLY :  &
       pai,              & ! constant pi=3.1415926e0
       tf,               & ! Temperatura de congelamento (K)=273.16e0
       r8,i8,i4

  USE Options, ONLY : &
       co2val, &              ! co2val is wgne standard value in ppm
       nfprt


  ! InitCliradTarasova_sw___read_table
  !
  !
  ! CliradTarasova_sw_____cloudy____sorad___soluv___kuv
  !                                     |        |
  !                                     |        |__cldscale
  !                                     |        |
  !                                     |        |__deledd
  !                                     |        |
  !                                     |        |__deledd 
  !                                     |        |
  !                                     |        |__deledd
  !                                     |        |
  !                                     |        |__deledd 
  !                                     |        |
  !                                     |        |__cldflx
  !                                     |
  !                                     |
  !                                     |___solir___kir
  !                                              |
  !                                              |__cldscale
  !                                              |
  !                                              |__deledd
  !                                              |
  !                                              |__deledd 
  !                                              |
  !                                              |__deledd
  !                                              |
  !                                              |__deledd 
  !                                              |
  !                                              |__cldflx


  USE Options, ONLY :       &
       asolc, &
       asolm

  IMPLICIT NONE

  PRIVATE
  ! parameters for co2 transmission tables
  INTEGER, PARAMETER :: nu=43
  INTEGER, PARAMETER :: nw=37
  INTEGER, PARAMETER :: nx=62
  INTEGER, PARAMETER :: ny=101
  ! parameters
  INTEGER, PARAMETER :: nm=11
  INTEGER, PARAMETER :: nt=9
  INTEGER, PARAMETER :: na=11
  ! include the pre-computed table of mcai for scaling the cloud optical
  ! thickness under the assumption that clouds are maximally overlapped
  ! caib is for scaling the cloud optical thickness for direct radiation
  REAL(KIND=r8), ALLOCATABLE :: caib(:,:,:)
  ! caif is for scaling the cloud optical thickness for diffuse radiation
  REAL(KIND=r8), ALLOCATABLE :: caif(:,:)

  ! cah is the co2 absorptance in band 10
  REAL(KIND=r8), ALLOCATABLE  :: coa  (:,:)
  ! coa is the co2 absorptance in strong absorption regions of band 11
  REAL(KIND=r8), ALLOCATABLE :: cah (:,:)

  ! parameters
  !INTEGER, PARAMETER :: nband=8

  ! hk is the fractional extra-terrestrial solar flux in each
  ! of the 8 bands. the sum of hk is 0.47074. (table 3)
  !REAL(KIND=r8), PARAMETER, DIMENSION(nband) :: hk3 = (/ &
  !     0.00057_r8, 0.00367_r8, 0.00083_r8, 0.00417_r8, 0.00600_r8, &
  !     0.00556_r8, 0.05913_r8, 0.39081_r8 /)

  ! zk is the ozone absorption coefficient. unit: /(cm-atm)stp (table 3)
  !REAL(KIND=r8), PARAMETER, DIMENSION(nband) :: zk3 = (/ &
  !     30.47_r8, 187.2_r8, 301.9_r8, 42.83_r8, 7.09_r8, 1.25_r8, 0.0345_r8, 0.0572_r8 /)

  ! wk is the water vapor absorption coefficient. unit: cm**2/g (table 3)
  !REAL(KIND=r8), PARAMETER, DIMENSION(nband) :: wk3 = (/ 0.0_r8,0.0_r8,0.0_r8,0.0_r8,0.0_r8,0.0_r8,&
  !                                                       0.0_r8,0.00075_r8/)

  ! ry is the extinction coefficient for rayleigh scattering. unit: /mb. (table 3)
  !REAL(KIND=r8), PARAMETER, DIMENSION(nband) :: ry3 = (/ &
  !     0.00604_r8, 0.00170_r8, 0.00222_r8, 0.00132_r8, 0.00107_r8, 0.00091_r8, &
  !     0.00055_r8, 0.00012_r8 /)

  ! coefficients for computing the extinction coefficients of ice,
  ! water, and rain particles, independent of spectral band. (table 4)
  !REAL(KIND=r8), PARAMETER, DIMENSION(2) :: aib3 = (/  3.33e-4_r8, 2.52_r8 /)
  !REAL(KIND=r8), PARAMETER, DIMENSION(2) :: awb3 = (/ -6.59e-3_r8, 1.65_r8 /)
  !REAL(KIND=r8), PARAMETER, DIMENSION(2) :: arb3 = (/  3.07e-3_r8, 0.00_r8 /)

  ! coefficients for computing the asymmetry factor of ice, water,
  ! and rain particles, independent of spectral band. (table 6)

  !REAL(KIND=r8), PARAMETER, DIMENSION(3) :: aig3 = (/ 0.74625_r8, 0.0010541_r8, -0.00000264_r8 /)
  !REAL(KIND=r8), PARAMETER, DIMENSION(3) :: awg3 = (/ 0.82562_r8, 0.0052900_r8, -0.00014866_r8 /)
  !REAL(KIND=r8), PARAMETER, DIMENSION(3) :: arg3 = (/ 0.883_r8,   0.0_r8,      0.0_r8/)

  PUBLIC :: CliradTarasova_sw
  PUBLIC :: InitCliradTarasova_sw

CONTAINS
  SUBROUTINE InitCliradTarasova_sw()
    IMPLICIT NONE 
    ALLOCATE(caib(nm,nt,na))
    ALLOCATE(caif(nt,na))
    ALLOCATE(coa (nx,ny))
    ALLOCATE(cah (nu,nw))

    CALL read_table()
  END SUBROUTINE InitCliradTarasova_sw

  !-----------------------------------------------------------------------
  !
  ! Subroutine: CliradTarasova_sw (Clirad Interface)
  !
  ! This subroutine replaces SWRAD in the global model. It uses nearly the 
  ! same input and output and calls the main routines of Chou and Suarez
  ! radiation code.
  !
  ! ACRONYMS: 
  !   CDLGP...CLOUDY DAYTIME LATITUDE GRID POINTS
  !   DLGP....DAYTIME LATITUDE GRID POINTS
  !   LGP.....LATITUDE GRID POINTS
  !   NSOL....NUMBER OF DAYTIME LATITUDE GRID POINTS
  !   NCLD....NUMBER OF CLOUDY DLGP
  !
  ! Authors: Tatiana Tarasova & Henrique Barbosa
  !
  !-----------------------------------------------------------------------

  SUBROUTINE CliradTarasova_sw(&
                                ! Model Info and flags
       ncols , kmax  , nls   , noz   , &
       icld  , inalb , s0    , cosz  , &
                                ! Atmospheric fields
       pl20  , dpl   , tl    , ql    , &
       o3l   , gps   , imask , &
                                ! SURFACE:  albedo
       alvdf , alndf , alvdr , alndr , &
                                ! SW Radiation fields 
       swinc ,                         &
       radvbc, radvdc, radnbc, radndc, &
       radvbl, radvdl, radnbl, radndl, &
       dswclr, dswtop, ssclr , ss    , &
       aslclr, asl   ,                 &
                                ! Cloud field
       cld   , clu   , fice  , &
       rei   , rel   , taud  )

    IMPLICIT NONE
    !==========================================================================
    !
    ! ___________________________
    ! MODEL INFORMATION AND FLAGS
    !
    ! ncols.....Number of grid points on a gaussian latitude circle
    ! kmax......Number of sigma levels
    ! nls.......Number of layers in the stratosphere.
    ! noz.......
    ! icld......Select three types of cloud emissivity/optical depth
    !           =1 : old cloud emissivity (optical depth) setting
    !                ccu :  0.05 *dp
    !                css :  0.025*dp       for ice cloud t<253.0
    !                       0.05 *dp       for ice cloud t>253.0
    !           =2 : new cloud emissivity (optical depth) setting
    !                ccu : (0.16)*dp
    !                css :  0.0                              t<-82.5
    !                      (2.0e-6*(t-tcrit)**2)*dp    -82.5<t<-10.0
    !                      (6.949e-3*(t-273)+.08)*dp   -10.0<t<  0.0
    !                      (0.08)*dp                   -10.0<t<  0.0
    !           =3    : ccm3 based cloud emissivity
    ! inalb.....Select two types of surface albedo
    !           =1 : input two  types surface albedo (2 diffused)
    !                direct beam albedos are calculated by the subr.
    !           =2 : input four types surfc albedo (2 diff,2 direct)
    ! s0........Solar constant  at proper sun-earth distance
    ! cosz......Cosine of solar zenith angle
    !
    ! __________________
    ! ATMOSPHERIC FIELDS
    !
    !    flip arrays (k=1 means top of atmosphere)
    !
    ! pl20......Flip array of pressure at bottom of layers (mb)
    ! dpl.......Flip array of pressure difference bettween levels
    ! tl........Flip array of temperature (K)
    ! ql........Flip array of specific humidity (g/g)
    ! o3l.......Flip array of ozone mixing ratio (g/g)
    ! gps.......Surface pressure (mb)
    ! imask.....Sea/Land mask
    !
    ! ________________
    ! SURFACE:  albedo
    !
    ! alvdf.....Visible diffuse surface albedo
    ! alndf.....Near-ir diffuse surface albedo
    ! alvdr.....Visible beam surface albedo
    ! alndr.....Near-ir beam surface albedo
    !
    ! ________________________________________
    ! SW Radiation fields 
    !
    ! swinc.....Incident SW at top 
    ! radvbc....Down Sfc SW flux visible beam    (all-sky)
    ! radvdc....Down Sfc SW flux visible diffuse (all-sky)
    ! radnbc....Down Sfc SW flux Near-IR beam    (all-sky)
    ! radndc....Down Sfc SW flux Near-IR diffuse (all-sky)
    ! radvbl....Down Sfc SW flux visible beam    (clear)  
    ! radvdl....Down Sfc SW flux visible diffuse (clear)  
    ! radnbl....Down Sfc SW flux Near-IR beam    (clear)  
    ! radndl....Down Sfc SW flux Near-IR diffuse (clear)  
    ! dswclr....Net SW flux at TOA (clear)   = Abs by Atmos + Sfc
    ! dswtop....Net SW flux at TOA (all-sky) = Abs by Atmos + Sfc
    ! ssclr.....Net SW flux at SFC (clear)   = Abs by Sfc
    ! ss........Net SW flux at SFC (all-sky) = Abs by Sfc
    ! asl.......Heating rate due to shortwave         (K/s)
    ! aslclr....Heating rate due to shortwave (clear) (K/s)
    !
    ! ___________
    ! Cloud field
    !
    ! cld.......Supersaturation cloud fraction
    ! clu.......Convective cloud fraction     
    ! fice......Fraction of cloud water in the form of ice
    ! rei.......Ice particle Effective Radius (microns)
    ! rel.......Liquid particle Effective Radius (microns)
    ! taud......Shortwave cloud optical depth
    !
    !==========================================================================

    ! Model Info and flags
    INTEGER      ,    INTENT(in   ) :: ncols
    INTEGER      ,    INTENT(in   ) :: kmax
    INTEGER      ,    INTENT(in   ) :: nls
    LOGICAL      ,    INTENT(in   ) :: noz
    INTEGER      ,    INTENT(in   ) :: icld
    INTEGER      ,    INTENT(in   ) :: inalb
    REAL(KIND=r8),    INTENT(in   ) :: s0
    REAL(KIND=r8),    INTENT(in   ) :: cosz   (ncols)

    ! Atmospheric fields
    REAL(KIND=r8),    INTENT(in   ) :: pl20   (ncols,kmax)
    REAL(KIND=r8),    INTENT(in   ) :: dpl    (ncols,kmax)
    REAL(KIND=r8),    INTENT(in   ) :: tl     (ncols,kmax)
    REAL(KIND=r8),    INTENT(in   ) :: ql     (ncols,kmax)
    REAL(KIND=r8),    INTENT(in   ) :: o3l    (ncols,kmax)
    REAL(KIND=r8),    INTENT(in   ) :: gps    (ncols)
    INTEGER(KIND=i8), INTENT(IN   ) :: imask  (ncols) 

    ! SURFACE:  albedo
    REAL(KIND=r8),    INTENT(in   ) :: alvdf  (ncols)
    REAL(KIND=r8),    INTENT(in   ) :: alndf  (ncols)
    REAL(KIND=r8),    INTENT(inout) :: alvdr  (ncols)
    REAL(KIND=r8),    INTENT(inout) :: alndr  (ncols)
    ! SW Radiation fields 
    REAL(KIND=r8),    INTENT(out) :: swinc  (ncols)
    REAL(KIND=r8),    INTENT(out) :: radvbc (ncols)
    REAL(KIND=r8),    INTENT(out) :: radvdc (ncols)
    REAL(KIND=r8),    INTENT(out) :: radnbc (ncols)
    REAL(KIND=r8),    INTENT(out) :: radndc (ncols)
    REAL(KIND=r8),    INTENT(out) :: radvbl (ncols)
    REAL(KIND=r8),    INTENT(out) :: radvdl (ncols)
    REAL(KIND=r8),    INTENT(out) :: radnbl (ncols)
    REAL(KIND=r8),    INTENT(out) :: radndl (ncols)
    REAL(KIND=r8),    INTENT(out) :: aslclr (ncols,kmax)
    REAL(KIND=r8),    INTENT(out) :: asl    (ncols,kmax)
    REAL(KIND=r8),    INTENT(out) :: ss     (ncols)
    REAL(KIND=r8),    INTENT(out) :: ssclr  (ncols)
    REAL(KIND=r8),    INTENT(out) :: dswtop (ncols)
    REAL(KIND=r8),    INTENT(out) :: dswclr (ncols)

    ! Cloud field and Microphysics
    REAL(KIND=r8),    INTENT(in   ) :: cld    (ncols,kmax)
    REAL(KIND=r8),    INTENT(in   ) :: clu    (ncols,kmax)
    REAL(KIND=r8),    INTENT(in   ) :: fice   (ncols,kmax)
    REAL(KIND=r8),    INTENT(in   ) :: rei    (ncols,kmax)
    REAL(KIND=r8),    INTENT(in   ) :: rel    (ncols,kmax) 
    REAL(KIND=r8),    INTENT(inout   ) :: taud   (ncols,kmax)

    ! local  variables
    INTEGER i,k
    INTEGER :: nsol ! NUMBER OF SOLAR LATITUDE GRID POINTS (COSZ>0.01)

    REAL(KIND=r8):: scosz (ncols) ! DOWNWARD FLUX AT TOP IN DLGP
    REAL(KIND=r8):: cmu   (ncols) ! COSINE OF SOLAR ZENITH ANGLE IN DLGP
    INTEGER      :: dmask (ncols) ! sib-mask in DLGP
    !
    !     Downward ground fluxes in dlgp
    !
    REAL(KIND=r8):: rvbl  (ncols) ! VISIBLE, BEAM, CLEAR
    REAL(KIND=r8):: rvdl  (ncols) ! VISIBLE, DIFFUSE, CLEAR
    REAL(KIND=r8):: rnbl  (ncols) ! NearIR, BEAM, CLEAR
    REAL(KIND=r8):: rndl  (ncols) ! NearIR, DIFFUSE, CLEAR
    REAL(KIND=r8):: rvbc  (ncols) ! VISIBLE, BEAM, CLOUDY
    REAL(KIND=r8):: rvdc  (ncols) ! VISIBLE, DIFFUSE, CLOUDY
    REAL(KIND=r8):: rnbc  (ncols) ! NearIR, BEAM, CLOUDY
    REAL(KIND=r8):: rndc  (ncols) ! NearIR, DIFFUSE, CLOUDY
    REAL(KIND=r8):: sl    (ncols) ! NET GROUND CLEAR FLUX IN DLGP
    REAL(KIND=r8):: sc    (ncols) ! NET GROUND CLOUDY FLUX IN DLGP
    !
    !     Other fluxes
    !
    REAL(KIND=r8):: dsclr (ncols)        ! ABSORPTION OF CLEAR ATMOSPHERE AND GROUND
    REAL(KIND=r8):: dscld (ncols)        ! DOWNWARD FLUX AT TOP IN DLGP
    REAL(KIND=r8):: aclr  (ncols,kmax+1) ! ABSORPTION IN CLEAR ATM.
    REAL(KIND=r8):: acld  (ncols,kmax+1) ! HEATING RATE (CLOUDY)
    !
    !     Albedo in DLGP
    !
    REAL(KIND=r8):: agv   (ncols)        ! GROUND VISIBLE DIFFUSE ALBEDO IN DLGP
    REAL(KIND=r8):: agn   (ncols)        ! GROUND NEAR IR DIFFUSE ALBEDO IN DLGP
    REAL(KIND=r8):: rsurfv(ncols)        ! GROUND VISIBLE BEAM ALBEDO IN DLGP
    REAL(KIND=r8):: rsurfn(ncols)        ! GROUND NEAR IR BEAM ALBEDO IN DLGP
    !
    !     Atmospheric state in DLGP
    !
    REAL(KIND=r8):: ps      (ncols)        ! surface pressure in DLGP (mb)
    REAL(KIND=r8):: ta      (ncols,kmax+1) ! LAYER TEMPERATURE IN DLGP
    REAL(KIND=r8):: wa      (ncols,kmax+1) ! LAYER SPECIFIC HUMIDITY IN DLGP
    REAL(KIND=r8):: oa      (ncols,kmax+1) ! LAYER OZONE MIXING RATIO IN DLGP
    REAL(KIND=r8):: pu      (ncols,kmax+2) ! PRESSURE AT BOTTOM OF LAYER IN DLGP
    REAL(KIND=r8):: dp      (ncols,kmax+1) ! PRESSURE DIFFERENCE IN DLGP
    !
    !     Clouds in DLGP
    !
    REAL(KIND=r8):: css   (ncols,kmax+1) ! LARGE SCALE CLOUD AMOUNT IN DLGP
    REAL(KIND=r8):: ccu   (ncols,kmax+1) ! CUMULUS CLOUD AMOUNT IN DLGP
    REAL(KIND=r8):: e0    (ncols,kmax+1) ! Cloud optical depth
    REAL(KIND=r8):: frcice(ncols,kmax+1) ! Fraction of cloud water in the form of ice
    REAL(KIND=r8):: radliq(ncols,kmax+1) ! Ice particle Effective Radius (microns)
    REAL(KIND=r8):: radice(ncols,kmax+1) ! Liquid particle Effective Radius (microns)

    REAL(KIND=r8):: tauk (ncols,kmax+1) ! total optical depth with k=1 at top
    !
    !     Logical and working vectors
    !
    INTEGER  :: litx  (ncols) ! NUMBERS OF DLGP IN ALL LAYERS
    INTEGER  :: listim(ncols) ! =1,2,3...NCOLS*(KMAX+1)
    LOGICAL  :: bitx  (ncols) ! TRUE IN SOLAR LATITUDE GRID POINTS
    LOGICAL  :: bitc  (ncols,kmax+1) ! Working logical

    ! Initialize local vectors and output variables
    swinc  =0.0_r8
    radvbc =0.0_r8
    radvdc =0.0_r8
    radnbc =0.0_r8
    radndc =0.0_r8
    radvbl =0.0_r8
    radvdl =0.0_r8
    radnbl =0.0_r8
    radndl =0.0_r8
    aslclr =0.0_r8
    asl    =0.0_r8
    ss     =0.0_r8
    ssclr  =0.0_r8
    dswtop =0.0_r8
    dswclr =0.0_r8

    scosz=0.0_r8
    cmu=0.0_r8
    dmask=0

    rvbl  =0.0_r8
    rvdl  =0.0_r8
    rnbl  =0.0_r8
    rndl  =0.0_r8
    rvbc  =0.0_r8
    rvdc  =0.0_r8
    rnbc  =0.0_r8
    rndc  =0.0_r8
    sl    =0.0_r8
    sc    =0.0_r8

    dsclr =0.0_r8
    dscld =0.0_r8
    aclr  =0.0_r8
    acld  =0.0_r8

    agv=0.0_r8
    agn=0.0_r8
    rsurfv=0.0_r8
    rsurfn=0.0_r8

    ps=0.0_r8
    ta=0.0_r8
    wa=0.0_r8
    oa=0.0_r8
    pu=0.0_r8
    dp=0.0_r8

    ccu=0.0_r8
    css=0.0_r8
    e0    =0.0_r8
    frcice=0.0_r8
    radliq=0.0_r8
    radice=0.0_r8

    tauk=0.0_r8

    litx=0
    listim=0
    bitx=.FALSE.

    ! Subroutine starts here

    !
    ! Set array listim = i, WHEN I=1,ncols*(kmax+2)
    !
    !FORALL (I=1:ncols) listim(I)=I
    DO i=1,ncols
       listim(i)=i
    END DO
    !
    ! set bits for daytime grid points
    ! BITX=.TRUE. IF COSZ>DUM(1)....0.01
    !
    !bitx(1:ncols)=cosz(1:ncols).ge.0.01e0_r8
    nsol=0
    DO i=1,ncols
       IF(cosz(i).GE.0.01e0_r8)THEN
          nsol=nsol+1
          bitx(i)=.TRUE.
       END IF
    END DO
    !
    ! Calculate nsol = number of daytime latitude grid points
    !
    !nsol=COUNT(bitx(1:ncols))
    !
    ! Set zero to all latitude grids surface fluxes
    !
    swinc  = 0.0_r8
    ss     = 0.0_r8
    ssclr  = 0.0_r8
    dswtop = 0.0_r8
    dswclr = 0.0_r8
    radvbl = 0.0_r8
    radvdl = 0.0_r8
    radnbl = 0.0_r8
    radndl = 0.0_r8
    radvbc = 0.0_r8
    radvdc = 0.0_r8
    radnbc = 0.0_r8
    radndc = 0.0_r8
    asl    = 0.0_r8
    aslclr = 0.0_r8
    !
    ! If there are no daytime points then
    !
    IF(nsol.EQ.0) RETURN
    !
    ! Set integer array litx (nsol*(kmax+1))
    ! numbers of latitude daytime grid points at first level
    !
    !litx(1:nsol) = PACK(listim(1:ncols), bitx(1:ncols))
    nsol=0
    DO  i=1,ncols
       IF(bitx(i))THEN
          nsol=nsol+1
          litx(nsol) = listim(i)
       END IF
    END DO
    !
    !  Transform  two-size  input arrays:
    !        pl20(ncols,kmax),dpl,tl,ql,cld,clu
    !  in two-size arrays:
    !        pu(nsol,kmax+2),dp(nsol,kmax+1),ta,wa,css,ccu
    !  in daytime latitude grid points at all levels
    !

    DO k=2,kMax+1
       DO i=1,nsol
          IF(litx(i).LE.ncols)THEN
             pu (i,k+1)=pl20(litx(i),k-1)
             dp (i,k)  =dpl (litx(i),k-1)
             ta (i,k)  =tl  (litx(i),k-1)
             wa (i,k)  =MAX (0.1e-22_r8,ql(litx(i),k-1))
             oa (I,k)  =MAX (0.1e-9_r8,o3l(litx(i),k-1))
             css(i,k)  =cld (litx(i),k-1)
             ccu(i,k)  =clu (litx(i),k-1)
             ps (i)    =gps (litx(i))
          END IF
       END DO
    END DO

    !
    ! Set some parameters at first, second
    !
    !#TO Correcao de hmjb
    DO i=1,nsol
       pu(i,2) = PU(I,3)/2.0_r8  ! 0.5_r8
       pu(i,1) = PU(I,2)/10.0_r8 ! 0.05_r8
       dp(i,1) = pu(i,2)-pu(i,1) ! pressure differense
       ta(i,1) = ta(i,2)       ! temperature
       wa(i,1) = wa(i,2)       ! specific humidity
       oa(i,1) = oa(i,2)       ! ozone

    ENDDO

    ! if no ozone
    IF (noz) oa=0.0_r8

    !
    ! Set some parameters at stratospheric levels
    !
    css(1:nsol,1:nls+1)=0.0_r8
    ccu(1:nsol,1:nls+1)=0.0_r8
    wa (1:nsol,1:nls  )=3.0e-6_r8

    !
    ! The same transformation as mentioned above for:
    !   visible surface albedo....alvdf to agv
    !   nearir surface albedo.....alndf to agn
    !   cosine of solar zenith angle..cosz to cmu
    !
    FORALL (I=1:nsol,litx(I).LE.ncols)
       agv  (I) = alvdf (litx(I))
       agn  (I) = alndf (litx(I))
       cmu  (I) = cosz  (litx(I))
       dmask(I) = INT(imask (litx(i)),KIND=i4)
    ENDFORALL
    !
    ! If direct beam albedos are given then
    ! alvdr transform to rsurfv(nsol) and alndr to rsurfn(nsol)
    ! in daytime grid points
    !
    !hmjb inalb=2 is hardcoded in physics!!!
    IF (inalb .EQ. 2) THEN
       FORALL (I=1:nsol,litx(I).LE.ncols)
          rsurfv(I)=alvdr(litx(I))
          rsurfn(I)=alndr(litx(I))
       ENDFORALL
    ELSE
       !
       ! If direct beam albedos are not given then do the reverse
       ! calculate direct beam surface albedo
       !
       rvbl(1:nsol)=ACOS(cmu(1:nsol)) ! rvbl... solar zenith angle
       DO i=1,nsol
          rvdc(i)  =  -18.0_r8 * (0.5_r8 * pai - rvbl(i)) / pai
          rvbc(i)  =  EXP(rvdc(i))
       ENDDO
       DO i=1,nsol
          rvdc(i)  = (agv(i) - 0.054313_r8) / 0.945687_r8
          rndc(i)  = (agn(i) - 0.054313_r8) / 0.945687_r8
          rsurfv(i) = rvdc(i)+(1.0-rvdc(i))*rvbc(i)
          rsurfn(i) = rndc(i)+(1.0-rndc(i))*rvbc(i)
       ENDDO
       DO i=1,ncols
          alvdr(i) = 0.0_r8
          alndr(i) = 0.0_r8
       ENDDO
       FORALL (I=1:nsol) alvdr(litx(I))=rsurfv(I)
       FORALL (I=1:nsol) alndr(litx(I))=rsurfn(I)
    ENDIF
    !
    ! CMU.......COSINE OF SOLAR ZENITH ANGLE AT DLGP
    !
    DO i=1,nsol
       scosz(i) = s0 * cmu(i)  ! DOWNWARD SOLAR FLUX AT TOP
    ENDDO
    !
    ! Transform scosz(nsol) to swinc(ncols) at all lgp
    !
    FORALL(I=1:nsol) swinc(litx(I))=scosz(I)
    !
    ! Calculate solar fluxes
    ! Calls cloudy to calculate:
    !   dsclr,sl,aclr,rvbl,rvdl,rnbl,rndl
    !   dscld,sc,acld,rvbc,rvdc,rnbc,rndc
    ! The values are packed at the begining of the arrays.
    ! Instead of occupying 1..ncols, they cover only the range 1..nsol
    !

    ! Set cloud amount as Maximum cloudiness
    css=MAX(ccu,css)

    IF (icld.EQ.1) THEN

       e0  (1:nsol,1:kmax+1) = 0.05_r8
       bitc(1:nsol,1:kmax+1) = (ta(1:nsol,1:kmax+1).LT.253.0_r8).AND.(ccu(1:nsol,1:kmax+1).EQ.0.0_r8)

       ! IF BITC=.TRUE. EO=0.025_r8
       WHERE (bitc(1:nsol,1:kmax+1)) e0(1:nsol,1:kmax+1)=0.025_r8

       ! the extra cloud fraction idea from ncar is not used with clirad
       ! because clirad properly acounts for combination between different
       ! layers of clouds
       !WHERE(css.gt.0.0_r8) e0=e0*dp*css
       WHERE(css(1:nsol,1:kmax+1).GT.0.0_r8) e0(1:nsol,1:kmax+1)=e0(1:nsol,1:kmax+1)*dp(1:nsol,1:kmax+1)
       ! Prepare tau, fice, rel e rei
       DO k=1,kmax
          DO i=1,nsol
             IF(litx(I).LE.ncols)THEN
                taud(litx(i),k)=e0(i,k+1)
             END IF
          END DO
       END DO


    ELSE IF(icld.EQ.4 .OR. icld == 5.OR. icld == 6 .OR. icld == 7) THEN

       ! Prepare tau, fice, rel e rei
       DO k=1,kmax
          DO i=1,nsol
             tauk  (i,k+1) = taud(litx(i),k)
             frcice(i,k+1) = fice(litx(i),k)
             radice(i,k+1) = rei (litx(i),k)
             radliq(i,k+1) = rel (litx(i),k)
          END DO
       END DO
       tauk  (1:nsol,1)=0.0_r8
       frcice(1:nsol,1)=frcice(1:nsol,2)
       radice(1:nsol,1)=radice(1:nsol,2)
       radliq(1:nsol,1)=radliq(1:nsol,2)

       ! the extra cloud fraction idea from ncar is not used with clirad
       !e0(1:nsol,1:kmax+1) = sqrt(css(1:nsol,1:kmax+1))*tauk(1:nsol,1:kmax+1)
       e0(1:nsol,1:kmax+1) = tauk(1:nsol,1:kmax+1)
    ELSE
       WRITE(nfprt,*) 'error! icld must be 1 or 4 with Clirad-sw-m '
       STOP
    ENDIF

    !
    ! Call subroutine cloudy to calculate all-sky fluxes
    !

    CALL cloudy( &
                                !tar         s0,    co2val*1.0E-6_r8,   nsol,   kmax+1,   &
         s0,    co2val,   nsol,   kmax+1,   &
         pu(1:nsol,1:kmax+2), ta(1:nsol,1:kmax+1), wa(1:nsol,1:kmax+1), oa(1:nsol,1:kmax+1), &
         cmu(1:nsol),  rsurfv(1:nsol), agv(1:nsol), rsurfn(1:nsol), agn(1:nsol),   &
         dscld(1:nsol), sc(1:nsol),  acld(1:nsol,1:kmax+1), rvbc(1:nsol), rvdc(1:nsol), rnbc(1:nsol), rndc(1:nsol),  &
         dsclr(1:nsol), sl(1:nsol),  aclr(1:nsol,1:kmax+1), rvbl(1:nsol), rvdl(1:nsol), rnbl(1:nsol), rndl(1:nsol),  &
         e0(1:nsol,1:kmax+1), css(1:nsol,1:kmax+1),  ps(1:nsol),   &
         dmask(1:nsol), frcice(1:nsol,1:kmax+1), radliq(1:nsol,1:kmax+1), radice(1:nsol,1:kmax+1),icld)
    !
    ! SET SOLAR FLUXES IN ALL GRID POINTS
    ! All values are nsol-packed and need to be unpacked
    ! This is done by copying values from positions (1:nsol) to
    ! positions litx(1:nsol).
    !
    FORALL(I=1:nsol)
       ! clear
       ssclr (litx(I))=sl   (I)
       dswclr(litx(I))=dsclr(I)
       radvbl(litx(I))=rvbl (I)
       radvdl(litx(I))=rvdl (I)
       radnbl(litx(I))=rnbl (I)
       radndl(litx(I))=rndl (I)

       ! cloudy
       ss    (litx(I))=sc   (I)
       dswtop(litx(I))=dscld(I)
       radvbc(litx(I))=rvbc (I)
       radvdc(litx(I))=rvdc (I)
       radnbc(litx(I))=rnbc (I)
       radndc(litx(I))=rndc (I)
    ENDFORALL

    DO k=1,kmax
       DO i=1,nsol
          aslclr(litx(i),k)=aclr(i,k+1)
          asl   (litx(i),k)=acld(i,k+1)
       END DO
    END DO

    !
    ! Calculation of solar heating rate in k/s
    !
    DO k=1,kmax
       DO i=1,ncols
          IF(aslclr(i,k).LT.1.0e-22_r8) aslclr(i,k) = 0.0_r8
          IF(asl   (i,k).LT.1.0e-22_r8) asl   (i,k) = 0.0_r8

          aslclr   (i,k) = aslclr(i,k) * 1.1574e-5_r8
          asl      (i,k) = asl   (i,k) * 1.1574e-5_r8
       ENDDO
    ENDDO

  END SUBROUTINE CliradTarasova_sw

  !
  ! Subroutine: CLOUDY
  !
  ! $Author: pkubota $
  ! Modifications: T.Tarasova 2005, 2013
  ! Modifications: H.Barbosa 2005
  !
  ! Description:
  !
  !NEW! continental aerosol model is included
  !NEW! the k-distributions of Tarasova and Fomin (2000)
  !NEW! 28 layers
  !
  !this  is  the source  program  for  computing  solar fluxes  due  to
  !absorption  by water  vapor, ozone,  co2, o2,  clouds,  and aerosols
  !anddue to scattering by clouds, aerosols, and gases.
  !
  !this is a vectorized code.   it computes fluxes simultaneously for m
  !soundings.
  !
  !the meaning, units and DIMENSION  of the input and output parameters
  !are given in the SUBROUTINE sorad.
  !
  ! Inputs:
  !setsw (global)         Clirad
  !
  !ncld       ncld
  !ncols
  !kmax
  !
  !puu(ncols*(kmax+2))....level pressures mb       pl
  !taa(ncols*(kmax+1))....layer temp in K       ta
  !waa(ncols*(kmax+1))....layer specific humidity g/g      wa
  !oaa(ncols*(kmax+1))....layer ozone concentration g/g    oa
  !tauc(ncols*(kmax+1))...cloud optical depth
  !css(ncols*(kmax+1))....cloud amount       fcld
  !cmu(ncols).............cosine solar zenith angle        cosz
  !rsurfv(ncols)..........Vis Beam Albedo       rsuvbm
  !agv(ncols).............Vis Diffuse Albedo       rsuvdf
  !rsurfn(ncols)..........Nir Beam Albedo       rsirbm
  !agn(ncols).............Nir Diffuse Albedo       rsirdf
  ! psc   =  surface pressure   (mb)
  ! Outputs:
  !  dscld(ncols)    ABSORPTION IN THE CLOUDY ATMOSPHERE AND AT THE GROUND
  !  sc(ncols)    ABSORPTION AT THE GROUND IN CLOUDY CASE
  !acld(ncols*(kmax+1)) HEATING RATE (CLOUDY) in K/sec
  !rvbc(ncols)    VISIBLE BEAM  FLUXES (CLOUDY)
  !rvdc(ncols)    VISIBLE DIFFUSE FLUXES (CLOUDY)
  !rnbc(ncols)    NEAR-IR BEAM  FLUXES (CLOUDY)
  !rndc(ncols)    NEAR-IR DIFFUSE FLUXES  (CLOUDY)
  !
  !
  !
  !
  SUBROUTINE cloudy( &
       s0       , & !REAL(KIND=r8), INTENT(IN) :: s0
       rco2     , & !REAL(KIND=r8), INTENT(IN) :: rco2
       m        , & !INTEGER      , INTENT(IN) :: m
       np       , & !INTEGER      , INTENT(IN) :: np
       pl       , & !REAL(KIND=r8), INTENT(IN) :: pl(m,np+1)
       ta       , & !REAL(KIND=r8), INTENT(IN) :: ta(m,np)  
       wa       , & !REAL(KIND=r8), INTENT(IN) :: wa(m,np)  
       oa       , & !REAL(KIND=r8), INTENT(IN) :: oa(m,np)  
       cosz     , & !REAL(KIND=r8), INTENT(IN) :: cosz    (m)     
       rsuvbm   , & !REAL(KIND=r8), INTENT(IN) :: rsuvbm  (m)
       rsuvdf   , & !REAL(KIND=r8), INTENT(IN) :: rsuvdf  (m)
       rsirbm   , & !REAL(KIND=r8), INTENT(IN) :: rsirbm  (m)
       rsirdf   , & !REAL(KIND=r8), INTENT(IN) :: rsirdf  (m)
       dscld1   , & !REAL(KIND=r8), INTENT(OUT) :: dscld1(m)
       sc1      , & !REAL(KIND=r8), INTENT(OUT) :: sc1   (m)
       acld1    , & !REAL(KIND=r8), INTENT(OUT) :: acld1 (m,np)  
       rvbc1    , & !REAL(KIND=r8), INTENT(OUT) :: rvbc1 (m)   
       rvdc1    , & !REAL(KIND=r8), INTENT(OUT) :: rvdc1 (m)   
       rnbc1    , & !REAL(KIND=r8), INTENT(OUT) :: rnbc1 (m)   
       rndc1    , & !REAL(KIND=r8), INTENT(OUT) :: rndc1 (m)   
       dsclr1   , & !REAL(KIND=r8), INTENT(OUT) :: dscld1(m)   
       sl1      , & !REAL(KIND=r8), INTENT(OUT) :: sl1   (m)    
       aclr1    , & !REAL(KIND=r8), INTENT(OUT) :: aclr1 (m,np) 
       rvbl1    , & !REAL(KIND=r8), INTENT(OUT) :: rvbc1 (m) 
       rvdl1    , & !REAL(KIND=r8), INTENT(OUT) :: rvdc1 (m) 
       rnbl1    , & !REAL(KIND=r8), INTENT(OUT) :: rnbc1 (m) 
       rndl1    , & !REAL(KIND=r8), INTENT(OUT) :: rndc1 (m) 
       tauc     , & !REAL(KIND=r8), INTENT(IN) :: tauc    (m,np)  
       csscgp   , & !REAL(KIND=r8), INTENT(IN) :: csscgp  (m,np)  
       psc      , & !REAL(KIND=r8), INTENT(IN) :: psc     (m)    
       dmask    , & !INTEGER      , INTENT(IN) :: dmask (m) !sib-mask in DLGP
       fice     , & !REAL(KIND=r8), INTENT(in) :: fice(m,np)
       rel      , & !REAL(KIND=r8), INTENT(in) :: rel(m,np)
       rei      , & !REAL(KIND=r8), INTENT(in) :: rei(m,np)
       icld       ) !INTEGER, INTENT(IN) :: icld      ! new cloud microphysics

    IMPLICIT NONE

    ! input variables
    INTEGER, INTENT(IN) :: m
    INTEGER, INTENT(IN) :: np
    INTEGER, INTENT(IN) :: dmask (m) !sib-mask in DLGP
    INTEGER, INTENT(IN) :: icld      ! new cloud microphysics

    REAL(KIND=r8), INTENT(IN) :: s0
    REAL(KIND=r8), INTENT(IN) :: rco2
    ! pl,ta,wa and oa are, respectively, the level pressure (mb), layer
    ! temperature (k), layer specific humidity (g/g), and layer ozone
    ! concentration (g/g)
    REAL(KIND=r8), INTENT(IN) :: pl      (m,np+1)
    REAL(KIND=r8), INTENT(IN) :: ta      (m,np)  
    REAL(KIND=r8), INTENT(IN) :: wa      (m,np)  
    REAL(KIND=r8), INTENT(IN) :: oa      (m,np)  
    REAL(KIND=r8), INTENT(IN) :: tauc    (m,np)  
    REAL(KIND=r8), INTENT(IN) :: csscgp  (m,np)  
    REAL(KIND=r8), INTENT(IN) :: cosz    (m)         
    REAL(KIND=r8), INTENT(IN) :: rsuvbm  (m)         
    REAL(KIND=r8), INTENT(IN) :: rsuvdf  (m)         
    REAL(KIND=r8), INTENT(IN) :: rsirbm  (m)         
    REAL(KIND=r8), INTENT(IN) :: rsirdf  (m)         
    REAL(KIND=r8), INTENT(IN) :: psc     (m)         

    REAL(KIND=r8), INTENT(in) :: fice    (m,np)
    REAL(KIND=r8), INTENT(in) :: rel     (m,np)
    REAL(KIND=r8), INTENT(in) :: rei     (m,np)
    ! output variables
    REAL(KIND=r8), INTENT(OUT) :: dscld1(m)   
    REAL(KIND=r8), INTENT(OUT) :: sc1   (m)   
    REAL(KIND=r8), INTENT(OUT) :: rvbc1 (m)   
    REAL(KIND=r8), INTENT(OUT) :: rvdc1 (m)   
    REAL(KIND=r8), INTENT(OUT) :: rnbc1 (m)   
    REAL(KIND=r8), INTENT(OUT) :: rndc1 (m)   
    REAL(KIND=r8), INTENT(OUT) :: acld1 (m,np)

    REAL(KIND=r8), INTENT(OUT) :: dsclr1(m)    
    REAL(KIND=r8), INTENT(OUT) :: sl1   (m)    
    REAL(KIND=r8), INTENT(OUT) :: rvbl1 (m)    
    REAL(KIND=r8), INTENT(OUT) :: rvdl1 (m)    
    REAL(KIND=r8), INTENT(OUT) :: rnbl1 (m)    
    REAL(KIND=r8), INTENT(OUT) :: rndl1 (m)    
    REAL(KIND=r8), INTENT(OUT) :: aclr1 (m,np) 

    ! Parameters

    ! specify aerosol properties of continental (c) aerosols
    ! New Clirad with parameterizations of Fomin and Correa, 2005 
    ! has 8 spectral intervals (Tarasova, July 2013)
    ! The code changes are marked by (tar) 

    !tar    REAL(KIND=r8), PARAMETER, DIMENSION(11) :: tau_c = (/ &
    !tar         2.432_r8,2.1_r8,2.1_r8,1.901_r8,1.818_r8,1.76_r8,1.562_r8, &
    !tar         1.0_r8,0.568_r8, 0.281_r8,0.129_r8 /)

    REAL(KIND=r8), PARAMETER, DIMENSION(8) :: tau_c = (/ &
         2.09880_r8,1.76676_r8,1.08667_r8,0.87224_r8,0.56770_r8, &
         0.25307_r8, 0.28098_r8,0.12890_r8 /)

    !tar     REAL(KIND=r8), PARAMETER, DIMENSION(11) :: ssa_c = (/ &
    !tar          0.653_r8,0.78_r8,0.78_r8,0.858_r8,0.886_r8,0.892_r8,0.903_r8, &
    !tar          0.891_r8,0.836_r8,0.765_r8,0.701_r8 /)

    REAL(KIND=r8), PARAMETER, DIMENSION(8) :: ssa_c = (/ &
         0.77936_r8,0.89032_r8,0.89711_r8,0.86887_r8,0.83504_r8, &
         0.75306_r8,0.76509_r8,0.69953_r8 /)

    !tar    REAL(KIND=r8), PARAMETER, DIMENSION(11) :: asym_c = (/ &
    !tar         0.726_r8,0.686_r8,0.686_r8,0.666_r8,0.658_r8,0.656_r8,0.65_r8, &
    !tar         0.637_r8,0.632_r8,0.66_r8,0.776_r8 /)

    REAL(KIND=r8), PARAMETER, DIMENSION(8) :: asym_c = (/ &
         0.68684_r8,0.65619_r8,0.63822_r8,0.63599_r8,0.63209_r8, &
         0.68143_r8,0.65978_r8,0.77775_r8 /)


    ! specify aerosol properties of maritime (m) aerosols

    !tar     REAL(KIND=r8), PARAMETER, DIMENSION(11) :: tau_m = (/ &
    !tar        1.33_r8,1.241_r8,1.241_r8,1.192_r8,1.173_r8,1.161_r8,1.117_r8, &
    !tar        1.00_r8,0.906_r8,0.799_r8,0.603_r8 /)

    REAL(KIND=r8), PARAMETER, DIMENSION(8) :: tau_m = (/ &
         1.23760_r8,1.16595_r8,1.01222_r8,0.97019_r8,0.90512_r8, &
         0.76353_r8,0.80001_r8,0.60126_r8 /)


    !tar     REAL(KIND=r8), PARAMETER, DIMENSION(11) :: ssa_m = (/ &
    !tar          0.84_r8,0.921_r8,0.921_r8,0.962_r8,0.977_r8,0.98_r8,0.987_r8, &
    !tar          0.989_r8,0.987_r8,0.986_r8,0.861_r8 /)

    REAL(KIND=r8), PARAMETER, DIMENSION(8) :: ssa_m = (/ &
         0.92032_r8,0.97951_r8,0.99000_r8,0.98782_r8,0.98620_r8, &
         0.96099_r8,0.98319_r8,0.86221_r8/)


    !tar    REAL(KIND=r8), PARAMETER, DIMENSION(11) :: asym_m = (/ &
    !tar         0.774_r8,0.757_r8,0.757_r8,0.746_r8,0.745_r8,0.744_r8,0.743_r8, &
    !tar         0.743_r8,0.756_r8,0.772_r8,0.802_r8 /)

    REAL(KIND=r8), PARAMETER, DIMENSION(8) :: asym_m = (/ &
         0.75748_r8,0.74395_r8,0.74600_r8,0.74975_r8,0.75541_r8, &
         0.77743_r8,0.77184_r8,0.80229_r8 /)


    ! local  variables
    !tar    REAL(KIND=r8), DIMENSION(m,np,11) :: taual,ssaal,asyal
    REAL(KIND=r8), DIMENSION(m,np,8)  :: taual,ssaal,asyal
    REAL(KIND=r8), DIMENSION(m,np,3)  :: taucld,reff
    REAL(KIND=r8), DIMENSION(m,np)    :: fcld,dzint,aotb_c,aotb_m
    REAL(KIND=r8), DIMENSION(m,np+1)  :: flx,flc,flx_d,flx_u,flc_d,flc_u
    REAL(KIND=r8), DIMENSION(m)       :: fdiruv,fdifuv,fdirpar,fdifpar,fdirir,fdifir

    REAL(KIND=r8), DIMENSION(m)       :: fdiruv_c,fdifuv_c,fdirpar_c,fdifpar_c,fdirir_c,fdifir_c

    !hmjb new indexes for high/mid/low clouds
    INTEGER :: ict(m),icb(m)

    REAL(KIND=r8) :: topa(m),hzmask(m,np),heat
    INTEGER :: i,k,ib

    ! Initialize local vectors and output variables
    taual=0.0_r8; ssaal=0.0_r8; asyal=0.0_r8
    taucld=0.0_r8; reff=0.0_r8
    fcld=0.0_r8; dzint=0.0_r8; aotb_c=0.0_r8; aotb_m=0.0_r8
    flx=0.0_r8; flc=0.0_r8; flx_d=0.0_r8; flx_u=0.0_r8; flc_d=0.0_r8; flc_u=0.0_r8
    fdiruv=0.0_r8; fdifuv=0.0_r8; fdirpar=0.0_r8; fdifpar=0.0_r8; fdirir=0.0_r8; fdifir=0.0_r8

    fdiruv_c=0.0_r8; fdifuv_c=0.0_r8; fdirpar_c=0.0_r8; fdifpar_c=0.0_r8; fdirir_c=0.0_r8; fdifir_c=0.0_r8
    topa=0.0_r8
    hzmask=0.0_r8
    heat=0.0_r8
    ! subroutine starts here
    dscld1=0.0_r8
    sc1=0.0_r8
    rvbc1=0.0_r8
    rvdc1=0.0_r8
    rnbc1=0.0_r8
    rndc1=0.0_r8
    acld1=0.0_r8
    ict=1
    icb=1
    dsclr1=0.0_r8
    sl1=0.0_r8
    rvbl1=0.0_r8
    rvdl1=0.0_r8
    rnbl1=0.0_r8
    rndl1=0.0_r8
    aclr1=0.0_r8

    ! specify level indices separating high clouds from middle clouds
    ! (ict), and middle clouds from low clouds (icb).  this levels
    ! correspond to 400mb and 700 mb roughly.

    ! CPTEC-GCM works in sigma levels, hence in all columns the same
    ! layer will correspond to 0.4 and 0.7.Therefore, search is
    ! done only in the 1st column
    DO k=1,np
       DO i=1,m
          IF (pl(i,k)/psc(i).LE.0.4_r8.AND.pl(i,k+1)/psc(i).GT.0.4_r8) ict(i)=k
          IF (pl(i,k)/psc(i).LE.0.7_r8.AND.pl(i,k+1)/psc(i).GT.0.7_r8) icb(i)=k
       END DO
    ENDDO

    ! specify cloud optical thickness (taucld), amount (fcld), effective
    ! particle size (reff).cloud ice (index 1), liquid (index 2), and
    ! rain (index 3) are allowed to co-exit in a layer.
    ! cwc is the cloud ice/water concentration. if cldwater=.true.,
    ! taucld is computed from cwc and reff.  if cldwater=.false.,
    ! taucld is an input parameter, and cwc is irrelevent
    !m,np,3
    IF (icld.EQ.1) THEN
       DO k=1,np
          DO i=1,m
             taucld(i,k,1)=0.0_r8
             taucld(i,k,2)=tauc(i,k)
             reff  (i,k,1) = 80.0_r8   ! ice particles
             reff  (i,k,2) = 5.25_r8   ! water particles
          END DO
       END DO
    ELSEIF (icld.EQ.4 .OR. icld.EQ.5 .OR. icld.EQ.6  .OR. icld.EQ.7) THEN
       DO k=1,np
          DO i=1,m
             taucld(i,k,1)=tauc(i,k)*fice(i,k)
             taucld(i,k,2)=tauc(i,k)*(1.0_r8-fice(i,k))
             reff  (i,k,1) = rei(i,k)   ! ice particles
             reff  (i,k,2) = rel(i,k)   ! water particles
          END DO
       END DO
    ELSE
       WRITE(nfprt,*) 'error! icld must be 1 or 4 with Clirad-sw-m '
       STOP
    ENDIF
    DO k=1,np
       DO i=1,m
          taucld(i,k,3)  = 0.0_r8 ! no droplets
          reff  (i,k,3)  = 0.0_r8 ! no droplets
          fcld  (i,k)    = csscgp(i,k)  ! cloud field
       END DO
    END DO

    ! calculation of background aerosol optical depth profile: aotb(m,np)

    ! calculation of layer depth in km
    DO i=1,m
       DO k=1,np
          dzint(i,k)=0.0660339_r8*(LOG10(pl(i,k+1))-LOG10(pl(i,k)))*ta(i,k)
       ENDDO
    ENDDO

    ! calculation of number of layers in 2 km depth (nta)
    !hmjb Now we save, for each (i,k), a number hzmask.
    !     This number is 1, if bottom of layer below 2km
    !     This number is 0, if bottom of layer above 2km
    !  I did this because it is faster to multiply by this
    !  matrix than to do a loop in (i) with two loops in
    !  k inside (1:2km and 2km:ground).

    hzmask=0.0_r8
    DO i=1,m
       k=np+1
       topa(i)=0.0_r8
       DO WHILE (topa(i).LT.2.0_r8)
          k=k-1
          topa(i)=topa(i)+dzint(i,k)
       ENDDO
       hzmask(i,k:np)=1.0_r8
    ENDDO

    ! background aerosol profile with optical depth
    ! extinction coefficient 0.1 or 0.5 km-1 in each layer

    !hmjb The total column aerosol (0.22 or 0.14) should be distributed
    !     over the first 2km. However, we see from the calculation above
    !     that we distribute the aersol from the first layer above 2km
    !     down to the ground. Therefore, we must consider that probably
    !     the height of this region will be more than 2km.
    ! I changed the loop above so that we keep track of the total
    !     height, in each column, of the levels where we will spread the
    !     aerosol. Now the distribution of the aerosol inside each layer.
    !     More than that, if we sum the total aerosol in the full column,
    !     it will add to the stipulated value.
    DO k=1,np
       DO i=1,m
          aotb_c(i,k)=asolc*dzint(i,k)*hzmask(i,k)/2.0_r8
          aotb_m(i,k)=asolm*dzint(i,k)*hzmask(i,k)/2.0_r8
          !need more testing
          !new   aotb_c(i,:)=asolc*dzint(i,:)*hzmask(i,:)/topa(i)
          !new   aotb_m(i,:)=asolm*dzint(i,:)*hzmask(i,:)/topa(i)
       END DO
    END DO

    ! specify aerosol optical thickness (taual), single-scattering
    ! albedo (ssaal), and asymmetry factor (asyal)
    ! nta is top level of aerosol layer over the ground

    DO k=1,np
       !tar       DO ib=1,11
       DO ib=1,8
          DO i=1,m
             IF (dmask(i).GT.0.AND.dmask(i).LE.12) THEN
                ! sibmask=1..12 is land with different vegetation types
                taual(i,k,ib) = tau_c(ib)*aotb_c(i,k)*hzmask(i,k)
                ssaal(i,k,ib) = ssa_c(ib)
                asyal(i,k,ib) = asym_c(ib)
             ELSE
                ! sibmask -1 or 0 means ice/water and 13 is permanent ice (greenland and antartic)
                taual(i,k,ib) = tau_m(ib)*aotb_m(i,k)*hzmask(i,k)
                ssaal(i,k,ib) = ssa_m(ib)
                asyal(i,k,ib) = asym_m(ib)
             END IF
          END DO
       END DO
    END DO

    ! compute solar fluxes

    !tar    CALL soradcld (m,np,pl,ta,wa,oa,rco2,  &
    CALL sorad (m,np,pl,ta,wa,oa,rco2,dzint,  &
         taucld,reff,fcld,ict,icb,  &
         taual,ssaal,asyal,  &
         cosz,rsuvbm,rsuvdf,rsirbm,rsirdf,  &
         flx,flc,fdiruv,fdifuv,fdirpar,fdifpar,fdirir,fdifir,  &
         fdiruv_c,fdifuv_c,fdirpar_c,fdifpar_c,fdirir_c,fdifir_c,  &
         flx_d,flx_u,flc_d,flc_u)    ! new

    ! convert the units of flx and flc from fraction to w/m^2
    ! transfer to the global model fluxes

    DO i=1,m
       dscld1(i)=flx(i,1)*s0*cosz(i)
       sc1   (i)=flx(i,np+1)*s0*cosz(i)
       rvbc1 (i)=(fdiruv(i)+fdirpar(i))*s0*cosz(i)
       rvdc1 (i)=(fdifuv(i)+fdifpar(i))*s0*cosz(i)
       rnbc1 (i)=fdirir(i)*s0*cosz(i)
       rndc1 (i)=fdifir(i)*s0*cosz(i)
       !
       dsclr1(i)=flc(i,1)*s0*cosz(i)
       sl1   (i)=flc(i,np+1)*s0*cosz(i)
       rvbl1 (i)=(fdiruv_c(i)+fdirpar_c(i))*s0*cosz(i)
       rvdl1 (i)=(fdifuv_c(i)+fdifpar_c(i))*s0*cosz(i)
       rnbl1 (i)=fdirir_c(i)*s0*cosz(i)
       rndl1 (i)=fdifir_c(i)*s0*cosz(i)
    ENDDO


    ! compute heating rates, c/day

    DO k=1,np
       DO i=1,m
          heat=8.4410_r8*s0*cosz(i)/(pl(i,k+1)-pl(i,k))
          aclr1(i,k)=(flc(i,k)-flc(i,k+1))*heat
          acld1(i,k)=(flx(i,k)-flx(i,k+1))*heat
       ENDDO
    ENDDO

  END SUBROUTINE cloudy


  SUBROUTINE sorad ( &
       m         , & !INTEGER      , INTENT(IN ) :: m
       np        , & !INTEGER      , INTENT(IN ) :: np
       pl        , & !REAL(KIND=r8), INTENT(IN ) :: pl     (m,np+1) 
       ta        , & !REAL(KIND=r8), INTENT(IN ) :: ta     (m,np)
       wa        , & !REAL(KIND=r8), INTENT(IN ) :: wa     (m,np)
       oa        , & !REAL(KIND=r8), INTENT(IN ) :: oa     (m,np)
       co2       , & !REAL(KIND=r8), INTENT(IN ) :: co2
       zdel      , & !REAL(KIND=r8), INTENT(IN ) :: zdel   (m,np)
       taucld    , & !REAL(KIND=r8), INTENT(IN ) :: taucld (m,np,3) 
       reff      , & !REAL(KIND=r8), INTENT(IN ) :: reff   (m,np,3) 
       fcld      , & !REAL(KIND=r8), INTENT(IN ) :: fcld   (m,np)
       ict       , & !INTEGER      , INTENT(IN ) :: ict(m)
       icb       , & !INTEGER      , INTENT(IN ) :: icb(m)
       taual     , & !REAL(KIND=r8), INTENT(IN ) :: taual  (m,np,8) 
       ssaal     , & !REAL(KIND=r8), INTENT(IN ) :: ssaal  (m,np,8) 
       asyal     , & !REAL(KIND=r8), INTENT(IN ) :: asyal  (m,np,8) 
       cosz      , & !REAL(KIND=r8), INTENT(IN ) :: cosz   (m)
       rsuvbm    , & !REAL(KIND=r8), INTENT(IN ) :: rsuvbm (m)
       rsuvdf    , & !REAL(KIND=r8), INTENT(IN ) :: rsuvdf (m)
       rsirbm    , & !REAL(KIND=r8), INTENT(IN ) :: rsirbm (m)
       rsirdf    , & !REAL(KIND=r8), INTENT(IN ) :: rsirdf (m)
       flx       , & !REAL(KIND=r8), INTENT(OUT) :: flx        (m,np+1)
       flc       , & !REAL(KIND=r8), INTENT(OUT) :: flc        (m,np+1)
       fdiruv    , & !REAL(KIND=r8), INTENT(OUT) :: fdiruv    (m)   
       fdifuv    , & !REAL(KIND=r8), INTENT(OUT) :: fdifuv    (m)   
       fdirpar   , & !REAL(KIND=r8), INTENT(OUT) :: fdirpar   (m)   
       fdifpar   , & !REAL(KIND=r8), INTENT(OUT) :: fdifpar   (m)   
       fdirir    , & !REAL(KIND=r8), INTENT(OUT) :: fdirir    (m)   
       fdifir    , & !REAL(KIND=r8), INTENT(OUT) :: fdifir    (m)   
       fdiruv_c  , & !REAL(KIND=r8), INTENT(OUT) :: fdiruv_c  (m)   
       fdifuv_c  , & !REAL(KIND=r8), INTENT(OUT) :: fdifuv_c  (m)   
       fdirpar_c , & !REAL(KIND=r8), INTENT(OUT) :: fdirpar_c (m)   
       fdifpar_c , & !REAL(KIND=r8), INTENT(OUT) :: fdifpar_c (m)   
       fdirir_c  , & !REAL(KIND=r8), INTENT(OUT) :: fdirir_c  (m)   
       fdifir_c  , & !REAL(KIND=r8), INTENT(OUT) :: fdifir_c  (m)   
       flx_d     , & !REAL(KIND=r8), INTENT(OUT) :: flx_d     (m,np+1) 
       flx_u     , & !REAL(KIND=r8), INTENT(OUT) :: flx_u     (m,np+1) 
       flc_d     , & !REAL(KIND=r8), INTENT(OUT) :: flc_d     (m,np+1) 
       flc_u       ) !REAL(KIND=r8), INTENT(OUT) :: flc_u     (m,np+1) 

    !-----------------------------------------------------------------------
    !  subroutines sorad, soluv, solir, cldflx, cldscale, deledd, kuv, kir
    !   Rewritten by Tarasova for Module Clirad with parameterizations of Fomin and Correa, 2005 
    !   and 64-bits Real Numbers
    !    July 2013
    !-----------------------------------------------------------------------

    IMPLICIT NONE 
    !
    !tar
    !INTEGER, PARAMETER :: r8 = SELECTED_REAL_KIND(15) ! Kind for 64-bits Real Numbers
    !tar
    !
    !---- INPUT VARIABLES --------------------------------------------------
    INTEGER      , INTENT(IN ) :: m
    INTEGER      , INTENT(IN ) :: np
    !
    INTEGER      , INTENT(IN ) :: ict(m)
    INTEGER      , INTENT(IN ) :: icb(m)
    REAL(KIND=r8), INTENT(IN ) :: taual  (m,np,8) 
    REAL(KIND=r8), INTENT(IN ) :: ssaal  (m,np,8) 
    REAL(KIND=r8), INTENT(IN ) :: asyal  (m,np,8) 
    REAL(KIND=r8), INTENT(IN ) :: taucld (m,np,3) 
    REAL(KIND=r8), INTENT(IN ) :: reff   (m,np,3) 
    REAL(KIND=r8), INTENT(IN ) :: pl     (m,np+1) 
    REAL(KIND=r8), INTENT(IN ) :: ta     (m,np)
    REAL(KIND=r8), INTENT(IN ) :: wa     (m,np)
    REAL(KIND=r8), INTENT(IN ) :: oa     (m,np)
    REAL(KIND=r8), INTENT(IN ) :: fcld   (m,np)
    REAL(KIND=r8), INTENT(IN ) :: zdel   (m,np)
    REAL(KIND=r8), INTENT(IN ) :: cosz   (m)
    REAL(KIND=r8), INTENT(IN ) :: rsuvbm (m)
    REAL(KIND=r8), INTENT(IN ) :: rsuvdf (m)
    REAL(KIND=r8), INTENT(IN ) :: rsirbm (m)
    REAL(KIND=r8), INTENT(IN ) :: rsirdf (m)
    REAL(KIND=r8), INTENT(IN ) :: co2
    !   
    !---- OUTPUT VARIABLES -------------------------------------------------
    !
    REAL(KIND=r8), INTENT(OUT) :: flx       (m,np+1) 
    REAL(KIND=r8), INTENT(OUT) :: flc       (m,np+1) 
    REAL(KIND=r8), INTENT(OUT) :: flx_d     (m,np+1) 
    REAL(KIND=r8), INTENT(OUT) :: flx_u     (m,np+1) 
    REAL(KIND=r8), INTENT(OUT) :: flc_d     (m,np+1) 
    REAL(KIND=r8), INTENT(OUT) :: flc_u     (m,np+1) 
    REAL(KIND=r8), INTENT(OUT) :: fdiruv    (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdifuv    (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdirpar   (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdifpar   (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdirir    (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdifir    (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdiruv_c  (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdifuv_c  (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdirpar_c (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdifpar_c (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdirir_c  (m)   
    REAL(KIND=r8), INTENT(OUT) :: fdifir_c  (m)   

    !---- LOCAL  VARIABLES -------------------------------------------------
    !
    INTEGER :: k
    INTEGER :: i

    !
    REAL(KIND=r8), DIMENSION(m) :: snt
    REAL(KIND=r8), DIMENSION(m,np) :: dp, swa, soa, so2, sco2, wh, oh, o2h, co2h
    !   


    !---- INITIALIZE LOCAL VECTORS AND OUTPUT VARIABLES ---------------------
    !  
    flx       = 0.0_r8 
    flc       = 0.0_r8 
    flx_d     = 0.0_r8 
    flx_u     = 0.0_r8 
    flc_d     = 0.0_r8 
    flc_u     = 0.0_r8 
    fdiruv    = 0.0_r8 
    fdifuv    = 0.0_r8 
    fdirpar   = 0.0_r8 
    fdifpar   = 0.0_r8 
    fdirir    = 0.0_r8 
    fdifir    = 0.0_r8 
    fdiruv_c  = 0.0_r8 
    fdifuv_c  = 0.0_r8 
    fdirpar_c = 0.0_r8 
    fdifpar_c = 0.0_r8 
    fdirir_c  = 0.0_r8 
    fdifir_c  = 0.0_r8 

    snt  = 0.0_r8 
    dp   = 0.0_r8 
    swa  = 0.0_r8
    soa  = 0.0_r8
    so2  = 0.0_r8
    sco2 = 0.0_r8
    wh   = 0.0_r8
    oh   = 0.0_r8
    o2h  = 0.0_r8
    co2h = 0.0_r8

    !---- SUBROUTINE STARTS HERE -------------------------------------------      
    DO i=1,m
       snt(i)=1.0_r8/cosz(i) !snt is the secant of the solar zenith angle
    END DO

    DO k=1,np
       DO i=1,m

          !-----compute layer thickness. indices for the surface level and
          !     surface layer are np+1 and np, respectively.

          dp(i,k)=pl(i,k+1)-pl(i,k)

          !
       END DO
    END DO
    !  
    !----------wa, oa are in g/g, co2 is in ppv, o2 is 23.14%
    !    Transformation of all gaseos concentrations into molec/cm^2 km
    !             swa,    soa,    sco2,    so2   (molec/cm^2 km)
    !  divided by e+21,   e+17,   e+19,    e+22

    DO k=1,np
       DO i=1,m
          !
          swa(i,k)=wa(i,k)*3.346_r8*348.37_r8*0.5_r8* &
               (pl(i,k)+pl(i,k+1))/ta(i,k)
          !      
          soa(i,k)=oa(i,k)*1.255e+4_r8*348.37_r8*0.5_r8* &
               (pl(i,k)+pl(i,k+1))/ta(i,k)
          so2(i,k)=0.007625e+3_r8*(pl(i,k)+pl(i,k+1))/ta(i,k)
          sco2(i,k)=0.0364_r8*co2*(pl(i,k)+pl(i,k+1))/ta(i,k)
          !
       END DO
    END DO

    !
    ! 
    !
    !----Calculation of wh, oh, co2h, o2h - gaseous amount in molec/cm^2
    !------------------at the solar beam    
    ! 
    DO i=1,m
       wh(i,1)=swa(i,1)*zdel(i,1)*snt(i)
       oh(i,1)=soa(i,1)*zdel(i,1)*snt(i)
       o2h(i,1)=so2(i,1)*zdel(i,1)*snt(i)
       co2h(i,1)=sco2(i,1)*zdel(i,1)*snt(i)
    END DO
    ! 
    DO k=1,np-1
       DO i=1,m
          wh(i,k+1)=wh(i,k)+swa(i,k+1)*zdel(i,k+1)*snt(i)
          oh(i,k+1)=oh(i,k)+soa(i,k+1)*zdel(i,k+1)*snt(i)
          o2h(i,k+1)= o2h(i,k)+so2(i,k+1)*zdel(i,k+1)*snt(i)
          co2h(i,k+1)= co2h(i,k)+sco2(i,k+1)*zdel(i,k+1)*snt(i)
       END DO
    END DO
    !            
    !-----initialize fluxes for all-sky (flx), clear-sky (flc), and
    !     flux reduction (df)

    DO k=1,np+1
       DO i=1,m
          flx(i,k)=0.0_r8
          flx_d(i,k)=0.0_r8    ! new
          flx_u(i,k)=0.0_r8    ! new
          flc(i,k)=0.0_r8
          flc_d(i,k)=0.0_r8    ! new
          flc_u(i,k)=0.0_r8    ! new
       END DO
    END DO
    !
    !
    CALL soluv (m,np,swa,wh,soa,oh,pl,ta,  &
         so2,o2h,dp,zdel, &
         taucld,reff,ict,icb,fcld,cosz,  &
         taual,ssaal,asyal,rsuvbm,rsuvdf,  &
         flx,flc,fdiruv,fdifuv,fdirpar,fdifpar,  &
         fdiruv_c,fdifuv_c,fdirpar_c,fdifpar_c,  &
         flx_d,flx_u,flc_d,flc_u)     
    !
    !
    !       
    CALL solir (m,np,swa,wh,soa,oh,so2,o2h,sco2,co2h,  &
         dp,zdel,pl,ta,  &
         taucld,reff,ict,icb,fcld,cosz,  &
         taual,ssaal,asyal,rsirbm,rsirdf,  &
         flx,flc,fdirir,fdifir,fdirir_c,fdifir_c,  &
         flx_d,flx_u,flc_d,flc_u)      
    !
    !                               
    !  
  END SUBROUTINE sorad
  !
  !
  !
  SUBROUTINE  soluv ( &
       m         , & ! INTEGER      , INTENT(IN) :: m
       np        , & ! INTEGER      , INTENT(IN) :: np
       swa       , & ! REAL(KIND=r8), INTENT(IN) :: swa       (m,np)  
       wh        , & ! REAL(KIND=r8), INTENT(IN) :: wh       (m,np)  
       soa       , & ! REAL(KIND=r8), INTENT(IN) :: soa       (m,np)  
       oh        , & ! REAL(KIND=r8), INTENT(IN) :: oh       (m,np)  
       pl        , & ! REAL(KIND=r8), INTENT(IN) :: pl      (m,np+1)
       ta        , & ! REAL(KIND=r8), INTENT(IN) :: ta      (m,np)  
       so2       , & ! REAL(KIND=r8), INTENT(IN) :: so2      (m,np)  
       o2h       , & ! REAL(KIND=r8), INTENT(IN) :: o2h      (m,np)  
       dp        , & ! REAL(KIND=r8), INTENT(IN) :: dp      (m,np)  
       zdel      , & ! REAL(KIND=r8), INTENT(IN) :: zdel    (m,np)  
       taucld    , & ! REAL(KIND=r8), INTENT(IN) :: taucld  (m,np,3)
       reff      , & ! REAL(KIND=r8), INTENT(IN) :: reff    (m,np,3)
       ict       , & ! INTEGER      , INTENT(IN) :: ict(m)
       icb       , & ! INTEGER      , INTENT(IN) :: icb(m)
       fcld      , & ! REAL(KIND=r8), INTENT(IN) :: fcld    (m,np)  
       cosz      , & ! REAL(KIND=r8), INTENT(IN) :: cosz    (m)
       taual     , & ! REAL(KIND=r8), INTENT(IN) :: taual   (m,np,8)
       ssaal     , & ! REAL(KIND=r8), INTENT(IN) :: ssaal   (m,np,8)
       asyal     , & ! REAL(KIND=r8), INTENT(IN) :: asyal   (m,np,8)
       rsuvbm    , & ! REAL(KIND=r8), INTENT(IN) :: rsuvbm  (m)
       rsuvdf    , & ! REAL(KIND=r8), INTENT(IN) :: rsuvdf  (m)
       flx       , & ! REAL(KIND=r8), INTENT(INOUT) :: flx      (m,np+1)
       flc       , & ! REAL(KIND=r8), INTENT(INOUT) :: flc      (m,np+1)
       fdiruv    , & ! REAL(KIND=r8), INTENT(OUT  ) :: fdiruv   (m)     
       fdifuv    , & ! REAL(KIND=r8), INTENT(OUT  ) :: fdifuv   (m)     
       fdirpar   , & ! REAL(KIND=r8), INTENT(OUT  ) :: fdirpar  (m)     
       fdifpar   , & ! REAL(KIND=r8), INTENT(OUT  ) :: fdifpar  (m)     
       fdiruv_c  , & ! REAL(KIND=r8), INTENT(OUT  ) :: fdiruv_c (m)     
       fdifuv_c  , & ! REAL(KIND=r8), INTENT(OUT  ) :: fdifuv_c (m)     
       fdirpar_c , & ! REAL(KIND=r8), INTENT(OUT  ) :: fdirpar_c(m)     
       fdifpar_c , & ! REAL(KIND=r8), INTENT(OUT  ) :: fdifpar_c(m)     
       flx_d     , & ! REAL(KIND=r8), INTENT(INOUT) :: flx_d    (m,np+1)
       flx_u     , & ! REAL(KIND=r8), INTENT(INOUT) :: flx_u    (m,np+1)
       flc_d     , & ! REAL(KIND=r8), INTENT(INOUT) :: flc_d    (m,np+1)
       flc_u       ) ! REAL(KIND=r8), INTENT(INOUT) :: flc_u    (m,np+1)

    !-----------------------------------------------------------------------
    IMPLICIT NONE
    INTEGER I
    !tar
    !INTEGER, PARAMETER :: r8 = SELECTED_REAL_KIND(15) ! Kind for 64-bits Real Numbers
    !tar
    !---- INPUT VARIABLES --------------------------------------------------
    INTEGER      , INTENT(IN) :: m
    INTEGER      , INTENT(IN) :: np
    !
    INTEGER      , INTENT(IN) :: ict(m)
    INTEGER      , INTENT(IN) :: icb(m)
    REAL(KIND=r8), INTENT(IN) :: taual   (m,np,8)
    REAL(KIND=r8), INTENT(IN) :: ssaal   (m,np,8)
    REAL(KIND=r8), INTENT(IN) :: asyal   (m,np,8)
    REAL(KIND=r8), INTENT(IN) :: taucld  (m,np,3)
    REAL(KIND=r8), INTENT(IN) :: reff    (m,np,3)
    REAL(KIND=r8), INTENT(IN) :: fcld    (m,np)  
    REAL(KIND=r8), INTENT(IN) :: dp      (m,np)  
    REAL(KIND=r8), INTENT(IN) :: zdel    (m,np)  
    REAL(KIND=r8), INTENT(IN) :: ta      (m,np)  
    REAL(KIND=r8), INTENT(IN) :: swa     (m,np)  
    REAL(KIND=r8), INTENT(IN) :: wh      (m,np)  
    REAL(KIND=r8), INTENT(IN) :: soa     (m,np)  
    REAL(KIND=r8), INTENT(IN) :: oh      (m,np)  
    REAL(KIND=r8), INTENT(IN) :: so2     (m,np)  
    REAL(KIND=r8), INTENT(IN) :: o2h     (m,np)  
    REAL(KIND=r8), INTENT(IN) ::  pl     (m,np+1)

    REAL(KIND=r8), INTENT(IN) :: rsuvbm  (m)
    REAL(KIND=r8), INTENT(IN) :: rsuvdf  (m)
    REAL(KIND=r8), INTENT(IN) :: cosz    (m)
    !

    !---- OUTPUT VARIABLES -------------------------------------------------
    REAL(KIND=r8), INTENT(INOUT) :: flx      (m,np+1)
    REAL(KIND=r8), INTENT(INOUT) :: flc      (m,np+1)
    REAL(KIND=r8), INTENT(INOUT) :: flx_d    (m,np+1)
    REAL(KIND=r8), INTENT(INOUT) :: flx_u    (m,np+1)
    REAL(KIND=r8), INTENT(INOUT) :: flc_d    (m,np+1)
    REAL(KIND=r8), INTENT(INOUT) :: flc_u    (m,np+1)
    REAL(KIND=r8), INTENT(OUT  ) :: fdiruv   (m)     
    REAL(KIND=r8), INTENT(OUT  ) :: fdifuv   (m)     
    REAL(KIND=r8), INTENT(OUT  ) :: fdirpar  (m)     
    REAL(KIND=r8), INTENT(OUT  ) :: fdifpar  (m)     
    REAL(KIND=r8), INTENT(OUT  ) :: fdiruv_c (m)     
    REAL(KIND=r8), INTENT(OUT  ) :: fdifuv_c (m)     
    REAL(KIND=r8), INTENT(OUT  ) :: fdirpar_c(m)     
    REAL(KIND=r8), INTENT(OUT  ) :: fdifpar_c(m)     

    !---- PARAMETERS -------------------------------------------------------
    INTEGER, PARAMETER :: nband=3

    ! hk is the fractional extra-terrestrial solar flux in each
    ! of the 3 bands. 
    REAL(KIND=r8), PARAMETER, DIMENSION(nband) :: hk = (/ &
         .01239_r8,.009713_r8,.44297_r8/)
    !
    ! ry is the extinction coefficient for rayleigh scattering. unit: /mb. 
    REAL(KIND=r8), PARAMETER, DIMENSION(nband) :: ry = (/ &
         63.59_r8,34.48_r8,6.406_r8/)

    ! coefficients for computing the extinction coefficients of ice, 
    ! water, and rain particles, independent of spectral band. (table 4)
    REAL(KIND=r8), PARAMETER, DIMENSION(2) :: aib = (/  3.33e-4_r8, 2.52_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(2) :: awb = (/ -6.59e-3_r8, 1.65_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(2) :: arb = (/  3.07e-3_r8, 0.00_r8 /)

    ! coefficients for computing the asymmetry factor of ice, water,
    ! and rain particles, independent of spectral band. (table 6)

    REAL(KIND=r8), PARAMETER, DIMENSION(3) :: aig = (/ .74625_r8, .0010541_r8, -.00000264_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(3) :: awg = (/ .82562_r8, .0052900_r8, -.00014866_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(3) :: arg = (/ .883_r8,   0.0_r8,      0.0_r8        /)


    !---- LOCAL  VARIABLES -------------------------------------------------
    INTEGER :: k,ib
    INTEGER :: ih1,ih2,im1,im2,is1,is2
    !  REAL    :: taurs,tauoz,tauwv
    REAL(KIND=r8)    :: taux,reff1,reff2,g1,g2,g3

    REAL(KIND=r8), DIMENSION(m) :: dsm, fsdir, fsdif, fsdir_c, fsdif_c, asyclt
    REAL(KIND=r8), DIMENSION(m,3) :: cc
    REAL(KIND=r8), DIMENSION(m,np) :: tauclb,tauclf,asycl,tautof,ssatof,asytof
    REAL(KIND=r8), DIMENSION(m,np) :: tausto,ssatau,asysto,tautob,ssatob,asytob
    REAL(KIND=r8), DIMENSION(m,np) :: dum,rrt,ttt,tdt,rst,tst
    REAL(KIND=r8), DIMENSION(m,np+1) :: fall,fclr,fall_d,fall_u,fclr_d,fclr_u
    REAL(KIND=r8), DIMENSION(m,np+1,2) :: rr,tt,td,rs,ts
    REAL(KIND=r8), DIMENSION(m,np,3) :: acuv 
    REAL(KIND=r8), DIMENSION(m,np) :: pa, taugas, taurs

    !---- INITIALIZE LOCAL VECTORS -----------------------------------------
    !
    fsdir= 0.0_r8 
    fsdif= 0.0_r8 
    fsdir_c= 0.0_r8 
    fsdif_c= 0.0_r8 
    pa= 0.0_r8 
    taurs= 0.0_r8 
    asyclt = 0.0_r8
    tauclb = 0.0_r8
    tauclf = 0.0_r8
    asycl = 0.0_r8
    tautof = 0.0_r8
    ssatof = 0.0_r8
    asytof = 0.0_r8
    tausto = 0.0_r8
    ssatau = 0.0_r8
    asysto = 0.0_r8
    tautob = 0.0_r8
    ssatob = 0.0_r8
    asytob = 0.0_r8
    dum = 0.0_r8
    rrt = 0.0_r8
    ttt = 0.0_r8
    tdt = 0.0_r8
    rst = 0.0_r8
    tst = 0.0_r8
    fall = 0.0_r8
    fclr = 0.0_r8
    fall_d = 0.0_r8
    fall_u = 0.0_r8
    fclr_d = 0.0_r8
    fclr_u = 0.0_r8
    rr = 0.0_r8
    rs = 0.0_r8
    acuv = 0.0_r8
    taugas = 0.0_r8

    !---- SUBROUTINE STARTS HERE -------------------------------------------

    !-----initialize fdiruv, fdifuv, surface reflectances and transmittances.
    !     the reflectance and transmittance of the clear and cloudy portions
    !     of a layer are denoted by 1 and 2, respectively.
    !     cc is the maximum cloud cover in each of the high, middle, and low
    !     cloud groups.
    !    1/dsm=1/cos(53) = 1.66

    dsm=0.602_r8
    fdiruv=0.0_r8
    fdifuv=0.0_r8
    fdirpar=0.0_r8
    fdifpar=0.0_r8
    fdiruv_c=0.0_r8
    fdifuv_c=0.0_r8
    fdirpar_c=0.0_r8
    fdifpar_c=0.0_r8
    rr(1:m,np+1,1)=rsuvbm(1:m)
    rr(1:m,np+1,2)=rsuvbm(1:m)
    rs(1:m,np+1,1)=rsuvdf(1:m)
    rs(1:m,np+1,2)=rsuvdf(1:m)
    td=0.0_r8
    tt=0.0_r8
    ts=0.0_r8
    cc=0.0_r8

    !-----Compute absorption coefficients of H2O,O3,O2
    !
    CALL kuv (m,np,nband,soa,so2,swa,oh,o2h, &
         wh,acuv)
    !  

    !-----scale cloud optical thickness in each layer from taucld (with
    !     cloud amount fcld) to tauclb and tauclf (with cloud amount cc).
    !     tauclb is the scaled optical thickness for beam radiation and
    !     tauclf is for diffuse radiation (see section 7).

    CALL cldscale(m,np,cosz,fcld,taucld,ict,icb,cc,tauclb,tauclf)

    !-----cloud asymmetry factor for a mixture of liquid and ice particles.
    !     unit of reff is micrometers. eqs. (4.8) and (6.4)

    DO k=1,np
       DO i=1,m

          asyclt(i)=1.0_r8
          taux=taucld(i,k,1)+taucld(i,k,2)+taucld(i,k,3)

          IF (taux.GT.0.02 .AND. fcld(i,k).GT.0.01) THEN

             reff1=MIN(reff(i,k,1),130.0_r8)
             reff2=MIN(reff(i,k,2),20.0_r8)

             g1=(aig(1)+(aig(2)+aig(3)*reff1)*reff1)*taucld(i,k,1)
             g2=(awg(1)+(awg(2)+awg(3)*reff2)*reff2)*taucld(i,k,2)
             g3= arg(1)*taucld(i,k,3)
             asyclt(i)=(g1+g2+g3)/taux

          ENDIF
       ENDDO

       DO i=1,m
          asycl(i,k)=asyclt(i)
       ENDDO

    ENDDO

    !      
    !-----pressure at middle levels in atm.    2026.5 = 1013.25*2.0   
    ! 
    DO k=1,np
       DO i=1,m   
          pa(i,k)=(pl(i,k)+pl(i,k+1))/2026.5_r8
       ENDDO
    ENDDO

    !-----integration over spectral bands
    !
    DO ib=1,nband
       DO k=1,np
          DO i=1,m

             !-----compute new rayleigh optical thicknesses

             taurs(i,k)=ry(ib)*pa(i,k)/ta(i,k)*zdel(i,k)

             !-----compute gaseous optical thickness in each interval

             taugas(i,k)=acuv(i,k,ib)*zdel(i,k)

             !-----compute clear-sky optical thickness, single scattering albedo,
             !     and asymmetry factor (eqs. 6.2-6.4)
             !               tausto(i,k)=taurs+tauoz+tauwv+taual(i,k,ib)+1.0e-8
             tausto(i,k)=taurs(i,k)+taugas(i,k)+taual(i,k,ib)           
             ssatau(i,k)=ssaal(i,k,ib)*taual(i,k,ib)+taurs(i,k)
             asysto(i,k)=asyal(i,k,ib)*ssaal(i,k,ib)*taual(i,k,ib)

             !-----compute reflectance and transmittance of the clear portion of a layer
             tautob(i,k)=tausto(i,k)
             ssatob(i,k)=ssatau(i,k)/tautob(i,k)+1.0e-8_r8
             ssatob(i,k)=MIN(ssatob(i,k),0.999999_r8)
             asytob(i,k)=asysto(i,k)/(ssatob(i,k)*tautob(i,k))
          ENDDO
       ENDDO

       !-----for direct incident radiation
       CALL deledd (m,np,tautob,ssatob,asytob,cosz,rrt,ttt,tdt)


       !-----diffuse incident radiation is approximated by beam radiation with
       !     an incident angle of 53 degrees, eqs. (6.5) and (6.6)
       CALL deledd (m,np,tautob,ssatob,asytob,dsm,rst,tst,dum)


       DO k=1,np
          DO i=1,m
             rr(i,k,1)=rrt(i,k)
             tt(i,k,1)=ttt(i,k)
             td(i,k,1)=tdt(i,k)
             rs(i,k,1)=rst(i,k)
             ts(i,k,1)=tst(i,k)
          ENDDO
       ENDDO

       !-----compute reflectance and transmittance of the cloudy portion of a layer
       DO k=1,np
          DO i=1,m

             !-----for direct incident radiation
             !     the effective layer optical properties. eqs. (6.2)-(6.4)
             tautob(i,k)=tausto(i,k)+tauclb(i,k)
             ssatob(i,k)=(ssatau(i,k)+tauclb(i,k))/tautob(i,k)+1.0e-8_r8
             ssatob(i,k)=MIN(ssatob(i,k),0.999999_r8)
             asytob(i,k)=(asysto(i,k)+asycl(i,k)*tauclb(i,k)) &
                  /(ssatob(i,k)*tautob(i,k))

             !-----for diffuse incident radiation
             tautof(i,k)=tausto(i,k)+tauclf(i,k)
             ssatof(i,k)=(ssatau(i,k)+tauclf(i,k))/tautof(i,k)+1.0e-8_r8
             ssatof(i,k)=MIN(ssatof(i,k),0.999999_r8)
             asytof(i,k)=(asysto(i,k)+asycl(i,k)*tauclf(i,k))  &
                  /(ssatof(i,k)*tautof(i,k))
          ENDDO
       ENDDO

       !-----for direct incident radiation
       !     note that the cloud optical thickness is scaled differently for direct
       !     and diffuse insolation, eqs. (7.3) and (7.4).

       CALL deledd (m,np,tautob,ssatob,asytob,cosz,rrt,ttt,tdt)

       !-----diffuse incident radiation is approximated by beam radiation with
       !     an incident angle of 53 degrees, eqs. (6.5) and (6.6)

       CALL deledd (m,np,tautof,ssatof,asytof,dsm,rst,tst,dum)
       !
       !       
       DO k=1,np
          DO i=1,m
             rr(i,k,2)=rrt(i,k)
             tt(i,k,2)=ttt(i,k)
             td(i,k,2)=tdt(i,k)
             rs(i,k,2)=rst(i,k)
             ts(i,k,2)=tst(i,k)
          ENDDO
       ENDDO

       !-----flux calculations

       !     initialize clear-sky flux (fclr), all-sky flux (fall), 
       !     and surface downward fluxes (fsdir and fsdif)

       !hmjb they are initialized inside cldfx()
       DO k=1,np+1
          DO i=1,m
             fclr(i,k)=0.0_r8
             fall(i,k)=0.0_r8
             fclr_d(i,k)=0.0_r8  ! new           
             fclr_u(i,k)=0.0_r8  ! new           
             fall_d(i,k)=0.0_r8  ! new
             fall_u(i,k)=0.0_r8  ! new                       
          ENDDO
       ENDDO

       DO i=1,m
          fsdir(i)=0.0_r8
          fsdif(i)=0.0_r8
          !
          fsdir_c(i)=0.0_r8
          fsdif_c(i)=0.0_r8        
       ENDDO

       !-----for clear- and all-sky fluxes
       !     the all-sky flux, fall is the summation inside the brackets
       !     of eq. (7.11)
       !
       ih1=1
       ih2=2
       im1=1
       im2=2
       is1=1
       is2=2


       CALL cldflx (m,np,ict,icb,ih1,ih2,im1,im2,is1,is2, &
            cc,rr,tt,td,rs,ts,fclr,fall,fsdir,fsdif,fsdir_c,fsdif_c, &
            fclr_d,fclr_u,fall_d,fall_u)   ! new


       !-----flux integration, eq. (6.1)

       DO k=1,np+1
          DO i=1,m
             flx(i,k)=flx(i,k)+fall(i,k)*hk(ib)
             flx_d(i,k)=flx_d(i,k)+fall_d(i,k)*hk(ib) !new         
             flx_u(i,k)=flx_u(i,k)+fall_u(i,k)*hk(ib) !new           
          ENDDO

          DO i=1,m
             flc(i,k)=flc(i,k)+fclr(i,k)*hk(ib)
             flc_d(i,k)=flc_d(i,k)+fclr_d(i,k)*hk(ib) !new           
             flc_u(i,k)=flc_u(i,k)+fclr_u(i,k)*hk(ib) !new           
          ENDDO
       ENDDO

       !   

       !-----compute direct and diffuse downward surface fluxes in the uv
       !     and par regions

       IF(ib.LE.2) THEN
          DO i=1,m
             fdiruv(i)=fdiruv(i)+fsdir(i)*hk(ib)
             fdifuv(i)=fdifuv(i)+fsdif(i)*hk(ib)
             !
             fdiruv_c(i) = fdiruv_c(i)+fsdir_c(i)*hk(ib)
             fdifuv_c(i) = fdifuv_c(i)+fsdif_c(i)*hk(ib)
          ENDDO
       ELSE
          DO i=1,m
             fdirpar(i)=fsdir(i)*hk(ib)
             fdifpar(i)=fsdif(i)*hk(ib)
             !
             fdirpar_c(i) = fsdir_c(i)*hk(ib)
             fdifpar_c(i) = fsdif_c(i)*hk(ib)
          ENDDO
       ENDIF

    ENDDO ! integration over spectral bands

    !  
  END SUBROUTINE soluv
  !
  !
  !
  SUBROUTINE  solir (m        , & !INTEGER      , INTENT(IN) :: m
       np       , & !INTEGER      , INTENT(IN) :: np
       swa      , & !REAL(KIND=r8), INTENT(IN) :: swa    (m,np)   
       wh       , & !REAL(KIND=r8), INTENT(IN) :: wh     (m,np)   
       soa      , & !REAL(KIND=r8), INTENT(IN) :: soa    (m,np)   
       oh       , & !REAL(KIND=r8), INTENT(IN) :: oh     (m,np)   
       so2      , & !REAL(KIND=r8), INTENT(IN) :: so2    (m,np)   
       o2h      , & !REAL(KIND=r8), INTENT(IN) :: o2h    (m,np)   
       sco2     , & !REAL(KIND=r8), INTENT(IN) :: sco2   (m,np)   
       co2h     , & !REAL(KIND=r8), INTENT(IN) :: co2h   (m,np)   
       dp       , & !REAL(KIND=r8), INTENT(IN) :: dp     (m,np)   
       zdel     , & !REAL(KIND=r8), INTENT(IN) :: zdel   (m,np)   
       pl       , & !REAL(KIND=r8), INTENT(IN) :: pl     (m,np+1) 
       ta       , & !REAL(KIND=r8), INTENT(IN) :: ta     (m,np)   
       taucld   , & !REAL(KIND=r8), INTENT(IN) :: taucld (m,np,3) 
       reff     , & !REAL(KIND=r8), INTENT(IN) :: reff   (m,np,3) 
       ict      , & !INTEGER      , INTENT(IN) :: ict    (m)
       icb      , & !INTEGER      , INTENT(IN) :: icb    (m)
       fcld     , & !REAL(KIND=r8), INTENT(IN) :: fcld   (m,np)   
       cosz     , & !REAL(KIND=r8), INTENT(IN) :: cosz   (m)
       taual    , & !REAL(KIND=r8), INTENT(IN) :: taual  (m,np,8) 
       ssaal    , & !REAL(KIND=r8), INTENT(IN) :: ssaal  (m,np,8) 
       asyal    , & !REAL(KIND=r8), INTENT(IN) :: asyal  (m,np,8) 
       rsirbm   , & !REAL(KIND=r8), INTENT(IN) :: rsirbm (m)
       rsirdf   , & !REAL(KIND=r8), INTENT(IN) :: rsirdf (m)
       flx      , & !REAL(KIND=r8), INTENT(INOUT) :: flx (m,np+1) 
       flc      , & !REAL(KIND=r8), INTENT(INOUT) :: flc (m,np+1) 
       fdirir   , & !REAL(KIND=r8), INTENT(OUT)   :: fdirir      (m)
       fdifir   , & !REAL(KIND=r8), INTENT(OUT)   :: fdifir      (m)
       fdirir_c , & !REAL(KIND=r8), INTENT(OUT)   :: fdirir_c    (m)
       fdifir_c , & !REAL(KIND=r8), INTENT(OUT)   :: fdifir_c    (m)
       flx_d    , & !REAL(KIND=r8), INTENT(INOUT) :: flx_d       (m,np+1) 
       flx_u    , & !REAL(KIND=r8), INTENT(INOUT) :: flx_u       (m,np+1) 
       flc_d    , & !REAL(KIND=r8), INTENT(INOUT) :: flc_d       (m,np+1) 
       flc_u      ) !REAL(KIND=r8), INTENT(INOUT) :: flc_u       (m,np+1) 
    !
    !-----------------------------------------------------------------------
    IMPLICIT NONE
    !tar
    !INTEGER, PARAMETER :: r8 = SELECTED_REAL_KIND(15) ! Kind for 64-bits Real Numbers
    !tar
    !
    !---- INPUT VARIABLES --------------------------------------------------
    INTEGER      , INTENT(IN) :: m
    INTEGER      , INTENT(IN) :: np
    INTEGER      , INTENT(IN) :: ict    (m)
    INTEGER      , INTENT(IN) :: icb    (m)
    REAL(KIND=r8), INTENT(IN) :: taual  (m,np,8) 
    REAL(KIND=r8), INTENT(IN) :: ssaal  (m,np,8) 
    REAL(KIND=r8), INTENT(IN) :: asyal  (m,np,8) 
    REAL(KIND=r8), INTENT(IN) :: taucld (m,np,3) 
    REAL(KIND=r8), INTENT(IN) :: reff   (m,np,3) 
    REAL(KIND=r8), INTENT(IN) :: fcld   (m,np)   
    REAL(KIND=r8), INTENT(IN) :: dp     (m,np)   
    REAL(KIND=r8), INTENT(IN) :: zdel   (m,np)   
    REAL(KIND=r8), INTENT(IN) :: ta     (m,np)   
    REAL(KIND=r8), INTENT(IN) :: swa    (m,np)   
    REAL(KIND=r8), INTENT(IN) :: wh     (m,np)   
    REAL(KIND=r8), INTENT(IN) :: soa    (m,np)   
    REAL(KIND=r8), INTENT(IN) :: oh     (m,np)   
    REAL(KIND=r8), INTENT(IN) :: so2    (m,np)   
    REAL(KIND=r8), INTENT(IN) :: o2h    (m,np)   
    REAL(KIND=r8), INTENT(IN) :: sco2   (m,np)   
    REAL(KIND=r8), INTENT(IN) :: co2h   (m,np)   
    REAL(KIND=r8), INTENT(IN) :: pl     (m,np+1) 

    REAL(KIND=r8), INTENT(IN) :: rsirbm  (m)
    REAL(KIND=r8), INTENT(IN) :: rsirdf  (m)
    REAL(KIND=r8), INTENT(IN) :: cosz    (m)

    !   
    !---- OUTPUT VARIABLES -------------------------------------------------
    REAL(KIND=r8), INTENT(INOUT) :: flx         (m,np+1) 
    REAL(KIND=r8), INTENT(INOUT) :: flc         (m,np+1) 
    REAL(KIND=r8), INTENT(INOUT) :: flx_d       (m,np+1) 
    REAL(KIND=r8), INTENT(INOUT) :: flx_u       (m,np+1) 
    REAL(KIND=r8), INTENT(INOUT) :: flc_d       (m,np+1) 
    REAL(KIND=r8), INTENT(INOUT) :: flc_u       (m,np+1) 
    REAL(KIND=r8), INTENT(OUT)   :: fdirir      (m)
    REAL(KIND=r8), INTENT(OUT)   :: fdifir      (m)
    REAL(KIND=r8), INTENT(OUT)   :: fdirir_c    (m)
    REAL(KIND=r8), INTENT(OUT)   :: fdifir_c    (m)

    !---- PARAMETERS -------------------------------------------------------
    !
    INTEGER, PARAMETER :: nband2 = 5

    INTEGER, PARAMETER, DIMENSION(nband2) :: nk = (/ &
         1,3,1,4,3 /)
    !
    !       
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,4) :: hk2 = RESHAPE( &
         SOURCE = (/ &  
         0.006887_r8,0.20318_r8,0.01032_r8,0.09006_r8,0.01381_r8, &
         0.0_r8,0.06211_r8,0.0_r8,0.0187_r8,0.009589_r8, &
         0.0_r8,0.05358_r8,0.0_r8,0.01906_r8,0.01336_r8, &
         0.0_r8,0.0_r8,0.0_r8,0.03427_r8,0.0_r8 /) , &
         SHAPE = (/nband2 , 4/) )

    ! ry is the extinction coefficient for rayleigh scattering. unit: /mb (table 3)
    !  
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2) :: ry2 = (/ & 
         0.5382_r8,0.5382_r8,0.0_r8,0.0598_r8,0.0_r8 /)  
    !
    ! coefficients for computing the extinction coefficients of
    ! ice, water, and rain particles 
    !
    !
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,2) :: aib2 = RESHAPE( &
         SHAPE = (/ nband2, 2 /), SOURCE = (/ &
         .000333_r8, .000333_r8, .000333_r8, .000333_r8,.000333_r8, &
         2.52_r8,   2.52_r8,   2.52_r8, 2.52_r8, 2.52_r8 /) )        
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,2) :: awb2 = RESHAPE( &
         SHAPE = (/ nband2, 2 /), SOURCE = (/ &
         -0.00806_r8,-0.0101_r8, -0.0198_r8, -0.0166_r8, -0.0339_r8, &
         1.68_r8, 1.72_r8,   1.91_r8,    1.85_r8,   2.16_r8 /) ) 
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,2) :: arb2 = RESHAPE( &
         SHAPE = (/ nband2, 2 /), SOURCE = (/ &
         0.00307_r8, 0.00307_r8,0.00307_r8, 0.00307_r8, 0.00307_r8, &
         0.0_r8    , 0.0_r8    , 0.0_r8    , 0.0_r8  , 0.0_r8  /) )  
    !
    !c-----coefficients for computing the single-scattering co-albedo of
    !c     ice, water, and rain particles
    !
    !       
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,3) :: aia2  = RESHAPE( &
         SHAPE = (/ nband2, 3 /), SOURCE = (/ &
         -.00000260_r8,-.00000260_r8, .00215346_r8, .00215346_r8, .08938331_r8, &
         .00000746_r8,  .00000746_r8, .00073709_r8, .00073709_r8,  .00299387_r8, &
         .00000000_r8, .00000000_r8,-.00000134_r8, -.00000134_r8, -.00001038_r8 /) )
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,3) :: awa2 = RESHAPE( &
         SHAPE = (/ nband2, 3 /), SOURCE = (/ &
         .00000003_r8, .00000007_r8,.01209318_r8, -.00019934_r8, .01209318_r8, &
         .00000354_r8,.00000845_r8,.01784739_r8, .00088757_r8, .01784739_r8, &
         -.000000017_r8, -.00000004_r8,-.00036910_r8, -.00000650_r8, -.00036910_r8 /) ) 
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,3) :: ara2 = RESHAPE( &
         SHAPE = (/ nband2, 3 /), SOURCE = (/ &
         .029_r8, .029_r8,      .342_r8,  .342_r8,  .466_r8, &
         .0000_r8,  .0000_r8,     .000_r8,  .000_r8,  .000_r8, &
         .0000_r8, .0000_r8,     .000_r8,  .000_r8,  .000_r8 /) ) 
    !
    !c-----coefficients for computing the asymmetry factor of 
    !c     ice, water, and rain particles 
    !
    !       
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,3) :: aig2 = RESHAPE(  &
         SHAPE = (/ nband2, 3 /), SOURCE = (/ &
         .74935228_r8, .74935228_r8, .84090400_r8, .76098937_r8, .84090400_r8, &
         .00119715_r8, .00119715_r8, .00126222_r8 , .00141864_r8, .00126222_r8, &
         -.00000367_r8,-.00000367_r8, -.00000385_r8 , -.00000396_r8, -.00000385_r8 /) )   
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,3) :: awg2 = RESHAPE( &
         SHAPE = (/ nband2, 3 /), SOURCE = (/ &
         .79375035_r8, .79375035_r8, .83530748_r8 ,.74513197_r8, .83530748_r8, &
         .00832441_r8, .00832441_r8,.00257181_r8 ,.01370071_r8, .00257181_r8, &
         -.00023263_r8, -.00023263_r8,.00005519_r8, -.00038203_r8,.00005519_r8  /) )
    REAL(KIND=r8), PARAMETER, DIMENSION(nband2,3) :: arg2 = RESHAPE( &
         SHAPE = (/ nband2, 3 /), SOURCE = (/ &
         .891_r8,  .891_r8,      .948_r8,  .948_r8,    .971_r8, &
         .0000_r8, .0000_r8,     .000_r8,  .000_r8,     .000_r8, &
         .0000_r8, .0000_r8,     .000_r8,   .000_r8,    .000_r8 /) )

    !---- LOCAL  VARIABLES -------------------------------------------------
    INTEGER :: i,k,ib,ik,iv, ichan
    INTEGER :: ih1,ih2,im1,im2,is1,is2
    ! 
    REAL(KIND=r8)    :: taux,reff1,reff2,w1,w2,w3,g1,g2,g3

    REAL(KIND=r8), DIMENSION(m) :: dsm, fsdir, fsdif, fsdir_c, fsdif_c, asyclt, ssaclt, &
         tsrf
    REAL(KIND=r8), DIMENSION(m,3) :: cc
    REAL(KIND=r8), DIMENSION(m,np) :: tauclb,tauclf,asycl,tautof,ssatof,asytof,ssacl
    REAL(KIND=r8), DIMENSION(m,np) :: tausto,ssatau,asysto,tautob,ssatob,asytob
    REAL(KIND=r8), DIMENSION(m,np) :: dum,rrt,ttt,tdt,rst,tst
    REAL(KIND=r8), DIMENSION(m,np+1) :: fall,fclr,fall_d,fall_u,fclr_d,fclr_u
    REAL(KIND=r8), DIMENSION(m,np+1,2) :: rr,tt,td,rs,ts
    REAL(KIND=r8), DIMENSION(m,np,20) :: acir 
    REAL(KIND=r8), DIMENSION(m,np) :: pa, taugas, taurs  

    !---- INITIALIZE LOCAL VECTORS -----------------------------------------
    !  fsdir = 0.0 
    !  fsdif = 0.0 

    asyclt = 0.0_r8
    tauclb = 0.0_r8
    tauclf = 0.0_r8
    asycl = 0.0_r8
    tautof = 0.0_r8
    ssatof = 0.0_r8
    asytof = 0.0_r8
    tausto = 0.0_r8
    ssatau = 0.0_r8
    asysto = 0.0_r8
    tautob = 0.0_r8
    ssatob = 0.0_r8
    asytob = 0.0_r8
    dum = 0.0_r8
    rrt = 0.0_r8
    ttt = 0.0_r8
    tdt = 0.0_r8
    rst = 0.0_r8
    tst = 0.0_r8
    fall = 0.0_r8
    fclr = 0.0_r8
    fall_d = 0.0_r8
    fall_u = 0.0_r8
    fclr_d = 0.0_r8
    fclr_u = 0.0_r8
    rr = 0.0_r8
    rs = 0.0_r8
    acir = 0.0_r8
    taugas = 0.0_r8
    taurs = 0.0_r8  

    !---- SUBROUTINE STARTS HERE -------------------------------------------

    !-----initialize surface fluxes, reflectances, and transmittances.
    !     the reflectance and transmittance of the clear and cloudy portions
    !     of a layer are denoted by 1 and 2, respectively.
    !     cc is the maximum cloud cover in each of the high, middle, and low
    !     cloud groups.
    !     1/dsm=1/cos(53)=1.66
    taux= 0.0_r8  ;reff1= 0.0_r8  ;reff2= 0.0_r8  ;w1= 0.0_r8  ;w2= 0.0_r8  
    w3= 0.0_r8  ;g1= 0.0_r8  ;g2= 0.0_r8  ;g3= 0.0_r8  
    dsm=0.602_r8
    fdirir=0.0_r8
    fdifir=0.0_r8
    fdirir_c=0.0_r8
    fdifir_c=0.0_r8
    rr(1:m,np+1,1)=rsirbm(1:m)
    rr(1:m,np+1,2)=rsirbm(1:m)
    rs(1:m,np+1,1)=rsirdf(1:m)
    rs(1:m,np+1,2)=rsirdf(1:m)
    td=0.0_r8
    tt=0.0_r8
    ts=0.0_r8
    cc=0.0_r8

    !-----Compute absorption coefficients of H2O,O3,O2,CO2 in 11 channels
    !
    DO i=1,m
       tsrf(i)=ta(i,np)
    ENDDO
    !  
    !-----pressure at middle levels (atm.)    2026.5 = 1013.25*2.0   
    ! 
    DO k=1,np
       DO i=1,m   
          pa(i,k)=(pl(i,k)+pl(i,k+1))/2026.5_r8
       ENDDO
    ENDDO
    !     
    CALL kir (m,np,so2,soa,sco2,swa, &
         o2h,oh,co2h,wh,ta,tsrf,pa,acir)       
    !       
    !
    !       
    !-----integration over spectral bands
    !
    DO ib=1,nband2
       !  
       iv=ib+3

       !-----scale cloud optical thickness in each layer from taucld (with
       !     cloud amount fcld) to tauclb and tauclf (with cloud amount cc).
       !     tauclb is the scaled optical thickness for beam radiation and
       !     tauclf is for diffuse radiation.

       CALL cldscale(m,np,cosz,fcld,taucld,ict,icb,cc,tauclb,tauclf)

       !-----compute cloud single scattering albedo and asymmetry factor
       !     for a mixture of ice and liquid particles.
       !     eqs.(4.6)-(4.8), (6.2)-(6.4)
       DO k=1,np
          DO i=1,m
             ssaclt(i)=0.99999_r8
             asyclt(i)=1.0_r8

             taux=taucld(i,k,1)+taucld(i,k,2)+taucld(i,k,3)
             IF (taux.GT.0.02_r8 .AND. fcld(i,k).GT.0.01_r8) THEN
                reff1=MIN(reff(i,k,1),130.0_r8)
                reff2=MIN(reff(i,k,2),20.0_r8)

                w1=(1.0_r8-(aia2(ib,1)+(aia2(ib,2)+ &
                     aia2(ib,3)*reff1)*reff1))*taucld(i,k,1)
                w2=(1.0_r8-(awa2(ib,1)+(awa2(ib,2)+ &
                     awa2(ib,3)*reff2)*reff2))*taucld(i,k,2)
                w3=(1.0_r8- ara2(ib,1))*taucld(i,k,3)
                ssaclt(i)=(w1+w2+w3)/taux

                g1=(aig2(ib,1)+(aig2(ib,2)+aig2(ib,3)*reff1)*reff1)*w1
                g2=(awg2(ib,1)+(awg2(ib,2)+awg2(ib,3)*reff2)*reff2)*w2
                g3= arg2(ib,1)*w3
                asyclt(i)=(g1+g2+g3)/(w1+w2+w3)
             ENDIF
          ENDDO

          DO i=1,m
             ssacl(i,k)=ssaclt(i)
          ENDDO
          DO i=1,m
             asycl(i,k)=asyclt(i)
          ENDDO
       ENDDO

       !-----integration over the nk k-distribution function
       !----- in each ib interval
       !
       DO ik=1,nk(ib)
          DO k=1,np
             DO i=1,m
                !-----compute new rayleigh optical thicknesses 

                taurs(i,k)=ry2(ib)*pa(i,k)/ta(i,k)*zdel(i,k) 
                !          
                !-----compute gaseous optical thickness in each interval

                ichan=4*(ib-1)+ik
                !         
                taugas(i,k)=acir(i,k,ichan)*zdel(i,k)                                     
                !
                !-----compute clear-sky optical thickness, single scattering albedo,
                !     and asymmetry factor. eqs.(6.2)-(6.4)
                !tar          tausto(i,k)=taurs+tauwv+taual(i,k,iv)+1.0e-8
                tausto(i,k)=taurs(i,k)+taugas(i,k)+taual(i,k,iv) 
                ssatau(i,k)=ssaal(i,k,iv)*taual(i,k,iv)+taurs(i,k)
                asysto(i,k)=asyal(i,k,iv)*ssaal(i,k,iv)*taual(i,k,iv)

                !c-----compute reflectance and transmittance of the clear portion of a layer
                tautob(i,k)=tausto(i,k)
                ssatob(i,k)=ssatau(i,k)/tautob(i,k)+1.0e-8_r8
                ssatob(i,k)=MIN(ssatob(i,k),0.999999_r8)
                asytob(i,k)=asysto(i,k)/(ssatob(i,k)*tautob(i,k))
             ENDDO
          ENDDO
          !       
          !        
          !-----for direct incident radiation

          CALL deledd (m,np,tautob,ssatob,asytob,cosz,rrt,ttt,tdt)

          !-----diffuse incident radiation is approximated by beam radiation with
          !     an incident angle of 53 degrees, eqs. (6.5) and (6.6)

          CALL deledd (m,np,tautob,ssatob,asytob,dsm,rst,tst,dum)

          DO k=1,np
             DO i=1,m
                rr(i,k,1)=rrt(i,k)
                tt(i,k,1)=ttt(i,k)
                td(i,k,1)=tdt(i,k)
                rs(i,k,1)=rst(i,k)
                ts(i,k,1)=tst(i,k)
             ENDDO
          ENDDO

          !-----compute reflectance and transmittance of the cloudy portion of a layer
          DO k=1,np
             DO i=1,m

                !-----for direct incident radiation. eqs.(6.2)-(6.4)
                tautob(i,k)=tausto(i,k)+tauclb(i,k)
                ssatob(i,k)=(ssatau(i,k)+ssacl(i,k)*tauclb(i,k)) &
                     /tautob(i,k)+1.0e-8_r8
                ssatob(i,k)=MIN(ssatob(i,k),0.999999_r8)
                asytob(i,k)=(asysto(i,k)+asycl(i,k)*ssacl(i,k)*tauclb(i,k)) &
                     /(ssatob(i,k)*tautob(i,k))

                !-----for diffuse incident radiation
                tautof(i,k)=tausto(i,k)+tauclf(i,k)
                ssatof(i,k)=(ssatau(i,k)+ssacl(i,k)*tauclf(i,k)) &
                     /tautof(i,k)+1.0e-8_r8
                ssatof(i,k)=MIN(ssatof(i,k),0.999999_r8)
                asytof(i,k)=(asysto(i,k)+asycl(i,k)*ssacl(i,k)*tauclf(i,k)) &
                     /(ssatof(i,k)*tautof(i,k))
             ENDDO
          ENDDO

          !-----for direct incident radiation

          CALL deledd (m,np,tautob,ssatob,asytob,cosz,rrt,ttt,tdt)

          !-----diffuse incident radiation is approximated by beam radiation with
          !     an incident angle of 53 degrees, eqs.(6.5) and (6.6)

          CALL deledd (m,np,tautof,ssatof,asytof,dsm,rst,tst,dum)

          DO k=1,np
             DO i=1,m
                rr(i,k,2)=rrt(i,k)
                tt(i,k,2)=ttt(i,k)
                td(i,k,2)=tdt(i,k)
                rs(i,k,2)=rst(i,k)
                ts(i,k,2)=tst(i,k)
             ENDDO
          ENDDO

          !-----flux calculations

          !-----initialize clear-sky flux (fclr), all-sky flux (fall), 
          !     and surface downward fluxes (fsdir and fsdif)
          !hmjb they are initialized inside cldfx()
          DO k=1,np+1
             DO i=1,m
                fclr(i,k)=0.0_r8
                fall(i,k)=0.0_r8
                fclr_d(i,k)=0.0_r8  ! new           
                fclr_u(i,k)=0.0_r8  ! new           
                fall_d(i,k)=0.0_r8  ! new
                fall_u(i,k)=0.0_r8  ! new                  
             ENDDO
          ENDDO

          DO i=1,m
             fsdir(i)=0.0_r8
             fsdif(i)=0.0_r8
             !
             fsdir_c(i)=0.0_r8
             fsdif_c(i)=0.0_r8
          ENDDO

          !-----for clear- and all-sky fluxes
          !     the all-sky flux, fall is the summation inside the brackets
          !     of eq. (7.11)
          ih1=1
          ih2=2
          im1=1
          im2=2
          is1=1
          is2=2

          CALL cldflx (m,np,ict,icb,ih1,ih2,im1,im2,is1,is2,  &
               cc,rr,tt,td,rs,ts,fclr,fall,fsdir,fsdif, fsdir_c,fsdif_c, &
               fclr_d,fclr_u,fall_d,fall_u)   ! new     

          !-----flux integration following eq. (6.1)

          DO k=1,np+1
             DO i=1,m
                flx_d(i,k)=flx_d(i,k)+fall_d(i,k)*hk2(ib,ik) !new         
                flx_u(i,k)=flx_u(i,k)+fall_u(i,k)*hk2(ib,ik) !new           
                flx(i,k) = flx(i,k)+fall(i,k)*hk2(ib,ik)
             ENDDO

             DO i=1,m
                flc(i,k) = flc(i,k)+fclr(i,k)*hk2(ib,ik)
                flc_d(i,k)=flc_d(i,k)+fclr_d(i,k)*hk2(ib,ik) !new           
                flc_u(i,k)=flc_u(i,k)+fclr_u(i,k)*hk2(ib,ik) !new        
             ENDDO
          ENDDO

          !-----compute downward surface fluxes in the ir region

          DO i=1,m
             fdirir(i) = fdirir(i)+fsdir(i)*hk2(ib,ik)
             fdifir(i) = fdifir(i)+fsdif(i)*hk2(ib,ik)
             !
             fdirir_c(i) = fdirir_c(i)+fsdir_c(i)*hk2(ib,ik)
             fdifir_c(i) = fdifir_c(i)+fsdif_c(i)*hk2(ib,ik)
          ENDDO

       ENDDO ! integration over the k-distribution function
    ENDDO ! integration over spectral bands

    !  
    !   
    ! 
  END SUBROUTINE solir
  !
  !
  !
  SUBROUTINE cldflx (m      , &!INTEGER      ,  INTENT(IN) :: m
       np     , &!INTEGER      ,  INTENT(IN) :: np
       ict    , &!INTEGER      ,  INTENT(IN) :: ict(m)
       icb    , &!INTEGER      ,  INTENT(IN) :: icb(m)
       ih1    , &!INTEGER      ,  INTENT(IN) :: ih1
       ih2    , &!INTEGER      ,  INTENT(IN) :: ih2
       im1    , &!INTEGER      ,  INTENT(IN) :: im1
       im2    , &!INTEGER      ,  INTENT(IN) :: im2
       is1    , &!INTEGER      ,  INTENT(IN) :: is1
       is2    , &!INTEGER      ,  INTENT(IN) :: is2
       cc     , &!REAL(KIND=r8),  INTENT(IN) :: cc  (m,3)
       rr     , &!REAL(KIND=r8),  INTENT(IN) :: rr  (m,np+1,2)
       tt     , &!REAL(KIND=r8),  INTENT(IN) :: tt  (m,np+1,2)
       td     , &!REAL(KIND=r8),  INTENT(IN) :: td  (m,np+1,2)
       rs     , &!REAL(KIND=r8),  INTENT(IN) :: rs  (m,np+1,2)
       ts     , &!REAL(KIND=r8),  INTENT(IN) :: ts  (m,np+1,2)
       fclr   , &!REAL(KIND=r8), INTENT(OUT) :: fclr     (m,np+1)
       fall   , &!REAL(KIND=r8), INTENT(OUT) :: fall     (m,np+1)
       fsdir  , &!REAL(KIND=r8), INTENT(OUT) :: fsdir    (m)    
       fsdif  , &!REAL(KIND=r8), INTENT(OUT) :: fsdif    (m)    
       fsdir_c, &!REAL(KIND=r8), INTENT(OUT) :: fsdir_c  (m)    
       fsdif_c, &!REAL(KIND=r8), INTENT(OUT) :: fsdif_c  (m)    
       fclr_d , &!REAL(KIND=r8), INTENT(OUT) :: fclr_d   (m,np+1)
       fclr_u , &!REAL(KIND=r8), INTENT(OUT) :: fclr_u   (m,np+1)
       fall_d , &!REAL(KIND=r8), INTENT(OUT) :: fall_d   (m,np+1)
       fall_u   )!REAL(KIND=r8), INTENT(OUT) :: fall_u   (m,np+1)      ! new

    !-----------------------------------------------------------------------
    IMPLICIT NONE

    !tar
    !   INTEGER, PARAMETER :: r8 = SELECTED_REAL_KIND(15) ! Kind for 64-bits Real Numbers
    !tar

    !---- INPUT VARIABLES --------------------------------------------------
    INTEGER      ,  INTENT(IN) :: m
    INTEGER      ,  INTENT(IN) :: np
    INTEGER      ,  INTENT(IN) :: ih1
    INTEGER      ,  INTENT(IN) :: ih2
    INTEGER      ,  INTENT(IN) :: im1
    INTEGER      ,  INTENT(IN) :: im2
    INTEGER      ,  INTENT(IN) :: is1
    INTEGER      ,  INTENT(IN) :: is2
    INTEGER      ,  INTENT(IN) :: ict(m)
    INTEGER      ,  INTENT(IN) :: icb(m)

    REAL(KIND=r8),  INTENT(IN) :: rr  (m,np+1,2)
    REAL(KIND=r8),  INTENT(IN) :: tt  (m,np+1,2)
    REAL(KIND=r8),  INTENT(IN) :: td  (m,np+1,2)
    REAL(KIND=r8),  INTENT(IN) :: rs  (m,np+1,2)
    REAL(KIND=r8),  INTENT(IN) :: ts  (m,np+1,2)
    REAL(KIND=r8),  INTENT(IN) :: cc  (m,3)

    !---- OUTPUT VARIABLES -------------------------------------------------
    REAL(KIND=r8), INTENT(OUT) :: fclr     (m,np+1)
    REAL(KIND=r8), INTENT(OUT) :: fclr_u   (m,np+1)
    REAL(KIND=r8), INTENT(OUT) :: fclr_d   (m,np+1)
    REAL(KIND=r8), INTENT(OUT) :: fall     (m,np+1)
    REAL(KIND=r8), INTENT(OUT) :: fall_u   (m,np+1)
    REAL(KIND=r8), INTENT(OUT) :: fall_d   (m,np+1)
    REAL(KIND=r8), INTENT(OUT) :: fsdir    (m)     
    REAL(KIND=r8), INTENT(OUT) :: fsdif    (m)     
    REAL(KIND=r8), INTENT(OUT) :: fsdir_c  (m)     
    REAL(KIND=r8), INTENT(OUT) :: fsdif_c  (m)     

    !---- LOCAL  VARIABLES -------------------------------------------------
    REAL(KIND=r8) :: tta(m,np+1,2,2)! composite total transmittance illuminated by beam radiation
    REAL(KIND=r8) :: tda(m,np+1,2,2)! composite transmittance illuminated by beam radiation
    REAL(KIND=r8) :: rsa(m,np+1,2,2)! composite reflectance illuminated from below by diffuse radiation
    REAL(KIND=r8) :: rra(m,np+1,2,2)! composite reflectance illuminated by beam radiation
    REAL(KIND=r8) :: rxa(m,np+1,2,2)! the composite reflectance illuminated from above by diffuse radiation

    REAL(KIND=r8) :: fdn  (m,np+1)  ! downward fluxes
    REAL(KIND=r8) :: fup  (m,np+1)  ! upward fluxes
    REAL(KIND=r8) :: flxdn(m,np+1)  ! net flux

    REAL(KIND=r8) :: fdndir(m)      ! direct  downward flux
    REAL(KIND=r8) :: fdndif(m)      ! diffuse downward flux
    REAL(KIND=r8) :: ch(m)
    REAL(KIND=r8) :: cm(m)
    REAL(KIND=r8) :: ct(m)

    REAL(KIND=r8) :: fupdif               ! diffuse upward flux
    REAL(KIND=r8) :: denm,xx,yy
    INTEGER       :: i,k,ih,im,is

    !---- SUBROUTINE STARTS HERE -------------------------------------------

    fclr   = 0.0_r8
    fall   = 0.0_r8
    fclr_d = 0.0_r8
    fclr_u = 0.0_r8
    fall_d = 0.0_r8
    fall_u = 0.0_r8

    fsdir   = 0.0_r8
    fsdif   = 0.0_r8
    fsdir_c = 0.0_r8
    fsdif_c = 0.0_r8
    !---- LOCAL  VARIABLES -------------------------------------------------
    tta = 0.0_r8! composite total transmittance illuminated by beam radiation
    tda = 0.0_r8! composite transmittance illuminated by beam radiation
    rsa = 0.0_r8! composite reflectance illuminated from below by diffuse radiation
    rra = 0.0_r8! composite reflectance illuminated by beam radiation
    rxa = 0.0_r8! the composite reflectance illuminated from above by diffuse radiation

    fdn   = 0.0_r8  ! downward fluxes
    fup   = 0.0_r8  ! upward fluxes
    flxdn = 0.0_r8  ! net flux

    fdndir = 0.0_r8      ! direct  downward flux
    fdndif = 0.0_r8      ! diffuse downward flux
    ch = 0.0_r8
    cm = 0.0_r8
    ct = 0.0_r8

    fupdif  = 0.0_r8           ! diffuse upward flux
    denm = 0.0_r8
    xx = 0.0_r8
    yy = 0.0_r8

    !c-----compute transmittances and reflectances for a composite of
    !c     layers. layers are added one at a time, going down from the top.
    !c     tta and rsa are computed from eqs. (6.10) and (6.12)

    !c-----for high clouds
    !c     ih=1 for clear-sky condition, ih=2 for cloudy-sky condition
    DO ih=ih1,ih2

       DO i=1,m
          tda(i,1,ih,1)=td(i,1,ih)
          tta(i,1,ih,1)=tt(i,1,ih)
          rsa(i,1,ih,1)=rs(i,1,ih)
          tda(i,1,ih,2)=td(i,1,ih)
          tta(i,1,ih,2)=tt(i,1,ih)
          rsa(i,1,ih,2)=rs(i,1,ih)
       ENDDO

       !       DO k=2,ict-1
       DO k=2,np
          DO i=1,m
             IF(k<=ict(i)-1) THEN
                denm = ts(i,k,ih)/( 1.0_r8-rsa(i,k-1,ih,1)*rs(i,k,ih))
                tda(i,k,ih,1)= tda(i,k-1,ih,1)*td(i,k,ih)
                tta(i,k,ih,1)= tda(i,k-1,ih,1)*tt(i,k,ih) &
                     +(tda(i,k-1,ih,1)*rsa(i,k-1,ih,1)*rr(i,k,ih) &
                     +tta(i,k-1,ih,1)-tda(i,k-1,ih,1))*denm
                rsa(i,k,ih,1)= rs(i,k,ih)+ts(i,k,ih) &
                     *rsa(i,k-1,ih,1)*denm
                tda(i,k,ih,2)= tda(i,k,ih,1)
                tta(i,k,ih,2)= tta(i,k,ih,1)
                rsa(i,k,ih,2)= rsa(i,k,ih,1)
             END IF
          ENDDO

       ENDDO

       !c-----for middle clouds
       !c     im=1 for clear-sky condition, im=2 for cloudy-sky condition
       DO im=im1,im2

          !          DO k=ict,icb-1
          DO k=1,np
             DO i=1,m
                IF(k>=ict(i) .AND. k <= icb(i)-1)THEN
                   denm = ts(i,k,im)/( 1.0_r8-rsa(i,k-1,ih,im)*rs(i,k,im))
                   tda(i,k,ih,im)= tda(i,k-1,ih,im)*td(i,k,im)
                   tta(i,k,ih,im)= tda(i,k-1,ih,im)*tt(i,k,im)  &
                        +(tda(i,k-1,ih,im)*rsa(i,k-1,ih,im)*rr(i,k,im)  &
                        +tta(i,k-1,ih,im)-tda(i,k-1,ih,im))*denm
                   rsa(i,k,ih,im)= rs(i,k,im)+ts(i,k,im)  &
                        *rsa(i,k-1,ih,im)*denm
                END IF
             ENDDO
          ENDDO

       ENDDO                 ! end im loop
    ENDDO                 ! end ih loop

    !c-----layers are added one at a time, going up from the surface.
    !c     rra and rxa are computed from eqs. (6.9) and (6.11)

    !c-----for the low clouds
    !c     is=1 for clear-sky condition, is=2 for cloudy-sky condition
    DO is=is1,is2

       DO i=1,m
          rra(i,np+1,1,is)=rr(i,np+1,is)
          rxa(i,np+1,1,is)=rs(i,np+1,is)
          rra(i,np+1,2,is)=rr(i,np+1,is)
          rxa(i,np+1,2,is)=rs(i,np+1,is)
       ENDDO

       !       DO k=np,icb,-1
       DO k=np,1,-1
          DO i=1,m
             IF(k >=icb(i) )THEN  
                denm=ts(i,k,is)/( 1.0_r8-rs(i,k,is)*rxa(i,k+1,1,is) )
                rra(i,k,1,is)=rr(i,k,is)+(td(i,k,is)*rra(i,k+1,1,is) &
                     +(tt(i,k,is)-td(i,k,is))*rxa(i,k+1,1,is))*denm
                rxa(i,k,1,is)= rs(i,k,is)+ts(i,k,is)  &
                     *rxa(i,k+1,1,is)*denm
                rra(i,k,2,is)=rra(i,k,1,is)
                rxa(i,k,2,is)=rxa(i,k,1,is)
             END IF
          ENDDO
       ENDDO

       !c-----for middle clouds     
       DO im=im1,im2
          !          DO k=icb-1,ict,-1
          DO k=np,1,-1
             DO i=1,m
                IF(k<= icb(i)-1 .AND. k >= ict(i))THEN
                   denm=ts(i,k,im)/( 1.0_r8-rs(i,k,im)*rxa(i,k+1,im,is) )
                   rra(i,k,im,is)= rr(i,k,im)+(td(i,k,im)*rra(i,k+1,im,is) &
                        +(tt(i,k,im)-td(i,k,im))*rxa(i,k+1,im,is))*denm
                   rxa(i,k,im,is)= rs(i,k,im)+ts(i,k,im) &
                        *rxa(i,k+1,im,is)*denm
                END IF
             ENDDO
          ENDDO

       ENDDO       ! end im loop
    ENDDO       ! end is loop

    !c-----integration over eight sky situations.
    !c     ih, im, is denotes high, middle and low cloud groups.
    DO ih=ih1,ih2

       !c-----clear portion 
       IF(ih.EQ.1) THEN
          DO i=1,m
             ch(i)=1.0_r8-cc(i,1)
          ENDDO
       ELSE        
          !c-----cloudy portion
          DO i=1,m
             ch(i)=cc(i,1)
          ENDDO
       ENDIF

       DO im=im1,im2
          !c-----clear portion
          IF(im.EQ.1) THEN
             DO i=1,m
                cm(i)=ch(i)*(1.0_r8-cc(i,2))
             ENDDO
          ELSE
             !c-----cloudy portion
             DO i=1,m
                cm(i)=ch(i)*cc(i,2) 
             ENDDO
          ENDIF

          DO is=is1,is2
             !c-----clear portion
             IF(is.EQ.1) THEN
                DO i=1,m
                   ct(i)=cm(i)*(1.0_r8-cc(i,3)) 
                ENDDO
             ELSE
                !c-----cloudy portion
                DO i=1,m
                   ct(i)=cm(i)*cc(i,3)
                ENDDO
             ENDIF

             !c-----add one layer at a time, going down.
             !             DO k=icb,np
             DO k=1,np
                DO i=1,m
                   IF(k >= icb(i))THEN
                      denm = ts(i,k,is)/( 1.0_r8-rsa(i,k-1,ih,im)*rs(i,k,is) )
                      tda(i,k,ih,im)= tda(i,k-1,ih,im)*td(i,k,is)
                      tta(i,k,ih,im)=  tda(i,k-1,ih,im)*tt(i,k,is)  &
                           +(tda(i,k-1,ih,im)*rr(i,k,is)  &
                           *rsa(i,k-1,ih,im)+tta(i,k-1,ih,im)-tda(i,k-1,ih,im))*denm
                      rsa(i,k,ih,im)= rs(i,k,is)+ts(i,k,is)  &
                           *rsa(i,k-1,ih,im)*denm
                   ENDIF
                ENDDO
             ENDDO

             !c-----add one layer at a time, going up.
             !             DO k=ict-1,1,-1
             DO k=np,1,-1
                DO i=1,m
                   IF(k<=ict(i)-1)THEN 
                      denm =ts(i,k,ih)/(1.0_r8-rs(i,k,ih)*rxa(i,k+1,im,is))
                      rra(i,k,im,is)= rr(i,k,ih)+(td(i,k,ih)*rra(i,k+1,im,is) &
                           +(tt(i,k,ih)-td(i,k,ih))*rxa(i,k+1,im,is))*denm
                      rxa(i,k,im,is)= rs(i,k,ih)+ts(i,k,ih) &
                           *rxa(i,k+1,im,is)*denm
                   END IF
                ENDDO
             ENDDO

             !c-----compute fluxes following eq. (6.15) for fupdif and
             !c     eq. (6.16) for (fdndir+fdndif)
             DO k=2,np+1
                DO i=1,m
                   denm= 1.0_r8/(1.0_r8-rsa(i,k-1,ih,im)*rxa(i,k,im,is))
                   fdndir(i)= tda(i,k-1,ih,im)
                   xx= tda(i,k-1,ih,im)*rra(i,k,im,is)
                   yy= tta(i,k-1,ih,im)-tda(i,k-1,ih,im)
                   fdndif(i)= (xx*rsa(i,k-1,ih,im)+yy)*denm

                   !c--calculation of downward (fdn(i,k)) and upward (fupdif(i,k)) fluxes
                   !c  as well as net flux
                   fupdif= (xx+yy*rxa(i,k,im,is))*denm         
                   flxdn(i,k)= fdndir(i)+fdndif(i)-fupdif  ! net flux
                   fup(i,k)= (xx+yy*rxa(i,k,im,is))*denm   !new         
                   fdn(i,k)= fdndir(i)+fdndif(i)        !new 
                ENDDO
             ENDDO

             DO i=1,m
                flxdn(i,1)=1.0_r8-rra(i,1,im,is)
                fdn(i,1)=1.0_r8 
                fup(i,1)=rra(i,1,im,is)                  
             ENDDO

             !c-----summation of fluxes over all sky situations;
             !c     the term in the brackets of eq. (7.11)
             DO k=1,np+1
                DO i=1,m
                   IF(ih.EQ.1 .AND. im.EQ.1 .AND. is.EQ.1) THEN
                      fclr(i,k)=flxdn(i,k)
                      fclr_d(i,k)=fdn(i,k)
                      fclr_u(i,k)=fup(i,k)
                   ENDIF
                   fall(i,k)=fall(i,k)+flxdn(i,k)*ct(i)
                   fall_d(i,k)=fall_d(i,k)+fdn(i,k)*ct(i)
                   fall_u(i,k)=fall_u(i,k)+fup(i,k)*ct(i)
                ENDDO
             ENDDO

             DO i=1,m
                fsdir(i)=fsdir(i)+fdndir(i)*ct(i)
                fsdif(i)=fsdif(i)+fdndif(i)*ct(i)
                !hmjb
                IF(ih.EQ.1 .AND. im.EQ.1 .AND. is.EQ.1) THEN
                   fsdir_c(i)=fdndir(i)
                   fsdif_c(i)=fdndif(i)
                ENDIF
             ENDDO

          ENDDO        ! end is loop
       ENDDO        ! end im loop
    ENDDO        ! end ih loop

    ! 
  END SUBROUTINE cldflx
  !
  !
  !
  SUBROUTINE cldscale (m       , &! INTEGER      , INTENT(IN ) :: m
       np      , &! INTEGER      , INTENT(IN ) :: np
       cosz    , &! REAL(KIND=r8), INTENT(IN ) :: cosz   (m)
       fcld    , &! REAL(KIND=r8), INTENT(IN ) :: fcld   (m,np)
       taucld  , &! REAL(KIND=r8), INTENT(IN ) :: taucld (m,np,3)
       ict     , &! INTEGER      , INTENT(IN ) :: ict(m)
       icb     , &! INTEGER      , INTENT(IN ) :: icb(m)
       cc      , &! REAL(KIND=r8), INTENT(OUT) :: cc      (m,3) 
       tauclb  , &! REAL(KIND=r8), INTENT(OUT) :: tauclb  (m,np)
       tauclf    )! REAL(KIND=r8), INTENT(OUT) :: tauclf  (m,np)

    !-----------------------------------------------------------------------
    IMPLICIT NONE

    !tar
    !INTEGER, PARAMETER :: r8 = SELECTED_REAL_KIND(15) ! Kind for 64-bits Real Numbers
    !tar
    !---- INPUT VARIABLES --------------------------------------------------
    INTEGER, INTENT(IN) :: m
    INTEGER, INTENT(IN) :: np
    INTEGER, INTENT(IN) :: ict(m)
    INTEGER, INTENT(IN) :: icb(m)

    REAL(KIND=r8), INTENT(IN) :: cosz   (m)
    REAL(KIND=r8), INTENT(IN) :: fcld   (m,np)
    REAL(KIND=r8), INTENT(IN) :: taucld (m,np,3)

    !---- OUTPUT VARIABLES -------------------------------------------------
    REAL(KIND=r8), INTENT(OUT) :: cc      (m,3) 
    REAL(KIND=r8), INTENT(OUT) :: tauclb  (m,np)
    REAL(KIND=r8), INTENT(OUT) :: tauclf  (m,np)


    !---- PARAMETERS -------------------------------------------------------
    !INTEGER, PARAMETER :: nm=11
    !INTEGER, PARAMETER :: nt=9
    !INTEGER, PARAMETER :: na=11

    REAL(KIND=r8), PARAMETER :: dm=0.1_r8      ! size of cosz-interval
    REAL(KIND=r8), PARAMETER :: dt=0.30103_r8  ! size of taucld-interval
    REAL(KIND=r8), PARAMETER :: da=0.1_r8      ! size of cloud amount-interval
    REAL(KIND=r8), PARAMETER :: t1=-0.9031_r8

    INTEGER i
    ! include the pre-computed table of mcai for scaling the cloud optical
    ! thickness under the assumption that clouds are maximally overlapped

    ! caib is for scaling the cloud optical thickness for direct radiation
    !REAL(KIND=r8) :: caib(nm,nt,na)!ALLOCATE(caib(nm,nt,na))

    ! caif is for scaling the cloud optical thickness for diffuse radiation
    !REAL(KIND=r8) :: caif(nt,na)

    !INCLUDE "mcai.data90"

    !---- LOCAL  VARIABLES -------------------------------------------------
    INTEGER :: k,im,it,ia,kk
    REAL(KIND=r8) :: fm,ft,fa,xai,taux


    !---- INITIALIZE LOCAL VECTORS AND OUTPUT VARIABLES --------------------
    fm=0.0_r8;ft=0.0_r8;fa=0.0_r8;xai=0.0_r8;taux=0.0_r8
    !---- SUBROUTINE STARTS HERE -------------------------------------------

    !c-----clouds within each of the high, middle, and low clouds are assumed
    !c     to be maximally overlapped, and the cloud cover (cc) for a group
    !c     (high, middle, or low) is the maximum cloud cover of all the layers
    !c     within a group

    DO i=1,m
       cc(i,1)=0.0_r8
       cc(i,2)=0.0_r8
       cc(i,3)=0.0_r8
    ENDDO

    !    DO k=1,ict-1
    DO k=1,np
       DO i=1,m
          IF(k <= ict(i)-1)THEN
             cc(i,1)=MAX(cc(i,1),fcld(i,k))
          END IF
       ENDDO
    ENDDO

    !    DO k=ict,icb-1
    DO k=1,np
       DO i=1,m
          IF( k >= ict(i) .AND. k <= icb(i)-1)THEN
             cc(i,2)=MAX(cc(i,2),fcld(i,k))
          END IF
       ENDDO
    ENDDO

    !    DO k=icb,np
    DO k=1,np
       DO i=1,m
          IF(k>=icb(i))THEN
             cc(i,3)=MAX(cc(i,3),fcld(i,k))
          END IF
       ENDDO
    ENDDO

    !c-----scale the cloud optical thickness.
    !c     taucld(i,k,1) is the optical thickness for ice particles
    !c     taucld(i,k,2) is the optical thickness for liquid particles
    !c     taucld(i,k,3) is the optical thickness for rain drops

    DO k=1,np     
       DO i=1,m

          IF(k.LT.ict(i)) THEN
             kk=1
          ELSEIF(k.GE.ict(i) .AND. k.LT.icb(i)) THEN
             kk=2
          ELSE
             kk=3
          ENDIF

          !       DO i=1,m
          !hmjb ta feito no comeco
          tauclb(i,k) = 0.0_r8
          tauclf(i,k) = 0.0_r8
          taux=taucld(i,k,1)+taucld(i,k,2)+taucld(i,k,3)

          IF (taux.GT.0.02_r8 .AND. fcld(i,k).GT.0.01_r8) THEN

             !c-----normalize cloud cover following eq. (7.8)

             fa=fcld(i,k)/cc(i,kk)

             !c-----table look-up

             taux=MIN(taux,32.0_r8)

             fm=cosz(i)/dm
             ft=(LOG10(taux)-t1)/dt
             fa=fa/da

             im=INT(fm+1.5_r8)
             it=INT(ft+1.5_r8)
             ia=INT(fa+1.5_r8)

             im=MAX(im,2)
             it=MAX(it,2)
             ia=MAX(ia,2)

             im=MIN(im,nm-1)
             it=MIN(it,nt-1)
             ia=MIN(ia,na-1)

             fm=fm-float(im-1)
             ft=ft-float(it-1)
             fa=fa-float(ia-1)

             !c-----scale cloud optical thickness for beam radiation following eq. (7.3)
             !c     the scaling factor, xai, is a function of the solar zenith
             !c     angle, optical thickness, and cloud cover.

             xai=    (-caib(im-1,it,ia)*(1.0_r8-fm)+  &
                  caib(im+1,it,ia)*(1.0_r8+fm))*fm*.5_r8+caib(im,it,ia)*(1.0_r8-fm*fm)

             xai=xai+(-caib(im,it-1,ia)*(1.0_r8-ft)+ &
                  caib(im,it+1,ia)*(1.0_r8+ft))*ft*.5_r8+caib(im,it,ia)*(1.0_r8-ft*ft)

             xai=xai+(-caib(im,it,ia-1)*(1.0_r8-fa)+ &
                  caib(im,it,ia+1)*(1.0_r8+fa))*fa*.5_r8+caib(im,it,ia)*(1.0_r8-fa*fa)

             xai= xai-2.0_r8*caib(im,it,ia)
             xai=MAX(xai,0.0_r8)

             tauclb(i,k) = taux*xai

             !c-----scale cloud optical thickness for diffuse radiation following eq. (7.4)
             !c     the scaling factor, xai, is a function of the cloud optical
             !c     thickness and cover but not the solar zenith angle.

             xai=    (-caif(it-1,ia)*(1.0_r8-ft)+  &
                  caif(it+1,ia)*(1.0_r8+ft))*ft*.5_r8+caif(it,ia)*(1.0_r8-ft*ft)

             xai=xai+(-caif(it,ia-1)*(1.0_r8-fa)+  &
                  caif(it,ia+1)*(1.0_r8+fa))*fa*.5_r8+caif(it,ia)*(1.0_r8-fa*fa)

             xai= xai-caif(it,ia)
             xai=MAX(xai,0.0_r8)

             tauclf(i,k) = taux*xai

          ENDIF

       ENDDO
    ENDDO

    !  
  END SUBROUTINE cldscale
  !
  !
  !
  SUBROUTINE deledd( m      , & ! INTEGER      ,  INTENT(IN ) :: m
       np     , & ! INTEGER      ,  INTENT(IN ) :: np
       tau    , & ! REAL(KIND=r8),  INTENT(IN ) :: tau (m,np)
       ssc    , & ! REAL(KIND=r8),  INTENT(IN ) :: ssc (m,np)
       g0     , & ! REAL(KIND=r8),  INTENT(IN ) :: g0  (m,np)
       cza    , & ! REAL(KIND=r8),  INTENT(IN ) :: cza (m)
       rr     , & ! REAL(KIND=r8),  INTENT(OUT) :: rr  (m,np)
       tt     , & ! REAL(KIND=r8),  INTENT(OUT) :: tt  (m,np)
       td       ) ! REAL(KIND=r8),  INTENT(OUT) :: td  (m,np)

    !-----------------------------------------------------------------------
    IMPLICIT NONE

    !tar
    !INTEGER, PARAMETER :: r8 = SELECTED_REAL_KIND(15) ! Kind for 64-bits Real Numbers
    !tar

    !---- INPUT VARIABLES --------------------------------------------------
    INTEGER      ,  INTENT(IN ) :: m
    INTEGER      ,  INTENT(IN ) :: np
    REAL(KIND=r8),  INTENT(IN ) :: tau (m,np)
    REAL(KIND=r8),  INTENT(IN ) :: ssc (m,np)
    REAL(KIND=r8),  INTENT(IN ) :: g0  (m,np)
    REAL(KIND=r8),  INTENT(IN ) :: cza (m)

    !---- OUTPUT VARIABLES -------------------------------------------------
    REAL(KIND=r8),  INTENT(OUT) :: rr  (m,np)
    REAL(KIND=r8),  INTENT(OUT) :: tt  (m,np)
    REAL(KIND=r8),  INTENT(OUT) :: td  (m,np)


    !---- PARAMETERS -------------------------------------------------------
    REAL(KIND=r8), PARAMETER :: zero=0.0_r8
    REAL(KIND=r8), PARAMETER :: one=1.0_r8
    REAL(KIND=r8), PARAMETER :: two=2.0_r8
    REAL(KIND=r8), PARAMETER :: three=3.0_r8
    REAL(KIND=r8), PARAMETER :: four=4.0_r8
    REAL(KIND=r8), PARAMETER :: fourth=.25_r8
    REAL(KIND=r8), PARAMETER :: seven=7.0_r8
    REAL(KIND=r8), PARAMETER :: thresh=1.e-8_r8
    !---- LOCAL  VARIABLES -------------------------------------------------
    INTEGER :: i,k
    REAL(KIND=r8) :: zth,ff,xx,taup,sscp,gp,gm1,gm2,gm3,akk,alf1,alf2, &
         temp_all,bll,st7,st8,cll,dll,fll,ell,st1,st2,st3,st4

    !---- INITIALIZE LOCAL VECTORS AND OUTPUT VARIABLES --------------------
    zth=0.0_r8;ff=0.0_r8;xx=0.0_r8;taup=0.0_r8;sscp=0.0_r8;gp=0.0_r8;gm1=0.0_r8;
    gm2=0.0_r8;gm3=0.0_r8;akk=0.0_r8;alf1=0.0_r8;alf2=0.0_r8
    temp_all=0.0_r8;bll=0.0_r8;st7=0.0_r8;st8=0.0_r8;cll=0.0_r8;dll=0.0_r8;
    fll=0.0_r8;ell=0.0_r8;st1=0.0_r8;st2=0.0_r8;st3=0.0_r8;st4=0.0_r8
    rr=0.0_r8
    tt=0.0_r8
    td=0.0_r8
    !---- SUBROUTINE STARTS HERE -------------------------------------------

    DO k=1,np
       DO i=1,m
          zth = cza(i)

          !c  delta-eddington scaling of single scattering albedo,
          !c  optical thickness, and asymmetry factor,
          !c  k & h eqs(27-29)

          ff  = g0(i,k)*g0(i,k)
          xx  = one-ff *ssc(i,k)
          taup= tau(i,k)*xx
          sscp= ssc(i,k)*(one-ff)/xx
          gp  = g0(i,k) /(one+g0(i,k))           

          !c  gamma1, gamma2, and gamma3. see table 2 and eq(26) k & h
          !c  ssc and gp are the d-s single scattering
          !c  albedo and asymmetry factor.

          xx  =  three*gp 
          gm1 =  (seven - sscp*(four+xx))*fourth
          gm2 = -(one   - sscp*(four-xx))*fourth

          !c  akk is k as defined in eq(25) of k & h

          akk = SQRT((gm1+gm2)*(gm1-gm2))

          xx  = akk * zth
          st7 = one - xx
          st8 = one + xx
          st3 = st7 * st8

          IF (ABS(st3) .LT. thresh) THEN
             zth = zth + 0.001_r8
             xx  = akk * zth
             st7 = one - xx
             st8 = one + xx
             st3 = st7 * st8
          ENDIF

          !c  extinction of the direct beam transmission

          td(i,k)  = EXP(-taup/zth)

          !c  alf1 and alf2 are alpha1 and alpha2 from eqs (23) & (24) of k & h

          gm3  = (two - zth*three*gp)*fourth
          xx   = gm1 - gm2
          alf1 = gm1 - gm3 * xx
          alf2 = gm2 + gm3 * xx

          !c  all is last term in eq(21) of k & h
          !c  bll is last term in eq(22) of k & h

          xx  = akk * two
          temp_all = (gm3 - alf2 * zth    )*xx*td(i,k)
          bll = (one - gm3 + alf1*zth)*xx

          xx  = akk * gm3
          cll = (alf2 + xx) * st7
          dll = (alf2 - xx) * st8

          xx  = akk * (one-gm3)
          fll = (alf1 + xx) * st8
          ell = (alf1 - xx) * st7

          st2 = EXP(-akk*taup)
          st4 = st2 * st2

          st1 =  sscp / ((akk+gm1 + (akk-gm1)*st4) * st3)

          !c  rr is r-hat of eq(21) of k & h
          !c  tt is diffuse part of t-hat of eq(22) of k & h

          rr(i,k) =   ( cll-dll*st4         -temp_all*st2)*st1
          tt(i,k) = - ((fll-ell*st4)*td(i,k)-bll*st2)*st1

          rr(i,k) = MAX(rr(i,k),zero)
          tt(i,k) = MAX(tt(i,k),zero)

          tt(i,k) = tt(i,k)+td(i,k)
       ENDDO
    ENDDO

    !  
  END SUBROUTINE deledd
  !
  !
  !
  SUBROUTINE kuv ( m       , & !INTEGER      , INTENT(IN) :: m
       np      , & !INTEGER      , INTENT(IN) :: np
       nband   , & !INTEGER      , INTENT(IN) :: nband
       uo3     , & !REAL(KIND=r8), INTENT(IN) :: uo3   (m,np)
       uo2     , & !REAL(KIND=r8), INTENT(IN) :: uo2   (m,np)
       uh2o    , & !REAL(KIND=r8), INTENT(IN) :: uh2o  (m,np)
       uo3s    , & !REAL(KIND=r8), INTENT(IN) :: uo3s  (m,np)
       uo2s    , & !REAL(KIND=r8), INTENT(IN) :: uo2s  (m,np)
       uh2os   , & !REAL(KIND=r8), INTENT(IN) :: uh2os (m,np)
       acuv      ) !REAL(KIND=r8), INTENT(OUT) :: acuv(m,np,nband)
    !      
    !  Parameterizations of Fomin and Correa, 2005:  
    !  The subroutine is written by Tarasova Aug. 2005
    !     uv and visible solar spectrum, 4 intervals
    !                     input parameters:
    !     m - number of model grid points
    !     np - number of levels
    !     nband - number of spectral intervals
    !    uo3(m,np),uo2(m,np),uh2o(m,np) - concentration of O3,O2,H2O  in molec/(cm2 km)
    !    divided by 1.0e17, 1.0e22, and 1.0e21, respectively
    !    uo3s(m,np),uo2s(m,np),uh2os(m,np) - amount of O3,O2,H2O  in molec/(cm2)
    !    at the solar beam divided by 1.0e17, 1.0e22, and 1.0e21, respectively
    !                     output parameter: 
    !    acuv(m,np,nband) - volume absorption coefficient (km-1)
    !
    IMPLICIT NONE 
    !tar
    !INTEGER, PARAMETER :: r8 = SELECTED_REAL_KIND(15) ! Kind for 64-bits Real Numbers
    !tar
    !
    !---- INPUT VARIABLES --------------------------------------------------! 
    !
    INTEGER      , INTENT(IN) :: m
    INTEGER      , INTENT(IN) :: np
    INTEGER      , INTENT(IN) :: nband
    REAL(KIND=r8), INTENT(IN) :: uo3   (m,np)
    REAL(KIND=r8), INTENT(IN) :: uo2   (m,np)
    REAL(KIND=r8), INTENT(IN) :: uh2o  (m,np)
    REAL(KIND=r8), INTENT(IN) :: uo3s  (m,np)
    REAL(KIND=r8), INTENT(IN) :: uo2s  (m,np)
    REAL(KIND=r8), INTENT(IN) :: uh2os (m,np)

    !      
    !---- OUTPUT VARIABLES -------------------------------------------------!
    !    
    REAL(KIND=r8), INTENT(OUT) :: acuv(m,np,nband)


    !
    !---- PARAMETERS -------------------------------------------------------!
    !
    REAL(KIND=r8), PARAMETER, DIMENSION(22)  :: u1o3 = (/ &
         1.0e-6_r8,0.02_r8,0.05_r8,0.1_r8,0.2_r8,0.4_r8,0.6_r8,1.0_r8,2.0_r8,3.0_r8,4.0_r8, &
         5.0_r8,6.0_r8,7.0_r8,9.0_r8,15.0_r8,20.0_r8,30.0_r8,100.0_r8,200.0_r8,250.0_r8,400.0_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(22)  :: ac1o3l = (/ &      
         0.365_r8,0.365_r8,0.362_r8,0.355_r8,0.345_r8,0.32_r8,0.3_r8,0.26_r8, &
         0.185_r8,0.15_r8,0.12_r8,0.105_r8,0.095_r8,0.09_r8,0.08_r8,0.063_r8,0.057_r8,0.047_r8,0.032_r8, &
         0.026_r8,0.023_r8,0.005_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(7)  :: u1o2 = (/ & 
         1.0e-7_r8,0.1_r8,1.0_r8,4.0_r8,10.0_r8,70.0_r8,200.0_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(7)  :: ac1o2l = (/ &
         3.4e-3_r8,3.4e-3_r8,3.3e-3_r8,3.05e-3_r8,2.4e-3_r8,0.6e-3_r8,0.25e-3_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(8)  :: u2o3 = (/ &
         1.0e-6_r8,7.0e-4_r8,0.4_r8,2.0_r8,7.0_r8,20.0_r8,50.0_r8,100.0_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(8)  :: ac2o3l = (/ &
         7.35e-3_r8,7.35e-3_r8,8.35e-3_r8,8.0e-3_r8,7.5e-3_r8, &
         7.0e-3_r8,6.0e-3_r8,5.5e-3_r8 /)
    ! 
    !---- LOCAL  VARIABLES -------------------------------------------------! 
    !
    INTEGER :: i,k,l
    REAL(KIND=r8) :: ac1o3,ac1o2,ac2o3    

    acuv=0.0_r8;ac1o3=0.0_r8;ac1o2=0.0_r8;ac2o3=0.0_r8
    !
    !
    DO i=1,m
       DO k=1,np
          !
          ! 
          ac1o3=ac1o3l(1)      
          IF (uo3s(i,k).GT.u1o3(22)) ac1o3=ac1o3l(22)
          !                 
          DO l=1,21      
             IF (uo3s(i,k).GT.u1o3(l).AND.uo3s(i,k).LE.u1o3(l+1)) THEN 
                ac1o3=ac1o3l(l)+(ac1o3l(l)-ac1o3l(l+1))*(uo3s(i,k)- &
                     u1o3(l))/(u1o3(l)-u1o3(l+1)) 
             ENDIF
          ENDDO

          !
          ac1o2=ac1o2l(1)
          IF (uo2s(i,k).GT.u1o2(7)) ac1o2=ac1o2l(7) 
          DO l=1,6      
             IF (uo2s(i,k).GT.u1o2(l).AND.uo2s(i,k).LE.u1o2(l+1)) THEN 
                ac1o2=ac1o2l(l)+(ac1o2l(l)-ac1o2l(l+1))*(uo2s(i,k)- &
                     u1o2(l))/(u1o2(l)-u1o2(l+1)) 
             ENDIF
          ENDDO
          !

          acuv(i,k,1)=ac1o3*uo3(i,k)+ac1o2*uo2(i,k)
          !
          ac2o3=ac2o3l(1)
          IF (uo3s(i,k).GT.u2o3(8)) ac2o3=ac2o3l(8)       
          DO l=1,7      
             IF (uo3s(i,k).GT.u2o3(l).AND.uo3s(i,k).LE.u2o3(l+1)) THEN 
                ac2o3=ac2o3l(l)+(ac2o3l(l)-ac2o3l(l+1))*(uo3s(i,k)- &
                     u2o3(l))/(u2o3(l)-u2o3(l+1)) 
             ENDIF
          ENDDO
          !
          acuv(i,k,2)=ac2o3*uo3(i,k) 
          acuv(i,k,3)=1.93e-4_r8*uo3(i,k)+2.0e-5_r8*uh2o(i,k)
          !
          !
       ENDDO
    ENDDO
    !      
  END SUBROUTINE kuv
  !
  !
  !
  SUBROUTINE kir ( m         , & !  INTEGER      , INTENT(IN) :: m
       np        , & !  INTEGER      , INTENT(IN) :: np
       uo2       , & !  REAL(KIND=r8), INTENT(IN) :: uo2  (m,np)
       uo3       , & !  REAL(KIND=r8), INTENT(IN) :: uo3  (m,np) 
       uco2      , & !  REAL(KIND=r8), INTENT(IN) :: uco2 (m,np)
       uh2o      , & !  REAL(KIND=r8), INTENT(IN) :: uh2o (m,np)
       uo2s      , & !  REAL(KIND=r8), INTENT(IN) :: uo2s (m,np)
       uo3s      , & !  REAL(KIND=r8), INTENT(IN) :: uo3s (m,np)
       uco2s     , & !  REAL(KIND=r8), INTENT(IN) :: uco2s(m,np)
       uh2os     , & !  REAL(KIND=r8), INTENT(IN) :: uh2os(m,np)
       temp      , & !  REAL(KIND=r8), INTENT(IN) :: temp (m,np)
       ts        , & !  REAL(KIND=r8), INTENT(IN) :: ts   (m)   
       pres      , & !  REAL(KIND=r8), INTENT(IN) :: pres (m,np)
       acir        ) !  REAL(KIND=r8), INTENT(OUT):: acir(m,np,20)
    !      
    !   Parameterizations of Fomin and Correa, 2005:  
    !   The subroutine is written by Tarasova Aug. 2005
    !     infrared solar spectrum, 5 intervals, 12 channels
    !               input parameters:
    !     m - number of model grid points
    !     np - number of levels
    !    uco2(m,np),uh2o(m,np) - concentration of CO2,H2O  in molec/(cm2 km) 
    !    divided by  1.0e+19 and 1.0e+21
    !    uo3(m,np),uo2(m,np)  -  concentration of O3,O2  in molec/(cm2 km) 
    !    divided by 1.0e+17 and 1.0e+22
    !    uco2s(m,np),uh2os(m,np),uo3s(m,np,),uo2s(m,np), - amount of CO2,H2O,O3,O2 
    !    at the solar beam in molec/cm2 divided by 1.0e+19, 1.0e+21, 1.0e+17 and 1.0e+22
    !    temp(m,np),ts(m), pres(m,np) - temperature in K, surface temp., pressure in atm
    !               output parameter:
    !    acir(m,np,20) - volume absorption coefficient (km-1) in 20 channels 5*4
    !    
    !        
    IMPLICIT NONE 

    !tar
    !INTEGER, PARAMETER :: r8 = SELECTED_REAL_KIND(15) ! Kind for 64-bits Real Numbers
    !tar
    !     
    !---- INPUT VARIABLES --------------------------------------------------! 
    !     
    INTEGER      , INTENT(IN) :: m
    INTEGER      , INTENT(IN) :: np
    REAL(KIND=r8), INTENT(IN) :: uco2 (m,np)
    REAL(KIND=r8), INTENT(IN) :: uh2o (m,np)
    REAL(KIND=r8), INTENT(IN) :: uo2  (m,np)
    REAL(KIND=r8), INTENT(IN) :: uo3  (m,np)
    REAL(KIND=r8), INTENT(IN) :: uco2s(m,np)
    REAL(KIND=r8), INTENT(IN) :: uh2os(m,np)
    REAL(KIND=r8), INTENT(IN) :: uo2s (m,np)
    REAL(KIND=r8), INTENT(IN) :: uo3s (m,np)
    REAL(KIND=r8), INTENT(IN) :: temp (m,np)
    REAL(KIND=r8), INTENT(IN) :: pres (m,np)
    REAL(KIND=r8), INTENT(IN) :: ts   (m)   
    !                  
    !---- OUTPUT VARIABLES -------------------------------------------------!
    !    
    REAL(KIND=r8), INTENT(OUT) :: acir(m,np,20)


    !
    !---- PARAMETERS -------------------------------------------------------!
    !
    REAL(KIND=r8), PARAMETER, DIMENSION(8)  :: u4o2 = (/ &
         0.01_r8,0.05_r8,0.1_r8,0.3_r8,1.0_r8,3.0_r8,10.0_r8,100.0_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(8)  :: ac4o2l = (/ &
         1.9e-2_r8,1.8e-2_r8,1.5e-2_r8,1.0e-2_r8,0.7e-2_r8,0.48e-2_r8, &
         0.25e-2_r8,0.25e-2_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(8)  :: u11h2o = (/ &
         0.01_r8,0.1_r8,1.0_r8,10.0_r8,20.0_r8,40.0_r8,100.0_r8,1000.0_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(8)  :: ac11h2ol = (/ &
         0.823e-2_r8,1.65e-2_r8,2.35e-2_r8,3.29e-2_r8,3.53e-2_r8, &
         3.47e-2_r8,2.7e-2_r8,1.76e-2_r8 /)      
    REAL(KIND=r8), PARAMETER, DIMENSION(9)  :: u7h2o = (/ &
         0.001_r8,0.01_r8,0.03_r8,0.1_r8,1.0_r8, &
         3.0_r8,20.0_r8,100.0_r8,200.0_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(9)  :: ac7h2ol = (/ &
         7.61e-2_r8,6.85e-2_r8,6.52e-2_r8,5.98e-2_r8,3.81e-2_r8, &
         2.72e-2_r8,1.63e-2_r8,1.09e-2_r8,0.978e-2_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(10)  :: u8co2 = (/ &
         4.0e-5_r8,1.0e-4_r8,4.0e-4_r8,0.002_r8,0.01_r8,0.1_r8, &
         1.0_r8,10.0_r8,100.0_r8,1.0e+3_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(10)  :: ac8co2l = (/ &
         0.8_r8,0.5_r8,0.25_r8,0.1_r8,0.06_r8, &
         0.02_r8,0.008_r8,0.0045_r8,0.0025_r8,0.0013_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(10)  :: u10h2o = (/ &
         0.01_r8,0.1_r8,1.0_r8,4.0_r8,10.0_r8,40.0_r8, &
         70.0_r8,100.0_r8,200.0_r8,1000.0_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(10)  :: ac10h2ol = (/ &
         1.8e-3_r8,2.34e-3_r8,3.19e-3_r8,4.03e-3_r8,4.67e-3_r8, &
         6.05e-3_r8,6.26e-3_r8,6.37e-3_r8,6.26e-3_r8,5.84e-3_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(10)  :: u15h2o = (/ &
         1.0e-5_r8,1.0e-4_r8,0.001_r8,0.01_r8,0.1_r8,1.0_r8, &
         3.0_r8,10.0_r8,40.0_r8,100.0_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(10)  :: ac15h2ol = (/ &
         7.49_r8,4.16_r8,1.17_r8,1.66_r8,0.749_r8, &
         0.25_r8,0.125_r8,0.0666_r8,0.0499_r8,0.025_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(11)  :: u14h2o = (/ & 
         1.0e-3_r8,0.01_r8,0.1_r8,1.0_r8,10.0_r8,20.0_r8, &
         40.0_r8,100.0_r8,150.0_r8,200.0_r8,1000.0_r8 /)     
    REAL(KIND=r8), PARAMETER, DIMENSION(11)  :: ac14h2ol = (/ &
         0.209e-2_r8,0.313e-2_r8,0.584e-2_r8,0.834e-2_r8,1.3e-2_r8, &
         1.46e-2_r8,1.49e-2_r8,1.25e-2_r8,1.1e-2_r8,1.04e-2_r8,0.834e-2_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(12)  :: u12h2o = (/ &
         1.0e-4_r8,0.001_r8,0.005_r8,0.0105_r8,0.02_r8, &
         0.2_r8,0.7_r8,2.0_r8,5.0_r8,20.0_r8,100.0_r8,1.0e+3_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(12)  :: ac12h2ol = (/ & 
         1.7_r8,1.22_r8,0.85_r8,0.878_r8,0.756_r8, &
         0.425_r8,0.255_r8,0.189_r8,0.142_r8,0.085_r8,0.0283_r8,9.45e-4_r8  /)  
    REAL(KIND=r8), PARAMETER, DIMENSION(15)  :: u8h2o = (/ &
         1.0e-6_r8,5.0e-7_r8,1.0e-5_r8,4.0e-5_r8,1.0e-4_r8,5.0e-4_r8, &
         0.001_r8,0.005_r8,0.01_r8,0.07_r8,0.4_r8,2.0_r8,8.0_r8,20.0_r8,1.0e+2_r8 /)
    REAL(KIND=r8), PARAMETER, DIMENSION(15)  :: ac8h2ol = (/ &
         4.0_r8,6.0_r8,7.0_r8,6.0_r8,4.5_r8, &
         2.0_r8,1.4_r8,1.78_r8,1.75_r8,0.8_r8,0.3_r8,0.05_r8, &
         0.01_r8,0.004_r8,0.001_r8 /)   
    ! 
    !---- LOCAL  VARIABLES -------------------------------------------------! 
    !
    INTEGER :: i,k,l
    REAL(KIND=r8) :: tmpr, tmpr1,ac4o2, ac7h2o,ac8h2o,ac8co2,ac10h2o, &
         ac11h2o,ac12h2o,ac14h2o,ac15h2o 

    acir=0.0_r8
    tmpr= 0.0_r8; tmpr1= 0.0_r8;ac4o2= 0.0_r8; ac7h2o= 0.0_r8;ac8h2o= 0.0_r8;ac8co2= 0.0_r8;ac10h2o= 0.0_r8
    ac11h2o= 0.0_r8;ac12h2o= 0.0_r8;ac14h2o= 0.0_r8;ac15h2o = 0.0_r8
    !---------------------------------------------------------------!
    !      
    DO i=1,m
       DO k=1,np
          !            
          !   
          ac4o2=ac4o2l(1)
          IF (uo2s(i,k).GT.u4o2(8)) ac4o2=ac4o2l(8)
          DO l=1,7      
             IF (uo2s(i,k).GT.u4o2(l).AND.uo2s(i,k).LE.u4o2(l+1)) THEN 
                ac4o2=ac4o2l(l)+(ac4o2l(l)-ac4o2l(l+1))*(uo2s(i,k)- &
                     u4o2(l))/(u4o2(l)-u4o2(l+1)) 
             ENDIF
          ENDDO
          !
          acir(i,k,1)=ac4o2*uo2(i,k)
          acir(i,k,2)=0.0_r8      
          acir(i,k,3)=0.0_r8
          acir(i,k,4)=0.0_r8           
          !  
          tmpr=3.2_r8**((300.0_r8-temp(i,k))/43.0_r8)
          tmpr1=3.2_r8**((300.0_r8-temp(i,k))/25.0_r8)

          acir(i,k,5)=1.35e-4_r8*(1.0_r8-0.0007_r8*(300.0_r8-temp(i,k)))* &
               (pres(i,k)**0.77_r8)*uh2o(i,k)+1.19e-5_r8*(pres(i,k)**0.59_r8)*uo2(i,k)+ &
               1.7e-5_r8*uo3(i,k) 

          acir(i,k,6)=2.1e-3_r8*(pres(i,k)**0.55_r8)*uh2o(i,k)+ &
               1.4e-5_r8*uo3(i,k)        
          !
          ac7h2o=ac7h2ol(1)                 
          IF (uh2os(i,k).GT.u7h2o(9)) ac7h2o=ac7h2ol(9)

          DO l=1,8      
             IF (uh2os(i,k).GT.u7h2o(l).AND.uh2os(i,k).LE.u7h2o(l+1)) THEN 
                ac7h2o=ac7h2ol(l)+(ac7h2ol(l)-ac7h2ol(l+1))*(uh2os(i,k)- &
                     u7h2o(l))/(u7h2o(l)-u7h2o(l+1)) 
             ENDIF
          ENDDO
          !      
          acir(i,k,7)=ac7h2o*uh2o(i,k)
          acir(i,k,8)=0.0_r8      
          !
          ac8h2o=ac8h2ol(1)
          IF (uh2os(i,k).GT.u8h2o(15)) ac8h2o=ac8h2ol(7) 
          DO l=1,14      
             IF (uh2os(i,k).GT.u8h2o(l).AND.uh2os(i,k).LE.u8h2o(l+1)) THEN 
                ac8h2o=ac8h2ol(l)+(ac8h2ol(l)-ac8h2ol(l+1))*(uh2os(i,k)- &
                     u8h2o(l))/(u8h2o(l)-u8h2o(l+1)) 
             ENDIF
          ENDDO
          !
          !              
          !      
          ac8co2=ac8co2l(1)
          IF (uco2s(i,k).GT.u8co2(10)) ac8co2=ac8co2l(10) 
          DO l=1,9      
             IF (uco2s(i,k).GT.u8co2(l).AND.uco2s(i,k).LE.u8co2(l+1)) THEN 
                ac8co2=ac8co2l(l)+(ac8co2l(l)-ac8co2l(l+1))*(uco2s(i,k)- &
                     u8co2(l))/(u8co2(l)-u8co2(l+1)) 
             ENDIF
          ENDDO
          !                  
          acir(i,k,9)=ac8h2o*uh2o(i,k)+ac8co2*uco2(i,k) 
          acir(i,k,10)=0.0_r8 
          acir(i,k,11)=0.0_r8
          acir(i,k,12)=0.0_r8                          
          !
          acir(i,k,13)=3.77e-4_r8*(1.0_r8-0.00372_r8*(300.0_r8-temp(i,k)))* &
               (pres(i,k)**0.65_r8)*uh2o(i,k)+6.5e-7_r8*tmpr* &
               (uh2o(i,k)**2.0_r8)+1.55e-5_r8*(pres(i,k)**0.54_r8)*uco2(i,k)
          !
          !
          ac10h2o=ac10h2ol(1)
          IF (uh2os(i,k).GT.u10h2o(10)) ac10h2o=ac10h2ol(10)       
          DO l=1,9      
             IF (uh2os(i,k).GT.u10h2o(l).AND.uh2os(i,k).LE.u10h2o(l+1)) THEN 
                ac10h2o=ac10h2ol(l)+(ac10h2ol(l)-ac10h2ol(l+1))*(uh2os(i,k)- &
                     u10h2o(l))/(u10h2o(l)-u10h2o(l+1)) 
             ENDIF
          ENDDO
          !      
          acir(i,k,14)=ac10h2o*((300.0_r8/ts(i))**1.3_r8)*uh2o(i,k)+6.5e-6_r8*tmpr* &
               (uh2o(i,k)**2.0_r8)+2.09e-5_r8*(pres(i,k)**0.626_r8)*uco2(i,k)

          ac11h2o=ac11h2ol(1)
          IF (uh2os(i,k).GT.u11h2o(8)) ac11h2o=ac11h2ol(8)       
          DO l=1,7      
             IF (uh2os(i,k).GT.u11h2o(l).AND.uh2os(i,k).LE.u11h2o(l+1)) THEN 
                ac11h2o=ac11h2ol(l)+(ac11h2ol(l)-ac11h2ol(l+1))*(uh2os(i,k)- &
                     u11h2o(l))/(u11h2o(l)-u11h2o(l+1)) 
             ENDIF
          ENDDO
          !      
          acir(i,k,15)= ac11h2o*((300.0_r8/ts(i))**2.1_r8)*uh2o(i,k)+2.5e-5_r8*tmpr* &
               (uh2o(i,k)**2.0_r8)+2.60e-5_r8*(pres(i,k)**0.606_r8)*uco2(i,k)    


          ac12h2o=ac12h2ol(1)
          IF (uh2os(i,k).GT.u12h2o(12)) ac12h2o=ac12h2ol(12)       
          DO l=1,11      
             IF (uh2os(i,k).GT.u12h2o(l).AND.uh2os(i,k).LE.u12h2o(l+1)) THEN 
                ac12h2o=ac12h2ol(l)+(ac12h2ol(l)-ac12h2ol(l+1))*(uh2os(i,k)- &
                     u12h2o(l))/(u12h2o(l)-u12h2o(l+1)) 
             ENDIF
          ENDDO
          !      
          acir(i,k,16)= ac12h2o*((300.0_r8/ts(i))**1.2_r8)*uh2o(i,k)+8.0e-5_r8*tmpr* &
               (uh2o(i,k)**2.0_r8)+6.85e-6_r8*(pres(i,k)**0.518_r8)*uco2(i,k)    
          ! 
          acir(i,k,17)= 1.3e-3_r8*(1.0_r8-0.00235_r8*(300.0_r8-temp(i,k)))* &
               (pres(i,k)**0.65_r8)*uh2o(i,k)+6.0e-6_r8*tmpr*(uh2o(i,k)**2.0_r8)+ &
               1.99e-5_r8*(pres(i,k)**0.782_r8)*uco2(i,k)     
          !

          ac14h2o=ac14h2ol(1)
          IF (uh2os(i,k).GT.u14h2o(11)) ac14h2o=ac14h2ol(11)       
          DO l=1,10      
             IF (uh2os(i,k).GT.u14h2o(l).AND.uh2os(i,k).LE.u14h2o(l+1)) THEN 
                ac14h2o=ac14h2ol(l)+(ac14h2ol(l)-ac14h2ol(l+1))*(uh2os(i,k)- &
                     u14h2o(l))/(u14h2o(l)-u14h2o(l+1)) 
             ENDIF
          ENDDO
          !      
          acir(i,k,18)= ac14h2o*uh2o(i,k)+2.6e-5_r8*tmpr* &
               (uh2o(i,k)**2.0_r8)+9.49e-6_r8*(pres(i,k)**0.609_r8)*uco2(i,k)                
          !
          ac15h2o=ac15h2ol(1)
          IF (uh2os(i,k).GT.u15h2o(10)) ac15h2o=ac15h2ol(10)       
          DO l=1,9      
             IF (uh2os(i,k).GT.u15h2o(l).AND.uh2os(i,k).LE.u15h2o(l+1)) THEN 
                ac15h2o=ac15h2ol(l)+(ac15h2ol(l)-ac15h2ol(l+1))*(uh2os(i,k)- &
                     u15h2o(l))/(u15h2o(l)-u15h2o(l+1)) 
             ENDIF
          ENDDO
          !      
          acir(i,k,19)= ac15h2o*uh2o(i,k)+2.0e-4_r8*tmpr1* &
               (uh2o(i,k)**2.0_r8)+3.64e-5_r8*(pres(i,k)**0.799_r8)*uco2(i,k)                
          !        
          acir(i,k,20)=0.0_r8
          !           
       ENDDO
    ENDDO
    !         
  END SUBROUTINE kir

  SUBROUTINE read_table()
    IMPLICIT NONE
    REAL(KIND=r8) :: data2(nm*nt*na)
    REAL(KIND=r8) :: data1(nt*na)

    INTEGER :: i,j,k,it 

    data2(1:nm*nt*na)=RESHAPE(SOURCE=(/&
         0.000_r8,0.068_r8,0.140_r8,0.216_r8,0.298_r8,0.385_r8,0.481_r8,0.586_r8,0.705_r8,0.840_r8,1.000_r8, &
         0.000_r8,0.052_r8,0.106_r8,0.166_r8,0.230_r8,0.302_r8,0.383_r8,0.478_r8,0.595_r8,0.752_r8,1.000_r8, &
         0.000_r8,0.038_r8,0.078_r8,0.120_r8,0.166_r8,0.218_r8,0.276_r8,0.346_r8,0.438_r8,0.582_r8,1.000_r8, &
         0.000_r8,0.030_r8,0.060_r8,0.092_r8,0.126_r8,0.164_r8,0.206_r8,0.255_r8,0.322_r8,0.442_r8,1.000_r8, &
         0.000_r8,0.025_r8,0.051_r8,0.078_r8,0.106_r8,0.136_r8,0.170_r8,0.209_r8,0.266_r8,0.462_r8,1.000_r8, &
         0.000_r8,0.023_r8,0.046_r8,0.070_r8,0.095_r8,0.122_r8,0.150_r8,0.187_r8,0.278_r8,0.577_r8,1.000_r8, &
         0.000_r8,0.022_r8,0.043_r8,0.066_r8,0.089_r8,0.114_r8,0.141_r8,0.187_r8,0.354_r8,0.603_r8,1.000_r8, &
         0.000_r8,0.021_r8,0.042_r8,0.063_r8,0.086_r8,0.108_r8,0.135_r8,0.214_r8,0.349_r8,0.565_r8,1.000_r8, &
         0.000_r8,0.021_r8,0.041_r8,0.062_r8,0.083_r8,0.105_r8,0.134_r8,0.202_r8,0.302_r8,0.479_r8,1.000_r8, &
         0.000_r8,0.088_r8,0.179_r8,0.272_r8,0.367_r8,0.465_r8,0.566_r8,0.669_r8,0.776_r8,0.886_r8,1.000_r8, &
         0.000_r8,0.079_r8,0.161_r8,0.247_r8,0.337_r8,0.431_r8,0.531_r8,0.637_r8,0.749_r8,0.870_r8,1.000_r8, &
         0.000_r8,0.065_r8,0.134_r8,0.207_r8,0.286_r8,0.372_r8,0.466_r8,0.572_r8,0.692_r8,0.831_r8,1.000_r8, &
         0.000_r8,0.049_r8,0.102_r8,0.158_r8,0.221_r8,0.290_r8,0.370_r8,0.465_r8,0.583_r8,0.745_r8,1.000_r8, &
         0.000_r8,0.037_r8,0.076_r8,0.118_r8,0.165_r8,0.217_r8,0.278_r8,0.354_r8,0.459_r8,0.638_r8,1.000_r8, &
         0.000_r8,0.030_r8,0.061_r8,0.094_r8,0.130_r8,0.171_r8,0.221_r8,0.286_r8,0.398_r8,0.631_r8,1.000_r8, &
         0.000_r8,0.026_r8,0.052_r8,0.081_r8,0.111_r8,0.146_r8,0.189_r8,0.259_r8,0.407_r8,0.643_r8,1.000_r8, &
         0.000_r8,0.023_r8,0.047_r8,0.072_r8,0.098_r8,0.129_r8,0.170_r8,0.250_r8,0.387_r8,0.598_r8,1.000_r8, &
         0.000_r8,0.022_r8,0.044_r8,0.066_r8,0.090_r8,0.118_r8,0.156_r8,0.224_r8,0.328_r8,0.508_r8,1.000_r8, &
         0.000_r8,0.094_r8,0.189_r8,0.285_r8,0.383_r8,0.482_r8,0.582_r8,0.685_r8,0.788_r8,0.894_r8,1.000_r8, &
         0.000_r8,0.088_r8,0.178_r8,0.271_r8,0.366_r8,0.465_r8,0.565_r8,0.669_r8,0.776_r8,0.886_r8,1.000_r8, &
         0.000_r8,0.079_r8,0.161_r8,0.247_r8,0.337_r8,0.431_r8,0.531_r8,0.637_r8,0.750_r8,0.870_r8,1.000_r8, &
         0.000_r8,0.066_r8,0.134_r8,0.209_r8,0.289_r8,0.375_r8,0.470_r8,0.577_r8,0.697_r8,0.835_r8,1.000_r8, &
         0.000_r8,0.050_r8,0.104_r8,0.163_r8,0.227_r8,0.300_r8,0.383_r8,0.483_r8,0.606_r8,0.770_r8,1.000_r8, &
         0.000_r8,0.038_r8,0.080_r8,0.125_r8,0.175_r8,0.233_r8,0.302_r8,0.391_r8,0.518_r8,0.710_r8,1.000_r8, &
         0.000_r8,0.031_r8,0.064_r8,0.100_r8,0.141_r8,0.188_r8,0.249_r8,0.336_r8,0.476_r8,0.689_r8,1.000_r8, &
         0.000_r8,0.026_r8,0.054_r8,0.084_r8,0.118_r8,0.158_r8,0.213_r8,0.298_r8,0.433_r8,0.638_r8,1.000_r8, &
         0.000_r8,0.023_r8,0.048_r8,0.074_r8,0.102_r8,0.136_r8,0.182_r8,0.254_r8,0.360_r8,0.542_r8,1.000_r8, &
         0.000_r8,0.096_r8,0.193_r8,0.290_r8,0.389_r8,0.488_r8,0.589_r8,0.690_r8,0.792_r8,0.896_r8,1.000_r8, &
         0.000_r8,0.092_r8,0.186_r8,0.281_r8,0.378_r8,0.477_r8,0.578_r8,0.680_r8,0.785_r8,0.891_r8,1.000_r8, &
         0.000_r8,0.086_r8,0.174_r8,0.264_r8,0.358_r8,0.455_r8,0.556_r8,0.660_r8,0.769_r8,0.882_r8,1.000_r8, &
         0.000_r8,0.074_r8,0.153_r8,0.235_r8,0.323_r8,0.416_r8,0.514_r8,0.622_r8,0.737_r8,0.862_r8,1.000_r8, &
         0.000_r8,0.061_r8,0.126_r8,0.195_r8,0.271_r8,0.355_r8,0.449_r8,0.555_r8,0.678_r8,0.823_r8,1.000_r8, &
         0.000_r8,0.047_r8,0.098_r8,0.153_r8,0.215_r8,0.286_r8,0.370_r8,0.471_r8,0.600_r8,0.770_r8,1.000_r8, &
         0.000_r8,0.037_r8,0.077_r8,0.120_r8,0.170_r8,0.230_r8,0.303_r8,0.401_r8,0.537_r8,0.729_r8,1.000_r8, &
         0.000_r8,0.030_r8,0.062_r8,0.098_r8,0.138_r8,0.187_r8,0.252_r8,0.343_r8,0.476_r8,0.673_r8,1.000_r8, &
         0.000_r8,0.026_r8,0.053_r8,0.082_r8,0.114_r8,0.154_r8,0.207_r8,0.282_r8,0.391_r8,0.574_r8,1.000_r8, &
         0.000_r8,0.097_r8,0.194_r8,0.293_r8,0.392_r8,0.492_r8,0.592_r8,0.693_r8,0.794_r8,0.897_r8,1.000_r8, &
         0.000_r8,0.094_r8,0.190_r8,0.286_r8,0.384_r8,0.483_r8,0.584_r8,0.686_r8,0.789_r8,0.894_r8,1.000_r8, &
         0.000_r8,0.090_r8,0.181_r8,0.274_r8,0.370_r8,0.468_r8,0.569_r8,0.672_r8,0.778_r8,0.887_r8,1.000_r8, &
         0.000_r8,0.081_r8,0.165_r8,0.252_r8,0.343_r8,0.439_r8,0.539_r8,0.645_r8,0.757_r8,0.874_r8,1.000_r8, &
         0.000_r8,0.069_r8,0.142_r8,0.218_r8,0.302_r8,0.392_r8,0.490_r8,0.598_r8,0.717_r8,0.850_r8,1.000_r8, &
         0.000_r8,0.054_r8,0.114_r8,0.178_r8,0.250_r8,0.330_r8,0.422_r8,0.529_r8,0.656_r8,0.810_r8,1.000_r8, &
         0.000_r8,0.042_r8,0.090_r8,0.141_r8,0.200_r8,0.269_r8,0.351_r8,0.455_r8,0.589_r8,0.764_r8,1.000_r8, &
         0.000_r8,0.034_r8,0.070_r8,0.112_r8,0.159_r8,0.217_r8,0.289_r8,0.384_r8,0.515_r8,0.703_r8,1.000_r8, &
         0.000_r8,0.028_r8,0.058_r8,0.090_r8,0.128_r8,0.174_r8,0.231_r8,0.309_r8,0.420_r8,0.602_r8,1.000_r8, &
         0.000_r8,0.098_r8,0.196_r8,0.295_r8,0.394_r8,0.494_r8,0.594_r8,0.695_r8,0.796_r8,0.898_r8,1.000_r8, &
         0.000_r8,0.096_r8,0.193_r8,0.290_r8,0.389_r8,0.488_r8,0.588_r8,0.690_r8,0.792_r8,0.895_r8,1.000_r8, &
         0.000_r8,0.092_r8,0.186_r8,0.281_r8,0.378_r8,0.477_r8,0.577_r8,0.680_r8,0.784_r8,0.891_r8,1.000_r8, &
         0.000_r8,0.086_r8,0.174_r8,0.264_r8,0.358_r8,0.455_r8,0.556_r8,0.661_r8,0.769_r8,0.882_r8,1.000_r8, &
         0.000_r8,0.075_r8,0.154_r8,0.237_r8,0.325_r8,0.419_r8,0.518_r8,0.626_r8,0.741_r8,0.865_r8,1.000_r8, &
         0.000_r8,0.062_r8,0.129_r8,0.201_r8,0.279_r8,0.366_r8,0.462_r8,0.571_r8,0.694_r8,0.836_r8,1.000_r8, &
         0.000_r8,0.049_r8,0.102_r8,0.162_r8,0.229_r8,0.305_r8,0.394_r8,0.501_r8,0.631_r8,0.793_r8,1.000_r8, &
         0.000_r8,0.038_r8,0.080_r8,0.127_r8,0.182_r8,0.245_r8,0.323_r8,0.422_r8,0.550_r8,0.730_r8,1.000_r8, &
         0.000_r8,0.030_r8,0.064_r8,0.100_r8,0.142_r8,0.192_r8,0.254_r8,0.334_r8,0.448_r8,0.627_r8,1.000_r8, &
         0.000_r8,0.098_r8,0.198_r8,0.296_r8,0.396_r8,0.496_r8,0.596_r8,0.696_r8,0.797_r8,0.898_r8,1.000_r8, &
         0.000_r8,0.097_r8,0.194_r8,0.293_r8,0.392_r8,0.491_r8,0.591_r8,0.693_r8,0.794_r8,0.897_r8,1.000_r8, &
         0.000_r8,0.094_r8,0.190_r8,0.286_r8,0.384_r8,0.483_r8,0.583_r8,0.686_r8,0.789_r8,0.894_r8,1.000_r8, &
         0.000_r8,0.089_r8,0.180_r8,0.274_r8,0.369_r8,0.467_r8,0.568_r8,0.672_r8,0.778_r8,0.887_r8,1.000_r8, &
         0.000_r8,0.081_r8,0.165_r8,0.252_r8,0.344_r8,0.440_r8,0.541_r8,0.646_r8,0.758_r8,0.875_r8,1.000_r8, &
         0.000_r8,0.069_r8,0.142_r8,0.221_r8,0.306_r8,0.397_r8,0.496_r8,0.604_r8,0.722_r8,0.854_r8,1.000_r8, &
         0.000_r8,0.056_r8,0.116_r8,0.182_r8,0.256_r8,0.338_r8,0.432_r8,0.540_r8,0.666_r8,0.816_r8,1.000_r8, &
         0.000_r8,0.043_r8,0.090_r8,0.143_r8,0.203_r8,0.273_r8,0.355_r8,0.455_r8,0.583_r8,0.754_r8,1.000_r8, &
         0.000_r8,0.034_r8,0.070_r8,0.111_r8,0.157_r8,0.210_r8,0.276_r8,0.359_r8,0.474_r8,0.650_r8,1.000_r8, &
         0.000_r8,0.099_r8,0.198_r8,0.298_r8,0.398_r8,0.497_r8,0.598_r8,0.698_r8,0.798_r8,0.899_r8,1.000_r8, &
         0.000_r8,0.098_r8,0.196_r8,0.295_r8,0.394_r8,0.494_r8,0.594_r8,0.695_r8,0.796_r8,0.898_r8,1.000_r8, &
         0.000_r8,0.096_r8,0.193_r8,0.290_r8,0.390_r8,0.489_r8,0.589_r8,0.690_r8,0.793_r8,0.896_r8,1.000_r8, &
         0.000_r8,0.093_r8,0.186_r8,0.282_r8,0.379_r8,0.478_r8,0.578_r8,0.681_r8,0.786_r8,0.892_r8,1.000_r8, &
         0.000_r8,0.086_r8,0.175_r8,0.266_r8,0.361_r8,0.458_r8,0.558_r8,0.663_r8,0.771_r8,0.883_r8,1.000_r8, &
         0.000_r8,0.076_r8,0.156_r8,0.240_r8,0.330_r8,0.423_r8,0.523_r8,0.630_r8,0.744_r8,0.867_r8,1.000_r8, &
         0.000_r8,0.063_r8,0.130_r8,0.203_r8,0.282_r8,0.369_r8,0.465_r8,0.572_r8,0.694_r8,0.834_r8,1.000_r8, &
         0.000_r8,0.049_r8,0.102_r8,0.161_r8,0.226_r8,0.299_r8,0.385_r8,0.486_r8,0.611_r8,0.774_r8,1.000_r8, &
         0.000_r8,0.038_r8,0.078_r8,0.122_r8,0.172_r8,0.229_r8,0.297_r8,0.382_r8,0.498_r8,0.672_r8,1.000_r8, &
         0.000_r8,0.099_r8,0.199_r8,0.298_r8,0.398_r8,0.498_r8,0.598_r8,0.699_r8,0.799_r8,0.899_r8,1.000_r8, &
         0.000_r8,0.099_r8,0.198_r8,0.298_r8,0.398_r8,0.497_r8,0.598_r8,0.698_r8,0.798_r8,0.899_r8,1.000_r8, &
         0.000_r8,0.098_r8,0.196_r8,0.295_r8,0.394_r8,0.494_r8,0.594_r8,0.695_r8,0.796_r8,0.898_r8,1.000_r8, &
         0.000_r8,0.096_r8,0.193_r8,0.290_r8,0.389_r8,0.488_r8,0.588_r8,0.690_r8,0.792_r8,0.895_r8,1.000_r8, &
         0.000_r8,0.092_r8,0.185_r8,0.280_r8,0.376_r8,0.474_r8,0.575_r8,0.678_r8,0.782_r8,0.890_r8,1.000_r8, &
         0.000_r8,0.084_r8,0.170_r8,0.259_r8,0.351_r8,0.447_r8,0.547_r8,0.652_r8,0.762_r8,0.878_r8,1.000_r8, &
         0.000_r8,0.071_r8,0.146_r8,0.224_r8,0.308_r8,0.398_r8,0.494_r8,0.601_r8,0.718_r8,0.850_r8,1.000_r8, &
         0.000_r8,0.056_r8,0.114_r8,0.178_r8,0.248_r8,0.325_r8,0.412_r8,0.514_r8,0.638_r8,0.793_r8,1.000_r8, &
         0.000_r8,0.042_r8,0.086_r8,0.134_r8,0.186_r8,0.246_r8,0.318_r8,0.405_r8,0.521_r8,0.691_r8,1.000_r8, &
         0.000_r8,0.100_r8,0.200_r8,0.300_r8,0.400_r8,0.500_r8,0.600_r8,0.700_r8,0.800_r8,0.900_r8,1.000_r8, &
         0.000_r8,0.100_r8,0.200_r8,0.300_r8,0.400_r8,0.500_r8,0.600_r8,0.700_r8,0.800_r8,0.900_r8,1.000_r8, &
         0.000_r8,0.100_r8,0.200_r8,0.300_r8,0.400_r8,0.500_r8,0.600_r8,0.700_r8,0.800_r8,0.900_r8,1.000_r8, &
         0.000_r8,0.100_r8,0.199_r8,0.298_r8,0.398_r8,0.498_r8,0.598_r8,0.698_r8,0.798_r8,0.899_r8,1.000_r8, &
         0.000_r8,0.098_r8,0.196_r8,0.294_r8,0.392_r8,0.491_r8,0.590_r8,0.691_r8,0.793_r8,0.896_r8,1.000_r8, &
         0.000_r8,0.092_r8,0.185_r8,0.278_r8,0.374_r8,0.470_r8,0.570_r8,0.671_r8,0.777_r8,0.886_r8,1.000_r8, &
         0.000_r8,0.081_r8,0.162_r8,0.246_r8,0.333_r8,0.424_r8,0.521_r8,0.625_r8,0.738_r8,0.862_r8,1.000_r8, &
         0.000_r8,0.063_r8,0.128_r8,0.196_r8,0.270_r8,0.349_r8,0.438_r8,0.540_r8,0.661_r8,0.809_r8,1.000_r8, &
         0.000_r8,0.046_r8,0.094_r8,0.146_r8,0.202_r8,0.264_r8,0.337_r8,0.426_r8,0.542_r8,0.710_r8,1.000_r8, &
         0.000_r8,0.101_r8,0.202_r8,0.302_r8,0.402_r8,0.502_r8,0.602_r8,0.702_r8,0.802_r8,0.901_r8,1.000_r8, &
         0.000_r8,0.102_r8,0.202_r8,0.303_r8,0.404_r8,0.504_r8,0.604_r8,0.703_r8,0.802_r8,0.902_r8,1.000_r8, &
         0.000_r8,0.102_r8,0.205_r8,0.306_r8,0.406_r8,0.506_r8,0.606_r8,0.706_r8,0.804_r8,0.902_r8,1.000_r8, &
         0.000_r8,0.104_r8,0.207_r8,0.309_r8,0.410_r8,0.510_r8,0.609_r8,0.707_r8,0.805_r8,0.902_r8,1.000_r8, &
         0.000_r8,0.106_r8,0.208_r8,0.309_r8,0.409_r8,0.508_r8,0.606_r8,0.705_r8,0.803_r8,0.902_r8,1.000_r8, &
         0.000_r8,0.102_r8,0.202_r8,0.298_r8,0.395_r8,0.493_r8,0.590_r8,0.690_r8,0.790_r8,0.894_r8,1.000_r8, &
         0.000_r8,0.091_r8,0.179_r8,0.267_r8,0.357_r8,0.449_r8,0.545_r8,0.647_r8,0.755_r8,0.872_r8,1.000_r8, &
         0.000_r8,0.073_r8,0.142_r8,0.214_r8,0.290_r8,0.372_r8,0.462_r8,0.563_r8,0.681_r8,0.822_r8,1.000_r8, &
         0.000_r8,0.053_r8,0.104_r8,0.158_r8,0.217_r8,0.281_r8,0.356_r8,0.446_r8,0.562_r8,0.726_r8,1.000_r8/),SHAPE=(/nm*nt*na/))
    it=0
    DO k=1,nm
       DO i=1,nt
          DO j=1,na
             it=it+1
             caib(k,i,j) =data2(it)
          END DO
       END DO
    END DO

    data1(1:nt*na)=RESHAPE(SOURCE=(/&
         0.000_r8,0.099_r8,0.198_r8,0.297_r8,0.397_r8,0.496_r8,0.597_r8,0.697_r8,0.798_r8,0.899_r8,1.000_r8, &
         0.000_r8,0.098_r8,0.196_r8,0.294_r8,0.394_r8,0.494_r8,0.594_r8,0.694_r8,0.796_r8,0.898_r8,1.000_r8, &
         0.000_r8,0.096_r8,0.192_r8,0.290_r8,0.388_r8,0.487_r8,0.587_r8,0.689_r8,0.792_r8,0.895_r8,1.000_r8, &
         0.000_r8,0.092_r8,0.185_r8,0.280_r8,0.376_r8,0.476_r8,0.576_r8,0.678_r8,0.783_r8,0.890_r8,1.000_r8, &
         0.000_r8,0.085_r8,0.173_r8,0.263_r8,0.357_r8,0.454_r8,0.555_r8,0.659_r8,0.768_r8,0.881_r8,1.000_r8, &
         0.000_r8,0.076_r8,0.154_r8,0.237_r8,0.324_r8,0.418_r8,0.517_r8,0.624_r8,0.738_r8,0.864_r8,1.000_r8, &
         0.000_r8,0.063_r8,0.131_r8,0.203_r8,0.281_r8,0.366_r8,0.461_r8,0.567_r8,0.688_r8,0.830_r8,1.000_r8, &
         0.000_r8,0.052_r8,0.107_r8,0.166_r8,0.232_r8,0.305_r8,0.389_r8,0.488_r8,0.610_r8,0.770_r8,1.000_r8, &
         0.000_r8,0.043_r8,0.088_r8,0.136_r8,0.189_r8,0.248_r8,0.317_r8,0.400_r8,0.510_r8,0.675_r8,1.000_r8/),SHAPE=(/nt*na/))
    it=0
    DO i=1,nt
       DO j=1,na
          it=it+1
          caif(i,j)=data1(it)
       END DO
    END DO

    coa=RESHAPE(SOURCE=(/&
         0.0000080_r8,  0.0000089_r8,  0.0000098_r8,  0.0000106_r8,  0.0000114_r8,  &
         0.0000121_r8,  0.0000128_r8,  0.0000134_r8,  0.0000140_r8,  0.0000146_r8,  &
         0.0000152_r8,  0.0000158_r8,  0.0000163_r8,  0.0000168_r8,  0.0000173_r8,  &
         0.0000178_r8,  0.0000182_r8,  0.0000186_r8,  0.0000191_r8,  0.0000195_r8,  &
         0.0000199_r8,  0.0000202_r8,  0.0000206_r8,  0.0000210_r8,  0.0000213_r8,  &
         0.0000217_r8,  0.0000220_r8,  0.0000223_r8,  0.0000226_r8,  0.0000229_r8,  &
         0.0000232_r8,  0.0000235_r8,  0.0000238_r8,  0.0000241_r8,  0.0000244_r8,  &
         0.0000246_r8,  0.0000249_r8,  0.0000252_r8,  0.0000254_r8,  0.0000257_r8,  &
         0.0000259_r8,  0.0000261_r8,  0.0000264_r8,  0.0000266_r8,  0.0000268_r8,  &
         0.0000271_r8,  0.0000273_r8,  0.0000275_r8,  0.0000277_r8,  0.0000279_r8,  &
         0.0000281_r8,  0.0000283_r8,  0.0000285_r8,  0.0000287_r8,  0.0000289_r8,  &
         0.0000291_r8,  0.0000293_r8,  0.0000295_r8,  0.0000297_r8,  0.0000298_r8,  &
         0.0000300_r8,  0.0000302_r8, &
         0.0000085_r8,  0.0000095_r8,  0.0000104_r8,  0.0000113_r8,  0.0000121_r8,  &
         0.0000128_r8,  0.0000136_r8,  0.0000143_r8,  0.0000149_r8,  0.0000155_r8,  &
         0.0000161_r8,  0.0000167_r8,  0.0000172_r8,  0.0000178_r8,  0.0000183_r8,  &
         0.0000187_r8,  0.0000192_r8,  0.0000196_r8,  0.0000201_r8,  0.0000205_r8,  &
         0.0000209_r8,  0.0000213_r8,  0.0000217_r8,  0.0000220_r8,  0.0000224_r8,  &
         0.0000227_r8,  0.0000231_r8,  0.0000234_r8,  0.0000237_r8,  0.0000240_r8,  &
         0.0000243_r8,  0.0000246_r8,  0.0000249_r8,  0.0000252_r8,  0.0000255_r8,  &
         0.0000258_r8,  0.0000260_r8,  0.0000263_r8,  0.0000266_r8,  0.0000268_r8,  &
         0.0000271_r8,  0.0000273_r8,  0.0000275_r8,  0.0000278_r8,  0.0000280_r8,  &
         0.0000282_r8,  0.0000285_r8,  0.0000287_r8,  0.0000289_r8,  0.0000291_r8,  &
         0.0000293_r8,  0.0000295_r8,  0.0000297_r8,  0.0000299_r8,  0.0000301_r8,  &
         0.0000303_r8,  0.0000305_r8,  0.0000307_r8,  0.0000309_r8,  0.0000311_r8,  &
         0.0000313_r8,  0.0000314_r8, &
         0.0000095_r8,  0.0000106_r8,  0.0000116_r8,  0.0000125_r8,  0.0000134_r8,  &
         0.0000143_r8,  0.0000150_r8,  0.0000158_r8,  0.0000165_r8,  0.0000171_r8,  &
         0.0000178_r8,  0.0000184_r8,  0.0000189_r8,  0.0000195_r8,  0.0000200_r8,  &
         0.0000205_r8,  0.0000210_r8,  0.0000215_r8,  0.0000219_r8,  0.0000223_r8,  &
         0.0000228_r8,  0.0000232_r8,  0.0000235_r8,  0.0000239_r8,  0.0000243_r8,  &
         0.0000247_r8,  0.0000250_r8,  0.0000253_r8,  0.0000257_r8,  0.0000260_r8,  &
         0.0000263_r8,  0.0000266_r8,  0.0000269_r8,  0.0000272_r8,  0.0000275_r8,  &
         0.0000278_r8,  0.0000281_r8,  0.0000283_r8,  0.0000286_r8,  0.0000289_r8,  &
         0.0000291_r8,  0.0000294_r8,  0.0000296_r8,  0.0000299_r8,  0.0000301_r8,  &
         0.0000303_r8,  0.0000306_r8,  0.0000308_r8,  0.0000310_r8,  0.0000312_r8,  &
         0.0000315_r8,  0.0000317_r8,  0.0000319_r8,  0.0000321_r8,  0.0000323_r8,  &
         0.0000325_r8,  0.0000327_r8,  0.0000329_r8,  0.0000331_r8,  0.0000333_r8,  &
         0.0000335_r8,  0.0000329_r8, &
         0.0000100_r8,  0.0000111_r8,  0.0000122_r8,  0.0000131_r8,  0.0000141_r8,  &
         0.0000149_r8,  0.0000157_r8,  0.0000165_r8,  0.0000172_r8,  0.0000179_r8,  &
         0.0000185_r8,  0.0000191_r8,  0.0000197_r8,  0.0000203_r8,  0.0000208_r8,  &
         0.0000213_r8,  0.0000218_r8,  0.0000223_r8,  0.0000227_r8,  0.0000232_r8,  &
         0.0000236_r8,  0.0000240_r8,  0.0000244_r8,  0.0000248_r8,  0.0000252_r8,  &
         0.0000255_r8,  0.0000259_r8,  0.0000262_r8,  0.0000266_r8,  0.0000269_r8,  &
         0.0000272_r8,  0.0000275_r8,  0.0000278_r8,  0.0000281_r8,  0.0000284_r8,  &
         0.0000287_r8,  0.0000290_r8,  0.0000293_r8,  0.0000295_r8,  0.0000298_r8,  &
         0.0000300_r8,  0.0000303_r8,  0.0000306_r8,  0.0000308_r8,  0.0000310_r8,  &
         0.0000313_r8,  0.0000315_r8,  0.0000317_r8,  0.0000320_r8,  0.0000322_r8,  &
         0.0000324_r8,  0.0000326_r8,  0.0000328_r8,  0.0000331_r8,  0.0000333_r8,  &
         0.0000335_r8,  0.0000330_r8,  0.0000339_r8,  0.0000341_r8,  0.0000343_r8,  &
         0.0000345_r8,  0.0000346_r8, &
         0.0000109_r8,  0.0000121_r8,  0.0000132_r8,  0.0000143_r8,  0.0000152_r8,  &
         0.0000161_r8,  0.0000170_r8,  0.0000178_r8,  0.0000185_r8,  0.0000192_r8,  &
         0.0000199_r8,  0.0000205_r8,  0.0000211_r8,  0.0000217_r8,  0.0000222_r8,  &
         0.0000228_r8,  0.0000233_r8,  0.0000238_r8,  0.0000242_r8,  0.0000247_r8,  &
         0.0000251_r8,  0.0000255_r8,  0.0000259_r8,  0.0000263_r8,  0.0000267_r8,  &
         0.0000271_r8,  0.0000275_r8,  0.0000278_r8,  0.0000282_r8,  0.0000285_r8,  &
         0.0000288_r8,  0.0000291_r8,  0.0000295_r8,  0.0000298_r8,  0.0000301_r8,  &
         0.0000304_r8,  0.0000307_r8,  0.0000309_r8,  0.0000312_r8,  0.0000315_r8,  &
         0.0000318_r8,  0.0000320_r8,  0.0000323_r8,  0.0000325_r8,  0.0000328_r8,  &
         0.0000330_r8,  0.0000333_r8,  0.0000335_r8,  0.0000330_r8,  0.0000340_r8,  &
         0.0000342_r8,  0.0000344_r8,  0.0000346_r8,  0.0000348_r8,  0.0000351_r8,  &
         0.0000353_r8,  0.0000355_r8,  0.0000357_r8,  0.0000359_r8,  0.0000361_r8,  &
         0.0000363_r8,  0.0000365_r8, &
         0.0000117_r8,  0.0000130_r8,  0.0000142_r8,  0.0000153_r8,  0.0000163_r8,  &
         0.0000173_r8,  0.0000181_r8,  0.0000190_r8,  0.0000197_r8,  0.0000204_r8,  &
         0.0000211_r8,  0.0000218_r8,  0.0000224_r8,  0.0000230_r8,  0.0000235_r8,  &
         0.0000241_r8,  0.0000246_r8,  0.0000251_r8,  0.0000256_r8,  0.0000260_r8,  &
         0.0000265_r8,  0.0000269_r8,  0.0000273_r8,  0.0000277_r8,  0.0000281_r8,  &
         0.0000285_r8,  0.0000289_r8,  0.0000293_r8,  0.0000296_r8,  0.0000299_r8,  &
         0.0000303_r8,  0.0000306_r8,  0.0000309_r8,  0.0000313_r8,  0.0000316_r8,  &
         0.0000319_r8,  0.0000322_r8,  0.0000324_r8,  0.0000327_r8,  0.0000330_r8,  &
         0.0000333_r8,  0.0000336_r8,  0.0000331_r8,  0.0000341_r8,  0.0000343_r8,  &
         0.0000346_r8,  0.0000348_r8,  0.0000351_r8,  0.0000353_r8,  0.0000355_r8,  &
         0.0000358_r8,  0.0000360_r8,  0.0000362_r8,  0.0000365_r8,  0.0000367_r8,  &
         0.0000369_r8,  0.0000371_r8,  0.0000373_r8,  0.0000375_r8,  0.0000377_r8,  &
         0.0000379_r8,  0.0000381_r8, &
         0.0000125_r8,  0.0000139_r8,  0.0000151_r8,  0.0000163_r8,  0.0000173_r8,  &
         0.0000183_r8,  0.0000192_r8,  0.0000200_r8,  0.0000208_r8,  0.0000216_r8,  &
         0.0000223_r8,  0.0000229_r8,  0.0000236_r8,  0.0000242_r8,  0.0000247_r8,  &
         0.0000253_r8,  0.0000258_r8,  0.0000263_r8,  0.0000268_r8,  0.0000273_r8,  &
         0.0000277_r8,  0.0000282_r8,  0.0000286_r8,  0.0000290_r8,  0.0000294_r8,  &       
         0.0000298_r8,  0.0000302_r8,  0.0000306_r8,  0.0000309_r8,  0.0000313_r8,  &
         0.0000316_r8,  0.0000320_r8,  0.0000323_r8,  0.0000326_r8,  0.0000329_r8,  &
         0.0000332_r8,  0.0000335_r8,  0.0000331_r8,  0.0000341_r8,  0.0000344_r8,  &
         0.0000347_r8,  0.0000350_r8,  0.0000352_r8,  0.0000355_r8,  0.0000358_r8,  &
         0.0000360_r8,  0.0000363_r8,  0.0000365_r8,  0.0000368_r8,  0.0000370_r8,  &
         0.0000372_r8,  0.0000375_r8,  0.0000377_r8,  0.0000379_r8,  0.0000382_r8,  &
         0.0000384_r8,  0.0000386_r8,  0.0000388_r8,  0.0000390_r8,  0.0000392_r8,  &
         0.0000394_r8,  0.0000396_r8, &
         0.0000132_r8,  0.0000147_r8,  0.0000160_r8,  0.0000172_r8,  0.0000183_r8,  &
         0.0000193_r8,  0.0000202_r8,  0.0000210_r8,  0.0000218_r8,  0.0000226_r8,  &
         0.0000233_r8,  0.0000240_r8,  0.0000246_r8,  0.0000252_r8,  0.0000258_r8,  &
         0.0000264_r8,  0.0000269_r8,  0.0000274_r8,  0.0000279_r8,  0.0000284_r8,  &
         0.0000289_r8,  0.0000293_r8,  0.0000298_r8,  0.0000302_r8,  0.0000306_r8,  &
         0.0000310_r8,  0.0000314_r8,  0.0000318_r8,  0.0000321_r8,  0.0000325_r8,  &
         0.0000328_r8,  0.0000332_r8,  0.0000335_r8,  0.0000331_r8,  0.0000342_r8,  &
         0.0000345_r8,  0.0000348_r8,  0.0000351_r8,  0.0000354_r8,  0.0000357_r8,  &
         0.0000360_r8,  0.0000363_r8,  0.0000365_r8,  0.0000368_r8,  0.0000371_r8,  &
         0.0000373_r8,  0.0000376_r8,  0.0000378_r8,  0.0000381_r8,  0.0000383_r8,  &
         0.0000386_r8,  0.0000388_r8,  0.0000391_r8,  0.0000393_r8,  0.0000395_r8,  &
         0.0000397_r8,  0.0000400_r8,  0.0000402_r8,  0.0000404_r8,  0.0000406_r8,  &
         0.0000408_r8,  0.0000411_r8, &
         0.0000143_r8,  0.0000158_r8,  0.0000172_r8,  0.0000184_r8,  0.0000195_r8,  &
         0.0000206_r8,  0.0000215_r8,  0.0000224_r8,  0.0000232_r8,  0.0000240_r8,  &
         0.0000247_r8,  0.0000254_r8,  0.0000261_r8,  0.0000267_r8,  0.0000273_r8,  &
         0.0000279_r8,  0.0000284_r8,  0.0000290_r8,  0.0000295_r8,  0.0000300_r8,  &
         0.0000305_r8,  0.0000309_r8,  0.0000314_r8,  0.0000318_r8,  0.0000322_r8,  &
         0.0000326_r8,  0.0000330_r8,  0.0000334_r8,  0.0000331_r8,  0.0000342_r8,  &
         0.0000345_r8,  0.0000349_r8,  0.0000352_r8,  0.0000356_r8,  0.0000359_r8,  &
         0.0000362_r8,  0.0000365_r8,  0.0000368_r8,  0.0000371_r8,  0.0000374_r8,  &
         0.0000377_r8,  0.0000380_r8,  0.0000383_r8,  0.0000386_r8,  0.0000389_r8,  &
         0.0000391_r8,  0.0000394_r8,  0.0000397_r8,  0.0000399_r8,  0.0000402_r8,  &
         0.0000404_r8,  0.0000407_r8,  0.0000409_r8,  0.0000412_r8,  0.0000414_r8,  &
         0.0000416_r8,  0.0000419_r8,  0.0000421_r8,  0.0000423_r8,  0.0000426_r8,  &
         0.0000428_r8,  0.0000430_r8, &
         0.0000153_r8,  0.0000169_r8,  0.0000183_r8,  0.0000196_r8,  0.0000207_r8,   &
         0.0000218_r8,  0.0000227_r8,  0.0000236_r8,  0.0000245_r8,  0.0000253_r8,   &
         0.0000260_r8,  0.0000267_r8,  0.0000274_r8,  0.0000281_r8,  0.0000287_r8,   &
         0.0000293_r8,  0.0000298_r8,  0.0000304_r8,  0.0000309_r8,  0.0000314_r8,   &
         0.0000319_r8,  0.0000324_r8,  0.0000328_r8,  0.0000333_r8,  0.0000330_r8,   &
         0.0000341_r8,  0.0000345_r8,  0.0000349_r8,  0.0000353_r8,  0.0000357_r8,   &
         0.0000361_r8,  0.0000364_r8,  0.0000368_r8,  0.0000371_r8,  0.0000375_r8,   &
         0.0000378_r8,  0.0000381_r8,  0.0000384_r8,  0.0000387_r8,  0.0000391_r8,   &
         0.0000394_r8,  0.0000397_r8,  0.0000399_r8,  0.0000402_r8,  0.0000405_r8,   &
         0.0000408_r8,  0.0000411_r8,  0.0000413_r8,  0.0000416_r8,  0.0000419_r8,   &
         0.0000421_r8,  0.0000424_r8,  0.0000426_r8,  0.0000429_r8,  0.0000431_r8,   &
         0.0000434_r8,  0.0000436_r8,  0.0000439_r8,  0.0000441_r8,  0.0000443_r8,   &
         0.0000446_r8,  0.0000448_r8, &
         0.0000165_r8,  0.0000182_r8,  0.0000196_r8,  0.0000209_r8,  0.0000221_r8,  &
         0.0000232_r8,  0.0000242_r8,  0.0000251_r8,  0.0000260_r8,  0.0000268_r8,  &
         0.0000276_r8,  0.0000283_r8,  0.0000290_r8,  0.0000297_r8,  0.0000303_r8,  &
         0.0000309_r8,  0.0000315_r8,  0.0000321_r8,  0.0000326_r8,  0.0000331_r8,  &
         0.0000336_r8,  0.0000341_r8,  0.0000346_r8,  0.0000350_r8,  0.0000355_r8,  &
         0.0000359_r8,  0.0000363_r8,  0.0000367_r8,  0.0000371_r8,  0.0000375_r8,  &
         0.0000379_r8,  0.0000383_r8,  0.0000386_r8,  0.0000390_r8,  0.0000394_r8,  &
         0.0000397_r8,  0.0000400_r8,  0.0000404_r8,  0.0000407_r8,  0.0000410_r8,  &
         0.0000413_r8,  0.0000416_r8,  0.0000419_r8,  0.0000422_r8,  0.0000425_r8,  &
         0.0000428_r8,  0.0000431_r8,  0.0000434_r8,  0.0000437_r8,  0.0000439_r8,  &
         0.0000442_r8,  0.0000445_r8,  0.0000447_r8,  0.0000450_r8,  0.0000453_r8,  &
         0.0000455_r8,  0.0000458_r8,  0.0000460_r8,  0.0000463_r8,  0.0000465_r8,  &
         0.0000468_r8,  0.0000470_r8, &
         0.0000173_r8,  0.0000190_r8,  0.0000205_r8,  0.0000219_r8,  0.0000231_r8,  &
         0.0000242_r8,  0.0000252_r8,  0.0000262_r8,  0.0000271_r8,  0.0000279_r8,  &
         0.0000287_r8,  0.0000294_r8,  0.0000301_r8,  0.0000308_r8,  0.0000314_r8,  &
         0.0000320_r8,  0.0000326_r8,  0.0000332_r8,  0.0000330_r8,  0.0000343_r8,  &
         0.0000348_r8,  0.0000353_r8,  0.0000358_r8,  0.0000362_r8,  0.0000367_r8,  &
         0.0000371_r8,  0.0000376_r8,  0.0000380_r8,  0.0000384_r8,  0.0000388_r8,  &
         0.0000392_r8,  0.0000396_r8,  0.0000399_r8,  0.0000403_r8,  0.0000407_r8,  &
         0.0000410_r8,  0.0000414_r8,  0.0000417_r8,  0.0000420_r8,  0.0000424_r8,  &
         0.0000427_r8,  0.0000430_r8,  0.0000433_r8,  0.0000436_r8,  0.0000439_r8,  &
         0.0000442_r8,  0.0000445_r8,  0.0000448_r8,  0.0000451_r8,  0.0000454_r8,  &
         0.0000457_r8,  0.0000459_r8,  0.0000462_r8,  0.0000465_r8,  0.0000468_r8,  &
         0.0000470_r8,  0.0000473_r8,  0.0000475_r8,  0.0000478_r8,  0.0000481_r8,  &
         0.0000483_r8,  0.0000486_r8, &
         0.0000186_r8,  0.0000204_r8,  0.0000219_r8,  0.0000233_r8,  0.0000246_r8,  &
         0.0000257_r8,  0.0000268_r8,  0.0000277_r8,  0.0000286_r8,  0.0000295_r8,  &
         0.0000303_r8,  0.0000311_r8,  0.0000318_r8,  0.0000325_r8,  0.0000331_r8,  &
         0.0000331_r8,  0.0000344_r8,  0.0000350_r8,  0.0000355_r8,  0.0000361_r8,  &
         0.0000366_r8,  0.0000371_r8,  0.0000376_r8,  0.0000381_r8,  0.0000386_r8,  &
         0.0000390_r8,  0.0000395_r8,  0.0000399_r8,  0.0000403_r8,  0.0000407_r8,  &
         0.0000412_r8,  0.0000416_r8,  0.0000419_r8,  0.0000423_r8,  0.0000427_r8,  &
         0.0000431_r8,  0.0000434_r8,  0.0000438_r8,  0.0000441_r8,  0.0000445_r8,  &
         0.0000448_r8,  0.0000451_r8,  0.0000455_r8,  0.0000458_r8,  0.0000461_r8,  &
         0.0000464_r8,  0.0000467_r8,  0.0000470_r8,  0.0000473_r8,  0.0000476_r8,  &
         0.0000479_r8,  0.0000482_r8,  0.0000485_r8,  0.0000488_r8,  0.0000491_r8,  &
         0.0000494_r8,  0.0000497_r8,  0.0000499_r8,  0.0000502_r8,  0.0000505_r8,  &
         0.0000507_r8,  0.0000510_r8, &
         0.0000198_r8,  0.0000216_r8,  0.0000232_r8,  0.0000246_r8,  0.0000259_r8,  &
         0.0000271_r8,  0.0000281_r8,  0.0000291_r8,  0.0000301_r8,  0.0000310_r8,  &
         0.0000318_r8,  0.0000326_r8,  0.0000333_r8,  0.0000340_r8,  0.0000347_r8,  &
         0.0000354_r8,  0.0000360_r8,  0.0000366_r8,  0.0000372_r8,  0.0000377_r8,  &
         0.0000383_r8,  0.0000388_r8,  0.0000393_r8,  0.0000398_r8,  0.0000403_r8,  &
         0.0000408_r8,  0.0000412_r8,  0.0000417_r8,  0.0000421_r8,  0.0000425_r8,  &
         0.0000430_r8,  0.0000434_r8,  0.0000438_r8,  0.0000442_r8,  0.0000446_r8,  &
         0.0000449_r8,  0.0000453_r8,  0.0000457_r8,  0.0000461_r8,  0.0000464_r8,  &
         0.0000468_r8,  0.0000471_r8,  0.0000475_r8,  0.0000478_r8,  0.0000481_r8,  &
         0.0000485_r8,  0.0000488_r8,  0.0000491_r8,  0.0000494_r8,  0.0000498_r8,  &
         0.0000501_r8,  0.0000504_r8,  0.0000507_r8,  0.0000510_r8,  0.0000513_r8,  &
         0.0000516_r8,  0.0000519_r8,  0.0000522_r8,  0.0000524_r8,  0.0000527_r8,  &
         0.0000530_r8,  0.0000533_r8, &
         0.0000209_r8,  0.0000228_r8,  0.0000244_r8,  0.0000258_r8,  0.0000271_r8,  &
         0.0000283_r8,  0.0000294_r8,  0.0000305_r8,  0.0000314_r8,  0.0000323_r8,  &
         0.0000332_r8,  0.0000340_r8,  0.0000347_r8,  0.0000354_r8,  0.0000361_r8,  &
         0.0000368_r8,  0.0000375_r8,  0.0000381_r8,  0.0000387_r8,  0.0000392_r8,  &
         0.0000398_r8,  0.0000404_r8,  0.0000409_r8,  0.0000414_r8,  0.0000419_r8,  &
         0.0000424_r8,  0.0000429_r8,  0.0000433_r8,  0.0000438_r8,  0.0000442_r8,  &
         0.0000447_r8,  0.0000451_r8,  0.0000455_r8,  0.0000459_r8,  0.0000463_r8,  &
         0.0000467_r8,  0.0000471_r8,  0.0000475_r8,  0.0000479_r8,  0.0000483_r8,  &
         0.0000486_r8,  0.0000490_r8,  0.0000493_r8,  0.0000497_r8,  0.0000501_r8,  &
         0.0000504_r8,  0.0000507_r8,  0.0000511_r8,  0.0000514_r8,  0.0000518_r8,  &
         0.0000521_r8,  0.0000524_r8,  0.0000527_r8,  0.0000530_r8,  0.0000534_r8,  &
         0.0000537_r8,  0.0000540_r8,  0.0000543_r8,  0.0000546_r8,  0.0000549_r8,  &
         0.0000552_r8,  0.0000555_r8, &
         0.0000221_r8,  0.0000240_r8,  0.0000257_r8,  0.0000272_r8,  0.0000285_r8,  &
         0.0000297_r8,  0.0000308_r8,  0.0000319_r8,  0.0000329_r8,  0.0000331_r8,  &
         0.0000347_r8,  0.0000355_r8,  0.0000363_r8,  0.0000370_r8,  0.0000377_r8,  &
         0.0000384_r8,  0.0000391_r8,  0.0000397_r8,  0.0000404_r8,  0.0000409_r8,  &
         0.0000415_r8,  0.0000421_r8,  0.0000426_r8,  0.0000432_r8,  0.0000437_r8,  &
         0.0000442_r8,  0.0000447_r8,  0.0000452_r8,  0.0000456_r8,  0.0000461_r8,  &
         0.0000466_r8,  0.0000470_r8,  0.0000475_r8,  0.0000479_r8,  0.0000483_r8,  &
         0.0000487_r8,  0.0000491_r8,  0.0000496_r8,  0.0000500_r8,  0.0000503_r8,  &
         0.0000507_r8,  0.0000511_r8,  0.0000515_r8,  0.0000519_r8,  0.0000523_r8,  &
         0.0000526_r8,  0.0000530_r8,  0.0000533_r8,  0.0000537_r8,  0.0000540_r8,  &
         0.0000544_r8,  0.0000547_r8,  0.0000551_r8,  0.0000554_r8,  0.0000558_r8,  &
         0.0000561_r8,  0.0000564_r8,  0.0000567_r8,  0.0000571_r8,  0.0000574_r8,  &
         0.0000577_r8,  0.0000580_r8, &
         0.0000234_r8,  0.0000254_r8,  0.0000271_r8,  0.0000286_r8,  0.0000300_r8,  &
         0.0000312_r8,  0.0000324_r8,  0.0000335_r8,  0.0000345_r8,  0.0000354_r8,  &
         0.0000363_r8,  0.0000372_r8,  0.0000380_r8,  0.0000387_r8,  0.0000395_r8,  &
         0.0000402_r8,  0.0000409_r8,  0.0000415_r8,  0.0000422_r8,  0.0000428_r8,  &
         0.0000434_r8,  0.0000440_r8,  0.0000446_r8,  0.0000451_r8,  0.0000457_r8,  &
         0.0000462_r8,  0.0000467_r8,  0.0000472_r8,  0.0000477_r8,  0.0000482_r8,  &
         0.0000487_r8,  0.0000492_r8,  0.0000496_r8,  0.0000501_r8,  0.0000505_r8,  &
         0.0000510_r8,  0.0000514_r8,  0.0000518_r8,  0.0000523_r8,  0.0000527_r8,  &
         0.0000531_r8,  0.0000535_r8,  0.0000539_r8,  0.0000543_r8,  0.0000547_r8,  &
         0.0000551_r8,  0.0000555_r8,  0.0000559_r8,  0.0000562_r8,  0.0000566_r8,  &
         0.0000570_r8,  0.0000573_r8,  0.0000577_r8,  0.0000581_r8,  0.0000584_r8,  &
         0.0000588_r8,  0.0000591_r8,  0.0000595_r8,  0.0000598_r8,  0.0000602_r8,  &
         0.0000605_r8,  0.0000608_r8, &
         0.0000248_r8,  0.0000268_r8,  0.0000285_r8,  0.0000301_r8,  0.0000315_r8,  &
         0.0000328_r8,  0.0000340_r8,  0.0000351_r8,  0.0000362_r8,  0.0000371_r8,  &
         0.0000381_r8,  0.0000389_r8,  0.0000398_r8,  0.0000406_r8,  0.0000413_r8,  &
         0.0000421_r8,  0.0000428_r8,  0.0000435_r8,  0.0000442_r8,  0.0000448_r8,  &
         0.0000454_r8,  0.0000460_r8,  0.0000466_r8,  0.0000472_r8,  0.0000478_r8,  &
         0.0000484_r8,  0.0000489_r8,  0.0000494_r8,  0.0000500_r8,  0.0000505_r8,  &
         0.0000510_r8,  0.0000515_r8,  0.0000520_r8,  0.0000525_r8,  0.0000530_r8,  &
         0.0000534_r8,  0.0000539_r8,  0.0000544_r8,  0.0000548_r8,  0.0000553_r8,  &
         0.0000557_r8,  0.0000561_r8,  0.0000566_r8,  0.0000570_r8,  0.0000574_r8,  &
         0.0000578_r8,  0.0000582_r8,  0.0000586_r8,  0.0000590_r8,  0.0000594_r8,  &
         0.0000598_r8,  0.0000602_r8,  0.0000606_r8,  0.0000610_r8,  0.0000614_r8,  &
         0.0000618_r8,  0.0000621_r8,  0.0000625_r8,  0.0000629_r8,  0.0000633_r8,  &
         0.0000636_r8,  0.0000640_r8, &
         0.0000260_r8,  0.0000281_r8,  0.0000299_r8,  0.0000315_r8,  0.0000330_r8,  &
         0.0000343_r8,  0.0000355_r8,  0.0000367_r8,  0.0000377_r8,  0.0000388_r8,  &
         0.0000397_r8,  0.0000406_r8,  0.0000415_r8,  0.0000423_r8,  0.0000431_r8,  &
         0.0000439_r8,  0.0000446_r8,  0.0000453_r8,  0.0000460_r8,  0.0000467_r8,  &
         0.0000474_r8,  0.0000480_r8,  0.0000487_r8,  0.0000493_r8,  0.0000499_r8,  &
         0.0000505_r8,  0.0000510_r8,  0.0000516_r8,  0.0000522_r8,  0.0000527_r8,  &
         0.0000533_r8,  0.0000538_r8,  0.0000543_r8,  0.0000548_r8,  0.0000553_r8,  &
         0.0000558_r8,  0.0000563_r8,  0.0000568_r8,  0.0000573_r8,  0.0000578_r8,  &
         0.0000582_r8,  0.0000587_r8,  0.0000591_r8,  0.0000596_r8,  0.0000601_r8,  &
         0.0000605_r8,  0.0000609_r8,  0.0000614_r8,  0.0000618_r8,  0.0000622_r8,  &
         0.0000626_r8,  0.0000631_r8,  0.0000635_r8,  0.0000639_r8,  0.0000643_r8,  &
         0.0000647_r8,  0.0000651_r8,  0.0000655_r8,  0.0000659_r8,  0.0000663_r8,  &
         0.0000667_r8,  0.0000670_r8, &
         0.0000275_r8,  0.0000296_r8,  0.0000315_r8,  0.0000332_r8,  0.0000347_r8,  &
         0.0000360_r8,  0.0000373_r8,  0.0000385_r8,  0.0000396_r8,  0.0000407_r8,  &
         0.0000417_r8,  0.0000426_r8,  0.0000435_r8,  0.0000444_r8,  0.0000452_r8,  &
         0.0000460_r8,  0.0000468_r8,  0.0000476_r8,  0.0000483_r8,  0.0000490_r8,  &
         0.0000497_r8,  0.0000504_r8,  0.0000511_r8,  0.0000517_r8,  0.0000524_r8,  &
         0.0000530_r8,  0.0000536_r8,  0.0000542_r8,  0.0000548_r8,  0.0000554_r8,  &
         0.0000560_r8,  0.0000566_r8,  0.0000571_r8,  0.0000577_r8,  0.0000582_r8,  &
         0.0000587_r8,  0.0000593_r8,  0.0000598_r8,  0.0000603_r8,  0.0000608_r8,  &
         0.0000613_r8,  0.0000618_r8,  0.0000623_r8,  0.0000628_r8,  0.0000633_r8,  &
         0.0000638_r8,  0.0000642_r8,  0.0000647_r8,  0.0000652_r8,  0.0000656_r8,  &
         0.0000661_r8,  0.0000665_r8,  0.0000670_r8,  0.0000674_r8,  0.0000678_r8,  &
         0.0000683_r8,  0.0000687_r8,  0.0000691_r8,  0.0000695_r8,  0.0000700_r8,  &
         0.0000704_r8,  0.0000708_r8, &
         0.0000290_r8,  0.0000312_r8,  0.0000331_r8,  0.0000349_r8,  0.0000364_r8,  &
         0.0000379_r8,  0.0000392_r8,  0.0000404_r8,  0.0000416_r8,  0.0000427_r8,  &
         0.0000437_r8,  0.0000447_r8,  0.0000457_r8,  0.0000466_r8,  0.0000475_r8,  &
         0.0000483_r8,  0.0000492_r8,  0.0000500_r8,  0.0000507_r8,  0.0000515_r8,  &
         0.0000523_r8,  0.0000530_r8,  0.0000537_r8,  0.0000544_r8,  0.0000551_r8,  &
         0.0000558_r8,  0.0000564_r8,  0.0000571_r8,  0.0000577_r8,  0.0000583_r8,  &
         0.0000589_r8,  0.0000596_r8,  0.0000602_r8,  0.0000607_r8,  0.0000613_r8,  &
         0.0000619_r8,  0.0000625_r8,  0.0000630_r8,  0.0000636_r8,  0.0000641_r8,  &
         0.0000647_r8,  0.0000652_r8,  0.0000657_r8,  0.0000663_r8,  0.0000668_r8,  &
         0.0000673_r8,  0.0000678_r8,  0.0000683_r8,  0.0000688_r8,  0.0000693_r8,  &
         0.0000698_r8,  0.0000702_r8,  0.0000707_r8,  0.0000712_r8,  0.0000716_r8,  &
         0.0000721_r8,  0.0000726_r8,  0.0000730_r8,  0.0000735_r8,  0.0000739_r8,  &
         0.0000744_r8,  0.0000748_r8, &
         0.0000306_r8,  0.0000329_r8,  0.0000349_r8,  0.0000366_r8,  0.0000383_r8,  &
         0.0000398_r8,  0.0000411_r8,  0.0000424_r8,  0.0000436_r8,  0.0000448_r8,  &
         0.0000459_r8,  0.0000469_r8,  0.0000479_r8,  0.0000489_r8,  0.0000499_r8,  &
         0.0000508_r8,  0.0000516_r8,  0.0000525_r8,  0.0000533_r8,  0.0000542_r8,  &
         0.0000549_r8,  0.0000557_r8,  0.0000565_r8,  0.0000572_r8,  0.0000580_r8,  &
         0.0000587_r8,  0.0000594_r8,  0.0000601_r8,  0.0000608_r8,  0.0000615_r8,  &
         0.0000621_r8,  0.0000628_r8,  0.0000634_r8,  0.0000640_r8,  0.0000647_r8,  &
         0.0000653_r8,  0.0000659_r8,  0.0000665_r8,  0.0000671_r8,  0.0000677_r8,  &
         0.0000683_r8,  0.0000688_r8,  0.0000694_r8,  0.0000700_r8,  0.0000705_r8,  &
         0.0000711_r8,  0.0000716_r8,  0.0000721_r8,  0.0000727_r8,  0.0000732_r8,  &
         0.0000737_r8,  0.0000742_r8,  0.0000747_r8,  0.0000752_r8,  0.0000757_r8,  &
         0.0000762_r8,  0.0000767_r8,  0.0000772_r8,  0.0000777_r8,  0.0000782_r8,  &
         0.0000786_r8,  0.0000791_r8, &
         0.0000323_r8,  0.0000347_r8,  0.0000368_r8,  0.0000386_r8,  0.0000403_r8,  &
         0.0000419_r8,  0.0000433_r8,  0.0000447_r8,  0.0000459_r8,  0.0000472_r8,  &
         0.0000483_r8,  0.0000494_r8,  0.0000505_r8,  0.0000516_r8,  0.0000526_r8,  &
         0.0000535_r8,  0.0000545_r8,  0.0000554_r8,  0.0000563_r8,  0.0000572_r8,  &
         0.0000580_r8,  0.0000589_r8,  0.0000597_r8,  0.0000605_r8,  0.0000613_r8,  &
         0.0000621_r8,  0.0000628_r8,  0.0000636_r8,  0.0000643_r8,  0.0000650_r8,  &
         0.0000657_r8,  0.0000664_r8,  0.0000671_r8,  0.0000678_r8,  0.0000685_r8,  &
         0.0000692_r8,  0.0000698_r8,  0.0000705_r8,  0.0000711_r8,  0.0000717_r8,  &
         0.0000724_r8,  0.0000730_r8,  0.0000736_r8,  0.0000742_r8,  0.0000748_r8,  &
         0.0000754_r8,  0.0000760_r8,  0.0000765_r8,  0.0000771_r8,  0.0000777_r8,  &
         0.0000782_r8,  0.0000788_r8,  0.0000793_r8,  0.0000799_r8,  0.0000804_r8,  &
         0.0000809_r8,  0.0000815_r8,  0.0000820_r8,  0.0000825_r8,  0.0000830_r8,  &
         0.0000835_r8,  0.0000840_r8, &
         0.0000341_r8,  0.0000365_r8,  0.0000387_r8,  0.0000406_r8,  0.0000424_r8,  &
         0.0000440_r8,  0.0000456_r8,  0.0000470_r8,  0.0000483_r8,  0.0000496_r8,  &
         0.0000509_r8,  0.0000521_r8,  0.0000532_r8,  0.0000543_r8,  0.0000554_r8,  &
         0.0000564_r8,  0.0000574_r8,  0.0000584_r8,  0.0000594_r8,  0.0000603_r8,  &
         0.0000613_r8,  0.0000622_r8,  0.0000630_r8,  0.0000639_r8,  0.0000648_r8,  &
         0.0000656_r8,  0.0000664_r8,  0.0000672_r8,  0.0000680_r8,  0.0000688_r8,  &
         0.0000696_r8,  0.0000703_r8,  0.0000711_r8,  0.0000718_r8,  0.0000725_r8,  &
         0.0000732_r8,  0.0000739_r8,  0.0000746_r8,  0.0000753_r8,  0.0000760_r8,  &
         0.0000767_r8,  0.0000773_r8,  0.0000780_r8,  0.0000786_r8,  0.0000793_r8,  &
         0.0000799_r8,  0.0000805_r8,  0.0000811_r8,  0.0000817_r8,  0.0000823_r8,  &
         0.0000829_r8,  0.0000835_r8,  0.0000841_r8,  0.0000847_r8,  0.0000853_r8,  &
         0.0000858_r8,  0.0000864_r8,  0.0000870_r8,  0.0000875_r8,  0.0000881_r8,  &
         0.0000886_r8,  0.0000892_r8, &
         0.0000359_r8,  0.0000385_r8,  0.0000408_r8,  0.0000428_r8,  0.0000447_r8, &
         0.0000464_r8,  0.0000480_r8,  0.0000495_r8,  0.0000510_r8,  0.0000524_r8, &
         0.0000537_r8,  0.0000550_r8,  0.0000562_r8,  0.0000574_r8,  0.0000585_r8, &
         0.0000597_r8,  0.0000608_r8,  0.0000618_r8,  0.0000629_r8,  0.0000639_r8, &
         0.0000649_r8,  0.0000658_r8,  0.0000668_r8,  0.0000677_r8,  0.0000686_r8, &
         0.0000695_r8,  0.0000704_r8,  0.0000713_r8,  0.0000721_r8,  0.0000730_r8, &
         0.0000738_r8,  0.0000746_r8,  0.0000754_r8,  0.0000762_r8,  0.0000770_r8, &
         0.0000777_r8,  0.0000785_r8,  0.0000792_r8,  0.0000800_r8,  0.0000807_r8, &
         0.0000814_r8,  0.0000821_r8,  0.0000828_r8,  0.0000835_r8,  0.0000842_r8, &
         0.0000849_r8,  0.0000856_r8,  0.0000862_r8,  0.0000869_r8,  0.0000875_r8, &
         0.0000882_r8,  0.0000888_r8,  0.0000894_r8,  0.0000900_r8,  0.0000907_r8, &
         0.0000913_r8,  0.0000919_r8,  0.0000925_r8,  0.0000931_r8,  0.0000936_r8, &
         0.0000942_r8,  0.0000948_r8, &
         0.0000380_r8,  0.0000407_r8,  0.0000431_r8,  0.0000453_r8,  0.0000473_r8,  &
         0.0000491_r8,  0.0000508_r8,  0.0000525_r8,  0.0000540_r8,  0.0000555_r8,  &
         0.0000569_r8,  0.0000583_r8,  0.0000596_r8,  0.0000609_r8,  0.0000622_r8,  &
         0.0000634_r8,  0.0000646_r8,  0.0000657_r8,  0.0000668_r8,  0.0000679_r8,  &
         0.0000690_r8,  0.0000700_r8,  0.0000711_r8,  0.0000721_r8,  0.0000731_r8,  &
         0.0000740_r8,  0.0000750_r8,  0.0000759_r8,  0.0000769_r8,  0.0000778_r8,  &
         0.0000786_r8,  0.0000795_r8,  0.0000804_r8,  0.0000812_r8,  0.0000821_r8,  &
         0.0000829_r8,  0.0000837_r8,  0.0000845_r8,  0.0000853_r8,  0.0000861_r8,  &
         0.0000869_r8,  0.0000876_r8,  0.0000884_r8,  0.0000891_r8,  0.0000899_r8,  &
         0.0000906_r8,  0.0000913_r8,  0.0000920_r8,  0.0000927_r8,  0.0000934_r8,  &
         0.0000941_r8,  0.0000948_r8,  0.0000955_r8,  0.0000961_r8,  0.0000968_r8,  &
         0.0000974_r8,  0.0000981_r8,  0.0000987_r8,  0.0000994_r8,  0.0001000_r8,  &
         0.0001006_r8,  0.0001012_r8, &
         0.0000403_r8,  0.0000431_r8,  0.0000456_r8,  0.0000479_r8,  0.0000500_r8,  &
         0.0000520_r8,  0.0000538_r8,  0.0000556_r8,  0.0000573_r8,  0.0000589_r8,  &  
         0.0000604_r8,  0.0000619_r8,  0.0000633_r8,  0.0000647_r8,  0.0000661_r8,  &
         0.0000674_r8,  0.0000686_r8,  0.0000699_r8,  0.0000711_r8,  0.0000723_r8,  &
         0.0000734_r8,  0.0000746_r8,  0.0000757_r8,  0.0000768_r8,  0.0000778_r8,  &
         0.0000789_r8,  0.0000799_r8,  0.0000809_r8,  0.0000819_r8,  0.0000829_r8,  &
         0.0000838_r8,  0.0000848_r8,  0.0000857_r8,  0.0000866_r8,  0.0000875_r8,  &
         0.0000884_r8,  0.0000893_r8,  0.0000902_r8,  0.0000910_r8,  0.0000919_r8,  &
         0.0000927_r8,  0.0000935_r8,  0.0000943_r8,  0.0000951_r8,  0.0000959_r8,  &
         0.0000967_r8,  0.0000974_r8,  0.0000982_r8,  0.0000990_r8,  0.0000997_r8,  &
         0.0001004_r8,  0.0001012_r8,  0.0001019_r8,  0.0001026_r8,  0.0001033_r8,  &
         0.0001040_r8,  0.0001047_r8,  0.0001054_r8,  0.0001061_r8,  0.0001067_r8,  &
         0.0001074_r8,  0.0001080_r8, &
         0.0000426_r8,  0.0000456_r8,  0.0000482_r8,  0.0000507_r8,  0.0000529_r8,  &
         0.0000550_r8,  0.0000570_r8,  0.0000589_r8,  0.0000607_r8,  0.0000624_r8,  &
         0.0000641_r8,  0.0000657_r8,  0.0000672_r8,  0.0000687_r8,  0.0000702_r8,  &
         0.0000716_r8,  0.0000730_r8,  0.0000743_r8,  0.0000756_r8,  0.0000769_r8,  &
         0.0000781_r8,  0.0000794_r8,  0.0000806_r8,  0.0000817_r8,  0.0000829_r8,  &
         0.0000840_r8,  0.0000851_r8,  0.0000862_r8,  0.0000873_r8,  0.0000883_r8,  &
         0.0000893_r8,  0.0000904_r8,  0.0000913_r8,  0.0000923_r8,  0.0000933_r8,  &
         0.0000943_r8,  0.0000952_r8,  0.0000961_r8,  0.0000970_r8,  0.0000979_r8,  &
         0.0000988_r8,  0.0000997_r8,  0.0001006_r8,  0.0001014_r8,  0.0001023_r8,  &
         0.0001031_r8,  0.0001039_r8,  0.0001047_r8,  0.0001055_r8,  0.0001063_r8,  &
         0.0001071_r8,  0.0001079_r8,  0.0001087_r8,  0.0001094_r8,  0.0001102_r8,  &
         0.0001109_r8,  0.0001116_r8,  0.0001124_r8,  0.0001131_r8,  0.0001138_r8,  &
         0.0001145_r8,  0.0001152_r8, &
         0.0000451_r8,  0.0000482_r8,  0.0000511_r8,  0.0000537_r8,  0.0000561_r8,  &
         0.0000584_r8,  0.0000605_r8,  0.0000626_r8,  0.0000645_r8,  0.0000664_r8,  &
         0.0000682_r8,  0.0000699_r8,  0.0000715_r8,  0.0000732_r8,  0.0000747_r8,  &
         0.0000763_r8,  0.0000777_r8,  0.0000792_r8,  0.0000806_r8,  0.0000820_r8,  &
         0.0000833_r8,  0.0000846_r8,  0.0000859_r8,  0.0000872_r8,  0.0000884_r8,  &
         0.0000896_r8,  0.0000908_r8,  0.0000920_r8,  0.0000931_r8,  0.0000942_r8,  &
         0.0000953_r8,  0.0000964_r8,  0.0000975_r8,  0.0000986_r8,  0.0000996_r8,  &
         0.0001006_r8,  0.0001016_r8,  0.0001026_r8,  0.0001036_r8,  0.0001046_r8,  &
         0.0001055_r8,  0.0001064_r8,  0.0001074_r8,  0.0001083_r8,  0.0001092_r8,  &
         0.0001101_r8,  0.0001110_r8,  0.0001118_r8,  0.0001127_r8,  0.0001135_r8,  &
         0.0001144_r8,  0.0001152_r8,  0.0001160_r8,  0.0001168_r8,  0.0001176_r8,  &
         0.0001184_r8,  0.0001192_r8,  0.0001200_r8,  0.0001207_r8,  0.0001215_r8,  &
         0.0001222_r8,  0.0001230_r8, &
         0.0000478_r8,  0.0000512_r8,  0.0000543_r8,  0.0000571_r8,  0.0000597_r8,  &
         0.0000621_r8,  0.0000644_r8,  0.0000666_r8,  0.0000687_r8,  0.0000708_r8,  &
         0.0000727_r8,  0.0000746_r8,  0.0000764_r8,  0.0000781_r8,  0.0000798_r8,  &
         0.0000814_r8,  0.0000830_r8,  0.0000846_r8,  0.0000861_r8,  0.0000876_r8,  &
         0.0000891_r8,  0.0000905_r8,  0.0000919_r8,  0.0000932_r8,  0.0000945_r8,  &
         0.0000958_r8,  0.0000971_r8,  0.0000984_r8,  0.0000996_r8,  0.0001008_r8,  &
         0.0001020_r8,  0.0001032_r8,  0.0001043_r8,  0.0001055_r8,  0.0001066_r8,  &
         0.0001077_r8,  0.0001088_r8,  0.0001098_r8,  0.0001109_r8,  0.0001119_r8,  &
         0.0001129_r8,  0.0001139_r8,  0.0001149_r8,  0.0001159_r8,  0.0001168_r8,  &
         0.0001178_r8,  0.0001187_r8,  0.0001197_r8,  0.0001206_r8,  0.0001215_r8,  &
         0.0001224_r8,  0.0001233_r8,  0.0001241_r8,  0.0001250_r8,  0.0001258_r8,  &
         0.0001267_r8,  0.0001275_r8,  0.0001283_r8,  0.0001292_r8,  0.0001300_r8,  &
         0.0001308_r8,  0.0001316_r8, &
         0.0000508_r8,  0.0000544_r8,  0.0000577_r8,  0.0000607_r8,  0.0000635_r8,  &
         0.0000661_r8,  0.0000686_r8,  0.0000710_r8,  0.0000733_r8,  0.0000754_r8,  &
         0.0000775_r8,  0.0000795_r8,  0.0000815_r8,  0.0000834_r8,  0.0000852_r8,  &
         0.0000870_r8,  0.0000887_r8,  0.0000904_r8,  0.0000920_r8,  0.0000936_r8,  &
         0.0000952_r8,  0.0000967_r8,  0.0000982_r8,  0.0000996_r8,  0.0001011_r8,  &
         0.0001025_r8,  0.0001038_r8,  0.0001052_r8,  0.0001065_r8,  0.0001078_r8,  &
         0.0001091_r8,  0.0001103_r8,  0.0001116_r8,  0.0001128_r8,  0.0001140_r8,  &
         0.0001151_r8,  0.0001163_r8,  0.0001174_r8,  0.0001186_r8,  0.0001197_r8,  &
         0.0001207_r8,  0.0001218_r8,  0.0001229_r8,  0.0001239_r8,  0.0001249_r8,  &
         0.0001260_r8,  0.0001270_r8,  0.0001279_r8,  0.0001289_r8,  0.0001299_r8,  &
         0.0001308_r8,  0.0001318_r8,  0.0001327_r8,  0.0001336_r8,  0.0001317_r8,  &
         0.0001325_r8,  0.0001363_r8,  0.0001372_r8,  0.0001380_r8,  0.0001389_r8,  &
         0.0001397_r8,  0.0001406_r8, &
         0.0000540_r8,  0.0000579_r8,  0.0000615_r8,  0.0000647_r8,  0.0000677_r8,  &
         0.0000706_r8,  0.0000733_r8,  0.0000758_r8,  0.0000783_r8,  0.0000806_r8,  &
         0.0000829_r8,  0.0000851_r8,  0.0000872_r8,  0.0000892_r8,  0.0000912_r8,  &
         0.0000931_r8,  0.0000950_r8,  0.0000968_r8,  0.0000985_r8,  0.0001003_r8,  &
         0.0001020_r8,  0.0001036_r8,  0.0001052_r8,  0.0001068_r8,  0.0001083_r8,  &
         0.0001098_r8,  0.0001113_r8,  0.0001127_r8,  0.0001142_r8,  0.0001156_r8,  &
         0.0001169_r8,  0.0001183_r8,  0.0001196_r8,  0.0001209_r8,  0.0001222_r8,  &
         0.0001234_r8,  0.0001246_r8,  0.0001259_r8,  0.0001270_r8,  0.0001282_r8,  &
         0.0001294_r8,  0.0001305_r8,  0.0001317_r8,  0.0001328_r8,  0.0001339_r8,  &
         0.0001321_r8,  0.0001360_r8,  0.0001371_r8,  0.0001381_r8,  0.0001391_r8,  &
         0.0001401_r8,  0.0001411_r8,  0.0001421_r8,  0.0001431_r8,  0.0001440_r8,  &
         0.0001450_r8,  0.0001459_r8,  0.0001469_r8,  0.0001478_r8,  0.0001487_r8,  &
         0.0001496_r8,  0.0001505_r8, &
         0.0000575_r8,  0.0000617_r8,  0.0000655_r8,  0.0000690_r8,  0.0000723_r8,  &
         0.0000754_r8,  0.0000783_r8,  0.0000810_r8,  0.0000837_r8,  0.0000862_r8,  &
         0.0000887_r8,  0.0000910_r8,  0.0000933_r8,  0.0000955_r8,  0.0000976_r8,  &
         0.0000997_r8,  0.0001017_r8,  0.0001036_r8,  0.0001055_r8,  0.0001074_r8,  &
         0.0001092_r8,  0.0001110_r8,  0.0001127_r8,  0.0001144_r8,  0.0001160_r8,  &
         0.0001176_r8,  0.0001192_r8,  0.0001208_r8,  0.0001223_r8,  0.0001238_r8,  &
         0.0001252_r8,  0.0001267_r8,  0.0001281_r8,  0.0001295_r8,  0.0001308_r8,  &
         0.0001322_r8,  0.0001335_r8,  0.0001319_r8,  0.0001360_r8,  0.0001373_r8,  &
         0.0001385_r8,  0.0001397_r8,  0.0001409_r8,  0.0001421_r8,  0.0001433_r8,  &
         0.0001444_r8,  0.0001456_r8,  0.0001467_r8,  0.0001478_r8,  0.0001489_r8,  &
         0.0001499_r8,  0.0001510_r8,  0.0001520_r8,  0.0001531_r8,  0.0001541_r8,  &
         0.0001551_r8,  0.0001561_r8,  0.0001571_r8,  0.0001581_r8,  0.0001590_r8,  &
         0.0001600_r8,  0.0001609_r8, &
         0.0000613_r8,  0.0000659_r8,  0.0000700_r8,  0.0000738_r8,  0.0000773_r8,  &
         0.0000806_r8,  0.0000838_r8,  0.0000868_r8,  0.0000896_r8,  0.0000924_r8,  &
         0.0000950_r8,  0.0000976_r8,  0.0001000_r8,  0.0001024_r8,  0.0001047_r8,  &
         0.0001069_r8,  0.0001091_r8,  0.0001112_r8,  0.0001132_r8,  0.0001152_r8,  &
         0.0001172_r8,  0.0001191_r8,  0.0001209_r8,  0.0001227_r8,  0.0001245_r8,  &
         0.0001262_r8,  0.0001279_r8,  0.0001296_r8,  0.0001312_r8,  0.0001328_r8,  &
         0.0001344_r8,  0.0001359_r8,  0.0001374_r8,  0.0001389_r8,  0.0001403_r8,  &
         0.0001417_r8,  0.0001432_r8,  0.0001445_r8,  0.0001459_r8,  0.0001472_r8,  &
         0.0001485_r8,  0.0001498_r8,  0.0001511_r8,  0.0001524_r8,  0.0001536_r8,  &
         0.0001548_r8,  0.0001560_r8,  0.0001572_r8,  0.0001584_r8,  0.0001595_r8,  &
         0.0001607_r8,  0.0001618_r8,  0.0001629_r8,  0.0001640_r8,  0.0001651_r8,  &
         0.0001661_r8,  0.0001672_r8,  0.0001682_r8,  0.0001693_r8,  0.0001703_r8,  &
         0.0001713_r8,  0.0001723_r8, &
         0.0000654_r8,  0.0000703_r8,  0.0000747_r8,  0.0000789_r8,  0.0000827_r8,  &
         0.0000863_r8,  0.0000897_r8,  0.0000929_r8,  0.0000960_r8,  0.0000990_r8,  &
         0.0001018_r8,  0.0001046_r8,  0.0001072_r8,  0.0001098_r8,  0.0001123_r8,  &
         0.0001147_r8,  0.0001170_r8,  0.0001193_r8,  0.0001214_r8,  0.0001236_r8,  &
         0.0001257_r8,  0.0001277_r8,  0.0001297_r8,  0.0001316_r8,  0.0001335_r8,  &
         0.0001325_r8,  0.0001372_r8,  0.0001389_r8,  0.0001407_r8,  0.0001424_r8,  &
         0.0001440_r8,  0.0001457_r8,  0.0001473_r8,  0.0001488_r8,  0.0001504_r8,  &
         0.0001519_r8,  0.0001534_r8,  0.0001548_r8,  0.0001563_r8,  0.0001577_r8,  &
         0.0001591_r8,  0.0001605_r8,  0.0001618_r8,  0.0001631_r8,  0.0001645_r8,  &
         0.0001658_r8,  0.0001670_r8,  0.0001683_r8,  0.0001695_r8,  0.0001707_r8,  &
         0.0001720_r8,  0.0001732_r8,  0.0001743_r8,  0.0001755_r8,  0.0001767_r8,  &
         0.0001778_r8,  0.0001789_r8,  0.0001800_r8,  0.0001811_r8,  0.0001822_r8,  &
         0.0001833_r8,  0.0001844_r8, &
         0.0000699_r8,  0.0000752_r8,  0.0000800_r8,  0.0000844_r8,  0.0000886_r8,  &
         0.0000925_r8,  0.0000962_r8,  0.0000997_r8,  0.0001030_r8,  0.0001062_r8,  &
         0.0001093_r8,  0.0001123_r8,  0.0001151_r8,  0.0001179_r8,  0.0001205_r8,  &
         0.0001231_r8,  0.0001256_r8,  0.0001280_r8,  0.0001304_r8,  0.0001327_r8,  &
         0.0001321_r8,  0.0001371_r8,  0.0001392_r8,  0.0001413_r8,  0.0001433_r8,  &
         0.0001453_r8,  0.0001472_r8,  0.0001491_r8,  0.0001509_r8,  0.0001527_r8,  &
         0.0001545_r8,  0.0001562_r8,  0.0001579_r8,  0.0001596_r8,  0.0001612_r8,  &
         0.0001629_r8,  0.0001644_r8,  0.0001660_r8,  0.0001675_r8,  0.0001690_r8,  &
         0.0001705_r8,  0.0001720_r8,  0.0001734_r8,  0.0001749_r8,  0.0001762_r8,  &
         0.0001776_r8,  0.0001790_r8,  0.0001803_r8,  0.0001817_r8,  0.0001830_r8,  &
         0.0001842_r8,  0.0001855_r8,  0.0001868_r8,  0.0001880_r8,  0.0001892_r8,  &
         0.0001905_r8,  0.0001917_r8,  0.0001928_r8,  0.0001940_r8,  0.0001952_r8,  &
         0.0001963_r8,  0.0001975_r8, &
         0.0000748_r8,  0.0000805_r8,  0.0000858_r8,  0.0000906_r8,  0.0000951_r8, &
         0.0000993_r8,  0.0001033_r8,  0.0001071_r8,  0.0001107_r8,  0.0001142_r8, &
         0.0001175_r8,  0.0001207_r8,  0.0001238_r8,  0.0001267_r8,  0.0001296_r8, &
         0.0001323_r8,  0.0001322_r8,  0.0001376_r8,  0.0001401_r8,  0.0001426_r8, &
         0.0001450_r8,  0.0001473_r8,  0.0001496_r8,  0.0001518_r8,  0.0001539_r8, &
         0.0001560_r8,  0.0001581_r8,  0.0001601_r8,  0.0001620_r8,  0.0001640_r8, &
         0.0001659_r8,  0.0001677_r8,  0.0001695_r8,  0.0001713_r8,  0.0001731_r8, &
         0.0001748_r8,  0.0001765_r8,  0.0001781_r8,  0.0001798_r8,  0.0001814_r8, &
         0.0001830_r8,  0.0001845_r8,  0.0001861_r8,  0.0001876_r8,  0.0001891_r8, &
         0.0001905_r8,  0.0001920_r8,  0.0001934_r8,  0.0001948_r8,  0.0001962_r8, &
         0.0001976_r8,  0.0001990_r8,  0.0002003_r8,  0.0002017_r8,  0.0002030_r8, &
         0.0002043_r8,  0.0002056_r8,  0.0002068_r8,  0.0002081_r8,  0.0002093_r8, &
         0.0002106_r8,  0.0002118_r8, &
         0.0000802_r8,  0.0000863_r8,  0.0000920_r8,  0.0000972_r8,  0.0001021_r8, &
         0.0001067_r8,  0.0001110_r8,  0.0001151_r8,  0.0001190_r8,  0.0001227_r8, &
         0.0001263_r8,  0.0001297_r8,  0.0001330_r8,  0.0001362_r8,  0.0001393_r8, &
         0.0001422_r8,  0.0001451_r8,  0.0001479_r8,  0.0001506_r8,  0.0001532_r8, &
         0.0001557_r8,  0.0001582_r8,  0.0001606_r8,  0.0001630_r8,  0.0001653_r8, &
         0.0001675_r8,  0.0001697_r8,  0.0001719_r8,  0.0001740_r8,  0.0001760_r8, &
         0.0001780_r8,  0.0001800_r8,  0.0001819_r8,  0.0001839_r8,  0.0001857_r8, &
         0.0001876_r8,  0.0001894_r8,  0.0001911_r8,  0.0001929_r8,  0.0001946_r8, &
         0.0001963_r8,  0.0001980_r8,  0.0001996_r8,  0.0002012_r8,  0.0002028_r8, &
         0.0002044_r8,  0.0002060_r8,  0.0002075_r8,  0.0002090_r8,  0.0002105_r8, &
         0.0002120_r8,  0.0002135_r8,  0.0002149_r8,  0.0002164_r8,  0.0002178_r8, &
         0.0002192_r8,  0.0002205_r8,  0.0002219_r8,  0.0002233_r8,  0.0002246_r8, &
         0.0002259_r8,  0.0002273_r8, &
         0.0000859_r8,  0.0000926_r8,  0.0000987_r8,  0.0001044_r8,  0.0001097_r8, &
         0.0001146_r8,  0.0001193_r8,  0.0001237_r8,  0.0001279_r8,  0.0001319_r8, &
         0.0001358_r8,  0.0001395_r8,  0.0001430_r8,  0.0001464_r8,  0.0001497_r8, &
         0.0001528_r8,  0.0001559_r8,  0.0001589_r8,  0.0001617_r8,  0.0001645_r8, &
         0.0001673_r8,  0.0001699_r8,  0.0001725_r8,  0.0001750_r8,  0.0001774_r8, &
         0.0001798_r8,  0.0001822_r8,  0.0001845_r8,  0.0001867_r8,  0.0001889_r8, &
         0.0001911_r8,  0.0001932_r8,  0.0001953_r8,  0.0001973_r8,  0.0001993_r8, &
         0.0002013_r8,  0.0002032_r8,  0.0002051_r8,  0.0002070_r8,  0.0002088_r8, &
         0.0002107_r8,  0.0002124_r8,  0.0002142_r8,  0.0002160_r8,  0.0002177_r8, &
         0.0002194_r8,  0.0002211_r8,  0.0002227_r8,  0.0002243_r8,  0.0002260_r8, &
         0.0002276_r8,  0.0002291_r8,  0.0002307_r8,  0.0002322_r8,  0.0002338_r8, &
         0.0002353_r8,  0.0002368_r8,  0.0002382_r8,  0.0002397_r8,  0.0002412_r8, &
         0.0002426_r8,  0.0002440_r8, &
         0.0000922_r8,  0.0000995_r8,  0.0001061_r8,  0.0001122_r8,  0.0001179_r8, &
         0.0001233_r8,  0.0001283_r8,  0.0001331_r8,  0.0001376_r8,  0.0001419_r8, &
         0.0001460_r8,  0.0001500_r8,  0.0001538_r8,  0.0001574_r8,  0.0001609_r8, &
         0.0001643_r8,  0.0001676_r8,  0.0001707_r8,  0.0001738_r8,  0.0001768_r8, &
         0.0001797_r8,  0.0001825_r8,  0.0001853_r8,  0.0001880_r8,  0.0001906_r8, &
         0.0001932_r8,  0.0001957_r8,  0.0001981_r8,  0.0002006_r8,  0.0002029_r8, &
         0.0002052_r8,  0.0002075_r8,  0.0002097_r8,  0.0002119_r8,  0.0002141_r8, &
         0.0002162_r8,  0.0002183_r8,  0.0002203_r8,  0.0002223_r8,  0.0002243_r8, &
         0.0002263_r8,  0.0002282_r8,  0.0002301_r8,  0.0002320_r8,  0.0002339_r8, &
         0.0002357_r8,  0.0002375_r8,  0.0002393_r8,  0.0002411_r8,  0.0002428_r8, &
         0.0002446_r8,  0.0002463_r8,  0.0002480_r8,  0.0002496_r8,  0.0002513_r8, &
         0.0002529_r8,  0.0002546_r8,  0.0002562_r8,  0.0002578_r8,  0.0002593_r8, &
         0.0002609_r8,  0.0002625_r8, &
         0.0000990_r8,  0.0001069_r8,  0.0001141_r8,  0.0001207_r8,  0.0001268_r8,  &
         0.0001326_r8,  0.0001380_r8,  0.0001431_r8,  0.0001480_r8,  0.0001526_r8,  &
         0.0001570_r8,  0.0001612_r8,  0.0001653_r8,  0.0001692_r8,  0.0001729_r8,  &
         0.0001766_r8,  0.0001801_r8,  0.0001835_r8,  0.0001868_r8,  0.0001900_r8,  &
         0.0001931_r8,  0.0001961_r8,  0.0001991_r8,  0.0002019_r8,  0.0002048_r8,  &
         0.0002075_r8,  0.0002102_r8,  0.0002129_r8,  0.0002154_r8,  0.0002180_r8,  &
         0.0002205_r8,  0.0002229_r8,  0.0002253_r8,  0.0002277_r8,  0.0002300_r8,  &
         0.0002323_r8,  0.0002346_r8,  0.0002368_r8,  0.0002390_r8,  0.0002411_r8,  &
         0.0002432_r8,  0.0002453_r8,  0.0002474_r8,  0.0002494_r8,  0.0002515_r8,  &
         0.0002535_r8,  0.0002554_r8,  0.0002574_r8,  0.0002593_r8,  0.0002612_r8,  &
         0.0002631_r8,  0.0002649_r8,  0.0002668_r8,  0.0002686_r8,  0.0002704_r8,  &
         0.0002722_r8,  0.0002740_r8,  0.0002757_r8,  0.0002775_r8,  0.0002792_r8,  &
         0.0002809_r8,  0.0002826_r8, &
         0.0001063_r8,  0.0001148_r8,  0.0001226_r8,  0.0001297_r8,  0.0001363_r8,  &
         0.0001425_r8,  0.0001483_r8,  0.0001538_r8,  0.0001590_r8,  0.0001639_r8,  &
         0.0001687_r8,  0.0001732_r8,  0.0001775_r8,  0.0001817_r8,  0.0001857_r8,  &
         0.0001896_r8,  0.0001933_r8,  0.0001970_r8,  0.0002005_r8,  0.0002039_r8,  &
         0.0002073_r8,  0.0002105_r8,  0.0002137_r8,  0.0002168_r8,  0.0002198_r8,  &
         0.0002228_r8,  0.0002257_r8,  0.0002286_r8,  0.0002314_r8,  0.0002341_r8,  &
         0.0002368_r8,  0.0002394_r8,  0.0002420_r8,  0.0002446_r8,  0.0002471_r8,  &
         0.0002496_r8,  0.0002520_r8,  0.0002544_r8,  0.0002568_r8,  0.0002591_r8,  &
         0.0002615_r8,  0.0002637_r8,  0.0002660_r8,  0.0002682_r8,  0.0002704_r8,  &
         0.0002726_r8,  0.0002747_r8,  0.0002768_r8,  0.0002789_r8,  0.0002810_r8,  &
         0.0002831_r8,  0.0002851_r8,  0.0002871_r8,  0.0002891_r8,  0.0002911_r8,  &
         0.0002930_r8,  0.0002950_r8,  0.0002969_r8,  0.0002988_r8,  0.0003007_r8,  &
         0.0003025_r8,  0.0003044_r8, &
         0.0001141_r8,  0.0001233_r8,  0.0001316_r8,  0.0001393_r8,  0.0001464_r8, &
         0.0001531_r8,  0.0001593_r8,  0.0001652_r8,  0.0001707_r8,  0.0001760_r8, &
         0.0001811_r8,  0.0001859_r8,  0.0001905_r8,  0.0001950_r8,  0.0001993_r8, &
         0.0002035_r8,  0.0002075_r8,  0.0002114_r8,  0.0002152_r8,  0.0002189_r8, &
         0.0002225_r8,  0.0002260_r8,  0.0002294_r8,  0.0002328_r8,  0.0002360_r8, &
         0.0002393_r8,  0.0002424_r8,  0.0002455_r8,  0.0002485_r8,  0.0002515_r8, &
         0.0002544_r8,  0.0002573_r8,  0.0002601_r8,  0.0002629_r8,  0.0002656_r8, &
         0.0002683_r8,  0.0002709_r8,  0.0002736_r8,  0.0002762_r8,  0.0002787_r8, &
         0.0002812_r8,  0.0002837_r8,  0.0002862_r8,  0.0002886_r8,  0.0002910_r8, &
         0.0002934_r8,  0.0002957_r8,  0.0002980_r8,  0.0003003_r8,  0.0003026_r8, &
         0.0003048_r8,  0.0003071_r8,  0.0003093_r8,  0.0003114_r8,  0.0003136_r8, &
         0.0003157_r8,  0.0003179_r8,  0.0003200_r8,  0.0003221_r8,  0.0003241_r8, &
         0.0003262_r8,  0.0003282_r8, &
         0.0001224_r8,  0.0001323_r8,  0.0001413_r8,  0.0001496_r8,  0.0001572_r8, &
         0.0001643_r8,  0.0001709_r8,  0.0001772_r8,  0.0001832_r8,  0.0001888_r8, &
         0.0001943_r8,  0.0001994_r8,  0.0002044_r8,  0.0002092_r8,  0.0002138_r8, &
         0.0002183_r8,  0.0002226_r8,  0.0002269_r8,  0.0002309_r8,  0.0002349_r8, &
         0.0002388_r8,  0.0002426_r8,  0.0002463_r8,  0.0002499_r8,  0.0002535_r8, &
         0.0002570_r8,  0.0002604_r8,  0.0002637_r8,  0.0002670_r8,  0.0002702_r8, &
         0.0002734_r8,  0.0002765_r8,  0.0002796_r8,  0.0002826_r8,  0.0002856_r8, &
         0.0002886_r8,  0.0002915_r8,  0.0002943_r8,  0.0002972_r8,  0.0002999_r8, &
         0.0003027_r8,  0.0003054_r8,  0.0003081_r8,  0.0003108_r8,  0.0003134_r8, &
         0.0003160_r8,  0.0003185_r8,  0.0003211_r8,  0.0003236_r8,  0.0003261_r8, &
         0.0003286_r8,  0.0003310_r8,  0.0003334_r8,  0.0003358_r8,  0.0003382_r8, &
         0.0003405_r8,  0.0003428_r8,  0.0003451_r8,  0.0003474_r8,  0.0003497_r8, &
         0.0003519_r8,  0.0003542_r8, &
         0.0001312_r8,  0.0001419_r8,  0.0001515_r8,  0.0001603_r8,  0.0001685_r8, &
         0.0001761_r8,  0.0001832_r8,  0.0001899_r8,  0.0001963_r8,  0.0002024_r8, &
         0.0002082_r8,  0.0002138_r8,  0.0002191_r8,  0.0002243_r8,  0.0002292_r8, &
         0.0002341_r8,  0.0002387_r8,  0.0002433_r8,  0.0002477_r8,  0.0002520_r8, &
         0.0002562_r8,  0.0002603_r8,  0.0002644_r8,  0.0002683_r8,  0.0002722_r8, &
         0.0002759_r8,  0.0002796_r8,  0.0002833_r8,  0.0002869_r8,  0.0002904_r8, &
         0.0002939_r8,  0.0002973_r8,  0.0003006_r8,  0.0003039_r8,  0.0003072_r8, &
         0.0003104_r8,  0.0003136_r8,  0.0003167_r8,  0.0003198_r8,  0.0003228_r8, &
         0.0003259_r8,  0.0003288_r8,  0.0003318_r8,  0.0003347_r8,  0.0003376_r8, &
         0.0003404_r8,  0.0003432_r8,  0.0003460_r8,  0.0003487_r8,  0.0003515_r8, &
         0.0003542_r8,  0.0003568_r8,  0.0003595_r8,  0.0003621_r8,  0.0003647_r8, &
         0.0003673_r8,  0.0003698_r8,  0.0003724_r8,  0.0003749_r8,  0.0003773_r8, &
         0.0003798_r8,  0.0003822_r8, &
         0.0001406_r8,  0.0001520_r8,  0.0001623_r8,  0.0001718_r8,  0.0001805_r8, &
         0.0001886_r8,  0.0001963_r8,  0.0002035_r8,  0.0002103_r8,  0.0002168_r8, &
         0.0002231_r8,  0.0002291_r8,  0.0002348_r8,  0.0002404_r8,  0.0002458_r8, &
         0.0002510_r8,  0.0002561_r8,  0.0002610_r8,  0.0002658_r8,  0.0002705_r8, &
         0.0002750_r8,  0.0002795_r8,  0.0002839_r8,  0.0002882_r8,  0.0002924_r8, &
         0.0002965_r8,  0.0003005_r8,  0.0003045_r8,  0.0003084_r8,  0.0003123_r8, &
         0.0003161_r8,  0.0003198_r8,  0.0003235_r8,  0.0003271_r8,  0.0003307_r8, &
         0.0003342_r8,  0.0003376_r8,  0.0003411_r8,  0.0003445_r8,  0.0003478_r8, &
         0.0003511_r8,  0.0003544_r8,  0.0003576_r8,  0.0003608_r8,  0.0003639_r8, &
         0.0003670_r8,  0.0003701_r8,  0.0003731_r8,  0.0003762_r8,  0.0003791_r8, &
         0.0003821_r8,  0.0003850_r8,  0.0003879_r8,  0.0003908_r8,  0.0003936_r8, &
         0.0003965_r8,  0.0003992_r8,  0.0004020_r8,  0.0004047_r8,  0.0004075_r8, &
         0.0004102_r8,  0.0004128_r8, &
         0.0001506_r8,  0.0001628_r8,  0.0001739_r8,  0.0001840_r8,  0.0001934_r8, &
         0.0002021_r8,  0.0002103_r8,  0.0002180_r8,  0.0002254_r8,  0.0002324_r8, &
         0.0002391_r8,  0.0002456_r8,  0.0002518_r8,  0.0002579_r8,  0.0002637_r8, &
         0.0002694_r8,  0.0002749_r8,  0.0002802_r8,  0.0002854_r8,  0.0002905_r8, &
         0.0002955_r8,  0.0003004_r8,  0.0003052_r8,  0.0003099_r8,  0.0003145_r8, &
         0.0003190_r8,  0.0003234_r8,  0.0003278_r8,  0.0003320_r8,  0.0003362_r8, &
         0.0003404_r8,  0.0003445_r8,  0.0003485_r8,  0.0003524_r8,  0.0003564_r8, &
         0.0003602_r8,  0.0003640_r8,  0.0003678_r8,  0.0003715_r8,  0.0003751_r8, &
         0.0003787_r8,  0.0003823_r8,  0.0003858_r8,  0.0003893_r8,  0.0003928_r8, &
         0.0003962_r8,  0.0003995_r8,  0.0004029_r8,  0.0004062_r8,  0.0004094_r8, &
         0.0004127_r8,  0.0004159_r8,  0.0004190_r8,  0.0004222_r8,  0.0004253_r8, &
         0.0004283_r8,  0.0004314_r8,  0.0004344_r8,  0.0004374_r8,  0.0004404_r8, &
         0.0004433_r8,  0.0004462_r8, &
         0.0001613_r8,  0.0001744_r8,  0.0001863_r8,  0.0001971_r8,  0.0002072_r8, &
         0.0002165_r8,  0.0002254_r8,  0.0002337_r8,  0.0002417_r8,  0.0002493_r8, &
         0.0002565_r8,  0.0002636_r8,  0.0002703_r8,  0.0002769_r8,  0.0002832_r8, &
         0.0002894_r8,  0.0002954_r8,  0.0003013_r8,  0.0003070_r8,  0.0003125_r8, &
         0.0003180_r8,  0.0003233_r8,  0.0003286_r8,  0.0003337_r8,  0.0003387_r8, &
         0.0003436_r8,  0.0003485_r8,  0.0003533_r8,  0.0003579_r8,  0.0003625_r8, &
         0.0003671_r8,  0.0003716_r8,  0.0003760_r8,  0.0003803_r8,  0.0003846_r8, &
         0.0003888_r8,  0.0003929_r8,  0.0003971_r8,  0.0004011_r8,  0.0004051_r8, &
         0.0004091_r8,  0.0004130_r8,  0.0004168_r8,  0.0004206_r8,  0.0004244_r8, &
         0.0004281_r8,  0.0004318_r8,  0.0004354_r8,  0.0004390_r8,  0.0004426_r8, &
         0.0004461_r8,  0.0004496_r8,  0.0004530_r8,  0.0004565_r8,  0.0004598_r8, &
         0.0004632_r8,  0.0004665_r8,  0.0004698_r8,  0.0004730_r8,  0.0004763_r8, &
         0.0004795_r8,  0.0004826_r8, &
         0.0001728_r8,  0.0001868_r8,  0.0001996_r8,  0.0002112_r8,  0.0002220_r8, &
         0.0002321_r8,  0.0002417_r8,  0.0002507_r8,  0.0002593_r8,  0.0002676_r8, &
         0.0002755_r8,  0.0002831_r8,  0.0002905_r8,  0.0002977_r8,  0.0003046_r8, &
         0.0003113_r8,  0.0003179_r8,  0.0003243_r8,  0.0003305_r8,  0.0003366_r8, &
         0.0003426_r8,  0.0003484_r8,  0.0003542_r8,  0.0003598_r8,  0.0003653_r8, &
         0.0003707_r8,  0.0003760_r8,  0.0003812_r8,  0.0003863_r8,  0.0003914_r8, &
         0.0003963_r8,  0.0004012_r8,  0.0004060_r8,  0.0004108_r8,  0.0004154_r8, &
         0.0004201_r8,  0.0004246_r8,  0.0004291_r8,  0.0004335_r8,  0.0004379_r8, &
         0.0004422_r8,  0.0004464_r8,  0.0004506_r8,  0.0004548_r8,  0.0004589_r8, &
         0.0004629_r8,  0.0004669_r8,  0.0004709_r8,  0.0004748_r8,  0.0004787_r8, &
         0.0004825_r8,  0.0004863_r8,  0.0004900_r8,  0.0004937_r8,  0.0004974_r8, &
         0.0005010_r8,  0.0005046_r8,  0.0005082_r8,  0.0005117_r8,  0.0005152_r8, &
         0.0005187_r8,  0.0005221_r8, &
         0.0001851_r8,  0.0002003_r8,  0.0002139_r8,  0.0002265_r8,  0.0002382_r8, &
         0.0002491_r8,  0.0002595_r8,  0.0002693_r8,  0.0002787_r8,  0.0002877_r8, &
         0.0002963_r8,  0.0003047_r8,  0.0003127_r8,  0.0003205_r8,  0.0003281_r8, &
         0.0003355_r8,  0.0003427_r8,  0.0003497_r8,  0.0003565_r8,  0.0003632_r8, &
         0.0003697_r8,  0.0003761_r8,  0.0003824_r8,  0.0003885_r8,  0.0003945_r8, &
         0.0004004_r8,  0.0004062_r8,  0.0004119_r8,  0.0004175_r8,  0.0004230_r8, &
         0.0004285_r8,  0.0004338_r8,  0.0004390_r8,  0.0004442_r8,  0.0004493_r8, &
         0.0004543_r8,  0.0004593_r8,  0.0004641_r8,  0.0004689_r8,  0.0004737_r8, &
         0.0004784_r8,  0.0004830_r8,  0.0004875_r8,  0.0004920_r8,  0.0004965_r8, &
         0.0005009_r8,  0.0005052_r8,  0.0005095_r8,  0.0005138_r8,  0.0005179_r8, &
         0.0005221_r8,  0.0005262_r8,  0.0005302_r8,  0.0005342_r8,  0.0005268_r8, &
         0.0005421_r8,  0.0005460_r8,  0.0005499_r8,  0.0005537_r8,  0.0005574_r8, &
         0.0005612_r8,  0.0005649_r8, &
         0.0001985_r8,  0.0002149_r8,  0.0002297_r8,  0.0002433_r8,  0.0002559_r8, &
         0.0002679_r8,  0.0002791_r8,  0.0002898_r8,  0.0003001_r8,  0.0003099_r8, &
         0.0003193_r8,  0.0003285_r8,  0.0003373_r8,  0.0003459_r8,  0.0003542_r8, &
         0.0003622_r8,  0.0003701_r8,  0.0003778_r8,  0.0003853_r8,  0.0003926_r8, &
         0.0003997_r8,  0.0004067_r8,  0.0004135_r8,  0.0004202_r8,  0.0004268_r8, &
         0.0004333_r8,  0.0004396_r8,  0.0004458_r8,  0.0004519_r8,  0.0004579_r8, &
         0.0004638_r8,  0.0004696_r8,  0.0004753_r8,  0.0004809_r8,  0.0004864_r8, &
         0.0004919_r8,  0.0004972_r8,  0.0005025_r8,  0.0005077_r8,  0.0005129_r8, &
         0.0005179_r8,  0.0005229_r8,  0.0005279_r8,  0.0005327_r8,  0.0005375_r8, &
         0.0005423_r8,  0.0005470_r8,  0.0005516_r8,  0.0005562_r8,  0.0005607_r8, &
         0.0005652_r8,  0.0005696_r8,  0.0005739_r8,  0.0005782_r8,  0.0005825_r8, &
         0.0005867_r8,  0.0005909_r8,  0.0005951_r8,  0.0005991_r8,  0.0006032_r8, &
         0.0006072_r8,  0.0006112_r8, &
         0.0002132_r8,  0.0002309_r8,  0.0002469_r8,  0.0002617_r8,  0.0002755_r8, &
         0.0002885_r8,  0.0003008_r8,  0.0003125_r8,  0.0003237_r8,  0.0003345_r8, &
         0.0003449_r8,  0.0003549_r8,  0.0003645_r8,  0.0003739_r8,  0.0003830_r8, &
         0.0003918_r8,  0.0004004_r8,  0.0004088_r8,  0.0004170_r8,  0.0004250_r8, &
         0.0004328_r8,  0.0004404_r8,  0.0004478_r8,  0.0004551_r8,  0.0004623_r8, &
         0.0004693_r8,  0.0004762_r8,  0.0004829_r8,  0.0004895_r8,  0.0004960_r8, &
         0.0005024_r8,  0.0005087_r8,  0.0005149_r8,  0.0005210_r8,  0.0005269_r8, &
         0.0005328_r8,  0.0005272_r8,  0.0005443_r8,  0.0005500_r8,  0.0005555_r8, &
         0.0005609_r8,  0.0005663_r8,  0.0005717_r8,  0.0005769_r8,  0.0005821_r8, &
         0.0005872_r8,  0.0005922_r8,  0.0005972_r8,  0.0006021_r8,  0.0006070_r8, &
         0.0006118_r8,  0.0006165_r8,  0.0006212_r8,  0.0006258_r8,  0.0006304_r8, &
         0.0006349_r8,  0.0006394_r8,  0.0006438_r8,  0.0006482_r8,  0.0006525_r8, &
         0.0006568_r8,  0.0006611_r8, &
         0.0002293_r8,  0.0002485_r8,  0.0002660_r8,  0.0002821_r8,  0.0002972_r8, &
         0.0003114_r8,  0.0003249_r8,  0.0003377_r8,  0.0003500_r8,  0.0003618_r8, &
         0.0003732_r8,  0.0003841_r8,  0.0003947_r8,  0.0004049_r8,  0.0004149_r8, &
         0.0004245_r8,  0.0004339_r8,  0.0004430_r8,  0.0004520_r8,  0.0004606_r8, &
         0.0004691_r8,  0.0004774_r8,  0.0004855_r8,  0.0004934_r8,  0.0005012_r8, &
         0.0005087_r8,  0.0005162_r8,  0.0005235_r8,  0.0005306_r8,  0.0005377_r8, &
         0.0005446_r8,  0.0005513_r8,  0.0005580_r8,  0.0005646_r8,  0.0005710_r8, &
         0.0005773_r8,  0.0005836_r8,  0.0005897_r8,  0.0005957_r8,  0.0006017_r8, &
         0.0006076_r8,  0.0006134_r8,  0.0006191_r8,  0.0006247_r8,  0.0006302_r8, &
         0.0006357_r8,  0.0006411_r8,  0.0006464_r8,  0.0006517_r8,  0.0006569_r8, &
         0.0006620_r8,  0.0006671_r8,  0.0006721_r8,  0.0006771_r8,  0.0006820_r8, &
         0.0006868_r8,  0.0006916_r8,  0.0006963_r8,  0.0007010_r8,  0.0007056_r8, &
         0.0007102_r8,  0.0007147_r8, &
         0.0002471_r8,  0.0002680_r8,  0.0002871_r8,  0.0003048_r8,  0.0003214_r8, &
         0.0003369_r8,  0.0003517_r8,  0.0003658_r8,  0.0003792_r8,  0.0003921_r8, &
         0.0004045_r8,  0.0004165_r8,  0.0004281_r8,  0.0004392_r8,  0.0004501_r8, &
         0.0004606_r8,  0.0004708_r8,  0.0004807_r8,  0.0004903_r8,  0.0004998_r8, &
         0.0005089_r8,  0.0005179_r8,  0.0005267_r8,  0.0005352_r8,  0.0005436_r8, &
         0.0005518_r8,  0.0005598_r8,  0.0005677_r8,  0.0005754_r8,  0.0005829_r8, &
         0.0005903_r8,  0.0005976_r8,  0.0006048_r8,  0.0006118_r8,  0.0006187_r8, &
         0.0006255_r8,  0.0006322_r8,  0.0006388_r8,  0.0006453_r8,  0.0006516_r8, &
         0.0006579_r8,  0.0006641_r8,  0.0006702_r8,  0.0006762_r8,  0.0006822_r8, &
         0.0006880_r8,  0.0006938_r8,  0.0006995_r8,  0.0007051_r8,  0.0007106_r8, &
         0.0007161_r8,  0.0007215_r8,  0.0007269_r8,  0.0007321_r8,  0.0007374_r8, &
         0.0007425_r8,  0.0007476_r8,  0.0007527_r8,  0.0007576_r8,  0.0007626_r8, &
         0.0007674_r8,  0.0007723_r8, &
         0.0002669_r8,  0.0002898_r8,  0.0003107_r8,  0.0003300_r8,  0.0003482_r8, &
         0.0003653_r8,  0.0003815_r8,  0.0003969_r8,  0.0004116_r8,  0.0004257_r8, &
         0.0004392_r8,  0.0004522_r8,  0.0004648_r8,  0.0004769_r8,  0.0004887_r8, &
         0.0005001_r8,  0.0005111_r8,  0.0005218_r8,  0.0005323_r8,  0.0005425_r8, &
         0.0005524_r8,  0.0005620_r8,  0.0005714_r8,  0.0005807_r8,  0.0005897_r8, &
         0.0005985_r8,  0.0006071_r8,  0.0006155_r8,  0.0006238_r8,  0.0006319_r8, &
         0.0006398_r8,  0.0006476_r8,  0.0006553_r8,  0.0006628_r8,  0.0006702_r8, &
         0.0006775_r8,  0.0006846_r8,  0.0006917_r8,  0.0006986_r8,  0.0007054_r8, &
         0.0007121_r8,  0.0007187_r8,  0.0007252_r8,  0.0007316_r8,  0.0007379_r8, &
         0.0007442_r8,  0.0007503_r8,  0.0007564_r8,  0.0007624_r8,  0.0007683_r8, &
         0.0007741_r8,  0.0007798_r8,  0.0007855_r8,  0.0007911_r8,  0.0007967_r8, &
         0.0008022_r8,  0.0008076_r8,  0.0008129_r8,  0.0008182_r8,  0.0008235_r8, &
         0.0008286_r8,  0.0008337_r8, &
         0.0002889_r8,  0.0003140_r8,  0.0003369_r8,  0.0003582_r8,  0.0003780_r8, &
         0.0003967_r8,  0.0004144_r8,  0.0004312_r8,  0.0004473_r8,  0.0004626_r8, &
         0.0004773_r8,  0.0004914_r8,  0.0005050_r8,  0.0005182_r8,  0.0005309_r8, &
         0.0005432_r8,  0.0005551_r8,  0.0005666_r8,  0.0005779_r8,  0.0005888_r8, &
         0.0005995_r8,  0.0006098_r8,  0.0006200_r8,  0.0006298_r8,  0.0006395_r8, &
         0.0006489_r8,  0.0006581_r8,  0.0006672_r8,  0.0006760_r8,  0.0006847_r8, &
         0.0006932_r8,  0.0007015_r8,  0.0007097_r8,  0.0007177_r8,  0.0007256_r8, &
         0.0007333_r8,  0.0007409_r8,  0.0007484_r8,  0.0007558_r8,  0.0007630_r8, &
         0.0007702_r8,  0.0007772_r8,  0.0007841_r8,  0.0007909_r8,  0.0007976_r8, &
         0.0008043_r8,  0.0008108_r8,  0.0008172_r8,  0.0008236_r8,  0.0008298_r8, &
         0.0008360_r8,  0.0008421_r8,  0.0008481_r8,  0.0008541_r8,  0.0008600_r8, &
         0.0008658_r8,  0.0008715_r8,  0.0008772_r8,  0.0008828_r8,  0.0008883_r8, &
         0.0008938_r8,  0.0008992_r8, &
         0.0003135_r8,  0.0003410_r8,  0.0003662_r8,  0.0003895_r8,  0.0004112_r8, &
         0.0004316_r8,  0.0004509_r8,  0.0004692_r8,  0.0004866_r8,  0.0005032_r8, &
         0.0005191_r8,  0.0005344_r8,  0.0005491_r8,  0.0005632_r8,  0.0005769_r8, &
         0.0005901_r8,  0.0006029_r8,  0.0006153_r8,  0.0006274_r8,  0.0006391_r8, &
         0.0006505_r8,  0.0006616_r8,  0.0006725_r8,  0.0006830_r8,  0.0006933_r8, &
         0.0007034_r8,  0.0007132_r8,  0.0007229_r8,  0.0007323_r8,  0.0007415_r8, &
         0.0007506_r8,  0.0007595_r8,  0.0007682_r8,  0.0007767_r8,  0.0007851_r8, &
         0.0007933_r8,  0.0008014_r8,  0.0008093_r8,  0.0008172_r8,  0.0008249_r8, &
         0.0008324_r8,  0.0008399_r8,  0.0008472_r8,  0.0008544_r8,  0.0008615_r8, &
         0.0008685_r8,  0.0008755_r8,  0.0008823_r8,  0.0008890_r8,  0.0008956_r8, &
         0.0009021_r8,  0.0009086_r8,  0.0009149_r8,  0.0009212_r8,  0.0009274_r8, &
         0.0009335_r8,  0.0009396_r8,  0.0009455_r8,  0.0009514_r8,  0.0009573_r8, &
         0.0009630_r8,  0.0009687_r8, &
         0.0003409_r8,  0.0003711_r8,  0.0003987_r8,  0.0004241_r8,  0.0004478_r8, &
         0.0004700_r8,  0.0004909_r8,  0.0005107_r8,  0.0005295_r8,  0.0005474_r8, &
         0.0005645_r8,  0.0005810_r8,  0.0005968_r8,  0.0006120_r8,  0.0006267_r8, &
         0.0006408_r8,  0.0006545_r8,  0.0006678_r8,  0.0006807_r8,  0.0006932_r8, &
         0.0007054_r8,  0.0007173_r8,  0.0007288_r8,  0.0007401_r8,  0.0007510_r8, &
         0.0007618_r8,  0.0007722_r8,  0.0007825_r8,  0.0007925_r8,  0.0008023_r8, &
         0.0008119_r8,  0.0008213_r8,  0.0008306_r8,  0.0008396_r8,  0.0008485_r8, &
         0.0008572_r8,  0.0008658_r8,  0.0008742_r8,  0.0008824_r8,  0.0008906_r8, &
         0.0008986_r8,  0.0009064_r8,  0.0009142_r8,  0.0009218_r8,  0.0009293_r8, &
         0.0009367_r8,  0.0009439_r8,  0.0009511_r8,  0.0009582_r8,  0.0009652_r8, &
         0.0009720_r8,  0.0009788_r8,  0.0009855_r8,  0.0009921_r8,  0.0009986_r8, &
         0.0010050_r8,  0.0010113_r8,  0.0010176_r8,  0.0010238_r8,  0.0010299_r8, &
         0.0010359_r8,  0.0010419_r8, &
         0.0003715_r8,  0.0004046_r8,  0.0004346_r8,  0.0004623_r8,  0.0004880_r8, &
         0.0005120_r8,  0.0005346_r8,  0.0005560_r8,  0.0005762_r8,  0.0005955_r8, &
         0.0006139_r8,  0.0006315_r8,  0.0006485_r8,  0.0006648_r8,  0.0006804_r8, &
         0.0006956_r8,  0.0007102_r8,  0.0007244_r8,  0.0007382_r8,  0.0007515_r8, &
         0.0007645_r8,  0.0007771_r8,  0.0007893_r8,  0.0008012_r8,  0.0008129_r8, &
         0.0008243_r8,  0.0008354_r8,  0.0008463_r8,  0.0008569_r8,  0.0008673_r8, &
         0.0008774_r8,  0.0008874_r8,  0.0008971_r8,  0.0009067_r8,  0.0009160_r8, &
         0.0009252_r8,  0.0009342_r8,  0.0009431_r8,  0.0009518_r8,  0.0009604_r8, &
         0.0009688_r8,  0.0009770_r8,  0.0009851_r8,  0.0009931_r8,  0.0010010_r8, &
         0.0010088_r8,  0.0010164_r8,  0.0010239_r8,  0.0010313_r8,  0.0010386_r8, &
         0.0010458_r8,  0.0010529_r8,  0.0010598_r8,  0.0010667_r8,  0.0010735_r8, &
         0.0010802_r8,  0.0010869_r8,  0.0010934_r8,  0.0010998_r8,  0.0011062_r8, &
         0.0011125_r8,  0.0011187_r8, &
         0.0004055_r8,  0.0004415_r8,  0.0004742_r8,  0.0005042_r8,  0.0005320_r8, &
         0.0005579_r8,  0.0005822_r8,  0.0006052_r8,  0.0006269_r8,  0.0006476_r8, &
         0.0006673_r8,  0.0006862_r8,  0.0007042_r8,  0.0007216_r8,  0.0007383_r8, &
         0.0007545_r8,  0.0007701_r8,  0.0007851_r8,  0.0007997_r8,  0.0008139_r8, &
         0.0008276_r8,  0.0008410_r8,  0.0008540_r8,  0.0008666_r8,  0.0008789_r8, &
         0.0008910_r8,  0.0009027_r8,  0.0009141_r8,  0.0009253_r8,  0.0009362_r8, &
         0.0009469_r8,  0.0009574_r8,  0.0009676_r8,  0.0009777_r8,  0.0009875_r8, &
         0.0009972_r8,  0.0010066_r8,  0.0010159_r8,  0.0010250_r8,  0.0010339_r8, &
         0.0010427_r8,  0.0010514_r8,  0.0010599_r8,  0.0010682_r8,  0.0010764_r8, &
         0.0010845_r8,  0.0010925_r8,  0.0011003_r8,  0.0011080_r8,  0.0011156_r8, &
         0.0011231_r8,  0.0011304_r8,  0.0011377_r8,  0.0011449_r8,  0.0011519_r8, &
         0.0011589_r8,  0.0011658_r8,  0.0011726_r8,  0.0011793_r8,  0.0011859_r8, &
         0.0011924_r8,  0.0011989_r8, &
         0.0004429_r8,  0.0004821_r8,  0.0005175_r8,  0.0005499_r8,  0.0005798_r8, &
         0.0006076_r8,  0.0006337_r8,  0.0006583_r8,  0.0006816_r8,  0.0007037_r8, &
         0.0007247_r8,  0.0007448_r8,  0.0007640_r8,  0.0007825_r8,  0.0008003_r8, &
         0.0008174_r8,  0.0008339_r8,  0.0008499_r8,  0.0008653_r8,  0.0008803_r8, &
         0.0008948_r8,  0.0009089_r8,  0.0009226_r8,  0.0009359_r8,  0.0009488_r8, &
         0.0009615_r8,  0.0009738_r8,  0.0009858_r8,  0.0009975_r8,  0.0010089_r8, &
         0.0010201_r8,  0.0010311_r8,  0.0010418_r8,  0.0010523_r8,  0.0010625_r8, &
         0.0010726_r8,  0.0010825_r8,  0.0010921_r8,  0.0011016_r8,  0.0011109_r8, &
         0.0011201_r8,  0.0011291_r8,  0.0011379_r8,  0.0011466_r8,  0.0011551_r8, &
         0.0011635_r8,  0.0011718_r8,  0.0011799_r8,  0.0011879_r8,  0.0011958_r8, &
         0.0012035_r8,  0.0012112_r8,  0.0012187_r8,  0.0012261_r8,  0.0012335_r8, &
         0.0012407_r8,  0.0012478_r8,  0.0012548_r8,  0.0012618_r8,  0.0012686_r8, &
         0.0012754_r8,  0.0012821_r8, &
         0.0004840_r8,  0.0005264_r8,  0.0005646_r8,  0.0005994_r8,  0.0006316_r8, &
         0.0006614_r8,  0.0006893_r8,  0.0007155_r8,  0.0007403_r8,  0.0007638_r8, &
         0.0007862_r8,  0.0008075_r8,  0.0008279_r8,  0.0008475_r8,  0.0008663_r8, &
         0.0008844_r8,  0.0009018_r8,  0.0009186_r8,  0.0009349_r8,  0.0009506_r8, &
         0.0009658_r8,  0.0009806_r8,  0.0009950_r8,  0.0010089_r8,  0.0010225_r8, &
         0.0010356_r8,  0.0010485_r8,  0.0010610_r8,  0.0010733_r8,  0.0010852_r8, &
         0.0010968_r8,  0.0011082_r8,  0.0011194_r8,  0.0011303_r8,  0.0011409_r8, &
         0.0011514_r8,  0.0011616_r8,  0.0011717_r8,  0.0011815_r8,  0.0011912_r8, &
         0.0012007_r8,  0.0012100_r8,  0.0012191_r8,  0.0012281_r8,  0.0012370_r8, &
         0.0012457_r8,  0.0012542_r8,  0.0012627_r8,  0.0012709_r8,  0.0012791_r8, &
         0.0012871_r8,  0.0012951_r8,  0.0013029_r8,  0.0013106_r8,  0.0013181_r8, &
         0.0013256_r8,  0.0013330_r8,  0.0013403_r8,  0.0013475_r8,  0.0013546_r8, &
         0.0013616_r8,  0.0013685_r8, &
         0.0005290_r8,  0.0005747_r8,  0.0006157_r8,  0.0006530_r8,  0.0006874_r8, &
         0.0007192_r8,  0.0007490_r8,  0.0007769_r8,  0.0008032_r8,  0.0008281_r8, &
         0.0008518_r8,  0.0008743_r8,  0.0008959_r8,  0.0009165_r8,  0.0009362_r8, &
         0.0009552_r8,  0.0009735_r8,  0.0009911_r8,  0.0010082_r8,  0.0010246_r8, &
         0.0010405_r8,  0.0010559_r8,  0.0010709_r8,  0.0010854_r8,  0.0010995_r8, &
         0.0011132_r8,  0.0011266_r8,  0.0011396_r8,  0.0011523_r8,  0.0011647_r8, &
         0.0011768_r8,  0.0011886_r8,  0.0012002_r8,  0.0012115_r8,  0.0012225_r8, &
         0.0012334_r8,  0.0012440_r8,  0.0012544_r8,  0.0012646_r8,  0.0012746_r8, &
         0.0012844_r8,  0.0012941_r8,  0.0013036_r8,  0.0013129_r8,  0.0013220_r8, &
         0.0013310_r8,  0.0013399_r8,  0.0013486_r8,  0.0013572_r8,  0.0013657_r8, &
         0.0013740_r8,  0.0013823_r8,  0.0013904_r8,  0.0013983_r8,  0.0014062_r8, &
         0.0014140_r8,  0.0014217_r8,  0.0014292_r8,  0.0014367_r8,  0.0014441_r8, &
         0.0014514_r8,  0.0014586_r8, &
         0.0005778_r8,  0.0006269_r8,  0.0006708_r8,  0.0007107_r8,  0.0007473_r8, &
         0.0007812_r8,  0.0008127_r8,  0.0008423_r8,  0.0008701_r8,  0.0008964_r8, &
         0.0009213_r8,  0.0009450_r8,  0.0009676_r8,  0.0009892_r8,  0.0010099_r8, &
         0.0010297_r8,  0.0010488_r8,  0.0010671_r8,  0.0010848_r8,  0.0011020_r8, &
         0.0011185_r8,  0.0011345_r8,  0.0011500_r8,  0.0011651_r8,  0.0011798_r8, &
         0.0011940_r8,  0.0012078_r8,  0.0012213_r8,  0.0012345_r8,  0.0012473_r8, &
         0.0012599_r8,  0.0012721_r8,  0.0012841_r8,  0.0012958_r8,  0.0013073_r8, &
         0.0013185_r8,  0.0013295_r8,  0.0013403_r8,  0.0013509_r8,  0.0013612_r8, &
         0.0013714_r8,  0.0013815_r8,  0.0013913_r8,  0.0014010_r8,  0.0014105_r8, &
         0.0014199_r8,  0.0014291_r8,  0.0014382_r8,  0.0014471_r8,  0.0014559_r8, &
         0.0014646_r8,  0.0014732_r8,  0.0014816_r8,  0.0014900_r8,  0.0014982_r8, &
         0.0015063_r8,  0.0015143_r8,  0.0015222_r8,  0.0015300_r8,  0.0015377_r8, &
         0.0015453_r8,  0.0015528_r8, &
         0.0006307_r8,  0.0006832_r8,  0.0007301_r8,  0.0007725_r8,  0.0008114_r8, &
         0.0008472_r8,  0.0008805_r8,  0.0009116_r8,  0.0009409_r8,  0.0009684_r8, &
         0.0009945_r8,  0.0010193_r8,  0.0010428_r8,  0.0010653_r8,  0.0010868_r8, &
         0.0011075_r8,  0.0011273_r8,  0.0011464_r8,  0.0011647_r8,  0.0011825_r8, &
         0.0011996_r8,  0.0012162_r8,  0.0012323_r8,  0.0012480_r8,  0.0012631_r8, &
         0.0012779_r8,  0.0012922_r8,  0.0013062_r8,  0.0013199_r8,  0.0013332_r8, &
         0.0013462_r8,  0.0013589_r8,  0.0013713_r8,  0.0013835_r8,  0.0013954_r8, &
         0.0014071_r8,  0.0014186_r8,  0.0014298_r8,  0.0014408_r8,  0.0014516_r8, &
         0.0014623_r8,  0.0014727_r8,  0.0014830_r8,  0.0014931_r8,  0.0015030_r8, &
         0.0015128_r8,  0.0015225_r8,  0.0015319_r8,  0.0015413_r8,  0.0015505_r8, &
         0.0015596_r8,  0.0015686_r8,  0.0015774_r8,  0.0015862_r8,  0.0015948_r8, &
         0.0016033_r8,  0.0016117_r8,  0.0016200_r8,  0.0016282_r8,  0.0016363_r8, &
         0.0016443_r8,  0.0016522_r8, &
         0.0006876_r8,  0.0007436_r8,  0.0007934_r8,  0.0008383_r8,  0.0008793_r8, &
         0.0009170_r8,  0.0009520_r8,  0.0009846_r8,  0.0010150_r8,  0.0010439_r8, &
         0.0010710_r8,  0.0010968_r8,  0.0011213_r8,  0.0011446_r8,  0.0011669_r8, &
         0.0011883_r8,  0.0012089_r8,  0.0012287_r8,  0.0012477_r8,  0.0012661_r8, &
         0.0012839_r8,  0.0013011_r8,  0.0013178_r8,  0.0013340_r8,  0.0013498_r8, &
         0.0013651_r8,  0.0013800_r8,  0.0013946_r8,  0.0014088_r8,  0.0014227_r8, &
         0.0014362_r8,  0.0014495_r8,  0.0014624_r8,  0.0014751_r8,  0.0014876_r8, &
         0.0014998_r8,  0.0015117_r8,  0.0015235_r8,  0.0015350_r8,  0.0015464_r8, &
         0.0015575_r8,  0.0015685_r8,  0.0015792_r8,  0.0015899_r8,  0.0016003_r8, &
         0.0016106_r8,  0.0016207_r8,  0.0016307_r8,  0.0016405_r8,  0.0016502_r8, &
         0.0016598_r8,  0.0016693_r8,  0.0016786_r8,  0.0016878_r8,  0.0016969_r8, &
         0.0017059_r8,  0.0017147_r8,  0.0017235_r8,  0.0017322_r8,  0.0017407_r8, &
         0.0017492_r8,  0.0017575_r8, &
         0.0007485_r8,  0.0008080_r8,  0.0008606_r8,  0.0009079_r8,  0.0009509_r8, &
         0.0009904_r8,  0.0010269_r8,  0.0010608_r8,  0.0010926_r8,  0.0011225_r8, &
         0.0011507_r8,  0.0011774_r8,  0.0012028_r8,  0.0012270_r8,  0.0012501_r8, &
         0.0012723_r8,  0.0012936_r8,  0.0013142_r8,  0.0013339_r8,  0.0013531_r8, &
         0.0013716_r8,  0.0013895_r8,  0.0014069_r8,  0.0014238_r8,  0.0014402_r8, &
         0.0014562_r8,  0.0014718_r8,  0.0014870_r8,  0.0015019_r8,  0.0015164_r8, &
         0.0015306_r8,  0.0015445_r8,  0.0015581_r8,  0.0015714_r8,  0.0015845_r8, &
         0.0015973_r8,  0.0016099_r8,  0.0016223_r8,  0.0016344_r8,  0.0016464_r8, &
         0.0016581_r8,  0.0016697_r8,  0.0016811_r8,  0.0016922_r8,  0.0017033_r8, &
         0.0017141_r8,  0.0017249_r8,  0.0017354_r8,  0.0017458_r8,  0.0017561_r8, &
         0.0017662_r8,  0.0017762_r8,  0.0017861_r8,  0.0017959_r8,  0.0018055_r8, &
         0.0018150_r8,  0.0018244_r8,  0.0018337_r8,  0.0018429_r8,  0.0018520_r8, &
         0.0018610_r8,  0.0018698_r8, &
         0.0008135_r8,  0.0008762_r8,  0.0009315_r8,  0.0009811_r8,  0.0010259_r8, &
         0.0010670_r8,  0.0011050_r8,  0.0011402_r8,  0.0011732_r8,  0.0012042_r8, &
         0.0012334_r8,  0.0012611_r8,  0.0012874_r8,  0.0013126_r8,  0.0013366_r8, &
         0.0013597_r8,  0.0013819_r8,  0.0014033_r8,  0.0014239_r8,  0.0014439_r8, &
         0.0014632_r8,  0.0014820_r8,  0.0015002_r8,  0.0015179_r8,  0.0015351_r8, &
         0.0015519_r8,  0.0015683_r8,  0.0015843_r8,  0.0016000_r8,  0.0016153_r8, &
         0.0016302_r8,  0.0016449_r8,  0.0016592_r8,  0.0016733_r8,  0.0016871_r8, &
         0.0017007_r8,  0.0017140_r8,  0.0017271_r8,  0.0017400_r8,  0.0017526_r8, &
         0.0017651_r8,  0.0017773_r8,  0.0017894_r8,  0.0018012_r8,  0.0018129_r8, &
         0.0018245_r8,  0.0018358_r8,  0.0018471_r8,  0.0018581_r8,  0.0018690_r8, &
         0.0018798_r8,  0.0018904_r8,  0.0019009_r8,  0.0019113_r8,  0.0019215_r8, &
         0.0019316_r8,  0.0019416_r8,  0.0019515_r8,  0.0019613_r8,  0.0019709_r8, &
         0.0019805_r8,  0.0019899_r8, &
         0.0008823_r8,  0.0009481_r8,  0.0010059_r8,  0.0010575_r8,  0.0011042_r8, &
         0.0011468_r8,  0.0011862_r8,  0.0012227_r8,  0.0012569_r8,  0.0012891_r8, &
         0.0013195_r8,  0.0013483_r8,  0.0013757_r8,  0.0014020_r8,  0.0014271_r8, &
         0.0014512_r8,  0.0014744_r8,  0.0014968_r8,  0.0015185_r8,  0.0015395_r8, &
         0.0015598_r8,  0.0015795_r8,  0.0015987_r8,  0.0016174_r8,  0.0016356_r8, &
         0.0016533_r8,  0.0016707_r8,  0.0016876_r8,  0.0017041_r8,  0.0017203_r8, &
         0.0017362_r8,  0.0017517_r8,  0.0017669_r8,  0.0017819_r8,  0.0017965_r8, &
         0.0018109_r8,  0.0018251_r8,  0.0018390_r8,  0.0018527_r8,  0.0018661_r8, &
         0.0018793_r8,  0.0018924_r8,  0.0019052_r8,  0.0019178_r8,  0.0019303_r8, &
         0.0019425_r8,  0.0019546_r8,  0.0019665_r8,  0.0019783_r8,  0.0019899_r8, &
         0.0020014_r8,  0.0020127_r8,  0.0020238_r8,  0.0020348_r8,  0.0020457_r8, &
         0.0020565_r8,  0.0020671_r8,  0.0020776_r8,  0.0020880_r8,  0.0020983_r8, &
         0.0021084_r8,  0.0021185_r8, &
         0.0009546_r8,  0.0010233_r8,  0.0010834_r8,  0.0011370_r8,  0.0011854_r8, &
         0.0012297_r8,  0.0012705_r8,  0.0013085_r8,  0.0013441_r8,  0.0013776_r8, &
         0.0014093_r8,  0.0014395_r8,  0.0014682_r8,  0.0014957_r8,  0.0015221_r8, &
         0.0015475_r8,  0.0015720_r8,  0.0015956_r8,  0.0016185_r8,  0.0016406_r8, &
         0.0016621_r8,  0.0016830_r8,  0.0017033_r8,  0.0017231_r8,  0.0017424_r8, &
         0.0017613_r8,  0.0017797_r8,  0.0017976_r8,  0.0018152_r8,  0.0018324_r8, &
         0.0018493_r8,  0.0018658_r8,  0.0018820_r8,  0.0018979_r8,  0.0019135_r8, &
         0.0019288_r8,  0.0019439_r8,  0.0019587_r8,  0.0019732_r8,  0.0019875_r8, &
         0.0020016_r8,  0.0020155_r8,  0.0020291_r8,  0.0020425_r8,  0.0020558_r8, &
         0.0020688_r8,  0.0020817_r8,  0.0020944_r8,  0.0021069_r8,  0.0021192_r8, &
         0.0021314_r8,  0.0021434_r8,  0.0021095_r8,  0.0021670_r8,  0.0021786_r8, &
         0.0021900_r8,  0.0022013_r8,  0.0022125_r8,  0.0022235_r8,  0.0022344_r8, &
         0.0022452_r8,  0.0022558_r8, &
         0.0010302_r8,  0.0011016_r8,  0.0011640_r8,  0.0012195_r8,  0.0012698_r8, &
         0.0013159_r8,  0.0013584_r8,  0.0013981_r8,  0.0014354_r8,  0.0014705_r8, &
         0.0015038_r8,  0.0015355_r8,  0.0015658_r8,  0.0015948_r8,  0.0016227_r8, &
         0.0016496_r8,  0.0016755_r8,  0.0017005_r8,  0.0017248_r8,  0.0017483_r8, &
         0.0017712_r8,  0.0017934_r8,  0.0018150_r8,  0.0018360_r8,  0.0018566_r8, &
         0.0018766_r8,  0.0018962_r8,  0.0019153_r8,  0.0019340_r8,  0.0019524_r8, &
         0.0019703_r8,  0.0019879_r8,  0.0020052_r8,  0.0020221_r8,  0.0020387_r8, &
         0.0020550_r8,  0.0020710_r8,  0.0020867_r8,  0.0021022_r8,  0.0021174_r8, &
         0.0021324_r8,  0.0021471_r8,  0.0021159_r8,  0.0021759_r8,  0.0021900_r8, &
         0.0022039_r8,  0.0022175_r8,  0.0022310_r8,  0.0022443_r8,  0.0022574_r8, &
         0.0022703_r8,  0.0022830_r8,  0.0022956_r8,  0.0023080_r8,  0.0023203_r8, &
         0.0023324_r8,  0.0023443_r8,  0.0023562_r8,  0.0023678_r8,  0.0023794_r8, &
         0.0023908_r8,  0.0024020_r8, &
         0.0011087_r8,  0.0011828_r8,  0.0012476_r8,  0.0013054_r8,  0.0013579_r8, &
         0.0014060_r8,  0.0014506_r8,  0.0014923_r8,  0.0015315_r8,  0.0015685_r8, &
         0.0016038_r8,  0.0016373_r8,  0.0016694_r8,  0.0017002_r8,  0.0017298_r8, &
         0.0017583_r8,  0.0017859_r8,  0.0018125_r8,  0.0018384_r8,  0.0018634_r8, &
         0.0018877_r8,  0.0019114_r8,  0.0019344_r8,  0.0019568_r8,  0.0019787_r8, &
         0.0020000_r8,  0.0020209_r8,  0.0020412_r8,  0.0020612_r8,  0.0020807_r8, &
         0.0020998_r8,  0.0021185_r8,  0.0021368_r8,  0.0021090_r8,  0.0021725_r8, &
         0.0021898_r8,  0.0022068_r8,  0.0022235_r8,  0.0022399_r8,  0.0022561_r8, &
         0.0022720_r8,  0.0022876_r8,  0.0023029_r8,  0.0023181_r8,  0.0023330_r8, &
         0.0023477_r8,  0.0023621_r8,  0.0023764_r8,  0.0023904_r8,  0.0024042_r8, &
         0.0024179_r8,  0.0024314_r8,  0.0024446_r8,  0.0024577_r8,  0.0024707_r8, &
         0.0024834_r8,  0.0024960_r8,  0.0025085_r8,  0.0025208_r8,  0.0025329_r8, &
         0.0025449_r8,  0.0025568_r8, &
         0.0011902_r8,  0.0012672_r8,  0.0013347_r8,  0.0013952_r8,  0.0014502_r8,  &
         0.0015008_r8,  0.0015478_r8,  0.0015919_r8,  0.0016334_r8,  0.0016727_r8,  &
         0.0017101_r8,  0.0017457_r8,  0.0017799_r8,  0.0018126_r8,  0.0018442_r8,  &
         0.0018746_r8,  0.0019039_r8,  0.0019323_r8,  0.0019598_r8,  0.0019865_r8,  &
         0.0020124_r8,  0.0020376_r8,  0.0020621_r8,  0.0020859_r8,  0.0021092_r8,  &
         0.0021319_r8,  0.0021083_r8,  0.0021757_r8,  0.0021969_r8,  0.0022176_r8,  &
         0.0022379_r8,  0.0022577_r8,  0.0022772_r8,  0.0022962_r8,  0.0023149_r8,  &
         0.0023333_r8,  0.0023513_r8,  0.0023690_r8,  0.0023863_r8,  0.0024034_r8,  &
         0.0024202_r8,  0.0024366_r8,  0.0024529_r8,  0.0024688_r8,  0.0024845_r8,  &
         0.0025000_r8,  0.0025152_r8,  0.0025302_r8,  0.0025450_r8,  0.0025595_r8,  &
         0.0025739_r8,  0.0025880_r8,  0.0026019_r8,  0.0026157_r8,  0.0026293_r8,  &
         0.0026426_r8,  0.0026557_r8,  0.0026689_r8,  0.0026817_r8,  0.0026944_r8,  &
         0.0027070_r8,  0.0027194_r8, &
         0.0012749_r8,  0.0013552_r8,  0.0014259_r8,  0.0014895_r8,  0.0015475_r8, &
         0.0016010_r8,  0.0016509_r8,  0.0016977_r8,  0.0017418_r8,  0.0017836_r8, &
         0.0018234_r8,  0.0018614_r8,  0.0018978_r8,  0.0019328_r8,  0.0019664_r8, &
         0.0019987_r8,  0.0020300_r8,  0.0020602_r8,  0.0020895_r8,  0.0021179_r8, &
         0.0021454_r8,  0.0021722_r8,  0.0021982_r8,  0.0022235_r8,  0.0022482_r8, &
         0.0022723_r8,  0.0022958_r8,  0.0023187_r8,  0.0023411_r8,  0.0023630_r8, &
         0.0023844_r8,  0.0024054_r8,  0.0024259_r8,  0.0024460_r8,  0.0024658_r8, &
         0.0024851_r8,  0.0025040_r8,  0.0025226_r8,  0.0025409_r8,  0.0025588_r8, &
         0.0025764_r8,  0.0025937_r8,  0.0026107_r8,  0.0026275_r8,  0.0026439_r8, &
         0.0026601_r8,  0.0026760_r8,  0.0026917_r8,  0.0027071_r8,  0.0027223_r8, &
         0.0027373_r8,  0.0027520_r8,  0.0027665_r8,  0.0027808_r8,  0.0027950_r8, &
         0.0028089_r8,  0.0028226_r8,  0.0028361_r8,  0.0028495_r8,  0.0028627_r8, &
         0.0028757_r8,  0.0028885_r8, &
         0.0013631_r8,  0.0014474_r8,  0.0015220_r8,  0.0015892_r8,  0.0016507_r8, &
         0.0017076_r8,  0.0017607_r8,  0.0018105_r8,  0.0018575_r8,  0.0019021_r8, &
         0.0019445_r8,  0.0019850_r8,  0.0020238_r8,  0.0020610_r8,  0.0020967_r8, &
         0.0021312_r8,  0.0021186_r8,  0.0021965_r8,  0.0022276_r8,  0.0022577_r8, &
         0.0022868_r8,  0.0023152_r8,  0.0023427_r8,  0.0023695_r8,  0.0023956_r8, &
         0.0024210_r8,  0.0024457_r8,  0.0024699_r8,  0.0024935_r8,  0.0025165_r8, &
         0.0025390_r8,  0.0025610_r8,  0.0025826_r8,  0.0026037_r8,  0.0026243_r8, &
         0.0026445_r8,  0.0026643_r8,  0.0026838_r8,  0.0027028_r8,  0.0027215_r8, &
         0.0027399_r8,  0.0027579_r8,  0.0027756_r8,  0.0027930_r8,  0.0028101_r8, &
         0.0028269_r8,  0.0028434_r8,  0.0028596_r8,  0.0028756_r8,  0.0028913_r8, &
         0.0029068_r8,  0.0029220_r8,  0.0029370_r8,  0.0029518_r8,  0.0029664_r8, &
         0.0029807_r8,  0.0029949_r8,  0.0030088_r8,  0.0030225_r8,  0.0030361_r8, &
         0.0030494_r8,  0.0030626_r8, &
         0.0014557_r8,  0.0015446_r8,  0.0016236_r8,  0.0016950_r8,  0.0017605_r8, &
         0.0018211_r8,  0.0018777_r8,  0.0019308_r8,  0.0019809_r8,  0.0020284_r8, &
         0.0020736_r8,  0.0021167_r8,  0.0021121_r8,  0.0021973_r8,  0.0022353_r8, &
         0.0022718_r8,  0.0023069_r8,  0.0023409_r8,  0.0023737_r8,  0.0024055_r8, &
         0.0024362_r8,  0.0024661_r8,  0.0024950_r8,  0.0025232_r8,  0.0025506_r8, &
         0.0025772_r8,  0.0026031_r8,  0.0026284_r8,  0.0026531_r8,  0.0026771_r8, &
         0.0027006_r8,  0.0027235_r8,  0.0027460_r8,  0.0027679_r8,  0.0027893_r8, &
         0.0028103_r8,  0.0028309_r8,  0.0028510_r8,  0.0028707_r8,  0.0028900_r8, &
         0.0029090_r8,  0.0029276_r8,  0.0029458_r8,  0.0029637_r8,  0.0029813_r8, &
         0.0029986_r8,  0.0030156_r8,  0.0030322_r8,  0.0030486_r8,  0.0030647_r8, &
         0.0030806_r8,  0.0030962_r8,  0.0031115_r8,  0.0031266_r8,  0.0031414_r8, &
         0.0031560_r8,  0.0031704_r8,  0.0031846_r8,  0.0031986_r8,  0.0032123_r8, &
         0.0032259_r8,  0.0032392_r8, &
         0.0015532_r8,  0.0016476_r8,  0.0017317_r8,  0.0018078_r8,  0.0018775_r8, &
         0.0019422_r8,  0.0020024_r8,  0.0020590_r8,  0.0021123_r8,  0.0021169_r8, &
         0.0022106_r8,  0.0022563_r8,  0.0022999_r8,  0.0023416_r8,  0.0023817_r8, &
         0.0024202_r8,  0.0024572_r8,  0.0024929_r8,  0.0025273_r8,  0.0025607_r8, &
         0.0025929_r8,  0.0026241_r8,  0.0026543_r8,  0.0026837_r8,  0.0027122_r8, &
         0.0027399_r8,  0.0027668_r8,  0.0027931_r8,  0.0028186_r8,  0.0028435_r8, &
         0.0028678_r8,  0.0028915_r8,  0.0029146_r8,  0.0029372_r8,  0.0029592_r8, &
         0.0029808_r8,  0.0030019_r8,  0.0030225_r8,  0.0030427_r8,  0.0030625_r8, &
         0.0030819_r8,  0.0031009_r8,  0.0031195_r8,  0.0031377_r8,  0.0031556_r8, &
         0.0031732_r8,  0.0031904_r8,  0.0032073_r8,  0.0032239_r8,  0.0032402_r8, &
         0.0032563_r8,  0.0032720_r8,  0.0032875_r8,  0.0033027_r8,  0.0033177_r8, &
         0.0033324_r8,  0.0033468_r8,  0.0033611_r8,  0.0033751_r8,  0.0033889_r8, &
         0.0034025_r8,  0.0034159_r8, &
         0.0016566_r8,  0.0017571_r8,  0.0018467_r8,  0.0019278_r8,  0.0020021_r8, &
         0.0020708_r8,  0.0021349_r8,  0.0021949_r8,  0.0022514_r8,  0.0023047_r8, &
         0.0023554_r8,  0.0024035_r8,  0.0024494_r8,  0.0024932_r8,  0.0025352_r8, &
         0.0025755_r8,  0.0026142_r8,  0.0026515_r8,  0.0026874_r8,  0.0027220_r8, &
         0.0027555_r8,  0.0027878_r8,  0.0028191_r8,  0.0028495_r8,  0.0028789_r8, &
         0.0029075_r8,  0.0029352_r8,  0.0029621_r8,  0.0029883_r8,  0.0030138_r8, &
         0.0030387_r8,  0.0030629_r8,  0.0030864_r8,  0.0031094_r8,  0.0031319_r8, &
         0.0031538_r8,  0.0031752_r8,  0.0031961_r8,  0.0032166_r8,  0.0032365_r8, &
         0.0032561_r8,  0.0032752_r8,  0.0032940_r8,  0.0033123_r8,  0.0033303_r8, &
         0.0033479_r8,  0.0033652_r8,  0.0033821_r8,  0.0033988_r8,  0.0034151_r8, &
         0.0034310_r8,  0.0034467_r8,  0.0034622_r8,  0.0034773_r8,  0.0034922_r8, &
         0.0035068_r8,  0.0035211_r8,  0.0035353_r8,  0.0035491_r8,  0.0035628_r8, &
         0.0035762_r8,  0.0035894_r8, &
         0.0017664_r8,  0.0018736_r8,  0.0019689_r8,  0.0020552_r8,  0.0021342_r8, &
         0.0022071_r8,  0.0022749_r8,  0.0023383_r8,  0.0023978_r8,  0.0024539_r8, &
         0.0025070_r8,  0.0025574_r8,  0.0026054_r8,  0.0026511_r8,  0.0026948_r8, &
         0.0027366_r8,  0.0027767_r8,  0.0028153_r8,  0.0028523_r8,  0.0028880_r8, &
         0.0029224_r8,  0.0029556_r8,  0.0029877_r8,  0.0030187_r8,  0.0030487_r8, &
         0.0030778_r8,  0.0031060_r8,  0.0031334_r8,  0.0031599_r8,  0.0031857_r8, &
         0.0032108_r8,  0.0032352_r8,  0.0032590_r8,  0.0032821_r8,  0.0033047_r8, &
         0.0033267_r8,  0.0033481_r8,  0.0033690_r8,  0.0033894_r8,  0.0034094_r8, &
         0.0034289_r8,  0.0034479_r8,  0.0034665_r8,  0.0034847_r8,  0.0035025_r8, &
         0.0035200_r8,  0.0035371_r8,  0.0035538_r8,  0.0035702_r8,  0.0035862_r8, &
         0.0036020_r8,  0.0036174_r8,  0.0036325_r8,  0.0036474_r8,  0.0036620_r8, &
         0.0036763_r8,  0.0036903_r8,  0.0037041_r8,  0.0037177_r8,  0.0037310_r8, &
         0.0037441_r8,  0.0037569_r8, &
         0.0018832_r8,  0.0019973_r8,  0.0020987_r8,  0.0021902_r8,  0.0022737_r8, &
         0.0023505_r8,  0.0024220_r8,  0.0024885_r8,  0.0025508_r8,  0.0026093_r8, &
         0.0026646_r8,  0.0027169_r8,  0.0027666_r8,  0.0028138_r8,  0.0028589_r8, &
         0.0029018_r8,  0.0029430_r8,  0.0029824_r8,  0.0030202_r8,  0.0030565_r8, &
         0.0030915_r8,  0.0031252_r8,  0.0031576_r8,  0.0031890_r8,  0.0032192_r8, &
         0.0032485_r8,  0.0032768_r8,  0.0033042_r8,  0.0033308_r8,  0.0033566_r8, &
         0.0033816_r8,  0.0034059_r8,  0.0034295_r8,  0.0034525_r8,  0.0034748_r8, &
         0.0034966_r8,  0.0035177_r8,  0.0035384_r8,  0.0035585_r8,  0.0035781_r8, &
         0.0035972_r8,  0.0036159_r8,  0.0036341_r8,  0.0036520_r8,  0.0036694_r8, &
         0.0036864_r8,  0.0037031_r8,  0.0037193_r8,  0.0037353_r8,  0.0037509_r8, &
         0.0037662_r8,  0.0037811_r8,  0.0037958_r8,  0.0038102_r8,  0.0038243_r8, &
         0.0038381_r8,  0.0038517_r8,  0.0038650_r8,  0.0038780_r8,  0.0038908_r8, &
         0.0039034_r8,  0.0039158_r8, &
         0.0020072_r8,  0.0021282_r8,  0.0022356_r8,  0.0023321_r8,  0.0024200_r8, &
         0.0025006_r8,  0.0025751_r8,  0.0026443_r8,  0.0027089_r8,  0.0027695_r8, &
         0.0028265_r8,  0.0028803_r8,  0.0029311_r8,  0.0029794_r8,  0.0030252_r8, &
         0.0030689_r8,  0.0031106_r8,  0.0031504_r8,  0.0031886_r8,  0.0032251_r8, &
         0.0032602_r8,  0.0032939_r8,  0.0033263_r8,  0.0033575_r8,  0.0033876_r8, &
         0.0034166_r8,  0.0034447_r8,  0.0034718_r8,  0.0034980_r8,  0.0035234_r8, &
         0.0035480_r8,  0.0035719_r8,  0.0035950_r8,  0.0036175_r8,  0.0036393_r8, &
         0.0036605_r8,  0.0036811_r8,  0.0037012_r8,  0.0037207_r8,  0.0037398_r8, &
         0.0037583_r8,  0.0037764_r8,  0.0037940_r8,  0.0038112_r8,  0.0038280_r8, &
         0.0038444_r8,  0.0038604_r8,  0.0038761_r8,  0.0038914_r8,  0.0039063_r8, &
         0.0039210_r8,  0.0039353_r8,  0.0039494_r8,  0.0039631_r8,  0.0039766_r8, &
         0.0039898_r8,  0.0040027_r8,  0.0040154_r8,  0.0040278_r8,  0.0040400_r8, &
         0.0040520_r8,  0.0040638_r8, &
         0.0021381_r8,  0.0022661_r8,  0.0023791_r8,  0.0024803_r8,  0.0025719_r8, &
         0.0026557_r8,  0.0027328_r8,  0.0028041_r8,  0.0028705_r8,  0.0029325_r8, &
         0.0029905_r8,  0.0030451_r8,  0.0030966_r8,  0.0031453_r8,  0.0031914_r8, &
         0.0032353_r8,  0.0032769_r8,  0.0033166_r8,  0.0033545_r8,  0.0033908_r8, &
         0.0034255_r8,  0.0034588_r8,  0.0034907_r8,  0.0035214_r8,  0.0035509_r8, &
         0.0035793_r8,  0.0036067_r8,  0.0036331_r8,  0.0036586_r8,  0.0036833_r8, &
         0.0037071_r8,  0.0037302_r8,  0.0037526_r8,  0.0037743_r8,  0.0037953_r8, &
         0.0038157_r8,  0.0038356_r8,  0.0038548_r8,  0.0038736_r8,  0.0038916_r8, &
         0.0039095_r8,  0.0039268_r8,  0.0039436_r8,  0.0039600_r8,  0.0039761_r8, &
         0.0039917_r8,  0.0040069_r8,  0.0040218_r8,  0.0040364_r8,  0.0040506_r8, &
         0.0040645_r8,  0.0040781_r8,  0.0040914_r8,  0.0041044_r8,  0.0041172_r8, &
         0.0041296_r8,  0.0041419_r8,  0.0041539_r8,  0.0041656_r8,  0.0041772_r8, &
         0.0041885_r8,  0.0041996_r8, &
         0.0022756_r8,  0.0024100_r8,  0.0025280_r8,  0.0026332_r8,  0.0027280_r8, &
         0.0028142_r8,  0.0028931_r8,  0.0029658_r8,  0.0030331_r8,  0.0030957_r8, &
         0.0031541_r8,  0.0032089_r8,  0.0032603_r8,  0.0033088_r8,  0.0033545_r8, &
         0.0033978_r8,  0.0034389_r8,  0.0034780_r8,  0.0035151_r8,  0.0035506_r8, &
         0.0035844_r8,  0.0036168_r8,  0.0036478_r8,  0.0036775_r8,  0.0037061_r8, &
         0.0037335_r8,  0.0037599_r8,  0.0037853_r8,  0.0038098_r8,  0.0038335_r8, &
         0.0038563_r8,  0.0038784_r8,  0.0038998_r8,  0.0039205_r8,  0.0039405_r8, &
         0.0039599_r8,  0.0039788_r8,  0.0039971_r8,  0.0040149_r8,  0.0040322_r8, &
         0.0040490_r8,  0.0040653_r8,  0.0040813_r8,  0.0040968_r8,  0.0041119_r8, &
         0.0041267_r8,  0.0041411_r8,  0.0041552_r8,  0.0041689_r8,  0.0041823_r8, &
         0.0041954_r8,  0.0042082_r8,  0.0042208_r8,  0.0042331_r8,  0.0042451_r8, &
         0.0042569_r8,  0.0042684_r8,  0.0042797_r8,  0.0042908_r8,  0.0043017_r8, &
         0.0043123_r8,  0.0043228_r8, &
         0.0024185_r8,  0.0025586_r8,  0.0026808_r8,  0.0027890_r8,  0.0028859_r8, &
         0.0029735_r8,  0.0030533_r8,  0.0031264_r8,  0.0031938_r8,  0.0032562_r8, &
         0.0033142_r8,  0.0033683_r8,  0.0034190_r8,  0.0034665_r8,  0.0035113_r8, &
         0.0035535_r8,  0.0035934_r8,  0.0036313_r8,  0.0036672_r8,  0.0037014_r8, &
         0.0037340_r8,  0.0037651_r8,  0.0037948_r8,  0.0038232_r8,  0.0038505_r8, &
         0.0038767_r8,  0.0039018_r8,  0.0039260_r8,  0.0039493_r8,  0.0039717_r8, &
         0.0039934_r8,  0.0040143_r8,  0.0040345_r8,  0.0040540_r8,  0.0040730_r8, &
         0.0040913_r8,  0.0041091_r8,  0.0041264_r8,  0.0041432_r8,  0.0041595_r8, &
         0.0041753_r8,  0.0041907_r8,  0.0042057_r8,  0.0042204_r8,  0.0042346_r8, &
         0.0042485_r8,  0.0042621_r8,  0.0042754_r8,  0.0042883_r8,  0.0043009_r8, &
         0.0043133_r8,  0.0043254_r8,  0.0043372_r8,  0.0043488_r8,  0.0043601_r8, &
         0.0043712_r8,  0.0043821_r8,  0.0043928_r8,  0.0044032_r8,  0.0044135_r8, &
         0.0044236_r8,  0.0044335_r8, &
         0.0025653_r8,  0.0027099_r8,  0.0028350_r8,  0.0029450_r8,  0.0030428_r8, &
         0.0031307_r8,  0.0032102_r8,  0.0032828_r8,  0.0033493_r8,  0.0034106_r8, &
         0.0034673_r8,  0.0035200_r8,  0.0035692_r8,  0.0036152_r8,  0.0036583_r8, &
         0.0036990_r8,  0.0037373_r8,  0.0037735_r8,  0.0038078_r8,  0.0038404_r8, &
         0.0038714_r8,  0.0039009_r8,  0.0039291_r8,  0.0039560_r8,  0.0039818_r8, &
         0.0040065_r8,  0.0040303_r8,  0.0040531_r8,  0.0040751_r8,  0.0040962_r8, &
         0.0041166_r8,  0.0041363_r8,  0.0041553_r8,  0.0041738_r8,  0.0041916_r8, &
         0.0042089_r8,  0.0042256_r8,  0.0042419_r8,  0.0042577_r8,  0.0042730_r8, &
         0.0042879_r8,  0.0043025_r8,  0.0043166_r8,  0.0043304_r8,  0.0043439_r8, &
         0.0043570_r8,  0.0043698_r8,  0.0043823_r8,  0.0043945_r8,  0.0044064_r8, &
         0.0044181_r8,  0.0044296_r8,  0.0044407_r8,  0.0044517_r8,  0.0044624_r8, &
         0.0044730_r8,  0.0044833_r8,  0.0044934_r8,  0.0045033_r8,  0.0045130_r8, &
         0.0045226_r8,  0.0045320_r8, &
         0.0027124_r8,  0.0028597_r8,  0.0029861_r8,  0.0030963_r8,  0.0031936_r8, &
         0.0032805_r8,  0.0033586_r8,  0.0034295_r8,  0.0034941_r8,  0.0035534_r8, &
         0.0036081_r8,  0.0036587_r8,  0.0037058_r8,  0.0037497_r8,  0.0037908_r8, &
         0.0038294_r8,  0.0038657_r8,  0.0039000_r8,  0.0039324_r8,  0.0039631_r8, &
         0.0039923_r8,  0.0040201_r8,  0.0040467_r8,  0.0040720_r8,  0.0040963_r8, &
         0.0041195_r8,  0.0041418_r8,  0.0041633_r8,  0.0041839_r8,  0.0042038_r8, &
         0.0042230_r8,  0.0042415_r8,  0.0042594_r8,  0.0042768_r8,  0.0042935_r8, &
         0.0043098_r8,  0.0043256_r8,  0.0043409_r8,  0.0043558_r8,  0.0043703_r8, &
         0.0043844_r8,  0.0043982_r8,  0.0044115_r8,  0.0044246_r8,  0.0044373_r8, &
         0.0044497_r8,  0.0044619_r8,  0.0044737_r8,  0.0044853_r8,  0.0044966_r8, &
         0.0045077_r8,  0.0045186_r8,  0.0045292_r8,  0.0045397_r8,  0.0045499_r8, &
         0.0045599_r8,  0.0045697_r8,  0.0045793_r8,  0.0045888_r8,  0.0045981_r8, &
         0.0046072_r8,  0.0046162_r8, &
         0.0028481_r8,  0.0029956_r8,  0.0031209_r8,  0.0032292_r8,  0.0033241_r8, &
         0.0034083_r8,  0.0034836_r8,  0.0035515_r8,  0.0036132_r8,  0.0036696_r8, &
         0.0037214_r8,  0.0037692_r8,  0.0038136_r8,  0.0038548_r8,  0.0038934_r8, &
         0.0039296_r8,  0.0039636_r8,  0.0039956_r8,  0.0040260_r8,  0.0040547_r8, &
         0.0040820_r8,  0.0041080_r8,  0.0041328_r8,  0.0041565_r8,  0.0041792_r8, &
         0.0042010_r8,  0.0042219_r8,  0.0042419_r8,  0.0042613_r8,  0.0042800_r8, &
         0.0042980_r8,  0.0043154_r8,  0.0043322_r8,  0.0043485_r8,  0.0043643_r8, &
         0.0043796_r8,  0.0043945_r8,  0.0044090_r8,  0.0044231_r8,  0.0044367_r8, &
         0.0044501_r8,  0.0044631_r8,  0.0044757_r8,  0.0044881_r8,  0.0045001_r8, &
         0.0045119_r8,  0.0045234_r8,  0.0045347_r8,  0.0045457_r8,  0.0045564_r8, &
         0.0045670_r8,  0.0045773_r8,  0.0045874_r8,  0.0045973_r8,  0.0046070_r8, &
         0.0046166_r8,  0.0046259_r8,  0.0046351_r8,  0.0046441_r8,  0.0046530_r8, &
         0.0046616_r8,  0.0046702_r8, &
         0.0029341_r8,  0.0030768_r8,  0.0031968_r8,  0.0032997_r8,  0.0033892_r8, &
         0.0034681_r8,  0.0035383_r8,  0.0036014_r8,  0.0036584_r8,  0.0037104_r8, &
         0.0037581_r8,  0.0038020_r8,  0.0038427_r8,  0.0038805_r8,  0.0039159_r8, &
         0.0039490_r8,  0.0039801_r8,  0.0040095_r8,  0.0040373_r8,  0.0040637_r8, &
         0.0040888_r8,  0.0041127_r8,  0.0041355_r8,  0.0041573_r8,  0.0041782_r8, &
         0.0041983_r8,  0.0042175_r8,  0.0042361_r8,  0.0042540_r8,  0.0042713_r8, &
         0.0042880_r8,  0.0043041_r8,  0.0043197_r8,  0.0043349_r8,  0.0043495_r8, &
         0.0043638_r8,  0.0043777_r8,  0.0043911_r8,  0.0044042_r8,  0.0044170_r8, &
         0.0044294_r8,  0.0044416_r8,  0.0044534_r8,  0.0044649_r8,  0.0044762_r8, &
         0.0044872_r8,  0.0044980_r8,  0.0045085_r8,  0.0045188_r8,  0.0045289_r8, &
         0.0045387_r8,  0.0045484_r8,  0.0045579_r8,  0.0045672_r8,  0.0045763_r8, &
         0.0045852_r8,  0.0045940_r8,  0.0046026_r8,  0.0046110_r8,  0.0046193_r8, &
         0.0046275_r8,  0.0046355_r8, &
         0.0029122_r8,  0.0030427_r8,  0.0031513_r8,  0.0032438_r8,  0.0033237_r8, &
         0.0033938_r8,  0.0034559_r8,  0.0035116_r8,  0.0035619_r8,  0.0036076_r8, &
         0.0036495_r8,  0.0036882_r8,  0.0037238_r8,  0.0037573_r8,  0.0037884_r8, &
         0.0038176_r8,  0.0038451_r8,  0.0038711_r8,  0.0038957_r8,  0.0039191_r8, &
         0.0039413_r8,  0.0039626_r8,  0.0039829_r8,  0.0040023_r8,  0.0040209_r8, &
         0.0040389_r8,  0.0040561_r8,  0.0040727_r8,  0.0040887_r8,  0.0041042_r8, &
         0.0041192_r8,  0.0041337_r8,  0.0041477_r8,  0.0041613_r8,  0.0041745_r8, &
         0.0041874_r8,  0.0041998_r8,  0.0042120_r8,  0.0042238_r8,  0.0042353_r8, &
         0.0042465_r8,  0.0042574_r8,  0.0042681_r8,  0.0042785_r8,  0.0042887_r8, &
         0.0042986_r8,  0.0043084_r8,  0.0043179_r8,  0.0043272_r8,  0.0043363_r8, &
         0.0043452_r8,  0.0043539_r8,  0.0043625_r8,  0.0043709_r8,  0.0043791_r8, &
         0.0043872_r8,  0.0043951_r8,  0.0044029_r8,  0.0044105_r8,  0.0044180_r8, &
         0.0044254_r8,  0.0044326_r8, &
         0.0027405_r8,  0.0028512_r8,  0.0029426_r8,  0.0030199_r8,  0.0030864_r8, &
         0.0031447_r8,  0.0031962_r8,  0.0032424_r8,  0.0032841_r8,  0.0033221_r8, &
         0.0033569_r8,  0.0033891_r8,  0.0034190_r8,  0.0034468_r8,  0.0034729_r8, &
         0.0034974_r8,  0.0035206_r8,  0.0035424_r8,  0.0035632_r8,  0.0035830_r8, &
         0.0036018_r8,  0.0036198_r8,  0.0036370_r8,  0.0036535_r8,  0.0036694_r8, &
         0.0036847_r8,  0.0036993_r8,  0.0037135_r8,  0.0037272_r8,  0.0037404_r8, &
         0.0037532_r8,  0.0037656_r8,  0.0037776_r8,  0.0037892_r8,  0.0038005_r8, &
         0.0038115_r8,  0.0038222_r8,  0.0038326_r8,  0.0038427_r8,  0.0038526_r8, &
         0.0038622_r8,  0.0038716_r8,  0.0038808_r8,  0.0038897_r8,  0.0038984_r8, &
         0.0039070_r8,  0.0039153_r8,  0.0039235_r8,  0.0039314_r8,  0.0039393_r8, &
         0.0039469_r8,  0.0039544_r8,  0.0039618_r8,  0.0039690_r8,  0.0039761_r8, &
         0.0039830_r8,  0.0039898_r8,  0.0039965_r8,  0.0040030_r8,  0.0040095_r8, &
         0.0040158_r8,  0.0040220_r8, &
         0.0024633_r8,  0.0025514_r8,  0.0026239_r8,  0.0026851_r8,  0.0027377_r8, &
         0.0027838_r8,  0.0028247_r8,  0.0028613_r8,  0.0028946_r8,  0.0029249_r8, &
         0.0029529_r8,  0.0029787_r8,  0.0030028_r8,  0.0030253_r8,  0.0030464_r8, &
         0.0030663_r8,  0.0030851_r8,  0.0031029_r8,  0.0031199_r8,  0.0031360_r8, &
         0.0031514_r8,  0.0031661_r8,  0.0031803_r8,  0.0031938_r8,  0.0032068_r8, &
         0.0032194_r8,  0.0032314_r8,  0.0032431_r8,  0.0032544_r8,  0.0032652_r8, &
         0.0032758_r8,  0.0032860_r8,  0.0032959_r8,  0.0033055_r8,  0.0033148_r8, &
         0.0033239_r8,  0.0033327_r8,  0.0033413_r8,  0.0033497_r8,  0.0033578_r8, &
         0.0033658_r8,  0.0033735_r8,  0.0033811_r8,  0.0033885_r8,  0.0033957_r8, &
         0.0034028_r8,  0.0034097_r8,  0.0034164_r8,  0.0034230_r8,  0.0034295_r8, &
         0.0034359_r8,  0.0034421_r8,  0.0034482_r8,  0.0034541_r8,  0.0034600_r8, &
         0.0034657_r8,  0.0034714_r8,  0.0034769_r8,  0.0034823_r8,  0.0034877_r8, &
         0.0034929_r8,  0.0034981_r8, &
         0.0021142_r8,  0.0022278_r8,  0.0022837_r8,  0.0023309_r8,  0.0023717_r8, &
         0.0024075_r8,  0.0024394_r8,  0.0024681_r8,  0.0024943_r8,  0.0025182_r8, &
         0.0025404_r8,  0.0025609_r8,  0.0025801_r8,  0.0025980_r8,  0.0026149_r8, &
         0.0026308_r8,  0.0026459_r8,  0.0026602_r8,  0.0026738_r8,  0.0026868_r8, &
         0.0026992_r8,  0.0027111_r8,  0.0027225_r8,  0.0027334_r8,  0.0027439_r8, &
         0.0027541_r8,  0.0027638_r8,  0.0027733_r8,  0.0027824_r8,  0.0027912_r8, &
         0.0027997_r8,  0.0028080_r8,  0.0028160_r8,  0.0028238_r8,  0.0028314_r8, &
         0.0028387_r8,  0.0028459_r8,  0.0028529_r8,  0.0028597_r8,  0.0028663_r8, &
         0.0028727_r8,  0.0028791_r8,  0.0028852_r8,  0.0028912_r8,  0.0028971_r8, &
         0.0029028_r8,  0.0029084_r8,  0.0029139_r8,  0.0029193_r8,  0.0029246_r8, &
         0.0029297_r8,  0.0029348_r8,  0.0029398_r8,  0.0029446_r8,  0.0029494_r8, &
         0.0029541_r8,  0.0029587_r8,  0.0029632_r8,  0.0029676_r8,  0.0029720_r8, &
         0.0029761_r8,  0.0029805_r8, &
         0.0018726_r8,  0.0019238_r8,  0.0019660_r8,  0.0020019_r8,  0.0020331_r8, &
         0.0020606_r8,  0.0020852_r8,  0.0021074_r8,  0.0021278_r8,  0.0021464_r8, &
         0.0021179_r8,  0.0021798_r8,  0.0021948_r8,  0.0022089_r8,  0.0022221_r8, &
         0.0022347_r8,  0.0022466_r8,  0.0022578_r8,  0.0022686_r8,  0.0022789_r8, &
         0.0022887_r8,  0.0022981_r8,  0.0023071_r8,  0.0023158_r8,  0.0023241_r8, &
         0.0023321_r8,  0.0023399_r8,  0.0023474_r8,  0.0023546_r8,  0.0023616_r8, &
         0.0023684_r8,  0.0023750_r8,  0.0023814_r8,  0.0023876_r8,  0.0023936_r8, &
         0.0023995_r8,  0.0024052_r8,  0.0024108_r8,  0.0024162_r8,  0.0024215_r8, &
         0.0024266_r8,  0.0024317_r8,  0.0024366_r8,  0.0024414_r8,  0.0024461_r8, &
         0.0024507_r8,  0.0024552_r8,  0.0024596_r8,  0.0024639_r8,  0.0024681_r8, &
         0.0024722_r8,  0.0024763_r8,  0.0024802_r8,  0.0024841_r8,  0.0024880_r8, &
         0.0024917_r8,  0.0024954_r8,  0.0024990_r8,  0.0025026_r8,  0.0025060_r8, &
         0.0025095_r8,  0.0025129_r8, &
         0.0016337_r8,  0.0016718_r8,  0.0017033_r8,  0.0017303_r8,  0.0017537_r8, &
         0.0017745_r8,  0.0017931_r8,  0.0018100_r8,  0.0018254_r8,  0.0018397_r8, &
         0.0018529_r8,  0.0018651_r8,  0.0018766_r8,  0.0018874_r8,  0.0018976_r8, &
         0.0019073_r8,  0.0019164_r8,  0.0019251_r8,  0.0019334_r8,  0.0019413_r8, &
         0.0019489_r8,  0.0019562_r8,  0.0019631_r8,  0.0019698_r8,  0.0019763_r8, &
         0.0019825_r8,  0.0019885_r8,  0.0019944_r8,  0.0020000_r8,  0.0020054_r8, &
         0.0020107_r8,  0.0020158_r8,  0.0020208_r8,  0.0020256_r8,  0.0020303_r8, &
         0.0020349_r8,  0.0020394_r8,  0.0020437_r8,  0.0020479_r8,  0.0020521_r8, &
         0.0020561_r8,  0.0020600_r8,  0.0020639_r8,  0.0020676_r8,  0.0020713_r8, &
         0.0020749_r8,  0.0020784_r8,  0.0020819_r8,  0.0020852_r8,  0.0020886_r8, &
         0.0020918_r8,  0.0020950_r8,  0.0020981_r8,  0.0021011_r8,  0.0021041_r8, &
         0.0021071_r8,  0.0021100_r8,  0.0021128_r8,  0.0021156_r8,  0.0021183_r8, &
         0.0021210_r8,  0.0021236_r8, &
         0.0014740_r8,  0.0015024_r8,  0.0015259_r8,  0.0015460_r8,  0.0015636_r8, &
         0.0015791_r8,  0.0015931_r8,  0.0016058_r8,  0.0016174_r8,  0.0016282_r8, &
         0.0016381_r8,  0.0016474_r8,  0.0016561_r8,  0.0016643_r8,  0.0016720_r8, &
         0.0016793_r8,  0.0016863_r8,  0.0016929_r8,  0.0016992_r8,  0.0017052_r8, &
         0.0017110_r8,  0.0017165_r8,  0.0017219_r8,  0.0017270_r8,  0.0017319_r8, &
         0.0017367_r8,  0.0017413_r8,  0.0017458_r8,  0.0017501_r8,  0.0017543_r8, &
         0.0017584_r8,  0.0017623_r8,  0.0017661_r8,  0.0017699_r8,  0.0017735_r8, &
         0.0017770_r8,  0.0017804_r8,  0.0017838_r8,  0.0017870_r8,  0.0017902_r8, &
         0.0017933_r8,  0.0017964_r8,  0.0017993_r8,  0.0018023_r8,  0.0018051_r8, &
         0.0018079_r8,  0.0018106_r8,  0.0018132_r8,  0.0018158_r8,  0.0018184_r8, &
         0.0018209_r8,  0.0018233_r8,  0.0018258_r8,  0.0018281_r8,  0.0018304_r8, &
         0.0018327_r8,  0.0018349_r8,  0.0018371_r8,  0.0018393_r8,  0.0018414_r8, &
         0.0018434_r8,  0.0018455_r8, &
         0.0013895_r8,  0.0014110_r8,  0.0014289_r8,  0.0014441_r8,  0.0014574_r8, &
         0.0014692_r8,  0.0014798_r8,  0.0014894_r8,  0.0014982_r8,  0.0015064_r8, &
         0.0015139_r8,  0.0015210_r8,  0.0015277_r8,  0.0015338_r8,  0.0015398_r8, &
         0.0015454_r8,  0.0015508_r8,  0.0015558_r8,  0.0015607_r8,  0.0015653_r8, &
         0.0015698_r8,  0.0015740_r8,  0.0015782_r8,  0.0015821_r8,  0.0015859_r8, &
         0.0015896_r8,  0.0015932_r8,  0.0015966_r8,  0.0016000_r8,  0.0016032_r8, &
         0.0016064_r8,  0.0016094_r8,  0.0016124_r8,  0.0016153_r8,  0.0016181_r8, &
         0.0016208_r8,  0.0016235_r8,  0.0016261_r8,  0.0016286_r8,  0.0016311_r8, &
         0.0016335_r8,  0.0016358_r8,  0.0016381_r8,  0.0016404_r8,  0.0016426_r8, &
         0.0016447_r8,  0.0016468_r8,  0.0016489_r8,  0.0016509_r8,  0.0016529_r8, &
         0.0016548_r8,  0.0016567_r8,  0.0016586_r8,  0.0016604_r8,  0.0016622_r8, &
         0.0016639_r8,  0.0016657_r8,  0.0016673_r8,  0.0016690_r8,  0.0016706_r8, &
         0.0016722_r8,  0.0016738_r8, &
         0.0013502_r8,  0.0013669_r8,  0.0013807_r8,  0.0013924_r8,  0.0014027_r8, &
         0.0014118_r8,  0.0014200_r8,  0.0014274_r8,  0.0014343_r8,  0.0014406_r8, &
         0.0014465_r8,  0.0014520_r8,  0.0014571_r8,  0.0014620_r8,  0.0014666_r8, &
         0.0014710_r8,  0.0014751_r8,  0.0014791_r8,  0.0014829_r8,  0.0014865_r8, &
         0.0014900_r8,  0.0014933_r8,  0.0014966_r8,  0.0014997_r8,  0.0015027_r8, &
         0.0015055_r8,  0.0015083_r8,  0.0015109_r8,  0.0015136_r8,  0.0015162_r8, &
         0.0015186_r8,  0.0015210_r8,  0.0015234_r8,  0.0015256_r8,  0.0015278_r8, &
         0.0015299_r8,  0.0015320_r8,  0.0015340_r8,  0.0015360_r8,  0.0015380_r8, &
         0.0015398_r8,  0.0015417_r8,  0.0015435_r8,  0.0015452_r8,  0.0015469_r8, &
         0.0015486_r8,  0.0015503_r8,  0.0015519_r8,  0.0015534_r8,  0.0015550_r8, &
         0.0015565_r8,  0.0015580_r8,  0.0015594_r8,  0.0015608_r8,  0.0015622_r8, &
         0.0015636_r8,  0.0015649_r8,  0.0015663_r8,  0.0015676_r8,  0.0015688_r8, &
         0.0015701_r8,  0.0015713_r8, &
         0.0013341_r8,  0.0013476_r8,  0.0013588_r8,  0.0013683_r8,  0.0013766_r8, &
         0.0013840_r8,  0.0013907_r8,  0.0013967_r8,  0.0014023_r8,  0.0014074_r8, &
         0.0014122_r8,  0.0014167_r8,  0.0014209_r8,  0.0014248_r8,  0.0014286_r8, &
         0.0014321_r8,  0.0014355_r8,  0.0014387_r8,  0.0014418_r8,  0.0014447_r8, &
         0.0014476_r8,  0.0014503_r8,  0.0014529_r8,  0.0014554_r8,  0.0014578_r8, &
         0.0014602_r8,  0.0014624_r8,  0.0014646_r8,  0.0014667_r8,  0.0014688_r8, &
         0.0014708_r8,  0.0014727_r8,  0.0014746_r8,  0.0014764_r8,  0.0014782_r8, &
         0.0014799_r8,  0.0014816_r8,  0.0014833_r8,  0.0014849_r8,  0.0014864_r8, &
         0.0014879_r8,  0.0014894_r8,  0.0014909_r8,  0.0014923_r8,  0.0014937_r8, &
         0.0014950_r8,  0.0014964_r8,  0.0014977_r8,  0.0014989_r8,  0.0015002_r8, &
         0.0015014_r8,  0.0015026_r8,  0.0015038_r8,  0.0015049_r8,  0.0015060_r8, &
         0.0015071_r8,  0.0015082_r8,  0.0015093_r8,  0.0015103_r8,  0.0015114_r8, &
         0.0015124_r8,  0.0015134_r8, &
         0.0013255_r8,  0.0013373_r8,  0.0013470_r8,  0.0013554_r8,  0.0013626_r8, &
         0.0013691_r8,  0.0013749_r8,  0.0013803_r8,  0.0013851_r8,  0.0013896_r8, &
         0.0013938_r8,  0.0013977_r8,  0.0014014_r8,  0.0014049_r8,  0.0014082_r8, &
         0.0014113_r8,  0.0014142_r8,  0.0014171_r8,  0.0014197_r8,  0.0014223_r8, &
         0.0014248_r8,  0.0014272_r8,  0.0014294_r8,  0.0014316_r8,  0.0014337_r8, &
         0.0014358_r8,  0.0014378_r8,  0.0014397_r8,  0.0014415_r8,  0.0014433_r8, &
         0.0014450_r8,  0.0014467_r8,  0.0014483_r8,  0.0014499_r8,  0.0014515_r8, &
         0.0014530_r8,  0.0014544_r8,  0.0014559_r8,  0.0014573_r8,  0.0014586_r8, &
         0.0014599_r8,  0.0014612_r8,  0.0014625_r8,  0.0014637_r8,  0.0014649_r8, &
         0.0014661_r8,  0.0014672_r8,  0.0014684_r8,  0.0014695_r8,  0.0014705_r8, &
         0.0014716_r8,  0.0014726_r8,  0.0014736_r8,  0.0014746_r8,  0.0014756_r8, &
         0.0014766_r8,  0.0014775_r8,  0.0014784_r8,  0.0014793_r8,  0.0014802_r8, &
         0.0014811_r8,  0.0014820_r8, &
         0.0013126_r8,  0.0013234_r8,  0.0013324_r8,  0.0013401_r8,  0.0013469_r8, &
         0.0013529_r8,  0.0013583_r8,  0.0013632_r8,  0.0013677_r8,  0.0013719_r8, &
         0.0013758_r8,  0.0013795_r8,  0.0013829_r8,  0.0013861_r8,  0.0013891_r8, &
         0.0013920_r8,  0.0013947_r8,  0.0013974_r8,  0.0013998_r8,  0.0014022_r8, &
         0.0014045_r8,  0.0014067_r8,  0.0014088_r8,  0.0014108_r8,  0.0014127_r8, &
         0.0014146_r8,  0.0014164_r8,  0.0014181_r8,  0.0014198_r8,  0.0014215_r8, &
         0.0014230_r8,  0.0014246_r8,  0.0014261_r8,  0.0014275_r8,  0.0014289_r8, &
         0.0014303_r8,  0.0014316_r8,  0.0014329_r8,  0.0014341_r8,  0.0014354_r8, &
         0.0014366_r8,  0.0014377_r8,  0.0014389_r8,  0.0014400_r8,  0.0014411_r8, &
         0.0014421_r8,  0.0014432_r8,  0.0014442_r8,  0.0014452_r8,  0.0014462_r8, &
         0.0014471_r8,  0.0014480_r8,  0.0014490_r8,  0.0014499_r8,  0.0014507_r8, &
         0.0014516_r8,  0.0014525_r8,  0.0014533_r8,  0.0014541_r8,  0.0014549_r8, &
         0.0014557_r8,  0.0014565_r8, &
         0.0012882_r8,  0.0012983_r8,  0.0013066_r8,  0.0013138_r8,  0.0013202_r8,  &
         0.0013258_r8,  0.0013309_r8,  0.0013355_r8,  0.0013398_r8,  0.0013437_r8,  &
         0.0013473_r8,  0.0013507_r8,  0.0013539_r8,  0.0013569_r8,  0.0013598_r8,  &
         0.0013625_r8,  0.0013650_r8,  0.0013674_r8,  0.0013697_r8,  0.0013719_r8,  &
         0.0013740_r8,  0.0013760_r8,  0.0013780_r8,  0.0013798_r8,  0.0013816_r8,  &
         0.0013833_r8,  0.0013850_r8,  0.0013865_r8,  0.0013881_r8,  0.0013896_r8,  &
         0.0013910_r8,  0.0013924_r8,  0.0013938_r8,  0.0013951_r8,  0.0013963_r8,  &
         0.0013976_r8,  0.0013988_r8,  0.0013999_r8,  0.0014011_r8,  0.0014022_r8,  &
         0.0014033_r8,  0.0014043_r8,  0.0014054_r8,  0.0014064_r8,  0.0014073_r8,  &
         0.0014083_r8,  0.0014092_r8,  0.0014101_r8,  0.0014110_r8,  0.0014119_r8,  &
         0.0014128_r8,  0.0014136_r8,  0.0014145_r8,  0.0014153_r8,  0.0014161_r8,  &
         0.0014168_r8,  0.0014176_r8,  0.0014183_r8,  0.0014191_r8,  0.0014198_r8,  &
         0.0014205_r8,  0.0014212_r8/),SHAPE=(/nx,ny/))







    cah=RESHAPE(SOURCE=(/&
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8, &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000053_r8,  0.0000074_r8, &
         0.0000104_r8,  0.0000147_r8,  0.0000206_r8,  0.0000288_r8,  0.0000402_r8, &
         0.0000559_r8,  0.0000772_r8,  0.0001059_r8,  0.0001439_r8,  0.0001936_r8, &
         0.0002575_r8,  0.0003384_r8,  0.0004400_r8,  0.0005662_r8,  0.0007219_r8, &
         0.0009131_r8,  0.0011470_r8,  0.0014327_r8,  0.0017806_r8,  0.0022021_r8, &
         0.0027093_r8,  0.0033141_r8,  0.0040280_r8,  0.0048609_r8,  0.0058217_r8, &
         0.0069177_r8,  0.0081559_r8,  0.0095430_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8, &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000053_r8,  0.0000074_r8, &
         0.0000104_r8,  0.0000147_r8,  0.0000206_r8,  0.0000288_r8,  0.0000402_r8, &
         0.0000559_r8,  0.0000772_r8,  0.0001059_r8,  0.0001439_r8,  0.0001936_r8, &
         0.0002575_r8,  0.0003384_r8,  0.0004400_r8,  0.0005662_r8,  0.0007219_r8, &
         0.0009130_r8,  0.0011470_r8,  0.0014326_r8,  0.0017805_r8,  0.0022020_r8, &
         0.0027091_r8,  0.0033139_r8,  0.0040276_r8,  0.0048605_r8,  0.0058211_r8, &
         0.0069170_r8,  0.0081551_r8,  0.0095420_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8, &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000053_r8,  0.0000074_r8, &
         0.0000104_r8,  0.0000147_r8,  0.0000206_r8,  0.0000288_r8,  0.0000402_r8, &
         0.0000559_r8,  0.0000772_r8,  0.0001059_r8,  0.0001439_r8,  0.0001936_r8, &
         0.0002574_r8,  0.0003384_r8,  0.0004399_r8,  0.0005661_r8,  0.0007218_r8, &
         0.0009129_r8,  0.0011468_r8,  0.0014325_r8,  0.0017803_r8,  0.0022017_r8, &
         0.0027088_r8,  0.0033135_r8,  0.0040271_r8,  0.0048599_r8,  0.0058204_r8, &
         0.0069161_r8,  0.0081539_r8,  0.0095406_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8, &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000053_r8,  0.0000074_r8, &
         0.0000104_r8,  0.0000147_r8,  0.0000206_r8,  0.0000288_r8,  0.0000402_r8, &
         0.0000559_r8,  0.0000772_r8,  0.0001059_r8,  0.0001439_r8,  0.0001936_r8, &
         0.0002574_r8,  0.0003384_r8,  0.0004399_r8,  0.0005661_r8,  0.0007217_r8, &
         0.0009128_r8,  0.0011467_r8,  0.0014323_r8,  0.0017800_r8,  0.0022014_r8, &
         0.0027084_r8,  0.0033130_r8,  0.0040265_r8,  0.0048591_r8,  0.0058194_r8, &
         0.0069148_r8,  0.0081524_r8,  0.0095387_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8, &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000053_r8,  0.0000074_r8, &
         0.0000104_r8,  0.0000147_r8,  0.0000206_r8,  0.0000288_r8,  0.0000402_r8, &
         0.0000559_r8,  0.0000772_r8,  0.0001059_r8,  0.0001439_r8,  0.0001935_r8, &
         0.0002574_r8,  0.0003383_r8,  0.0004398_r8,  0.0005660_r8,  0.0007216_r8, &
         0.0009127_r8,  0.0011465_r8,  0.0014320_r8,  0.0017797_r8,  0.0022010_r8, &
         0.0027078_r8,  0.0033123_r8,  0.0040256_r8,  0.0048580_r8,  0.0058180_r8, &
         0.0069132_r8,  0.0081503_r8,  0.0095361_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8, &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000053_r8,  0.0000074_r8, &
         0.0000104_r8,  0.0000147_r8,  0.0000206_r8,  0.0000288_r8,  0.0000402_r8, &
         0.0000559_r8,  0.0000772_r8,  0.0001059_r8,  0.0001439_r8,  0.0001935_r8, &
         0.0002573_r8,  0.0003383_r8,  0.0004398_r8,  0.0005659_r8,  0.0007215_r8, &
         0.0009125_r8,  0.0011462_r8,  0.0014317_r8,  0.0017792_r8,  0.0022004_r8, &
         0.0027071_r8,  0.0033113_r8,  0.0040244_r8,  0.0048565_r8,  0.0058162_r8, &
         0.0069109_r8,  0.0081476_r8,  0.0095328_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000053_r8,  0.0000074_r8,  &
         0.0000104_r8,  0.0000147_r8,  0.0000206_r8,  0.0000288_r8,  0.0000402_r8,  &
         0.0000559_r8,  0.0000772_r8,  0.0001058_r8,  0.0001438_r8,  0.0001935_r8,  &
         0.0002573_r8,  0.0003382_r8,  0.0004396_r8,  0.0005657_r8,  0.0007213_r8,  &
         0.0009122_r8,  0.0011459_r8,  0.0014312_r8,  0.0017786_r8,  0.0021996_r8,  &
         0.0027061_r8,  0.0033100_r8,  0.0040228_r8,  0.0048545_r8,  0.0058137_r8,  &
         0.0069079_r8,  0.0081439_r8,  0.0095283_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000074_r8,  &
         0.0000104_r8,  0.0000146_r8,  0.0000206_r8,  0.0000288_r8,  0.0000402_r8,  &
         0.0000558_r8,  0.0000772_r8,  0.0001058_r8,  0.0001438_r8,  0.0001934_r8,  &
         0.0002572_r8,  0.0003381_r8,  0.0004395_r8,  0.0005655_r8,  0.0007210_r8,  &
         0.0009119_r8,  0.0011454_r8,  0.0014306_r8,  0.0017778_r8,  0.0021985_r8,  &
         0.0027047_r8,  0.0033084_r8,  0.0040207_r8,  0.0048519_r8,  0.0058105_r8,  &
         0.0069040_r8,  0.0081391_r8,  0.0095225_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000074_r8,  &
         0.0000104_r8,  0.0000146_r8,  0.0000206_r8,  0.0000288_r8,  0.0000402_r8,  &
         0.0000558_r8,  0.0000771_r8,  0.0001058_r8,  0.0001437_r8,  0.0001933_r8,  &
         0.0002571_r8,  0.0003379_r8,  0.0004393_r8,  0.0005652_r8,  0.0007206_r8,  &
         0.0009114_r8,  0.0011447_r8,  0.0014297_r8,  0.0017767_r8,  0.0021971_r8,  &
         0.0027030_r8,  0.0033061_r8,  0.0040180_r8,  0.0048485_r8,  0.0058064_r8,  &
         0.0068989_r8,  0.0081329_r8,  0.0095149_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000074_r8,  &
         0.0000104_r8,  0.0000146_r8,  0.0000205_r8,  0.0000288_r8,  0.0000402_r8,  &
         0.0000558_r8,  0.0000771_r8,  0.0001057_r8,  0.0001437_r8,  0.0001932_r8,  &
         0.0002569_r8,  0.0003377_r8,  0.0004390_r8,  0.0005649_r8,  0.0007201_r8,  &
         0.0009107_r8,  0.0011439_r8,  0.0014286_r8,  0.0017753_r8,  0.0021953_r8,  &
         0.0027006_r8,  0.0033032_r8,  0.0040144_r8,  0.0048441_r8,  0.0058009_r8,  &
         0.0068922_r8,  0.0081248_r8,  0.0095051_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000074_r8,  &
         0.0000104_r8,  0.0000146_r8,  0.0000205_r8,  0.0000287_r8,  0.0000401_r8,  &
         0.0000558_r8,  0.0000770_r8,  0.0001056_r8,  0.0001436_r8,  0.0001931_r8,  &
         0.0002567_r8,  0.0003375_r8,  0.0004387_r8,  0.0005644_r8,  0.0007195_r8,  &
         0.0009098_r8,  0.0011428_r8,  0.0014271_r8,  0.0017734_r8,  0.0021929_r8,  &
         0.0026976_r8,  0.0032995_r8,  0.0040097_r8,  0.0048384_r8,  0.0057939_r8,  &
         0.0068837_r8,  0.0081145_r8,  0.0094926_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000074_r8,  &
         0.0000104_r8,  0.0000146_r8,  0.0000205_r8,  0.0000287_r8,  0.0000401_r8,  &
         0.0000557_r8,  0.0000770_r8,  0.0001055_r8,  0.0001434_r8,  0.0001929_r8,  &
         0.0002565_r8,  0.0003371_r8,  0.0004382_r8,  0.0005637_r8,  0.0007186_r8,  &
         0.0009087_r8,  0.0011413_r8,  0.0014252_r8,  0.0017709_r8,  0.0021898_r8,  &
         0.0026937_r8,  0.0032946_r8,  0.0040038_r8,  0.0048311_r8,  0.0057850_r8,  &
         0.0068729_r8,  0.0081013_r8,  0.0094768_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000074_r8,  &
         0.0000104_r8,  0.0000146_r8,  0.0000205_r8,  0.0000287_r8,  0.0000400_r8,  &
         0.0000556_r8,  0.0000769_r8,  0.0001054_r8,  0.0001432_r8,  0.0001926_r8,  &
         0.0002561_r8,  0.0003366_r8,  0.0004376_r8,  0.0005629_r8,  0.0007175_r8,  &
         0.0009073_r8,  0.0011394_r8,  0.0014228_r8,  0.0017678_r8,  0.0021859_r8,  &
         0.0026888_r8,  0.0032885_r8,  0.0039963_r8,  0.0048218_r8,  0.0057738_r8,  &
         0.0068592_r8,  0.0080849_r8,  0.0094570_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000074_r8,  &
         0.0000104_r8,  0.0000146_r8,  0.0000205_r8,  0.0000286_r8,  0.0000400_r8,  &
         0.0000556_r8,  0.0000767_r8,  0.0001052_r8,  0.0001430_r8,  0.0001923_r8,  &
         0.0002557_r8,  0.0003361_r8,  0.0004368_r8,  0.0005619_r8,  0.0007161_r8,  &
         0.0009054_r8,  0.0011370_r8,  0.0014197_r8,  0.0017639_r8,  0.0021809_r8,  &
         0.0026826_r8,  0.0032809_r8,  0.0039869_r8,  0.0048103_r8,  0.0057597_r8,  &
         0.0068422_r8,  0.0080643_r8,  0.0094323_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000073_r8,  &
         0.0000103_r8,  0.0000145_r8,  0.0000204_r8,  0.0000286_r8,  0.0000399_r8,  &
         0.0000554_r8,  0.0000766_r8,  0.0001050_r8,  0.0001427_r8,  0.0001919_r8,  &
         0.0002552_r8,  0.0003353_r8,  0.0004358_r8,  0.0005605_r8,  0.0007144_r8,  &
         0.0009032_r8,  0.0011340_r8,  0.0014159_r8,  0.0017590_r8,  0.0021748_r8,  &
         0.0026750_r8,  0.0032715_r8,  0.0039752_r8,  0.0047961_r8,  0.0057424_r8,  &
         0.0068212_r8,  0.0080389_r8,  0.0094019_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000019_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000073_r8,  &
         0.0000103_r8,  0.0000145_r8,  0.0000204_r8,  0.0000285_r8,  0.0000398_r8,  &
         0.0000553_r8,  0.0000764_r8,  0.0001047_r8,  0.0001423_r8,  0.0001914_r8,  &
         0.0002545_r8,  0.0003344_r8,  0.0004345_r8,  0.0005589_r8,  0.0007122_r8,  &
         0.0009003_r8,  0.0011304_r8,  0.0014112_r8,  0.0017531_r8,  0.0021673_r8,  &
         0.0026656_r8,  0.0032598_r8,  0.0039609_r8,  0.0047786_r8,  0.0057211_r8,  &
         0.0067954_r8,  0.0080078_r8,  0.0093646_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000018_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000073_r8,  &
         0.0000103_r8,  0.0000145_r8,  0.0000203_r8,  0.0000284_r8,  0.0000397_r8,  &
         0.0000551_r8,  0.0000761_r8,  0.0001044_r8,  0.0001419_r8,  0.0001908_r8,  &
         0.0002536_r8,  0.0003332_r8,  0.0004330_r8,  0.0005568_r8,  0.0007095_r8,  &
         0.0008968_r8,  0.0011259_r8,  0.0014054_r8,  0.0017458_r8,  0.0021123_r8,  &
         0.0026542_r8,  0.0032457_r8,  0.0039435_r8,  0.0047573_r8,  0.0056951_r8,  &
         0.0067640_r8,  0.0079700_r8,  0.0093194_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000018_r8,  0.0000026_r8,  0.0000037_r8,  0.0000052_r8,  0.0000073_r8,  &
         0.0000102_r8,  0.0000144_r8,  0.0000202_r8,  0.0000283_r8,  0.0000395_r8,  &
         0.0000549_r8,  0.0000758_r8,  0.0001040_r8,  0.0001413_r8,  0.0001900_r8,  &
         0.0002525_r8,  0.0003318_r8,  0.0004311_r8,  0.0005543_r8,  0.0007063_r8,  &
         0.0008926_r8,  0.0011204_r8,  0.0013985_r8,  0.0017370_r8,  0.0021470_r8,  &
         0.0026404_r8,  0.0032285_r8,  0.0039224_r8,  0.0047315_r8,  0.0056637_r8,  &
         0.0067260_r8,  0.0079245_r8,  0.0092651_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000006_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000018_r8,  0.0000026_r8,  0.0000036_r8,  0.0000051_r8,  0.0000072_r8,  &
         0.0000102_r8,  0.0000143_r8,  0.0000201_r8,  0.0000282_r8,  0.0000393_r8,  &
         0.0000546_r8,  0.0000754_r8,  0.0001034_r8,  0.0001406_r8,  0.0001890_r8,  &
         0.0002512_r8,  0.0003300_r8,  0.0004287_r8,  0.0005513_r8,  0.0007023_r8,  &
         0.0008875_r8,  0.0011139_r8,  0.0013901_r8,  0.0017264_r8,  0.0021337_r8,  &
         0.0026238_r8,  0.0032080_r8,  0.0038971_r8,  0.0047005_r8,  0.0056261_r8,  &
         0.0066806_r8,  0.0078701_r8,  0.0092003_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000005_r8,  0.0000006_r8,  0.0000009_r8,  0.0000013_r8,  &
         0.0000018_r8,  0.0000026_r8,  0.0000036_r8,  0.0000051_r8,  0.0000072_r8,  &
         0.0000101_r8,  0.0000142_r8,  0.0000200_r8,  0.0000280_r8,  0.0000391_r8,  &
         0.0000543_r8,  0.0000750_r8,  0.0001028_r8,  0.0001397_r8,  0.0001878_r8,  &
         0.0002496_r8,  0.0003279_r8,  0.0004259_r8,  0.0005476_r8,  0.0006975_r8,  &
         0.0008813_r8,  0.0011060_r8,  0.0013802_r8,  0.0017138_r8,  0.0021179_r8,  &
         0.0026040_r8,  0.0031835_r8,  0.0038670_r8,  0.0046637_r8,  0.0055814_r8,  &
         0.0066267_r8,  0.0078055_r8,  0.0091235_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000005_r8,  0.0000006_r8,  0.0000009_r8,  0.0000013_r8, &
         0.0000018_r8,  0.0000025_r8,  0.0000036_r8,  0.0000051_r8,  0.0000071_r8, &
         0.0000100_r8,  0.0000141_r8,  0.0000198_r8,  0.0000278_r8,  0.0000388_r8, &
         0.0000539_r8,  0.0000744_r8,  0.0001020_r8,  0.0001386_r8,  0.0001863_r8, &
         0.0002477_r8,  0.0003253_r8,  0.0004226_r8,  0.0005432_r8,  0.0006918_r8, &
         0.0008740_r8,  0.0010966_r8,  0.0013683_r8,  0.0016988_r8,  0.0020991_r8, &
         0.0025806_r8,  0.0031545_r8,  0.0038313_r8,  0.0046201_r8,  0.0055285_r8, &
         0.0065630_r8,  0.0077294_r8,  0.0090332_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000009_r8,  0.0000013_r8, &
         0.0000018_r8,  0.0000025_r8,  0.0000036_r8,  0.0000050_r8,  0.0000071_r8, &
         0.0000100_r8,  0.0000140_r8,  0.0000197_r8,  0.0000275_r8,  0.0000384_r8, &
         0.0000534_r8,  0.0000737_r8,  0.0001011_r8,  0.0001373_r8,  0.0001846_r8, &
         0.0002453_r8,  0.0003222_r8,  0.0004185_r8,  0.0005265_r8,  0.0006850_r8, &
         0.0008652_r8,  0.0010855_r8,  0.0013541_r8,  0.0016809_r8,  0.0020768_r8, &
         0.0025528_r8,  0.0031202_r8,  0.0037892_r8,  0.0045688_r8,  0.0054664_r8, &
         0.0064883_r8,  0.0076402_r8,  0.0089277_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000009_r8,  0.0000013_r8, &
         0.0000018_r8,  0.0000025_r8,  0.0000035_r8,  0.0000050_r8,  0.0000070_r8, &
         0.0000098_r8,  0.0000138_r8,  0.0000194_r8,  0.0000272_r8,  0.0000380_r8, &
         0.0000528_r8,  0.0000729_r8,  0.0000999_r8,  0.0001357_r8,  0.0001825_r8, &
         0.0002425_r8,  0.0003185_r8,  0.0004137_r8,  0.0005316_r8,  0.0006769_r8, &
         0.0008548_r8,  0.0010722_r8,  0.0013373_r8,  0.0016599_r8,  0.0020504_r8, &
         0.0025201_r8,  0.0030799_r8,  0.0037398_r8,  0.0045087_r8,  0.0053938_r8, &
         0.0064013_r8,  0.0075366_r8,  0.0088053_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8, &
         0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000009_r8,  0.0000012_r8, &
         0.0000017_r8,  0.0000025_r8,  0.0000035_r8,  0.0000049_r8,  0.0000069_r8, &
         0.0000097_r8,  0.0000137_r8,  0.0000192_r8,  0.0000268_r8,  0.0000375_r8, &
         0.0000520_r8,  0.0000719_r8,  0.0000986_r8,  0.0001339_r8,  0.0001800_r8, &
         0.0002392_r8,  0.0003142_r8,  0.0004079_r8,  0.0005242_r8,  0.0006673_r8, &
         0.0008426_r8,  0.0010567_r8,  0.0013177_r8,  0.0016352_r8,  0.0020196_r8, &
         0.0024820_r8,  0.0030330_r8,  0.0036825_r8,  0.0044391_r8,  0.0053098_r8, &
         0.0063007_r8,  0.0074172_r8,  0.0084815_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000009_r8,  0.0000012_r8,  &
         0.0000017_r8,  0.0000024_r8,  0.0000034_r8,  0.0000048_r8,  0.0000068_r8,  &
         0.0000096_r8,  0.0000134_r8,  0.0000189_r8,  0.0000264_r8,  0.0000369_r8,  &
         0.0000512_r8,  0.0000708_r8,  0.0000970_r8,  0.0001318_r8,  0.0001772_r8,  &
         0.0002354_r8,  0.0003091_r8,  0.0004013_r8,  0.0005156_r8,  0.0006562_r8,  &
         0.0008284_r8,  0.0010386_r8,  0.0012949_r8,  0.0016066_r8,  0.0019840_r8,  &
         0.0024379_r8,  0.0029788_r8,  0.0036164_r8,  0.0043590_r8,  0.0052135_r8,  &
         0.0061857_r8,  0.0072808_r8,  0.0085042_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000008_r8,  0.0000012_r8,  &
         0.0000017_r8,  0.0000024_r8,  0.0000034_r8,  0.0000047_r8,  0.0000067_r8,  &
         0.0000094_r8,  0.0000132_r8,  0.0000185_r8,  0.0000259_r8,  0.0000362_r8,  &
         0.0000503_r8,  0.0000695_r8,  0.0000952_r8,  0.0001294_r8,  0.0001739_r8,  &
         0.0002310_r8,  0.0003033_r8,  0.0003937_r8,  0.0005057_r8,  0.0006435_r8,  &
         0.0008121_r8,  0.0010180_r8,  0.0012688_r8,  0.0015739_r8,  0.0019434_r8,  &
         0.0023877_r8,  0.0029172_r8,  0.0035413_r8,  0.0042681_r8,  0.0051043_r8,  &
         0.0060554_r8,  0.0071267_r8,  0.0083234_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000008_r8,  0.0000012_r8,  &
         0.0000016_r8,  0.0000023_r8,  0.0000033_r8,  0.0000046_r8,  0.0000065_r8,  &
         0.0000092_r8,  0.0000129_r8,  0.0000181_r8,  0.0000254_r8,  0.0000355_r8,  &
         0.0000493_r8,  0.0000680_r8,  0.0000933_r8,  0.0001267_r8,  0.0001702_r8,  &
         0.0002261_r8,  0.0002968_r8,  0.0003852_r8,  0.0004946_r8,  0.0006291_r8,  &
         0.0007937_r8,  0.0009946_r8,  0.0012394_r8,  0.0015370_r8,  0.0018975_r8,  &
         0.0023310_r8,  0.0028478_r8,  0.0034568_r8,  0.0041660_r8,  0.0049818_r8,  &
         0.0059096_r8,  0.0069544_r8,  0.0081215_r8, &
         0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000008_r8,  0.0000011_r8,  &
         0.0000016_r8,  0.0000023_r8,  0.0000032_r8,  0.0000045_r8,  0.0000064_r8,  &
         0.0000090_r8,  0.0000126_r8,  0.0000177_r8,  0.0000248_r8,  0.0000346_r8,  &
         0.0000481_r8,  0.0000664_r8,  0.0000910_r8,  0.0001236_r8,  0.0001661_r8,  &
         0.0002206_r8,  0.0002895_r8,  0.0003755_r8,  0.0004821_r8,  0.0006130_r8,  &
         0.0007731_r8,  0.0009685_r8,  0.0012065_r8,  0.0014959_r8,  0.0018463_r8,  &
         0.0022680_r8,  0.0027705_r8,  0.0033629_r8,  0.0040526_r8,  0.0048459_r8,  &
         0.0057480_r8,  0.0067639_r8,  0.0078987_r8, &
         0.0000000_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000008_r8,  0.0000011_r8,  &
         0.0000016_r8,  0.0000022_r8,  0.0000031_r8,  0.0000044_r8,  0.0000062_r8,  &
         0.0000087_r8,  0.0000123_r8,  0.0000173_r8,  0.0000242_r8,  0.0000330_r8,  &
         0.0000468_r8,  0.0000646_r8,  0.0000886_r8,  0.0001203_r8,  0.0001616_r8,  &
         0.0002145_r8,  0.0002814_r8,  0.0003649_r8,  0.0004682_r8,  0.0005951_r8,  &
         0.0007503_r8,  0.0009396_r8,  0.0011701_r8,  0.0014505_r8,  0.0017900_r8,  &
         0.0021986_r8,  0.0026857_r8,  0.0032598_r8,  0.0039283_r8,  0.0046971_r8,  &
         0.0055713_r8,  0.0065558_r8,  0.0076557_r8, &
         0.0000000_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000004_r8,  0.0000005_r8,  0.0000008_r8,  0.0000011_r8,  &
         0.0000015_r8,  0.0000021_r8,  0.0000030_r8,  0.0000043_r8,  0.0000060_r8,  &
         0.0000085_r8,  0.0000119_r8,  0.0000167_r8,  0.0000234_r8,  0.0000327_r8,  &
         0.0000454_r8,  0.0000627_r8,  0.0000859_r8,  0.0001166_r8,  0.0001566_r8,  &
         0.0002078_r8,  0.0002724_r8,  0.0003531_r8,  0.0004529_r8,  0.0005755_r8,  &
         0.0007253_r8,  0.0009079_r8,  0.0011304_r8,  0.0014010_r8,  0.0017287_r8,  &
         0.0021232_r8,  0.0025935_r8,  0.0031480_r8,  0.0037936_r8,  0.0045361_r8,  &
         0.0053805_r8,  0.0063314_r8,  0.0073941_r8, &
         0.0000000_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000004_r8,  0.0000005_r8,  0.0000007_r8,  0.0000010_r8,  &
         0.0000015_r8,  0.0000021_r8,  0.0000029_r8,  0.0000041_r8,  0.0000058_r8,  &
         0.0000082_r8,  0.0000115_r8,  0.0000162_r8,  0.0000226_r8,  0.0000316_r8,  &
         0.0000438_r8,  0.0000605_r8,  0.0000829_r8,  0.0001125_r8,  0.0001510_r8,  &
         0.0002004_r8,  0.0002626_r8,  0.0003402_r8,  0.0004362_r8,  0.0005540_r8,  &
         0.0006980_r8,  0.0008736_r8,  0.0010874_r8,  0.0013476_r8,  0.0016627_r8,  &
         0.0020421_r8,  0.0024947_r8,  0.0030283_r8,  0.0036497_r8,  0.0043644_r8,  &
         0.0051772_r8,  0.0060928_r8,  0.0071164_r8, &
         0.0000000_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  &
         0.0000003_r8,  0.0000004_r8,  0.0000005_r8,  0.0000007_r8,  0.0000010_r8,  &
         0.0000014_r8,  0.0000020_r8,  0.0000028_r8,  0.0000040_r8,  0.0000056_r8,  &
         0.0000079_r8,  0.0000111_r8,  0.0000155_r8,  0.0000218_r8,  0.0000303_r8,  &
         0.0000421_r8,  0.0000582_r8,  0.0000797_r8,  0.0001081_r8,  0.0001450_r8,  &
         0.0001923_r8,  0.0002519_r8,  0.0003262_r8,  0.0004180_r8,  0.0005308_r8,  &
         0.0006686_r8,  0.0008367_r8,  0.0010414_r8,  0.0012905_r8,  0.0015925_r8,  &
         0.0019561_r8,  0.0023900_r8,  0.0029017_r8,  0.0034978_r8,  0.0041836_r8,  &
         0.0049638_r8,  0.0058430_r8,  0.0068264_r8, &
         0.0000000_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8, &
         0.0000002_r8,  0.0000003_r8,  0.0000005_r8,  0.0000007_r8,  0.0000010_r8, &
         0.0000014_r8,  0.0000019_r8,  0.0000027_r8,  0.0000038_r8,  0.0000053_r8, &
         0.0000075_r8,  0.0000106_r8,  0.0000149_r8,  0.0000208_r8,  0.0000290_r8, &
         0.0000403_r8,  0.0000556_r8,  0.0000761_r8,  0.0001032_r8,  0.0001384_r8, &
         0.0001834_r8,  0.0002402_r8,  0.0003110_r8,  0.0003985_r8,  0.0005059_r8, &
         0.0006372_r8,  0.0007974_r8,  0.0009926_r8,  0.0012302_r8,  0.0015185_r8, &
         0.0018657_r8,  0.0022803_r8,  0.0027696_r8,  0.0033398_r8,  0.0039960_r8, &
         0.0047430_r8,  0.0055851_r8,  0.0065278_r8, &
         0.0000000_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  &
         0.0000002_r8,  0.0000003_r8,  0.0000005_r8,  0.0000006_r8,  0.0000009_r8,  &
         0.0000013_r8,  0.0000018_r8,  0.0000026_r8,  0.0000036_r8,  0.0000051_r8,  &
         0.0000071_r8,  0.0000100_r8,  0.0000141_r8,  0.0000197_r8,  0.0000275_r8,  &
         0.0000382_r8,  0.0000527_r8,  0.0000722_r8,  0.0000979_r8,  0.0001312_r8,  &
         0.0001739_r8,  0.0002277_r8,  0.0002947_r8,  0.0003775_r8,  0.0004793_r8,  &
         0.0006038_r8,  0.0007558_r8,  0.0009412_r8,  0.0011671_r8,  0.0014412_r8,  &
         0.0017717_r8,  0.0021208_r8,  0.0026329_r8,  0.0031768_r8,  0.0038033_r8,  &
         0.0045168_r8,  0.0053220_r8,  0.0062240_r8, &
         0.0000000_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000002_r8,  &
         0.0000002_r8,  0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000009_r8,  &
         0.0000012_r8,  0.0000017_r8,  0.0000024_r8,  0.0000034_r8,  0.0000048_r8,  &
         0.0000067_r8,  0.0000095_r8,  0.0000133_r8,  0.0000186_r8,  0.0000259_r8,  &
         0.0000360_r8,  0.0000496_r8,  0.0000679_r8,  0.0000921_r8,  0.0001235_r8,  &
         0.0001637_r8,  0.0002143_r8,  0.0002773_r8,  0.0003554_r8,  0.0004513_r8,  &
         0.0005688_r8,  0.0007124_r8,  0.0008876_r8,  0.0011014_r8,  0.0013610_r8,  &
         0.0016745_r8,  0.0020493_r8,  0.0024925_r8,  0.0030099_r8,  0.0036066_r8,  &
         0.0042868_r8,  0.0050553_r8,  0.0059171_r8, &
         0.0000000_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  &
         0.0000002_r8,  0.0000003_r8,  0.0000004_r8,  0.0000006_r8,  0.0000008_r8,  &
         0.0000011_r8,  0.0000016_r8,  0.0000022_r8,  0.0000032_r8,  0.0000045_r8,  &
         0.0000063_r8,  0.0000088_r8,  0.0000124_r8,  0.0000173_r8,  0.0000242_r8,  &
         0.0000336_r8,  0.0000463_r8,  0.0000634_r8,  0.0000860_r8,  0.0001153_r8,  &
         0.0001528_r8,  0.0002001_r8,  0.0002591_r8,  0.0003322_r8,  0.0004221_r8,  &
         0.0005323_r8,  0.0006672_r8,  0.0008322_r8,  0.0010335_r8,  0.0012785_r8,  &
         0.0015746_r8,  0.0019293_r8,  0.0023491_r8,  0.0028399_r8,  0.0034067_r8,  &
         0.0040539_r8,  0.0047860_r8,  0.0056083_r8, &
         0.0000000_r8,  0.0000000_r8,  0.0000001_r8,  0.0000001_r8,  0.0000001_r8,  &
         0.0000002_r8,  0.0000003_r8,  0.0000004_r8,  0.0000005_r8,  0.0000007_r8,  &
         0.0000010_r8,  0.0000015_r8,  0.0000021_r8,  0.0000029_r8,  0.0000041_r8,  &
         0.0000058_r8,  0.0000082_r8,  0.0000114_r8,  0.0000160_r8,  0.0000223_r8,  &
         0.0000310_r8,  0.0000428_r8,  0.0000586_r8,  0.0000795_r8,  0.0001067_r8,  &
         0.0001414_r8,  0.0001853_r8,  0.0002401_r8,  0.0003081_r8,  0.0003918_r8,  &
         0.0004947_r8,  0.0006208_r8,  0.0007751_r8,  0.0009639_r8,  0.0011940_r8,  &
         0.0014726_r8,  0.0018069_r8,  0.0022032_r8,  0.0026674_r8,  0.0032043_r8,  &
         0.0038186_r8,  0.0045147_r8,  0.0052979_r8/),SHAPE=(/nu,nw/))




  END SUBROUTINE read_table


END MODULE Rad_CliradTarasova
