*IF DEF,OCEAN                                                              ORH1F305.464    
C ******************************COPYRIGHT******************************    GTS2F400.5977   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.5978   
C                                                                          GTS2F400.5979   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.5980   
C restrictions as set forth in the contract.                               GTS2F400.5981   
C                                                                          GTS2F400.5982   
C                Meteorological Office                                     GTS2F400.5983   
C                London Road                                               GTS2F400.5984   
C                BRACKNELL                                                 GTS2F400.5985   
C                Berkshire UK                                              GTS2F400.5986   
C                RG12 2SZ                                                  GTS2F400.5987   
C                                                                          GTS2F400.5988   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.5989   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.5990   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.5991   
C Modelling at the above address.                                          GTS2F400.5992   
C ******************************COPYRIGHT******************************    GTS2F400.5993   
C                                                                          GTS2F400.5994   
C*LL                                                                       MIXSET2.3      
CLL   Subroutine MIXSET2                                                   MIXSET2.4      
CLL   Can run on any compiler accepting long lower case variables.         MIXSET2.5      
CLL                                                                        MIXSET2.6      
CLL                                                                        MIXSET2.7      
CLL   Author: N K Taylor                                                   MIXSET2.8      
CLL   Date 17 December 1993                                                MIXSET2.9      
CLL   Version 3.3                                                          MIXSET2.10     
CLL                                                                        MIXSET2.11     
CLL   Programming standards use Cox naming convention for Cox variables    MIXSET2.12     
CLL      with the addition that lower case variables are local to the      MIXSET2.13     
CLL      routine.                                                          MIXSET2.14     
CLL      Otherwise follows UM doc paper 4 version 1.                       MIXSET2.15     
CLL                                                                        MIXSET2.16     
CLL   This forms part of UM brick P4.                                      MIXSET2.17     
CLL                                                                        MIXSET2.18     
CLL   THIS ROUTINE DEFINES CONSTANTS USED BY OCEAN MIXED LAYER SCHEME      MIXSET2.19     
CLL   THIS VERSION OF THE ROUTINE IS COMPATIBLE WITH THE SINGLE-WAVEBAND   MIXSET2.20     
CLL   VERSION OF THE LIGHT MODEL ONLY. IT ASSUMES THAT THE ATTENUATION     MIXSET2.21     
CLL   COEFFICIENT VARIES WITH DEPTH - DIFFERENT VALUES ARE USED IN THE     MIXSET2.22     
CLL   TOP TWO LAYERS                                                       MIXSET2.23     
CLL                                                                        MIXSET2.24     
CLL   External documentation:                                              MIXSET2.25     
CLL      scientific Heathershaw and Martin, ARE TM (UJO) 87129             MIXSET2.26     
CLL      programming:                                                      MIXSET2.27     
CLL                                                                        MIXSET2.28     
CLL   Subroutine dependencies.  The following subroutine must be           MIXSET2.29     
CLL   called before MIXSET2 to initialise the necessary variables:         MIXSET2.30     
CLL                                                                        MIXSET2.31     
CLL      SOLSET2: routine to set solar penetration depth                   MIXSET2.32     
CLL                                                                        MIXSET2.33     
CLLEND------------------------------------------------------------------   MIXSET2.34     
C*                                                                         MIXSET2.35     
C*L   -------------Arguments--------------------------------------------   MIXSET2.36     
C                                                                          MIXSET2.37     

      SUBROUTINE MIXSET2 (DELPSF, DELPSL, DECAY,                            1MIXSET2.38     
     +                  GRAV_SI, DZ, ZDZ, ZDZZ, RZ, IMT,                   MIXSET2.39     
     +                  KM,SOL_PEN,ETA,                                    MIXSET2.40     
     +                  KFIX, DELTA_SI                                     MIXSET2.41     
     +                  )                                                  MIXSET2.42     
C                                                                          MIXSET2.43     
      IMPLICIT NONE                                                        MIXSET2.44     
C                                                                          MIXSET2.45     
      INTEGER                                                              MIXSET2.46     
     +   KM       ! IN  Number of points in vertical                       MIXSET2.47     
     +,  IMT      ! IN  Number of points in a row                          MIXSET2.48     
C                                                                          MIXSET2.49     
      INTEGER                                                              MIXSET2.50     
     +   KFIX     ! IN  Number of levels with solar heating                MIXSET2.51     
C                                                                          MIXSET2.52     
C     Physical arguments                                                   MIXSET2.53     
C                                                                          MIXSET2.54     
      REAL                                                                 MIXSET2.55     
     +   GRAV_SI        ! IN  Acceleration due to gravity (m/s2)           MIXSET2.56     
     +,  DZ (KM)        ! IN  Layer thicknesses                            MIXSET2.57     
     +,  ZDZ (KM)       ! IN  Layer bottoms                                MIXSET2.58     
     +,  ZDZZ (KM)      ! IN  Layer centres *NB* Dim is KMP1 in /ONEDIM/   MIXSET2.59     
     +,  RZ (KM)        ! IN  Layer thickness scaled by 1/timestep ratio   MIXSET2.60     
