SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/get_adjacent_meshes.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE GET_ADJACENT_MESHES(HGRID,KGRID_PAR,KL,PGRID_PAR,KLEFT,KRIGHT,KTOP,KBOTTOM)
00003 !     ##############################################################
00004 !
00005 !!**** *GET_ADJACENT_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 E. Martin IGN Grid
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_ADJ_MES_CART
00037 USE MODI_GET_ADJ_MES_CONF_PROJ
00038 USE MODI_GET_ADJ_MES_GAUSS
00039 USE MODI_GET_ADJ_MES_IGN
00040 USE MODI_GET_ADJ_MES_LONLAT_REG
00041 USE MODI_GET_ADJ_MES_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 REAL,    DIMENSION(KGRID_PAR),   INTENT(IN)    :: PGRID_PAR ! grid parameters
00051 INTEGER, DIMENSION(KL),          INTENT(OUT)   :: KLEFT     ! left   mesh index
00052 INTEGER, DIMENSION(KL),          INTENT(OUT)   :: KRIGHT    ! right  mesh index
00053 INTEGER, DIMENSION(KL),          INTENT(OUT)   :: KTOP      ! top    mesh index
00054 INTEGER, DIMENSION(KL),          INTENT(OUT)   :: KBOTTOM   ! bottom mesh index
00055 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00056 !
00057 !*    0.2    Declaration of other local variables
00058 !            ------------------------------------
00059 !
00060 !----------------------------------------------------------------------------
00061 !
00062 IF (LHOOK) CALL DR_HOOK('GET_ADJACENT_MESHES',0,ZHOOK_HANDLE)
00063 SELECT CASE (HGRID)
00064 !     
00065   CASE("CONF PROJ ")
00066 
00067          CALL GET_ADJ_MES_CONF_PROJ(KGRID_PAR,KL,PGRID_PAR,KLEFT,KRIGHT,KTOP,KBOTTOM)
00068   CASE("CARTESIAN ")
00069          CALL GET_ADJ_MES_CART(KGRID_PAR,KL,PGRID_PAR,KLEFT,KRIGHT,KTOP,KBOTTOM)
00070 
00071   CASE("LONLAT REG")
00072          CALL GET_ADJ_MES_LONLAT_REG(KGRID_PAR,KL,PGRID_PAR,KLEFT,KRIGHT,KTOP,KBOTTOM)
00073 
00074   CASE("GAUSS     ")
00075          CALL GET_ADJ_MES_GAUSS(KGRID_PAR,KL,PGRID_PAR,KLEFT,KRIGHT,KTOP,KBOTTOM)
00076 
00077   CASE("IGN       ")
00078          CALL GET_ADJ_MES_IGN(KGRID_PAR,KL,PGRID_PAR,KLEFT,KRIGHT,KTOP,KBOTTOM)
00079 
00080   CASE("LONLATVAL ")
00081          CALL GET_ADJ_MES_LONLATVAL(KGRID_PAR,KL,PGRID_PAR,KLEFT,KRIGHT,KTOP,KBOTTOM)
00082 
00083   CASE("NONE      ")
00084     KLEFT  (:) = 0
00085     KRIGHT (:) = 0
00086     KTOP   (:) = 0
00087     KBOTTOM(:) = 0
00088 
00089 END SELECT
00090 IF (LHOOK) CALL DR_HOOK('GET_ADJACENT_MESHES',1,ZHOOK_HANDLE)
00091 !
00092 !-------------------------------------------------------------------------------
00093 !
00094 END SUBROUTINE GET_ADJACENT_MESHES