*IF DEF,C92_1A                                                             HINT_AW1.2      
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.15286  
C                                                                          GTS2F400.15287  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.15288  
C restrictions as set forth in the contract.                               GTS2F400.15289  
C                                                                          GTS2F400.15290  
C                Meteorological Office                                     GTS2F400.15291  
C                London Road                                               GTS2F400.15292  
C                BRACKNELL                                                 GTS2F400.15293  
C                Berkshire UK                                              GTS2F400.15294  
C                RG12 2SZ                                                  GTS2F400.15295  
C                                                                          GTS2F400.15296  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.15297  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.15298  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.15299  
C Modelling at the above address.                                          GTS2F400.15300  
C ******************************COPYRIGHT******************************    GTS2F400.15301  
C                                                                          GTS2F400.15302  
!+ Performs Area weighted horizitontal interpolation                       HINT_AW1.3      
!                                                                          HINT_AW1.4      
! Subroutine Interface:                                                    HINT_AW1.5      

      SUBROUTINE H_INT_AW(ROWS_IN,ROWS_OUT                                  1,1HINT_AW1.6      
     &,                   ROW_LENGTH_IN,ROW_LENGTH_OUT,GLOBAL              HINT_AW1.7      
     &,                   AW_INDEX_TARG_LHS,AW_INDEX_TARG_TOP              HINT_AW1.8      
     &,                   AW_COLAT_T,AW_LONG_L,DATA_IN,DATA_OUT)           HINT_AW1.9      
                                                                           HINT_AW1.10     
CLL  System component: S121                                                HINT_AW1.11     
CLL                                                                        HINT_AW1.12     
CLL  System task: S1                                                       HINT_AW1.13     
CLL                                                                        HINT_AW1.14     
CLL  Purpose:                                                              HINT_AW1.15     
CLL                                                                        HINT_AW1.16     
CLL  Documentation:                                                        HINT_AW1.17     
CLL            The interpolation formulae are described in                 HINT_AW1.18     
CLL            unified model on-line documentation paper S1.               HINT_AW1.19     
CLL                                                                        HINT_AW1.20     
      IMPLICIT NONE                                                        HINT_AW1.21     
!                                                                          HINT_AW1.22     
! Description:                                                             HINT_AW1.23     
!   Carries out bi-linear horizontal interpolation using coefficients      HINT_AW1.24     
!   and gather indices calculated in subroutine H_INT_CO                   HINT_AW1.25     
!                                                                          HINT_AW1.26     
! Method:                                                                  HINT_AW1.27     
!   See UMDP S1 for full desciption                                        HINT_AW1.28     
!                                                                          HINT_AW1.29     
! Current Code Owner: D.M. Goddard                                         HINT_AW1.30     
!                                                                          HINT_AW1.31     
! History:                                                                 HINT_AW1.32     
! Version   Date     Comment                                               HINT_AW1.33     
! -------   ----     -------                                               HINT_AW1.34     
! 4.0     16/03/95   Original code. D.M. Goddard                           HINT_AW1.35     
!                                                                          HINT_AW1.36     
! Code Description:                                                        HINT_AW1.37     
!   Language: FORTRAN 77 + common extensions.                              HINT_AW1.38     
!   This code is written to UMDP3 v6 programming standards.                HINT_AW1.39     
!                                                                          HINT_AW1.40     
! System component covered: S121                                           HINT_AW1.41     
! System Task:              S1                                             HINT_AW1.42     
!                                                                          HINT_AW1.43     
! Declarations:                                                            HINT_AW1.44     
!   These are of the form:-                                                HINT_AW1.45     
!     INTEGER      ExampleVariable      !Description of variable           HINT_AW1.46     
!                                                                          HINT_AW1.47     
! Subroutine arguments                                                     HINT_AW1.48     
!   Scalar arguments with intent(in):                                      HINT_AW1.49     
      INTEGER      ROWS_IN          !No of rows on source grid             HINT_AW1.50     
      INTEGER      ROWS_OUT         !No of rows on target grid             HINT_AW1.51     
      INTEGER      ROW_LENGTH_IN    !No of pts per row on source grid      HINT_AW1.52     
      INTEGER      ROW_LENGTH_OUT   !No of pts per row on target grid      HINT_AW1.53     
      LOGICAL      GLOBAL           !True if global area required          HINT_AW1.54     
                                                                           HINT_AW1.55     
!   Array  arguments with intent(in):                                      HINT_AW1.56     
      INTEGER      AW_INDEX_TARG_LHS(ROW_LENGTH_OUT+1)                     HINT_AW1.57     
                                    !Index of source box overlapping       HINT_AW1.58     
                                    !lhs of target grid-box                HINT_AW1.59     
      INTEGER      AW_INDEX_TARG_TOP(ROWS_OUT+1)                           HINT_AW1.60     
                                    !Index of source box overlapping       HINT_AW1.61     
                                    !top of target grid-box                HINT_AW1.62     
      REAL         AW_COLAT_T(ROWS_OUT+1)                                  HINT_AW1.63     
                                    !Colatitude of top of target grd-box   HINT_AW1.64     
                                    ! (in units of DELTA_LAT_SRCE)         HINT_AW1.65     
      REAL         AW_LONG_L(ROW_LENGTH_OUT+1)                             HINT_AW1.66     
                                    !Left longitude of target grid-box     HINT_AW1.67     
                                    ! (in units of DELTA_LONG_SRCE)        HINT_AW1.68     
      REAL         DATA_IN(ROW_LENGTH_IN*ROWS_IN)                          HINT_AW1.69     
                                    !Data before interpolation             HINT_AW1.70     
                                                                           HINT_AW1.71     
!   Array  arguments with intent(out):                                     HINT_AW1.72     
      REAL         DATA_OUT(ROW_LENGTH_OUT*ROWS_OUT)                       HINT_AW1.73     
                                    !Data after interpolation              HINT_AW1.74     
                                                                           HINT_AW1.75     
! Local scalars:                                                           HINT_AW1.76     
      INTEGER      I                                                       HINT_AW1.77     
                                                                           HINT_AW1.78     
! Local arrays:                                                            HINT_AW1.79     
      REAL         BOXSUM(ROW_LENGTH_OUT,ROWS_OUT)                         HINT_AW1.80     
                                    !Sum of data on target grid            HINT_AW1.81     
                                                                           HINT_AW1.82     
! Function & Subroutine calls:                                             HINT_AW1.83     
      External BOX_SUM                                                     HINT_AW1.84     
                                                                           HINT_AW1.85     
!- End of header                                                           HINT_AW1.86     
                                                                           HINT_AW1.87     
!     1. Calculate sum of contribution from gridboxes                      HINT_AW1.88     
                                                                           HINT_AW1.89     
      CALL BOX_SUM(ROW_LENGTH_IN,ROWS_IN,ROW_LENGTH_OUT,ROWS_OUT           HINT_AW1.90     
     &,            AW_LONG_L,AW_COLAT_T                                    HINT_AW1.91     
     &,            AW_INDEX_TARG_LHS,AW_INDEX_TARG_TOP                     HINT_AW1.92     
     &,            GLOBAL,DATA_OUT,DATA_IN)                                HINT_AW1.93     
                                                                           HINT_AW1.94     
                                                                           HINT_AW1.95     
      RETURN                                                               HINT_AW1.96     
      END                                                                  HINT_AW1.97     
                                                                           HINT_AW1.98     
*ENDIF                                                                     HINT_AW1.99