SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/get_near_meshes.F90
Go to the documentation of this file.
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