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.
limwri.F90 in branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/LIM_SRC_3 – NEMO

source: branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90 @ 6853

Last change on this file since 6853 was 6853, checked in by clem, 8 years ago

correct bugs on LIM3 rheology and outputs. Make sure the ice thickness distribution (used in initialization and bdy boundary conditions) is a gaussian.

  • Property svn:keywords set to Id
File size: 19.5 KB
Line 
1MODULE limwri
2   !!======================================================================
3   !!                     ***  MODULE  limwri  ***
4   !!         Ice diagnostics :  write ice output files
5   !!======================================================================
6#if defined key_lim3
7   !!----------------------------------------------------------------------
8   !!   'key_lim3'                                      LIM3 sea-ice model
9   !!----------------------------------------------------------------------
10   !!   lim_wri      : write of the diagnostics variables in ouput file
11   !!   lim_wri_state : write for initial state or/and abandon
12   !!----------------------------------------------------------------------
13   USE ioipsl
14   USE dianam          ! build name of file (routine)
15   USE phycst
16   USE dom_oce
17   USE sbc_oce         ! Surface boundary condition: ocean fields
18   USE sbc_ice         ! Surface boundary condition: ice fields
19   USE ice
20   USE limvar
21   USE in_out_manager
22   USE lbclnk
23   USE lib_mpp         ! MPP library
24   USE wrk_nemo        ! work arrays
25   USE iom
26   USE timing          ! Timing
27   USE lib_fortran     ! Fortran utilities
28
29   IMPLICIT NONE
30   PRIVATE
31
32   PUBLIC lim_wri        ! routine called by lim_step.F90
33   PUBLIC lim_wri_state  ! called by dia_wri_state
34
35   !!----------------------------------------------------------------------
36   !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2011)
37   !! $Id$
38   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
39   !!----------------------------------------------------------------------
40CONTAINS
41
42   SUBROUTINE lim_wri( kindic )
43      !!-------------------------------------------------------------------
44      !!  This routine computes the average of some variables and write it
45      !!  on the ouput files.
46      !!  ATTENTION cette routine n'est valable que si le pas de temps est
47      !!  egale a une fraction entiere de 1 jours.
48      !!  Diff 1-D 3-D : suppress common also included in etat
49      !!                 suppress cmoymo 11-18
50      !!  modif : 03/06/98
51      !!-------------------------------------------------------------------
52      INTEGER, INTENT(in) ::   kindic   ! if kindic < 0 there has been an error somewhere
53      !
54      INTEGER  ::  ji, jj, jk, jl  ! dummy loop indices
55      REAL(wp) ::  z1_365
56      REAL(wp) ::  z2da, z2db, ztmp
57      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zswi2
58      REAL(wp), POINTER, DIMENSION(:,:)   ::  z2d, zswi    ! 2D workspace
59      !!-------------------------------------------------------------------
60
61      IF( nn_timing == 1 )  CALL timing_start('limwri')
62
63      CALL wrk_alloc( jpi, jpj, jpl, zswi2 )
64      CALL wrk_alloc( jpi, jpj     , z2d, zswi )
65
66      !-----------------------------
67      ! Mean category values
68      !-----------------------------
69      z1_365 = 1._wp / 365._wp
70
71      ! brine volume
72      CALL lim_var_bv 
73
74      ! tresholds for outputs
75      DO jj = 1, jpj
76         DO ji = 1, jpi
77            zswi(ji,jj)  = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) )
78         END DO
79      END DO
80      DO jl = 1, jpl
81         DO jj = 1, jpj
82            DO ji = 1, jpi
83               zswi2(ji,jj,jl)  = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) )
84            END DO
85         END DO
86      END DO
87      !
88      ! velocity
89      IF ( iom_use( "uice_ipa" ) .OR. iom_use( "vice_ipa" ) .OR. iom_use( "icevel" ) ) THEN
90         DO jj = 2 , jpjm1
91            DO ji = 2 , jpim1
92               z2da  = ( u_ice(ji,jj) * umask(ji,jj,1) + u_ice(ji-1,jj) * umask(ji-1,jj,1) ) * 0.5_wp
93               z2db  = ( v_ice(ji,jj) * vmask(ji,jj,1) + v_ice(ji,jj-1) * vmask(ji,jj-1,1) ) * 0.5_wp
94               z2d(ji,jj) = SQRT( z2da * z2da + z2db * z2db )
95           END DO
96         END DO
97         CALL lbc_lnk( z2d, 'T', 1. )
98         CALL iom_put( "uice_ipa"     , u_ice      )       ! ice velocity u component
99         CALL iom_put( "vice_ipa"     , v_ice      )       ! ice velocity v component
100         CALL iom_put( "icevel"       , z2d        )       ! ice velocity module
101      ENDIF
102
103      IF ( iom_use( "tau_icebfr" ) )    CALL iom_put( "tau_icebfr"  , tau_icebfr             )  ! ice friction with ocean bottom (landfast ice) 
104      !
105      IF ( iom_use( "miceage" ) )       CALL iom_put( "miceage"     , om_i * zswi * z1_365   )  ! mean ice age
106      IF ( iom_use( "icethic_cea" ) )   CALL iom_put( "icethic_cea" , htm_i * zswi           )  ! ice thickness mean
107      IF ( iom_use( "snowthic_cea" ) )  CALL iom_put( "snowthic_cea", htm_s * zswi           )  ! snow thickness mean
108      IF ( iom_use( "micet" ) )         CALL iom_put( "micet"       , ( tm_i  - rt0 ) * zswi )  ! ice mean    temperature
109      IF ( iom_use( "icest" ) )         CALL iom_put( "icest"       , ( tm_su - rt0 ) * zswi )  ! ice surface temperature
110      IF ( iom_use( "icecolf" ) )       CALL iom_put( "icecolf"     , hicol                  )  ! frazil ice collection thickness
111      !
112      CALL iom_put( "isst"        , sst_m               )        ! sea surface temperature
113      CALL iom_put( "isss"        , sss_m               )        ! sea surface salinity
114      CALL iom_put( "iceconc"     , at_i  * zswi        )        ! ice concentration
115      CALL iom_put( "icevolu"     , vt_i  * zswi        )        ! ice volume = mean ice thickness over the cell
116      CALL iom_put( "icehc"       , et_i  * zswi        )        ! ice total heat content
117      CALL iom_put( "isnowhc"     , et_s  * zswi        )        ! snow total heat content
118      CALL iom_put( "ibrinv"      , bvm_i * zswi * 100. )        ! brine volume
119      CALL iom_put( "utau_ice"    , utau_ice            )        ! wind stress over ice along i-axis at I-point
120      CALL iom_put( "vtau_ice"    , vtau_ice            )        ! wind stress over ice along j-axis at I-point
121      CALL iom_put( "snowpre"     , sprecip * 86400.    )        ! snow precipitation
122      CALL iom_put( "micesalt"    , smt_i   * zswi      )        ! mean ice salinity
123
124      CALL iom_put( "icestr"      , strength * zswi )    ! ice strength
125      CALL iom_put( "idive"       , divu_i * 1.0e8      )    ! divergence
126      CALL iom_put( "ishear"      , shear_i * 1.0e8     )    ! shear
127      CALL iom_put( "snowvol"     , vt_s   * zswi       )        ! snow volume
128     
129      CALL iom_put( "icetrp"      , diag_trp_vi * rday  )        ! ice volume transport
130      CALL iom_put( "snwtrp"      , diag_trp_vs * rday  )        ! snw volume transport
131      CALL iom_put( "saltrp"      , diag_trp_smv * rday * rhoic ) ! salt content transport
132      CALL iom_put( "deitrp"      , diag_trp_ei         )        ! advected ice enthalpy (W/m2)
133      CALL iom_put( "destrp"      , diag_trp_es         )        ! advected snw enthalpy (W/m2)
134
135      CALL iom_put( "sfxbog"      , sfx_bog * rday      )        ! salt flux from bottom growth
136      CALL iom_put( "sfxbom"      , sfx_bom * rday      )        ! salt flux from bottom melting
137      CALL iom_put( "sfxsum"      , sfx_sum * rday      )        ! salt flux from surface melting
138      CALL iom_put( "sfxlam"      , sfx_lam * rday      )        ! salt flux from lateral melting
139      CALL iom_put( "sfxsni"      , sfx_sni * rday      )        ! salt flux from snow ice formation
140      CALL iom_put( "sfxopw"      , sfx_opw * rday      )        ! salt flux from open water formation
141      CALL iom_put( "sfxdyn"      , sfx_dyn * rday      )        ! salt flux from ridging rafting
142      CALL iom_put( "sfxres"      , sfx_res * rday      )        ! salt flux from limupdate (resultant)
143      CALL iom_put( "sfxbri"      , sfx_bri * rday      )        ! salt flux from brines
144      CALL iom_put( "sfxsub"      , sfx_sub * rday      )        ! salt flux from sublimation
145      CALL iom_put( "sfx"         , sfx     * rday      )        ! total salt flux
146
147      ztmp = rday / rhoic
148      CALL iom_put( "vfxres"     , wfx_res * ztmp       )        ! daily prod./melting due to limupdate
149      CALL iom_put( "vfxopw"     , wfx_opw * ztmp       )        ! daily lateral thermodynamic ice production
150      CALL iom_put( "vfxsni"     , wfx_sni * ztmp       )        ! daily snowice ice production
151      CALL iom_put( "vfxbog"     , wfx_bog * ztmp       )        ! daily bottom thermodynamic ice production
152      CALL iom_put( "vfxdyn"     , wfx_dyn * ztmp       )        ! daily dynamic ice production (rid/raft)
153      CALL iom_put( "vfxsum"     , wfx_sum * ztmp       )        ! surface melt
154      CALL iom_put( "vfxbom"     , wfx_bom * ztmp       )        ! bottom melt
155      CALL iom_put( "vfxlam"     , wfx_lam * ztmp       )        ! lateral melt
156      CALL iom_put( "vfxice"     , wfx_ice * ztmp       )        ! total ice growth/melt
157
158      IF ( iom_use( "vfxthin" ) ) THEN   ! ice production for open water + thin ice (<20cm) => comparable to observations 
159         WHERE( htm_i(:,:) < 0.2 .AND. htm_i(:,:) > 0. ) ; z2d = wfx_bog
160         ELSEWHERE                                       ; z2d = 0._wp
161         END WHERE
162         CALL iom_put( "vfxthin", ( wfx_opw + z2d ) * ztmp )
163      ENDIF
164
165      ztmp = rday / rhosn
166      CALL iom_put( "vfxspr"     , wfx_spr * ztmp       )        ! precip (snow)
167      CALL iom_put( "vfxsnw"     , wfx_snw * ztmp       )        ! total snw growth/melt
168      CALL iom_put( "vfxsub"     , wfx_sub * ztmp       )        ! sublimation (snow/ice)
169     
170      CALL iom_put( "afxtot"     , afx_tot * rday       )        ! concentration tendency (total)
171      CALL iom_put( "afxdyn"     , afx_dyn * rday       )        ! concentration tendency (dynamics)
172      CALL iom_put( "afxthd"     , afx_thd * rday       )        ! concentration tendency (thermo)
173
174      CALL iom_put ('hfxthd'     , hfx_thd(:,:)         )   
175      CALL iom_put ('hfxdyn'     , hfx_dyn(:,:)         )   
176      CALL iom_put ('hfxres'     , hfx_res(:,:)         )   
177      CALL iom_put ('hfxout'     , hfx_out(:,:)         )   
178      CALL iom_put ('hfxin'      , hfx_in(:,:)          )   
179      CALL iom_put ('hfxsnw'     , hfx_snw(:,:)         )   
180      CALL iom_put ('hfxsub'     , hfx_sub(:,:)         )   
181      CALL iom_put ('hfxerr'     , hfx_err(:,:)         )   
182      CALL iom_put ('hfxerr_rem' , hfx_err_rem(:,:)     )   
183     
184      CALL iom_put ('hfxsum'     , hfx_sum(:,:)         )   
185      CALL iom_put ('hfxbom'     , hfx_bom(:,:)         )   
186      CALL iom_put ('hfxbog'     , hfx_bog(:,:)         )   
187      CALL iom_put ('hfxdif'     , hfx_dif(:,:)         )   
188      CALL iom_put ('hfxopw'     , hfx_opw(:,:)         )   
189      CALL iom_put ('hfxtur'     , fhtur(:,:) * at_i_b(:,:) ) ! turbulent heat flux at ice base
190      CALL iom_put ('hfxdhc'     , diag_heat(:,:)       )   ! Heat content variation in snow and ice
191      CALL iom_put ('hfxspr'     , hfx_spr(:,:)         )   ! Heat content of snow precip
192
193     
194      !--------------------------------
195      ! Output values for each category
196      !--------------------------------
197      IF ( iom_use( "iceconc_cat"  ) )  CALL iom_put( "iceconc_cat"      , a_i   * zswi2   )        ! area for categories
198      IF ( iom_use( "icethic_cat"  ) )  CALL iom_put( "icethic_cat"      , ht_i  * zswi2   )        ! thickness for categories
199      IF ( iom_use( "snowthic_cat" ) )  CALL iom_put( "snowthic_cat"     , ht_s  * zswi2   )        ! snow depth for categories
200      IF ( iom_use( "salinity_cat" ) )  CALL iom_put( "salinity_cat"     , sm_i  * zswi2   )        ! salinity for categories
201      ! ice temperature
202      IF ( iom_use( "icetemp_cat"  ) )  CALL iom_put( "icetemp_cat", ( SUM( t_i(:,:,:,:), dim=3 ) * r1_nlay_i - rt0 ) * zswi2 )
203      ! snow temperature
204      IF ( iom_use( "snwtemp_cat"  ) )  CALL iom_put( "snwtemp_cat", ( SUM( t_s(:,:,:,:), dim=3 ) * r1_nlay_s - rt0 ) * zswi2 )
205      ! ice age
206      IF ( iom_use( "iceage_cat"   ) )  CALL iom_put( "iceage_cat" , o_i * zswi2 * z1_365 )
207      ! brine volume
208      IF ( iom_use( "brinevol_cat" ) )  CALL iom_put( "brinevol_cat", bv_i * 100. * zswi2 )
209
210      !     !  Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s
211      !     IF( kindic < 0 )   CALL lim_wri_state( 'output.abort' )
212      !     not yet implemented
213     
214      CALL wrk_dealloc( jpi, jpj, jpl, zswi2 )
215      CALL wrk_dealloc( jpi, jpj     , z2d, zswi )
216
217      IF( nn_timing == 1 )  CALL timing_stop('limwri')
218     
219   END SUBROUTINE lim_wri
220
221 
222   SUBROUTINE lim_wri_state( kt, kid, kh_i )
223      !!---------------------------------------------------------------------
224      !!                 ***  ROUTINE lim_wri_state  ***
225      !!       
226      !! ** Purpose :   create a NetCDF file named cdfile_name which contains
227      !!      the instantaneous ice state and forcing fields for ice model
228      !!        Used to find errors in the initial state or save the last
229      !!      ocean state in case of abnormal end of a simulation
230      !!
231      !! History :
232      !!   4.0  !  2013-06  (C. Rousset)
233      !!----------------------------------------------------------------------
234      INTEGER, INTENT( in )   ::   kt               ! ocean time-step index)
235      INTEGER, INTENT( in )   ::   kid , kh_i
236      INTEGER                 ::   nz_i, jl
237      REAL(wp), DIMENSION(jpl) :: jcat
238      !!----------------------------------------------------------------------
239      DO jl = 1, jpl
240         jcat(jl) = REAL(jl)
241      ENDDO
242     
243      CALL histvert( kid, "ncatice", "Ice Categories","", jpl, jcat, nz_i, "up")
244
245      CALL histdef( kid, "sithic", "Ice thickness"           , "m"      ,   &
246      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
247      CALL histdef( kid, "siconc", "Ice concentration"       , "%"      ,   &
248      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
249      CALL histdef( kid, "sitemp", "Ice temperature"         , "C"      ,   &
250      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
251      CALL histdef( kid, "sivelu", "i-Ice speed "            , "m/s"    ,   &
252      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
253      CALL histdef( kid, "sivelv", "j-Ice speed "            , "m/s"    ,   &
254      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
255      CALL histdef( kid, "sistru", "i-Wind stress over ice " , "Pa"     ,   &
256      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
257      CALL histdef( kid, "sistrv", "j-Wind stress over ice " , "Pa"     ,   &
258      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
259      CALL histdef( kid, "sisflx", "Solar flux over ocean"     , "w/m2" ,   &
260      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
261      CALL histdef( kid, "sinflx", "Non-solar flux over ocean" , "w/m2" ,   &
262      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
263      CALL histdef( kid, "isnowpre", "Snow precipitation"      , "kg/m2/s",   &
264      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
265      CALL histdef( kid, "sisali", "Ice salinity"            , "PSU"    ,   &
266      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
267      CALL histdef( kid, "sivolu", "Ice volume"              , "m"      ,   &
268      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
269      CALL histdef( kid, "sidive", "Ice divergence"          , "10-8s-1",   &
270      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
271
272      CALL histdef( kid, "vfxbog", "Ice bottom production"   , "m/s"    ,   &
273      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
274      CALL histdef( kid, "vfxdyn", "Ice dynamic production"  , "m/s"    ,   &
275      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
276      CALL histdef( kid, "vfxopw", "Ice open water prod"     , "m/s"    ,   &
277      &       jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
278      CALL histdef( kid, "vfxsni", "Snow ice production "    , "m/s"    ,   &
279      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
280      CALL histdef( kid, "vfxres", "Ice prod from limupdate" , "m/s"    ,   &
281      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
282      CALL histdef( kid, "vfxbom", "Ice bottom melt"         , "m/s"    ,   &
283      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
284      CALL histdef( kid, "vfxsum", "Ice surface melt"        , "m/s"    ,   &
285      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
286
287      CALL histdef( kid, "sithicat", "Ice thickness"         , "m"      ,   &
288      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
289      CALL histdef( kid, "siconcat", "Ice concentration"     , "%"      ,   &
290      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
291      CALL histdef( kid, "sisalcat", "Ice salinity"           , ""      ,   &
292      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
293      CALL histdef( kid, "sitemcat", "Ice temperature"       , "C"      ,   &
294      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
295      CALL histdef( kid, "snthicat", "Snw thickness"         , "m"      ,   &
296      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
297      CALL histdef( kid, "sntemcat", "Snw temperature"       , "C"      ,   &
298      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
299
300      CALL histend( kid, snc4set )   ! end of the file definition
301
302      CALL histwrite( kid, "sithic", kt, htm_i         , jpi*jpj, (/1/) )   
303      CALL histwrite( kid, "siconc", kt, at_i          , jpi*jpj, (/1/) )
304      CALL histwrite( kid, "sitemp", kt, tm_i - rt0    , jpi*jpj, (/1/) )
305      CALL histwrite( kid, "sivelu", kt, u_ice          , jpi*jpj, (/1/) )
306      CALL histwrite( kid, "sivelv", kt, v_ice          , jpi*jpj, (/1/) )
307      CALL histwrite( kid, "sistru", kt, utau_ice       , jpi*jpj, (/1/) )
308      CALL histwrite( kid, "sistrv", kt, vtau_ice       , jpi*jpj, (/1/) )
309      CALL histwrite( kid, "sisflx", kt, qsr , jpi*jpj, (/1/) )
310      CALL histwrite( kid, "sinflx", kt, qns , jpi*jpj, (/1/) )
311      CALL histwrite( kid, "isnowpre", kt, sprecip        , jpi*jpj, (/1/) )
312      CALL histwrite( kid, "sisali", kt, smt_i          , jpi*jpj, (/1/) )
313      CALL histwrite( kid, "sivolu", kt, vt_i           , jpi*jpj, (/1/) )
314      CALL histwrite( kid, "sidive", kt, divu_i*1.0e8   , jpi*jpj, (/1/) )
315
316      CALL histwrite( kid, "vfxbog", kt, wfx_bog        , jpi*jpj, (/1/) )
317      CALL histwrite( kid, "vfxdyn", kt, wfx_dyn        , jpi*jpj, (/1/) )
318      CALL histwrite( kid, "vfxopw", kt, wfx_opw        , jpi*jpj, (/1/) )
319      CALL histwrite( kid, "vfxsni", kt, wfx_sni        , jpi*jpj, (/1/) )
320      CALL histwrite( kid, "vfxres", kt, wfx_res        , jpi*jpj, (/1/) )
321      CALL histwrite( kid, "vfxbom", kt, wfx_bom        , jpi*jpj, (/1/) )
322      CALL histwrite( kid, "vfxsum", kt, wfx_sum        , jpi*jpj, (/1/) )
323
324      CALL histwrite( kid, "sithicat", kt, ht_i        , jpi*jpj*jpl, (/1/) )   
325      CALL histwrite( kid, "siconcat", kt, a_i         , jpi*jpj*jpl, (/1/) )   
326      CALL histwrite( kid, "sisalcat", kt, sm_i        , jpi*jpj*jpl, (/1/) )   
327      CALL histwrite( kid, "sitemcat", kt, tm_i - rt0  , jpi*jpj*jpl, (/1/) )   
328      CALL histwrite( kid, "snthicat", kt, ht_s        , jpi*jpj*jpl, (/1/) )   
329      CALL histwrite( kid, "sntemcat", kt, tm_su - rt0 , jpi*jpj*jpl, (/1/) )   
330
331      ! Close the file
332      ! -----------------
333      !CALL histclo( kid )
334
335    END SUBROUTINE lim_wri_state
336
337#else
338   !!----------------------------------------------------------------------
339   !!   Default option :         Empty module          NO LIM sea-ice model
340   !!----------------------------------------------------------------------
341CONTAINS
342   SUBROUTINE lim_wri          ! Empty routine
343   END SUBROUTINE lim_wri
344#endif
345
346   !!======================================================================
347END MODULE limwri
Note: See TracBrowser for help on using the repository browser.