anchor.diff:           qg1d(k) = qg1d(k) + qgten(k)*DT
            if (qg1d(k) .le. R1) qg1d(k) = 0.0
         enddo
  -	  
  +
         end subroutine mp_thompson
   !+---+-----------------------------------------------------------------+
   !ctrlL
  
positive.code: !+---+-----------------------------------------------------------------+
        N0_min = gonv_max
        do k = kte, kts, -1
           if (temp(k).lt.T_0 .and. (rc(k)+rr(k)).gt.1.E-5) then
              xslw1 = 5. + alog10(max(1.E-5, min(1.E-2, (rc(k)+rr(k)))))
           else
              xslw1 = 0.0001
           endif
           ygra1 = 4.302 + alog10(max(5.E-5, min(5.E-2, rg(k))))
           zans1 = 3.565 + (90./(50.*xslw1*ygra1/(5./xslw1+1.+0.25*ygra1)+30.+15.*ygra1))
           N0_exp = 10.**(zans1)
           N0_exp = MAX(DBLE(gonv_min), MIN(N0_exp, DBLE(gonv_max)))
           N0_min = MIN(N0_exp, N0_min)
  
negative.code:                      sumn2 = sumn2 + prob*N_r(n2)
                       sum2 = sum2 + prob*N_r(n2)*massr(n2)
                    endif
                    if ((sum1+sum2) .ge. r_r(i)) EXIT
                 enddo
                 tpi_qrfz(i,j,k) = sum1
                 tni_qrfz(i,j,k) = sumn1
  