SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/get_adj_mes_cart.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE GET_ADJ_MES_CART(KGRID_PAR,KL,PGRID_PAR,KLEFT,KRIGHT,KTOP,KBOTTOM)
00003 !     ##############################################################
00004 !
00005 !!**** *GET_ADJ_MES_CART* 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 !!
00026 !----------------------------------------------------------------------------
00027 !
00028 !*    0.     DECLARATION
00029 !            -----------
00030 !
00031 USE MODE_GRIDTYPE_CARTESIAN
00032 !
00033 !
00034 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00035 USE PARKIND1  ,ONLY : JPRB
00036 !
00037 IMPLICIT NONE
00038 !
00039 !*    0.1    Declaration of arguments
00040 !            ------------------------
00041 !
00042 INTEGER,                         INTENT(IN)    :: KGRID_PAR ! size of PGRID_PAR
00043 INTEGER,                         INTENT(IN)    :: KL        ! number of points
00044 REAL,    DIMENSION(KGRID_PAR),   INTENT(IN)    :: PGRID_PAR ! grid parameters
00045 INTEGER, DIMENSION(KL),          INTENT(OUT)   :: KLEFT     ! left   mesh index
00046 INTEGER, DIMENSION(KL),          INTENT(OUT)   :: KRIGHT    ! right  mesh index
00047 INTEGER, DIMENSION(KL),          INTENT(OUT)   :: KTOP      ! top    mesh index
00048 INTEGER, DIMENSION(KL),          INTENT(OUT)   :: KBOTTOM   ! bottom mesh index
00049 !
00050 !*    0.2    Declaration of other local variables
00051 !            ------------------------------------
00052 !
00053 REAL, DIMENSION(KL) :: ZX, ZY
00054 INTEGER             :: IIMAX, IJMAX
00055 INTEGER             :: JI, JJ
00056 INTEGER             :: JL
00057 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00058 !----------------------------------------------------------------------------
00059 !
00060 IF (LHOOK) CALL DR_HOOK('GET_ADJ_MES_CART',0,ZHOOK_HANDLE)
00061  CALL GET_GRIDTYPE_CARTESIAN(PGRID_PAR,KIMAX=IIMAX,KJMAX=IJMAX,PX=ZX,PY=ZY)
00062 !
00063 KLEFT  (:) = 0
00064 KRIGHT (:) = 0
00065 KTOP   (:) = 0
00066 KBOTTOM(:) = 0
00067 !
00068 IF (IIMAX*IJMAX==KL) THEN
00069   DO JJ=1,IJMAX
00070     DO JI=1,IIMAX
00071       JL = JI + IIMAX * (JJ-1)
00072       IF (JI>1    ) KLEFT  (JL) = JL-1
00073       IF (JI<IIMAX) KRIGHT (JL) = JL+1
00074       IF (JJ>1    ) KBOTTOM(JL) = JL-IIMAX
00075       IF (JJ<IJMAX) KTOP   (JL) = JL+IIMAX
00076     END DO
00077   END DO
00078 END IF
00079 IF (LHOOK) CALL DR_HOOK('GET_ADJ_MES_CART',1,ZHOOK_HANDLE)
00080 !
00081 !-------------------------------------------------------------------------------
00082 !
00083 END SUBROUTINE GET_ADJ_MES_CART