SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/LIB/TOPD/read_slope_file.F90
Go to the documentation of this file.
00001 !-----------------------------------------------------------------
00002 !     #######################     
00003       SUBROUTINE READ_SLOPE_FILE(HPROGRAM,HFILE,HFORM,KNMC,PTANB,PSLOP,PDAREA,PLAMBDA)
00004 !     #######################
00005 !
00006 !!****  *READ_SLOPE_FILE*  
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !     This routine aims at reading topographic files
00011 !!**  METHOD
00012 !!    ------
00013 !
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!    none
00018 !!
00019 !!    IMPLICIT ARGUMENTS
00020 !!    ------------------ 
00021 !!
00022 !!    
00023 !!    
00024 !!
00025 !!      
00026 !!    REFERENCE
00027 !!    ---------
00028 !!
00029 !!    
00030 !!      
00031 !!    AUTHOR
00032 !!    ------
00033 !!
00034 !!      B. Vincendon    * Meteo-France *
00035 !!
00036 !!    MODIFICATIONS
00037 !!    -------------
00038 !!
00039 !!      Original   11/2006
00040 !-------------------------------------------------------------------------------
00041 !
00042 !*       0.     DECLARATIONS
00043 !               ------------
00044 !
00045 USE MODI_GET_LUOUT
00046 USE MODI_OPEN_FILE
00047 USE MODI_CLOSE_FILE
00048 !
00049 USE MODD_TOPODYN, ONLY : NPMAX
00050 USE MODD_SURF_PAR,  ONLY : XUNDEF
00051 !
00052 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00053 USE PARKIND1  ,ONLY : JPRB
00054 !
00055 IMPLICIT NONE
00056 !
00057 !*      0.1    declarations of arguments
00058 !
00059  CHARACTER(LEN=*),  INTENT(IN)  :: HPROGRAM    !
00060  CHARACTER(LEN=*),  INTENT(IN)  :: HFILE       ! File to be read
00061  CHARACTER(LEN=*),  INTENT(IN)  :: HFORM       ! Format of the file to be read
00062 INTEGER,           INTENT(IN)  :: KNMC        ! Number of pixels in the catchment
00063 REAL, DIMENSION(:),  INTENT(OUT)   :: PTANB    ! pixels topographic slope(tan(beta)
00064 REAL, DIMENSION(:),  INTENT(OUT)   :: PSLOP   ! pixels topographic slope/length flow
00065 REAL, DIMENSION(:),  INTENT(OUT)   :: PDAREA  ! drainage area (aire drainee)
00066 REAL, DIMENSION(:),  INTENT(OUT)   :: PLAMBDA ! pure topographic index
00067 !
00068 !*      0.2    declarations of local variables
00069 !
00070 !
00071 INTEGER                   :: JJ ! loop control 
00072 INTEGER                   :: IWRK        ! work variable
00073 INTEGER                   :: IUNIT       ! Unit of the files
00074 INTEGER                   :: ILUOUT      ! Unit of the files
00075 !
00076 REAL                      :: ZWRK        ! work variable
00077 REAL, DIMENSION(KNMC)     :: ZDAREA      ! drainage area (aire drainee)
00078 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00079 !------------------------------------------------------------------------------
00080 IF (LHOOK) CALL DR_HOOK('READ_SLOPE_FILE',0,ZHOOK_HANDLE)
00081 !
00082 !*       0.2    preparing file openning
00083 !               ----------------------
00084  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00085 !
00086  CALL OPEN_FILE(HPROGRAM,IUNIT,HFILE,HFORM,HACTION='READ')
00087 !
00088 READ(IUNIT,*) 
00089 !
00090 DO JJ=1,KNMC
00091   !
00092    READ(IUNIT,*,END=110) IWRK, PTANB(JJ), PSLOP(JJ), ZWRK, PDAREA(JJ)
00093   PLAMBDA(JJ) = LOG(PDAREA(JJ)/PSLOP(JJ))
00094   !
00095 ENDDO
00096 !
00097 110 CALL CLOSE_FILE(HPROGRAM,IUNIT)
00098 !
00099 IF (LHOOK) CALL DR_HOOK('READ_SLOPE_FILE',1,ZHOOK_HANDLE)
00100 !
00101 END SUBROUTINE READ_SLOPE_FILE
00102 
00103 
00104 
00105 
00106 
00107 
00108