SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE READ_LCOVER(HPROGRAM,OCOVER) 00003 ! ################################ 00004 ! 00005 !!**** *READ_LCOVER* - routine to read a file for 00006 !! physiographic data file of model _n 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 !! The purpose of this routine is to initialise the list of covers 00011 !! 00012 !! 00013 !!** METHOD 00014 !! ------ 00015 !! 00016 !! EXTERNAL 00017 !! -------- 00018 !! 00019 !! 00020 !! 00021 !! IMPLICIT ARGUMENTS 00022 !! ------------------ 00023 !! 00024 !! REFERENCE 00025 !! --------- 00026 !! 00027 !! 00028 !! AUTHOR 00029 !! ------ 00030 !! V. Masson *Meteo France* 00031 !! 00032 !! MODIFICATIONS 00033 !! ------------- 00034 !! Original 10/2008 00035 !------------------------------------------------------------------------------- 00036 ! 00037 !* 0. DECLARATIONS 00038 ! ------------ 00039 ! 00040 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER 00041 ! 00042 USE MODI_READ_SURF 00043 USE MODI_OLD_NAME 00044 ! 00045 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00046 USE PARKIND1 ,ONLY : JPRB 00047 ! 00048 IMPLICIT NONE 00049 ! 00050 !* 0.1 Declarations of arguments 00051 ! ------------------------- 00052 ! 00053 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! calling program 00054 LOGICAL, DIMENSION(JPCOVER) :: OCOVER ! list of covers 00055 ! 00056 !* 0.2 Declarations of local variables 00057 ! ------------------------------- 00058 ! 00059 INTEGER :: IRESP ! Error code after redding 00060 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00061 INTEGER :: IVERSION ! version of surfex file being read 00062 LOGICAL, DIMENSION(:), ALLOCATABLE :: GCOVER ! cover list in the file 00063 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00064 !------------------------------------------------------------------------------- 00065 ! 00066 ! 00067 !* ascendant compatibility 00068 IF (LHOOK) CALL DR_HOOK('READ_LCOVER',0,ZHOOK_HANDLE) 00069 YRECFM='VERSION' 00070 CALL READ_SURF(HPROGRAM,YRECFM,IVERSION,IRESP) 00071 IF (IVERSION<=3) THEN 00072 ALLOCATE(GCOVER(255)) 00073 ELSE 00074 ALLOCATE(GCOVER(JPCOVER)) 00075 END IF 00076 CALL OLD_NAME(HPROGRAM,'COVER_LIST ',YRECFM) 00077 CALL READ_SURF(HPROGRAM,YRECFM,GCOVER(:),IRESP,HDIR='-') 00078 ! 00079 OCOVER=.FALSE. 00080 OCOVER(:SIZE(GCOVER))=GCOVER(:) 00081 DEALLOCATE(GCOVER) 00082 IF (LHOOK) CALL DR_HOOK('READ_LCOVER',1,ZHOOK_HANDLE) 00083 ! 00084 !------------------------------------------------------------------------------- 00085 ! 00086 END SUBROUTINE READ_LCOVER