SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
get_mesh_dim.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE get_mesh_dim(HGRID,KGRID_PAR,KL,PGRID_PAR,PDX,PDY,PMESHSIZE)
7 ! ##############################################################
8 !
9 !!**** *GET_MESH_DIM* get the grid mesh dimensions
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !! METHOD
15 !! ------
16 !!
17 !! REFERENCE
18 !! ---------
19 !!
20 !! AUTHOR
21 !! ------
22 !!
23 !! V. Masson Meteo-France
24 !!
25 !! MODIFICATION
26 !! ------------
27 !!
28 !! Original 03/2004
29 !! P. Samuelsson SMHI 10/2014 Rotated lonlat
30 !!
31 !----------------------------------------------------------------------------
32 !
33 !* 0. DECLARATION
34 ! -----------
35 !
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 USE modi_get_mesh_dim_conf_proj
41 USE modi_get_mesh_dim_gauss
42 USE modi_get_mesh_dim_ign
43 USE modi_get_mesh_dim_lonlat_reg
44 USE modi_get_mesh_dim_lonlatval
45 USE modi_get_mesh_dim_lonlat_rot
46 IMPLICIT NONE
47 !
48 !* 0.1 Declaration of arguments
49 ! ------------------------
50 !
51  CHARACTER(LEN=10), INTENT(IN) :: hgrid ! grid type
52 INTEGER, INTENT(IN) :: kgrid_par ! size of PGRID_PAR
53 INTEGER, INTENT(IN) :: kl ! number of points
54 REAL, DIMENSION(KGRID_PAR), INTENT(IN) :: pgrid_par ! grid parameters
55 REAL, DIMENSION(KL), INTENT(OUT) :: pdx ! dimension in x dir. (meters)
56 REAL, DIMENSION(KL), INTENT(OUT) :: pdy ! dimension in y dir. (meters)
57 REAL, DIMENSION(KL), INTENT(IN) :: pmeshsize ! mesh size (m2)
58 REAL(KIND=JPRB) :: zhook_handle
59 !
60 !* 0.2 Declaration of other local variables
61 ! ------------------------------------
62 !
63 !----------------------------------------------------------------------------
64 !
65 IF (lhook) CALL dr_hook('GET_MESH_DIM',0,zhook_handle)
66 SELECT CASE (hgrid)
67 !
68  CASE("CONF PROJ ")
69  CALL get_mesh_dim_conf_proj(kgrid_par,kl,pgrid_par,pdx,pdy)
70 
71  CASE("LONLAT REG")
72  CALL get_mesh_dim_lonlat_reg(kgrid_par,kl,pgrid_par,pdx,pdy)
73 
74  CASE("GAUSS ")
75  CALL get_mesh_dim_gauss(kgrid_par,kl,pgrid_par,pmeshsize,pdx,pdy)
76 
77  CASE("IGN ")
78  CALL get_mesh_dim_ign(kgrid_par,kl,pgrid_par,pdx,pdy)
79 
80  CASE("LONLATVAL ")
81  CALL get_mesh_dim_lonlatval(kgrid_par,kl,pgrid_par,pdx,pdy)
82 
83  CASE("LONLAT ROT")
84  CALL get_mesh_dim_lonlat_rot(kgrid_par,kl,pgrid_par,pdx,pdy)
85 
86  CASE("NONE ")
87  pdx(:) = sqrt(pmeshsize)
88  pdy(:) = sqrt(pmeshsize)
89 
90 END SELECT
91 IF (lhook) CALL dr_hook('GET_MESH_DIM',1,zhook_handle)
92 !
93 !-------------------------------------------------------------------------------
94 !
95 END SUBROUTINE get_mesh_dim
subroutine get_mesh_dim_gauss(KGRID_PAR, KL, PGRID_PAR, PMESHSIZE, PDX, PDY)
subroutine get_mesh_dim_lonlat_rot(KGRID_PAR, KL, PGRID_PAR, PDX, PDY)
subroutine get_mesh_dim_ign(KGRID_PAR, KL, PGRID_PAR, PDX, PDY)
subroutine get_mesh_dim(HGRID, KGRID_PAR, KL, PGRID_PAR, PDX, PDY, PMESHSIZE)
Definition: get_mesh_dim.F90:6
subroutine get_mesh_dim_lonlat_reg(KGRID_PAR, KL, PGRID_PAR, PDX, PDY)
subroutine get_mesh_dim_conf_proj(KGRID_PAR, KL, PGRID_PAR, PDX, PDY)
subroutine get_mesh_dim_lonlatval(KGRID_PAR, KL, PGRID_PAR, PDX, PDY)