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