*IF DEF,C92_1A TINT1A.2 C ******************************COPYRIGHT****************************** GTS2F400.10423 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.10424 C GTS2F400.10425 C Use, duplication or disclosure of this code is subject to the GTS2F400.10426 C restrictions as set forth in the contract. GTS2F400.10427 C GTS2F400.10428 C Meteorological Office GTS2F400.10429 C London Road GTS2F400.10430 C BRACKNELL GTS2F400.10431 C Berkshire UK GTS2F400.10432 C RG12 2SZ GTS2F400.10433 C GTS2F400.10434 C If no contract has been raised with this copy of the code, the use, GTS2F400.10435 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.10436 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.10437 C Modelling at the above address. GTS2F400.10438 C ******************************COPYRIGHT****************************** GTS2F400.10439 C GTS2F400.10440 CLL SUBROUTINE T_INT:-------------------------------------------------- TINT1A.3 CLL TINT1A.4 CLL Purpose: TINT1A.5 CLL Carries out linear interpolation in time between two fields. TINT1A.6 CLL If the missing data indicator is present at one of the TINT1A.7 CLL times, the value at the other time is used. TINT1A.8 CLL TINT1A.9 CLL Written by A. Dickinson 30/03/90 TINT1A.10 CLL TINT1A.11 CLL Model Modification history from model version 3.0: TINT1A.12 CLL version date TINT1A.13 CLL TINT1A.14 CLL Programming standard: TINT1A.15 CLL Unified Model Documentation Paper No 3 TINT1A.16 CLL Version No 1 15/1/90 TINT1A.17 CLL TINT1A.18 CLL System component:S190 TINT1A.19 CLL TINT1A.20 CLL System task: S1 TINT1A.21 CLL TINT1A.22 CLL Documentation: TINT1A.23 CLL The interpolation formulae are described in TINT1A.24 CLL unified model on-line documentation paper S1. TINT1A.25 CLL TINT1A.26 CLL ------------------------------------------------------------------- TINT1A.27 C*L Arguments:--------------------------------------------------------- TINT1A.28 TINT1A.29SUBROUTINE T_INT(DATA_T1,T1,DATA_T2,T2,DATA_T3,T3,POINTS) 6TINT1A.30 TINT1A.31 IMPLICIT NONE TINT1A.32 TINT1A.33 INTEGER TINT1A.34 * POINTS !IN No of points to be processed TINT1A.35 TINT1A.36 REAL TINT1A.37 * DATA_T1(POINTS) !IN Data at T1 TINT1A.38 *,DATA_T2(POINTS) !IN Data at T2 TINT1A.39 *,DATA_T3(POINTS) !OUT Data at T3 TINT1A.40 *,T1 !IN Time of first data field TINT1A.41 *,T2 !IN Time of second data field TINT1A.42 *,T3 !IN Time at which new field is required T1<=T3<=T2 TINT1A.43 TINT1A.44 TINT1A.45 C Local arrays:--------------------------------------------------------- TINT1A.46 C None TINT1A.47 C ---------------------------------------------------------------------- TINT1A.48 C*L External subroutines called:---------------------------------------- TINT1A.49 C None TINT1A.50 C*---------------------------------------------------------------------- TINT1A.51 C Local variables:------------------------------------------------------ TINT1A.52 REAL TINT1A.53 * ALPHA !Fractional time TINT1A.54 TINT1A.55 INTEGER TINT1A.56 * I !Loop index TINT1A.57 C ---------------------------------------------------------------------- TINT1A.58 *CALL C_MDI
TINT1A.59 TINT1A.60 TINT1A.61 ALPHA=(T3-T1)/(T2-T1) TINT1A.62 DO 100 I=1,POINTS TINT1A.63 DATA_T3(I)=DATA_T2(I)*ALPHA+DATA_T1(I)*(1-ALPHA) TINT1A.64 IF(DATA_T1(I).EQ.RMDI)DATA_T3(I)=DATA_T2(I) TINT1A.65 IF(DATA_T2(I).EQ.RMDI)DATA_T3(I)=DATA_T1(I) TINT1A.66 100 CONTINUE TINT1A.67 TINT1A.68 RETURN TINT1A.69 END TINT1A.70 TINT1A.71 *ENDIF TINT1A.72