*IF DEF,OCEAN,OR,DEF,RECON,OR,DEF,CAMDUMP,OR,DEF,FIELDOP OLBCSZ1.2 C *****************************COPYRIGHT****************************** OLBCSZ1.3 C (c) CROWN COPYRIGHT 1998, METEOROLOGICAL OFFICE, All Rights Reserved. OLBCSZ1.4 C OLBCSZ1.5 C Use, duplication or disclosure of this code is subject to the OLBCSZ1.6 C restrictions as set forth in the contract. OLBCSZ1.7 C OLBCSZ1.8 C Meteorological Office OLBCSZ1.9 C London Road OLBCSZ1.10 C BRACKNELL OLBCSZ1.11 C Berkshire UK OLBCSZ1.12 C RG12 2SZ OLBCSZ1.13 C OLBCSZ1.14 C If no contract has been raised with this copy of the code, the use, OLBCSZ1.15 C duplication or disclosure of it is strictly prohibited. Permission OLBCSZ1.16 C to do so must first be obtained in writing from the Head of Numerical OLBCSZ1.17 C Modelling at the above address. OLBCSZ1.18 C ******************************COPYRIGHT****************************** OLBCSZ1.19 !+ code to dimension arrays to read interface data OLBCSZ1.20 ! OLBCSZ1.21subroutine o_lbc_sizes( km ,nt, rimwidtho, 2OLBCSZ1.22 # numside_rowso, numside_colso, OLBCSZ1.23 # RIM_LOOKUPSO, n_obdy_t_grd, n_obdy_u_grd ) OLBCSZ1.24 implicit none OLBCSZ1.25 ! OLBCSZ1.26 ! Description: OLBCSZ1.27 ! Sets some variables used to dimension ocean LAM arrays. OLBCSZ1.28 ! Called from DERVSIZE and ADDRLN OLBCSZ1.29 ! OLBCSZ1.30 ! History: OLBCSZ1.31 ! Model Date Modification history from model version 4.5 OLBCSZ1.32 ! version OLBCSZ1.33 ! 4.5 17/6/98 New subroutine/deck M.J.Bell/S.Ineson OLBCSZ1.34 ! OLBCSZ1.35 CL Input Arguments - all INTENT OUT OLBCSZ1.36 integer km ! # of vertical levels for tracers, u and v OLBCSZ1.37 integer nt ! # of tracers (including T & S) OLBCSZ1.38 integer rimwidtho ! rim width of boundary data to be read OLBCSZ1.39 OLBCSZ1.40 CL Output arguments - all INTENT IN OLBCSZ1.41 integer numside_rowso ! # of active boundary rows OLBCSZ1.42 integer numside_colso ! # of active boundary columns OLBCSZ1.43 integer RIM_LOOKUPSO ! # of ocean bdy lookup tables OLBCSZ1.44 integer n_obdy_t_grd ! # of ocean tracer grid bdy fields OLBCSZ1.45 integer n_obdy_u_grd ! # of ocean velocity grid bdy fields OLBCSZ1.46 OLBCSZ1.47 CL Global variables (only used for input) OLBCSZ1.48 *CALL CNTLOCN
OLBCSZ1.49 OLBCSZ1.50 !-------------------------------------------------------- OLBCSZ1.51 ! 1. calculate numside_rowso and numside_colso OLBCSZ1.52 numside_rowso = 0 OLBCSZ1.53 if ( l_obdy_north ) then OLBCSZ1.54 numside_rowso = numside_rowso + rimwidtho OLBCSZ1.55 end if OLBCSZ1.56 if ( l_obdy_south ) then OLBCSZ1.57 numside_rowso = numside_rowso + rimwidtho OLBCSZ1.58 end if OLBCSZ1.59 numside_colso = 0 OLBCSZ1.60 if ( l_obdy_east) then OLBCSZ1.61 numside_colso = numside_colso + rimwidtho OLBCSZ1.62 end if OLBCSZ1.63 if ( l_obdy_west) then OLBCSZ1.64 numside_colso = numside_colso + rimwidtho OLBCSZ1.65 end if OLBCSZ1.66 OLBCSZ1.67 ! 2. find the number of tracer grid and velocity grid boundary OLBCSZ1.68 ! fields and the number of lookup tables OLBCSZ1.69 OLBCSZ1.70 RIM_LOOKUPSO = 0 OLBCSZ1.71 n_obdy_t_grd = 0 OLBCSZ1.72 n_obdy_u_grd = 0 OLBCSZ1.73 OLBCSZ1.74 if ( l_obdy_tracer ) then OLBCSZ1.75 n_obdy_t_grd = n_obdy_t_grd + nt * km OLBCSZ1.76 RIM_LOOKUPSO = RIM_LOOKUPSO + nt OLBCSZ1.77 end if OLBCSZ1.78 OLBCSZ1.79 if ( l_obdy_uv ) then OLBCSZ1.80 n_obdy_u_grd = n_obdy_u_grd + 2 * km OLBCSZ1.81 RIM_LOOKUPSO = RIM_LOOKUPSO + 2 OLBCSZ1.82 end if OLBCSZ1.83 OLBCSZ1.84 if ( l_obdy_STREAM ) then OLBCSZ1.85 n_obdy_t_grd = n_obdy_t_grd + 2 OLBCSZ1.86 RIM_LOOKUPSO = RIM_LOOKUPSO + 2 OLBCSZ1.87 end if OLBCSZ1.88 OLBCSZ1.89 if ( l_obdy_ice ) then OLBCSZ1.90 n_obdy_t_grd = n_obdy_t_grd + 3 OLBCSZ1.91 RIM_LOOKUPSO = RIM_LOOKUPSO + 3 OLBCSZ1.92 end if OLBCSZ1.93 OLBCSZ1.94 return OLBCSZ1.95 end OLBCSZ1.96 *ENDIF OLBCSZ1.97