SURFEX v8.1
General documentation of Surfex
flag_teb_vegn.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE flag_teb_veg_n (PEK, IO, PMASK, KFLAG)
7 ! ##################################
8 !
9 !!**** *FLAG_TEB_VEG_n* - routine to flag ISBA variables where gardens are
10 !! not present
11 !!
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !!** METHOD
17 !! ------
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !! V. Masson *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 10/2011
37 !!
38 !-------------------------------------------------------------------------------
39 !
40 !* 0. DECLARATIONS
41 ! ------------
42 !
43 !
44 !
45 USE modd_isba_n, ONLY : isba_pe_t
47 !
48 USE modd_co2v_par, ONLY : xanfminit, xcondctmin
49 !
50 USE modd_surf_par, ONLY : xundef
51 !
52 USE modi_flag_gr_snow
53 !
54 USE yomhook ,ONLY : lhook, dr_hook
55 USE parkind1 ,ONLY : jprb
56 !
57 IMPLICIT NONE
58 !
59 !* 0.1 Declarations of arguments
60 ! -------------------------
61 !
62 !
63 TYPE(isba_pe_t), INTENT(INOUT) :: PEK
64 TYPE(isba_options_t), INTENT(INOUT) :: IO
65 REAL, DIMENSION(:), INTENT(IN) :: PMASK
66 !
67 INTEGER, INTENT(IN) :: KFLAG ! 1 : to put physical values to run ISBA afterwards
68 ! ! 2 : to flag with XUNDEF value for points wihtout garden
69 !
70 !* 0.2 Declarations of local variables
71 ! -------------------------------
72 !
73 REAL :: ZWR, ZTG, ZWG, ZRESA, ZANFM, ZDEF
74 INTEGER :: JL1, JL2 ! loop counter on layers
75 REAL(KIND=JPRB) :: ZHOOK_HANDLE
76 !
77 !-------------------------------------------------------------------------------
78 !
79 !
80 !* 1D physical dimension
81 !
82 IF (lhook) CALL dr_hook('FLAG_TEB_VEG_N',0,zhook_handle)
83 !
84 zwr = xundef
85 !
86 IF (kflag==1) THEN
87  ztg = 300.
88  zwg = 0.5
89  zresa = 100.
90  zanfm = xanfminit
91  zdef = 0.
92 ELSEIF (kflag==2) THEN
93  ztg = xundef
94  zwg = xundef
95  zresa = xundef
96  zanfm = xundef
97  zdef = xundef
98 ENDIF
99 !
100 !-------------------------------------------------------------------------------
101 !
102  !
103  DO jl1=1,io%NGROUND_LAYER
104  WHERE (pmask(:)==0.)
105  pek%XTG (:,jl1) = ztg
106  pek%XWG (:,jl1) = zwg
107  pek%XWGI(:,jl1) = zdef
108  END WHERE
109  END DO
110  !
111  WHERE (pmask(:)==0.)
112  pek%XWR (:) = zwr
113  pek%XRESA(:) = zresa
114  END WHERE
115  !
116  IF (io%CPHOTO/='NON') THEN
117  !
118  WHERE (pmask(:)==0.)
119  pek%XANFM (:) = zanfm
120  pek%XAN (:) = zdef
121  pek%XANDAY(:) = zdef
122  pek%XLE (:) = zdef
123  END WHERE
124  !
125  IF (io%CPHOTO=='NIT' .OR. io%CPHOTO=='NCB') THEN
126  !
127  WHERE (pmask(:)==0.) pek%XLAI(:) = zdef
128  !
129  ELSE IF (io%CPHOTO=='AST') THEN
130  !
131  DO jl1=1,SIZE(pek%XBIOMASS,2)
132  WHERE (pmask(:)==0.)
133  pek%XBIOMASS (:,jl1) = zdef
134  pek%XRESP_BIOMASS(:,jl1) = zdef
135  END WHERE
136  END DO
137  !
138  END IF
139  !
140  ENDIF
141  !
142 !
143 !-------------------------------------------------------------------------------
144 !
145 !* Flag snow characteristics
146 !
147  CALL flag_gr_snow(kflag,pmask(:)==0.,pek%TSNOW)
148 !
149 !
150 !* snow-free characteristics
151 !
152 IF (kflag==1) THEN
153  WHERE (pmask(:)==0.)
154  pek%XSNOWFREE_ALB(:) = 0.2
155  pek%XSNOWFREE_ALB_VEG(:) = 0.2
156  pek%XSNOWFREE_ALB_SOIL(:) = 0.2
157  END WHERE
158 ELSEIF (kflag==2) THEN
159  WHERE (pmask==0.)
160  pek%XSNOWFREE_ALB(:) = xundef
161  pek%XSNOWFREE_ALB_VEG(:) = xundef
162  pek%XSNOWFREE_ALB_SOIL(:) = xundef
163  END WHERE
164 END IF
165 !
166 !-------------------------------------------------------------------------------
167 !
168 IF (lhook) CALL dr_hook('FLAG_TEB_VEG_N',1,zhook_handle)
169 !
170 !-------------------------------------------------------------------------------
171 !
172 END SUBROUTINE flag_teb_veg_n
subroutine flag_gr_snow(KFLAG, OMASK, TPSNOW)
Definition: flag_gr_snow.F90:7
subroutine flag_teb_veg_n(PEK, IO, PMASK, KFLAG)
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15