*IF DEF,C92_1A HINTIAW1.2
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.15235
C GTS2F400.15236
C Use, duplication or disclosure of this code is subject to the GTS2F400.15237
C restrictions as set forth in the contract. GTS2F400.15238
C GTS2F400.15239
C Meteorological Office GTS2F400.15240
C London Road GTS2F400.15241
C BRACKNELL GTS2F400.15242
C Berkshire UK GTS2F400.15243
C RG12 2SZ GTS2F400.15244
C GTS2F400.15245
C If no contract has been raised with this copy of the code, the use, GTS2F400.15246
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.15247
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.15248
C Modelling at the above address. GTS2F400.15249
C ******************************COPYRIGHT****************************** GTS2F400.15250
C GTS2F400.15251
!+ Initialises arrays used in area weighed horizontal interpolation. HINTIAW1.3
SUBROUTINE H_INT_INIT_AW(ICOF,IDIM,P_FIELD_OUT 1,16HINTIAW1.4
&, P_ROWS_IN,P_ROWS_OUT HINTIAW1.5
&, ROW_LENGTH_IN,ROW_LENGTH_OUT HINTIAW1.6
&, U_FIELD_IN,U_FIELD_OUT HINTIAW1.7
&, U_ROWS_IN,U_ROWS_OUT HINTIAW1.8
&, GLOBAL,GRIB,FIXHD_IN,FIXHD_OUT HINTIAW1.9
&, REALHD_IN,REALHD_OUT,AW_AREA_BOX HINTIAW1.10
&, AW_INDEX_TARG_LHS,AW_INDEX_TARG_TOP HINTIAW1.11
&, BL_INDEX_B_L,BL_INDEX_B_R,BL_INDEX_NEAREST HINTIAW1.12
&, AW_COLAT_T,AW_LONG_L HINTIAW1.13
&, WEIGHT_T_R,WEIGHT_B_R HINTIAW1.15
&, WEIGHT_T_L,WEIGHT_B_L) HINTIAW1.16
! HINTIAW1.17
! Subroutine Interface: HINTIAW1.18
HINTIAW1.19
IMPLICIT NONE HINTIAW1.20
! HINTIAW1.21
! Description: HINTIAW1.22
! Initialises arrays used in horizontal interpolation. HINTIAW1.23
! This replaces routine SETWTS1 (A Dickinson) whose function it HINTIAW1.24
! incorporates. HINTIAW1.25
! HINTIAW1.26
! Method: HINTIAW1.27
! Sets up gather index and weight arrays for later call to H_INT_BL h HINTIAW1.28
! Also sets up rotation coefficients for use in ROTATE with rotated HINTIAW1.29
! grids. HINTIAW1.30
! HINTIAW1.31
! Current Code Owner: D.M. Goddard HINTIAW1.32
! HINTIAW1.33
! History: HINTIAW1.34
! Version Date Comment HINTIAW1.35
! ------- ---- ------- HINTIAW1.36
! 4.0 12/04/95 Original code. D.M. Goddard HINTIAW1.37
! 4.1 12/06/96 Extended to cope with C_grid. D.M. Goddard UDG2F401.4
! HINTIAW1.38
! Code Description: HINTIAW1.39
! Language: FORTRAN 77 + common extensions. HINTIAW1.40
! This code is written to UMDP3 v7 programming standards. HINTIAW1.41
! HINTIAW1.42
! System component covered: S121 HINTIAW1.43
! System Task: S1 HINTIAW1.44
! HINTIAW1.45
! Declarations: HINTIAW1.46
! These are of the form:- HINTIAW1.47
! INTEGER ExampleVariable !Description of variable HINTIAW1.48
! HINTIAW1.49
! Global variables (*CALLed COMDECKs etc...): HINTIAW1.50
*CALL CPHINT
HINTIAW1.51
HINTIAW1.52
! Subroutine arguments HINTIAW1.53
! Scalar arguments with intent(in): HINTIAW1.54
INTEGER ICOF !Second dimension of coefficents ary HINTIAW1.55
INTEGER IDIM !Second dimension of index arrays HINTIAW1.56
INTEGER P_FIELD_OUT !No of P pts on target grid HINTIAW1.57
INTEGER P_ROWS_IN !No of P rows on source grid HINTIAW1.58
INTEGER P_ROWS_OUT !No of P rows on target grid HINTIAW1.59
INTEGER ROW_LENGTH_IN !No of pts per row on source grid HINTIAW1.60
INTEGER ROW_LENGTH_OUT !No of pts per row on target grid HINTIAW1.61
! grid HINTIAW1.62
INTEGER U_FIELD_OUT !No of U pts on target grid HINTIAW1.63
INTEGER U_FIELD_IN !No of U pts on source grid HINTIAW1.64
INTEGER U_ROWS_IN !No of U rows on source grid HINTIAW1.65
INTEGER U_ROWS_OUT !No of U rows on target grid HINTIAW1.66
LOGICAL GLOBAL !T= Global; F= LAM. HINTIAW1.67
LOGICAL GRIB !=T if winds imported on A-grid HINTIAW1.68
HINTIAW1.69
! Array arguments with intent(in): HINTIAW1.70
INTEGER FIXHD_IN(*) !Fixed length header for source grid HINTIAW1.71
INTEGER FIXHD_OUT(*) !Fixed length header for target grid HINTIAW1.72
REAL REALHD_IN(*) !Real constants from source grid HINTIAW1.73
REAL REALHD_OUT(*) !Real constants from target grid HINTIAW1.74
HINTIAW1.75
! Array arguments with intent(Out): HINTIAW1.76
HINTIAW1.77
INTEGER AW_INDEX_TARG_LHS(ROW_LENGTH_OUT+1,IDIM) HINTIAW1.78
!Index of source box overlapping HINTIAW1.79
!lhs of target grid-box HINTIAW1.80
INTEGER AW_INDEX_TARG_TOP(P_ROWS_OUT+1,IDIM) HINTIAW1.81
!Index of source box overlapping HINTIAW1.82
!top of target grid-box HINTIAW1.83
INTEGER BL_INDEX_B_L(P_FIELD_OUT,IDIM) HINTIAW1.84
!Gather index for bottom l.h.c of HINTIAW1.85
!source grid box. 1=P-pts; 2=UV-pts HINTIAW1.86
INTEGER BL_INDEX_B_R(P_FIELD_OUT,IDIM) HINTIAW1.87
!Gather index for bottom r.h.c of HINTIAW1.88
!source grid box. 1=P-pts; 2=UV-pts HINTIAW1.89
INTEGER BL_INDEX_NEAREST(P_FIELD_OUT) HINTIAW1.90
!Gather index for nearest point on HINTIAW1.91
!source grid for each target P-pt HINTIAW1.92
REAL AW_AREA_BOX(IDIM) !area of grid box in sq units of HINTIAW1.93
! source grid HINTIAW1.94
REAL AW_COLAT_T(P_ROWS_OUT+1,IDIM) HINTIAW1.95
!Colatitude of top of target grd-box HINTIAW1.96
! (in units of DELTA_LAT_SRCE) HINTIAW1.97
REAL AW_LONG_L(ROW_LENGTH_OUT+1,IDIM) HINTIAW1.98
!Left longitude of target grid-box HINTIAW1.99
! (in units of DELTA_LONG_SRCE) HINTIAW1.100
REAL WEIGHT_T_R(P_FIELD_OUT,IDIM) ! Weights for bilinear HINTIAW1.105
REAL WEIGHT_B_R(P_FIELD_OUT,IDIM) !\horizontal interpolatn HINTIAW1.106
REAL WEIGHT_T_L(P_FIELD_OUT,IDIM) !/ 1=P-pts; 2=U-pts; HINTIAW1.107
REAL WEIGHT_B_L(P_FIELD_OUT,IDIM) ! 3=V-pts;4=zonal mean HINTIAW1.108
HINTIAW1.109
UDG2F401.5
! INTEGER ErrorStatus ! Error flag (0 = OK) HINTIAW1.111
HINTIAW1.112
! Local parameters: HINTIAW1.113
HINTIAW1.114
! Local scalars: HINTIAW1.115
INTEGER I !\ HINTIAW1.118
INTEGER IJ ! \ Loop HINTIAW1.119
INTEGER J ! /variables HINTIAW1.120
INTEGER K !/ HINTIAW1.121
REAL DELTA_LAT_SOURCE !\ HINTIAW1.125
REAL DELTA_LAT_TARGET ! \Grid spacing HINTIAW1.126
REAL DELTA_LON_SOURCE ! / HINTIAW1.127
REAL DELTA_LON_TARGET !/ HINTIAW1.128
REAL NPOLE_LAT_SOURCE !\ HINTIAW1.137
REAL NPOLE_LAT_TARGET ! \North pole coordinatest HINTIAW1.138
REAL NPOLE_LON_SOURCE ! / HINTIAW1.139
REAL NPOLE_LON_TARGET !/ HINTIAW1.140
REAL START_LAT_SOURCE !\ HINTIAW1.141
REAL START_LAT_TARGET ! \Coordinates of first data point HINTIAW1.142
REAL START_LON_SOURCE ! / HINTIAW1.143
REAL START_LON_TARGET !/ HINTIAW1.144
LOGICAL CYCLIC !T= Data cyclic HINTIAW1.145
UDG2F401.6
! Local dynamic arrays: UDG2F401.7
INTEGER I_GRID_IN(ICOF) UDG2F401.8
INTEGER I_GRID_OUT(ICOF) UDG2F401.9
REAL D_LAT_IN(ICOF) UDG2F401.10
REAL D_LON_IN(ICOF) UDG2F401.11
REAL D_LAT_OUT(ICOF) UDG2F401.12
REAL D_LON_OUT(ICOF) UDG2F401.13
REAL LAMBDA_IN(ROW_LENGTH_IN) UDG2F401.14
! Latitude coords of source p-grid UDG2F401.15
REAL LAMBDA_OUT(P_FIELD_OUT) UDG2F401.16
! Latitude coords of target grid UDG2F401.17
REAL PHI_IN(P_ROWS_IN) UDG2F401.18
! Longitude coords of source p-grid UDG2F401.19
REAL PHI_OUT(P_FIELD_OUT) UDG2F401.20
! Longitude coords of target grid UDG2F401.21
! Function & Subroutine calls: HINTIAW1.173
External H_INT_CO,NEAR_PT,BOX_BND UDG2F401.22
HINTIAW1.175
!- End of header HINTIAW1.176
HINTIAW1.177
! 1: Test if requested horizontal interpolation is sensible HINTIAW1.178
HINTIAW1.179
! 1.1: Hemispheric or LAM -> global not allowed HINTIAW1.180
IF(FIXHD_OUT(ITYPE).EQ.0.AND.FIXHD_IN(ITYPE).GT.0)THEN HINTIAW1.181
WRITE(6,'('' *ERROR* Trying to interpolate from a hemispheric'' HINTIAW1.182
&, '' or LAM to a global domain'')') HINTIAW1.183
CALL ABORT
HINTIAW1.184
END IF HINTIAW1.185
HINTIAW1.186
! 1.2: LAM -> hemispheric not allowed HINTIAW1.187
IF(FIXHD_OUT(ITYPE).LT.3.AND.FIXHD_IN(ITYPE).GT.2)THEN HINTIAW1.188
WRITE(6,'('' *ERROR* Trying to interpolate from a limited area'' HINTIAW1.189
&, '' domain to a global or hemispheric domain'')') HINTIAW1.190
CALL ABORT
HINTIAW1.191
END IF HINTIAW1.192
HINTIAW1.193
! 2: Initialise local constants HINTIAW1.194
HINTIAW1.195
! 2.1: Grid spacing HINTIAW1.196
DELTA_LAT_SOURCE=REALHD_IN(IDLAT) HINTIAW1.197
DELTA_LAT_TARGET=REALHD_OUT(IDLAT) HINTIAW1.198
DELTA_LON_SOURCE=REALHD_IN(IDLON) HINTIAW1.199
DELTA_LON_TARGET=REALHD_OUT(IDLON) HINTIAW1.200
HINTIAW1.201
! 2.2: Coordinates of north pole on grid HINTIAW1.202
NPOLE_LAT_SOURCE=REALHD_IN(IPLAT) HINTIAW1.203
NPOLE_LAT_TARGET=REALHD_OUT(IPLAT) HINTIAW1.204
NPOLE_LON_SOURCE=REALHD_IN(IPLON) HINTIAW1.205
NPOLE_LON_TARGET=REALHD_OUT(IPLON) HINTIAW1.206
HINTIAW1.207
! 2.3: Coordinates of top left hand p-point on grid HINTIAW1.208
START_LAT_SOURCE=REALHD_IN(ISLAT) HINTIAW1.209
START_LAT_TARGET=REALHD_OUT(ISLAT) HINTIAW1.210
START_LON_SOURCE=REALHD_IN(ISLON) HINTIAW1.211
START_LON_TARGET=REALHD_OUT(ISLON) HINTIAW1.212
HINTIAW1.213
! 2.4: Logical to indicate if input data cyclic UDG2F401.23
CYCLIC=FIXHD_IN(ITYPE).LT.3 UDG2F401.24
UDG2F401.25
! 2.5: Initialise I_GRID_IN and IGRID_OUT to 1 ie p-grid UDG2F401.26
I_GRID_IN(1)=1 UDG2F401.27
I_GRID_IN(2)=1 UDG2F401.28
I_GRID_OUT(1)=1 UDG2F401.29
I_GRID_OUT(2)=1 UDG2F401.30
UDG2F401.31
! 3: Weights and indices for P points: UDG2F401.32
UDG2F401.33
! 3.1: If source or target grids have different poles UDG2F401.34
! abort with error message UDG2F401.35
HINTIAW1.255
IF(NPOLE_LAT_SOURCE.NE.NPOLE_LAT_TARGET.AND. HINTIAW1.256
& NPOLE_LON_SOURCE.NE.NPOLE_LON_TARGET)THEN HINTIAW1.257
HINTIAW1.258
WRITE(6,*) 'Source and target grids have different poles' HINTIAW1.259
WRITE(6,*) 'Reconfigure onto a grid with the same pole as' HINTIAW1.260
&, 'target grid' HINTIAW1.261
WRITE(6,*) 'before attempting area weighted interpolation' HINTIAW1.262
HINTIAW1.263
CALL ABORT
HINTIAW1.264
ENDIF HINTIAW1.265
HINTIAW1.266
! 3.2: Calculate area weighted indices for UDG2F401.36
! interpolating from the source grid onto the target grid HINTIAW1.268
*IF DEF,TIMER HINTIAW1.269
CALL TIMER
('BOXBND ',3) HINTIAW1.270
*ENDIF HINTIAW1.271
CALL BOX_BND
(AW_INDEX_TARG_LHS(1,1),AW_LONG_L(1,1) HINTIAW1.272
&, AW_INDEX_TARG_TOP(1,1),AW_COLAT_T(1,1) HINTIAW1.273
&, AW_AREA_BOX(1) HINTIAW1.274
&, ROW_LENGTH_OUT,P_ROWS_OUT HINTIAW1.275
&, ROW_LENGTH_IN,P_ROWS_IN HINTIAW1.276
&, DELTA_LON_TARGET,DELTA_LAT_TARGET HINTIAW1.277
&, START_LON_TARGET,START_LAT_TARGET HINTIAW1.278
&, DELTA_LON_SOURCE,DELTA_LAT_SOURCE HINTIAW1.279
&, START_LON_SOURCE,START_LAT_SOURCE HINTIAW1.280
&, I_GRID_OUT(1),I_GRID_IN(1),GLOBAL) UDG2F401.37
HINTIAW1.282
*IF DEF,TIMER HINTIAW1.283
CALL TIMER
('BOXBND ',4) HINTIAW1.284
*ENDIF HINTIAW1.285
HINTIAW1.286
! 4: Weights and indices for U and V points: UDG2F401.38
UDG2F401.39
! 4.1: Calculate offsets for source winds UDG2F401.40
IF(GRIB) THEN UDG2F401.41
UDG2F401.42
! 4.1.1: Source winds on A grid UDG2F401.43
D_LAT_IN(1)=0.0 UDG2F401.44
D_LON_IN(1)=0.0 UDG2F401.45
D_LAT_IN(2)=0.0 UDG2F401.46
D_LON_IN(2)=0.0 UDG2F401.47
UDG2F401.48
ELSEIF(FIXHD_IN(ISTAG).EQ.3)THEN UDG2F401.49
UDG2F401.50
! 4.1.2: Source winds on C grid UDG2F401.51
D_LON_IN(1)=0.5 UDG2F401.52
D_LAT_IN(1)=0.0 UDG2F401.53
D_LON_IN(2)=0.0 UDG2F401.54
D_LAT_IN(2)=0.5 UDG2F401.55
I_GRID_IN(1)=1 UDG2F401.56
I_GRID_IN(2)=2 UDG2F401.57
UDG2F401.58
ELSE UDG2F401.59
UDG2F401.60
! 4.1.3: Source winds on B grid UDG2F401.61
D_LAT_IN(1)=0.5 UDG2F401.62
D_LON_IN(1)=0.5 UDG2F401.63
D_LAT_IN(2)=0.5 UDG2F401.64
D_LON_IN(2)=0.5 UDG2F401.65
I_GRID_IN(1)=2 UDG2F401.66
I_GRID_IN(2)=2 UDG2F401.67
END IF UDG2F401.68
UDG2F401.69
! 4.2: Calculate offsets for target winds UDG2F401.70
UDG2F401.71
IF(FIXHD_OUT(ISTAG).EQ.3)THEN UDG2F401.72
UDG2F401.73
! 4.2.1: Target winds on C grid UDG2F401.74
D_LON_OUT(1)=0.5 UDG2F401.75
D_LAT_OUT(1)=0.0 UDG2F401.76
D_LON_OUT(2)=0.0 UDG2F401.77
D_LAT_OUT(2)=0.5 UDG2F401.78
I_GRID_OUT(1)=1 UDG2F401.79
I_GRID_OUT(2)=2 UDG2F401.80
UDG2F401.81
ELSE UDG2F401.82
UDG2F401.83
! 4.2.2: Target winds on B grid UDG2F401.84
D_LAT_OUT(1)=0.5 UDG2F401.85
D_LON_OUT(1)=0.5 UDG2F401.86
D_LAT_OUT(2)=0.5 UDG2F401.87
D_LON_OUT(2)=0.5 UDG2F401.88
I_GRID_OUT(1)=2 UDG2F401.89
I_GRID_OUT(2)=2 UDG2F401.90
UDG2F401.91
ENDIF UDG2F401.92
UDG2F401.93
! Loop over u, then v UDG2F401.94
DO K=1,2 UDG2F401.95
UDG2F401.96
! 4.3: Calculate area weighted indices for UDG2F401.97
UDG2F401.98
! interpolating from the source grid onto the target grid HINTIAW1.394
HINTIAW1.395
! One less row in v for C-grid UDG2F401.99
IF(K.EQ.2.AND.FIXHD_OUT(ISTAG).EQ.3)THEN UDG2F401.100
U_ROWS_OUT=U_ROWS_OUT-1 UDG2F401.101
ENDIF UDG2F401.102
UDG2F401.103
*IF DEF,TIMER HINTIAW1.396
CALL TIMER
('BOXBND ',3) HINTIAW1.397
*ENDIF HINTIAW1.398
CALL BOX_BND
(AW_INDEX_TARG_LHS(1,K+1),AW_LONG_L(1,K+1) HINTIAW1.399
&, AW_INDEX_TARG_TOP(1,K+1),AW_COLAT_T(1,K+1) HINTIAW1.400
&, AW_AREA_BOX(K+1) HINTIAW1.401
&, ROW_LENGTH_OUT,U_ROWS_OUT HINTIAW1.402
&, ROW_LENGTH_IN,U_ROWS_IN HINTIAW1.403
&, DELTA_LON_TARGET,DELTA_LAT_TARGET HINTIAW1.404
&, START_LON_TARGET+D_LON_OUT(K)*DELTA_LON_TARGET UDG2F401.104
&, START_LAT_TARGET-D_LAT_OUT(K)*DELTA_LAT_TARGET UDG2F401.105
&, DELTA_LON_SOURCE,DELTA_LAT_SOURCE HINTIAW1.406
&, START_LON_SOURCE+D_LON_IN(K)*DELTA_LON_SOURCE UDG2F401.106
&, START_LAT_SOURCE-D_LAT_IN(K)*DELTA_LAT_SOURCE UDG2F401.107
&, I_GRID_OUT(K),I_GRID_IN(K),GLOBAL) UDG2F401.108
HINTIAW1.409
*IF DEF,TIMER HINTIAW1.410
CALL TIMER
('BOXBND ',4) HINTIAW1.411
*ENDIF HINTIAW1.412
HINTIAW1.413
! Reset U_ROWS_OUT UDG2F401.109
IF(K.EQ.2.AND.FIXHD_OUT(ISTAG).EQ.3)THEN UDG2F401.110
U_ROWS_OUT=U_ROWS_OUT+1 UDG2F401.111
ENDIF UDG2F401.112
UDG2F401.113
END DO HINTIAW1.414
HINTIAW1.415
! 5: Weights and indices for zonal mean P points: HINTIAW1.416
HINTIAW1.417
! 5.1: Reset I_GRID_IN and I_GRID_OUT for p grid UDG2F401.114
I_GRID_IN(1)=1 UDG2F401.115
I_GRID_OUT(1)=1 UDG2F401.116
! 5.2: Calculate area weighted indices for UDG2F401.117
! interpolating from the source grid onto the target grid HINTIAW1.432
*IF DEF,TIMER HINTIAW1.433
CALL TIMER
('BOXBND ',3) HINTIAW1.434
*ENDIF HINTIAW1.435
CALL BOX_BND
(AW_INDEX_TARG_LHS(1,4),AW_LONG_L(1,4) HINTIAW1.436
&, AW_INDEX_TARG_TOP(1,4),AW_COLAT_T(1,4) HINTIAW1.437
&, AW_AREA_BOX(4) HINTIAW1.438
&, 1,P_ROWS_OUT HINTIAW1.439
&, 1,P_ROWS_IN HINTIAW1.440
&, DELTA_LON_TARGET,DELTA_LAT_TARGET HINTIAW1.441
&, START_LON_TARGET,START_LAT_TARGET HINTIAW1.442
&, DELTA_LON_SOURCE,DELTA_LAT_SOURCE HINTIAW1.443
&, START_LON_SOURCE,START_LAT_SOURCE HINTIAW1.444
&, I_GRID_OUT(1),I_GRID_IN(1),GLOBAL) UDG2F401.118
HINTIAW1.446
*IF DEF,TIMER HINTIAW1.447
CALL TIMER
('BOXBND ',4) HINTIAW1.448
*ENDIF HINTIAW1.449
HINTIAW1.450
! 6: Weights and indices for Coastal adjustment and Integer fields HINTIAW1.451
HINTIAW1.452
! 6.1: Lat and lon of target grid HINTIAW1.453
IJ=0 HINTIAW1.454
DO J=1,P_ROWS_OUT HINTIAW1.455
DO I=1,ROW_LENGTH_OUT HINTIAW1.456
IJ=IJ+1 HINTIAW1.457
LAMBDA_OUT(IJ)=START_LON_TARGET+DELTA_LON_TARGET*(I-1) HINTIAW1.458
PHI_OUT(IJ)=START_LAT_TARGET-DELTA_LAT_TARGET*(J-1) HINTIAW1.459
END DO HINTIAW1.460
END DO HINTIAW1.461
HINTIAW1.462
! 6.2: Lat and lon of source grid HINTIAW1.463
DO J=1,P_ROWS_IN HINTIAW1.464
PHI_IN(J)=START_LAT_SOURCE-DELTA_LAT_SOURCE*(J-1) HINTIAW1.465
END DO HINTIAW1.466
DO I=1,ROW_LENGTH_IN HINTIAW1.467
LAMBDA_IN(I)=START_LON_SOURCE+DELTA_LON_SOURCE*(I-1) HINTIAW1.468
END DO HINTIAW1.469
HINTIAW1.470
! 6.3: Initialise Indices and weights for Bi-linear interpolation UDG2F401.119
*IF DEF,TIMER HINTIAW1.509
CALL TIMER
('HINTCO1 ',3) HINTIAW1.510
*ENDIF HINTIAW1.511
HINTIAW1.512
CALL H_INT_CO
(BL_INDEX_B_L(1,1),BL_INDEX_B_R(1,1) HINTIAW1.513
&, WEIGHT_T_R(1,1),WEIGHT_B_R(1,1) HINTIAW1.514
&, WEIGHT_T_L(1,1),WEIGHT_B_L(1,1) HINTIAW1.515
&, LAMBDA_IN,PHI_IN,LAMBDA_OUT,PHI_OUT HINTIAW1.516
&, ROW_LENGTH_IN,P_ROWS_IN,P_FIELD_OUT,CYCLIC) HINTIAW1.517
HINTIAW1.518
*IF DEF,TIMER HINTIAW1.519
CALL TIMER
('HINTCO1 ',4) HINTIAW1.520
*ENDIF HINTIAW1.521
HINTIAW1.522
! 6.8: Initialise index of nearest P-points on source grid HINTIAW1.523
CALL NEAR_PT
(BL_INDEX_B_L(1,1),BL_INDEX_B_R(1,1) HINTIAW1.524
&, WEIGHT_T_R(1,1),WEIGHT_B_R(1,1) HINTIAW1.525
&, WEIGHT_T_L(1,1),WEIGHT_B_L(1,1) HINTIAW1.526
&, P_FIELD_OUT,ROW_LENGTH_IN,BL_INDEX_NEAREST) HINTIAW1.527
HINTIAW1.528
HINTIAW1.529
RETURN HINTIAW1.530
END HINTIAW1.531
*ENDIF HINTIAW1.532