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

source: trunk/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90 @ 6416

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

phase trunk with new additions on LIM3 from 3.6 stable (r6398 r6399 and r6400)

  • Property svn:keywords set to Id
File size: 20.6 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 brines
182      CALL iom_put( "sfxbom"      , sfx_bom * rday      )        ! salt flux from brines
183      CALL iom_put( "sfxsum"      , sfx_sum * rday      )        ! salt flux from brines
184      CALL iom_put( "sfxsni"      , sfx_sni * rday      )        ! salt flux from brines
185      CALL iom_put( "sfxopw"      , sfx_opw * rday      )        ! salt flux from brines
186      CALL iom_put( "sfxdyn"      , sfx_dyn * rday      )        ! salt flux from ridging rafting
187      CALL iom_put( "sfxres"      , sfx_res * rday      )        ! salt flux from limupdate (resultant)
188      CALL iom_put( "sfxbri"      , sfx_bri * rday      )        ! salt flux from brines
189      CALL iom_put( "sfx"         , sfx     * rday      )        ! total salt flux
190
191      ztmp = rday / rhoic
192      CALL iom_put( "vfxres"     , wfx_res * ztmp       )        ! daily prod./melting due to limupdate
193      CALL iom_put( "vfxopw"     , wfx_opw * ztmp       )        ! daily lateral thermodynamic ice production
194      CALL iom_put( "vfxsni"     , wfx_sni * ztmp       )        ! daily snowice ice production
195      CALL iom_put( "vfxbog"     , wfx_bog * ztmp       )        ! daily bottom thermodynamic ice production
196      CALL iom_put( "vfxdyn"     , wfx_dyn * ztmp       )        ! daily dynamic ice production (rid/raft)
197      CALL iom_put( "vfxsum"     , wfx_sum * ztmp       )        ! surface melt
198      CALL iom_put( "vfxbom"     , wfx_bom * ztmp       )        ! bottom melt
199      CALL iom_put( "vfxice"     , wfx_ice * ztmp       )        ! total ice growth/melt
200      CALL iom_put( "vfxsnw"     , wfx_snw * ztmp       )        ! total snw growth/melt
201      CALL iom_put( "vfxsub"     , wfx_sub * ztmp       )        ! sublimation (snow)
202      CALL iom_put( "vfxspr"     , wfx_spr * ztmp       )        ! precip (snow)
203     
204      CALL iom_put( "afxtot"     , afx_tot * rday       )        ! concentration tendency (total)
205      CALL iom_put( "afxdyn"     , afx_dyn * rday       )        ! concentration tendency (dynamics)
206      CALL iom_put( "afxthd"     , afx_thd * rday       )        ! concentration tendency (thermo)
207
208      CALL iom_put ('hfxthd'     , hfx_thd(:,:)         )   
209      CALL iom_put ('hfxdyn'     , hfx_dyn(:,:)         )   
210      CALL iom_put ('hfxres'     , hfx_res(:,:)         )   
211      CALL iom_put ('hfxout'     , hfx_out(:,:)         )   
212      CALL iom_put ('hfxin'      , hfx_in(:,:)          )   
213      CALL iom_put ('hfxsnw'     , hfx_snw(:,:)         )   
214      CALL iom_put ('hfxsub'     , hfx_sub(:,:)         )   
215      CALL iom_put ('hfxerr'     , hfx_err(:,:)         )   
216      CALL iom_put ('hfxerr_rem' , hfx_err_rem(:,:)     )   
217     
218      CALL iom_put ('hfxsum'     , hfx_sum(:,:)         )   
219      CALL iom_put ('hfxbom'     , hfx_bom(:,:)         )   
220      CALL iom_put ('hfxbog'     , hfx_bog(:,:)         )   
221      CALL iom_put ('hfxdif'     , hfx_dif(:,:)         )   
222      CALL iom_put ('hfxopw'     , hfx_opw(:,:)         )   
223      CALL iom_put ('hfxtur'     , fhtur(:,:) * SUM(a_i_b(:,:,:), dim=3) ) ! turbulent heat flux at ice base
224      CALL iom_put ('hfxdhc'     , diag_heat(:,:)       )   ! Heat content variation in snow and ice
225      CALL iom_put ('hfxspr'     , hfx_spr(:,:)         )   ! Heat content of snow precip
226     
227      IF ( iom_use( "vfxthin" ) ) THEN   ! ice production for open water + thin ice (<20cm) => comparable to observations 
228         DO jj = 1, jpj 
229            DO ji = 1, jpi
230               z2d(ji,jj)  = vt_i(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zswi(ji,jj) ! mean ice thickness
231            END DO
232         END DO
233         WHERE( z2d(:,:) < 0.2 .AND. z2d(:,:) > 0. ) ; z2da = wfx_bog
234         ELSEWHERE                                   ; z2da = 0._wp
235         END WHERE
236         CALL iom_put( "vfxthin", ( wfx_opw + z2da ) * ztmp )
237      ENDIF
238
239      !--------------------------------
240      ! Output values for each category
241      !--------------------------------
242      CALL iom_put( "iceconc_cat"      , a_i         )        ! area for categories
243      CALL iom_put( "icethic_cat"      , ht_i        )        ! thickness for categories
244      CALL iom_put( "snowthic_cat"     , ht_s        )        ! snow depth for categories
245      CALL iom_put( "salinity_cat"     , sm_i        )        ! salinity for categories
246
247      ! ice temperature
248      IF ( iom_use( "icetemp_cat" ) ) THEN
249         zt_i(:,:,:) = SUM( t_i(:,:,:,:), dim=3 ) * r1_nlay_i
250         CALL iom_put( "icetemp_cat"   , zt_i - rt0  )
251      ENDIF
252     
253      ! snow temperature
254      IF ( iom_use( "snwtemp_cat" ) ) THEN
255         zt_s(:,:,:) = SUM( t_s(:,:,:,:), dim=3 ) * r1_nlay_s
256         CALL iom_put( "snwtemp_cat"   , zt_s - rt0  )
257      ENDIF
258
259      ! Compute ice age
260      IF ( iom_use( "iceage_cat" ) ) THEN
261         DO jl = 1, jpl 
262            DO jj = 1, jpj
263               DO ji = 1, jpi
264                  rswitch = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.1 ) )
265                  rswitch = rswitch * MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - 0.1 ) )
266                  zoi(ji,jj,jl) = oa_i(ji,jj,jl)  / MAX( a_i(ji,jj,jl) , 0.1 ) * rswitch
267               END DO
268            END DO
269         END DO
270         CALL iom_put( "iceage_cat"   , zoi * z1_365 )        ! ice age for categories
271      ENDIF
272
273      ! Compute brine volume
274      IF ( iom_use( "brinevol_cat" ) ) THEN
275         zei(:,:,:) = 0._wp
276         DO jl = 1, jpl 
277            DO jk = 1, nlay_i
278               DO jj = 1, jpj
279                  DO ji = 1, jpi
280                     rswitch = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) )
281                     zei(ji,jj,jl) = zei(ji,jj,jl) + 100.0 *  &
282                        ( - tmut * s_i(ji,jj,jk,jl) / MIN( ( t_i(ji,jj,jk,jl) - rt0 ), - epsi06 ) ) * &
283                        rswitch * r1_nlay_i
284                  END DO
285               END DO
286            END DO
287         END DO
288         CALL iom_put( "brinevol_cat"     , zei      )        ! brine volume for categories
289      ENDIF
290
291      !     !  Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s
292      !     IF( kindic < 0 )   CALL lim_wri_state( 'output.abort' )
293      !     not yet implemented
294     
295      CALL wrk_dealloc( jpi, jpj, jpl, zoi, zei, zt_i, zt_s )
296      CALL wrk_dealloc( jpi, jpj     , z2d, zswi, z2da, z2db )
297
298      IF( nn_timing == 1 )  CALL timing_stop('limwri')
299     
300   END SUBROUTINE lim_wri
301
302 
303   SUBROUTINE lim_wri_state( kt, kid, kh_i )
304      !!---------------------------------------------------------------------
305      !!                 ***  ROUTINE lim_wri_state  ***
306      !!       
307      !! ** Purpose :   create a NetCDF file named cdfile_name which contains
308      !!      the instantaneous ice state and forcing fields for ice model
309      !!        Used to find errors in the initial state or save the last
310      !!      ocean state in case of abnormal end of a simulation
311      !!
312      !! History :
313      !!   4.1  !  2013-06  (C. Rousset)
314      !!----------------------------------------------------------------------
315      INTEGER, INTENT( in ) ::   kt               ! ocean time-step index)
316      INTEGER, INTENT( in ) ::   kid , kh_i       
317      !!----------------------------------------------------------------------
318
319      CALL histdef( kid, "iicethic", "Ice thickness"           , "m"      ,   &
320      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
321      CALL histdef( kid, "iiceconc", "Ice concentration"       , "%"      ,   &
322      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
323      CALL histdef( kid, "iicetemp", "Ice temperature"         , "C"      ,   &
324      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
325      CALL histdef( kid, "iicevelu", "i-Ice speed (I-point)"   , "m/s"    ,   &
326      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
327      CALL histdef( kid, "iicevelv", "j-Ice speed (I-point)"   , "m/s"    ,   &
328      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
329      CALL histdef( kid, "iicestru", "i-Wind stress over ice (I-pt)", "Pa",   &
330      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
331      CALL histdef( kid, "iicestrv", "j-Wind stress over ice (I-pt)", "Pa",   &
332      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
333      CALL histdef( kid, "iicesflx", "Solar flux over ocean"     , "w/m2" ,   &
334      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
335      CALL histdef( kid, "iicenflx", "Non-solar flux over ocean" , "w/m2" ,   &
336      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
337      CALL histdef( kid, "isnowpre", "Snow precipitation"      , "kg/m2/s",   &
338      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
339      CALL histdef( kid, "iicesali", "Ice salinity"            , "PSU"    ,   &
340      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
341      CALL histdef( kid, "iicevolu", "Ice volume"              , "m"      ,   &
342      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
343      CALL histdef( kid, "iicedive", "Ice divergence"          , "10-8s-1",   &
344      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
345      CALL histdef( kid, "iicebopr", "Ice bottom production"   , "m/s"    ,   &
346      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
347      CALL histdef( kid, "iicedypr", "Ice dynamic production"  , "m/s"    ,   &
348      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
349      CALL histdef( kid, "iicelapr", "Ice open water prod"     , "m/s"    ,   &
350      &       jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
351      CALL histdef( kid, "iicesipr", "Snow ice production "    , "m/s"    ,   &
352      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
353      CALL histdef( kid, "iicerepr", "Ice prod from limupdate" , "m/s"    ,   &
354      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
355      CALL histdef( kid, "iicebome", "Ice bottom melt"         , "m/s"    ,   &
356      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
357      CALL histdef( kid, "iicesume", "Ice surface melt"        , "m/s"    ,   &
358      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
359      CALL histdef( kid, "iisfxdyn", "Salt flux from dynmics"  , ""       ,   &
360      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
361      CALL histdef( kid, "iisfxres", "Salt flux from limupdate", ""       ,   &
362      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
363
364      CALL histend( kid, snc4set )   ! end of the file definition
365
366      CALL histwrite( kid, "iicethic", kt, icethi        , jpi*jpj, (/1/) )   
367      CALL histwrite( kid, "iiceconc", kt, at_i          , jpi*jpj, (/1/) )
368      CALL histwrite( kid, "iicetemp", kt, tm_i - rt0    , jpi*jpj, (/1/) )
369      CALL histwrite( kid, "iicevelu", kt, u_ice          , jpi*jpj, (/1/) )
370      CALL histwrite( kid, "iicevelv", kt, v_ice          , jpi*jpj, (/1/) )
371      CALL histwrite( kid, "iicestru", kt, utau_ice       , jpi*jpj, (/1/) )
372      CALL histwrite( kid, "iicestrv", kt, vtau_ice       , jpi*jpj, (/1/) )
373      CALL histwrite( kid, "iicesflx", kt, qsr , jpi*jpj, (/1/) )
374      CALL histwrite( kid, "iicenflx", kt, qns , jpi*jpj, (/1/) )
375      CALL histwrite( kid, "isnowpre", kt, sprecip        , jpi*jpj, (/1/) )
376      CALL histwrite( kid, "iicesali", kt, smt_i          , jpi*jpj, (/1/) )
377      CALL histwrite( kid, "iicevolu", kt, vt_i           , jpi*jpj, (/1/) )
378      CALL histwrite( kid, "iicedive", kt, divu_i*1.0e8   , jpi*jpj, (/1/) )
379
380      CALL histwrite( kid, "iicebopr", kt, wfx_bog        , jpi*jpj, (/1/) )
381      CALL histwrite( kid, "iicedypr", kt, wfx_dyn        , jpi*jpj, (/1/) )
382      CALL histwrite( kid, "iicelapr", kt, wfx_opw        , jpi*jpj, (/1/) )
383      CALL histwrite( kid, "iicesipr", kt, wfx_sni        , jpi*jpj, (/1/) )
384      CALL histwrite( kid, "iicerepr", kt, wfx_res        , jpi*jpj, (/1/) )
385      CALL histwrite( kid, "iicebome", kt, wfx_bom        , jpi*jpj, (/1/) )
386      CALL histwrite( kid, "iicesume", kt, wfx_sum        , jpi*jpj, (/1/) )
387      CALL histwrite( kid, "iisfxdyn", kt, sfx_dyn        , jpi*jpj, (/1/) )
388      CALL histwrite( kid, "iisfxres", kt, sfx_res        , jpi*jpj, (/1/) )
389
390      ! Close the file
391      ! -----------------
392      !CALL histclo( kid )
393
394    END SUBROUTINE lim_wri_state
395
396#else
397   !!----------------------------------------------------------------------
398   !!   Default option :         Empty module          NO LIM sea-ice model
399   !!----------------------------------------------------------------------
400CONTAINS
401   SUBROUTINE lim_wri          ! Empty routine
402   END SUBROUTINE lim_wri
403#endif
404
405   !!======================================================================
406END MODULE limwri
Note: See TracBrowser for help on using the repository browser.