SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
get_grid_dim_lonlatval.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_lonlatval(KGRID_PAR,PGRID_PAR,ORECT,KDIM1,KDIM2)
7 ! ##############################################################
8 !
9 !!**** *GET_GRID_DIM_LONLAT_REG* 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 !!
30 !----------------------------------------------------------------------------
31 !
32 !* 0. DECLARATION
33 ! -----------
34 !
36 !
37 !
38 USE yomhook ,ONLY : lhook, dr_hook
39 USE parkind1 ,ONLY : jprb
40 !
41 IMPLICIT NONE
42 !
43 !* 0.1 Declaration of arguments
44 ! ------------------------
45 !
46 INTEGER, INTENT(IN) :: kgrid_par ! size of PGRID_PAR
47 REAL, DIMENSION(KGRID_PAR), INTENT(IN) :: pgrid_par ! grid parameters
48 LOGICAL, INTENT(OUT) :: orect ! T if rectangular grid
49 INTEGER, INTENT(OUT) :: kdim1 ! 1st dimension
50 INTEGER, INTENT(OUT) :: kdim2 ! 2nd dimension
51 !
52 !* 0.2 Declaration of other local variables
53 ! ------------------------------------
54 !
55 REAL,DIMENSION(:),ALLOCATABLE :: zx, zy,v0
56 INTEGER:: jx, jy, il
57 REAL(KIND=JPRB) :: zhook_handle
58 !----------------------------------------------------------------------------
59 !
60 IF (lhook) CALL dr_hook('GET_GRID_DIM_LONLATVAL',0,zhook_handle)
61 orect = .true.
62 !
63  CALL get_gridtype_lonlatval(pgrid_par,kl=il)
64 !
65 ALLOCATE(zx(il))
66 ALLOCATE(zy(il))
67 ALLOCATE(v0(il))
68 !
69  CALL get_gridtype_lonlatval(pgrid_par,px=zx,py=zy)
70 !
71 v0(:)=1
72 DO jx=1,il
73  IF (v0(jx)==1) THEN
74  DO jy=1,il
75  IF (zx(jx)==zx(jy) .AND. jx.NE.jy) v0(jy)=0
76  ENDDO
77  ENDIF
78 ENDDO
79 kdim1=sum(v0)
80 !
81 v0(:)=1
82 DO jx=1,il
83  IF (v0(jx)==1) THEN
84  DO jy=1,il
85  IF (zy(jx)==zy(jy) .AND. jx.NE.jy) v0(jy)=0
86  ENDDO
87  ENDIF
88 ENDDO
89 kdim2=sum(v0)
90 !
91 DEALLOCATE(zx)
92 DEALLOCATE(zy)
93 DEALLOCATE(v0)
94 IF (lhook) CALL dr_hook('GET_GRID_DIM_LONLATVAL',1,zhook_handle)
95 !
96 !-------------------------------------------------------------------------------
97 !
98 END SUBROUTINE get_grid_dim_lonlatval
subroutine get_grid_dim_lonlatval(KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM2)
subroutine get_gridtype_lonlatval(PGRID_PAR, KL, PX, PY, PDX, PDY)