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

source: branches/UKMO/nemo_v3_6_STABLE_copy/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90 @ 6333

Last change on this file since 6333 was 6333, checked in by timgraham, 8 years ago

Merged in revision r6324 of v3_6_STABLE. Also added in changes from change set at r5540 as these were somehow missed

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