SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
init_outfn_sean.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 init_outfn_sea_n (CHS, DGO, DGS, DGSI, DGU, O, S, SSB, UG, U, &
7  hprogram,kluout)
8 ! ###############################
9 !
10 !!**** *INIT_OUTFN_SEA_n* - create output files and defines variables
11 !!
12 !! PURPOSE
13 !! -------
14 !!
15 !!** METHOD
16 !! ------
17 !!
18 !! EXTERNAL
19 !! --------
20 !!
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !! REFERENCE
26 !! ---------
27 !!
28 !!
29 !! AUTHOR
30 !! ------
31 !! P. LeMoigne *Meteo France*
32 !!
33 !! MODIFICATIONS
34 !! -------------
35 !! Original 04-04 P. LeMoigne
36 !! modified 06-13 B. Decharme : Delete LPROVAR_TO_DIAG here
37 !! Add diag (Evap, Subl), GELATO
38 !-------------------------------------------------------------------------------
39 !
40 !* 0. DECLARATIONS
41 ! ------------
42 !
43 !
44 !
45 !
46 !
52 USE modd_ocean_n, ONLY : ocean_t
53 USE modd_seaflux_n, ONLY : seaflux_t
56 USE modd_surf_atm_n, ONLY : surf_atm_t
57 !
58 USE modd_sfx_oasis, ONLY : lcpl_seaice
59 USE modd_ol_fileid, ONLY : xvar_to_fileout, xid, xout
60 USE modd_ocean_grid, ONLY: nockmin, nockmax
61 !
62 !
63 USE modn_io_offline, ONLY: xtstep_output
64 !
65 USE modi_get_dim_full_n
66 USE modi_ol_define_dim
67 USE modi_get_date_ol
68 USE modi_create_file
69 USE modi_def_var_netcdf
70 USE modi_ol_write_coord
71 !
72 USE yomhook ,ONLY : lhook, dr_hook
73 USE parkind1 ,ONLY : jprb
74 !
75 IMPLICIT NONE
76 include 'netcdf.inc'
77 
78 !
79 TYPE(ch_seaflux_t), INTENT(INOUT) :: chs
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(ocean_t), INTENT(INOUT) :: o
85 TYPE(seaflux_t), INTENT(INOUT) :: s
86 TYPE(seaflux_sbl_t), INTENT(INOUT) :: ssb
87 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
88 TYPE(surf_atm_t), INTENT(INOUT) :: u
89 !
90  CHARACTER(LEN=6), INTENT(IN) :: hprogram
91 INTEGER, INTENT(IN) :: kluout
92 !
93 !* 0.2 Declarations of local variables
94 ! -------------------------------
95 !
96  CHARACTER(LEN=100), DIMENSION(:), POINTER :: yname_dim
97  CHARACTER(LEN=100), DIMENSION(1) :: yatt_title, yatt
98  CHARACTER(LEN=40),DIMENSION(1) :: ydate
99  CHARACTER(LEN=13),DIMENSION(1) :: yunit1, yunit2
100  CHARACTER(LEN=100) :: ycomment
101  CHARACTER(LEN=50) :: yfile
102  CHARACTER(LEN=12) :: yrecfm
103  CHARACTER(LEN=3) :: ypas, ylvl
104 !
105 INTEGER, DIMENSION(:), POINTER :: idims, iddim, iddim1
106 INTEGER :: ini
107 INTEGER :: jlayer
108 INTEGER :: idim1
109 INTEGER :: ifile_id, jsv, jret
110 LOGICAL :: gmisc
111 !
112 REAL,DIMENSION(:), POINTER :: zx, zy
113 !
114 REAL(KIND=JPRB) :: zhook_handle
115 !
116 !-------------------------------------------------------------------------------
117 
118 ! 1. Compute output lenght dimension
119 !-----------------------------------
120 IF (lhook) CALL dr_hook('INIT_OUTFN_SEA_N',0,zhook_handle)
121  CALL get_dim_full_n(u, &
122  ini)
123  CALL ol_define_dim(ug, u, &
124  hprogram, kluout, ini, idim1, yunit1, yunit2, &
125  zx, zy, idims, iddim, yname_dim)
126  CALL get_date_ol(s%TTIME,xtstep_output,ydate(1))
127 !
128 ! 4. Create output file for fluxes values
129 !----------------------------------------------------------
130 !
131 IF (ALLOCATED(xvar_to_fileout)) DEALLOCATE(xvar_to_fileout)
132 IF (ALLOCATED(xid)) DEALLOCATE(xid)
133 ALLOCATE(xid(0))
134 xout=0
135 !
136 yatt_title(1)='units'
137 !
138 yfile='SEAFLUX_DIAGNOSTICS.OUT.nc'
139  CALL create_file(yfile,idims,yname_dim,ifile_id,iddim)
140 jret=nf_redef(ifile_id)
141 yatt='dimensionless'
142 !
143 gmisc=(dgs%N2M>=1.OR.dgs%LSURF_BUDGET.OR.dgs%LSURF_BUDGETC)
144 IF (gmisc.AND.s%LHANDLE_SIC) THEN
145  yatt='K'
146  CALL def_var_netcdf(dgu, &
147  ifile_id,'TS_SEA' ,'Surface_temperature_over_sea',iddim,yatt_title,yatt)
148  CALL def_var_netcdf(dgu, &
149  ifile_id,'TSRAD_SEA','Surface_radiative_temperature_over_sea',iddim,yatt_title,yatt)
150 ENDIF
151 !
152 IF (dgs%LCOEF) THEN
153  yatt='W/s2'
154  CALL def_var_netcdf(dgu, &
155  ifile_id,'CD_SEA' ,'Drag_Coefficient_For_Momentum ',iddim,yatt_title,yatt)
156  yatt='W/s'
157  CALL def_var_netcdf(dgu, &
158  ifile_id,'CH_SEA' ,'Drag_Coefficient_For_Heat ',iddim,yatt_title,yatt)
159  yatt='W/s/K'
160  CALL def_var_netcdf(dgu, &
161  ifile_id,'CE_SEA' ,'Drag_Coefficient_For_Evaporation',iddim,yatt_title,yatt)
162  yatt='m'
163  CALL def_var_netcdf(dgu, &
164  ifile_id,'Z0_SEA' ,'Roughness_Length_For_Momentum ',iddim,yatt_title,yatt)
165  CALL def_var_netcdf(dgu, &
166  ifile_id,'Z0H_SEA' ,'Roughness_Length_For_Heat ',iddim,yatt_title,yatt)
167 ENDIF
168 !
169 IF (dgs%LSURF_VARS) THEN
170  yatt='kg/kg'
171  CALL def_var_netcdf(dgu, &
172  ifile_id,'QS_SEA' ,'Surface_Humidity ' ,iddim,yatt_title,yatt)
173 ENDIF
174 !
175 IF (dgs%N2M>0) THEN
176  yatt='K'
177  CALL def_var_netcdf(dgu, &
178  ifile_id,'T2M_SEA' ,'2m_Temperature ' ,iddim,yatt_title,yatt)
179  CALL def_var_netcdf(dgu, &
180  ifile_id,'T2MMIN_SEA' ,'Minimum_2m_Temperature ' ,iddim,yatt_title,yatt)
181  CALL def_var_netcdf(dgu, &
182  ifile_id,'T2MMAX_SEA' ,'Maximum_2m_Temperature ' ,iddim,yatt_title,yatt)
183  yatt='kg/kg'
184  CALL def_var_netcdf(dgu, &
185  ifile_id,'Q2M_SEA' ,'2m_Specific_Humidity ' ,iddim,yatt_title,yatt)
186  yatt='(-)'
187  CALL def_var_netcdf(dgu, &
188  ifile_id,'HU2M_SEA','2m_Relative_Humidity ' ,iddim,yatt_title,yatt)
189  CALL def_var_netcdf(dgu, &
190  ifile_id,'HU2MMIN_SEA','Minimum_2m_Relative_Humidity ' ,iddim,yatt_title,yatt)
191  CALL def_var_netcdf(dgu, &
192  ifile_id,'HU2MMAX_SEA','Maximum_2m_Relative_Humidity ' ,iddim,yatt_title,yatt)
193  yatt='m/s'
194  CALL def_var_netcdf(dgu, &
195  ifile_id,'ZON10M_SEA','10m_Zonal_wind ' ,iddim,yatt_title,yatt)
196  CALL def_var_netcdf(dgu, &
197  ifile_id,'MER10M_SEA','10m_Meridian_Wind ' ,iddim,yatt_title,yatt)
198  CALL def_var_netcdf(dgu, &
199  ifile_id,'W10M_SEA','10m_Wind ' ,iddim,yatt_title,yatt)
200  CALL def_var_netcdf(dgu, &
201  ifile_id,'W10MMAX_SEA','Maximum_10m_Wind ' ,iddim,yatt_title,yatt)
202 ENDIF
203 !
204 IF (dgs%N2M>0) THEN
205  yatt='-'
206  CALL def_var_netcdf(dgu, &
207  ifile_id,'RI_SEA' ,'Averaged_Richardson_Number' ,iddim,yatt_title,yatt)
208 ENDIF
209 !
210 IF (dgs%LSURF_BUDGET) THEN
211  yatt='W/m2'
212  CALL def_var_netcdf(dgu, &
213  ifile_id,'RN_SEA' ,'Averaged_Net_Radiation' ,iddim,yatt_title,yatt)
214  CALL def_var_netcdf(dgu, &
215  ifile_id,'H_SEA' ,'Averaged_Sensible_Heat_Flux' ,iddim,yatt_title,yatt)
216  CALL def_var_netcdf(dgu, &
217  ifile_id,'LE_SEA' ,'Averaged_Total_Latent_Heat_Flux ' ,iddim,yatt_title,yatt)
218  IF(.NOT.dgsi%LDIAG_SEAICE) THEN
219  CALL def_var_netcdf(dgu, &
220  ifile_id,'LEI_SEA' ,'Averaged_SublimationLatent_Heat_Flux ' ,iddim,yatt_title,yatt)
221  ENDIF
222  CALL def_var_netcdf(dgu, &
223  ifile_id,'GFLUX_SEA','Averaged_Ground_Heat_Flux ' ,iddim,yatt_title,yatt)
224  IF(dgs%LRAD_BUDGET)THEN
225  CALL def_var_netcdf(dgu, &
226  ifile_id,'SWD_SEA' ,'Averaged_Downward_SW ' ,iddim,yatt_title,yatt)
227  CALL def_var_netcdf(dgu, &
228  ifile_id,'SWU_SEA' ,'Averaged_Upward_SW ' ,iddim,yatt_title,yatt)
229  CALL def_var_netcdf(dgu, &
230  ifile_id,'LWD_SEA' ,'Averaged_Downward_LW ' ,iddim,yatt_title,yatt)
231  CALL def_var_netcdf(dgu, &
232  ifile_id,'LWU_SEA' ,'Averaged_Upward_LW ' ,iddim,yatt_title,yatt)
233  ENDIF
234  yatt='kg/ms2'
235  CALL def_var_netcdf(dgu, &
236  ifile_id,'FMU_SEA' ,'Averaged_Zonal_Wind_Stress ' ,iddim,yatt_title,yatt)
237  CALL def_var_netcdf(dgu, &
238  ifile_id,'FMV_SEA' ,'Averaged_Merid_Wind_Stress ' ,iddim,yatt_title,yatt)
239  yatt='kg/m2/s'
240  CALL def_var_netcdf(dgu, &
241  ifile_id,'EVAP_SEA' ,'Averaged_Total_Evaporation' ,iddim,yatt_title,yatt)
242  CALL def_var_netcdf(dgu, &
243  ifile_id,'SUBL_SEA' ,'Averaged_Sublimation_of_seaice',iddim,yatt_title,yatt)
244 ENDIF
245 !
246 IF (dgs%LSURF_BUDGET.OR.dgs%LSURF_BUDGETC) THEN
247  yatt='-'
248  CALL def_var_netcdf(dgu, &
249  ifile_id,'TALB_SEA' , 'Sea_total_albedo ' ,iddim,yatt_title,yatt)
250 ENDIF
251 !
252 IF (dgo%LDIAG_OCEAN) THEN
253  ! Mean cmo temperature
254  yatt='K'
255  CALL def_var_netcdf(dgu, &
256  ifile_id,'TOML','Mean cmo Tempe ',iddim,yatt_title,yatt)
257  ! Mean cmo salinity
258  yatt='psu'
259  CALL def_var_netcdf(dgu, &
260  ifile_id,'SOML','Mean cmo Salin ',iddim,yatt_title,yatt)
261  ! Mean cmo U-current
262  yatt='m/s'
263  CALL def_var_netcdf(dgu, &
264  ifile_id,'UOML','Mean cmo U-cur ',iddim,yatt_title,yatt)
265  ! Mean cmo V-current
266  yatt='m/s'
267  CALL def_var_netcdf(dgu, &
268  ifile_id,'VOML','Mean cmo V-cur ',iddim,yatt_title,yatt)
269  ! Mean cmo density
270  yatt='Kg/m3'
271  CALL def_var_netcdf(dgu, &
272  ifile_id,'DOML','Mean cmo Densi ',iddim,yatt_title,yatt)
273 
274 ENDIF
275 !
276 IF (chs%SVS%NBEQ>0 .AND. chs%CCH_DRY_DEP=="WES89 ") THEN
277  !
278  yatt="(m/s)"
279  !
280  DO jsv = 1,SIZE(chs%CCH_NAMES,1)
281  !
282  yrecfm = 'DV_SEA_'//trim(chs%CCH_NAMES(jsv))
283  WRITE(ycomment,'(A7,I3.3)')'DV_SEA_',jsv
284  CALL def_var_netcdf(dgu, &
285  ifile_id,yrecfm,ycomment,iddim,yatt_title,yatt)
286  !
287  ENDDO
288  !
289 END IF
290 !
291 IF (dgsi%LDIAG_SEAICE) THEN
292 !
293  IF (trim(s%CSEAICE_SCHEME) == 'GELATO') THEN
294  yatt='m'
295  CALL def_var_netcdf(dgu, &
296  ifile_id,'SIT','Sea Ice Thickness ',iddim,yatt_title,yatt)
297  yatt='-'
298  CALL def_var_netcdf(dgu, &
299  ifile_id,'SIC','Sea Ice Cover ',iddim,yatt_title,yatt)
300  yatt='m'
301  CALL def_var_netcdf(dgu, &
302  ifile_id,'SND','Sea Ice Snow Depth ',iddim,yatt_title,yatt)
303  yatt='K'
304  CALL def_var_netcdf(dgu, &
305  ifile_id,'MLT','Sea Mixed Layer temp for Gelato ',iddim,yatt_title,yatt)
306  ENDIF
307  IF(lcpl_seaice.OR.s%LHANDLE_SIC)THEN
308  yatt='K'
309  CALL def_var_netcdf(dgu, &
310  ifile_id,'TSICE','Sea Ice Temperature ',iddim,yatt_title,yatt)
311  yatt='-'
312  CALL def_var_netcdf(dgu, &
313  ifile_id,'IALB','Sea Ice Albedo ',iddim,yatt_title,yatt)
314  ENDIF
315  IF (dgs%N2M>0) THEN
316  yatt='-'
317  CALL def_var_netcdf(dgu, &
318  ifile_id,'RI_SEAICE','Sea Ice Richardson_Number',iddim,yatt_title,yatt)
319  ENDIF
320  yatt='W/m2'
321  IF (dgs%LSURF_BUDGET) THEN
322  CALL def_var_netcdf(dgu, &
323  ifile_id,'RN_SEAICE','Sea Ice Net_Radiation',iddim,yatt_title,yatt)
324  CALL def_var_netcdf(dgu, &
325  ifile_id,'H_SEAICE','Sea Ice Sensible_Heat_Flux',iddim,yatt_title,yatt)
326  CALL def_var_netcdf(dgu, &
327  ifile_id,'LE_SEAICE' ,'Averaged_SublimationLatent_Heat_Flux ' ,iddim,yatt_title,yatt)
328  CALL def_var_netcdf(dgu, &
329  ifile_id,'GFLX_SEAICE','Sea Ice Ground_Heat_Flux ',iddim,yatt_title,yatt)
330  IF(dgs%LRAD_BUDGET)THEN
331  CALL def_var_netcdf(dgu, &
332  ifile_id,'LWU_SEAICE','Sea Ice Upward_LW',iddim,yatt_title,yatt)
333  CALL def_var_netcdf(dgu, &
334  ifile_id,'SWU_SEAICE','Sea Ice Upward_SW',iddim,yatt_title,yatt)
335  ENDIF
336  ENDIF
337  yatt='kg/ms2'
338  CALL def_var_netcdf(dgu, &
339  ifile_id,'FMU_SEAICE','Sea Ice Zonal_Wind_Stress',iddim,yatt_title,yatt)
340  CALL def_var_netcdf(dgu, &
341  ifile_id,'FMV_SEAICE','Sea Ice Meridian_Wind_Stress',iddim,yatt_title,yatt)
342  IF (dgs%LCOEF) THEN
343  yatt='W/s2'
344  CALL def_var_netcdf(dgu, &
345  ifile_id,'CD_SEAICE','Sea Ice Drag_Coefficient_For_Momentum',iddim,yatt_title,yatt)
346  yatt='W/s'
347  CALL def_var_netcdf(dgu, &
348  ifile_id,'CH_SEAICE','Sea Ice Drag_Coefficient_For_Heat',iddim,yatt_title,yatt)
349  yatt='m'
350  CALL def_var_netcdf(dgu, &
351  ifile_id,'Z0_SEAICE','Sea Ice Roughness_Length_For_Momentum',iddim,yatt_title,yatt)
352  CALL def_var_netcdf(dgu, &
353  ifile_id,'Z0H_SEAICE','Sea Ice Roughness_Length_For_Heat',iddim,yatt_title,yatt)
354  yatt='kg/kg'
355  ENDIF
356  IF (dgs%LSURF_VARS) THEN
357  CALL def_var_netcdf(dgu, &
358  ifile_id,'QS_SEAICE','Sea Ice Surface_Humidity',iddim,yatt_title,yatt)
359  yatt='K'
360  ENDIF
361  IF (dgs%N2M>0) THEN
362  CALL def_var_netcdf(dgu, &
363  ifile_id,'T2M_SEAICE','Sea Ice 2m_Temperature',iddim,yatt_title,yatt)
364  yatt='kg/kg'
365  CALL def_var_netcdf(dgu, &
366  ifile_id,'Q2M_SEAICE','Sea Ice 2m_Specific_Humidity ',iddim,yatt_title,yatt)
367  yatt='-'
368  CALL def_var_netcdf(dgu, &
369  ifile_id,'HU2M_SEAICE','Sea Ice 2m_Relative_Humidity',iddim,yatt_title,yatt)
370  yatt='m/s'
371  CALL def_var_netcdf(dgu, &
372  ifile_id,'ZON10M_SEAICE','Sea Ice 10m_Zonal_wind ',iddim,yatt_title,yatt)
373  CALL def_var_netcdf(dgu, &
374  ifile_id,'MER10M_SEAICE','Sea Ice 10m_Meridian_Wind',iddim,yatt_title,yatt)
375  CALL def_var_netcdf(dgu, &
376  ifile_id,'W10M_SEAICE','Sea Ice 10m_Wind',iddim,yatt_title,yatt)
377  ENDIF
378 ENDIF
379 !
380  CALL ol_write_coord(dgu, &
381  yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
382 !
383 IF (dgs%LSURF_BUDGETC) THEN
384  !
385  yfile='SEAFLUX_DIAG_CUMUL.OUT.nc'
386  CALL create_file(yfile,idims,yname_dim,ifile_id,iddim)
387  jret=nf_redef(ifile_id)
388  !
389  yatt='J/m2'
390  CALL def_var_netcdf(dgu, &
391  ifile_id,'RNC_SEA' ,'Cumulated_Averaged_Net_Radiation' ,iddim,yatt_title,yatt)
392  CALL def_var_netcdf(dgu, &
393  ifile_id,'HC_SEA' ,'Cumulated_Averaged_Sensible_Heat_Flux' ,iddim,yatt_title,yatt)
394  CALL def_var_netcdf(dgu, &
395  ifile_id,'LEC_SEA' ,'Cumulated_Averaged_Total_Latent_Heat_Flux',iddim,yatt_title,yatt)
396  IF (.NOT.dgsi%LDIAG_SEAICE) THEN
397  CALL def_var_netcdf(dgu, &
398  ifile_id,'LEIC_SEA' ,'Cumulated_Averaged_Sublimation_Latent_Heat_Flux',iddim,yatt_title,yatt)
399  ENDIF
400  CALL def_var_netcdf(dgu, &
401  ifile_id,'GFLUXC_SEA','Cumulated_Averaged_Ground_Heat_Flux' ,iddim,yatt_title,yatt)
402  IF(dgs%LRAD_BUDGET)THEN
403  CALL def_var_netcdf(dgu, &
404  ifile_id,'SWDC_SEA' ,'Cumulated_Averaged_Downward_SW ' ,iddim,yatt_title,yatt)
405  CALL def_var_netcdf(dgu, &
406  ifile_id,'SWUC_SEA' ,'Cumulated_Averaged_Upward_SW ' ,iddim,yatt_title,yatt)
407  CALL def_var_netcdf(dgu, &
408  ifile_id,'LWDC_SEA' ,'Cumulated_Averaged_Downward_LW ' ,iddim,yatt_title,yatt)
409  CALL def_var_netcdf(dgu, &
410  ifile_id,'LWUC_SEA' ,'Cumulated_Averaged_Upward_LW ' ,iddim,yatt_title,yatt)
411  ENDIF
412  yatt='kg/ms'
413  CALL def_var_netcdf(dgu, &
414  ifile_id,'FMUC_SEA' ,'Cumulated_Averaged_Zonal_Wind_Stress ' ,iddim,yatt_title,yatt)
415  CALL def_var_netcdf(dgu, &
416  ifile_id,'FMVC_SEA' ,'Cumulated_Averaged_Merid_Wind_Stress ' ,iddim,yatt_title,yatt)
417  yatt='kg/m2'
418  CALL def_var_netcdf(dgu, &
419  ifile_id,'EVAPC_SEA' ,'Cumulated_Averaged_Total_Evaporation' ,iddim,yatt_title,yatt)
420  CALL def_var_netcdf(dgu, &
421  ifile_id,'SUBLC_SEA' ,'Cumulated_Averaged_Sublimation_of_seaice',iddim,yatt_title,yatt)
422  !
423  IF (dgsi%LDIAG_SEAICE) THEN
424  yatt='J/m2'
425  CALL def_var_netcdf(dgu, &
426  ifile_id,'RNC_SEAICE','Cumulated_Seaice_Net_Radiation',iddim,yatt_title,yatt)
427  CALL def_var_netcdf(dgu, &
428  ifile_id,'HC_SEAICE','Cumulated_Seaice_Sensible_Heat_Flux',iddim,yatt_title,yatt)
429  CALL def_var_netcdf(dgu, &
430  ifile_id,'LEC_SEAICE' ,'Cumulated_Averaged_Sublimation_Latent_Heat_Flux',iddim,yatt_title,yatt)
431  CALL def_var_netcdf(dgu, &
432  ifile_id,'GFLXC_SEAICE','Cumulated_Seaice_Ground_Heat_Flux',iddim,yatt_title,yatt)
433  IF(dgs%LRAD_BUDGET)THEN
434  CALL def_var_netcdf(dgu, &
435  ifile_id,'SWUC_SEAICE','Cumulated_Seaice_Upward_SW',iddim,yatt_title,yatt)
436  CALL def_var_netcdf(dgu, &
437  ifile_id,'LWUC_SEAICE','Cumulated_Seaice_Upward_LW',iddim,yatt_title,yatt)
438  ENDIF
439  yatt='kg/ms'
440  CALL def_var_netcdf(dgu, &
441  ifile_id,'FMUC_SEAICE','Cumulated_Seaice_Zonal_Wind_Stress',iddim,yatt_title,yatt)
442  CALL def_var_netcdf(dgu, &
443  ifile_id,'FMVC_SEAICE','Cumulated_Seaice_Merid_Wind_Stress',iddim,yatt_title,yatt)
444  ENDIF
445  !
446  CALL ol_write_coord(dgu, &
447  yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
448  !
449 ENDIF
450 !
451 yfile='SEAFLUX_PROGNOSTIC.OUT.nc'
452  CALL create_file(yfile,idims,yname_dim,ifile_id,iddim)
453 jret=nf_redef(ifile_id)
454 !
455 yatt='K'
456  CALL def_var_netcdf(dgu, &
457  ifile_id,'SST' ,'Sea_Surface_Temperature' ,iddim,yatt_title,yatt)
458 !
459 yatt='m'
460  CALL def_var_netcdf(dgu, &
461  ifile_id,'Z0SEA' ,'Roughness_Length' ,iddim,yatt_title,yatt)
462 !
463 IF(o%LMERCATOR)THEN
464 !
465  DO jlayer=nockmin+1,nockmax
466  IF (jlayer<10) THEN
467  WRITE(ypas,'(I1.1,1X)') jlayer
468  ELSE
469  WRITE(ypas,'(I2.2,1X)') jlayer
470  ENDIF
471  ylvl=adjustl(ypas(:len_trim(ypas)))
472  ! Ocean temperature
473  yatt='K'
474  CALL def_var_netcdf(dgu, &
475  ifile_id,'TEMP_OC'//ylvl,'Ocean Tempe '//ylvl ,iddim,yatt_title,yatt)
476  ! Ocean salinity
477  yatt='psu'
478  CALL def_var_netcdf(dgu, &
479  ifile_id,'SALT_OC'//ylvl,'Ocean Salinity '//ylvl ,iddim,yatt_title,yatt)
480  ! Ocean U-current
481  yatt='m/s'
482  CALL def_var_netcdf(dgu, &
483  ifile_id,'UCUR_OC'//ylvl,'Ocean U-cur '//ylvl ,iddim,yatt_title,yatt)
484  ! Ocean V-current
485  yatt='m/s'
486  CALL def_var_netcdf(dgu, &
487  ifile_id,'VCUR_OC'//ylvl,'Ocean V-cur '//ylvl ,iddim,yatt_title,yatt)
488  ! Ocean TKE
489  yatt='J'
490  CALL def_var_netcdf(dgu, &
491  ifile_id,'TKE_OC'//ylvl,'Ocean TKE '//ylvl ,iddim,yatt_title,yatt)
492  ! Ocean mixing coeff
493  yatt='m2/s'
494  CALL def_var_netcdf(dgu, &
495  ifile_id,'KMEL_OC'//ylvl,'Ocean KMEL '//ylvl ,iddim,yatt_title,yatt)
496  ! Relaxation temperature
497  yatt='K/s'
498  CALL def_var_netcdf(dgu, &
499  ifile_id,'T_OC_REL'//ylvl,'Ocean T rel'//ylvl ,iddim,yatt_title,yatt)
500  ! Relaxation salinity
501  yatt='psu/s'
502  CALL def_var_netcdf(dgu, &
503  ifile_id,'S_OC_REL'//ylvl,'Ocean S rel'//ylvl ,iddim,yatt_title,yatt)
504  ! Relaxation U
505  yatt='m/s2'
506  CALL def_var_netcdf(dgu, &
507  ifile_id,'U_OC_REL'//ylvl,'Ocean U rel'//ylvl ,iddim,yatt_title,yatt)
508  ! Relaxation V
509  yatt='m/s2'
510  CALL def_var_netcdf(dgu, &
511  ifile_id,'V_OC_REL'//ylvl,'Ocean V rel'//ylvl ,iddim,yatt_title,yatt)
512  END DO
513 !
514 ENDIF
515 !
516 IF (s%LSBL) THEN
517  ! 6.1 Heights
518  yatt = 'm'
519  DO jlayer=1,ssb%NLVL
520  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
521  CALL def_var_netcdf(dgu, &
522  ifile_id,'SEA_SBL_Z'//ylvl,'Height_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
523  END DO
524  ! 6.2 Wind
525  yatt = 'm/s'
526  DO jlayer=1,ssb%NLVL
527  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
528  CALL def_var_netcdf(dgu, &
529  ifile_id,'SEA_SBL_U'//ylvl,'Wind_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
530  END DO
531  ! 6.3 Temperature
532  yatt = 'K'
533  DO jlayer=1,ssb%NLVL
534  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
535  CALL def_var_netcdf(dgu, &
536  ifile_id,'SEA_SBL_T'//ylvl,'Temperature_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
537  END DO
538  ! 6.4 Temperature
539  yatt = 'kg/m3'
540  DO jlayer=1,ssb%NLVL
541  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
542  CALL def_var_netcdf(dgu, &
543  ifile_id,'SEA_SBL_Q'//ylvl,'Humidity_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
544  END DO
545  ! 6.5 Turbulence
546  yatt = 'm2/s2'
547  DO jlayer=1,ssb%NLVL
548  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
549  CALL def_var_netcdf(dgu, &
550  ifile_id,'SEA_SBL_E'//ylvl,'TKE_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
551  END DO
552 ENDIF
553 !
554  CALL ol_write_coord(dgu, &
555  yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
556 !
557 IF (lhook) CALL dr_hook('INIT_OUTFN_SEA_N',1,zhook_handle)
558 !
559 END SUBROUTINE init_outfn_sea_n
subroutine create_file(HFILE, KDIMS, HNAME_DIM, KFILE_ID, KDIM_ID)
Definition: create_file.F90:6
subroutine get_dim_full_n(U, KDIM_FULL)
subroutine ol_write_coord(DGU, HFILE, KFILE_ID, KDDIM, HATT_TITLE, HNAME_DIM, HUNIT1, HUNIT2, KDIM1, HDATE, PX, PY)
subroutine get_date_ol(TPTIME, PTSTEP, HDATE)
Definition: get_date_ol.F90:6
subroutine init_outfn_sea_n(CHS, DGO, DGS, DGSI, DGU, O, S, SSB, UG, U, HPROGRAM, KLUOUT)
subroutine ol_define_dim(UG, U, HPROGRAM, KLUOUT, KNI, KDIM1, HUNIT1, HUNIT2, PX, PY, KDIMS, KDDIM, HNAME_DIM, KNPATCH)
subroutine def_var_netcdf(DGU, KFILE_ID, HNAME, HLONG_NAME, KDIM_ID, HATT_TITLE, HATT_TEXT, KVAR_ID, KTYPE, KLEN)