anchor.diff:      real(RP) :: kh_max(ADM_kall)
       real(RP) :: d2T_dx2, coef
   
  +    real(8) :: large_step_dt
  +
       integer :: g, k, l, nq, p
       !---------------------------------------------------------------------------
   
  
positive.code:     real(RP) :: coef_max, coef_min
      real(RP) :: eft_max,  eft_min
  
      integer :: k, l
      !---------------------------------------------------------------------------
  
  
negative.code:     elseif( hdiff_type == "NONDIM_COEF" ) then
         if( gamma > 0.0_RP ) NUMFILTER_DOhorizontaldiff = .true.
  
         large_step_dt = TIME_DTL / real(DYN_DIV_NUM,kind=RP)
  
         ! gamma is a non-dimensional number.
         if ( dep_hgrid ) then
            do l = 1, ADM_lall
            do k = 1, ADM_kall
               Kh_coef(:,k,l) = gamma / large_step_dt * GMTR_area(:,l)**lap_order
            enddo
            enddo
  
            if ( ADM_have_pl ) then
               do l = 1, ADM_lall_pl
               do k = 1, ADM_kall
                  Kh_coef_pl(:,k,l) = gamma / large_step_dt * GMTR_area_pl(:,l)**lap_order
               enddo
               enddo
            endif
         else
            Kh_coef   (:,:,:) = gamma / large_step_dt * AREA_ave**lap_order
            Kh_coef_pl(:,:,:) = gamma / large_step_dt * AREA_ave**lap_order
         endif
  
      elseif( hdiff_type == "E_FOLD_TIME" ) then
  