SURFEX v8.1
General documentation of Surfex
laigain.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 laigain(PBSLAI, PEK, PBIOMASS)
7 ! ######################################################################
8 !!**** *LAIGAIN*
9 !!
10 !! PURPOSE
11 !! -------
12 !
13 ! Calculates the time change in LAI due to assimilation
14 ! of CO2. This in turn changes the dry biomass of the canopy.
15 !
16 !!** METHOD
17 !! ------
18 ! Calvet at al (1998)
19 !!
20 !! EXTERNAL
21 !! --------
22 !! none
23 !!
24 !! IMPLICIT ARGUMENTS
25 !! ------------------
26 !!
27 !! MODD_CO2V_PAR
28 !!
29 !! REFERENCE
30 !! ---------
31 !!
32 !! Calvet et al. (1998)
33 !!
34 !! AUTHOR
35 !! ------
36 !!
37 !! A. Boone * Meteo-France *
38 !! (following Belair)
39 !!
40 !! MODIFICATIONS
41 !! -------------
42 !! Original 27/10/97
43 !! V. Masson 01/03/03 daily assimilation.
44 !! P Le Moigne 09/2005 AGS modifs of L. Jarlan
45 !! S Lafont 03/2011 R%XANDAY(:,1) calcul move to lailoss, nitro_decline
46 !-------------------------------------------------------------------------------
47 !
48 !* 0. DECLARATIONS
49 ! ------------
50 !
51 USE modd_isba_n, ONLY : isba_pe_t
52 !
53 USE modd_co2v_par, ONLY : xmc, xmco2, xpcco2
54 !
55 USE yomhook ,ONLY : lhook, dr_hook
56 USE parkind1 ,ONLY : jprb
57 !
58 IMPLICIT NONE
59 !
60 !* 0.1 declarations of arguments
61 !
62 REAL, DIMENSION(:), INTENT(IN) :: PBSLAI
63 !
64 TYPE(isba_pe_t), INTENT(INOUT) :: PEK
65 !
66 REAL,DIMENSION(:),INTENT(INOUT):: PBIOMASS ! total dry canopy biomass (kgDM m-2)
67 !
68 !* 0.2 declarations of local variables
69 !
70 REAL :: ZBMCOEF
71 REAL(KIND=JPRB) :: ZHOOK_HANDLE
72 ! used to compute biomass change (working scalar)
73 !
74 !-----------------------------------------------------------------
75 !
76 IF (lhook) CALL dr_hook('LAIGAIN',0,zhook_handle)
77 !
78 zbmcoef = xmc/(xmco2*xpcco2)
79 !
80 ! Once a day (at midnight), adjust biomass:
81 ! ----------------------------------------
82 !
83 WHERE( (pek%XVEG(:)>0.) )
84 !
85 ! change biomass in time due to assimilation of CO2:
86 ! 2011 :this computation have been move to lailoss and nitro_decline
87 !
88 ! PBIOMASS(:) = PBIOMASS(:) + R%XANDAY(:,1)(:)*ZBMCOEF
89 !
90 ! make sure biomass doesn't fall below minimum threshold:
91 !
92  pbiomass(:) = max(pek%XLAIMIN(:)*pbslai(:),pbiomass(:))
93 !
94 ! change in LAI in time due to biomass changes:
95 !
96  pek%XLAI(:) = pbiomass(:)/pbslai(:)
97 !
98 ! reset to zero the daily net assimilation for next day:
99 !
100  pek%XANDAY(:) = 0.
101 !
102 END WHERE
103 IF (lhook) CALL dr_hook('LAIGAIN',1,zhook_handle)
104 !
105 !
106 END SUBROUTINE laigain
subroutine laigain(PBSLAI, PEK, PBIOMASS)
Definition: laigain.F90:7
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15