Oasis3 4.0.2
nagsst.f
Go to the documentation of this file.
00001       SUBROUTINE nagsst (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**** *nagsst* -  Interpolation  Anais-global  without constraints 
00011 C
00012 C     Purpose:
00013 C     -------
00014 C     Interpolate with a nearest neighbor method
00015 C
00016 C**   Interface:
00017 C     ---------
00018 C       *CALL*  *nagsst(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 Anaisg interpolation (real 2D)
00029 C                kbtoa  : source grid neighbors adresses (integer 2D)
00030 C                kwbtoa : maximum number of nearest 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     qlsst
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_kinds_oasis
00067       USE mod_unit
00068       USE mod_printing
00069 C
00070 C* ---------------------------- Argument declarations -------------------
00071 C     
00072       REAL (kind=ip_realwp_p) pflda(kngxa,kngya), pfldb(kngxb,kngyb)
00073       REAL (kind=ip_realwp_p) prbtoa(kwbtoa,kngxb*kngyb)
00074       INTEGER (kind=ip_intwp_p) kmska(kngxa,kngya), 
00075      $    kbtoa(kwbtoa,kngxb*kngyb)
00076 C
00077 C* ---------------------------- Poema verses ----------------------------
00078 C
00079 C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00080 C
00081 C*    1. Initializations and checkings
00082 C        -----------------------------
00083 C
00084       IF (nlogprt .GE. 2) THEN
00085           WRITE (UNIT = nulou,FMT = *) ' '
00086           WRITE (UNIT = nulou,FMT = *) ' '
00087           WRITE (UNIT = nulou,FMT = *) 
00088      $    '           ROUTINE nagsst  -  Level 3'
00089           WRITE (UNIT = nulou,FMT = *) 
00090      $    '           **************     *******'
00091           WRITE (UNIT = nulou,FMT = *) ' '
00092           WRITE (UNIT = nulou,FMT = *) 
00093      $    ' Does Anais-global interpolation'
00094           WRITE (UNIT = nulou,FMT = *) ' '
00095           WRITE (UNIT = nulou,FMT = *) ' '
00096           CALL FLUSH(nulou)
00097       ENDIF
00098 C
00099 C* Define global dimensions
00100 C
00101       inga = kngxa * kngya
00102       ingb = kngxb * kngyb
00103 C
00104 C
00105 C*    2. Interpolation
00106 C        -------------
00107 C
00108       CALL qlsst (pflda, prbtoa, kbtoa, kwbtoa, inga, pfldb,
00109      $            ingb, kmska, kvmska)
00110 C
00111 C
00112 C*    3. End of routine
00113 C        --------------
00114 C
00115       IF (nlogprt .GE. 2) THEN
00116           WRITE (UNIT = nulou,FMT = *) ' '
00117           WRITE (UNIT = nulou,FMT = *) 
00118      $    '          --------- End of ROUTINE nagsst ---------'
00119           CALL FLUSH (nulou)
00120       ENDIF
00121       RETURN
00122       END
 All Data Structures Namespaces Files Functions Variables Defines