SURFEX v8.1
General documentation of Surfex
allocate_teb_veg_pgd.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 allocate_teb_veg_pgd (PEK, S, K, P, OALLOC, KLU, KVEGTYPE, KGROUND_LAYER)
7 ! ##########################################################################
8 !
9 !
11 !
12 USE yomhook ,ONLY : lhook, dr_hook
13 USE parkind1 ,ONLY : jprb
14 !
15 IMPLICIT NONE
16 !
17 TYPE(isba_pe_t), INTENT(INOUT) :: PEK
18 TYPE(isba_s_t), INTENT(INOUT) :: S
19 TYPE(isba_p_t), INTENT(INOUT) :: P
20 TYPE(isba_k_t), INTENT(INOUT) :: K
21 !
22 LOGICAL, INTENT(IN) :: OALLOC ! True if constant PGD fields must be allocated
23 INTEGER, INTENT(IN) :: KLU
24 INTEGER, INTENT(IN) :: KVEGTYPE
25 INTEGER, INTENT(IN) :: KGROUND_LAYER
26 REAL(KIND=JPRB) :: ZHOOK_HANDLE
27 !
28 !-------------------------------------------------------------------------------
29 !
30 IF (lhook) CALL dr_hook('ALLOCATE_TEB_VEG_PGD',0,zhook_handle)
31 !
32 !-------------------------------------------------------------------------------
33 !
34 ! - Physiographic field that can evolve prognostically
35 !
36 ALLOCATE(pek%XLAI (klu))
37 ALLOCATE(pek%XVEG (klu))
38 ALLOCATE(pek%XEMIS (klu))
39 ALLOCATE(pek%XZ0 (klu))
40 !
41 ! - vegetation: default option (Jarvis) and general parameters:
42 !
43 ALLOCATE(pek%XRSMIN (klu))
44 ALLOCATE(pek%XGAMMA (klu))
45 ALLOCATE(pek%XWRMAX_CF (klu))
46 ALLOCATE(pek%XRGL (klu))
47 ALLOCATE(pek%XCV (klu))
48 !
49 ALLOCATE(pek%XLAIMIN (klu))
50 ALLOCATE(pek%XSEFOLD (klu))
51 ALLOCATE(pek%XGMES (klu))
52 ALLOCATE(pek%XGC (klu))
53 ALLOCATE(pek%XF2I (klu))
54 ALLOCATE(pek%XBSLAI (klu))
55 !
56 ! - vegetation:
57 !
58 ALLOCATE(pek%XALBNIR_VEG (klu))
59 ALLOCATE(pek%XALBVIS_VEG (klu))
60 ALLOCATE(pek%XALBUV_VEG (klu))
61 !
62 ALLOCATE(pek%LSTRESS (klu))
63 !
64 !-------------------------------------------------------------------------------
65 !
66 ! - vegetation: Ags Nitrogen-model parameters ('NIT' option)
67 !
68 ALLOCATE(pek%XCE_NITRO (klu))
69 ALLOCATE(pek%XCF_NITRO (klu))
70 ALLOCATE(pek%XCNA_NITRO (klu))
71 !
72 IF (.NOT. oalloc) THEN
73  IF (lhook) CALL dr_hook('ALLOCATE_TEB_VEG_PGD',1,zhook_handle)
74  RETURN
75 END IF
76 !-------------------------------------------------------------------------------
77 !
78 ! Input Parameters:
79 !
80 ! - vegetation + bare soil:
81 !
82 ALLOCATE(p%XZ0_O_Z0H (klu))
83 !
84 ALLOCATE(p%XROOTFRAC (klu,kground_layer ))
85 ALLOCATE(p%NWG_LAYER (klu))
86 ALLOCATE(p%XDROOT (klu))
87 ALLOCATE(p%XDG2 (klu))
88 !
89 !-------------------------------------------------------------------------------
90 !
91 ! - vegetation: Ags parameters ('AGS', 'LAI', 'AST', 'LST', 'NIT' options)
92 !
93 !
94 ALLOCATE(p%XH_TREE (klu))
95 !
96 !
97 ALLOCATE(p%XRE25 (klu))
98 !
99 !-------------------------------------------------------------------------------
100 !
101 ! - vegetation: Ags Stress parameters ('AST', 'LST', 'NIT' options)
102 !
103 !
104 ALLOCATE(p%XAH (klu))
105 ALLOCATE(p%XBH (klu))
106 !
107 ALLOCATE(p%XDMAX (klu))
108 !
109 !-------------------------------------------------------------------------------
110 !
111 ! - soil: primary parameters
112 !
113 ALLOCATE(s%XSOC (klu,kground_layer ))
114 !
115 ALLOCATE(k%XSAND (klu,kground_layer ))
116 ALLOCATE(k%XCLAY (klu,kground_layer ))
117 ALLOCATE(k%XRUNOFFB (klu ))
118 ALLOCATE(k%XWDRAIN (klu ))
119 !
120 ALLOCATE(p%XTAUICE (klu ))
121 !
122 ALLOCATE(p%XDG (klu,kground_layer))
123 !
124 ALLOCATE(p%XRUNOFFD (klu))
125 !
126 !-------------------------------------------------------------------------------
127 !
128 ! - SGH scheme
129 !
130 ALLOCATE(p%XD_ICE (klu))
131 !
132 ALLOCATE(k%XGAMMAT (klu ))
133 !
134 !-------------------------------------------------------------------------------
135 !
136 IF (lhook) CALL dr_hook('ALLOCATE_TEB_VEG_PGD',1,zhook_handle)
137 !
138 END SUBROUTINE allocate_teb_veg_pgd
subroutine allocate_teb_veg_pgd(PEK, S, K, P, OALLOC, KLU, KVEGTYPE, KGROUND_LAYER)
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15