!copyright (C) 2001  MSC-RPN COMM  %%%RPNPHY%%%
***S/R SETVIS2
*

      SUBROUTINE SETVIS2(DSIG,DSH,DSC,DZ,RMUO,QOZSTP, 1,1
     +                   SIG, T, PSOL, QOZ, XLAT, XLON, HZ, DATE,
     +                   IDATIM, LMX, LEV, M, SATUCO)
#include "impnone.cdk"
*
      REAL DATE
      EXTERNAL SUNCOS
      LOGICAL SATUCO
      INTEGER IDATIM(14),LMX,LEV,KMX
      INTEGER I,J,K,M
      REAL DSIG(lmx,LEV),DSH(lmx,LEV),DSC(lmx,LEV),
     $     PSOL(LMX),QOZSTP(LMX,LEV),RMUO(LMX),DZ(LMX,LEV)
      REAL SIG(lmx,LEV),T(M,LEV),XLAT(LMX),XLON(LMX),QOZ(LMX,LEV)
      REAL A1,A2,HZ
*
*Author
*          L.Garand (1989)
*
*Revision
* 001      G.Pellerin(Mar90)Standard documentation
* 002      N. Brunet  (May91)
*             New version of thermodynamic functions
*             and file of constants
* 003      R. Benoit (Aug 93) Local Sigma
* 004      L. Garand (Apr 95) Reduction mode
* 005      L. Garand (April 95) Aerosols and liquid water 
*          no more calculated here
*
*Object
*          to calculate the inputs for solar radiation
*
*Arguments
*
*          - Output -
* DSH      sigma thickness with exponent 1.9
* DSC      sigma thickness with exponent 1.75
* DZ       thickness of layers in metres
* RMUO     cosines of the solar angle
* QOZSTP   ozone in CMSTP ( cm at standard pressure )
*          for each layer
*
*          - Input -
* DSIG     sigma thickness of layers
* SIG      sigma levels
* T        temperature at that level
* PSOL     surface pressure
* QOZ      ozone in kg/m2 for subroutine RADFACE
* XLAT     latitude in radians
* XLON     longitude in radians
* HZ       Greenwich hour
* DATE     julian day, if =0, IDATIM is used
* IDATIM   time group in standard RPN format
* LMX      number of points to process
* LEV      number of layers
* M        1st dimension of T
* SATUCO   .TRUE. if water/ice phase for saturation
*          .FALSE. if water phase only for saturation
*
*Notes
*          1st dimension of T can be different from N
*
**
*
*
#include "consphy.cdk"
      KMX=LEV-1
C    CALCUL DES EPAISSEURS
C
      do 30 i=1,lmx
         A2=(SIG(i,1)+SIG(i,2))/2.
         A1=2.*SIG(i,1)-A2
c        A1=AMAX1(A1,1.E-8)
*        la ligne suivante peut etre substituee a la ligne precedente
         A1=AMAX1(A1,sig(i,1)/2.)
c        DSIG(i,1)=A2-A1
         DSH(i,1)=A2**1.9-A1**1.9
         DSC(i,1)=A2**1.75-A1**1.75
 30   continue
      DO 126 K=2,KMX
         do 31 i=1,lmx
            A1=(SIG(i,K)+SIG(i,K-1))/2.
            A2=(SIG(i,K)+SIG(i,K+1))/2.
c           DSIG(i,K)=A2-A1
            DSH(i,K)= A2**1.9 - A1**1.9
            DSC(i,K)= A2**1.75-A1**1.75
 31      continue
 126  CONTINUE
C
      do 32 i=1,lmx
         A2=(SIG(i,KMX)+SIG(i,KMX+1))/2.
c        DSIG(i,LEV)=1.- A2
         DSH(i,LEV)=1.- A2 **1.9
         DSC(i,LEV)=1.- A2 **1.75
 32   continue
C
      DO 1 J=1,LEV
      DO 2 I=1,LMX
 2     DZ(I,J) = DSIG(i,J)*RGASD*T(I,J)/GRAV/SIG(i,J)
 1    CONTINUE
C
C     COSINUS ANGLE SOLAIRE
      CALL SUNCOS(RMUO,LMX,XLAT,XLON,HZ,DATE,IDATIM)
C
C
C     OZONE EN CMSTP
      DO 7 J=1,LEV
      DO 8 I=1,LMX
C   INVERSE DE CONVERSION DANS RADFACE
      QOZSTP(I,J) = QOZ(I,J)*PSOL(I)*DSIG(i,J)/GRAV/2.144E-2
  8   CONTINUE
  7   CONTINUE
C
      RETURN
      END