71 TYPE(
diag_t),
INTENT(INOUT) :: D
72 TYPE(
diag_t),
INTENT(INOUT) :: DC
74 LOGICAL,
INTENT(IN) :: OREAD_BUDGETC
75 TYPE(
flake_t),
INTENT(INOUT) :: F
77 INTEGER,
INTENT(IN) :: KLU
78 INTEGER,
INTENT(IN) :: KSW
79 CHARACTER(LEN=6),
INTENT(IN):: HPROGRAM
86 CHARACTER(LEN=12) :: YREC
87 REAL(KIND=JPRB) :: ZHOOK_HANDLE
93 IF (
lhook)
CALL dr_hook(
'DIAG_FLAKE_INIT_N',0,zhook_handle)
97 IF (dgo%LSURF_BUDGET.OR.dgo%LSURF_BUDGETC)
THEN 99 ALLOCATE(d%XEVAP (klu))
100 ALLOCATE(d%XSUBL (klu))
101 ALLOCATE(d%XALBT (klu))
102 ALLOCATE(d%XSWE (klu))
110 ALLOCATE(d%XEVAP (0))
111 ALLOCATE(d%XSUBL (0))
112 ALLOCATE(d%XALBT (0))
120 IF (dgo%LSURF_BUDGETC .OR. (
lrestart .AND. .NOT.dgo%LRESET_BUDGETC))
THEN 122 IF (dgo%LSURF_BUDGETC .OR. .NOT.dgo%LRESET_BUDGETC)
THEN 126 ALLOCATE(dc%XEVAP (klu))
127 ALLOCATE(dc%XSUBL (klu))
129 IF (.NOT. oread_budgetc .OR. oread_budgetc.AND.dgo%LRESET_BUDGETC)
THEN 134 CALL read_surf(hprogram,
'VERSION',iversion,iresp)
141 CALL read_surf(hprogram,yrec,dc%XRN,iresp)
143 CALL read_surf(hprogram,yrec,dc%XH,iresp)
145 CALL read_surf(hprogram,yrec,dc%XLE,iresp)
147 CALL read_surf(hprogram,yrec,dc%XLEI,iresp)
149 CALL read_surf(hprogram,yrec,dc%XGFLUX,iresp)
151 CALL read_surf(hprogram,yrec,dc%XSWD,iresp)
153 CALL read_surf(hprogram,yrec,dc%XSWU,iresp)
155 CALL read_surf(hprogram,yrec,dc%XLWD,iresp)
157 CALL read_surf(hprogram,yrec,dc%XLWU,iresp)
159 CALL read_surf(hprogram,yrec,dc%XFMU,iresp)
161 CALL read_surf(hprogram,yrec,dc%XFMV,iresp)
163 CALL read_surf(hprogram,yrec,dc%XEVAP,iresp)
165 CALL read_surf(hprogram,yrec,dc%XSUBL,iresp)
172 ALLOCATE(dc%XEVAP (0))
173 ALLOCATE(dc%XSUBL (0))
178 IF (dmf%LWATER_PROFILE)
THEN 179 ALLOCATE (dmf%XZW_PROFILE(
count(dmf%XZWAT_PROFILE/=
xundef)))
180 ALLOCATE (dmf%XTW_PROFILE(
count(dmf%XZWAT_PROFILE/=
xundef),klu))
181 dmf%XZW_PROFILE=dmf%XZWAT_PROFILE(:
count(dmf%XZWAT_PROFILE /=
xundef)
183 ALLOCATE (dmf%XZW_PROFILE(0))
184 ALLOCATE (dmf%XTW_PROFILE(0,0))
191 ALLOCATE(f%XCPL_FLAKE_EVAP(klu))
192 ALLOCATE(f%XCPL_FLAKE_RAIN(klu))
193 ALLOCATE(f%XCPL_FLAKE_SNOW(klu))
194 f%XCPL_FLAKE_EVAP(:) = 0.0
195 f%XCPL_FLAKE_RAIN(:) = 0.0
196 f%XCPL_FLAKE_SNOW(:) = 0.0
200 ALLOCATE(f%XCPL_FLAKE_EVAP(0))
201 ALLOCATE(f%XCPL_FLAKE_RAIN(0))
202 ALLOCATE(f%XCPL_FLAKE_SNOW(0))
206 IF (
lhook)
CALL dr_hook(
'DIAG_FLAKE_INIT_N',1,zhook_handle)
subroutine init_surf_bud(DA, PVAL)
subroutine alloc_bud(DGO, DA, KLU, KSW)
subroutine diag_flake_init_n(OREAD_BUDGETC, DGO, D, DC, DMF, F, HPROGRAM, KLU, KSW)
subroutine alloc_surf_bud(DA, KLUA, KLUAC, KSWA)