!/===========================================================================/
! Copyright (c) 2007, The University of Massachusetts Dartmouth 
! Produced at the School of Marine Science & Technology 
! Marine Ecosystem Dynamics Modeling group
! All rights reserved.
!
! FVCOM has been developed by the joint UMASSD-WHOI research team. For 
! details of authorship and attribution of credit please see the FVCOM
! technical manual or contact the MEDM group.
!
! 
! This file is part of FVCOM. For details, see http://fvcom.smast.umassd.edu 
! The full copyright notice is contained in the file COPYRIGHT located in the 
! root directory of the FVCOM code. This original header must be maintained
! in all distributed versions.
!
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
! AND ANY EXPRESS OR  IMPLIED WARRANTIES, INCLUDING,  BUT NOT  LIMITED TO,
! THE IMPLIED WARRANTIES OF MERCHANTABILITY AND  FITNESS FOR A PARTICULAR
! PURPOSE ARE DISCLAIMED.  
!
!/---------------------------------------------------------------------------/
! CVS VERSION INFORMATION
! $Id$
! $Name$
! $Revision$
!/===========================================================================/

!==============================================================================|
!  ADJUST THE VERTICAL WATER COLUMN WHEN UNSTABLE                              |
!==============================================================================|

   SUBROUTINE CONV_OVER           

!==============================================================================|
   USE ALL_VARS
   USE MOD_UTILS
   IMPLICIT NONE
   REAL(SP):: AVE_T,AVE_S,AVE_R 
   INTEGER :: I,K,KK,J1,J2,J3
!==============================================================================|

   IF (DBG_SET(DBG_SBR)) WRITE(IPT,*) "Start: conv_over"
 

!--APPROXIMATE CONVECTIVE OVERTURNING------------------------------------------!

   DO I=1,M
     DO K=KBM1,2,-1
       DO KK=K-1,1,-1
         IF(RHO1(I,K) < RHO1(I,KK)) THEN
           AVE_T = SUM(  T1(I,KK:K))/FLOAT(K-KK+1) 
           AVE_S = SUM(  S1(I,KK:K))/FLOAT(K-KK+1) 
           AVE_R = SUM(RHO1(I,KK:K))/FLOAT(K-KK+1) 
           T1(I,KK:K)   = AVE_T
           S1(I,KK:K)   = AVE_S
           RHO1(I,KK:K) = AVE_R
         END IF
       END DO
     END DO
   END DO
       
!-----RECALCULATE ELEMENT-BASED VALUES OF SALINITY/TEMP/DENSITY----------------!

   DO I=1,N
     J1=NV(I,1) ; J2 = NV(I,2) ; J3 = NV(I,3)
     DO K=1,KBM1
       T(I,K)  = ONE_THIRD*(  T1(J1,K)+  T1(J2,K)+  T1(J3,K))
       S(I,K)  = ONE_THIRD*(  S1(J1,K)+  S1(J2,K)+  S1(J3,K))
     END DO
   END DO   
          
   IF (DBG_SET(DBG_SBR)) WRITE(IPT,*) "End: conv_over"
       
   RETURN
   END SUBROUTINE CONV_OVER       
!==============================================================================|