*IF DEF,W08_1A                                                             GLW1F404.31     
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.15745  
C                                                                          GTS2F400.15746  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.15747  
C restrictions as set forth in the contract.                               GTS2F400.15748  
C                                                                          GTS2F400.15749  
C                Meteorological Office                                     GTS2F400.15750  
C                London Road                                               GTS2F400.15751  
C                BRACKNELL                                                 GTS2F400.15752  
C                Berkshire UK                                              GTS2F400.15753  
C                RG12 2SZ                                                  GTS2F400.15754  
C                                                                          GTS2F400.15755  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.15756  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.15757  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.15758  
C Modelling at the above address.                                          GTS2F400.15759  
C ******************************COPYRIGHT******************************    GTS2F400.15760  
C                                                                          GTS2F400.15761  
                                                                           GRADI.3      

      SUBROUTINE GRADI (IG, IREFRA, DDPHI, DDLAM, DUPHI, DULAM,             1GRADI.4      
     &                  DVPHI, DVLAM,                                      GRADI.5      
*CALL ARGWVAL                                                              GRADI.6      
*CALL ARGWVCU                                                              GRADI.7      
*CALL ARGWVGD                                                              GRADI.8      
*CALL ARGWVSH                                                              GRADI.9      
*CALL ARGWVKL                                                              GRADI.10     
     & icode)                                                              GRADI.11     
                                                                           GRADI.12     
*CALL PARWVSH                                                              GRADI.13     
                                                                           GRADI.14     
*CALL TYPWVCU                                                              GRADI.15     
*CALL TYPWVGD                                                              GRADI.16     
*CALL TYPWVSH                                                              GRADI.17     
*CALL TYPWVKL                                                              GRADI.18     
*CALL TYPWVAL                                                              GRADI.19     
                                                                           GRADI.20     
C ----------------------------------------------------------------------   GRADI.21     
C                                                                          GRADI.22     
C**** *GRADI* - CALCULATES DEPTH AND CURRENT VELOCITY GRADIENTS.           GRADI.23     
C                                                                          GRADI.24     
C     K.P. HUBBERT              AUGUST   1988                              GRADI.25     
C     H. GUNTHER    ECMWF/GKSS  DECEMBER 1990  MODIFIED FOR CYCLE_4.       GRADI.26     
C                                                                          GRADI.27     
C*    PURPOSE.                                                             GRADI.28     
C     --------                                                             GRADI.29     
C                                                                          GRADI.30     
C       CALCULATES DEPTH AND CURRENT VELOCITY GRADIENTS OF A BLOCK.        GRADI.31     
C                                                                          GRADI.32     
C**   INTERFACE.                                                           GRADI.33     
C     ----------                                                           GRADI.34     
C                                                                          GRADI.35     
C       *CALL* *GRADI (IG, IREFRA, DDPHI, DDLAM, DUPHI, DULAM,             GRADI.36     
C                      DVPHI, DVLAM)*                                      GRADI.37     
C          *IG*     - BLOCK NUMBER.                                        GRADI.38     
C          *IREFRA* - REFRACTION OPTION.                                   GRADI.39     
C          *DDPHI*  - LATITUDE DEPTH GRADIENT.                             GRADI.40     
C          *DDLAM*  - LONGITUDE DEPTH GRADIENT.                            GRADI.41     
C          *DUPHI*  - LATITUDE  U-COMPONENT GRADIENT.                      GRADI.42     
C          *DULAM*  - LONGITUDE U-COMPONENT GRADIENT.                      GRADI.43     
C          *DVPHI*  - LATITUDE  V-COMPONENT GRADIENT.                      GRADI.44     
C          *DVLAM*  - LONGITUDE V-COMPONENT GRADIENT.                      GRADI.45     
C                                                                          GRADI.46     
C     METHOD.                                                              GRADI.47     
C     ------                                                               GRADI.48     
C                                                                          GRADI.49     
C       CENTRAL DIFFERENCING FOR DEPTH AND CURRENT VELOCITY GRADIENTS.     GRADI.50     
C                                                                          GRADI.51     
C     EXTERNALS.                                                           GRADI.52     
C     ----------                                                           GRADI.53     
C                                                                          GRADI.54     
C       NONE.                                                              GRADI.55     
C                                                                          GRADI.56     
C     REFERENCE.                                                           GRADI.57     
C     ----------                                                           GRADI.58     
C                                                                          GRADI.59     
C       NONE.                                                              GRADI.60     
C                                                                          GRADI.61     
C ----------------------------------------------------------------------   GRADI.62     
C                                                                          GRADI.63     
cccc*CALL PARALL                                                           GRADI.64     
C                                                                          GRADI.65     
ccc*CALL COMCURR                                                           GRADI.66     
C      PARAMETER (CO = 1.1, ALN00 = 24.1589,                               GRADI.67     
C    1           FRE0 = CO-1., PI2G = ZPI/G)                               GRADI.68     
ccc*CALL COMGRID                                                           GRADI.69     
C                                                                          GRADI.70     
ccc*CALL COMSHAL                                                           GRADI.71     
C                                                                          GRADI.72     
ccc*CALL COMUBUF                                                           GRADI.73     
C                                                                          GRADI.74     
C ----------------------------------------------------------------------   GRADI.75     
C                                                                          GRADI.76     
      DIMENSION DDPHI(NIBLD), DDLAM(NIBLD), DUPHI(NIBLC), DULAM(NIBLC),    GRADI.77     
     1          DVPHI(NIBLC), DVLAM(NIBLC)                                 GRADI.78     
