        subroutine VOLAT(KO2L,K)
      include 'SIZE.INC'
      include 'GLOBAL.INC'
      include 'LOCAL.INC'
      include 'LOCAL1.INC'
      include 'LOCAL2.INC'
      include 'LOCAL3.INC'
        real KO2L(NPX)
        integer K
        real COND,HENRYL,RESGAS,RESLIQ,SOLL,TKEL,VAPRL,WAT
        integer J
      do 140 J = 1, KOUNT
         KO2L(J) = 0.0
         if (J.gt.1.and.(TYPEG(J).eq.'H'.or.TYPEG(J).eq.'B'.or.TYPEG(J-1
     &      ).ne.'B')) go to 140
         if (WINDG(J,NDAT).le.0..or.KO2G(J,NDAT).le.0..or.TCELG(J,NDAT)
     &      .le.0.) go to 140
         KO2L(J) = (KO2G(J,NDAT)/100.)*(1.024**(TCELG(J,NDAT)-20.))
         if (HENRYG(K).eq.0.0.and.VAPRG(K).eq.0.0.and.EHENG(K).eq.
     &      0.0.and.EVPRG(K).eq.0.0) go to 140
         TKEL = 273.15+TCELG(J,NDAT)
         if (KVOG(K).gt.0.) go to 100
         RESLIQ = 1./(KO2L(J)*sqrt(32./MWTG(K)))
         go to 110
100      continue
         RESLIQ = 1./(KO2L(J)*KVOG(K))
110      continue
         if (HENRYG(K).ne.0.0.or.EHENG(K).ne.0.) go to 120
         VAPRL = VAPRG(K)/760.
         if (EVPRG(K).ne.0.) VAPRL = (10.**(VAPRG(K)-((1000.*EVPRG(K))/(
     &      4.58*TKEL))))/760.
         SOLL = SOLG(1,K)
         if (ESOLG(1,K).ne.0.) SOLL = (10.**(SOLG(1,K)-((1000.*ESOLG(1,K
     &      ))/(4.58*TKEL))))*MWTG(K)*1000.
         SOLL = SOLL/MWTG(K)
         HENRYL = VAPRL/SOLL
         go to 130
120      continue
         HENRYL = HENRYG(K)
         if (EHENG(K).ne.0.) HENRYL = 10.**(HENRYG(K)-((1000.*EHENG(K))/
     &      (4.58*TKEL)))
130      continue
         WAT = 0.1857+11.36*WINDG(J,NDAT)
         RESGAS = 1./((WAT*HENRYL*sqrt(18./MWTG(K)))/(TKEL*8.206E-5))
         COND = 1.0/(RESLIQ+RESGAS)
         VOLKL(J,K) = (COND*ALPHA(1,J,K)*AREAG(J))/VOLG(J)
140   continue
      return
      end
