*IF DEF,OCEAN GENINTO1.2
C ******************************COPYRIGHT****************************** GENINTO1.3
C (c) CROWN COPYRIGHT 1998, METEOROLOGICAL OFFICE, All Rights Reserved. GENINTO1.4
C GENINTO1.5
C Use, duplication or disclosure of this code is subject to the GENINTO1.6
C restrictions as set forth in the contract. GENINTO1.7
C GENINTO1.8
C Meteorological Office GENINTO1.9
C London Road GENINTO1.10
C BRACKNELL GENINTO1.11
C Berkshire UK GENINTO1.12
C RG12 2SZ GENINTO1.13
C GENINTO1.14
C If no contract has been raised with this copy of the code, the use, GENINTO1.15
C duplication or disclosure of it is strictly prohibited. Permission GENINTO1.16
C to do so must first be obtained in writing from the Head of Numerical GENINTO1.17
C Modelling at the above address. GENINTO1.18
C ******************************COPYRIGHT****************************** GENINTO1.19
C GENINTO1.20
CLL Subroutine GEN_INTF_O --------------------------------------------- GENINTO1.21
C GENINTO1.22
CLL Purpose: To generate ocean boundary data from a source model GENINTO1.23
CLL (global or regional) GENINTO1.24
CLL GENINTO1.25
CLL Model Modification history from model version 4.5 GENINTO1.26
CLL version Date GENINTO1.27
CLL 4.5 3/09/98 New deck added M.J.Bell GENINTO1.28
CLL GENINTO1.29
CLLEND --------------------------------------------------------------- GENINTO1.30
subroutine gen_intf_o ( 1,13GENINTO1.31
*CALL ADUMLEN
GENINTO1.32
*CALL AINFLEN
GENINTO1.33
*CALL AINTF
GENINTO1.34
*CALL ARGDUM
GENINTO1.35
*CALL ARGINF
GENINTO1.36
*CALL ARGPPX
GENINTO1.37
+ JINTF,NFTOUT, GENINTO1.38
+ imt, jmt, km, GENINTO1.39
+ NITEMS, PPINDEX, GENINTO1.40
+ theta, salinity, u, v, streamfn, GENINTO1.41
+ streamfn_tendency, snow_depth, aice, hice, GENINTO1.42
+ depths_srce, GENINTO1.43
& ICODE,CMESSAGE) GENINTO1.44
GENINTO1.45
IMPLICIT NONE GENINTO1.46
GENINTO1.47
*CALL CDUMLEN
GENINTO1.48
*CALL CINFLEN
GENINTO1.49
*CALL CINTF
GENINTO1.50
*CALL TYPDUM
GENINTO1.51
*CALL TYPINF
GENINTO1.52
GENINTO1.53
*CALL CSUBMODL
GENINTO1.54
*CALL CPPXREF
GENINTO1.55
*CALL PPXLOOK
GENINTO1.56
GENINTO1.57
integer GENINTO1.58
& JINTF, ! file number GENINTO1.59
& NFTOUT, ! output unit no. GENINTO1.60
& imt, ! no of columns for source model GENINTO1.61
& jmt, ! no of tracer rows for source model GENINTO1.62
& km, ! no of levels for source model GENINTO1.63
& NITEMS, ! number of stash items (array dimension) GENINTO1.64
& PPINDEX(NITEMS,N_INTERNAL_MODEL) GENINTO1.65
real GENINTO1.66
& theta (imt,jmt,km), GENINTO1.67
& salinity (imt,jmt,km), GENINTO1.68
& u(imt,jmt-1,km), v(imt,jmt-1,km), GENINTO1.69
& streamfn(imt,jmt), streamfn_tendency(imt,jmt), GENINTO1.70
& snow_depth(imt,jmt), aice(imt,jmt), hice(imt,jmt), GENINTO1.71
& depths_srce(km) GENINTO1.72
GENINTO1.73
integer icode GENINTO1.74
character*256 CMESSAGE GENINTO1.75
!--------------------------------------- GENINTO1.76
GENINTO1.77
*CALL PARVARS
GENINTO1.78
*CALL GCCOM
GENINTO1.79
*CALL DECOMPTP
GENINTO1.80
GENINTO1.81
*CALL COCTOL
! uses TOL_SMALL in checking closeness of reals GENINTO1.82
GENINTO1.83
CL Local arrays GENINTO1.84
real intf_data( LEN_INTF_DATA(JINTF) ) ! boundary data output GENINTO1.85
integer item_intfo (intf_lookups) ! stash item numbers GENINTO1.86
integer dump_lookup_intfo (intf_lookups) ! dump lookup table GENINTO1.87
! for this variable GENINTO1.88
integer len_bdy_flds (intf_lookups) ! lengths of boundary fields GENINTO1.89
real u_temp(LEN_INTF_U(JINTF)) ! one level of u-velocity data GENINTO1.90
real v_temp(LEN_INTF_U(JINTF)) ! one level of v-velocity data GENINTO1.91
GENINTO1.92
CL Local scalars GENINTO1.93
integer var ! loop index for variable type GENINTO1.94
integer iaddr ! next location to write to in intf_data GENINTO1.95
integer IP_P ! { start location in interpolation coefficient GENINTO1.96
integer IP_U ! { arrays for this file GENINTO1.97
integer proc_to_use GENINTO1.98
integer proc_group GENINTO1.99
integer im ! sub-model identifier GENINTO1.100
integer im_index ! STASH internal model sequence number GENINTO1.101
integer j ! do loop index GENINTO1.102
integer level ! level number; do loop index GENINTO1.103
integer iaddr_u ! { address in intf_data of start of u and v GENINTO1.104
integer iaddr_v ! { data on the present level GENINTO1.105
integer n_levs_trgt ! number of levels to interpolate to GENINTO1.106
GENINTO1.107
logical ROT_IN, ! T => source grid is rotated GENINTO1.108
& ROT_OUT, ! T => output grid rotated GENINTO1.109
& ll_vrt_interp ! F => no vertical interpolation GENINTO1.110
GENINTO1.111
*IF -DEF,MPP GENINTO1.112
! Dummy mype to keep argument lists consistent GENINTO1.113
INTEGER mype GENINTO1.114
*ENDIF GENINTO1.115
GENINTO1.116
GENINTO1.117
GENINTO1.118
!--------------------------------------- GENINTO1.119
GENINTO1.120
GENINTO1.121
CL 0. Preliminaries GENINTO1.122
GENINTO1.123
*IF DEF,MPP GENINTO1.124
CL 0.0 Check that global sizes match present sub-model to ensure GENINTO1.125
CL that glsize values will be correct GENINTO1.126
call CHANGE_DECOMPOSITION
(decomp_standard_ocean ,icode) GENINTO1.127
GENINTO1.128
CL 0.1 Miscellaneous (sub-model and processor codes) GENINTO1.129
proc_to_use = 0 GENINTO1.130
proc_group = GC_ALL_PROC_GROUP GENINTO1.131
*ELSE GENINTO1.132
! Non-mpp case set mype for sake of consistency GENINTO1.133
mype = 0 GENINTO1.134
*ENDIF GENINTO1.135
im = o_im GENINTO1.136
im_index = internal_model_index(im) GENINTO1.137
GENINTO1.138
CL 0.2 Set up list of stash item numbers for the variables expected GENINTO1.139
CL to be in the boundary file. GENINTO1.140
ITEM_INTFO(1) = 101 ! theta GENINTO1.141
ITEM_INTFO(2) = 102 ! salinity GENINTO1.142
ITEM_INTFO(3) = 121 ! U (baroclinic) GENINTO1.143
ITEM_INTFO(4) = 122 ! V (baroclinic) GENINTO1.144
ITEM_INTFO(5) = 130 ! streamfunction GENINTO1.145
ITEM_INTFO(6) = 132 ! streamfunction tendency GENINTO1.146
ITEM_INTFO(7) = 141 ! snow depth GENINTO1.147
ITEM_INTFO(8) = 146 ! AICE : ICE CONCENTRATION GENINTO1.148
ITEM_INTFO(9) = 147 ! HICE: MEAN ICE DEPTH OVER GRIDBOX M GENINTO1.149
GENINTO1.150
CL 0.3 Set up for each output lookup table the number of the dump GENINTO1.151
CL lookup table of the corresponding variable. GENINTO1.152
DO var = 1, INTF_LOOKUPS GENINTO1.153
dump_lookup_intfo(var) = PPINDEX(item_intfo(var),im_index) GENINTO1.154
END DO GENINTO1.155
GENINTO1.156
CL 0.4 Set up the output lengths for each variable GENINTO1.157
CL (used as input to INTF_OUT) GENINTO1.158
len_bdy_flds(1) = LEN_INTF_P(JINTF) * INTF_P_LEVELS(JINTF) ! T GENINTO1.159
len_bdy_flds(2) = len_bdy_flds(1) ! salinity GENINTO1.160
len_bdy_flds(3) = LEN_INTF_U(JINTF) * INTF_P_LEVELS(JINTF) ! U GENINTO1.161
len_bdy_flds(4) = len_bdy_flds(3) ! V GENINTO1.162
len_bdy_flds(5) = LEN_INTF_P(JINTF) ! streamfunction GENINTO1.163
len_bdy_flds(6) = LEN_INTF_P(JINTF) ! streamfunction tendency GENINTO1.164
len_bdy_flds(7) = LEN_INTF_P(JINTF) ! snow depth GENINTO1.165
len_bdy_flds(8) = LEN_INTF_P(JINTF) ! AICE : ICE CONCENTRATION GENINTO1.166
len_bdy_flds(9) = LEN_INTF_P(JINTF) ! HICE: MEAN ICE DEPTH GENINTO1.167
GENINTO1.168
CL 0.5 Set up pointers to interpolation coefficients for this area GENINTO1.169
iaddr = 1 GENINTO1.170
IP_P = 1 GENINTO1.171
IP_U = 1 GENINTO1.172
IF (JINTF.GT.1) THEN GENINTO1.173
DO J=1,JINTF-1 GENINTO1.174
IP_P = IP_P + LEN_INTF_P(J) GENINTO1.175
IP_U = IP_U + LEN_INTF_U(J) GENINTO1.176
ENDDO GENINTO1.177
ENDIF GENINTO1.178
GENINTO1.179
CL 0.6 Set logical indicating if model grids are rotated GENINTO1.180
GENINTO1.181
C Logical to indicate input grid is rotated GENINTO1.182
ROT_IN = ABS(REALHD(5) - 90.) .GT. TOL_SMALL .OR. GENINTO1.183
# ABS ( REALHD(6) ) .GT. TOL_SMALL GENINTO1.184
GENINTO1.185
C Logical to indicate output grid is rotated GENINTO1.186
ROT_OUT = ABS( INTF_POLELAT(JINTF) - 90. ) .GT. TOL_SMALL .OR. GENINTO1.187
# ABS ( INTF_POLELONG(JINTF) ) .GT. TOL_SMALL GENINTO1.188
GENINTO1.189
GENINTO1.190
CL 1.1 Tracer fields GENINTO1.191
GENINTO1.192
CL 1.1.1 Theta data GENINTO1.193
GENINTO1.194
write(6,*) '***** THETA *********' GENINTO1.195
GENINTO1.196
call gen_intf_fld
( icode, cmessage, KM, GENINTO1.197
& JMT,IMT, GENINTO1.198
*IF DEF,MPP GENINTO1.199
& mype, proc_to_use, proc_group, GENINTO1.200
& glsize(2),glsize(1), GENINTO1.201
*ENDIF GENINTO1.202
& LEN_INTF_P(JINTF), TOT_LEN_INTF_P, INTF_P_LEVELS(JINTF), GENINTO1.203
& IP_P, P_INDEX_B_L, P_INDEX_B_R, GENINTO1.204
& P_WEIGHT_B_L, P_WEIGHT_B_R, GENINTO1.205
& P_WEIGHT_T_L, P_WEIGHT_T_R, GENINTO1.206
& INTF_VERT_INTERP(JINTF), GENINTO1.207
& depths_srce, INTF_AK(1,JINTF), GENINTO1.208
& theta, intf_data(iaddr) ) GENINTO1.209
GENINTO1.210
iaddr = iaddr + LEN_INTF_P(JINTF)*INTF_P_LEVELS(JINTF) GENINTO1.211
GENINTO1.212
CL 1.1.2 Salinity data GENINTO1.213
GENINTO1.214
write(6,*) '*********SALINITY *********' GENINTO1.215
call gen_intf_fld
( icode, cmessage, KM, GENINTO1.216
& JMT,IMT, GENINTO1.217
*IF DEF,MPP GENINTO1.218
& mype, proc_to_use, proc_group, GENINTO1.219
& glsize(2),glsize(1), GENINTO1.220
*ENDIF GENINTO1.221
& LEN_INTF_P, TOT_LEN_INTF_P, INTF_P_LEVELS(JINTF), GENINTO1.222
& IP_P, P_INDEX_B_L, P_INDEX_B_R, GENINTO1.223
& P_WEIGHT_B_L, P_WEIGHT_B_R, GENINTO1.224
& P_WEIGHT_T_L, P_WEIGHT_T_R, GENINTO1.225
& INTF_VERT_INTERP(JINTF), GENINTO1.226
& depths_srce, INTF_AK(1,JINTF), GENINTO1.227
& salinity, intf_data(iaddr) ) GENINTO1.228
GENINTO1.229
iaddr = iaddr + LEN_INTF_P(JINTF)*INTF_P_LEVELS(JINTF) GENINTO1.230
GENINTO1.231
GENINTO1.232
CL 1.2 Horizontal currents GENINTO1.233
GENINTO1.234
CL 1.2.1 Interpolate u current GENINTO1.235
GENINTO1.236
write(6,*) '********* U *********' GENINTO1.237
call gen_intf_fld
( icode, cmessage, KM, GENINTO1.238
& JMT,IMT, GENINTO1.239
*IF DEF,MPP GENINTO1.240
& mype, proc_to_use, proc_group, GENINTO1.241
!!! check next line - is this right !!! GENINTO1.242
& glsize(2)-1,glsize(1), GENINTO1.243
*ENDIF GENINTO1.244
& LEN_INTF_U, TOT_LEN_INTF_U, INTF_P_LEVELS(JINTF), GENINTO1.245
& IP_U, U_INDEX_B_L, U_INDEX_B_R, GENINTO1.246
& U_WEIGHT_B_L, U_WEIGHT_B_R, GENINTO1.247
& U_WEIGHT_T_L, U_WEIGHT_T_R, GENINTO1.248
& INTF_VERT_INTERP(JINTF), GENINTO1.249
& depths_srce, INTF_AK(1,JINTF), GENINTO1.250
& u, intf_data(iaddr) ) GENINTO1.251
GENINTO1.252
iaddr_u = iaddr GENINTO1.253
iaddr = iaddr + LEN_INTF_U(JINTF)*INTF_P_LEVELS(JINTF) GENINTO1.254
GENINTO1.255
CL 1.2.2 Interpolate v current GENINTO1.256
GENINTO1.257
write(6,*) '********* V *********' GENINTO1.258
call gen_intf_fld
( icode, cmessage, KM, GENINTO1.259
& JMT,IMT, GENINTO1.260
*IF DEF,MPP GENINTO1.261
& mype, proc_to_use, proc_group, GENINTO1.262
& glsize(2)-1,glsize(1), GENINTO1.263
*ENDIF GENINTO1.264
& LEN_INTF_U, TOT_LEN_INTF_U, INTF_P_LEVELS(JINTF), GENINTO1.265
& IP_U, U_INDEX_B_L, U_INDEX_B_R, GENINTO1.266
& U_WEIGHT_B_L, U_WEIGHT_B_R, GENINTO1.267
& U_WEIGHT_T_L, U_WEIGHT_T_R, GENINTO1.268
& INTF_VERT_INTERP(JINTF), GENINTO1.269
& depths_srce, INTF_AK(1,JINTF), GENINTO1.270
& v, intf_data(iaddr) ) GENINTO1.271
GENINTO1.272
iaddr_v = iaddr GENINTO1.273
iaddr = iaddr + LEN_INTF_U(JINTF)*INTF_P_LEVELS(JINTF) GENINTO1.274
GENINTO1.275
Cl 1.2.3 Rotate currents GENINTO1.276
GENINTO1.277
*IF DEF,MPP GENINTO1.278
if ( mype .eq. proc_to_use) then GENINTO1.279
*ENDIF GENINTO1.280
GENINTO1.281
DO LEVEL = 1, INTF_P_LEVELS(JINTF) GENINTO1.282
GENINTO1.283
if ( ROT_IN ) then GENINTO1.284
GENINTO1.285
call w_eqtoll
(COEFF5(IP_U),COEFF6(IP_U), GENINTO1.286
& intf_data(iaddr_u), intf_data(iaddr_v), GENINTO1.287
& u_temp,v_temp, GENINTO1.288
& LEN_INTF_U(JINTF), LEN_INTF_U(JINTF)) GENINTO1.289
else GENINTO1.290
GENINTO1.291
do j = 1,LEN_INTF_U(JINTF) GENINTO1.292
u_temp(j) = intf_data(iaddr_u + j - 1) GENINTO1.293
v_temp(j) = intf_data(iaddr_v + j - 1) GENINTO1.294
end do GENINTO1.295
GENINTO1.296
end if ! ROT_IN GENINTO1.297
GENINTO1.298
if ( ROT_OUT ) then GENINTO1.299
GENINTO1.300
call w_lltoeq
(COEFF1(IP_U),COEFF2(IP_U), GENINTO1.301
& u_temp,v_temp, GENINTO1.302
& intf_data(iaddr_u), intf_data(iaddr_v), GENINTO1.303
& LEN_INTF_U(JINTF), LEN_INTF_U(JINTF)) GENINTO1.304
GENINTO1.305
iaddr_u = iaddr_u + LEN_INTF_U(JINTF) GENINTO1.306
iaddr_v = iaddr_v + LEN_INTF_U(JINTF) GENINTO1.307
GENINTO1.308
else GENINTO1.309
GENINTO1.310
do j = 1,LEN_INTF_U(JINTF) GENINTO1.311
intf_data(iaddr_u + j - 1) = u_temp(j) GENINTO1.312
intf_data(iaddr_v + j - 1) = v_temp(j) GENINTO1.313
end do GENINTO1.314
GENINTO1.315
end if ! ROT_OUT GENINTO1.316
GENINTO1.317
END DO ! LEVEL GENINTO1.318
GENINTO1.319
*IF DEF,MPP GENINTO1.320
end if ! mype .eq. proc_to_use GENINTO1.321
*ENDIF GENINTO1.322
GENINTO1.323
CL 1.3 Streamfunction GENINTO1.324
GENINTO1.325
n_levs_trgt = 1 GENINTO1.326
ll_vrt_interp = .false. GENINTO1.327
GENINTO1.328
write(6,*) '********* PSI *********' GENINTO1.329
call gen_intf_fld
( icode, cmessage, 1, GENINTO1.330
& JMT,IMT, GENINTO1.331
*IF DEF,MPP GENINTO1.332
& mype, proc_to_use, proc_group, GENINTO1.333
& glsize(2),glsize(1), GENINTO1.334
*ENDIF GENINTO1.335
& LEN_INTF_P, TOT_LEN_INTF_P, n_levs_trgt, GENINTO1.336
& IP_P, P_INDEX_B_L, P_INDEX_B_R, GENINTO1.337
& P_WEIGHT_B_L, P_WEIGHT_B_R, GENINTO1.338
& P_WEIGHT_T_L, P_WEIGHT_T_R, GENINTO1.339
& ll_vrt_interp, GENINTO1.340
& depths_srce, INTF_AK(1,JINTF), GENINTO1.341
& streamfn, intf_data(iaddr) ) GENINTO1.342
GENINTO1.343
iaddr = iaddr + LEN_INTF_P(JINTF) GENINTO1.344
GENINTO1.345
CL 1.4 Streamfunction tendency GENINTO1.346
GENINTO1.347
write(6,*) '********* PTD *********' GENINTO1.348
n_levs_trgt = 1 GENINTO1.349
ll_vrt_interp = .false. GENINTO1.350
GENINTO1.351
call gen_intf_fld
( icode, cmessage, 1, GENINTO1.352
& JMT,IMT, GENINTO1.353
*IF DEF,MPP GENINTO1.354
& mype, proc_to_use, proc_group, GENINTO1.355
& glsize(2),glsize(1), GENINTO1.356
*ENDIF GENINTO1.357
& LEN_INTF_P, TOT_LEN_INTF_P, n_levs_trgt, GENINTO1.358
& IP_P, P_INDEX_B_L, P_INDEX_B_R, GENINTO1.359
& P_WEIGHT_B_L, P_WEIGHT_B_R, GENINTO1.360
& P_WEIGHT_T_L, P_WEIGHT_T_R, GENINTO1.361
& ll_vrt_interp, GENINTO1.362
& depths_srce, INTF_AK(1,JINTF), GENINTO1.363
& streamfn_tendency, intf_data(iaddr) ) GENINTO1.364
GENINTO1.365
iaddr = iaddr + LEN_INTF_P(JINTF) GENINTO1.366
GENINTO1.367
CL 1.5 Snow depth GENINTO1.368
GENINTO1.369
n_levs_trgt = 1 GENINTO1.370
ll_vrt_interp = .false. GENINTO1.371
GENINTO1.372
write(6,*) '********* SNOW DEPTH *********' GENINTO1.373
call gen_intf_fld
( icode, cmessage, 1, GENINTO1.374
& JMT,IMT, GENINTO1.375
*IF DEF,MPP GENINTO1.376
& mype, proc_to_use, proc_group, GENINTO1.377
& glsize(2),glsize(1), GENINTO1.378
*ENDIF GENINTO1.379
& LEN_INTF_P, TOT_LEN_INTF_P, n_levs_trgt, GENINTO1.380
& IP_P, P_INDEX_B_L, P_INDEX_B_R, GENINTO1.381
& P_WEIGHT_B_L, P_WEIGHT_B_R, GENINTO1.382
& P_WEIGHT_T_L, P_WEIGHT_T_R, GENINTO1.383
& ll_vrt_interp, GENINTO1.384
& depths_srce, INTF_AK(1,JINTF), GENINTO1.385
& snow_depth, intf_data(iaddr) ) GENINTO1.386
GENINTO1.387
iaddr = iaddr + LEN_INTF_P(JINTF) GENINTO1.388
GENINTO1.389
CL 1.6 Ice concentration GENINTO1.390
GENINTO1.391
n_levs_trgt = 1 GENINTO1.392
ll_vrt_interp = .false. GENINTO1.393
GENINTO1.394
write(6,*) '********* ICE CONC *********' GENINTO1.395
call gen_intf_fld
( icode, cmessage, 1, GENINTO1.396
& JMT,IMT, GENINTO1.397
*IF DEF,MPP GENINTO1.398
& mype, proc_to_use, proc_group, GENINTO1.399
& glsize(2),glsize(1), GENINTO1.400
*ENDIF GENINTO1.401
& LEN_INTF_P, TOT_LEN_INTF_P, n_levs_trgt, GENINTO1.402
& IP_P, P_INDEX_B_L, P_INDEX_B_R, GENINTO1.403
& P_WEIGHT_B_L, P_WEIGHT_B_R, GENINTO1.404
& P_WEIGHT_T_L, P_WEIGHT_T_R, GENINTO1.405
& ll_vrt_interp, GENINTO1.406
& depths_srce, INTF_AK(1,JINTF), GENINTO1.407
& aice, intf_data(iaddr) ) GENINTO1.408
GENINTO1.409
iaddr = iaddr + LEN_INTF_P(JINTF) GENINTO1.410
GENINTO1.411
CL 1.7 Ice depth GENINTO1.412
GENINTO1.413
n_levs_trgt = 1 GENINTO1.414
ll_vrt_interp = .false. GENINTO1.415
GENINTO1.416
write(6,*) '********* ICE DEPTH *********' GENINTO1.417
call gen_intf_fld
( icode, cmessage, 1, GENINTO1.418
& JMT,IMT, GENINTO1.419
*IF DEF,MPP GENINTO1.420
& mype, proc_to_use, proc_group, GENINTO1.421
& glsize(2),glsize(1), GENINTO1.422
*ENDIF GENINTO1.423
& LEN_INTF_P, TOT_LEN_INTF_P, n_levs_trgt, GENINTO1.424
& IP_P, P_INDEX_B_L, P_INDEX_B_R, GENINTO1.425
& P_WEIGHT_B_L, P_WEIGHT_B_R, GENINTO1.426
& P_WEIGHT_T_L, P_WEIGHT_T_R, GENINTO1.427
& ll_vrt_interp, GENINTO1.428
& depths_srce, INTF_AK(1,JINTF), GENINTO1.429
& hice, intf_data(iaddr) ) GENINTO1.430
GENINTO1.431
iaddr = iaddr + LEN_INTF_P(JINTF) GENINTO1.432
GENINTO1.433
CL 2. Output values to disk GENINTO1.434
GENINTO1.435
CALL intf_out
( GENINTO1.436
*CALL ADUMLEN
GENINTO1.437
*CALL AINFLEN
GENINTO1.438
*CALL ARGDUM
GENINTO1.439
*CALL ARGINF
GENINTO1.440
*CALL ARGPPX
GENINTO1.441
& NFTOUT, JINTF, im, mype, GENINTO1.442
& INTF_PACK, INTFWIDTH, LEN_INTF_P, LEN_INTF_U, GENINTO1.443
& LEN_INTF_DATA(JINTF), item_intfo, len_bdy_flds, GENINTO1.444
& dump_lookup_intfo, intf_data, icode, cmessage ) GENINTO1.445
GENINTO1.446
return GENINTO1.447
end GENINTO1.448
!----------------------------------------- GENINTO1.449
*ENDIF GENINTO1.450