SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_grid_cartesian.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE PREP_GRID_CARTESIAN(HFILETYPE,HINTERP_TYPE,KNI)
00003 !     ##########################################################################
00004 !
00005 !!****  *PREP_GRID_CARTESIAN* - reads EXTERNALIZED Surface grid.
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!    IMPLICIT ARGUMENTS
00017 !!    ------------------
00018 !!
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!
00027 !!      V. Masson
00028 !!
00029 !!    MODIFICATIONS
00030 !!    -------------
00031 !!      Original   06/2003
00032 !-------------------------------------------------------------------------------
00033 !
00034 !*      0. DECLARATIONS
00035 !          ------------
00036 !
00037 USE MODI_READ_SURF
00038 !
00039 USE MODD_GRID_CARTESIAN, ONLY : XX, XY, NX, NY
00040 !
00041 !
00042 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00043 USE PARKIND1  ,ONLY : JPRB
00044 !
00045 IMPLICIT NONE
00046 !
00047 !* 0.1. Declaration of arguments
00048 !       ------------------------
00049 !
00050  CHARACTER(LEN=6),  INTENT(IN)    :: HFILETYPE    ! file type
00051  CHARACTER(LEN=6),  INTENT(OUT)   :: HINTERP_TYPE ! Grid type
00052 INTEGER,           INTENT(OUT)   :: KNI          ! number of points
00053 !
00054 !* 0.2 Declaration of local variables
00055 !      ------------------------------
00056 !
00057  CHARACTER(LEN=12) :: YRECFM    ! Name of the article to be read
00058 INTEGER           :: IRESP
00059 !
00060 INTEGER           :: JL        ! loop counter
00061 REAL, DIMENSION(:), ALLOCATABLE :: ZW ! work array
00062 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00063 !
00064 !-----------------------------------------------------------------------
00065 !
00066 !*     Grid
00067 !      ----
00068 !
00069 IF (LHOOK) CALL DR_HOOK('PREP_GRID_CARTESIAN',0,ZHOOK_HANDLE)
00070 YRECFM = 'IMAX'
00071  CALL READ_SURF(HFILETYPE,YRECFM,NX,IRESP)
00072 YRECFM = 'JMAX'
00073  CALL READ_SURF(HFILETYPE,YRECFM,NY,IRESP)
00074 !
00075 KNI = NX * NY
00076 !
00077 ALLOCATE(ZW(KNI))
00078 !
00079 IF (ALLOCATED(XX)) DEALLOCATE(XX)
00080 ALLOCATE(XX(NX))
00081 YRECFM = 'XX'
00082  CALL READ_SURF(HFILETYPE,YRECFM,ZW,IRESP,HDIR='A')
00083 XX = ZW(1:NX)
00084 
00085 
00086 IF (ALLOCATED(XY)) DEALLOCATE(XY)
00087 ALLOCATE(XY(NY))
00088 YRECFM = 'YY'
00089  CALL READ_SURF(HFILETYPE,YRECFM,ZW,IRESP,HDIR='A')
00090 DO JL=1,KNI
00091   IF (MOD(JL,NX)==0) XY(JL/NX) = ZW(JL)
00092 END DO
00093 DEALLOCATE(ZW)
00094 !
00095 !-----------------------------------------------------------------------
00096 HINTERP_TYPE = 'BILIN '
00097 IF (LHOOK) CALL DR_HOOK('PREP_GRID_CARTESIAN',1,ZHOOK_HANDLE)
00098 !-----------------------------------------------------------------------
00099 !
00100 END SUBROUTINE PREP_GRID_CARTESIAN