|
SURFEX v7.3
General documentation of Surfex
|
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
1.8.0