anchor.diff:             prg_gcw, prg_rci, prg_rcs, &
              prg_rcg, prg_ihm
   
  +      DOUBLE PRECISION, PARAMETER:: zeroD0 = 0.0d0
  +
         REAL, DIMENSION(kts:kte):: temp, pres, qv
         REAL, DIMENSION(kts:kte):: rc, ri, rr, rs, rg, ni, nr
         REAL, DIMENSION(kts:kte):: rho, rhof, rhof2
  -      REAL, DIMENSION(kts:kte):: qvs, qvsi
  +      REAL, DIMENSION(kts:kte):: qvs, qvsi, delQvs
         REAL, DIMENSION(kts:kte):: satw, sati, ssatw, ssati
         REAL, DIMENSION(kts:kte):: diffu, visco, vsc2, &
              tcond, lvap, ocp, lvt2
  
positive.code:             rr(k) = qr1d(k)*rho(k)
              nr(k) = MAX(R2, nr1d(k)*rho(k))
              L_qr(k) = .true.
              if (nr(k) .gt. R2) then
               lamr = (am_r*crg(3)*org2*nr(k)/rr(k))**obmr
               mvd_r(k) = (3.0 + mu_r + 0.672) / lamr
               if (mvd_r(k) .gt. 2.5E-3) then
                  mvd_r(k) = 2.5E-3
                  lamr = (3.0 + mu_r + 0.672) / mvd_r(k)
                  nr(k) = crg(2)*org3*rr(k)*lamr**bm_r / am_r
               elseif (mvd_r(k) .lt. D0r*0.75) then
                  mvd_r(k) = D0r*0.75
                  lamr = (3.0 + mu_r + 0.672) / mvd_r(k)
                  nr(k) = crg(2)*org3*rr(k)*lamr**bm_r / am_r
               endif
              else
               if (qr1d(k) .gt. R2) then
                  mvd_r(k) = 1.0E-3
               else
                  mvd_r(k) = 2.5E-3 / 3.0**(ALOG10(R2)-ALOG10(qr1d(k)))
               endif
               lamr = (3.0 + mu_r + 0.672) / mvd_r(k)
               nr(k) = crg(2)*org3*rr(k)*lamr**bm_r / am_r
              endif
           else
              qr1d(k) = 0.0
  
negative.code:          pcp_ic(i,j) = pptice
           RAINNCV(i,j) = pptrain + pptsnow + pptgraul + pptice
           RAINNC(i,j) = RAINNC(i,j) + pptrain + pptsnow + pptgraul + pptice
           IF ( PRESENT(snowncv) .AND. PRESENT(snownc) ) THEN
              SNOWNCV(i,j) = pptsnow + pptice
              SNOWNC(i,j) = SNOWNC(i,j) + pptsnow + pptice
           ENDIF
           IF ( PRESENT(graupelncv) .AND. PRESENT(graupelnc) ) THEN
              GRAUPELNCV(i,j) = pptgraul
              GRAUPELNC(i,j) = GRAUPELNC(i,j) + pptgraul
           ENDIF
           SR(i,j) = (pptsnow + pptgraul + pptice)/(RAINNCV(i,j)+1.e-12)
  
           do k = kts, kte
  