source: CPL/oasis3/trunk/src/lib/anaism/src/plsst.f

Last change on this file was 1677, checked in by aclsce, 12 years ago

Imported oasis3 (tag ipslcm5a) from cvs server to svn server (igcmg project).

File size: 2.9 KB
Line 
1       SUBROUTINE plsst (pqta, prho, kto, kwg, knga, pqtb,
2     $                   kngb, kmska, kvma)
3C****
4C               *****************************
5C               * OASIS ROUTINE  -  LEVEL 3 *
6C               * -------------     ------- *
7C               *****************************
8C
9C**** *plsst* -  Perform subgrid interpolation through Anaism method 
10C
11C     Purpose:
12C     -------
13C     Given the weights prho and indices kto for field pqtb, performs
14C     a surface ponderation to generate field pqta on target grid.
15C 
16C     N.B: Nothing is done for the masked points
17C
18C**   Interface:
19C     ---------
20C       *CALL*  *plsst(pqta, prho, kto, kwg, knga, pqtb,
21C                      kngb, kmska, kvma)*
22C
23C     Input:
24C     -----
25C                kmska : mask for target grid (integer 1D)
26C                kvma  : the value of the mask for target grid
27C                knga  : number of points for target grid
28C                prho  : weights for Anaism interpolation (real 2D)
29C                kto   : source grid neighbors adresses (integer 2D)
30C                kwg   : maximum number of overlapped neighbors
31C                pqtb  : field on source grid (real 1D)
32C                kngb  : number of points for source grid
33C
34C     Output:
35C     ------
36C                pqta  : field on target grid (real 1D)
37C
38C     Workspace:
39C     ---------
40C     None
41C
42C     External:
43C     --------
44C     None
45C
46C     References:
47C     ----------
48C     O. Thual, Simple ocean-atmosphere interpolation. 
49C               Part A: The method, EPICOA 0629 (1992)
50C               Part B: Software implementation, EPICOA 0630 (1992)
51C     See also OASIS manual (1995)
52C
53C     History:
54C     -------
55C       Version   Programmer     Date      Description
56C       -------   ----------     ----      ----------- 
57C       1.1       O. Thual       93/04/15  created 
58C       2.0       L. Terray      95/10/01  modified: new structure
59C
60C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61C
62C* ---------------------------- Include files ---------------------------
63C
64      USE mod_kinds_oasis
65      USE mod_unit
66C
67C* ---------------------------- Argument declarations -------------------
68C
69      REAL (kind=ip_realwp_p) pqtb(kngb), pqta(knga), prho(kwg,knga)
70      INTEGER (kind=ip_intwp_p) kmska(knga), kto(kwg,knga)
71C
72C* ---------------------------- Poema verses ----------------------------
73C
74C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
75C
76C*     1. Ponderation
77C         -----------
78C* Loop over all target grid points
79C
80      DO 110 j1 = 1, knga
81C
82C* Nothing happens if it is a continental point
83C
84        IF (kmska(j1) .NE. kvma) THEN
85            zsum = 0.
86C
87C* Ponderation over all overlapped source grid neighbors 
88C
89            DO 120 j2 = 1, kwg
90              zsum = zsum + prho(j2,j1) * pqtb(kto(j2,j1))
91 120        CONTINUE
92            pqta(j1) = zsum
93        ENDIF
94 110  CONTINUE
95C
96C* End of routine
97C
98      RETURN
99      END
Note: See TracBrowser for help on using the repository browser.