|
SURFEX v7.3
General documentation of Surfex
|
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
1.8.0