*IF DEF,SCMA                                                               S_INTSOL.2      
C *****************************COPYRIGHT******************************     S_INTSOL.3      
C (c) CROWN COPYRIGHT 1998, METEOROLOGICAL OFFICE, All Rights Reserved.    S_INTSOL.4      
C                                                                          S_INTSOL.5      
C Use, duplication or disclosure of this code is subject to the            S_INTSOL.6      
C restrictions as set forth in the contract.                               S_INTSOL.7      
C                                                                          S_INTSOL.8      
C                Meteorological Office                                     S_INTSOL.9      
C                London Road                                               S_INTSOL.10     
C                BRACKNELL                                                 S_INTSOL.11     
C                Berkshire UK                                              S_INTSOL.12     
C                RG12 2SZ                                                  S_INTSOL.13     
C                                                                          S_INTSOL.14     
C If no contract has been raised with this copy of the code, the use,      S_INTSOL.15     
C duplication or disclosure of it is strictly prohibited.  Permission      S_INTSOL.16     
C to do so must first be obtained in writing from the Head of Numerical    S_INTSOL.17     
C Modelling at the above address.                                          S_INTSOL.18     
C ******************************COPYRIGHT******************************    S_INTSOL.19     
C                                                                          S_INTSOL.20     
CLL  Subroutine INITSOIL---------------------------------------------      S_INTSOL.21     
CLL                                                                        S_INTSOL.22     
CLL  Version 1 written by: J.LEAN, 20/9/90.                                S_INTSOL.23     
CLL                                                                        S_INTSOL.24     
CLL                                                                        S_INTSOL.25     
CLL   **************************************************************       S_INTSOL.26     
CLL   *                                                            *       S_INTSOL.27     
CLL   *          Single Column Unified Model version               *       S_INTSOL.28     
CLL   *                                                            *       S_INTSOL.29     
CLL   **************************************************************       S_INTSOL.30     
CLL                                                                        S_INTSOL.31     
CLL                                                                        S_INTSOL.32     
CLL   Purpose: To initialise soil array for SCM use                        S_INTSOL.33     
CLL                                                                        S_INTSOL.34     
CLL   Documentation: ??                                                    S_INTSOL.35     
CLL                                                                        S_INTSOL.36     
CLL   Modifications-:                                                      S_INTSOL.37     
CLL                                                                        S_INTSOL.38     
CLL   Version    Date    Change                                            S_INTSOL.39     
CLL   4.5       11/06/98 (1)SCM integrated as a standard configuration     S_INTSOL.40     
CLL                        of the UM.                                      S_INTSOL.41     
CLL                      (2)New arguments added, comdecks removed.         S_INTSOL.42     
CLL                           JC Thil.                                     S_INTSOL.43     
CLL                                                                        S_INTSOL.44     
CLL ------------------------------------------------------------------     S_INTSOL.45     
C                                                                          S_INTSOL.46     

      Subroutine INITSOIL(points, land_mask, omega1, layer_depth,           2S_INTSOL.47     
     &  nsoil_levs, tconst, andayy, dtday, dtyear, time_init,              S_INTSOL.48     
     &  dayno_init, tsoil_init)                                            S_INTSOL.49     
      Implicit none                                                        S_INTSOL.50     
*CALL C_OMEGA                                                              S_INTSOL.51     
*CALL C_PI                                                                 S_INTSOL.52     
C                                                                          S_INTSOL.53     
C---------------------------------------------------------------------     S_INTSOL.54     
C     Arguments                                                            S_INTSOL.55     
C---------------------------------------------------------------------     S_INTSOL.56     
C                                                                          S_INTSOL.57     
      Integer                                                              S_INTSOL.58     
     &  dayno_init              ! IN No. of day from winter solstice       S_INTSOL.59     
     &  ,nsoil_levs             ! IN No. soil temperatures required        S_INTSOL.60     
     &  ,points                 ! IN No of model columns                   S_INTSOL.61     
      Logical                                                              S_INTSOL.62     
     &  land_mask(points)       ! IN Land mask                             S_INTSOL.63     
      Real                                                                 S_INTSOL.64     
     &  dtday(points)           ! IN Amplitude of diurnal soil temp.       S_INTSOL.65     
                                !  cycles                                  S_INTSOL.66     
     &  ,dtyear(points)         ! IN Amplitude of annual soil temp.        S_INTSOL.67     
     &  ,andayy                 ! IN No. of days in 1 year                 S_INTSOL.68     
     &  ,layer_depth(nsoil_levs) ! IN Soil layer depth as                  S_INTSOL.69     
                                !  a multiple of layer 1 depth(m)          S_INTSOL.70     
     &  ,omega1(points)         ! IN wave factor (s-1)                     S_INTSOL.71     
     &  ,tconst(points)         ! IN Annual mean surface temp. (K)         S_INTSOL.72     
     &  ,time_init              ! IN Initial time in seconds               S_INTSOL.73     
     &  ,tsoil_init(points,nsoil_levs)                                     S_INTSOL.74     
                                ! OUT Initial soil temps. including        S_INTSOL.75     
                                !  surface (K)                             S_INTSOL.76     
