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.
icewri.F90 in NEMO/trunk/src/ICE – NEMO

source: NEMO/trunk/src/ICE/icewri.F90

Last change on this file was 15388, checked in by clem, 2 years ago

slightly rearrange ice thermo. No change in sette

  • Property svn:keywords set to Id
File size: 20.1 KB
RevLine 
[8586]1MODULE icewri
2   !!======================================================================
3   !!                     ***  MODULE  icewri  ***
4   !!   sea-ice : output ice variables
5   !!======================================================================
[9604]6   !! History :  4.0  !  2018     (many people)      SI3 [aka Sea Ice cube]
7   !!----------------------------------------------------------------------
[9570]8#if defined key_si3
[8586]9   !!----------------------------------------------------------------------
[9570]10   !!   'key_si3'                                       SI3 sea-ice model
[8586]11   !!----------------------------------------------------------------------
[14072]12   !!   ice_wri       : write of the diagnostics variables in ouput file
[8586]13   !!   ice_wri_state : write for initial state or/and abandon
14   !!----------------------------------------------------------------------
15   USE dianam         ! build name of file (routine)
16   USE phycst         ! physical constant
17   USE dom_oce        ! domain: ocean
18   USE sbc_oce        ! surf. boundary cond.: ocean
19   USE sbc_ice        ! Surface boundary condition: ice fields
20   USE ice            ! sea-ice: variables
21   USE icevar         ! sea-ice: operations
[15388]22   USE icealb , ONLY : rn_alb_oce
[8586]23   !
24   USE ioipsl         !
25   USE in_out_manager ! I/O manager
26   USE iom            ! I/O manager library
27   USE lib_mpp        ! MPP library
28   USE lib_fortran    ! fortran utilities (glob_sum + no signed zero)
29   USE lbclnk         ! lateral boundary conditions (or mpp links)
30   USE timing         ! Timing
31
32   IMPLICIT NONE
33   PRIVATE
34
35   PUBLIC ice_wri        ! called by ice_stp
[14072]36   PUBLIC ice_wri_state  ! called by dia_wri_state
[8586]37
[12377]38   !! * Substitutions
39#  include "do_loop_substitute.h90"
[8586]40   !!----------------------------------------------------------------------
[9598]41   !! NEMO/ICE 4.0 , NEMO Consortium (2018)
[10069]42   !! $Id$
[10413]43   !! Software governed by the CeCILL licence     (./LICENSE)
[8586]44   !!----------------------------------------------------------------------
45CONTAINS
46
47   SUBROUTINE ice_wri( kt )
48      !!-------------------------------------------------------------------
[9604]49      !!  This routine ouputs some (most?) of the sea ice fields
[8586]50      !!-------------------------------------------------------------------
51      INTEGER, INTENT(in) ::   kt   ! time-step
52      !
[8884]53      INTEGER  ::   ji, jj, jk, jl  ! dummy loop indices
54      REAL(wp) ::   z2da, z2db, zrho1, zrho2
[14072]55      REAL(wp) ::   zmiss_val       ! missing value retrieved from xios
[15388]56      REAL(wp), DIMENSION(jpi,jpj)     ::   z2d                            ! 2D workspace
[9433]57      REAL(wp), DIMENSION(jpi,jpj)     ::   zmsk00, zmsk05, zmsk15, zmsksn ! O%, 5% and 15% concentration mask and snow mask
58      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zmsk00l, zmsksnl               ! cat masks
[15388]59      REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   zfast, zalb, zmskalb      ! 2D workspace
[8586]60      !
61      ! Global ice diagnostics (SIMIP)
[8884]62      REAL(wp) ::   zdiag_area_nh, zdiag_extt_nh, zdiag_volu_nh   ! area, extent, volume
[14072]63      REAL(wp) ::   zdiag_area_sh, zdiag_extt_sh, zdiag_volu_sh
[8586]64      !!-------------------------------------------------------------------
[11536]65      !
[9124]66      IF( ln_timing )   CALL timing_start('icewri')
[8586]67
[11536]68      ! get missing value from xml
69      CALL iom_miss_val( 'icetemp', zmiss_val )
70
[9604]71      ! brine volume
72      CALL ice_var_bv
[8586]73
74      ! tresholds for outputs
[14997]75      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )
[12377]76         zmsk00(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06  ) ) ! 1 if ice    , 0 if no ice
77         zmsk05(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.05_wp ) ) ! 1 if 5% ice , 0 if less
78         zmsk15(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.15_wp ) ) ! 1 if 15% ice, 0 if less
79         zmsksn(ji,jj) = MAX( 0._wp , SIGN( 1._wp , vt_s(ji,jj) - epsi06  ) ) ! 1 if snow   , 0 if no snow
80      END_2D
[8586]81      DO jl = 1, jpl
[14997]82         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )
[12377]83            zmsk00l(ji,jj,jl)  = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) )
84            zmsksnl(ji,jj,jl)  = MAX( 0._wp , SIGN( 1._wp , v_s(ji,jj,jl) - epsi06 ) )
85         END_2D
[8586]86      END DO
87
[8884]88      !-----------------
[8586]89      ! Standard outputs
[8884]90      !-----------------
[12489]91      zrho1 = ( rho0 - rhoi ) * r1_rho0 ; zrho2 = rhos * r1_rho0
[8884]92      ! masks
[11536]93      CALL iom_put( 'icemask'  , zmsk00 )   ! ice mask 0%
94      CALL iom_put( 'icemask05', zmsk05 )   ! ice mask 5%
95      CALL iom_put( 'icemask15', zmsk15 )   ! ice mask 15%
[14072]96      CALL iom_put( 'icepres'  , zmsk00 )   ! Ice presence (1 or 0)
[8884]97      !
98      ! general fields
[14072]99      IF( iom_use('icemass' ) )   CALL iom_put( 'icemass', vt_i * rhoi * zmsk00 )                                           ! Ice mass per cell area
[11536]100      IF( iom_use('snwmass' ) )   CALL iom_put( 'snwmass', vt_s * rhos * zmsksn )                                           ! Snow mass per cell area
101      IF( iom_use('iceconc' ) )   CALL iom_put( 'iceconc', at_i        * zmsk00 )                                           ! ice concentration
102      IF( iom_use('icevolu' ) )   CALL iom_put( 'icevolu', vt_i        * zmsk00 )                                           ! ice volume = mean ice thickness over the cell
103      IF( iom_use('icethic' ) )   CALL iom_put( 'icethic', hm_i        * zmsk00 )                                           ! ice thickness
104      IF( iom_use('snwthic' ) )   CALL iom_put( 'snwthic', hm_s        * zmsk00 )                                           ! snw thickness
105      IF( iom_use('icebrv'  ) )   CALL iom_put( 'icebrv' , bvm_i* 100. * zmsk00 )                                           ! brine volume
106      IF( iom_use('iceage'  ) )   CALL iom_put( 'iceage' , om_i / rday * zmsk15 + zmiss_val * ( 1._wp - zmsk15 ) )          ! ice age
107      IF( iom_use('icehnew' ) )   CALL iom_put( 'icehnew', ht_i_new             )                                           ! new ice thickness formed in the leads
108      IF( iom_use('snwvolu' ) )   CALL iom_put( 'snwvolu', vt_s        * zmsksn )                                           ! snow volume
109      IF( iom_use('icefrb'  ) ) THEN                                                                                        ! Ice freeboard
[14072]110         z2d(:,:) = ( zrho1 * hm_i(:,:) - zrho2 * hm_s(:,:) )
[8884]111         WHERE( z2d < 0._wp )   z2d = 0._wp
[11536]112                                  CALL iom_put( 'icefrb' , z2d * zmsk00         )
[8884]113      ENDIF
114      ! melt ponds
[11536]115      IF( iom_use('iceapnd' ) )   CALL iom_put( 'iceapnd', at_ip  * zmsk00      )                                           ! melt pond total fraction
116      IF( iom_use('icehpnd' ) )   CALL iom_put( 'icehpnd', hm_ip  * zmsk00      )                                           ! melt pond depth
117      IF( iom_use('icevpnd' ) )   CALL iom_put( 'icevpnd', vt_ip  * zmsk00      )                                           ! melt pond total volume per unit area
[13472]118      IF( iom_use('icehlid' ) )   CALL iom_put( 'icehlid', hm_il  * zmsk00      )                                           ! melt pond lid depth
119      IF( iom_use('icevlid' ) )   CALL iom_put( 'icevlid', vt_il  * zmsk00      )                                           ! melt pond lid total volume per unit area
[8884]120      ! salt
[11536]121      IF( iom_use('icesalt' ) )   CALL iom_put( 'icesalt', sm_i                 * zmsk00 + zmiss_val * ( 1._wp - zmsk00 ) ) ! mean ice salinity
122      IF( iom_use('icesalm' ) )   CALL iom_put( 'icesalm', st_i * rhoi * 1.0e-3 * zmsk00 )                                  ! Mass of salt in sea ice per cell area
[8884]123      ! heat
[11536]124      IF( iom_use('icetemp' ) )   CALL iom_put( 'icetemp', ( tm_i  - rt0 ) * zmsk00 + zmiss_val * ( 1._wp - zmsk00 ) )      ! ice mean temperature
125      IF( iom_use('snwtemp' ) )   CALL iom_put( 'snwtemp', ( tm_s  - rt0 ) * zmsksn + zmiss_val * ( 1._wp - zmsksn ) )      ! snw mean temperature
126      IF( iom_use('icettop' ) )   CALL iom_put( 'icettop', ( tm_su - rt0 ) * zmsk00 + zmiss_val * ( 1._wp - zmsk00 ) )      ! temperature at the ice surface
127      IF( iom_use('icetbot' ) )   CALL iom_put( 'icetbot', ( t_bo  - rt0 ) * zmsk00 + zmiss_val * ( 1._wp - zmsk00 ) )      ! temperature at the ice bottom
128      IF( iom_use('icetsni' ) )   CALL iom_put( 'icetsni', ( tm_si - rt0 ) * zmsk00 + zmiss_val * ( 1._wp - zmsk00 ) )      ! temperature at the snow-ice interface
129      IF( iom_use('icehc'   ) )   CALL iom_put( 'icehc'  ,  -et_i          * zmsk00 )                                       ! ice heat content
130      IF( iom_use('snwhc'   ) )   CALL iom_put( 'snwhc'  ,  -et_s          * zmsksn )                                       ! snow heat content
[8884]131      ! momentum
[11536]132      IF( iom_use('uice'    ) )   CALL iom_put( 'uice'   , u_ice    )                                                       ! ice velocity u
133      IF( iom_use('vice'    ) )   CALL iom_put( 'vice'   , v_ice    )                                                       ! ice velocity v
134      !
[15388]135      IF( iom_use('icevel') .OR. iom_use('fasticepres') ) THEN                                                              ! module of ice velocity & fast ice
136         ALLOCATE( zfast(jpi,jpj) )
[13295]137         DO_2D( 0, 0, 0, 0 )
[12377]138            z2da  = u_ice(ji,jj) + u_ice(ji-1,jj)
139            z2db  = v_ice(ji,jj) + v_ice(ji,jj-1)
140            z2d(ji,jj) = 0.5_wp * SQRT( z2da * z2da + z2db * z2db )
141         END_2D
[13226]142         CALL lbc_lnk( 'icewri', z2d, 'T', 1.0_wp )
[11536]143         CALL iom_put( 'icevel', z2d )
[10413]144
[11536]145         WHERE( z2d(:,:) < 5.e-04_wp .AND. zmsk15(:,:) == 1._wp ) ; zfast(:,:) = 1._wp                                      ! record presence of fast ice
[10413]146         ELSEWHERE                                                ; zfast(:,:) = 0._wp
147         END WHERE
[11536]148         CALL iom_put( 'fasticepres', zfast )
[15388]149         DEALLOCATE( zfast )
[8586]150      ENDIF
[15388]151      !
152      IF( iom_use('icealb') .OR. iom_use('albedo') ) THEN                                                                   ! ice albedo and surface albedo
153         ALLOCATE( zalb(jpi,jpj), zmskalb(jpi,jpj) )
154         ! ice albedo
155         WHERE( at_i_b < 1.e-03 )
156            zmskalb(:,:) = 0._wp
157            zalb   (:,:) = rn_alb_oce
158         ELSEWHERE
159            zmskalb(:,:) = 1._wp
160            zalb   (:,:) = SUM( alb_ice * a_i_b, dim=3 ) / at_i_b
161         END WHERE
162         CALL iom_put( 'icealb' , zalb * zmskalb + zmiss_val * ( 1._wp - zmskalb ) )
163         ! ice+ocean albedo
164         zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) + rn_alb_oce * ( 1._wp - at_i_b )
165         CALL iom_put( 'albedo' , zalb )
166         DEALLOCATE( zalb, zmskalb )
167      ENDIF
168      !
[8884]169      ! --- category-dependent fields --- !
[11536]170      IF( iom_use('icemask_cat' ) )   CALL iom_put( 'icemask_cat' ,                  zmsk00l                                   ) ! ice mask 0%
171      IF( iom_use('iceconc_cat' ) )   CALL iom_put( 'iceconc_cat' , a_i            * zmsk00l                                   ) ! area for categories
172      IF( iom_use('icethic_cat' ) )   CALL iom_put( 'icethic_cat' , h_i            * zmsk00l + zmiss_val * ( 1._wp - zmsk00l ) ) ! thickness for categories
173      IF( iom_use('snwthic_cat' ) )   CALL iom_put( 'snwthic_cat' , h_s            * zmsksnl + zmiss_val * ( 1._wp - zmsksnl ) ) ! snow depth for categories
174      IF( iom_use('icesalt_cat' ) )   CALL iom_put( 'icesalt_cat' , s_i            * zmsk00l + zmiss_val * ( 1._wp - zmsk00l ) ) ! salinity for categories
175      IF( iom_use('iceage_cat'  ) )   CALL iom_put( 'iceage_cat'  , o_i / rday     * zmsk00l + zmiss_val * ( 1._wp - zmsk00l ) ) ! ice age
176      IF( iom_use('icetemp_cat' ) )   CALL iom_put( 'icetemp_cat' , ( SUM( t_i, dim=3 ) * r1_nlay_i - rt0 ) &
177         &                                                                         * zmsk00l + zmiss_val * ( 1._wp - zmsk00l ) ) ! ice temperature
178      IF( iom_use('snwtemp_cat' ) )   CALL iom_put( 'snwtemp_cat' , ( SUM( t_s, dim=3 ) * r1_nlay_s - rt0 ) &
179         &                                                                         * zmsksnl + zmiss_val * ( 1._wp - zmsksnl ) ) ! snow temperature
180      IF( iom_use('icettop_cat' ) )   CALL iom_put( 'icettop_cat' , ( t_su - rt0 ) * zmsk00l + zmiss_val * ( 1._wp - zmsk00l ) ) ! surface temperature
181      IF( iom_use('icebrv_cat'  ) )   CALL iom_put( 'icebrv_cat'  ,   bv_i * 100.  * zmsk00l + zmiss_val * ( 1._wp - zmsk00l ) ) ! brine volume
182      IF( iom_use('iceapnd_cat' ) )   CALL iom_put( 'iceapnd_cat' ,   a_ip         * zmsk00l                                   ) ! melt pond frac for categories
[14005]183      IF( iom_use('icevpnd_cat' ) )   CALL iom_put( 'icevpnd_cat' ,   v_ip         * zmsk00l                                   ) ! melt pond volume for categories
[13472]184      IF( iom_use('icehpnd_cat' ) )   CALL iom_put( 'icehpnd_cat' ,   h_ip         * zmsk00l + zmiss_val * ( 1._wp - zmsk00l ) ) ! melt pond thickness for categories
185      IF( iom_use('icehlid_cat' ) )   CALL iom_put( 'icehlid_cat' ,   h_il         * zmsk00l + zmiss_val * ( 1._wp - zmsk00l ) ) ! melt pond lid thickness for categories
[14005]186      IF( iom_use('iceafpnd_cat') )   CALL iom_put( 'iceafpnd_cat',   a_ip_frac    * zmsk00l                                   ) ! melt pond frac per ice area for categories
[13472]187      IF( iom_use('iceaepnd_cat') )   CALL iom_put( 'iceaepnd_cat',   a_ip_eff     * zmsk00l                                   ) ! melt pond effective frac for categories
[11575]188      IF( iom_use('icealb_cat'  ) )   CALL iom_put( 'icealb_cat'  ,   alb_ice      * zmsk00l + zmiss_val * ( 1._wp - zmsk00l ) ) ! ice albedo for categories
[8586]189
[8884]190      !------------------
[8586]191      ! Add-ons for SIMIP
[8884]192      !------------------
193      ! trends
[11536]194      IF( iom_use('dmithd') )   CALL iom_put( 'dmithd', - wfx_bog - wfx_bom - wfx_sum - wfx_sni - wfx_opw - wfx_lam - wfx_res ) ! Sea-ice mass change from thermodynamics
195      IF( iom_use('dmidyn') )   CALL iom_put( 'dmidyn', - wfx_dyn + rhoi * diag_trp_vi                                        ) ! Sea-ice mass change from dynamics(kg/m2/s)
196      IF( iom_use('dmiopw') )   CALL iom_put( 'dmiopw', - wfx_opw                                                             ) ! Sea-ice mass change through growth in open water
197      IF( iom_use('dmibog') )   CALL iom_put( 'dmibog', - wfx_bog                                                             ) ! Sea-ice mass change through basal growth
198      IF( iom_use('dmisni') )   CALL iom_put( 'dmisni', - wfx_sni                                                             ) ! Sea-ice mass change through snow-to-ice conversion
199      IF( iom_use('dmisum') )   CALL iom_put( 'dmisum', - wfx_sum                                                             ) ! Sea-ice mass change through surface melting
200      IF( iom_use('dmibom') )   CALL iom_put( 'dmibom', - wfx_bom                                                             ) ! Sea-ice mass change through bottom melting
[13472]201      IF( iom_use('dmilam') )   CALL iom_put( 'dmilam', - wfx_lam                                                             ) ! Sea-ice mass change through lateral melting
[11536]202      IF( iom_use('dmtsub') )   CALL iom_put( 'dmtsub', - wfx_sub                                                             ) ! Sea-ice mass change through evaporation and sublimation
203      IF( iom_use('dmssub') )   CALL iom_put( 'dmssub', - wfx_snw_sub                                                         ) ! Snow mass change through sublimation
204      IF( iom_use('dmisub') )   CALL iom_put( 'dmisub', - wfx_ice_sub                                                         ) ! Sea-ice mass change through sublimation
205      IF( iom_use('dmsspr') )   CALL iom_put( 'dmsspr', - wfx_spr                                                             ) ! Snow mass change through snow fall
206      IF( iom_use('dmsssi') )   CALL iom_put( 'dmsssi',   wfx_sni*rhos*r1_rhoi                                                ) ! Snow mass change through snow-to-ice conversion
207      IF( iom_use('dmsmel') )   CALL iom_put( 'dmsmel', - wfx_snw_sum                                                         ) ! Snow mass change through melt
208      IF( iom_use('dmsdyn') )   CALL iom_put( 'dmsdyn', - wfx_snw_dyn + rhos * diag_trp_vs                                    ) ! Snow mass change through dynamics(kg/m2/s)
[14072]209
[8884]210      ! Global ice diagnostics
[11536]211      IF(  iom_use('NH_icearea') .OR. iom_use('NH_icevolu') .OR. iom_use('NH_iceextt') .OR. &
212         & iom_use('SH_icearea') .OR. iom_use('SH_icevolu') .OR. iom_use('SH_iceextt') ) THEN
[8586]213         !
[11536]214         WHERE( ff_t(:,:) > 0._wp )   ;   z2d(:,:) = 1._wp
215         ELSEWHERE                    ;   z2d(:,:) = 0.
216         END WHERE
[8586]217         !
[11536]218         IF( iom_use('NH_icearea') )   zdiag_area_nh = glob_sum( 'icewri', at_i *           z2d   * e1e2t * 1.e-12 )
219         IF( iom_use('NH_icevolu') )   zdiag_volu_nh = glob_sum( 'icewri', vt_i *           z2d   * e1e2t * 1.e-12 )
220         IF( iom_use('NH_iceextt') )   zdiag_extt_nh = glob_sum( 'icewri',                  z2d   * e1e2t * 1.e-12 * zmsk15 )
[8586]221         !
[11536]222         IF( iom_use('SH_icearea') )   zdiag_area_sh = glob_sum( 'icewri', at_i * ( 1._wp - z2d ) * e1e2t * 1.e-12 )
223         IF( iom_use('SH_icevolu') )   zdiag_volu_sh = glob_sum( 'icewri', vt_i * ( 1._wp - z2d ) * e1e2t * 1.e-12 )
224         IF( iom_use('SH_iceextt') )   zdiag_extt_sh = glob_sum( 'icewri',        ( 1._wp - z2d ) * e1e2t * 1.e-12 * zmsk15 )
[8586]225         !
[11536]226         CALL iom_put( 'NH_icearea' , zdiag_area_nh )
227         CALL iom_put( 'NH_icevolu' , zdiag_volu_nh )
228         CALL iom_put( 'NH_iceextt' , zdiag_extt_nh )
229         CALL iom_put( 'SH_icearea' , zdiag_area_sh )
230         CALL iom_put( 'SH_icevolu' , zdiag_volu_sh )
231         CALL iom_put( 'SH_iceextt' , zdiag_extt_sh )
232         !
[8586]233      ENDIF
234      !
235!!CR      !     !  Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s
236!!CR      !     IF( kindic < 0 )   CALL ice_wri_state( 'output.abort' )
237!!CR      !     not yet implemented
[11536]238!!gm  idem for the ocean...  Ask Seb how to get rid of ioipsl....
[8586]239      !
[9124]240      IF( ln_timing )  CALL timing_stop('icewri')
[8586]241      !
242   END SUBROUTINE ice_wri
243
[14072]244
[10425]245   SUBROUTINE ice_wri_state( kid )
[8586]246      !!---------------------------------------------------------------------
247      !!                 ***  ROUTINE ice_wri_state  ***
[14072]248      !!
249      !! ** Purpose :   create a NetCDF file named cdfile_name which contains
[8586]250      !!      the instantaneous ice state and forcing fields for ice model
251      !!        Used to find errors in the initial state or save the last
252      !!      ocean state in case of abnormal end of a simulation
253      !!
254      !! History :   4.0  !  2013-06  (C. Rousset)
255      !!----------------------------------------------------------------------
[14072]256      INTEGER, INTENT( in ) ::   kid
[8586]257      !!----------------------------------------------------------------------
258      !
[10425]259      !! The file is open in dia_wri_state (ocean routine)
[8586]260
[10425]261      CALL iom_rstput( 0, 0, kid, 'sithic', hm_i         )   ! Ice thickness
262      CALL iom_rstput( 0, 0, kid, 'siconc', at_i         )   ! Ice concentration
263      CALL iom_rstput( 0, 0, kid, 'sitemp', tm_i - rt0   )   ! Ice temperature
264      CALL iom_rstput( 0, 0, kid, 'sivelu', u_ice        )   ! i-Ice speed
265      CALL iom_rstput( 0, 0, kid, 'sivelv', v_ice        )   ! j-Ice speed
266      CALL iom_rstput( 0, 0, kid, 'sistru', utau_ice     )   ! i-Wind stress over ice
267      CALL iom_rstput( 0, 0, kid, 'sistrv', vtau_ice     )   ! i-Wind stress over ice
268      CALL iom_rstput( 0, 0, kid, 'sisflx', qsr          )   ! Solar flx over ocean
269      CALL iom_rstput( 0, 0, kid, 'sinflx', qns          )   ! NonSolar flx over ocean
270      CALL iom_rstput( 0, 0, kid, 'snwpre', sprecip      )   ! Snow precipitation
271      CALL iom_rstput( 0, 0, kid, 'sisali', sm_i         )   ! Ice salinity
272      CALL iom_rstput( 0, 0, kid, 'sivolu', vt_i         )   ! Ice volume
273      CALL iom_rstput( 0, 0, kid, 'sidive', divu_i*1.0e8 )   ! Ice divergence
274      CALL iom_rstput( 0, 0, kid, 'si_amp', at_ip        )   ! Melt pond fraction
275      CALL iom_rstput( 0, 0, kid, 'si_vmp', vt_ip        )   ! Melt pond volume
276      CALL iom_rstput( 0, 0, kid, 'sithicat', h_i        )   ! Ice thickness
277      CALL iom_rstput( 0, 0, kid, 'siconcat', a_i        )   ! Ice concentration
278      CALL iom_rstput( 0, 0, kid, 'sisalcat', s_i        )   ! Ice salinity
279      CALL iom_rstput( 0, 0, kid, 'snthicat', h_s        )   ! Snw thickness
[8586]280
281    END SUBROUTINE ice_wri_state
282
283#else
284   !!----------------------------------------------------------------------
[9570]285   !!   Default option :         Empty module         NO SI3 sea-ice model
[8586]286   !!----------------------------------------------------------------------
287#endif
288
289   !!======================================================================
290END MODULE icewri
Note: See TracBrowser for help on using the repository browser.