SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
flag_teb_gardenn.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_garden_n (TGD, TGDO, TGDPE, T, TVG, &
7  kflag)
8 ! ##################################
9 !
10 !!**** *FLAG_TEB_GARDEN_n* - routine to flag ISBA variables where gardens are
11 !! not present
12 !!
13 !!
14 !! PURPOSE
15 !! -------
16 !!
17 !!** METHOD
18 !! ------
19 !!
20 !! EXTERNAL
21 !! --------
22 !!
23 !!
24 !! IMPLICIT ARGUMENTS
25 !! ------------------
26 !!
27 !! REFERENCE
28 !! ---------
29 !!
30 !!
31 !! AUTHOR
32 !! ------
33 !! V. Masson *Meteo France*
34 !!
35 !! MODIFICATIONS
36 !! -------------
37 !! Original 10/2011
38 !!
39 !-------------------------------------------------------------------------------
40 !
41 !* 0. DECLARATIONS
42 ! ------------
43 !
44 !
45 !
49 USE modd_teb_n, ONLY : teb_t
51 !
52 USE modd_co2v_par, ONLY : xanfminit, xcondctmin
53 !
54 USE modd_surf_par, ONLY : xundef
55 !
56 USE modi_flag_gr_snow
57 !
58 USE yomhook ,ONLY : lhook, dr_hook
59 USE parkind1 ,ONLY : jprb
60 !
61 IMPLICIT NONE
62 !
63 !* 0.1 Declarations of arguments
64 ! -------------------------
65 !
66 !
67 TYPE(teb_garden_t), INTENT(INOUT) :: tgd
68 TYPE(teb_garden_options_t), INTENT(INOUT) :: tgdo
69 TYPE(teb_garden_pgd_evol_t), INTENT(INOUT) :: tgdpe
70 TYPE(teb_t), INTENT(INOUT) :: t
71 TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
72 !
73 INTEGER, INTENT(IN) :: kflag ! 1 : to put physical values to run ISBA afterwards
74 ! ! 2 : to flag with XUNDEF value for points wihtout garden
75 !
76 !* 0.2 Declarations of local variables
77 ! -------------------------------
78 !
79 REAL :: zwr, ztg, zwg, zresa, zanfm, zdef
80 INTEGER :: jl1, jl2 ! loop counter on layers
81 REAL(KIND=JPRB) :: zhook_handle
82 !
83 !-------------------------------------------------------------------------------
84 !
85 !
86 !* 1D physical dimension
87 !
88 IF (lhook) CALL dr_hook('FLAG_TEB_GARDEN_N',0,zhook_handle)
89 !
90 zwr = xundef
91 !
92 IF (kflag==1) THEN
93  ztg = 300.
94  zwg = 0.5
95  zresa = 100.
96  zanfm = xanfminit
97  zdef = 0.
98 ELSEIF (kflag==2) THEN
99  ztg = xundef
100  zwg = xundef
101  zresa = xundef
102  zanfm = xundef
103  zdef = xundef
104 ENDIF
105 !
106 !-------------------------------------------------------------------------------
107 !
108  !
109  DO jl1=1,tgdo%NGROUND_LAYER
110  WHERE (t%CUR%XGARDEN(:)==0.)
111  tgd%CUR%XTG (:,jl1) = ztg
112  tgd%CUR%XWG (:,jl1) = zwg
113  tgd%CUR%XWGI(:,jl1) = zdef
114  END WHERE
115  END DO
116  !
117  WHERE (t%CUR%XGARDEN(:)==0.)
118  tgd%CUR%XWR (:) = zwr
119  tgd%CUR%XRESA(:) = zresa
120  END WHERE
121  !
122  IF (tvg%CPHOTO/='NON') THEN
123  !
124  WHERE (t%CUR%XGARDEN(:)==0.)
125  tgd%CUR%XANFM (:) = zanfm
126  tgd%CUR%XAN (:) = zdef
127  tgd%CUR%XANDAY(:) = zdef
128  tgd%CUR%XLE (:) = zdef
129  END WHERE
130  !
131  IF (tvg%CPHOTO=='LAI' .OR. tvg%CPHOTO=='LST' .OR. tvg%CPHOTO=='NIT' .OR. tvg%CPHOTO=='NCB') THEN
132  !
133  WHERE (t%CUR%XGARDEN(:)==0.) tgdpe%CUR%XLAI(:) = zdef
134  !
135  ELSE IF (tvg%CPHOTO=='AGS' .OR. tvg%CPHOTO=='AST') THEN
136  !
137  DO jl1=1,SIZE(tgd%CUR%XBIOMASS,2)
138  WHERE (t%CUR%XGARDEN(:)==0.)
139  tgd%CUR%XBIOMASS (:,jl1) = zdef
140  tgd%CUR%XRESP_BIOMASS(:,jl1) = zdef
141  END WHERE
142  END DO
143  !
144  END IF
145  !
146  ENDIF
147  !
148 !
149 !-------------------------------------------------------------------------------
150 !
151 !* Flag snow characteristics
152 !
153  CALL flag_gr_snow(kflag,t%CUR%XGARDEN(:)==0.,tgd%CUR%TSNOW)
154 !
155 !
156 !* snow-free characteristics
157 !
158 IF (kflag==1) THEN
159  WHERE (t%CUR%XGARDEN==0.) tgd%CUR%XSNOWFREE_ALB = 0.2
160  WHERE (t%CUR%XGARDEN==0.) tgd%CUR%XSNOWFREE_ALB_VEG = 0.2
161  WHERE (t%CUR%XGARDEN==0.) tgd%CUR%XSNOWFREE_ALB_SOIL = 0.2
162 ELSEIF (kflag==2) THEN
163  WHERE (t%CUR%XGARDEN==0.) tgd%CUR%XSNOWFREE_ALB = xundef
164  WHERE (t%CUR%XGARDEN==0.) tgd%CUR%XSNOWFREE_ALB_VEG = xundef
165  WHERE (t%CUR%XGARDEN==0.) tgd%CUR%XSNOWFREE_ALB_SOIL = xundef
166 END IF
167 !
168 !-------------------------------------------------------------------------------
169 !
170 IF (lhook) CALL dr_hook('FLAG_TEB_GARDEN_N',1,zhook_handle)
171 !
172 !-------------------------------------------------------------------------------
173 !
174 END SUBROUTINE flag_teb_garden_n
subroutine flag_teb_garden_n(TGD, TGDO, TGDPE, T, TVG, KFLAG)
subroutine flag_gr_snow(KFLAG, OMASK, TPSNOW)
Definition: flag_gr_snow.F90:6