C                                                                          S_INTSOL.77     
C---------------------------------------------------------------------     S_INTSOL.78     
C     Local variables                                                      S_INTSOL.79     
C---------------------------------------------------------------------     S_INTSOL.80     
C                                                                          S_INTSOL.81     
      Integer                                                              S_INTSOL.82     
     &  daymax                  ! Day of maximum cycle                     S_INTSOL.83     
     &  ,i, k                   ! Counter                                  S_INTSOL.84     
      Real                                                                 S_INTSOL.85     
     &  timemax                 ! Time of maximum cycle (hour)             S_INTSOL.86     
     &  ,zsoil_k                                                           S_INTSOL.87     
     &  ,zasoil(points,nsoil_levs),zdsoil(points,nsoil_levs)               S_INTSOL.88     
     &  ,zsum                   !                                          S_INTSOL.89     
     &  ,ra(points),rd(points)                                             S_INTSOL.90     
     &  ,omegaa                                                            S_INTSOL.91     
     &  ,omegad                 ! Angular velocity of earth                S_INTSOL.92     
C                                                                          S_INTSOL.93     
      Parameter(timemax=15.,daymax=228)                                    S_INTSOL.94     
      Do i = 1, points                                                     S_INTSOL.95     
        zsum = 0.0                                                         S_INTSOL.96     
        omegad = omega                                                     S_INTSOL.97     
        omegaa = omega / andayy                                            S_INTSOL.98     
        ra(i) = sqrt(omegaa / omega1(i))                                   S_INTSOL.99     
        rd(i) = sqrt(omegad / omega1(i))                                   S_INTSOL.100    
        Do k = 1, nsoil_levs                                               S_INTSOL.101    
          zsoil_k = zsum + .5 * layer_depth(k)                             S_INTSOL.102    
          zsum = zsum + layer_depth(k)                                     S_INTSOL.103    
          zdsoil(i,k) = rd(i) * zsoil_k                                    S_INTSOL.104    
          zasoil(i,k) = ra(i) * zsoil_k                                    S_INTSOL.105    
        enddo                   ! k                                        S_INTSOL.106    
      enddo                     ! i                                        S_INTSOL.107    
      Do i = 1, points                                                     S_INTSOL.108    
        If (land_mask(i)) then                                             S_INTSOL.109    
          Do k = 1, nsoil_levs                                             S_INTSOL.110    
            tsoil_init(i,k) = tconst(i) + dtday(i) * exp(-zdsoil(i,k))     S_INTSOL.111    
     &        * cos(pi * (time_init / 3600. - timemax)                     S_INTSOL.112    
     &        /           12.-zdsoil(i,k))                                 S_INTSOL.113    
     &        + dtyear(i) * exp(-zasoil(i,k))                              S_INTSOL.114    
     &        * cos(pi * float(dayno_init-daymax)                          S_INTSOL.115    
     &        /           180.0 - zasoil(i,k))                             S_INTSOL.116    
          enddo                 ! k                                        S_INTSOL.117    
        endif                   ! land_mask(i)                             S_INTSOL.118    
      enddo                     ! i                                        S_INTSOL.119    
      Return                                                               S_INTSOL.120    
      End                                                                  S_INTSOL.121    
C                                                                          S_INTSOL.122    
*ENDIF                                                                     S_INTSOL.123