Juan 8/12/2016: add management of LEN_HREC in MNH & SURFEX
[MNH-git_open_source-lfs.git] / src / SURFEX / read_pgd_teb_greenroofn.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_PGD_TEB_GREENROOF_n(HPROGRAM,KVERSION)
7 !     #########################################
8 !
9 !!****  *READ_PGD_TEB_GREENROOF_n* - routine to initialise ISBA physiographic variables 
10 !!
11 !!    PURPOSE
12 !!    -------
13 !!
14 !!**  METHOD
15 !!    ------
16 !!
17 !!    EXTERNAL
18 !!    --------
19 !!
20 !!
21 !!    IMPLICIT ARGUMENTS
22 !!    ------------------
23 !!
24 !!    REFERENCE
25 !!    ---------
26 !!     based on read_pgd_teb_gardenn
27 !!
28 !!    AUTHOR
29 !!    ------
30 !!      C. de Munck & A. Lemonsu   *Meteo France*       
31 !!
32 !!    MODIFICATIONS
33 !!    -------------
34 !!      Original    07/2011 
35 !-------------------------------------------------------------------------------
36 !
37 !*       0.    DECLARATIONS
38 !              ------------
39 !
40 USE MODD_TEB_VEG_n,          ONLY : CPEDOTF, CPHOTO, NNBIOMASS
41 USE MODD_TEB_GREENROOF_n,    ONLY : CISBA_GR, CSCOND_GR, CRUNOFF_GR, &
42                                     XRUNOFFB_GR, XWDRAIN_GR,         &
43                                     LPAR_GREENROOF
44 USE MODD_GR_BIOG_GREENROOF_n,ONLY : XISOPOT, XMONOPOT 
45 USE MODD_CH_TEB_n,           ONLY : LCH_BIO_FLUX    
46 USE MODD_TEB_GRID_n,         ONLY : NDIM
47 USE MODD_ISBA_PAR,        ONLY : XOPTIMGRID
48 !
49 USE MODI_READ_SURF
50 USE MODI_READ_PGD_TEB_GREENROOF_PAR_n
51 !
52 !
53 !
54 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
55 USE PARKIND1  ,ONLY : JPRB
56 !
57 USE MODI_GET_TYPE_DIM_n
58 !
59 IMPLICIT NONE
60 !
61 !*       0.1   Declarations of arguments
62 !              -------------------------
63 !
64  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
65 INTEGER,           INTENT(IN)  :: KVERSION ! version of SURFEX of the file being read
66 !
67 !*       0.2   Declarations of local variables
68 !              -------------------------------
69 !
70 INTEGER           :: IRESP          ! Error code after redding
71 !
72  CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be read
73 !
74 !
75 INTEGER           :: JLAYER         ! loop counter on layers ! not used
76 REAL(KIND=JPRB) :: ZHOOK_HANDLE
77 !
78 !-------------------------------------------------------------------------------
79 !
80 !* 1D physical dimension
81 !
82 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GREENROOF_N',0,ZHOOK_HANDLE)
83 YRECFM='SIZE_TOWN'
84  CALL GET_TYPE_DIM_n('TOWN  ',NDIM)
85 !
86 !
87 !*       2.     Initialisation of ISBA options for greenroofs
88 !               ---------------------------------------------
89 !
90 !
91 YRECFM='GR_ISBA'
92  CALL READ_SURF(HPROGRAM,YRECFM,CISBA_GR,IRESP)
93 !
94 YRECFM='GR_SCOND'
95  CALL READ_SURF(HPROGRAM,YRECFM,CSCOND_GR,IRESP)
96 !
97 !*       3.     Physiographic data fields:
98 !               -------------------------
99 !
100 !* orographic runoff coefficient
101 !
102 ALLOCATE(XRUNOFFB_GR(NDIM))
103 YRECFM='GR_RUNOFFB' 
104  CALL READ_SURF(HPROGRAM,YRECFM,XRUNOFFB_GR,IRESP)
105 !
106 !* subgrid drainage coefficient
107 !
108 ALLOCATE(XWDRAIN_GR(NDIM))
109 IF (KVERSION<=6) THEN
110   XWDRAIN_GR = 0.
111 ELSE
112   YRECFM='GR_WDRAIN'
113   CALL READ_SURF(HPROGRAM,YRECFM,XWDRAIN_GR,IRESP)
114 ENDIF
115 !
116 !-------------------------------------------------------------------------------
117 !* biogenic chemical emissions
118 !
119 IF (LCH_BIO_FLUX) THEN
120   ALLOCATE(XISOPOT(NDIM))
121   YRECFM='EMIS_ISOPOT'
122   CALL READ_SURF(HPROGRAM,YRECFM,XISOPOT,IRESP)
123   !
124   ALLOCATE(XMONOPOT(NDIM))
125   YRECFM='EMIS_MONOPOT'
126   CALL READ_SURF(HPROGRAM,YRECFM,XMONOPOT,IRESP)
127 ELSE
128   ALLOCATE(XISOPOT (0))
129   ALLOCATE(XMONOPOT(0))
130 END IF
131 !
132 !-------------------------------------------------------------------------------
133 !
134 !*       4.     Physiographic data fields not to be computed by ecoclimap
135 !               ---------------------------------------------------------
136 !
137 !
138 !LPAR_GREENROOF = .FALSE.
139 !IF (KVERSION>=7) THEN
140 !  YRECFM='PAR_GREENROOF'
141 !  CALL READ_SURF(HPROGRAM,YRECFM,LPAR_GREENROOF,IRESP)
142 !END IF
143 !
144 !IF (LPAR_GREENROOF) CALL READ_PGD_TEB_GREENROOF_PAR_n(HPROGRAM)
145 !
146  CALL READ_PGD_TEB_GREENROOF_PAR_n(HPROGRAM)
147 !
148 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GREENROOF_N',1,ZHOOK_HANDLE)
149 !
150 !
151 !-------------------------------------------------------------------------------
152 !
153 END SUBROUTINE READ_PGD_TEB_GREENROOF_n