Beginning of open source history
[MNH-git_open_source-lfs.git] / src / SURFEX / read_lcover.F90
1 !     #########
2       SUBROUTINE READ_LCOVER(HPROGRAM,OCOVER)
3 !     ################################
4 !
5 !!****  *READ_LCOVER* - routine to read a file for
6 !!                         physiographic data file of model _n 
7 !!
8 !!    PURPOSE
9 !!    -------
10 !!       The purpose of this routine is to initialise the list of covers
11 !!
12 !!
13 !!**  METHOD
14 !!    ------
15 !!
16 !!    EXTERNAL
17 !!    --------
18 !!      
19 !!
20 !!
21 !!    IMPLICIT ARGUMENTS
22 !!    ------------------
23 !!
24 !!    REFERENCE
25 !!    ---------
26 !!
27 !!
28 !!    AUTHOR
29 !!    ------
30 !!      V. Masson   *Meteo France*      
31 !!
32 !!    MODIFICATIONS
33 !!    -------------
34 !!      Original    10/2008
35 !-------------------------------------------------------------------------------
36 !
37 !*       0.    DECLARATIONS
38 !              ------------
39 !
40 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER
41 !
42 USE MODI_READ_SURF
43 USE MODI_OLD_NAME
44 !
45 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
46 USE PARKIND1  ,ONLY : JPRB
47 !
48 IMPLICIT NONE
49 !
50 !*       0.1   Declarations of arguments
51 !              -------------------------
52 !
53  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
54 LOGICAL, DIMENSION(JPCOVER)    :: OCOVER   ! list of covers
55 !
56 !*       0.2   Declarations of local variables
57 !              -------------------------------
58 !
59 INTEGER           :: IRESP          ! Error code after redding
60  CHARACTER(LEN=12) :: YRECFM         ! Name of the article to be read
61 INTEGER           :: IVERSION       ! version of surfex file being read
62 LOGICAL, DIMENSION(:), ALLOCATABLE :: GCOVER ! cover list in the file
63 REAL(KIND=JPRB) :: ZHOOK_HANDLE
64 !-------------------------------------------------------------------------------
65 !
66 !
67 !* ascendant compatibility
68 IF (LHOOK) CALL DR_HOOK('READ_LCOVER',0,ZHOOK_HANDLE)
69 YRECFM='VERSION'
70  CALL READ_SURF(HPROGRAM,YRECFM,IVERSION,IRESP)
71 IF (IVERSION<=3) THEN
72   ALLOCATE(GCOVER(255))
73 ELSE
74   ALLOCATE(GCOVER(JPCOVER))
75 END IF
76  CALL OLD_NAME(HPROGRAM,'COVER_LIST      ',YRECFM)
77  CALL READ_SURF(HPROGRAM,YRECFM,GCOVER(:),IRESP,HDIR='-')
78 !
79 OCOVER=.FALSE.
80 OCOVER(:SIZE(GCOVER))=GCOVER(:)
81 DEALLOCATE(GCOVER)
82 IF (LHOOK) CALL DR_HOOK('READ_LCOVER',1,ZHOOK_HANDLE)
83 !
84 !-------------------------------------------------------------------------------
85 !
86 END SUBROUTINE READ_LCOVER