65 LOGICAL,
INTENT(IN) :: OREAD_BUDGETC
67 TYPE(
diag_t),
INTENT(INOUT) :: D
68 TYPE(
diag_t),
INTENT(INOUT) :: DC
71 INTEGER,
INTENT(IN) :: KLU
72 INTEGER,
INTENT(IN) :: KSW
73 CHARACTER(LEN=6),
INTENT(IN):: HPROGRAM
80 CHARACTER(LEN=12) :: YREC
81 REAL(KIND=JPRB) :: ZHOOK_HANDLE
87 IF (
lhook)
CALL dr_hook(
'DIAG_WATFLUX_INIT_N',0,zhook_handle)
91 IF (dgo%LSURF_BUDGET.OR.dgo%LSURF_BUDGETC)
THEN 93 ALLOCATE(d%XEVAP (klu))
94 ALLOCATE(d%XSUBL (klu))
100 ALLOCATE(d%XEVAP (0))
101 ALLOCATE(d%XSUBL (0))
108 IF (dgo%LSURF_BUDGETC .OR. (
lrestart .AND. .NOT.dgo%LRESET_BUDGETC))
THEN 110 IF (dgo%LSURF_BUDGETC .OR. .NOT.dgo%LRESET_BUDGETC)
THEN 114 ALLOCATE(dc%XEVAP (klu))
115 ALLOCATE(dc%XSUBL (klu))
117 IF (.NOT. oread_budgetc .OR. oread_budgetc.AND.dgo%LRESET_BUDGETC)
THEN 123 CALL read_surf(hprogram,yrec,dc%XRN,iresp)
125 CALL read_surf(hprogram,yrec,dc%XH,iresp)
127 CALL read_surf(hprogram,yrec,dc%XLE,iresp)
129 CALL read_surf(hprogram,yrec,dc%XLEI,iresp)
131 CALL read_surf(hprogram,yrec,dc%XGFLUX,iresp)
133 CALL read_surf(hprogram,yrec,dc%XSWD,iresp)
135 CALL read_surf(hprogram,yrec,dc%XSWU,iresp)
137 CALL read_surf(hprogram,yrec,dc%XLWD,iresp)
139 CALL read_surf(hprogram,yrec,dc%XLWU,iresp)
141 CALL read_surf(hprogram,yrec,dc%XFMU,iresp)
143 CALL read_surf(hprogram,yrec,dc%XFMV,iresp)
145 CALL read_surf(hprogram,
'VERSION',iversion,iresp)
151 CALL read_surf(hprogram,yrec,dc%XEVAP,iresp)
153 CALL read_surf(hprogram,yrec,dc%XSUBL,iresp)
160 ALLOCATE(dc%XEVAP (0))
161 ALLOCATE(dc%XSUBL (0))
166 ALLOCATE(w%XCPL_WATER_WIND(klu))
167 ALLOCATE(w%XCPL_WATER_FWSU(klu))
168 ALLOCATE(w%XCPL_WATER_FWSV(klu))
169 ALLOCATE(w%XCPL_WATER_SNET(klu))
170 ALLOCATE(w%XCPL_WATER_HEAT(klu))
171 ALLOCATE(w%XCPL_WATER_EVAP(klu))
172 ALLOCATE(w%XCPL_WATER_RAIN(klu))
173 ALLOCATE(w%XCPL_WATER_SNOW(klu))
174 ALLOCATE(w%XCPL_WATER_FWSM(klu))
175 w%XCPL_WATER_WIND(:) = 0.0
176 w%XCPL_WATER_FWSU(:) = 0.0
177 w%XCPL_WATER_FWSV(:) = 0.0
178 w%XCPL_WATER_SNET(:) = 0.0
179 w%XCPL_WATER_HEAT(:) = 0.0
180 w%XCPL_WATER_EVAP(:) = 0.0
181 w%XCPL_WATER_RAIN(:) = 0.0
182 w%XCPL_WATER_SNOW(:) = 0.0
183 w%XCPL_WATER_FWSM(:) = 0.0
186 ALLOCATE(w%XCPL_WATER_WIND(0))
187 ALLOCATE(w%XCPL_WATER_FWSU(0))
188 ALLOCATE(w%XCPL_WATER_FWSV(0))
189 ALLOCATE(w%XCPL_WATER_SNET(0))
190 ALLOCATE(w%XCPL_WATER_HEAT(0))
191 ALLOCATE(w%XCPL_WATER_EVAP(0))
192 ALLOCATE(w%XCPL_WATER_RAIN(0))
193 ALLOCATE(w%XCPL_WATER_SNOW(0))
194 ALLOCATE(w%XCPL_WATER_FWSM(0))
198 ALLOCATE(w%XCPL_WATERICE_SNET(klu))
199 ALLOCATE(w%XCPL_WATERICE_HEAT(klu))
200 ALLOCATE(w%XCPL_WATERICE_EVAP(klu))
201 w%XCPL_WATERICE_SNET(:) = 0.0
202 w%XCPL_WATERICE_HEAT(:) = 0.0
203 w%XCPL_WATERICE_EVAP(:) = 0.0
205 ALLOCATE(w%XCPL_WATERICE_SNET(0))
206 ALLOCATE(w%XCPL_WATERICE_HEAT(0))
207 ALLOCATE(w%XCPL_WATERICE_EVAP(0))
209 IF (
lhook)
CALL dr_hook(
'DIAG_WATFLUX_INIT_N',1,zhook_handle)
subroutine init_surf_bud(DA, PVAL)
subroutine alloc_bud(DGO, DA, KLU, KSW)
subroutine diag_watflux_init_n(OREAD_BUDGETC, DGO, D, DC, W, HPRO
subroutine alloc_surf_bud(DA, KLUA, KLUAC, KSWA)