SURFEX v7.3
General documentation of Surfex
|
00001 !----------------------------------------------------------------- 00002 ! ####################### 00003 SUBROUTINE READ_TOPD_FILE(HPROGRAM,HFILE,HFORM,KNPT,PTOPD_READ) 00004 ! ####################### 00005 ! 00006 !!**** *READ_TOPD_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) :: KNPT ! Number of points in the catchment 00063 REAL, DIMENSION(:), INTENT(OUT) :: PTOPD_READ ! Topographic parameter read on file 00064 ! 00065 !* 0.2 declarations of local variables 00066 ! 00067 INTEGER :: JJ,JI ! loop control 00068 INTEGER :: IUNIT ! Unit of the files 00069 INTEGER :: ILUOUT ! Unit of the files 00070 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00071 !------------------------------------------------------------------------------- 00072 IF (LHOOK) CALL DR_HOOK('READ_TOPD_FILE',0,ZHOOK_HANDLE) 00073 ! 00074 !* 0.2 preparing file openning 00075 ! ---------------------- 00076 ! 00077 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00078 ! 00079 CALL OPEN_FILE(HPROGRAM,IUNIT,HFILE,HFORM,HACTION='READ') 00080 !PTOPD_READ(:)=XUNDEF 00081 ! 00082 DO JJ=1,13 00083 READ(IUNIT,*) 00084 ENDDO 00085 ! 00086 DO JI=1,KNPT 00087 ! 00088 READ(IUNIT,*,END=110) PTOPD_READ(JI) 00089 ! 00090 IF (PTOPD_READ(JI).LT.0.0) PTOPD_READ(JI) = XUNDEF 00091 ! 00092 ENDDO 00093 ! 00094 110 CALL CLOSE_FILE(HPROGRAM,IUNIT) 00095 ! 00096 IF (LHOOK) CALL DR_HOOK('READ_TOPD_FILE',1,ZHOOK_HANDLE) 00097 ! 00098 END SUBROUTINE READ_TOPD_FILE 00099 00100 00101 00102 00103 00104 00105