54 USE yomhook
,ONLY : lhook, dr_hook
55 USE parkind1
,ONLY : jprb
63 INTEGER,
INTENT(IN) :: klu
64 INTEGER,
INTENT(IN) :: kpatch
65 REAL(KIND=JPRB) :: zhook_handle
72 IF (lhook) CALL dr_hook(
'ALLOCATE_GR_SNOW',0,zhook_handle)
74 IF (tpsnow%SCHEME==
'3-L' .OR. tpsnow%SCHEME==
'CRO' .OR. tpsnow%SCHEME==
'1-L' .OR. &
75 tpsnow%SCHEME==
'D95' .OR. tpsnow%SCHEME==
'EBA')
THEN
77 ALLOCATE(tpsnow%WSNOW (klu,tpsnow%NLAYER,kpatch))
78 ALLOCATE(tpsnow%RHO (klu,tpsnow%NLAYER,kpatch))
79 ALLOCATE(tpsnow%ALB (klu,kpatch))
80 ALLOCATE(tpsnow%ALBVIS (klu,kpatch))
81 ALLOCATE(tpsnow%ALBNIR (klu,kpatch))
82 ALLOCATE(tpsnow%ALBFIR (klu,kpatch))
86 tpsnow%ALBVIS = xundef
87 tpsnow%ALBNIR = xundef
88 tpsnow%ALBFIR = xundef
90 IF (tpsnow%SCHEME/=
'D95' .AND. tpsnow%SCHEME/=
'EBA')
THEN
92 ALLOCATE(tpsnow%EMIS(klu,kpatch))
93 ALLOCATE(tpsnow%TS (klu,kpatch))
97 IF (tpsnow%SCHEME/=
'1-L')
THEN
99 ALLOCATE(tpsnow%TEMP(klu,tpsnow%NLAYER,kpatch))
100 ALLOCATE(tpsnow%HEAT(klu,tpsnow%NLAYER,kpatch))
101 ALLOCATE(tpsnow%AGE (klu,tpsnow%NLAYER,kpatch))
106 IF(tpsnow%SCHEME==
'CRO')
THEN
108 ALLOCATE(tpsnow%GRAN1(klu,tpsnow%NLAYER,kpatch))
109 ALLOCATE(tpsnow%GRAN2(klu,tpsnow%NLAYER,kpatch))
110 ALLOCATE(tpsnow%HIST (klu,tpsnow%NLAYER,kpatch))
111 tpsnow%GRAN1 = xundef
112 tpsnow%GRAN2 = xundef
119 ALLOCATE(tpsnow%T(klu,tpsnow%NLAYER,kpatch))
127 IF (tpsnow%SCHEME/=
'CRO')
THEN
129 ALLOCATE(tpsnow%GRAN1(0,0,0))
130 ALLOCATE(tpsnow%GRAN2(0,0,0))
131 ALLOCATE(tpsnow%HIST (0,0,0))
133 IF (tpsnow%SCHEME/=
'3-L')
THEN
135 ALLOCATE(tpsnow%TEMP(0,0,0))
136 ALLOCATE(tpsnow%HEAT(0,0,0))
137 ALLOCATE(tpsnow%AGE (0,0,0))
139 IF (tpsnow%SCHEME/=
'1-L')
THEN
141 ALLOCATE(tpsnow%EMIS (0,0))
142 ALLOCATE(tpsnow%TS (0,0))
144 IF (tpsnow%SCHEME/=
'D95' .AND. tpsnow%SCHEME/=
'EBA')
THEN
146 ALLOCATE(tpsnow%WSNOW (0,0,0))
147 ALLOCATE(tpsnow%RHO (0,0,0))
148 ALLOCATE(tpsnow%ALB (0,0))
149 ALLOCATE(tpsnow%ALBVIS (0,0))
150 ALLOCATE(tpsnow%ALBNIR (0,0))
151 ALLOCATE(tpsnow%ALBFIR (0,0))
161 IF (tpsnow%SCHEME/=
'1-L')
THEN
163 ALLOCATE(tpsnow%T(0,0,0))
167 IF (lhook) CALL dr_hook(
'ALLOCATE_GR_SNOW',1,zhook_handle)
subroutine allocate_gr_snow(TPSNOW, KLU, KPATCH)