SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
diag_seaflux_initn.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE diag_seaflux_init_n (&
7  dgo, dgs, dgsi, dgu, s, &
8  hprogram,klu,ksw)
9 ! #####################
10 !
11 !!**** *DIAG_SEAFLUX_INIT_n* - routine to initialize SEAFLUX diagnostic variables
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !!** METHOD
17 !! ------
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !! V. Masson *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 01/2004
37 !! Modified 01/2006 : sea flux parameterization.
38 !! Modified 08/2009 : cumulative sea flux
39 !! B. decharme 04/2013 : Add EVAP and SUBL diag
40 !! S.Senesi 01/2014 : introduce fractional seaice
41 !-------------------------------------------------------------------------------
42 !
43 !* 0. DECLARATIONS
44 ! ------------
45 !
46 !
47 !
52 USE modd_seaflux_n, ONLY : seaflux_t
53 !
54 !
55 !
56 #ifdef SFX_OL
57 USE modn_io_offline, ONLY : lrestart
58 #endif
59 USE modd_surf_par, ONLY : xundef
60 USE modd_sfx_oasis, ONLY : lcpl_sea,lcpl_seaice
61 
62 !
63 !
64 !
65 !
67 !
68 !
69 USE yomhook ,ONLY : lhook, dr_hook
70 USE parkind1 ,ONLY : jprb
71 !
72 IMPLICIT NONE
73 !
74 !* 0.1 Declarations of arguments
75 ! -------------------------
76 !
77 !
78 !
79 !
80 TYPE(diag_ocean_t), INTENT(INOUT) :: dgo
81 TYPE(diag_seaflux_t), INTENT(INOUT) :: dgs
82 TYPE(diag_seaice_t), INTENT(INOUT) :: dgsi
83 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
84 TYPE(seaflux_t), INTENT(INOUT) :: s
85 !
86 INTEGER, INTENT(IN) :: klu ! size of arrays
87 INTEGER, INTENT(IN) :: ksw ! number of SW spectral bands
88  CHARACTER(LEN=6), INTENT(IN):: hprogram ! program calling
89 !
90 !* 0.2 Declarations of local variables
91 ! -------------------------------
92 !
93 INTEGER :: iversion
94 INTEGER :: iresp ! IRESP : return-code if a problem appears
95  CHARACTER(LEN=12) :: yrec ! Name of the article to be read
96 !
97 REAL(KIND=JPRB) :: zhook_handle
98 !
99 !-------------------------------------------------------------------------------
100 !
101 !* surface energy budget
102 !
103 IF (lhook) CALL dr_hook('DIAG_SEAFLUX_INIT_N',0,zhook_handle)
104 ALLOCATE(dgs%XTS (klu))
105 ALLOCATE(dgs%XTSRAD(klu))
106 dgs%XTS = xundef
107 dgs%XTSRAD = xundef
108 !
109 IF (dgs%LSURF_BUDGET.OR.dgs%LSURF_BUDGETC) THEN
110  ALLOCATE(dgs%XRN (klu))
111  ALLOCATE(dgs%XRN_ICE (klu))
112  ALLOCATE(dgs%XH (klu))
113  ALLOCATE(dgs%XH_ICE (klu))
114  ALLOCATE(dgs%XLE (klu))
115  ALLOCATE(dgs%XLE_ICE (klu))
116  ALLOCATE(dgs%XGFLUX (klu))
117  ALLOCATE(dgs%XGFLUX_ICE(klu))
118  ALLOCATE(dgs%XEVAP (klu))
119  ALLOCATE(dgs%XSUBL (klu))
120  ALLOCATE(dgs%XSWD (klu))
121  ALLOCATE(dgs%XSWU (klu))
122  ALLOCATE(dgs%XSWU_ICE(klu))
123  ALLOCATE(dgs%XLWD (klu))
124  ALLOCATE(dgs%XLWU (klu))
125  ALLOCATE(dgs%XLWU_ICE(klu))
126  ALLOCATE(dgs%XSWBD (klu,ksw))
127  ALLOCATE(dgs%XSWBU (klu,ksw))
128  ALLOCATE(dgs%XSWBU_ICE(klu,ksw))
129  ALLOCATE(dgs%XFMU (klu))
130  ALLOCATE(dgs%XFMU_ICE(klu))
131  ALLOCATE(dgs%XFMV (klu))
132  ALLOCATE(dgs%XFMV_ICE(klu))
133  ALLOCATE(dgs%XALBT (klu))
134  !
135  dgs%XRN = xundef
136  dgs%XRN_ICE = xundef
137  dgs%XH = xundef
138  dgs%XH_ICE = xundef
139  dgs%XLE = xundef
140  dgs%XLE_ICE = xundef
141  dgs%XGFLUX = xundef
142  dgs%XGFLUX_ICE=xundef
143  dgs%XEVAP = xundef
144  dgs%XSUBL = xundef
145  dgs%XSWD = xundef
146  dgs%XSWU = xundef
147  dgs%XSWU_ICE = xundef
148  dgs%XLWD = xundef
149  dgs%XLWU = xundef
150  dgs%XLWU_ICE = xundef
151  dgs%XSWBD = xundef
152  dgs%XSWBU = xundef
153  dgs%XSWBU_ICE= xundef
154  dgs%XFMU = xundef
155  dgs%XFMU_ICE = xundef
156  dgs%XFMV = xundef
157  dgs%XFMV_ICE = xundef
158  dgs%XALBT = xundef
159  !
160 ELSE
161  ALLOCATE(dgs%XRN (0))
162  ALLOCATE(dgs%XRN_ICE (0))
163  ALLOCATE(dgs%XH (0))
164  ALLOCATE(dgs%XH_ICE (0))
165  ALLOCATE(dgs%XLE (0))
166  ALLOCATE(dgs%XLE_ICE (0))
167  ALLOCATE(dgs%XGFLUX (0))
168  ALLOCATE(dgs%XGFLUX_ICE(0))
169  ALLOCATE(dgs%XEVAP (0))
170  ALLOCATE(dgs%XSUBL (0))
171  ALLOCATE(dgs%XSWD (0))
172  ALLOCATE(dgs%XSWU (0))
173  ALLOCATE(dgs%XSWU_ICE(0))
174  ALLOCATE(dgs%XLWD (0))
175  ALLOCATE(dgs%XLWU (0))
176  ALLOCATE(dgs%XLWU_ICE(0))
177  ALLOCATE(dgs%XSWBD (0,0))
178  ALLOCATE(dgs%XSWBU (0,0))
179  ALLOCATE(dgs%XSWBU_ICE(0,0))
180  ALLOCATE(dgs%XFMU (0))
181  ALLOCATE(dgs%XFMU_ICE(0))
182  ALLOCATE(dgs%XFMV (0))
183  ALLOCATE(dgs%XFMV_ICE(0))
184  ALLOCATE(dgs%XALBT (0))
185 ENDIF
186 !
187 !* cumulative surface energy budget
188 !
189 #ifdef SFX_OL
190 IF (dgs%LSURF_BUDGETC .OR. (lrestart .AND. .NOT.dgs%LRESET_BUDGETC)) THEN
191 #else
192 IF (dgs%LSURF_BUDGETC .OR. .NOT.dgs%LRESET_BUDGETC) THEN
193 #endif
194 !
195  ALLOCATE(dgs%XRNC (klu))
196  ALLOCATE(dgs%XRNC_ICE(klu))
197  ALLOCATE(dgs%XHC (klu))
198  ALLOCATE(dgs%XHC_ICE (klu))
199  ALLOCATE(dgs%XLEC (klu))
200  ALLOCATE(dgs%XLEC_ICE(klu))
201  ALLOCATE(dgs%XGFLUXC (klu))
202  ALLOCATE(dgs%XGFLUXC_ICE(klu))
203  ALLOCATE(dgs%XEVAPC (klu))
204  ALLOCATE(dgs%XSUBLC (klu))
205  ALLOCATE(dgs%XSWDC (klu))
206  ALLOCATE(dgs%XSWUC (klu))
207  ALLOCATE(dgs%XSWUC_ICE(klu))
208  ALLOCATE(dgs%XLWDC (klu))
209  ALLOCATE(dgs%XLWUC (klu))
210  ALLOCATE(dgs%XLWUC_ICE(klu))
211  ALLOCATE(dgs%XFMUC (klu))
212  ALLOCATE(dgs%XFMUC_ICE(klu))
213  ALLOCATE(dgs%XFMVC (klu))
214  ALLOCATE(dgs%XFMVC_ICE(klu))
215 !
216  IF (.NOT. dgu%LREAD_BUDGETC) THEN
217  dgs%XRNC = 0.0
218  dgs%XRNC_ICE =0.0
219  dgs%XHC = 0.0
220  dgs%XHC_ICE =0.0
221  dgs%XLEC = 0.0
222  dgs%XLEC_ICE= 0.0
223  dgs%XGFLUXC = 0.0
224  dgs%XGFLUXC_ICE=0.0
225  dgs%XEVAPC = 0.0
226  dgs%XSUBLC = 0.0
227  dgs%XSWDC = 0.0
228  dgs%XSWUC = 0.0
229  dgs%XSWUC_ICE=0.0
230  dgs%XLWDC = 0.0
231  dgs%XLWUC = 0.0
232  dgs%XLWUC_ICE=0.0
233  dgs%XFMUC = 0.0
234  dgs%XFMUC_ICE=0.0
235  dgs%XFMVC = 0.0
236  dgs%XFMVC_ICE=0.0
237  ELSEIF (dgu%LREAD_BUDGETC.AND.dgs%LRESET_BUDGETC) THEN
238  dgs%XRNC = 0.0
239  dgs%XRNC_ICE= 0.0
240  dgs%XHC = 0.0
241  dgs%XHC_ICE = 0.0
242  dgs%XLEC = 0.0
243  dgs%XLEC_ICE= 0.0
244  dgs%XGFLUXC = 0.0
245  dgs%XGFLUXC_ICE=0.0
246  dgs%XEVAPC = 0.0
247  dgs%XSUBLC = 0.0
248  dgs%XSWDC = 0.0
249  dgs%XSWUC = 0.0
250  dgs%XSWUC_ICE=0.0
251  dgs%XLWDC = 0.0
252  dgs%XLWUC = 0.0
253  dgs%XLWUC_ICE=0.0
254  dgs%XFMUC = 0.0
255  dgs%XFMUC_ICE=0.0
256  dgs%XFMVC = 0.0
257  dgs%XFMVC_ICE=0.0
258  ELSE
259  CALL read_surf(&
260  hprogram,'VERSION',iversion,iresp)
261  yrec='RNC_SEA'
262  CALL read_surf(&
263  hprogram,yrec,dgs%XRNC,iresp)
264  yrec='HC_SEA'
265  CALL read_surf(&
266  hprogram,yrec,dgs%XHC ,iresp)
267  yrec='LEC_SEA'
268  CALL read_surf(&
269  hprogram,yrec,dgs%XLEC,iresp)
270  yrec='LEIC_SEA'
271  CALL read_surf(&
272  hprogram,yrec,dgs%XLEC_ICE,iresp)
273  yrec='GFLUXC_SEA'
274  CALL read_surf(&
275  hprogram,yrec,dgs%XGFLUXC ,iresp)
276  yrec='SWDC_SEA'
277  CALL read_surf(&
278  hprogram,yrec,dgs%XSWDC,iresp)
279  yrec='SWUC_SEA'
280  CALL read_surf(&
281  hprogram,yrec,dgs%XSWUC,iresp)
282  yrec='LWDC_SEA'
283  CALL read_surf(&
284  hprogram,yrec,dgs%XLWDC,iresp)
285  yrec='LWUC_SEA'
286  CALL read_surf(&
287  hprogram,yrec,dgs%XLWUC,iresp)
288  yrec='FMUC_SEA'
289  CALL read_surf(&
290  hprogram,yrec,dgs%XFMUC,iresp)
291  yrec='FMVC_SEA'
292  CALL read_surf(&
293  hprogram,yrec,dgs%XFMVC,iresp)
294  IF (iversion<8)THEN
295  dgs%XEVAPC = 0.0
296  dgs%XSUBLC = 0.0
297  ELSE
298  !
299  yrec='EVAPC_SEA'
300  CALL read_surf(&
301  hprogram,yrec,dgs%XEVAPC,iresp)
302  yrec='SUBLC_SEA'
303  CALL read_surf(&
304  hprogram,yrec,dgs%XSUBLC,iresp)
305  ENDIF
306  dgs%XRNC_ICE = 0.0
307  dgs%XHC_ICE = 0.0
308  dgs%XGFLUXC_ICE = 0.0
309  dgs%XSWUC_ICE = 0.0
310  dgs%XLWUC_ICE = 0.0
311  dgs%XFMUC_ICE = 0.0
312  dgs%XFMVC_ICE = 0.0
313  ENDIF
314 ELSE
315  ALLOCATE(dgs%XRNC (0))
316  ALLOCATE(dgs%XRNC_ICE(0))
317  ALLOCATE(dgs%XHC (0))
318  ALLOCATE(dgs%XHC_ICE (0))
319  ALLOCATE(dgs%XLEC (0))
320  ALLOCATE(dgs%XLEC_ICE(0))
321  ALLOCATE(dgs%XGFLUXC (0))
322  ALLOCATE(dgs%XGFLUXC_ICE(0))
323  ALLOCATE(dgs%XEVAPC (0))
324  ALLOCATE(dgs%XSUBLC (0))
325  ALLOCATE(dgs%XSWDC (0))
326  ALLOCATE(dgs%XSWUC (0))
327  ALLOCATE(dgs%XSWUC_ICE(0))
328  ALLOCATE(dgs%XLWDC (0))
329  ALLOCATE(dgs%XLWUC (0))
330  ALLOCATE(dgs%XLWUC_ICE(0))
331  ALLOCATE(dgs%XFMUC (0))
332  ALLOCATE(dgs%XFMUC_ICE(0))
333  ALLOCATE(dgs%XFMVC (0))
334  ALLOCATE(dgs%XFMVC_ICE(0))
335 ENDIF
336 !
337 !* parameters at 2m
338 !
339 IF (dgs%N2M>=1) THEN
340  ALLOCATE(dgs%XRI (klu))
341  ALLOCATE(dgs%XRI_ICE (klu))
342  ALLOCATE(dgs%XT2M (klu))
343  ALLOCATE(dgs%XT2M_ICE (klu))
344  ALLOCATE(dgs%XT2M_MIN (klu))
345  ALLOCATE(dgs%XT2M_MAX (klu))
346  ALLOCATE(dgs%XQ2M (klu))
347  ALLOCATE(dgs%XQ2M_ICE (klu))
348  ALLOCATE(dgs%XHU2M (klu))
349  ALLOCATE(dgs%XHU2M_ICE(klu))
350  ALLOCATE(dgs%XHU2M_MIN(klu))
351  ALLOCATE(dgs%XHU2M_MAX(klu))
352  ALLOCATE(dgs%XZON10M (klu))
353  ALLOCATE(dgs%XZON10M_ICE(klu))
354  ALLOCATE(dgs%XMER10M (klu))
355  ALLOCATE(dgs%XMER10M_ICE(klu))
356  ALLOCATE(dgs%XWIND10M (klu))
357  ALLOCATE(dgs%XWIND10M_ICE(klu))
358  ALLOCATE(dgs%XWIND10M_MAX(klu))
359  !
360  dgs%XRI = xundef
361  dgs%XRI_ICE = xundef
362  dgs%XT2M = xundef
363  dgs%XT2M_ICE = xundef
364  dgs%XT2M_MIN = xundef
365  dgs%XT2M_MAX = 0.0
366  dgs%XQ2M = xundef
367  dgs%XQ2M_ICE = xundef
368  dgs%XHU2M = xundef
369  dgs%XHU2M_ICE= xundef
370  dgs%XHU2M_MIN= xundef
371  dgs%XHU2M_MAX=-xundef
372  dgs%XZON10M = xundef
373  dgs%XZON10M_ICE=xundef
374  dgs%XMER10M = xundef
375  dgs%XMER10M_ICE=xundef
376  dgs%XWIND10M = xundef
377  dgs%XWIND10M_ICE=xundef
378  dgs%XWIND10M_MAX = 0.0
379 ELSE
380  ALLOCATE(dgs%XRI (0))
381  ALLOCATE(dgs%XRI_ICE (0))
382  ALLOCATE(dgs%XT2M (0))
383  ALLOCATE(dgs%XT2M_ICE (0))
384  ALLOCATE(dgs%XT2M_MIN (0))
385  ALLOCATE(dgs%XT2M_MAX (0))
386  ALLOCATE(dgs%XQ2M (0))
387  ALLOCATE(dgs%XQ2M_ICE (0))
388  ALLOCATE(dgs%XHU2M (0))
389  ALLOCATE(dgs%XHU2M_ICE(0))
390  ALLOCATE(dgs%XHU2M_MIN(0))
391  ALLOCATE(dgs%XHU2M_MAX(0))
392  ALLOCATE(dgs%XZON10M (0))
393  ALLOCATE(dgs%XZON10M_ICE(0))
394  ALLOCATE(dgs%XMER10M (0))
395  ALLOCATE(dgs%XMER10M_ICE(0))
396  ALLOCATE(dgs%XWIND10M (0))
397  ALLOCATE(dgs%XWIND10M_ICE(0))
398  ALLOCATE(dgs%XWIND10M_MAX(0))
399 END IF
400 !
401 !* transfer coefficients
402 !
403 IF (dgs%LCOEF) THEN
404  ALLOCATE(dgs%XCD (klu))
405  ALLOCATE(dgs%XCD_ICE (klu))
406  ALLOCATE(dgs%XCH (klu))
407  ALLOCATE(dgs%XCH_ICE (klu))
408  ALLOCATE(dgs%XCE (klu))
409  ALLOCATE(dgs%XZ0 (klu))
410  ALLOCATE(dgs%XZ0_ICE (klu))
411  ALLOCATE(dgs%XZ0H (klu))
412  ALLOCATE(dgs%XZ0H_ICE(klu))
413  !
414  dgs%XCD = xundef
415  dgs%XCD_ICE = xundef
416  dgs%XCH = xundef
417  dgs%XCH_ICE = xundef
418  dgs%XCE = xundef
419  dgs%XZ0 = xundef
420  dgs%XZ0_ICE = xundef
421  dgs%XZ0H = xundef
422  dgs%XZ0H_ICE = xundef
423 ELSE
424  ALLOCATE(dgs%XCD (0))
425  ALLOCATE(dgs%XCD_ICE (0))
426  ALLOCATE(dgs%XCH (0))
427  ALLOCATE(dgs%XCH_ICE (0))
428  ALLOCATE(dgs%XCE (0))
429  ALLOCATE(dgs%XZ0 (0))
430  ALLOCATE(dgs%XZ0_ICE (0))
431  ALLOCATE(dgs%XZ0H (0))
432  ALLOCATE(dgs%XZ0H_ICE(0))
433 END IF
434 !
435 !
436 !* surface humidity
437 !
438 IF (dgs%LSURF_VARS) THEN
439  ALLOCATE(dgs%XQS (klu))
440  ALLOCATE(dgs%XQS_ICE (klu))
441  !
442  dgs%XQS = xundef
443  dgs%XQS_ICE = xundef
444 ELSE
445  ALLOCATE(dgs%XQS (0))
446  ALLOCATE(dgs%XQS_ICE (0))
447 END IF
448 !
449 !* ocean diag
450 !
451 IF (dgo%LDIAG_OCEAN) THEN
452  ALLOCATE(dgo%XTOCMOY (klu))
453  ALLOCATE(dgo%XSOCMOY (klu))
454  ALLOCATE(dgo%XUOCMOY (klu))
455  ALLOCATE(dgo%XVOCMOY (klu))
456  ALLOCATE(dgo%XDOCMOY (klu))
457  !
458  dgo%XTOCMOY(:)=xundef
459  dgo%XSOCMOY(:)=xundef
460  dgo%XUOCMOY(:)=xundef
461  dgo%XVOCMOY(:)=xundef
462  dgo%XDOCMOY(:)=xundef
463 ELSE
464  ALLOCATE(dgo%XTOCMOY (0))
465  ALLOCATE(dgo%XSOCMOY (0))
466  ALLOCATE(dgo%XUOCMOY (0))
467  ALLOCATE(dgo%XVOCMOY (0))
468  ALLOCATE(dgo%XDOCMOY (0))
469 ENDIF
470 !
471 !* Seaice model diagnostics init
472 !
473 IF (dgsi%LDIAG_SEAICE) THEN
474  ALLOCATE(dgsi%XSIT(klu))
475  dgsi%XSIT=xundef
476  ALLOCATE(dgsi%XSND(klu))
477  dgsi%XSND=xundef
478  ALLOCATE(dgsi%XMLT(klu))
479  dgsi%XMLT=xundef
480 ELSE
481  ALLOCATE(dgsi%XSIT (0))
482  ALLOCATE(dgsi%XSND (0))
483  ALLOCATE(dgsi%XMLT (0))
484 ENDIF
485 !
486 !* Earth system model coupling variables
487 !
488 IF(lcpl_sea.OR.s%LHANDLE_SIC)THEN
489 !
490  ALLOCATE(s%XCPL_SEA_WIND(klu))
491  ALLOCATE(s%XCPL_SEA_FWSU(klu))
492  ALLOCATE(s%XCPL_SEA_FWSV(klu))
493  ALLOCATE(s%XCPL_SEA_SNET(klu))
494  ALLOCATE(s%XCPL_SEA_HEAT(klu))
495  ALLOCATE(s%XCPL_SEA_EVAP(klu))
496  ALLOCATE(s%XCPL_SEA_RAIN(klu))
497  ALLOCATE(s%XCPL_SEA_SNOW(klu))
498  ALLOCATE(s%XCPL_SEA_FWSM(klu))
499  s%XCPL_SEA_WIND(:) = 0.0
500  s%XCPL_SEA_FWSU(:) = 0.0
501  s%XCPL_SEA_FWSV(:) = 0.0
502  s%XCPL_SEA_SNET(:) = 0.0
503  s%XCPL_SEA_HEAT(:) = 0.0
504  s%XCPL_SEA_EVAP(:) = 0.0
505  s%XCPL_SEA_RAIN(:) = 0.0
506  s%XCPL_SEA_SNOW(:) = 0.0
507  s%XCPL_SEA_FWSM(:) = 0.0
508 !
509 ELSE
510  ALLOCATE(s%XCPL_SEA_WIND(0))
511  ALLOCATE(s%XCPL_SEA_FWSU(0))
512  ALLOCATE(s%XCPL_SEA_FWSV(0))
513  ALLOCATE(s%XCPL_SEA_SNET(0))
514  ALLOCATE(s%XCPL_SEA_HEAT(0))
515  ALLOCATE(s%XCPL_SEA_EVAP(0))
516  ALLOCATE(s%XCPL_SEA_RAIN(0))
517  ALLOCATE(s%XCPL_SEA_SNOW(0))
518  ALLOCATE(s%XCPL_SEA_FWSM(0))
519 ENDIF
520 !
521 IF(lcpl_seaice.OR.s%LHANDLE_SIC)THEN
522  ALLOCATE(s%XCPL_SEAICE_SNET(klu))
523  ALLOCATE(s%XCPL_SEAICE_HEAT(klu))
524  ALLOCATE(s%XCPL_SEAICE_EVAP(klu))
525  s%XCPL_SEAICE_SNET(:) = 0.0
526  s%XCPL_SEAICE_HEAT(:) = 0.0
527  s%XCPL_SEAICE_EVAP(:) = 0.0
528 ELSE
529  ALLOCATE(s%XCPL_SEAICE_SNET(0))
530  ALLOCATE(s%XCPL_SEAICE_HEAT(0))
531  ALLOCATE(s%XCPL_SEAICE_EVAP(0))
532 ENDIF
533 !
534 IF (lhook) CALL dr_hook('DIAG_SEAFLUX_INIT_N',1,zhook_handle)
535 !
536 !-------------------------------------------------------------------------------
537 !
538 END SUBROUTINE diag_seaflux_init_n
subroutine diag_seaflux_init_n(DGO, DGS, DGSI, DGU, S, HPROGRAM, KLU, KSW)