*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.19subroutine 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