C XQOND     SOURCE    CHAT      06/06/01    21:22:17     5450
      SUBROUTINE XQOND(CP,ALFAB,ALFAT,N,BETA,
     1                H,TP,PTOT,XVAP,XH2O,FVAP,IRET)

C*********************************************************************
C
C OBJET   : To compute the condensed mass flux density of H2O at
C           the wall from a mixture of air and vapour.
C
C SYNTAXE : M = QOND CP ALFAB ALFAT H TP PTOT XVAP XH2O <BETA>
C
C M     : CHPOINT SCAL (condensed mass flux density of H2O (kg/m2/s))
C alias FVAP
C CP    : FLOTTANT     (vapour specific heat (J/kg/K))
C ALFAB : FLOTTANT     (brownian diffusivity (m2/s))
C ALFAT : FLOTTANT     (thermal diffusivity (m2/s))
C H     : CHPOINT SCAL (heat exchange coefficient at the wall (W/m2/K))
C TP    : CHPOINT SCAL (wall temperature (K))
C PTOT  : CHPOINT SCAL (total pressure of the mixture (Pa))
C XVAP  : CHPOINT SCAL (vapour quality ((vapour mass)/(water mass)))
C XH2O  : CHPOINT SCAL                 ((water mass)/(mixture mass))
C BETA  : FLOTTANT     (coefficient (option, default beta=1))
C IRET  : ENTIER       (return test ( 0 OK ) (ne 0 error) )
C
C
C M = BETA * H/CP *(ALFAB/ALFAT)**.666 *Ln((PTOT-PSAT(TP))/(PTOT-PVAP))
C M = 0   IF PVAP < PSAT(TP)
C
C IMPORTANT:   All the CHPOINTs MUST! have the same SPG
C ---------    S.I. units MUST! be used
C              M will be defined on the same SPG of H,TP,....
C
C
C*********************************************************************

      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
-INC CCREEL
      DIMENSION H(*),TP(*),PTOT(*),XVAP(*),XH2O(*),FVAP(*)
*      SAVE RAIR,RVAP
*      DATA RAIR,RVAP/287.0D0,462.0D0/

      IRET=0

      IF(CP.LE.0.D0.OR.ALFAB.LE.0.D0.OR.ALFAT.LE.0.D0.OR.BETA.LE.0.D0)
     & THEN
      IRET=6
      RETURN
      ENDIF


      XLEWIS = (ALFAB/ALFAT)**(2.0D0/3.0D0)
      XLEWIS = XLEWIS*BETA/CP
*      RRATIO = RAIR/RVAP
      RRATIO= 287.d0/462.d0

      DO I=1,N

        TWALL  = TP(I)
        PX     = PTOT(I)
        XSTEAM = XVAP(I)
        XWATER = XH2O(I)
        XAIR   = 1.0D0 - XWATER
        XH     = H(I)

        IF(XWATER.LT.0.D0.OR.XWATER.GE.(1.D0-XPETIT))THEN
         IRET=1
         RETURN
        ENDIF
        IF(XSTEAM.LT.0.D0.OR.XSTEAM.GT.(1.D0+1.D-15))THEN
         IRET=2
         RETURN
        ENDIF
        IF(XH.LE.0.D0)THEN
         IRET=3
         RETURN
        ENDIF
        IF(TWALL.LE.0.D0)THEN
         IRET=4
         RETURN
        ENDIF
        IF(PX.LE.0.D0)THEN
         IRET=5
         RETURN
        ENDIF

        PSAT = 1.055D26 / (TWALL*TWALL*TWALL*TWALL*TWALL)
        PSAT = 1.013D0  * PSAT*EXP (-7.0D3/TWALL)

        IF(PX.LE.PSAT)THEN
         FVAP(I) = 0.D0
         ELSE

         PVAP = PX * XSTEAM * XWATER
         PVAP = PVAP / ((XSTEAM * XWATER) + (XAIR*RRATIO))
         XFV  = (PX - PSAT) / (PX - PVAP)
         XFV  = XLEWIS * XH * LOG(XFV)
         XFV  = MAX(XFV,0.0D0)
         FVAP(I) = XFV
        ENDIF
C       write(6,*)'i,ptot,pvap,psat,j :',i,px,pvap,psat,xfv

      ENDDO

      RETURN
      END




