Oasis3 4.0.2
namsst.f
Go to the documentation of this file.
00001       SUBROUTINE namsst (pflda, kmska, kvmska, kngxa, kngya,
00002      $                   prbtoa, kbtoa, kwbtoa,
00003      $                   pfldb, kngxb, kngyb)
00004 C****
00005 C               *****************************
00006 C               * OASIS ROUTINE  -  LEVEL 3 *
00007 C               * -------------     ------- *
00008 C               *****************************
00009 C
00010 C**** *namsst* -  Interpolation  Anaism method 
00011 C
00012 C     Purpose:
00013 C     -------
00014 C     Performs subgrid averaged interpolation
00015 C
00016 C**   Interface:
00017 C     ---------
00018 C       *CALL*  *namsst(pflda, kmska, kvmska, kngxa, kngya,
00019 C                       prbtoa, kbtoa, kwbtoa,
00020 C                       pfldb, kngxb, kngyb)*
00021 C
00022 C     Input:
00023 C     -----
00024 C                kmska  : mask for target grid (integer 2D)
00025 C                kvmska : the value of the mask for target grid
00026 C                kngxa  : number of longitudes for target grid
00027 C                kngya  : number of latitudes for target grid
00028 C                prbtoa : weights for Anaism interpolation (real 2D)
00029 C                kbtoa  : source grid neighbors adresses (integer 2D)
00030 C                kwbtoa : maximum number of overlapped neighbors
00031 C                pfldb  : field on source grid (real 2D)
00032 C                kngxb  : number of longitudes for source grid
00033 C                kngyb  : number of latitudes for source grid
00034 C
00035 C     Output:
00036 C     ------
00037 C                pflda: field on target grid (real 2D)
00038 C
00039 C     Workspace:
00040 C     ---------
00041 C     None
00042 C
00043 C     External:
00044 C     --------
00045 C     plsst
00046 C
00047 C     References:
00048 C     ----------
00049 C     O. Thual, Simple ocean-atmosphere interpolation. 
00050 C               Part A: The method, EPICOA 0629 (1992)
00051 C               Part B: Software implementation, EPICOA 0630 (1992)
00052 C     See also OASIS manual (1995)
00053 C
00054 C     History:
00055 C     -------
00056 C       Version   Programmer     Date      Description
00057 C       -------   ----------     ----      ----------- 
00058 C       1.1       O. Thual       93/04/15  created 
00059 C       2.0       L. Terray      95/10/01  modified: new structure
00060 C       2.3       S. Valcke      99/04/30  added: printing levels
00061 C
00062 C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00063 C
00064 C* ---------------------------- Include files ---------------------------
00065 C
00066       USE mod_unit
00067       USE mod_printing
00068 C
00069 C* ---------------------------- Argument declarations -------------------
00070 C     
00071       REAL (kind=ip_realwp_p) pflda(kngxa,kngya), pfldb(kngxb,kngyb)
00072       REAL (kind=ip_realwp_p) prbtoa(kwbtoa,kngxb*kngyb)
00073       INTEGER (kind=ip_intwp_p) kmska(kngxa,kngya), 
00074      $    kbtoa(kwbtoa,kngxb*kngyb)
00075 C
00076 C* ---------------------------- Poema verses ----------------------------
00077 C
00078 C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00079 C
00080 C*    1. Initialization
00081 C        --------------
00082 C
00083       IF (nlogprt .GE. 2) THEN
00084           WRITE(UNIT = nulou,FMT = *) ' '
00085           WRITE(UNIT = nulou,FMT = *) ' '
00086           WRITE(UNIT = nulou,FMT = *) 
00087      $    '           ROUTINE namsst  -  Level 3'
00088           WRITE(UNIT = nulou,FMT = *) 
00089      $    '           **************     *******'
00090           WRITE(UNIT = nulou,FMT = *) ' '
00091           WRITE(UNIT = nulou,FMT = *) 
00092      $    ' Perform ANAIS-MESH interpolation'
00093           WRITE(UNIT = nulou,FMT = *) ' '
00094           WRITE(UNIT = nulou,FMT = *) ' '
00095           CALL FLUSH(nulou)
00096       ENDIF
00097       inga = kngxa *kngya
00098       ingb = kngxb *kngyb
00099 C
00100 C
00101 C*    2. Call interpolator
00102 C        -----------------
00103 C
00104       CALL plsst (pflda, prbtoa, kbtoa, kwbtoa, inga, pfldb,
00105      $            ingb, kmska, kvmska)
00106 C
00107 C
00108 C*    3. End of routine
00109 C        --------------
00110 C
00111       IF (nlogprt .GE. 2) THEN
00112           WRITE (UNIT = nulou,FMT = *) ' '
00113           WRITE (UNIT = nulou,FMT = *) 
00114      $    '          --------- End of ROUTINE namsst ---------'
00115           CALL FLUSH(nulou)
00116       ENDIF
00117       RETURN
00118       END
 All Data Structures Namespaces Files Functions Variables Defines