C                                                                          GRADI.79     
C ----------------------------------------------------------------------   GRADI.80     
C                                                                          GRADI.81     
C*    1. INITIALISE.                                                       GRADI.82     
C        -----------                                                       GRADI.83     
C                                                                          GRADI.84     
 1000 CONTINUE                                                             GRADI.85     
      DELPHI2 = 1./(DELPHI*2.0)                                            GRADI.86     
      DELLAM2 = 1./(DELLAM*2.0)                                            GRADI.87     
C                                                                          GRADI.88     
C ----------------------------------------------------------------------   GRADI.89     
C                                                                          GRADI.90     
C*    2. CALCULATE DEPTH GRADIENTS.                                        GRADI.91     
C        --------------------------                                        GRADI.92     
C                                                                          GRADI.93     
 2000 CONTINUE                                                             GRADI.94     
      DO 2001 IJ=1,NIBLD                                                   GRADI.95     
         DDPHI(IJ) = 0.0                                                   GRADI.96     
         DDLAM(IJ) = 0.0                                                   GRADI.97     
 2001 CONTINUE                                                             GRADI.98     
      DO 2002 IJ=IJS(IG),IJL(IG)                                           GRADI.99     
         IPP = KLAT(IJ,2,ig)                                               GRADI.100    
         IPM = KLAT(IJ,1,ig)                                               GRADI.101    
         IF (IPP.GT.0 .AND. IPM.GT.0) THEN                                 GRADI.102    
            DDPHI(IJ) = (DEPTH(IPP,IG)-DEPTH(IPM,IG))*DELPHI2              GRADI.103    
         ENDIF                                                             GRADI.104    
         ILP = KLON(IJ,2,ig)                                               GRADI.105    
         ILM = KLON(IJ,1,ig)                                               GRADI.106    
         IF (ILP.GT.0 .AND. ILM.GT.0) THEN                                 GRADI.107    
            DDLAM(IJ) = (DEPTH(ILP,IG)-DEPTH(ILM,IG))*DELLAM2              GRADI.108    
         ENDIF                                                             GRADI.109    
 2002 CONTINUE                                                             GRADI.110    
C                                                                          GRADI.111    
C ----------------------------------------------------------------------   GRADI.112    
C                                                                          GRADI.113    
C*    3. CALCULATE CURRENT VELOCITY GRADIENTS.                             GRADI.114    
C        -------------------------------------                             GRADI.115    
C                                                                          GRADI.116    
 3000 CONTINUE                                                             GRADI.117    
      IF (IREFRA.EQ.2) THEN                                                GRADI.118    
         DO 3001 IJ=1,NIBLC                                                GRADI.119    
            DUPHI(IJ) = 0.0                                                GRADI.120    
            DULAM(IJ) = 0.0                                                GRADI.121    
            DVPHI(IJ) = 0.0                                                GRADI.122    
            DVLAM(IJ) = 0.0                                                GRADI.123    
 3001    CONTINUE                                                          GRADI.124    
         DO 3002 IJ=IJS(IG),IJL(IG)                                        GRADI.125    
            IPP = KLAT(IJ,2,ig)                                            GRADI.126    
            IPM = KLAT(IJ,1,ig)                                            GRADI.127    
            IF (IPP.GT.0 .AND. IPM.GT.0) THEN                              GRADI.128    
               DUPHI(IJ) = (U(IPP,IG)-U(IPM,IG))*DELPHI2                   GRADI.129    
               DVPHI(IJ) = (V(IPP,IG)-V(IPM,IG))*DELPHI2                   GRADI.130    
            ENDIF                                                          GRADI.131    
            ILP = KLON(IJ,2,ig)                                            GRADI.132    
            ILM = KLON(IJ,1,ig)                                            GRADI.133    
            IF (ILP.GT.0 .AND. ILM.GT.0) THEN                              GRADI.134    
               DULAM(IJ) = (U(ILP,IG)-U(ILM,IG))*DELLAM2                   GRADI.135    
               DVLAM(IJ) = (V(ILP,IG)-V(ILM,IG))*DELLAM2                   GRADI.136    
            ENDIF                                                          GRADI.137    
 3002    CONTINUE                                                          GRADI.138    
      ENDIF                                                                GRADI.139    
                                                                           GRADI.140    
      RETURN                                                               GRADI.141    
      END                                                                  GRADI.142    
*ENDIF                                                                     GRADI.143