anchor.diff:          if(present(errmsg))then
               write(msg,*)'iend greater than the number of '// &
                   &     'avalaible modes => reduced to',iend
  -            errmsg = errmsg // msg // ' | '
  +            errmsg = trim(errmsg) // trim(msg) // ' | '
           endif
       end if
       if(zistart>ziend)then
  
positive.code:         ziend   = zistart
          zistart = itmp
          if(present(errmsg))&
              & errmsg = errmsg // 'istart > iend => inversion | '
      end if
      if(present(errmsg).and.len_trim(errmsg)>0)then
          if(len_trim(errmsg)>3) errmsg = errmsg(:len_trim(errmsg)-3)        
  
negative.code:         
      ! Working var array
      allocate(zvar(nsv, ntv))
      zvar = var(iselects, iselectt)
      zvar = merge(0d0, zvar, abs((zvar-zmv)*zdmv)<=mvtol)
  
      ! Remove the mean along T
      ! -----------------------
      allocate(zmean(nsv))
      zmean = sum(zvar, dim=2) / dble(sum(valid(iselects,iselectt), dim=2))
      do i = 1, ntv
          zvar(:, i) = zvar(:, i) - zmean
      enddo
  