SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE GET_NEAR_MESHES(HGRID,KGRID_PAR,KL,PGRID_PAR,KNEAR_NBR,KNEAR) 00003 ! ############################################################## 00004 ! 00005 !!**** *GET_NEAR_MESHES* get the near grid mesh indices 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! METHOD 00011 !! ------ 00012 !! 00013 !! REFERENCE 00014 !! --------- 00015 !! 00016 !! AUTHOR 00017 !! ------ 00018 !! 00019 !! V. Masson Meteo-France 00020 !! 00021 !! MODIFICATION 00022 !! ------------ 00023 !! 00024 !! Original 03/2004 00025 !! 10/2007 IGN Grids 00026 !! 00027 !---------------------------------------------------------------------------- 00028 ! 00029 !* 0. DECLARATION 00030 ! ----------- 00031 ! 00032 ! 00033 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00034 USE PARKIND1 ,ONLY : JPRB 00035 ! 00036 USE MODI_GET_NEAR_MESHES_CARTESIAN 00037 USE MODI_GET_NEAR_MESHES_CONF_PROJ 00038 USE MODI_GET_NEAR_MESHES_GAUSS 00039 USE MODI_GET_NEAR_MESHES_IGN 00040 USE MODI_GET_NEAR_MESHES_LONLAT_REG 00041 USE MODI_GET_NEAR_MESHES_LONLATVAL 00042 IMPLICIT NONE 00043 ! 00044 !* 0.1 Declaration of arguments 00045 ! ------------------------ 00046 ! 00047 CHARACTER(LEN=10), INTENT(IN) :: HGRID ! grid type 00048 INTEGER, INTENT(IN) :: KGRID_PAR ! size of PGRID_PAR 00049 INTEGER, INTENT(IN) :: KL ! number of points 00050 INTEGER, INTENT(IN) :: KNEAR_NBR ! number of nearest points wanted 00051 REAL, DIMENSION(KGRID_PAR), INTENT(IN) :: PGRID_PAR ! grid parameters 00052 INTEGER, DIMENSION(:,:),POINTER :: KNEAR ! near mesh indices 00053 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00054 ! 00055 !* 0.2 Declaration of other local variables 00056 ! ------------------------------------ 00057 ! 00058 !---------------------------------------------------------------------------- 00059 ! 00060 IF (LHOOK) CALL DR_HOOK('GET_NEAR_MESHES',0,ZHOOK_HANDLE) 00061 SELECT CASE (HGRID) 00062 ! 00063 CASE("CONF PROJ ") 00064 CALL GET_NEAR_MESHES_CONF_PROJ(KGRID_PAR,KL,PGRID_PAR,KNEAR_NBR,KNEAR) 00065 00066 CASE("CARTESIAN ") 00067 CALL GET_NEAR_MESHES_CARTESIAN(KGRID_PAR,KL,PGRID_PAR,KNEAR_NBR,KNEAR) 00068 00069 CASE("LONLAT REG") 00070 CALL GET_NEAR_MESHES_LONLAT_REG(KGRID_PAR,KL,PGRID_PAR,KNEAR_NBR,KNEAR) 00071 00072 CASE("GAUSS ") 00073 CALL GET_NEAR_MESHES_GAUSS(KGRID_PAR,KL,PGRID_PAR,KNEAR_NBR,KNEAR) 00074 00075 CASE("IGN ") 00076 CALL GET_NEAR_MESHES_IGN(KGRID_PAR,KL,PGRID_PAR,KNEAR_NBR,KNEAR) 00077 00078 CASE("LONLATVAL ") 00079 CALL GET_NEAR_MESHES_LONLATVAL(KGRID_PAR,KL,PGRID_PAR,KNEAR_NBR,KNEAR) 00080 00081 CASE("NONE ") 00082 KNEAR(:,:) = 0 00083 00084 END SELECT 00085 IF (LHOOK) CALL DR_HOOK('GET_NEAR_MESHES',1,ZHOOK_HANDLE) 00086 ! 00087 !------------------------------------------------------------------------------- 00088 ! 00089 END SUBROUTINE GET_NEAR_MESHES