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