Oasis3 4.0.2
|
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