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 @ 7110

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

add ice output for salt flux from sublimation

  • Property svn:keywords set to Id
File size: 20.7 KB
RevLine 
[825]1MODULE limwri
2   !!======================================================================
3   !!                     ***  MODULE  limwri  ***
4   !!         Ice diagnostics :  write ice output files
5   !!======================================================================
[888]6#if defined key_lim3
[825]7   !!----------------------------------------------------------------------
[2528]8   !!   'key_lim3'                                      LIM3 sea-ice model
[825]9   !!----------------------------------------------------------------------
10   !!   lim_wri      : write of the diagnostics variables in ouput file
[4161]11   !!   lim_wri_state : write for initial state or/and abandon
[825]12   !!----------------------------------------------------------------------
13   USE ioipsl
[888]14   USE dianam          ! build name of file (routine)
[825]15   USE phycst
16   USE dom_oce
[888]17   USE sbc_oce         ! Surface boundary condition: ocean fields
18   USE sbc_ice         ! Surface boundary condition: ice fields
[825]19   USE dom_ice
20   USE ice
[2715]21   USE limvar
22   USE in_out_manager
[825]23   USE lbclnk
[2715]24   USE lib_mpp         ! MPP library
[3294]25   USE wrk_nemo        ! work arrays
[4161]26   USE iom
27   USE timing          ! Timing
28   USE lib_fortran     ! Fortran utilities
[825]29
30   IMPLICIT NONE
31   PRIVATE
32
33   PUBLIC lim_wri        ! routine called by lim_step.F90
[4161]34   PUBLIC lim_wri_state  ! called by dia_wri_state
[825]35
[2528]36   !!----------------------------------------------------------------------
[4161]37   !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2011)
[2528]38   !! $Id$
[2715]39   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
[2528]40   !!----------------------------------------------------------------------
41CONTAINS
[825]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      !!-------------------------------------------------------------------
[2715]54      INTEGER, INTENT(in) ::   kindic   ! if kindic < 0 there has been an error somewhere
55      !
[4990]56      INTEGER  ::  ji, jj, jk, jl  ! dummy loop indices
57      REAL(wp) ::  z1_365
58      REAL(wp) ::  ztmp
[5517]59      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zoi, zei, zt_i, zt_s
[4990]60      REAL(wp), POINTER, DIMENSION(:,:)   ::  z2d, z2da, z2db, zswi    ! 2D workspace
[2715]61      !!-------------------------------------------------------------------
[825]62
[4161]63      IF( nn_timing == 1 )  CALL timing_start('limwri')
64
[5517]65      CALL wrk_alloc( jpi, jpj, jpl, zoi, zei, zt_i, zt_s )
[4990]66      CALL wrk_alloc( jpi, jpj     , z2d, z2da, z2db, zswi )
[2777]67
[4688]68      !-----------------------------
69      ! Mean category values
70      !-----------------------------
[5202]71      z1_365 = 1._wp / 365._wp
[825]72
[4688]73      CALL lim_var_icetm      ! mean sea ice temperature
[921]74
[4688]75      CALL lim_var_bv         ! brine volume
[825]76
[4688]77      DO jj = 1, jpj          ! presence indicator of ice
78         DO ji = 1, jpi
[4990]79            zswi(ji,jj)  = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) )
[4688]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
[4990]88               z2d(ji,jj)  = vt_i(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zswi(ji,jj)
[4688]89            END DO
90         END DO
91         CALL iom_put( "icethic_cea"  , z2d              )
92      ENDIF
[921]93
[4688]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
[4990]97               z2d(ji,jj)  = vt_s(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zswi(ji,jj)
[4688]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
[5123]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
[4688]108           END DO
109         END DO
110         CALL lbc_lnk( z2da, 'T', -1. )
111         CALL lbc_lnk( z2db, 'T', -1. )
[5202]112         CALL iom_put( "uice_ipa"     , z2da             )       ! ice velocity u component
113         CALL iom_put( "vice_ipa"     , z2db             )       ! ice velocity v component
[4688]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
[5202]119         CALL iom_put( "icevel"       , z2d              )       ! ice velocity module
[4688]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
[5202]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 )
[4688]129               END DO
130            END DO
131         END DO
[5202]132         CALL iom_put( "miceage"     , z2d * z1_365      )        ! mean ice age
[4688]133      ENDIF
[825]134
[4688]135      IF ( iom_use( "micet" ) ) THEN
136         DO jj = 1, jpj
137            DO ji = 1, jpi
[5123]138               z2d(ji,jj) = ( tm_i(ji,jj) - rt0 ) * zswi(ji,jj)
[4688]139            END DO
140         END DO
[5202]141         CALL iom_put( "micet"       , z2d               )        ! mean ice temperature
[4688]142      ENDIF
143      !
144      IF ( iom_use( "icest" ) ) THEN
145         z2d(:,:) = 0.e0
[825]146         DO jl = 1, jpl
[4688]147            DO jj = 1, jpj
148               DO ji = 1, jpi
[5123]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 )
[4688]150               END DO
151            END DO
[825]152         END DO
[5202]153         CALL iom_put( "icest"       , z2d              )        ! ice surface temperature
[825]154      ENDIF
155
[6416]156      IF ( iom_use( "icecolf" ) )   CALL iom_put( "icecolf", hicol )  ! frazil ice collection thickness
157 
[4688]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
[5407]167      CALL iom_put( "snowpre"     , sprecip * 86400.    )        ! snow precipitation
[4688]168      CALL iom_put( "micesalt"    , smt_i               )        ! mean ice salinity
[4161]169
[4688]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
[5123]177      CALL iom_put( "saltrp"      , diag_trp_smv * rday * rhoic ) ! salt content transport
[4688]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)
[921]180
[6418]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
[4688]186      CALL iom_put( "sfxdyn"      , sfx_dyn * rday      )        ! salt flux from ridging rafting
[6418]187      CALL iom_put( "sfxres"      , sfx_res * rday      )        ! salt flux from residual
[4688]188      CALL iom_put( "sfxbri"      , sfx_bri * rday      )        ! salt flux from brines
[6418]189      CALL iom_put( "sfxsub"      , sfx_sub * rday      )        ! salt flux from sublimation
[4688]190      CALL iom_put( "sfx"         , sfx     * rday      )        ! total salt flux
[825]191
[4990]192      ztmp = rday / rhoic
[5123]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)
[825]208
[5123]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(:,:)     )   
[4688]218     
[5123]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(:,:)         )   
[5407]224      CALL iom_put ('hfxtur'     , fhtur(:,:) * SUM(a_i_b(:,:,:), dim=3) ) ! turbulent heat flux at ice base
[5167]225      CALL iom_put ('hfxdhc'     , diag_heat(:,:)       )   ! Heat content variation in snow and ice
[5123]226      CALL iom_put ('hfxspr'     , hfx_spr(:,:)         )   ! Heat content of snow precip
[4688]227     
[6416]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
[4688]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
[825]247
[5517]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
[4688]260      ! Compute ice age
261      IF ( iom_use( "iceage_cat" ) ) THEN
[921]262         DO jl = 1, jpl 
[825]263            DO jj = 1, jpj
264               DO ji = 1, jpi
[5202]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
[825]268               END DO
269            END DO
270         END DO
[5202]271         CALL iom_put( "iceage_cat"   , zoi * z1_365 )        ! ice age for categories
[4688]272      ENDIF
[825]273
[4688]274      ! Compute brine volume
275      IF ( iom_use( "brinevol_cat" ) ) THEN
[2715]276         zei(:,:,:) = 0._wp
[921]277         DO jl = 1, jpl 
278            DO jk = 1, nlay_i
279               DO jj = 1, jpj
280                  DO ji = 1, jpi
[4990]281                     rswitch = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) )
[5202]282                     zei(ji,jj,jl) = zei(ji,jj,jl) + 100.0 *  &
[5123]283                        ( - tmut * s_i(ji,jj,jk,jl) / MIN( ( t_i(ji,jj,jk,jl) - rt0 ), - epsi06 ) ) * &
284                        rswitch * r1_nlay_i
[921]285                  END DO
286               END DO
287            END DO
288         END DO
[5202]289         CALL iom_put( "brinevol_cat"     , zei      )        ! brine volume for categories
[825]290      ENDIF
291
[4688]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     
[5517]296      CALL wrk_dealloc( jpi, jpj, jpl, zoi, zei, zt_i, zt_s )
[4990]297      CALL wrk_dealloc( jpi, jpj     , z2d, zswi, z2da, z2db )
[4161]298
299      IF( nn_timing == 1 )  CALL timing_stop('limwri')
[2777]300     
[825]301   END SUBROUTINE lim_wri
302
[4161]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      !!----------------------------------------------------------------------
[825]319
[4765]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 )
[4161]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/) )
[5123]369      CALL histwrite( kid, "iicetemp", kt, tm_i - rt0    , jpi*jpj, (/1/) )
[4161]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
[4688]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/) )
[4333]389      CALL histwrite( kid, "iisfxres", kt, sfx_res        , jpi*jpj, (/1/) )
390
[4688]391      ! Close the file
392      ! -----------------
393      !CALL histclo( kid )
[4161]394
395    END SUBROUTINE lim_wri_state
396
[825]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.