aboutsummaryrefslogtreecommitdiff
path: root/sys/gio/ncarutil/conlib/conlcm.f
blob: 80791d49516fcbd4d154b2c43686a8d51ce5bee5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
FUNCTION CONLCM(X,Y,XD,YD,ZD,NDP,WK,IWK,LOC)
C                                                                               
C +-----------------------------------------------------------------+           
C |                                                                 |           
C |                Copyright (C) 1986 by UCAR                       |           
C |        University Corporation for Atmospheric Research          |           
C |                    All Rights Reserved                          |           
C |                                                                 |           
C |                 NCARGRAPHICS  Version 1.00                      |           
C |                                                                 |           
C +-----------------------------------------------------------------+           
C                                                                               
C                                                                               
C
C  COMPUTE A Z VALUE FOR A GIVEN X,Y VALUE
C  NOTE THAT X,Y MUST BE INSIDE THE CONVEX HULL OF THE INPUT DATA
C  INORDER FOR THIS FUNCTION TO WORK.
C
C  INPUT
C       X-X COORDINATE OF REQUESTED POINT
C       Y-Y COORDINATE OF REQUESTED POINT
C       WK-LIST OF COEFICENTS FOR LINEAR INTERPOLATION  FUNCTIONS
C             LOCATED BY A = WK((TRI-1)*3+1)
C                        B = WK((TRI-2)*3+1)
C                        C = WK((TRI-3)*3+1)
C
C  OUTPUT
C       LOC-TRIANGLE NUMBER OF REQUESTED POINT
C       Z VALUE AS FUNCTION RESULT
C
      DIMENSION WK(1),IWK(1),XD(1),YD(1),ZD(1)
C
      COMMON /CONR10/ NT         ,NL         ,NTNL       ,JWIPT      ,
     1                JWIWL      ,JWIWP      ,JWIPL      ,IPR        ,
     2                ITPV
C
        SAVE
C
C  LOCATE THE TRIANGLE
C
      CALL CONLOC(NDP,XD,YD,NT,IWK(JWIPT),NL,IWK(JWIPL),X,Y,LOC,
     1            IWK(JWIWL),WK)
C
C  IF OUTSIDE CONVEX HULL THEN DON'T COMPUTE A VALUE
C
      IF (LOC.GT.NT) RETURN
C
C  GET THE VECTOR 1 VALUES FOR THE TRIANGLE
C
      IVEC = (LOC-1)*3 + JWIPT
      IV = IWK(IVEC)
      X1 = X - XD(IV)
      Y1 = Y - YD(IV)
      Z1 = ZD(IV)
C
C  COMPUT THE Z VALUE
C
      IPOINT = (LOC-1)*3 + IPR
C
      Z = (WK(IPOINT)*X1+WK(IPOINT+1)*Y1)/WK(IPOINT+2) + Z1
C
      CONLCM = Z
C
      RETURN
      END