69 TYPE(
diag_t),
INTENT(INOUT) :: D
70 TYPE(
diag_t),
INTENT(INOUT) :: DC
71 LOGICAL,
INTENT(IN) :: OREAD_BUDGETC
74 INTEGER,
INTENT(IN) :: KLU
75 INTEGER,
INTENT(IN) :: KSW
76 CHARACTER(LEN=6),
INTENT(IN):: HPROGRAM
83 CHARACTER(LEN=12) :: YREC
85 REAL(KIND=JPRB) :: ZHOOK_HANDLE
88 IF (
lhook)
CALL dr_hook(
'DIAG_SEAFLUX_INIT_N',0,zhook_handle)
94 IF (dgo%LSURF_BUDGET.OR.dgo%LSURF_BUDGETC)
THEN 96 ALLOCATE(d%XEVAP (klu))
97 ALLOCATE(d%XSUBL (klu))
98 ALLOCATE(d%XALBT (klu))
106 ALLOCATE(d%XEVAP (0))
107 ALLOCATE(d%XSUBL (0))
108 ALLOCATE(d%XALBT (0))
112 ALLOCATE(d%XTSRAD(klu))
118 IF (dgo%LSURF_BUDGETC .OR. (
lrestart .AND. .NOT.dgo%LRESET_BUDGETC))
THEN 120 IF (dgo%LSURF_BUDGETC .OR. .NOT.dgo%LRESET_BUDGETC)
THEN 124 ALLOCATE(dc%XEVAP (klu))
125 ALLOCATE(dc%XSUBL (klu))
127 IF (.NOT.oread_budgetc .OR. oread_budgetc.AND.dgo%LRESET_BUDGETC)
THEN 132 CALL read_surf(hprogram,
'VERSION',iversion,iresp)
134 CALL read_surf(hprogram,yrec,dc%XRN,iresp)
136 CALL read_surf(hprogram,yrec,dc%XH,iresp)
138 CALL read_surf(hprogram,yrec,dc%XLE,iresp)
140 CALL read_surf(hprogram,yrec,dc%XLEI,iresp)
142 CALL read_surf(hprogram,yrec,dc%XGFLUX,iresp)
144 CALL read_surf(hprogram,yrec,dc%XSWD,iresp)
146 CALL read_surf(hprogram,yrec,dc%XSWU,iresp)
148 CALL read_surf(hprogram,yrec,dc%XLWD,iresp)
150 CALL read_surf(hprogram,yrec,dc%XLWU,iresp)
152 CALL read_surf(hprogram,yrec,dc%XFMU,iresp)
154 CALL read_surf(hprogram,yrec,dc%XFMV,iresp)
161 CALL read_surf(hprogram,yrec,dc%XEVAP,iresp)
163 CALL read_surf(hprogram,yrec,dc%XSUBL,iresp)
172 IF (doc%LDIAG_OCEAN)
THEN 173 ALLOCATE(doc%XTOCMOY (klu))
174 ALLOCATE(doc%XSOCMOY (klu))
175 ALLOCATE(doc%XUOCMOY (klu))
176 ALLOCATE(doc%XVOCMOY (klu))
177 ALLOCATE(doc%XDOCMOY (klu))
185 ALLOCATE(doc%XTOCMOY (0))
186 ALLOCATE(doc%XSOCMOY (0))
187 ALLOCATE(doc%XUOCMOY (0))
188 ALLOCATE(doc%XVOCMOY (0))
189 ALLOCATE(doc%XDOCMOY (0))
197 ALLOCATE(s%XCPL_SEA_WIND(klu))
198 ALLOCATE(s%XCPL_SEA_FWSU(klu))
199 ALLOCATE(s%XCPL_SEA_FWSV(klu))
200 ALLOCATE(s%XCPL_SEA_SNET(klu))
201 ALLOCATE(s%XCPL_SEA_HEAT(klu))
202 ALLOCATE(s%XCPL_SEA_EVAP(klu))
203 ALLOCATE(s%XCPL_SEA_RAIN(klu))
204 ALLOCATE(s%XCPL_SEA_SNOW(klu))
205 ALLOCATE(s%XCPL_SEA_FWSM(klu))
206 s%XCPL_SEA_WIND(:) = 0.0
207 s%XCPL_SEA_FWSU(:) = 0.0
208 s%XCPL_SEA_FWSV(:) = 0.0
209 s%XCPL_SEA_SNET(:) = 0.0
210 s%XCPL_SEA_HEAT(:) = 0.0
211 s%XCPL_SEA_EVAP(:) = 0.0
212 s%XCPL_SEA_RAIN(:) = 0.0
213 s%XCPL_SEA_SNOW(:) = 0.0
214 s%XCPL_SEA_FWSM(:) = 0.0
217 ALLOCATE(s%XCPL_SEA_WIND(0))
218 ALLOCATE(s%XCPL_SEA_FWSU(0))
219 ALLOCATE(s%XCPL_SEA_FWSV(0))
220 ALLOCATE(s%XCPL_SEA_SNET(0))
221 ALLOCATE(s%XCPL_SEA_HEAT(0))
222 ALLOCATE(s%XCPL_SEA_EVAP(0))
223 ALLOCATE(s%XCPL_SEA_RAIN(0))
224 ALLOCATE(s%XCPL_SEA_SNOW(0))
225 ALLOCATE(s%XCPL_SEA_FWSM(0))
228 IF (
lhook)
CALL dr_hook(
'DIAG_SEAFLUX_INIT_N',1,zhook_handle)
subroutine init_surf_bud(DA, PVAL)
subroutine diag_seaflux_init_n(DOC, DGO, D, DC, OREAD_BUDGETC, S,
subroutine alloc_bud(DGO, DA, KLU, KSW)
subroutine alloc_surf_bud(DA, KLUA, KLUAC, KSWA)