New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
diawri_c1d.F90 in trunk/NEMO/C1D_SRC – NEMO

source: trunk/NEMO/C1D_SRC/diawri_c1d.F90 @ 900

Last change on this file since 900 was 900, checked in by rblod, 16 years ago

Update 1D configuration according to SBC and LIM3, see ticket #117

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 21.3 KB
Line 
1MODULE diawri_c1d
2   !!======================================================================
3   !!                     ***  MODULE  diawri_c1d  ***
4   !! Ocean diagnostics :  write ocean output files
5   !!=====================================================================
6   !! History :   2.0  !  2004-10  (C. Ethe)  1D Configuration
7   !!             3.0  !  2008-04  (G. Madec)  adaptation to SBC
8   !!----------------------------------------------------------------------
9#if defined key_c1d
10   !!----------------------------------------------------------------------
11   !!   'key_c1d'                                          1D Configuration
12   !!---------------------------------------------------------------------- 
13   !!   dia_wri_c1d       : create the standart NetCDF output files
14   !!----------------------------------------------------------------------
15   USE oce             ! ocean dynamics and tracers
16   USE dom_oce         ! ocean space and time domain
17   USE zdf_oce         ! ocean vertical physics
18   USE sbc_oce         ! surface boundary condition: ocean
19   USE sbc_ice         ! surface boundary condition: ice
20   USE sbcmod          ! surface Boundary Codition
21   USE sbcssr          ! surface boundary condition: restauring to SSS and or SST
22   USE zdftke          ! TKE vertical mixing
23   USE zdfkpp          ! KPP vertical mixing
24   USE sol_oce         ! solver variables
25   USE ice_oce         ! ice variables
26   USE phycst          ! physical constants
27   USE ocfzpt          ! ???
28   USE zdfmxl          ! mixed layer
29   USE daymod          ! calendar
30   USE dianam          ! build name of file (routine)
31   USE diawri
32   USE zdfddm          ! vertical  physics: double diffusion
33   USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
34   USE in_out_manager  ! I/O manager
35   USE ioipsl
36
37   IMPLICIT NONE
38   PRIVATE
39
40   PUBLIC dia_wri_c1d                 ! routines called by step.F90
41
42   INTEGER ::   nid_T, nz_T, nh_T, ndim_T, ndim_hT, ndex(1)   ! grid_T file
43   INTEGER, DIMENSION(jpi*jpj)     ::   ndex_hT
44   INTEGER, DIMENSION(jpi*jpj*jpk) ::   ndex_T
45
46   !! * Substitutions
47#  include "zdfddm_substitute.h90"
48   !!----------------------------------------------------------------------
49   !! NEMO/C1D 3.0 , LOCEAN-IPSL  (2008)
50   !! $Id$
51   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
52   !!----------------------------------------------------------------------
53
54CONTAINS
55
56   SUBROUTINE dia_wri_c1d( kt, kindic )
57      !!---------------------------------------------------------------------
58      !!                  ***  ROUTINE dia_wri_c1d  ***
59      !!                   
60      !! ** Purpose :   Standard output of opa: dynamics and tracer fields
61      !!      NETCDF format is used by default
62      !!
63      !! ** Method  :   At the beginning of the first time step (nit000),
64      !!      define all the NETCDF files and fields
65      !!      At each time step call histdef to compute the mean if ncessary
66      !!      Each nwrite time step, output the instantaneous or mean fields
67      !!      IF kindic <0, output of fields before the model interruption.
68      !!      IF kindic =0, time step loop
69      !!      IF kindic >0, output of fields before the time step loop
70      !!----------------------------------------------------------------------
71      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index
72      INTEGER, INTENT( in ) ::   kindic  !
73      !!
74      LOGICAL ::   ll_print = .FALSE.                ! =T print and flush numout
75      CHARACTER (len=40) ::   clhstnam, clop, clmx   ! temporary names
76      INTEGER ::   inum = 11                         ! temporary logical unit
77      INTEGER ::   ji, jj, ik                        ! dummy loop indices
78      INTEGER ::   iimi, iima, ipk, it, ijmi, ijma   ! temporary integers
79      REAL(wp) ::   zsto, zout, zmax, zjulian, zdt   ! temporary scalars
80      REAL(wp), DIMENSION(jpi,jpj) ::   zw2d         ! temporary workspace
81      !!----------------------------------------------------------------------
82     
83      ! 0. Initialisation
84      ! -----------------
85     
86      ! local variable for debugging
87      ll_print = .FALSE.
88      ll_print = ll_print .AND. lwp
89
90      ! Define frequency of output and means
91      zdt = rdt
92      IF( nacc == 1 ) zdt = rdtmin
93#if defined key_diainstant
94      zsto = nwrite * zdt
95      clop = "inst(x)"           ! no use of the mask value (require less cpu time)
96      !!! clop="inst(only(x))"   ! put 1.e+20 on land (very expensive!!)
97#else
98      zsto=zdt
99      clop="ave(x)"              ! no use of the mask value (require less cpu time)
100      !!! clop="ave(only(x))"    ! put 1.e+20 on land (very expensive!!)
101#endif
102      zout = nwrite * zdt
103      zmax = ( nitend - nit000 + 1 ) * zdt
104
105      ! Define indices of the horizontal output zoom and vertical limit storage
106      iimi = 1      ;      iima = jpi
107      ijmi = 1      ;      ijma = jpj
108      ipk = jpk
109
110      ! define time axis
111      it = kt - nit000 + 1
112
113
114      ! 1. Define NETCDF files and fields at beginning of first time step
115      ! -----------------------------------------------------------------
116
117      IF(ll_print) WRITE(numout,*) 'dia_wri_c1d kt = ', kt, ' kindic ', kindic
118
119      IF( kt == nit000 ) THEN
120
121         ! Define the NETCDF files (one per grid)
122         
123         ! Compute julian date from starting date of the run
124         CALL ymds2ju( nyear, nmonth, nday, 0.e0, zjulian )
125         IF(lwp)WRITE(numout,*)
126         IF(lwp)WRITE(numout,*) 'Date 0 used :', nit000, ' YEAR ', nyear,   &
127            &                    ' MONTH ', nmonth, ' DAY ', nday, 'Julian day : ', zjulian
128         IF(lwp)WRITE(numout,*) ' indexes of zoom = ', iimi, iima, ijmi, ijma,   &
129                                 ' limit storage in depth = ', ipk
130
131         ! WRITE root name in date.file for use by postpro
132         CALL dia_nam( clhstnam, nwrite,' ' )
133         CALL ctlopn( inum, 'date.file', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', 1, numout, lwp, 1 )
134         WRITE(inum,*) clhstnam
135         CLOSE(inum)
136         
137         ! Define the T grid FILE ( nid_T )
138         
139         CALL dia_nam( clhstnam, nwrite, 'grid_T' )
140         IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam    ! filename
141         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit
142            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       &
143            &          0, zjulian, zdt, nh_T, nid_T, domain_id=nidom )
144         CALL histvert( nid_T, "deptht", "Vertical T levels",      &  ! Vertical grid: gdept
145            &           "m", ipk, gdept_0, nz_T )
146         !                                                            ! Index of ocean points
147         CALL wheneq( jpi*jpj*ipk, tmask, 1, 1., ndex_T , ndim_T  )      ! volume
148         CALL wheneq( jpi*jpj    , tmask, 1, 1., ndex_hT, ndim_hT )      ! surface
149
150
151         ! Declare all the output fields as NETCDF variables
152
153         !                                                                                      !!! nid_T : 3D
154         CALL histdef( nid_T, "votemper", "Temperature"                        , "C"      ,   &  ! tn
155            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
156         CALL histdef( nid_T, "vosaline", "Salinity"                           , "PSU"    ,   &  ! sn
157            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
158         !                                                                                      !!! nid_T : 2D
159         CALL histdef( nid_T, "sosstsst", "Sea Surface temperature"            , "C"      ,   &  ! sst
160            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
161         CALL histdef( nid_T, "sosaline", "Sea Surface Salinity"               , "PSU"    ,   &  ! sss
162            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
163         CALL histdef( nid_T, "sowaflup", "Net Upward Water Flux"              , "Kg/m2/s",   &  ! emp
164            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
165!!       CALL histdef( nid_T, "sorunoff", "Runoffs"                            , "Kg/m2/s",   &  ! runoffs
166!!          &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
167         CALL histdef( nid_T, "sowaflcd", "concentration/dilution water flux"  , "kg/m2/s",   &  ! emps
168            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
169         CALL histdef( nid_T, "sosalflx", "Surface Salt Flux"                  , "Kg/m2/s",   &  ! emps * sn
170            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
171         CALL histdef( nid_T, "sohefldo", "Net Downward Heat Flux"             , "W/m2"   ,   &  ! qsr + qns
172            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
173         CALL histdef( nid_T, "soshfldo", "Shortwave Radiation"                , "W/m2"   ,   &  ! qsr
174            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
175         CALL histdef( nid_T, "somxl010", "Mixed Layer Depth 0.01"             , "m"      ,   &  ! hmlp
176            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
177#if defined key_zdfkpp
178         CALL histdef( nid_T, "sokppekd", "Ekman depth                     "   , "m"      ,   &  ! sokppekd
179            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
180         CALL histdef( nid_T, "sokppbld", "Boundary Layer Depth            "   , "m"      ,   &  ! sokppbld
181            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
182#endif
183         CALL histdef( nid_T, "somxlavt", "AVT : bottom of the mixed layer    ", "m"      ,   &  ! avt_mxl
184            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
185         CALL histdef( nid_T, "somixhgt", "Turbocline Depth"                   , "m"      ,   &  ! hmld
186            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
187         CALL histdef( nid_T, "soicecov", "Ice Cover"                          , "[0,1]"  ,   &  ! freeze
188            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
189         IF( ln_ssr ) THEN
190            CALL histdef( nid_T, "sohefldp", "Surface Heat Flux: Damping"         , "W/m2"   ,   &  ! qrp
191               &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
192            CALL histdef( nid_T, "sowafldp", "Surface Water Flux: Damping"        , "Kg/m2/s",   &  ! erp
193               &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
194            CALL histdef( nid_T, "sosafldp", "Surface salt flux: damping"         , "Kg/m2/s",   &  ! erp * sn
195               &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout )
196         ENDIF
197         clmx ="l_max(only(x))"    ! max index on a period
198         CALL histdef( nid_T, "sobowlin", "Bowl Index"                         , "W-point",   &  ! bowl INDEX
199            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clmx, zsto, zout )
200         !                                                                                      !!! nid_U : 3D
201         CALL histdef( nid_T, "vozocrtx", "Zonal Current"                      , "m/s"    ,   &  ! un
202            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
203#if defined key_diaeiv
204         CALL histdef( nid_T, "vozoeivu", "Zonal EIV Current"                  , "m/s"    ,   &  ! u_eiv
205            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
206#endif
207         !                                                                                      !!! nid_U : 2D
208         CALL histdef( nid_T, "sozotaux", "Wind Stress along i-axis"           , "N/m2"   ,   &  ! utau
209            &          jpi, jpj, nh_T, 1  , 1, 1  , - 99, 32, clop, zsto, zout )
210
211         !                                                                                      !!! nid_V : 3D
212         CALL histdef( nid_T, "vomecrty", "Meridional Current"                 , "m/s"    ,   &  ! vn
213            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
214#if defined key_diaeiv
215         CALL histdef( nid_T, "vomeeivv", "Meridional EIV Current"             , "m/s"    ,   &  ! v_eiv
216            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
217#endif
218         !                                                                                      !!! nid_V : 2D
219         CALL histdef( nid_T, "sometauy", "Wind Stress along j-axis"           , "N/m2"   ,   &  ! vtau
220            &          jpi, jpj, nh_T, 1  , 1, 1  , - 99, 32, clop, zsto, zout )
221#if defined key_zdftke
222         CALL histdef( nid_T, "votlsdis", " Dissipation Turbulent Lenght Scale", "m"      ,   &  ! e_dis
223            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
224         CALL histdef( nid_T, "votlsmix", " Mixing Turbulent Lenght Scale"     , "m"      ,   &  ! e_mix
225            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
226         CALL histdef( nid_T, "votlspdl", " Prandl Number",                      "-"       ,   &  ! e_pdl
227            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
228         CALL histdef( nid_T, "votlsric", " Local Richardson Number",            "-"       ,   &  ! e_ric
229            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
230         CALL histdef( nid_T, "votkeend", "TKE: Turbulent kinetic energy"       , "m2/s"   ,   &  ! TKE
231            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
232#endif
233#if defined key_zdfkpp
234         CALL histdef( nid_T, "vokpprig", " Gradient Richardson Number"        ,  "-"      ,   &  ! rig
235            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
236         CALL histdef( nid_T, "vokpprib", " Bulk Richardson Number    "        ,  "-"      ,   &   ! rib
237            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
238         CALL histdef( nid_T, "vokppbsf", " Buoyancy forcing          "        , "N/m2"    ,   &  ! sokppbsf
239            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
240         CALL histdef( nid_T, "vokppmol", "Moning Obukhov length scale     "   , "m"       ,   &  ! sokppmol
241            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
242#endif
243         !
244         CALL histdef( nid_T, "voeosbn2", "Brunt-Vaisala Frequency"             , "m2/s2"  ,   &  ! rn2
245            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
246         CALL histdef( nid_T, "votkeavt", "Vertical Eddy Diffusivity"          , "m2/s"   ,   &  ! avt
247            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
248         CALL histdef( nid_T, "votkeevd", "Enhanced Vertical Diffusivity",       "m2/s"   ,   &  ! avt_evd
249            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
250         CALL histdef( nid_T, "votkeavm", "Vertical Eddy Viscosity",             "m2/s"   ,   &  ! avmu
251            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
252         !
253         CALL histdef( nid_T, "votkeevm", "Enhanced Vertical Viscosity",         "m2/s"   ,   &  ! avmu_evd
254            &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
255         IF( lk_zdfddm ) THEN
256            CALL histdef( nid_T,"voddmavs","Salt Vertical Eddy Diffusivity"    , "m2/s"   ,   &  ! avs
257               &          jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout )
258         ENDIF
259
260         CALL histend( nid_T )
261
262         IF(lwp) WRITE(numout,*)
263         IF(lwp) WRITE(numout,*) 'End of NetCDF Initialization'
264         IF(ll_print) CALL FLUSH(numout )
265
266      ENDIF
267
268      ! 2. Start writing data
269      ! ---------------------
270
271      ! ndex(1) est utilise ssi l'avant dernier argument est diffferent de
272      ! la taille du tableau en sortie. Dans ce cas , l'avant dernier argument
273      ! donne le nombre d'elements, et ndex la liste des indices a sortir
274
275      IF( lwp .AND. MOD( kt, nwrite ) == 0 ) THEN
276         WRITE(numout,*) 'dia_wri : write model outputs in NetCDF files at ', kt, 'time-step'
277         WRITE(numout,*) '~~~~~~ '
278      ENDIF
279
280      ! Write fields on T grid
281      CALL histwrite( nid_T, "votemper", it, tn            , ndim_T , ndex_T  )   ! temperature
282      CALL histwrite( nid_T, "vosaline", it, sn            , ndim_T , ndex_T  )   ! salinity
283      CALL histwrite( nid_T, "sosstsst", it, tn(:,:,1)     , ndim_hT, ndex_hT )   ! sea surface temperature
284      CALL histwrite( nid_T, "sosaline", it, sn(:,:,1)     , ndim_hT, ndex_hT )   ! sea surface salinity
285      CALL histwrite( nid_T, "sowaflup", it, emp           , ndim_hT, ndex_hT )   ! upward water flux
286!!    CALL histwrite( nid_T, "sorunoff", it, runoff        , ndim_hT, ndex_hT )   ! runoff
287      CALL histwrite( nid_T, "sowaflcd", it, emps          , ndim_hT, ndex_hT )   ! c/d water flux
288      zw2d(:,:) = emps(:,:) * sn(:,:,1) * tmask(:,:,1)
289      CALL histwrite( nid_T, "sosalflx", it, zw2d          , ndim_hT, ndex_hT )   ! c/d salt flux
290      CALL histwrite( nid_T, "sohefldo", it, qsr + qns     , ndim_hT, ndex_hT )   ! total heat flux
291      CALL histwrite( nid_T, "soshfldo", it, qsr           , ndim_hT, ndex_hT )   ! solar heat flux
292      CALL histwrite( nid_T, "somxl010", it, hmlp          , ndim_hT, ndex_hT )   ! mixed layer depth
293#if defined key_zdfkpp
294      CALL histwrite( nid_T, "sokppekd", it, ekdp          , ndim_hT, ndex_hT )   ! Ekman depht
295      CALL histwrite( nid_T, "sokppbld", it, hkpp          , ndim_hT, ndex_hT )   ! boundary layer depth
296#endif 
297      ! store the vertical eddy diffusivity coef. at the bottom of the mixed layer
298      DO jj = 1, jpj
299         DO ji = 1, jpi
300            ik = nmln(ji,jj)
301            zw2d(ji,jj) = avt(ji,jj,ik) * tmask(ji,jj,1)
302         END DO
303      END DO
304      CALL histwrite( nid_T, "somxlavt", it, zw2d          , ndim_hT, ndex_hT )   ! Kz at bottom of mixed layer
305      CALL histwrite( nid_T, "somixhgt", it, hmld          , ndim_hT, ndex_hT )   ! turbocline depth
306      CALL histwrite( nid_T, "soicecov", it, freeze        , ndim_hT, ndex_hT )   ! ice cover
307      IF( ln_ssr ) THEN
308         CALL histwrite( nid_T, "sohefldp", it, qrp           , ndim_hT, ndex_hT )   ! heat flux damping
309         CALL histwrite( nid_T, "sowafldp", it, erp           , ndim_hT, ndex_hT )   ! freshwater flux damping
310         zw2d(:,:) = erp(:,:) * sn(:,:,1) * tmask(:,:,1)
311         CALL histwrite( nid_T, "sosafldp", it, zw2d          , ndim_hT, ndex_hT )   ! salt flux damping
312      ENDIF
313      zw2d(:,:) = FLOAT( nmln(:,:) ) * tmask(:,:,1)
314      CALL histwrite( nid_T, "sobowlin", it, zw2d          , ndim_hT, ndex_hT )   ! ???
315      CALL histwrite( nid_T, "vozocrtx", it, un            , ndim_T , ndex_T )    ! i-current
316      CALL histwrite( nid_T, "sozotaux", it, utau          , ndim_hT, ndex_hT )   ! i-wind stress
317      CALL histwrite( nid_T, "vomecrty", it, vn            , ndim_T , ndex_T  )   ! j-current
318      CALL histwrite( nid_T, "sometauy", it, vtau          , ndim_hT, ndex_hT )   ! j-wind stress
319#if defined key_zdftke
320      CALL histwrite( nid_T, "votlsdis", it, e_dis         , ndim_T , ndex_T )    ! Diss. Turb. lenght scale
321      CALL histwrite( nid_T, "votlsmix", it, e_mix         , ndim_T , ndex_T )    ! Mixing Turb. lenght scale
322      CALL histwrite( nid_T, "votlspdl", it, e_pdl         , ndim_T , ndex_T )    ! Prandl number
323      CALL histwrite( nid_T, "votlsric", it, e_ric         , ndim_T , ndex_T )    ! local Richardson number
324      CALL histwrite( nid_T, "votkeend", it, en            , ndim_T , ndex_T )    ! TKE
325#endif
326#if defined key_zdfkpp
327      CALL histwrite( nid_T, "vokpprig", it, rig           , ndim_T , ndex_T )    ! gradient Richardson number
328      CALL histwrite( nid_T, "vokpprib", it, rib           , ndim_T , ndex_T )    ! bulk Richardson number
329      CALL histwrite( nid_T, "vokppbsf", it, buof          , ndim_T , ndex_T )    ! buoyancy forcing
330      CALL histwrite( nid_T, "vokppmol", it, mols          , ndim_T , ndex_T )    ! Moning-Obukov length scale
331#endif
332      CALL histwrite( nid_T, "voeosbn2", it, rn2           , ndim_T , ndex_T )    ! Brunt-Vaisala Frequency
333      CALL histwrite( nid_T, "votkeavt", it, avt           , ndim_T , ndex_T )    ! T vert. eddy diff. coef.
334      CALL histwrite( nid_T, "votkeevd", it, avt_evd       , ndim_T , ndex_T )    ! T enhan. vert. eddy diff. coef.
335      CALL histwrite( nid_T, "votkeavm", it, avmu          , ndim_T , ndex_T )    ! T vert. eddy visc. coef.
336      CALL histwrite( nid_T, "votkeevm", it, avmu_evd      , ndim_T , ndex_T )    ! T enhan. vert. eddy visc. coef.
337      IF( lk_zdfddm ) THEN
338         CALL histwrite( nid_T, "voddmavs", it, fsavs(:,:,:), ndim_T, ndex_T )    ! S vert. eddy diff. coef.
339      ENDIF
340
341      ! 3. Synchronise and close all files
342      ! ---------------------------------------
343      IF( MOD( kt, nwrite ) == 0 .OR. kindic < 0 )   CALL histsync( nid_T )
344
345      !  Create an output files (output.abort.nc) if S < 0 or u > 20 m/s
346      IF( kindic < 0 )   CALL dia_wri_state( 'output.abort' )
347
348      IF( kt == nitend .OR. kindic < 0 )   CALL histclo( nid_T )
349      !
350   END SUBROUTINE dia_wri_c1d
351
352#else
353   !!----------------------------------------------------------------------
354   !!   Default key                                     NO 1D Configuration
355   !!----------------------------------------------------------------------
356CONTAINS
357   SUBROUTINE dia_wri_c1d ( kt, kindic )      ! dummy routine
358      WRITE(*,*) 'dia_wri_c1d: You should not have seen this print! error?', kt, kindic
359   END SUBROUTINE dia_wri_c1d
360#endif
361
362   !!======================================================================
363END MODULE diawri_c1d
Note: See TracBrowser for help on using the repository browser.