SURFEX v8.1
General documentation of Surfex
lailoss.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 lailoss(PK, PEK, PBIOMASS)
7 ! ###############################################################
8 !!**** *LAILOSS*
9 !!
10 !! PURPOSE
11 !! -------
12 !
13 ! Calculates the time change in LAI due to senesence
14 ! and cutting: ie losses/decreases to LAI. This in turn
15 ! reduces the dry biomass of the canopy.
16 !
17 !!** METHOD
18 !! ------
19 ! Calvet at al (1997) [from model of Jacobs(1994)]
20 !!
21 !! EXTERNAL
22 !! --------
23 !! none
24 !!
25 !! IMPLICIT ARGUMENTS
26 !! ------------------
27 !!
28 !! none
29 !!
30 !! REFERENCE
31 !! ---------
32 !!
33 !! Calvet et al. (1997)
34 !!
35 !! AUTHOR
36 !! ------
37 !!
38 !! A. Boone * Meteo-France *
39 !! (following Belair)
40 !!
41 !! MODIFICATIONS
42 !! -------------
43 !! Original 27/10/97
44 !! Modified 12/03/04 by P LeMoigne: ZXSEFOLD in days
45 !! L. Jarlan 27/10/04 add RHOA as input to express IP%XANMAX(:,1) in
46 !! kgCO2 m-2s-1 instead of kgCO2 kgAir-1 m s-1
47 !! P Le Moigne 09/2005 AGS modifs of L. Jarlan
48 !! S. Lafont 03/2011 modification for consistency with nitro_decline
49 !!
50 !-------------------------------------------------------------------------------
51 !
52 USE modd_isba_n, ONLY : isba_p_t, isba_pe_t
53 !
54 USE modd_csts, ONLY : xday
55 USE modd_co2v_par, ONLY: xmc, xmco2, xpcco2
56 !
57 !* 0. DECLARATIONS
58 ! ------------
59 !
60 USE yomhook ,ONLY : lhook, dr_hook
61 USE parkind1 ,ONLY : jprb
62 !
63 IMPLICIT NONE
64 !
65 !* 0.1 declarations of arguments
66 !
67 TYPE(isba_p_t), INTENT(INOUT) :: PK
68 TYPE(isba_pe_t), INTENT(INOUT) :: PEK
69 !
70 REAL, DIMENSION(:), INTENT(INOUT) :: PBIOMASS ! total dry canopy biomass
71 !
72 !* 0.2 declarations of local variables
73 !
74 REAL, DIMENSION(SIZE(PEK%XSEFOLD,1)) :: ZXSEFOLD, ZXM
75 REAL :: ZBMCOEF
76 REAL(KIND=JPRB) :: ZHOOK_HANDLE
77 !
78 !-----------------------------------------------------------------
79 IF (lhook) CALL dr_hook('LAILOSS',0,zhook_handle)
80 !
81 zbmcoef = xmc/(xmco2*xpcco2)
82 !
83 ! Once a day (at midnight), adjust biomass:
84 ! ----------------------------------------
85 !
86 WHERE((pek%XVEG(:)>0) )
87  !
88  ! leaf life expectancy
89  !
90  zxsefold(:) = pek%XSEFOLD(:)*min(1.0, pek%XANFM(:)/pk%XANMAX(:))/xday
91  !
92  ! avoid possible but unlikely division by zero
93  !
94  zxsefold(:) = max(1.0e-8,zxsefold(:))
95  !
96  ! limitation of leaf life expectancy
97  !
98  zxsefold(:) = max(5.,zxsefold(:))
99  !
100  ! senesence of active biomass
101  !
102  zxm(:) = pbiomass(:)*(1.0-exp(-1.0/zxsefold(:)))
103  !
104  ! decrease biomass:
105  !
106  pbiomass(:) = pbiomass(:) - zxm(:)
107  !
108  ! same modification than nitro_decline.f90
109  ! now the assimilation is added here
110  ! in that way laigain.f90 is consistant between the different carbon options.
111  pbiomass(:) = pbiomass(:) + pek%XANDAY(:)*zbmcoef
112  !
113  ! maximum leaf assimilation (kgCO2 kgAir-1 m s-1):
114  !
115  pek%XANFM(:) = 0.0
116  !
117 END WHERE
118 !
119 IF (lhook) CALL dr_hook('LAILOSS',1,zhook_handle)
120 !
121 END SUBROUTINE lailoss
integer, parameter jprb
Definition: parkind1.F90:32
real, save xday
Definition: modd_csts.F90:45
logical lhook
Definition: yomhook.F90:15
subroutine lailoss(PK, PEK, PBIOMASS)
Definition: lailoss.F90:7