C                             Note that if variable timestep with depth    MIXSET2.61     
C                             not included, then this is specified as      MIXSET2.62     
C                             DZ in the call.                              MIXSET2.63     
     +,  SOL_PEN (IMT,0:KM)  ! IN Proportion of solar energy at layer ba   MIXSET2.64     
     +,  ETA (IMT,KM)   ! IN  Light extinction coefficient in 1/m          MIXSET2.65     
     +,  DELTA_SI       ! IN  Vertical decay length for WME (m)            MIXSET2.66     
     +,  DECAY (KM)     ! OUT Decay scale for WME (dimensionless)          MIXSET2.67     
     +,  DELPSF         ! OUT 'Energy change' due to non-solar (cm3/s2)    MIXSET2.68     
     +,  DELPSL (IMT,0:KM)  ! OUT 'Energy change' used to mix solar ener   MIXSET2.69     
C                           !      throughout layer (cm3/s2)               MIXSET2.70     
C*                                                                         MIXSET2.71     
C*L  --------------- Externals -----------------------------------------   MIXSET2.72     
C                                                                          MIXSET2.73     
      INTRINSIC                                                            MIXSET2.74     
     +   EXP            !  Exponential function                            MIXSET2.75     
C*                                                                         MIXSET2.76     
C                                                                          MIXSET2.77     
CL    Define working variables                                             MIXSET2.78     
C                                                                          MIXSET2.79     
      INTEGER                                                              MIXSET2.80     
     +   i           !  Longitudinal index                                 MIXSET2.81     
     +,  k           !  Vertical index                                     MIXSET2.82     
C                                                                          MIXSET2.83     
      REAL                                                                 MIXSET2.84     
     +   sclfct (IMT)   !  Scaling factor                                  MIXSET2.85     
     +,  penup (IMT)    !  Loss of potential energy caused by stabilisat   MIXSET2.86     
     +,  grav           !  CGS version of GRAV_SI                          MIXSET2.87     
     +,  total (IMT)    !  Potential energy of layer in fully mixed        MIXSET2.88     
C                       !  state after absorption of solar energy          MIXSET2.89     
C                                                                          MIXSET2.90     
C           Create cgs versions of constants                               MIXSET2.91     
C                                                                          MIXSET2.92     
      grav=GRAV_SI*100.                                                    MIXSET2.93     
C                                                                          MIXSET2.94     
CL    1.0   Surface component of heating                                   MIXSET2.95     
C                                                                          MIXSET2.96     
      DELPSF = -0.5*grav*DZ(1)*DZ(1)                                       MIXSET2.97     
C                                                                          MIXSET2.98     
CL    2.0   Solar component                                                MIXSET2.99     
C                                                                          MIXSET2.100    
CL    2.1   Initial values                                                 MIXSET2.101    
C                                                                          MIXSET2.102    
      DO 2100 i = 1,IMT                                                    MIXSET2.103    
       DELPSL(i,0) = 0.0                                                   MIXSET2.104    
       penup(i) = 0.0                                                      MIXSET2.105    
       sclfct(i) = - grav * DZ(1)/(1.0 - SOL_PEN(i,1))                     MIXSET2.106    
 2100 CONTINUE                                                             MIXSET2.107    
C                                                                          MIXSET2.108    
CL    2.2   Values where heating penetrates                                MIXSET2.109    
C                                                                          MIXSET2.110    
      DO 2210, k = 1, KFIX                                                 MIXSET2.111    
       DO 2220, i = 1, IMT                                                 MIXSET2.112    
         total(i) = ZDZ(k) * SOL_PEN(i,k)                                  MIXSET2.113    
     &            - (1.0-SOL_PEN(i,k)) / (ETA(i,k)*0.01)                   MIXSET2.114    
         penup(i) = penup(i)                                               MIXSET2.115    
     &         - (SOL_PEN(i,k)-SOL_PEN(i,k-1)) * ZDZZ(k)*(DZ(k)/RZ(k))     MIXSET2.116    
         DELPSL (i,k) = (penup(i) + total(i)) * sclfct(i)                  MIXSET2.117    
 2220  CONTINUE                                                            MIXSET2.118    
 2210 CONTINUE                                                             MIXSET2.119    
C                                                                          MIXSET2.120    
CL    2.3   Values below heated region                                     MIXSET2.121    
C                                                                          MIXSET2.122    
      DO 2300, k = (KFIX+1), KM                                            MIXSET2.123    
       DO 2310 i = 1,IMT                                                   MIXSET2.124    
         DELPSL(i,k) = DELPSL(i,KFIX)                                      MIXSET2.125    
 2310  CONTINUE                                                            MIXSET2.126    
 2300 CONTINUE                                                             MIXSET2.127    
C                                                                          MIXSET2.128    
CL    3.0   Decay scale for wind mixing energy                             MIXSET2.129    
C                                                                          MIXSET2.130    
      DO 3000, k = 1, KM                                                   MIXSET2.131    
         DECAY (k) = EXP(-DZ(k)/(DELTA_SI*100.))                           MIXSET2.132    
 3000 CONTINUE                                                             MIXSET2.133    
C                                                                          MIXSET2.134    
CL    RETURN from MIXSET2                                                  MIXSET2.135    
C                                                                          MIXSET2.136    
      RETURN                                                               MIXSET2.137    
      END                                                                  MIXSET2.138    
*ENDIF                                                                     MIXSET2.139