6 SUBROUTINE diag_isba_init_n (CHI, DE, DEC, NDE, NDEC, DGO, D, DC, ND, NDC, DM, NDM, &
7 OREAD_BUDGETC, NGB, GB, IO, NP, HSNOW_SCHEME, KSNOW_NLAYER, &
8 KABC, HPROGRAM,KLU,KSW)
79 USE modd_agri
, ONLY : lagrip
82 USE modi_make_choice_array
99 TYPE(
diag_t),
INTENT(INOUT) :: D
100 TYPE(
diag_t),
INTENT(INOUT) :: DC
105 LOGICAL,
INTENT(IN) :: OREAD_BUDGETC
110 CHARACTER(LEN=*),
INTENT(IN) :: HSNOW_SCHEME
111 INTEGER,
INTENT(IN) :: KSNOW_NLAYER
113 INTEGER,
INTENT(IN) :: KABC
115 INTEGER,
INTENT(IN) :: KLU
116 INTEGER,
INTENT(IN) :: KSW
117 CHARACTER(LEN=6),
INTENT(IN):: HPROGRAM
126 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZWORK
127 LOGICAL :: GCUMUL, GDIM
129 INTEGER :: IVERSION, IBUG
131 INTEGER :: ISIZE_LMEB_PATCH
132 CHARACTER(LEN=12) :: YREC
133 CHARACTER(LEN=6) :: YREC2
134 REAL(KIND=JPRB) :: ZHOOK_HANDLE
142 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N',0,zhook_handle)
144 isize_lmeb_patch=
count(io%LMEB_PATCH(:))
146 ydo%LSURF_BUDGET = .true.
149 ydo%LSURF_VARS = .true.
151 yde%LSURF_EVAP_BUDGET = .true.
153 ydm%LSURF_MISC_BUDGET = .true.
158 CALL alloc_bud(ydo,nd%AL(jp),np%AL(jp)%NSIZE_P,ksw)
160 ALLOCATE(nd%AL(jp)%XCDN(np%AL(jp)%NSIZE_P))
161 ALLOCATE(nd%AL(jp)%XHUG(np%AL(jp)%NSIZE_P))
162 ALLOCATE(nd%AL(jp)%XHU (np%AL(jp)%NSIZE_P))
170 IF (ydo%LSURF_BUDGET)
THEN 172 ALLOCATE(d%XEVAP(klu))
173 ALLOCATE(d%XSUBL(klu))
178 ALLOCATE(nd%AL(jp)%XEVAP(np%AL(jp)%NSIZE_P))
179 ALLOCATE(nd%AL(jp)%XSUBL(np%AL(jp)%NSIZE_P))
190 ALLOCATE(nd%AL(jp)%XEVAP(0))
191 ALLOCATE(nd%AL(jp)%XSUBL(0))
198 ALLOCATE(d%XSFCO2(klu))
201 ALLOCATE(nd%AL(jp)%XSFCO2(np%AL(jp)%NSIZE_P))
207 ALLOCATE(d%XSFCO2(0))
209 ALLOCATE(nd%AL(jp)%XSFCO2(0))
217 ALLOCATE(nd%AL(jp)%XZ0EFF(np%AL(jp)%NSIZE_P))
223 ALLOCATE(d%XZ0EFF(klu))
228 ALLOCATE(d%XZ0EFF(0))
235 ALLOCATE(d%XALBT(klu))
238 ALLOCATE(nd%AL(jp)%XTS (np%AL(jp)%NSIZE_P))
239 ALLOCATE(nd%AL(jp)%XALBT (np%AL(jp)%NSIZE_P))
240 ALLOCATE(nd%AL(jp)%XTSRAD (np%AL(jp)%NSIZE_P))
248 IF (yde%LSURF_EVAP_BUDGET)
THEN 252 CALL alloc_evap_bud(nde%AL(jp),np%AL(jp)%NSIZE_P,np%AL(jp)%NSIZE_P)
255 IF (isize_lmeb_patch>0)
THEN 265 ALLOCATE(de%XICEFLUX(klu))
268 ALLOCATE(nde%AL(jp)%XICEFLUX(np%AL(jp)%NSIZE_P))
269 nde%AL(jp)%XICEFLUX(:) =
xundef 273 IF(de%LWATER_BUDGET)
THEN 275 ALLOCATE(de%XRAINFALL (klu))
276 ALLOCATE(de%XSNOWFALL (klu))
296 IF (.NOT. yde%LSURF_EVAP_BUDGET .OR. .NOT.de%LWATER_BUDGET)
THEN 298 ALLOCATE(de%XRAINFALL (0))
299 ALLOCATE(de%XSNOWFALL (0))
308 IF (.NOT.yde%LSURF_EVAP_BUDGET .OR. isize_lmeb_patch<=0)
THEN 317 IF(.NOT.yde%LSURF_EVAP_BUDGET .OR. .NOT.io%LGLACIER)
THEN 318 ALLOCATE(de%XICEFLUX(0))
320 ALLOCATE(nde%AL(jp)%XICEFLUX(0))
329 gcumul = (dgo%LSURF_BUDGETC .OR. (
lrestart .AND. .NOT.dgo%LRESET_BUDGETC
331 gcumul = (dgo%LSURF_BUDGETC .OR. .NOT.dgo%LRESET_BUDGETC)
343 IF (isize_lmeb_patch>0)
THEN 353 ALLOCATE(dc%XEVAP(klu))
354 ALLOCATE(dc%XSUBL(klu))
359 ALLOCATE(ndc%AL(jp)%XEVAP(np%AL(jp)%NSIZE_P))
360 ALLOCATE(ndc%AL(jp)%XSUBL(np%AL(jp)%NSIZE_P))
366 ALLOCATE(dec%XICEFLUX(klu))
368 ALLOCATE(ndec%AL(jp)%XICEFLUX(np%AL(jp)%NSIZE_P))
373 IF(de%LWATER_BUDGET .OR. (
lrestart .AND. .NOT.dgo%LRESET_BUDGETC))
THEN 375 IF(de%LWATER_BUDGET .OR. .NOT.dgo%LRESET_BUDGETC)
THEN 378 ALLOCATE(dec%XRAINFALL (klu))
379 ALLOCATE(dec%XSNOWFALL (klu))
392 IF (isize_lmeb_patch>0)
THEN 402 IF(io%LGLACIER) dec%XICEFLUX = 0.0
404 IF (.NOT.oread_budgetc .OR. (oread_budgetc.AND.dgo%LRESET_BUDGETC))
THEN 410 IF (isize_lmeb_patch>0)
THEN 420 ndc%AL(jp)%XEVAP = 0.
421 ndc%AL(jp)%XSUBL = 0.
426 ndec%AL(jp)%XICEFLUX = 0.0
431 IF(de%LWATER_BUDGET .OR. (
lrestart .AND. .NOT.dgo%LRESET_BUDGETC))
THEN 433 IF(de%LWATER_BUDGET .OR. .NOT.dgo%LRESET_BUDGETC)
THEN 448 CALL read_surf(hprogram,
'VERSION',iversion,iresp)
449 CALL read_surf(hprogram,
'BUG ',ibug,iresp)
451 gdim = (iversion>8 .OR. iversion==8 .AND. ibug>0)
454 IF(de%LWATER_BUDGET .OR. (
lrestart .AND. .NOT.dgo%LRESET_BUDGETC))
THEN 456 IF(de%LWATER_BUDGET .OR. .NOT.dgo%LRESET_BUDGETC)
THEN 458 IF(iversion>7 .OR. iversion==7 .AND. ibug>=3)
THEN 460 CALL read_surf(hprogram,yrec,dec%XRAINFALL,iresp)
462 CALL read_surf(hprogram,yrec,dec%XSNOWFALL,iresp)
469 IF(dgo%LPATCH_BUDGET .AND. io%NPATCH>1)
THEN 474 ELSEIF (iversion<7 .OR. iversion==7 .AND. ibug<3)
THEN 480 ALLOCATE(zwork(klu,io%NPATCH))
509 IF(hsnow_scheme==
'3-L' .OR. hsnow_scheme==
'CRO')
THEN 510 IF(iversion>7 .OR. iversion==7 .AND. ibug>=3)
THEN 521 ndec%AL(jp)%XLESL(:) = 0.0
528 yrec=
'SNDRIFC_'//yrec2
531 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XSNDRIFT
537 ndec%AL(jp)%XSNDRIFT(:) = 0.0
545 ndec%AL(jp)%XLESL(:) = 0.0
546 ndec%AL(jp)%XSNDRIFT(:) = 0.0
571 ndc%AL(jp)%XSUBL(:) = 0.0
581 yrec=
'DRAINC_'//yrec2
587 yrec=
'RUNOFFC_'//yrec2
590 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XRUNOFF
593 yrec=
'DRIVEGC_'//yrec2
599 yrec=
'RRVEGC_'//yrec2
605 yrec=
'SNOMLTC_'//yrec2
612 yrec=
'IRRIGC_'//yrec2
615 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XIRRIG_FLUX
619 ndec%AL(jp)%XIRRIG_FLUX(:) = 0.0
623 IF(io%CPHOTO/=
'NON' .AND. (iversion>7 .OR. iversion==7 .AND. ibug>
THEN 630 yrec=
'RC_AUTO_'//yrec2
633 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XRESP_AUTO
636 yrec=
'RC_ECO_'//yrec2
639 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XRESP_ECO
643 ndec%AL(jp)%XGPP(:) = 0.0
644 ndec%AL(jp)%XRESP_AUTO(:) = 0.0
645 ndec%AL(jp)%XRESP_ECO(:) = 0.0
649 IF((io%CRUNOFF==
'SGH'.AND.io%CISBA==
'DIF').AND.iversion>=8)
THEN 659 IF(io%CHORT==
'SGH'.OR.io%CISBA==
'DIF')
THEN 660 yrec=
'HORTONC_'//yrec2
667 ndec%AL(jp)%XHORT(:) = 0.0
672 yrec=
'IFLOODC_'//yrec2
675 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XIFLOOD
678 yrec=
'PFLOODC_'//yrec2
681 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XPFLOOD
687 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLE_FLOOD
693 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLEI_FLOOD
697 ndec%AL(jp)%XIFLOOD(:) = 0.0
698 ndec%AL(jp)%XPFLOOD(:) = 0.0
699 ndec%AL(jp)%XLE_FLOOD(:) = 0.0
700 ndec%AL(jp)%XLEI_FLOOD(:) = 0.0
705 IF (isize_lmeb_patch>0)
THEN 707 yrec=
'LEV_CVC_'//yrec2
710 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLEV_CV
713 yrec=
'LES_CVC_'//yrec2
716 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLES_CV
719 yrec=
'LETR_CVC_'//yrec2
722 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLETR_CV
725 yrec=
'LER_CVC_'//yrec2
728 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLER_CV
731 yrec=
'LE_CVC_'//yrec2
743 yrec=
'MELT_CVC_'//yrec2
746 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XMELT_CV
749 yrec=
'FRZ_CVC_'//yrec2
752 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XFRZ_CV
755 yrec=
'LE_GVC_'//yrec2
767 yrec=
'LE_GNC_'//yrec2
779 yrec=
'SR_GNC_'//yrec2
785 yrec=
'SWDN_GNC_'//yrec2
788 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XSWDOWN_GN
791 yrec=
'LWDN_GNC_'//yrec2
794 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLWDOWN_GN
797 yrec=
'LE_CAC_'//yrec2
809 yrec=
'SWNT_VC_'//yrec2
812 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XSWNET_V
815 yrec=
'SWNT_GC_'//yrec2
818 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XSWNET_G
821 yrec=
'SWNT_NC_'//yrec2
824 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XSWNET_N
827 yrec=
'SWNT_NSC_'//yrec2
830 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XSWNET_NS
833 yrec=
'LWNT_VC_'//yrec2
836 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLWNET_V
839 yrec=
'LWNT_GC_'//yrec2
842 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLWNET_G
845 yrec=
'LWNT_NC_'//yrec2
848 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XLWNET_N
877 yrec=
'GFLUXC_'//yrec2
883 IF (dgo%LRAD_BUDGET)
THEN 924 yrec=
'ICE_FC_'//yrec2
927 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XICEFLUX
933 IF(de%LWATER_BUDGET .OR. (
lrestart .AND. .NOT.dgo%LRESET_BUDGETC))
THEN 935 IF(de%LWATER_BUDGET .OR. .NOT.dgo%LRESET_BUDGETC)
THEN 937 IF(iversion>7 .OR. iversion==7 .AND. ibug>=3)
THEN 963 yrec=
'WATBUDC_'//yrec2
966 CALL pack_same_rank(np%AL(jp)%NR_P,zwork(:,jp),ndec%AL(jp)%XWATBUD
985 IF (isize_lmeb_patch>0)
THEN 997 ndec%AL(jp)%XICEFLUX=0.0
1002 IF(de%LWATER_BUDGET .OR. (
lrestart .AND. .NOT.dgo%LRESET_BUDGETC
THEN 1004 IF(de%LWATER_BUDGET .OR. .NOT.dgo%LRESET_BUDGETC)
THEN 1022 ALLOCATE(dc%XEVAP(0))
1023 ALLOCATE(dc%XSUBL(0))
1030 ALLOCATE(ndc%AL(jp)%XEVAP(0))
1031 ALLOCATE(ndc%AL(jp)%XSUBL(0))
1040 IF(.NOT.gcumul .AND. (.NOT.de%LWATER_BUDGET .OR. .NOT.
lrestart .OR. dgo%LRESET_BUDGETC
THEN 1042 IF(.NOT.gcumul .AND. (.NOT.de%LWATER_BUDGET .OR. dgo%LRESET_BUDGETC))
THEN 1045 ALLOCATE(dec%XRAINFALL (0))
1046 ALLOCATE(dec%XSNOWFALL (0))
1055 IF (.NOT.gcumul .OR. isize_lmeb_patch<=0)
THEN 1064 IF(.NOT.io%LGLACIER)
THEN 1065 ALLOCATE(dec%XICEFLUX(0))
1067 ALLOCATE(ndec%AL(jp)%XICEFLUX(0))
1073 IF (ydm%LSURF_MISC_BUDGET)
THEN 1077 CALL alloc_misc_bud(ndm%AL(jp),np%AL(jp)%NSIZE_P,np%AL(jp)%NSIZE_P,&
1078 io%NGROUND_LAYER,ksnow_nlayer,dm%LPROSNOW)
1091 IF (chi%SVI%NBEQ>0 .AND. chi%LCH_BIO_FLUX)
THEN 1092 ALLOCATE(gb%XFISO(klu))
1093 ALLOCATE(gb%XFMONO(klu))
1098 ALLOCATE(gb%XFISO(0))
1099 ALLOCATE(gb%XFMONO(0))
1102 IF (io%CPHOTO/=
'NON')
THEN 1104 ALLOCATE(ngb%AL(jp)%XIACAN(np%AL(jp)%NSIZE_P,kabc))
1106 ngb%AL(jp)%XIACAN =
xundef 1111 ALLOCATE(ngb%AL(jp)%XIACAN(0,0))
1115 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N',1,zhook_handle)
1120 SUBROUTINE alloc_misc_bud(DMA,KLUA,KLUAP,KNLAYER,KSNLAYER,OPROSNOW)
1123 INTEGER,
INTENT(IN) :: KLUA
1124 INTEGER,
INTENT(IN) :: KLUAP
1125 INTEGER,
INTENT(IN) :: KNLAYER
1126 INTEGER,
INTENT(IN) :: KSNLAYER
1127 LOGICAL,
INTENT(IN) :: OPROSNOW
1128 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1130 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N:ALLOC_MISC_BUD',0,zhook_handle
1134 ALLOCATE(dma%XHV (klua))
1136 ALLOCATE(dma%XSWI (klua,knlayer))
1137 ALLOCATE(dma%XTSWI (klua,knlayer))
1139 ALLOCATE(dma%XTWSNOW (klua))
1140 ALLOCATE(dma%XTDSNOW (klua))
1141 ALLOCATE(dma%XTTSNOW (klua))
1143 IF ( oprosnow .AND. hsnow_scheme==
"CRO" )
THEN 1145 ALLOCATE(dma%XSNOWDEND (kluap,ksnlayer))
1146 ALLOCATE(dma%XSNOWSPHER (kluap,ksnlayer))
1147 ALLOCATE(dma%XSNOWSIZE (kluap,ksnlayer))
1148 ALLOCATE(dma%XSNOWSSA (kluap,ksnlayer))
1149 ALLOCATE(dma%XSNOWTYPEMEPRA(kluap,ksnlayer))
1150 ALLOCATE(dma%XSNOWRAM (kluap,ksnlayer))
1151 ALLOCATE(dma%XSNOWSHEAR (kluap,ksnlayer))
1153 ALLOCATE(dma%XSNDPT_1DY(klua))
1154 ALLOCATE(dma%XSNDPT_3DY(klua))
1155 ALLOCATE(dma%XSNDPT_5DY(klua))
1156 ALLOCATE(dma%XSNDPT_7DY(klua))
1157 ALLOCATE(dma%XSNSWE_1DY(klua))
1158 ALLOCATE(dma%XSNSWE_3DY(klua))
1159 ALLOCATE(dma%XSNSWE_5DY(klua))
1160 ALLOCATE(dma%XSNSWE_7DY(klua))
1161 ALLOCATE(dma%XSNRAM_SONDE(klua))
1162 ALLOCATE(dma%XSN_WETTHCKN(klua))
1163 ALLOCATE(dma%XSN_REFRZNTHCKN(klua))
1167 ALLOCATE(dma%XSNOWDEND (0,0))
1168 ALLOCATE(dma%XSNOWSPHER (0,0))
1169 ALLOCATE(dma%XSNOWSIZE (0,0))
1170 ALLOCATE(dma%XSNOWSSA (0,0))
1171 ALLOCATE(dma%XSNOWTYPEMEPRA(0,0))
1172 ALLOCATE(dma%XSNOWRAM (0,0))
1173 ALLOCATE(dma%XSNOWSHEAR (0,0))
1175 ALLOCATE(dma%XSNDPT_1DY(0))
1176 ALLOCATE(dma%XSNDPT_3DY(0))
1177 ALLOCATE(dma%XSNDPT_5DY(0))
1178 ALLOCATE(dma%XSNDPT_7DY(0))
1179 ALLOCATE(dma%XSNSWE_1DY(0))
1180 ALLOCATE(dma%XSNSWE_3DY(0))
1181 ALLOCATE(dma%XSNSWE_5DY(0))
1182 ALLOCATE(dma%XSNSWE_7DY(0))
1183 ALLOCATE(dma%XSNRAM_SONDE(0))
1184 ALLOCATE(dma%XSN_WETTHCKN(0))
1185 ALLOCATE(dma%XSN_REFRZNTHCKN(0))
1189 ALLOCATE(dma%XPSNG (klua))
1190 ALLOCATE(dma%XPSNV (klua))
1191 ALLOCATE(dma%XPSN (klua))
1193 ALLOCATE(dma%XFSAT (klua))
1195 ALLOCATE(dma%XFFG (klua))
1196 ALLOCATE(dma%XFFV (klua))
1197 ALLOCATE(dma%XFF (klua))
1215 IF ( oprosnow .AND. hsnow_scheme==
"CRO" )
THEN 1222 dma%XSNOWTYPEMEPRA =
xundef 1236 dma%XSNRAM_SONDE =
xundef 1237 dma%XSN_WETTHCKN =
xundef 1238 dma%XSN_REFRZNTHCKN =
xundef 1243 IF(io%CISBA==
'DIF')
THEN 1244 ALLOCATE(dma%XALT(klua))
1245 ALLOCATE(dma%XFLT(klua))
1251 ALLOCATE(dma%XALT(0))
1252 ALLOCATE(dma%XFLT(0))
1257 ALLOCATE(dma%XSNOWLIQ (kluap,ksnlayer))
1258 ALLOCATE(dma%XSNOWTEMP (kluap,ksnlayer))
1259 ALLOCATE(dma%XSNOWDZ (kluap,ksnlayer))
1268 ALLOCATE(dma%XSEUIL (kluap))
1274 ALLOCATE(dma%XSEUIL(0))
1278 ALLOCATE (dma%XFAPAR (kluap))
1279 ALLOCATE (dma%XFAPIR (kluap))
1280 ALLOCATE (dma%XFAPAR_BS (kluap))
1281 ALLOCATE (dma%XFAPIR_BS (kluap))
1282 ALLOCATE (dma%XDFAPARC (kluap))
1283 ALLOCATE (dma%XDFAPIRC (kluap))
1284 ALLOCATE (dma%XDLAI_EFFC (kluap))
1296 ALLOCATE (dma%XFAPAR (0))
1297 ALLOCATE (dma%XFAPIR (0))
1298 ALLOCATE (dma%XFAPAR_BS (0))
1299 ALLOCATE (dma%XFAPIR_BS (0))
1300 ALLOCATE (dma%XDFAPARC (0))
1301 ALLOCATE (dma%XDFAPIRC (0))
1302 ALLOCATE (dma%XDLAI_EFFC (0))
1306 ALLOCATE(dma%XC1 (kluap))
1307 ALLOCATE(dma%XC2 (kluap))
1308 ALLOCATE(dma%XWGEQ (kluap))
1309 ALLOCATE(dma%XCG (kluap))
1310 ALLOCATE(dma%XCT (kluap))
1311 ALLOCATE(dma%XRS (kluap))
1312 ALLOCATE(dma%XGRNDFLUX (kluap))
1313 ALLOCATE(dma%XSNOWHMASS(kluap))
1314 ALLOCATE(dma%XSRSFC (kluap))
1315 ALLOCATE(dma%XRRSFC (kluap))
1316 ALLOCATE(dma%XRNSNOW (kluap))
1317 ALLOCATE(dma%XHSNOW (kluap))
1318 ALLOCATE(dma%XGFLUXSNOW(kluap))
1319 ALLOCATE(dma%XHPSNOW (kluap))
1320 ALLOCATE(dma%XUSTARSNOW(kluap))
1321 ALLOCATE(dma%XCDSNOW (kluap))
1322 ALLOCATE(dma%XCHSNOW (kluap))
1346 ALLOCATE(dma%XLAI (klua))
1348 ALLOCATE(dma%XSOIL_SWI (klua))
1349 ALLOCATE(dma%XSOIL_TSWI (klua))
1350 ALLOCATE(dma%XSOIL_TWG (klua))
1351 ALLOCATE(dma%XSOIL_TWGI (klua))
1352 ALLOCATE(dma%XSOIL_WG (klua))
1353 ALLOCATE(dma%XSOIL_WGI (klua))
1365 IF(io%CISBA==
'DIF'.AND.dm%LSURF_MISC_DIF)
THEN 1366 ALLOCATE(dma%XFRD2_TSWI(klua))
1367 ALLOCATE(dma%XFRD2_TWG (klua))
1368 ALLOCATE(dma%XFRD2_TWGI(klua))
1369 ALLOCATE(dma%XFRD3_TSWI(klua))
1370 ALLOCATE(dma%XFRD3_TWG (klua))
1371 ALLOCATE(dma%XFRD3_TWGI(klua))
1383 ALLOCATE(dma%XFRD2_TSWI(0))
1384 ALLOCATE(dma%XFRD2_TWG (0))
1385 ALLOCATE(dma%XFRD2_TWGI(0))
1386 ALLOCATE(dma%XFRD3_TSWI(0))
1387 ALLOCATE(dma%XFRD3_TWG (0))
1388 ALLOCATE(dma%XFRD3_TWGI(0))
1391 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N:ALLOC_MISC_BUD',1,zhook_handle
1398 INTEGER,
INTENT(IN) :: KLUA
1399 INTEGER,
INTENT(IN) :: KLUAP
1400 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1402 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N:ALLOC_EVAP_BUD',0,zhook_handle
1404 ALLOCATE(dea%XLEG (klua))
1405 ALLOCATE(dea%XLEGI (klua))
1406 ALLOCATE(dea%XLEV (klua))
1407 ALLOCATE(dea%XLES (klua))
1409 ALLOCATE(dea%XLESL (klua))
1410 ALLOCATE(dea%XSNDRIFT (klua))
1412 ALLOCATE(dea%XLER (klua))
1413 ALLOCATE(dea%XLETR (klua))
1415 ALLOCATE(dea%XDRAIN (klua))
1416 ALLOCATE(dea%XRUNOFF (klua))
1417 ALLOCATE(dea%XDRIP (klua))
1418 ALLOCATE(dea%XRRVEG (klua))
1419 ALLOCATE(dea%XMELT (klua))
1421 ALLOCATE(dea%XIRRIG_FLUX(klua))
1423 ALLOCATE(dea%XGPP (klua))
1424 ALLOCATE(dea%XRESP_AUTO (klua))
1425 ALLOCATE(dea%XRESP_ECO (klua))
1427 ALLOCATE(dea%XQSB (klua))
1428 ALLOCATE(dea%XHORT (klua))
1430 ALLOCATE(dea%XIFLOOD (klua))
1431 ALLOCATE(dea%XPFLOOD (klua))
1432 ALLOCATE(dea%XLE_FLOOD (klua))
1433 ALLOCATE(dea%XLEI_FLOOD(klua))
1435 ALLOCATE(dea%XRN_SN_FR (kluap))
1436 ALLOCATE(dea%XH_SN_FR (kluap))
1437 ALLOCATE(dea%XLEI_SN_FR (kluap))
1438 ALLOCATE(dea%XLE_SN_FR (kluap))
1439 ALLOCATE(dea%XGFLUX_SN_FR(kluap))
1440 ALLOCATE(dea%XLEG_SN_FR (kluap))
1441 ALLOCATE(dea%XLEGI_SN_FR (kluap))
1442 ALLOCATE(dea%XLEV_SN_FR (kluap))
1443 ALLOCATE(dea%XLETR_SN_FR (kluap))
1444 ALLOCATE(dea%XUSTAR_SN_FR(kluap))
1445 ALLOCATE(dea%XLER_SN_FR (kluap))
1447 ALLOCATE(dea%XMELTADV (kluap))
1448 ALLOCATE(dea%XRESTORE (kluap))
1489 dea%XGFLUX_SN_FR =
xundef 1494 dea%XUSTAR_SN_FR =
xundef 1501 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N:ALLOC_EVAP_BUD',1,zhook_handle
1508 INTEGER,
INTENT(IN) :: KLUA
1509 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1511 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N:ALLOC_MEB_BUD',0,zhook_handle)
1513 ALLOCATE(dea%XLELITTER (klua))
1514 ALLOCATE(dea%XLELITTERI(klua))
1515 ALLOCATE(dea%XDRIPLIT (klua))
1516 ALLOCATE(dea%XRRLIT (klua))
1518 ALLOCATE(dea%XLEV_CV (klua))
1519 ALLOCATE(dea%XLES_CV (klua))
1520 ALLOCATE(dea%XLETR_CV(klua))
1521 ALLOCATE(dea%XLER_CV (klua))
1522 ALLOCATE(dea%XLE_CV (klua))
1523 ALLOCATE(dea%XH_CV (klua))
1524 ALLOCATE(dea%XMELT_CV(klua))
1525 ALLOCATE(dea%XFRZ_CV (klua))
1527 ALLOCATE(dea%XLETR_GV(klua))
1528 ALLOCATE(dea%XLER_GV (klua))
1529 ALLOCATE(dea%XLE_GV (klua))
1530 ALLOCATE(dea%XH_GV (klua))
1532 ALLOCATE(dea%XLE_GN (klua))
1533 ALLOCATE(dea%XEVAP_GN(klua))
1534 ALLOCATE(dea%XH_GN (klua))
1535 ALLOCATE(dea%XSR_GN (klua))
1536 ALLOCATE(dea%XSWDOWN_GN(klua))
1537 ALLOCATE(dea%XLWDOWN_GN(klua))
1539 ALLOCATE(dea%XEVAP_G (klua))
1540 ALLOCATE(dea%XLE_CA (klua))
1541 ALLOCATE(dea%XH_CA (klua))
1543 ALLOCATE(dea%XSWUP(klua))
1544 ALLOCATE(dea%XLWUP(klua))
1546 ALLOCATE(dea%XSWNET_V (klua))
1547 ALLOCATE(dea%XSWNET_G (klua))
1548 ALLOCATE(dea%XSWNET_N (klua))
1549 ALLOCATE(dea%XSWNET_NS (klua))
1550 ALLOCATE(dea%XLWNET_V (klua))
1551 ALLOCATE(dea%XLWNET_G (klua))
1552 ALLOCATE(dea%XLWNET_N (klua))
1597 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N:ALLOC_MEB_BUD',1,zhook_handle)
1604 INTEGER,
INTENT(IN) :: KLUA
1605 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1607 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N:ALLOC_WATER_BUD',0,zhook_handle
1609 ALLOCATE(dea%XDWG (klua))
1610 ALLOCATE(dea%XDWGI (klua))
1611 ALLOCATE(dea%XDWR (klua))
1612 ALLOCATE(dea%XDSWE (klua))
1613 ALLOCATE(dea%XWATBUD(klua))
1623 IF (
lhook)
CALL dr_hook(
'DIAG_ISBA_INIT_N:ALLOC_WATER_BUD',1,zhook_handle
subroutine init_surf_bud(DA, PVAL)
subroutine make_choice_array(HPROGRAM, KNPATCH, ODIM, HRECFM, PWORK, HDIR, KPATCH)
subroutine alloc_meb_bud(DEA, KLUA)
subroutine diag_isba_init_n(CHI, DE, DEC, NDE, NDEC, DGO, D, DC,
subroutine alloc_water_bud(DEA, KLUA)
subroutine alloc_evap_bud(DEA, KLUA, KLUAP)
subroutine init_meb_bud(DEA)
subroutine alloc_bud(DGO, DA, KLU, KSW)
subroutine init_water_bud(DEA)
subroutine init_evap_bud(DEA)
subroutine alloc_misc_bud(DMA, KLUA, KLUAP, KNLAYER, KSNLAYER, OPROSNOW)
subroutine alloc_surf_bud(DA, KLUA, KLUAC, KSWA)