*IF DEF,CONTROL,OR,DEF,MAKEBC                                              INTFUNT1.2      
C *****************************COPYRIGHT******************************     INTFUNT1.3      
C (c) CROWN COPYRIGHT 1998, METEOROLOGICAL OFFICE, All Rights Reserved.    INTFUNT1.4      
C                                                                          INTFUNT1.5      
C Use, duplication or disclosure of this code is subject to the            INTFUNT1.6      
C restrictions as set forth in the contract.                               INTFUNT1.7      
C                                                                          INTFUNT1.8      
C                Meteorological Office                                     INTFUNT1.9      
C                London Road                                               INTFUNT1.10     
C                BRACKNELL                                                 INTFUNT1.11     
C                Berkshire UK                                              INTFUNT1.12     
C                RG12 2SZ                                                  INTFUNT1.13     
C                                                                          INTFUNT1.14     
C If no contract has been raised with this copy of the code, the use,      INTFUNT1.15     
C duplication or disclosure of it is strictly prohibited.  Permission      INTFUNT1.16     
C to do so must first be obtained in writing from the Head of Numerical    INTFUNT1.17     
C Modelling at the above address.                                          INTFUNT1.18     
C ******************************COPYRIGHT******************************    INTFUNT1.19     

      subroutine intf_area ( internal_model,  intf_unit_no,                 7INTFUNT1.20     
     #                       intf_area_no )                                INTFUNT1.21     
CL  Purpose: calculates output interface file number from                  INTFUNT1.22     
CL           unit number and sub model number                              INTFUNT1.23     
      implicit none                                                        INTFUNT1.24     
      integer internal_model   ! IN  Internal sub-model number             INTFUNT1.25     
      integer intf_unit_no     ! IN  Interface unit number                 INTFUNT1.26     
      integer intf_area_no     ! OUT Interface area number                 INTFUNT1.27     
!                                                                          INTFUNT1.28     
      integer jintf            ! Local : Loop index                        INTFUNT1.29     
*CALL CSMID                                                                INTFUNT1.30     
*CALL CMAXSIZE                                                             INTFUNT1.31     
*CALL CMAXSIZO                                                             INTFUNT1.32     
*CALL CINTFA                                                               INTFUNT1.33     
*CALL CINTFO                                                               INTFUNT1.34     
                                                                           INTFUNT1.35     
*IF DEF,ATMOS                                                              INTFUNT1.36     
      if ( internal_model .eq. a_im) then                                  INTFUNT1.37     
        do jintf=1,max_n_intf_a                                            INTFUNT1.38     
          if ( intf_unit_no .eq. lbc_unit_no_a(jintf) ) then               INTFUNT1.39     
            intf_area_no = jintf                                           INTFUNT1.40     
          endif                                                            INTFUNT1.41     
        enddo                                                              INTFUNT1.42     
      endif                                                                INTFUNT1.43     
*ENDIF                                                                     INTFUNT1.44     
                                                                           INTFUNT1.45     
*IF DEF,OCEAN                                                              INTFUNT1.46     
      if ( internal_model .eq. o_im) then                                  INTFUNT1.47     
        do jintf=1,max_n_intf_o                                            INTFUNT1.48     
          if ( intf_unit_no .eq. lbc_unit_no_o(jintf) ) then               INTFUNT1.49     
            intf_area_no = jintf                                           INTFUNT1.50     
          endif                                                            INTFUNT1.51     
        enddo                                                              INTFUNT1.52     
      end if                                                               INTFUNT1.53     
*ENDIF                                                                     INTFUNT1.54     
                                                                           INTFUNT1.55     
      return                                                               INTFUNT1.56     
      end                                                                  INTFUNT1.57     
C ---------------------------------------------------------------------    INTFUNT1.58     

      subroutine intf_unit ( internal_model,  intf_area_no,                 3INTFUNT1.59     
     #                       intf_unit_no )                                INTFUNT1.60     
CL  Purpose: calculates output interface area number from                  INTFUNT1.61     
CL           file number and sub model number                              INTFUNT1.62     
      implicit none                                                        INTFUNT1.63     
      integer internal_model   ! IN  Internal sub-model number             INTFUNT1.64     
      integer intf_area_no     ! IN  Interface area number                 INTFUNT1.65     
      integer intf_unit_no     ! OUT Interface unit number                 INTFUNT1.66     
                                                                           INTFUNT1.67     
*CALL CSMID                                                                INTFUNT1.68     
*CALL CMAXSIZE                                                             INTFUNT1.69     
*CALL CMAXSIZO                                                             INTFUNT1.70     
*CALL CINTFA                                                               INTFUNT1.71     
*CALL CINTFO                                                               INTFUNT1.72     
                                                                           INTFUNT1.73     
*IF DEF,ATMOS                                                              INTFUNT1.74     
      if ( internal_model .eq. a_im) then                                  INTFUNT1.75     
        intf_unit_no = lbc_unit_no_a(intf_area_no)                         INTFUNT1.76     
      endif                                                                INTFUNT1.77     
*ENDIF                                                                     INTFUNT1.78     
                                                                           INTFUNT1.79     
*IF DEF,OCEAN                                                              INTFUNT1.80     
      if (  internal_model .eq. o_im) then                                 INTFUNT1.81     
        intf_unit_no = lbc_unit_no_o(intf_area_no)                         INTFUNT1.82     
      end if                                                               INTFUNT1.83     
*ENDIF                                                                     INTFUNT1.84     
                                                                           INTFUNT1.85     
      return                                                               INTFUNT1.86     
      end                                                                  INTFUNT1.87     
*ENDIF                                                                     INTFUNT1.88     
C ---------------------------------------------------------------------    INTFUNT1.89