SUBROUTINE  dia_hth_dep_000%s( Kmm, ptem, pdept )
!
      INTEGER , INTENT(in) :: Kmm      ! ocean time level index
      REAL(%s), INTENT(in) :: ptem
      REAL(%s), DIMENSION(jpi,jpj), INTENT(out) :: pdept
!
      INTEGER  :: ji, jj, jk, iid
      REAL(wp) :: zztmp, zzdep
      INTEGER, DIMENSION(jpi,jpj) :: iktem
      
! --------------------------------------- !
! search deepest level above ptem         !
! --------------------------------------- !
      iktem(:,:) = 1
      DO jk = 1, jpkm1   ;   DO jj = 1, jpj   ;   DO ji = 1, jpi
         zztmp = ts(ji,jj,jk,jp_tem,Kmm)
         IF( zztmp >= ptem )   iktem(ji,jj) = jk
      END DO   ;   END DO   ;   END DO

! ------------------------------- !
!  Depth of ptem isotherm         !
! ------------------------------- !
      DO jj = 1, jpj   ;   DO ji = 1, jpi
!
         zzdep = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)       ! depth of the ocean bottom
!
         iid = iktem(ji,jj)
         IF( iid /= 1 ) THEN 
             zztmp =     gdept(ji,jj,iid  ,Kmm)   &                     ! linear interpolation
               &  + (    gdept(ji,jj,iid+1,Kmm) - gdept(ji,jj,iid,Kmm)                       )   &
               &  * ( 20.*tmask(ji,jj,iid+1) - ts(ji,jj,iid,jp_tem,Kmm)                       )   &
               &  / ( ts(ji,jj,iid+1,jp_tem,Kmm) - ts(ji,jj,iid,jp_tem,Kmm) + (1.-tmask(ji,jj,1)) )
            pdept(ji,jj) = MIN( zztmp , zzdep) * tmask(ji,jj,1)       ! bound by the ocean depth
         ELSE 
            pdept(ji,jj) = 0._wp
         ENDIF
      END DO   ;   END DO
!
   END SUBROUTINE  dia_hth_dep_000%s