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_INGV_UKMO_2016/NEMOGCM/NEMO/LIM_SRC_3 – NEMO

source: branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90 @ 7351

Last change on this file since 7351 was 7351, checked in by emanuelaclementi, 7 years ago

ticket #1805 step 3: /2016/dev_INGV_UKMO_2016 aligned to the trunk at revision 7161

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