SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/get_grid_dim_lonlatval.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE GET_GRID_DIM_LONLATVAL(KGRID_PAR,PGRID_PAR,ORECT,KDIM1,KDIM2)
00003 !     ##############################################################
00004 !
00005 !!**** *GET_GRID_DIM_LONLAT_REG* 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 USE MODE_GRIDTYPE_LONLATVAL
00032 !
00033 !
00034 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00035 USE PARKIND1  ,ONLY : JPRB
00036 !
00037 IMPLICIT NONE
00038 !
00039 !*    0.1    Declaration of arguments
00040 !            ------------------------
00041 !
00042 INTEGER,                         INTENT(IN)    :: KGRID_PAR ! size of PGRID_PAR
00043 REAL,    DIMENSION(KGRID_PAR),   INTENT(IN)    :: PGRID_PAR ! grid parameters
00044 LOGICAL,                         INTENT(OUT)   :: ORECT     ! T if rectangular grid
00045 INTEGER,                         INTENT(OUT)   :: KDIM1     ! 1st dimension
00046 INTEGER,                         INTENT(OUT)   :: KDIM2     ! 2nd dimension
00047 !
00048 !*    0.2    Declaration of other local variables
00049 !            ------------------------------------
00050 !
00051 REAL,DIMENSION(:),ALLOCATABLE :: ZX, ZY,V0
00052 INTEGER:: JX, JY, IL
00053 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00054 !----------------------------------------------------------------------------
00055 !
00056 IF (LHOOK) CALL DR_HOOK('GET_GRID_DIM_LONLATVAL',0,ZHOOK_HANDLE)
00057 ORECT = .TRUE.
00058 !
00059  CALL GET_GRIDTYPE_LONLATVAL(PGRID_PAR,KL=IL)
00060 !
00061 ALLOCATE(ZX(IL))
00062 ALLOCATE(ZY(IL))
00063 ALLOCATE(V0(IL))
00064 !
00065  CALL GET_GRIDTYPE_LONLATVAL(PGRID_PAR,PX=ZX,PY=ZY)
00066 !
00067 V0(:)=1
00068 DO JX=1,IL
00069   IF (V0(JX)==1) THEN
00070     DO JY=1,IL
00071       IF (ZX(JX)==ZX(JY) .AND. JX.NE.JY) V0(JY)=0
00072     ENDDO
00073   ENDIF
00074 ENDDO
00075 KDIM1=SUM(V0)
00076 !
00077 V0(:)=1
00078 DO JX=1,IL
00079   IF (V0(JX)==1) THEN
00080     DO JY=1,IL
00081       IF (ZY(JX)==ZY(JY) .AND. JX.NE.JY) V0(JY)=0
00082     ENDDO
00083   ENDIF
00084 ENDDO
00085 KDIM2=SUM(V0)
00086 !
00087 DEALLOCATE(ZX)
00088 DEALLOCATE(ZY)
00089 DEALLOCATE(V0)
00090 IF (LHOOK) CALL DR_HOOK('GET_GRID_DIM_LONLATVAL',1,ZHOOK_HANDLE)
00091 !
00092 !-------------------------------------------------------------------------------
00093 !
00094 END SUBROUTINE GET_GRID_DIM_LONLATVAL