SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
get_grid_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_grid_dim(HGRID,KGRID_PAR,PGRID_PAR,ORECT,KDIM1,KDIM2)
7 ! ##############################################################
8 !
9 !!**** *GET_GRID_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 !! 07/2011 add IGN grid (B. Decharme)
30 !! P. Samuelsson SMHI 10/2014 Rotated lonlat
31 !----------------------------------------------------------------------------
32 !
33 !* 0. DECLARATION
34 ! -----------
35 !
36 USE modi_get_grid_dim_conf_proj
37 USE modi_get_grid_dim_cartesian
38 USE modi_get_grid_dim_lonlat_reg
39 USE modi_get_grid_dim_gauss
40 USE modi_get_grid_dim_lonlatval
41 USE modi_get_grid_dim_ign
42 USE modi_get_grid_dim_lonlat_rot
43 !
44 USE yomhook ,ONLY : lhook, dr_hook
45 USE parkind1 ,ONLY : jprb
46 !
47 IMPLICIT NONE
48 !
49 !* 0.1 Declaration of arguments
50 ! ------------------------
51 !
52  CHARACTER(LEN=10), INTENT(IN) :: hgrid ! grid type
53 INTEGER, INTENT(IN) :: kgrid_par ! size of PGRID_PAR
54 REAL, DIMENSION(KGRID_PAR), INTENT(IN) :: pgrid_par ! grid parameters
55 LOGICAL, INTENT(OUT) :: orect ! T if rectangular grid
56 INTEGER, INTENT(OUT) :: kdim1 ! 1st dimension
57 INTEGER, INTENT(OUT) :: kdim2 ! 2nd dimension
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_GRID_DIM',0,zhook_handle)
66 SELECT CASE (hgrid)
67 !
68  CASE("CONF PROJ ")
69  CALL get_grid_dim_conf_proj(kgrid_par,pgrid_par,orect,kdim1,kdim2)
70 
71  CASE("CARTESIAN ")
72  CALL get_grid_dim_cartesian(kgrid_par,pgrid_par,orect,kdim1,kdim2)
73 
74  CASE("LONLAT REG")
75  CALL get_grid_dim_lonlat_reg(kgrid_par,pgrid_par,orect,kdim1,kdim2)
76 
77  CASE("GAUSS ")
78  CALL get_grid_dim_gauss(kgrid_par,pgrid_par,orect,kdim1,kdim2)
79 
80  CASE("LONLATVAL ")
81  CALL get_grid_dim_lonlatval(kgrid_par,pgrid_par,orect,kdim1,kdim2)
82 
83  CASE("IGN ")
84  CALL get_grid_dim_ign(kgrid_par,pgrid_par,orect,kdim1,kdim2)
85 
86  CASE("LONLAT ROT")
87  CALL get_grid_dim_lonlat_rot(kgrid_par,pgrid_par,orect,kdim1,kdim2)
88 
89  CASE("NONE ")
90  orect = .false.
91  kdim1 = 0
92  kdim2 = 0
93 
94 END SELECT
95 IF (lhook) CALL dr_hook('GET_GRID_DIM',1,zhook_handle)
96 !
97 !-------------------------------------------------------------------------------
98 !
99 END SUBROUTINE get_grid_dim
subroutine get_grid_dim_lonlatval(KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM2)
subroutine get_grid_dim_cartesian(KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM2)
subroutine get_grid_dim_lonlat_rot(KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM2)
subroutine get_grid_dim_gauss(KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM2)
subroutine get_grid_dim(HGRID, KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM2)
Definition: get_grid_dim.F90:6
subroutine get_grid_dim_lonlat_reg(KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM2)
subroutine get_grid_dim_conf_proj(KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM2)
subroutine get_grid_dim_ign(KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM2)