SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE GET_MESH_DIM(HGRID,KGRID_PAR,KL,PGRID_PAR,PDX,PDY,PMESHSIZE) 00003 ! ############################################################## 00004 ! 00005 !!**** *GET_MESH_DIM* get the grid mesh dimensions 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 ! 00032 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00033 USE PARKIND1 ,ONLY : JPRB 00034 ! 00035 USE MODI_GET_MESH_DIM_CONF_PROJ 00036 USE MODI_GET_MESH_DIM_GAUSS 00037 USE MODI_GET_MESH_DIM_IGN 00038 USE MODI_GET_MESH_DIM_LONLAT_REG 00039 USE MODI_GET_MESH_DIM_LONLATVAL 00040 IMPLICIT NONE 00041 ! 00042 !* 0.1 Declaration of arguments 00043 ! ------------------------ 00044 ! 00045 CHARACTER(LEN=10), INTENT(IN) :: HGRID ! grid type 00046 INTEGER, INTENT(IN) :: KGRID_PAR ! size of PGRID_PAR 00047 INTEGER, INTENT(IN) :: KL ! number of points 00048 REAL, DIMENSION(KGRID_PAR), INTENT(IN) :: PGRID_PAR ! grid parameters 00049 REAL, DIMENSION(KL), INTENT(OUT) :: PDX ! dimension in x dir. (meters) 00050 REAL, DIMENSION(KL), INTENT(OUT) :: PDY ! dimension in y dir. (meters) 00051 REAL, DIMENSION(KL), INTENT(IN) :: PMESHSIZE ! mesh size (m2) 00052 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00053 ! 00054 !* 0.2 Declaration of other local variables 00055 ! ------------------------------------ 00056 ! 00057 !---------------------------------------------------------------------------- 00058 ! 00059 IF (LHOOK) CALL DR_HOOK('GET_MESH_DIM',0,ZHOOK_HANDLE) 00060 SELECT CASE (HGRID) 00061 ! 00062 CASE("CONF PROJ ") 00063 CALL GET_MESH_DIM_CONF_PROJ(KGRID_PAR,KL,PGRID_PAR,PDX,PDY) 00064 00065 CASE("LONLAT REG") 00066 CALL GET_MESH_DIM_LONLAT_REG(KGRID_PAR,KL,PGRID_PAR,PDX,PDY) 00067 00068 CASE("GAUSS ") 00069 CALL GET_MESH_DIM_GAUSS(KGRID_PAR,KL,PGRID_PAR,PMESHSIZE,PDX,PDY) 00070 00071 CASE("IGN ") 00072 CALL GET_MESH_DIM_IGN(KGRID_PAR,KL,PGRID_PAR,PDX,PDY) 00073 00074 CASE("LONLATVAL ") 00075 CALL GET_MESH_DIM_LONLATVAL(KGRID_PAR,KL,PGRID_PAR,PDX,PDY) 00076 00077 CASE("NONE ") 00078 PDX(:) = SQRT(PMESHSIZE) 00079 PDY(:) = SQRT(PMESHSIZE) 00080 00081 END SELECT 00082 IF (LHOOK) CALL DR_HOOK('GET_MESH_DIM',1,ZHOOK_HANDLE) 00083 ! 00084 !------------------------------------------------------------------------------- 00085 ! 00086 END SUBROUTINE GET_MESH_DIM