source: branches/dev_r4028_CNRS_LIM3_MV2014/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90 @ 4532

Last change on this file since 4532 was 4532, checked in by flavoni, 8 years ago

add iom_use function in limwri.F90, see ticket #1259

  • Property svn:keywords set to Id
File size: 19.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 par_ice
27   USE iom
28   USE timing          ! Timing
29   USE lib_fortran     ! Fortran utilities
30
31   IMPLICIT NONE
32   PRIVATE
33
34   PUBLIC lim_wri        ! routine called by lim_step.F90
35   PUBLIC lim_wri_state  ! called by dia_wri_state
36
37   REAL(wp)  ::   epsi06 = 1.e-6_wp
38   REAL(wp)  ::   zzero  = 0._wp
39   REAL(wp)  ::   zone   = 1._wp     
40   !!----------------------------------------------------------------------
41   !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2011)
42   !! $Id$
43   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
44   !!----------------------------------------------------------------------
45CONTAINS
46
47#if defined key_dimgout
48# include "limwri_dimg.h90"
49#else
50
51   SUBROUTINE lim_wri( kindic )
52      !!-------------------------------------------------------------------
53      !!  This routine computes the average of some variables and write it
54      !!  on the ouput files.
55      !!  ATTENTION cette routine n'est valable que si le pas de temps est
56      !!  egale a une fraction entiere de 1 jours.
57      !!  Diff 1-D 3-D : suppress common also included in etat
58      !!                 suppress cmoymo 11-18
59      !!  modif : 03/06/98
60      !!-------------------------------------------------------------------
61      INTEGER, INTENT(in) ::   kindic   ! if kindic < 0 there has been an error somewhere
62      !
63      INTEGER ::  ji, jj, jk, jl  ! dummy loop indices
64      REAL(wp) ::  zinda, zindb, z1_365
65      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zoi, zei
66      REAL(wp), POINTER, DIMENSION(:,:)   :: z2d, z2da, z2db, zind    ! 2D workspace
67      !!-------------------------------------------------------------------
68
69      IF( nn_timing == 1 )  CALL timing_start('limwri')
70
71      CALL wrk_alloc( jpi, jpj, jpl, zoi, zei )
72      CALL wrk_alloc( jpi, jpj     , z2d, z2da, z2db, zind )
73
74
75      !-----------------------------
76      ! Mean category values
77      !-----------------------------
78
79      CALL lim_var_icetm      ! mean sea ice temperature
80
81      CALL lim_var_bv         ! brine volume
82
83      DO jj = 1, jpj          ! presence indicator of ice
84         DO ji = 1, jpi
85            zind(ji,jj)  = MAX( zzero , SIGN( zone , at_i(ji,jj) - epsi06 ) )
86         END DO
87      END DO
88      !
89      CALL iom_put( "iceconc"      , at_i               )        ! ice concentration
90      !                                             
91      IF ( iom_use( "icethic_cea" ) ) THEN                       ! mean ice thickness
92         DO jj = 1, jpj 
93            DO ji = 1, jpi
94               z2d(ji,jj)  = vt_i(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zind(ji,jj)
95            END DO
96         END DO
97         CALL iom_put( "icethic_cea"  , z2d              )
98      ENDIF
99      CALL iom_put( "icevolu"      , vt_i                )       ! ice volume = mean ice thickness over the cell
100      IF ( iom_use( "snowthic_cea" ) ) THEN                      ! snow thickness = mean snow thickness over the cell
101         DO jj = 1, jpj                                           
102            DO ji = 1, jpi
103               z2d(ji,jj)  = vt_s(ji,jj) / MAX( at_i(ji,jj), epsi06 ) * zind(ji,jj)
104            END DO
105         END DO
106         CALL iom_put( "snowthic_cea" , z2d              )       
107      ENDIF
108      WRITE(numout,*) '   valore del iom_use snowthic_cea', iom_use( "snowthic_cea" )
109      WRITE(numout,*) '   valore del iom_use icethic_cea', iom_use( "icethic_cea" )
110      IF ( iom_use( "ioceflxb" ) ) THEN
111         CALL iom_put( "ioceflxb"     , fbif * at_i         )       ! oceanic flux at the ice base
112      ENDIF
113      CALL iom_put( "isst"         , sst_m               )       ! sea surface temperature
114      CALL iom_put( "isss"         , sss_m               )       ! sea surface salinity
115      IF ( iom_use( "qt_oce" ) ) THEN
116         CALL iom_put( "qt_oce"       , qns + qsr           )       ! total flux at ocean surface
117      ENDIF
118      !
119      IF ( iom_use( "uice_ipa" ) .OR. iom_use( "vice_ipa" ) .OR. iom_use( "icevel" )) THEN
120         DO jj = 2 , jpjm1
121            DO ji = 2 , jpim1
122               z2da(ji,jj)  = (  u_ice(ji,jj) * tmu(ji,jj) + u_ice(ji-1,jj) * tmu(ji-1,jj) ) * 0.5_wp
123               z2db(ji,jj)  = (  v_ice(ji,jj) * tmv(ji,jj) + v_ice(ji,jj-1) * tmv(ji,jj-1) ) * 0.5_wp
124           END DO
125         END DO
126         CALL lbc_lnk( z2da, 'T', -1. )
127         CALL lbc_lnk( z2db, 'T', -1. )
128         CALL iom_put( "uice_ipa"     , z2da                )       ! ice velocity u component
129         CALL iom_put( "vice_ipa"     , z2db                )       ! ice velocity v component
130         DO jj = 1, jpj                                 
131            DO ji = 1, jpi
132               z2d(ji,jj)  = SQRT( z2da(ji,jj) * z2da(ji,jj) + z2db(ji,jj) * z2db(ji,jj) ) 
133            END DO
134         END DO
135         CALL iom_put( "icevel"       , z2d                 )       ! ice velocity module
136      ENDIF
137      IF ( iom_use( "icebopr" ) ) THEN
138         CALL iom_put( "icebopr"      , diag_bot_gr * rday  )       ! daily bottom thermodynamic ice production
139      ENDIF
140      IF ( iom_use( "icebopr" ) ) THEN
141         CALL iom_put( "icedypr"      , diag_dyn_gr * rday  )       ! daily dynamic ice production (rid/raft)
142      ENDIF
143!!SF BE CAREFUL : qsr_oce qnd qns_oce are after penetration over ice
144      CALL iom_put( "qsr_oce"      , qsr                 )       ! solar flux at ocean surface
145      CALL iom_put( "qns_oce"      , qns                 )       ! non-solar flux at ocean surface
146!!SF end be careful
147      CALL iom_put( "hfbri"        , fhbri               )       ! heat flux due to brine release
148      CALL iom_put( "utau_ice"     , utau_ice            )       ! wind stress over ice along i-axis at I-point
149      CALL iom_put( "vtau_ice"     , vtau_ice            )       ! wind stress over ice along j-axis at I-point
150!!SF commented because this computation is not ok
151 !SF because qsr is not qsr_ocean but it contains already qsr_ice
152      !SF
153      !SF DO jj = 1 , jpj
154      !SF    DO ji = 1 , jpi
155      !SF       z2d(ji,jj)  = ( 1._wp - at_i(ji,jj) ) * qsr(ji,jj)
156      !SF   END DO
157      !SF END DO
158      !SF CALL iom_put( "qsr_io"       , z2d                 )        ! solar flux at ice/ocean surface
159      !SF DO jj = 1 , jpj
160      !SF    DO ji = 1 , jpi
161      !SF       z2d(ji,jj)  = ( 1._wp - at_i(ji,jj) ) * qns(ji,jj)
162      !SF   END DO
163      !SF END DO
164      !SF CALL iom_put( "qns_io"       , z2d                 )        ! non-solar flux at ice/ocean surface
165      CALL iom_put( "snowpre"      , sprecip             )        ! snow precipitation
166      CALL iom_put( "micesalt"     , smt_i               )        ! mean ice salinity
167      !
168      IF ( iom_use( "miceage" ) ) THEN
169         z2d(:,:) = 0.e0
170         DO jl = 1, jpl
171            DO jj = 1, jpj
172               DO ji = 1, jpi
173                  z2d(ji,jj) = z2d(ji,jj) + zind(ji,jj) * oa_i(ji,jj,jl)
174               END DO
175            END DO
176         END DO
177         z1_365 = 1._wp / 365._wp
178         CALL iom_put( "miceage"     , z2d * z1_365         )        ! mean ice age
179      ENDIF
180      IF ( iom_use( "icelapr" ) ) THEN
181         CALL iom_put( "icelapr"     , diag_lat_gr * rday   )        ! daily lateral thermodynamic ice production
182      ENDIF
183      IF ( iom_use( "icesipr" ) ) THEN
184         CALL iom_put( "icesipr"     , diag_sni_gr * rday   )        ! daily snowice ice production
185      ENDIF
186      IF ( iom_use( "micet" ) ) THEN
187         DO jj = 1, jpj
188            DO ji = 1, jpi
189               z2d(ji,jj) = ( tm_i(ji,jj) - rtt ) * zind(ji,jj)
190            END DO
191         END DO
192         CALL iom_put( "micet"       , z2d                  )        ! mean ice temperature
193      ENDIF
194      CALL iom_put( "icehc"       , et_i                 )        ! ice total heat content
195      CALL iom_put( "isnowhc"     , et_s                 )        ! snow total heat content
196      !
197      IF ( iom_use( "icest" ) ) THEN
198         z2d(:,:) = 0.e0
199         DO jl = 1, jpl
200            DO jj = 1, jpj
201               DO ji = 1, jpi
202                  z2d(ji,jj) = z2d(ji,jj) + zind(ji,jj) * ( t_su(ji,jj,jl) - rtt ) * a_i(ji,jj,jl) / MAX( at_i(ji,jj) , epsi06 )
203               END DO
204            END DO
205         END DO
206         CALL iom_put( "icest"       , z2d                 )        ! ice surface temperature
207      ENDIF
208      IF ( iom_use( "sfxthd" ) ) THEN
209         CALL iom_put( "sfxthd"      , sfx_thd * rday      )        ! equivalent FW salt flux
210      ENDIF
211      IF ( iom_use( "ibrinv" ) ) THEN
212         CALL iom_put( "ibrinv"      , bv_i * 100._wp      )        ! brine volume
213      ENDIF
214      IF ( iom_use( "icecolf" ) ) THEN
215         DO jj = 1, jpj
216            DO ji = 1, jpi
217               zindb  = MAX( zzero , SIGN( zone , at_i(ji,jj) ) )
218               z2d(ji,jj) = hicol(ji,jj) * zindb
219            END DO
220         END DO
221         CALL iom_put( "icecolf"     , z2d                 )        ! frazil ice collection thickness
222      ENDIF
223      IF ( iom_use( "icestr" ) ) THEN
224         CALL iom_put( "icestr"      , strength * 0.001    )        ! ice strength
225      ENDIF
226      IF ( iom_use( "isume" ) ) THEN
227         CALL iom_put( "isume"       , diag_sur_me * rday  )        ! surface melt
228      ENDIF
229      IF ( iom_use( "ibome" ) ) THEN
230         CALL iom_put( "ibome"       , diag_bot_me * rday  )        ! bottom melt
231      ENDIF
232      IF ( iom_use( "idive" ) ) THEN
233         CALL iom_put( "idive"       , divu_i * 1.0e8      )        ! divergence
234      ENDIF
235      IF ( iom_use( "ishear" ) ) THEN
236         CALL iom_put( "ishear"      , shear_i * 1.0e8     )        ! shear
237      ENDIF
238      IF ( iom_use( "icerepr" ) ) THEN
239         CALL iom_put( "icerepr"     , diag_res_pr * rday  )        ! daily prod./melting due to limupdate
240      ENDIF
241      CALL iom_put( "snowvol"     , vt_s                )        ! snow volume
242      IF ( iom_use( "sfxmec" ) ) THEN
243         CALL iom_put( "sfxmec"      , sfx_mec * rday      )        ! salt flux from ridging rafting
244      ENDIF
245      IF ( iom_use( "sfxres" ) ) THEN
246         CALL iom_put( "sfxres"      , sfx_res * rday      )        ! salt flux from limupdate (resultant)
247      ENDIF
248      IF ( iom_use( "icetrp" ) ) THEN
249         CALL iom_put( "icetrp"      , diag_trp_vi * rday  )        ! ice volume transport
250      ENDIF
251
252
253      !--------------------------------
254      ! Output values for each category
255      !--------------------------------
256
257      IF ( iom_use( "iceage_cat" ) ) THEN
258         DO jl = 1, jpl 
259            CALL lbc_lnk( a_i(:,:,jl)  , 'T' ,  1. )
260            CALL lbc_lnk( sm_i(:,:,jl) , 'T' ,  1. )
261            CALL lbc_lnk( oa_i(:,:,jl) , 'T' ,  1. )
262            CALL lbc_lnk( ht_i(:,:,jl) , 'T' ,  1. )
263            CALL lbc_lnk( ht_s(:,:,jl) , 'T' ,  1. )
264         END DO
265
266         DO jl = 1, jpl 
267            DO jj = 1, jpj
268               DO ji = 1, jpi
269                  zinda = MAX( zzero , SIGN( zone , a_i(ji,jj,jl) - epsi06 ) )
270                  zoi(ji,jj,jl) = oa_i(ji,jj,jl)  / MAX( a_i(ji,jj,jl) , epsi06 ) * zinda
271               END DO
272            END DO
273         END DO
274 
275         CALL iom_put( "iceage_cat"     , zoi         )        ! ice age for categories
276      ENDIF
277
278      ! Compute brine volume
279      IF ( iom_use( "iceage_cat" ) ) THEN
280         zei(:,:,:) = 0._wp
281         DO jl = 1, jpl 
282            DO jk = 1, nlay_i
283               DO jj = 1, jpj
284                  DO ji = 1, jpi
285                     zinda = MAX( zzero , SIGN( zone , a_i(ji,jj,jl) - epsi06 ) )
286                     zei(ji,jj,jl) = zei(ji,jj,jl) + 100.0* &
287                        ( - tmut * s_i(ji,jj,jk,jl) / MIN( ( t_i(ji,jj,jk,jl) - rtt ), - epsi06 ) ) * &
288                        zinda / nlay_i
289                  END DO
290               END DO
291            END DO
292         END DO
293
294         DO jl = 1, jpl 
295            CALL lbc_lnk( zei(:,:,jl) , 'T' ,  1. )
296         END DO
297         CALL iom_put( "brinevol_cat"     , zei         )        ! brine volume for categories
298      ENDIF
299
300         CALL iom_put( "iceconc_cat"      , a_i         )        ! area for categories
301         CALL iom_put( "icethic_cat"      , ht_i        )        ! thickness for categories
302         CALL iom_put( "snowthic_cat"     , ht_s        )        ! snow depth for categories
303         CALL iom_put( "salinity_cat"     , sm_i        )        ! salinity for categories
304
305      !     !  Create an output files (output.lim.abort.nc) if S < 0 or u > 20
306      !     m/s
307      !     IF( kindic < 0 )   CALL lim_wri_state( 'output.abort' )
308      !     not yet implemented
309
310      CALL wrk_dealloc( jpi, jpj, jpl, zoi, zei )
311      CALL wrk_dealloc( jpi, jpj     , z2d, zind, z2da, z2db )
312
313      IF( nn_timing == 1 )  CALL timing_stop('limwri')
314     
315   END SUBROUTINE lim_wri
316#endif
317
318 
319   SUBROUTINE lim_wri_state( kt, kid, kh_i )
320      !!---------------------------------------------------------------------
321      !!                 ***  ROUTINE lim_wri_state  ***
322      !!       
323      !! ** Purpose :   create a NetCDF file named cdfile_name which contains
324      !!      the instantaneous ice state and forcing fields for ice model
325      !!        Used to find errors in the initial state or save the last
326      !!      ocean state in case of abnormal end of a simulation
327      !!
328      !! History :
329      !!   4.1  !  2013-06  (C. Rousset)
330      !!----------------------------------------------------------------------
331      INTEGER, INTENT( in ) ::   kt               ! ocean time-step index)
332      INTEGER, INTENT( in ) ::   kid , kh_i       
333      !!----------------------------------------------------------------------
334   
335
336   
337      CALL histdef( kid, "iicethic", "Ice thickness"           , "m"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
338      CALL histdef( kid, "iiceconc", "Ice concentration"       , "%"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
339      CALL histdef( kid, "iicetemp", "Ice temperature"         , "C"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
340      CALL histdef( kid, "iicevelu", "i-Ice speed (I-point)"   , "m/s"    , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
341      CALL histdef( kid, "iicevelv", "j-Ice speed (I-point)"   , "m/s"    , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
342      CALL histdef( kid, "iicestru", "i-Wind stress over ice (I-pt)", "Pa", jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
343      CALL histdef( kid, "iicestrv", "j-Wind stress over ice (I-pt)", "Pa", jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
344      CALL histdef( kid, "iicesflx", "Solar flux over ocean"     , "w/m2"   , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
345      CALL histdef( kid, "iicenflx", "Non-solar flux over ocean" , "w/m2"   , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
346      CALL histdef( kid, "isnowpre", "Snow precipitation"      , "kg/m2/s", jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
347      CALL histdef( kid, "iicesali", "Ice salinity"            , "PSU"    , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
348      CALL histdef( kid, "iicevolu", "Ice volume"              , "m"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
349      CALL histdef( kid, "iicedive", "Ice divergence"          , "10-8s-1", jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
350      CALL histdef( kid, "iicebopr", "Ice bottom production"   , "m/s"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
351      CALL histdef( kid, "iicedypr", "Ice dynamic production"  , "m/s"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
352      CALL histdef( kid, "iicelapr", "Ice open water prod"     , "m/s"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
353      CALL histdef( kid, "iicesipr", "Snow ice production "    , "m/s"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
354      CALL histdef( kid, "iicerepr", "Ice prod from limupdate" , "m/s"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
355      CALL histdef( kid, "iicebome", "Ice bottom melt"         , "m/s"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
356      CALL histdef( kid, "iicesume", "Ice surface melt"        , "m/s"      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
357      CALL histdef( kid, "iisfxthd", "Salt flux from thermo"   , ""      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
358      CALL histdef( kid, "iisfxmec", "Salt flux from dynmics"  , ""      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
359      CALL histdef( kid, "iisfxres", "Salt flux from limupdate", ""      , jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
360
361      CALL histend( kid, snc4set )   ! end of the file definition
362
363      CALL histwrite( kid, "iicethic", kt, icethi        , jpi*jpj, (/1/) )   
364      CALL histwrite( kid, "iiceconc", kt, at_i          , jpi*jpj, (/1/) )
365      CALL histwrite( kid, "iicetemp", kt, tm_i - rtt    , jpi*jpj, (/1/) )
366      CALL histwrite( kid, "iicevelu", kt, u_ice          , jpi*jpj, (/1/) )
367      CALL histwrite( kid, "iicevelv", kt, v_ice          , jpi*jpj, (/1/) )
368      CALL histwrite( kid, "iicestru", kt, utau_ice       , jpi*jpj, (/1/) )
369      CALL histwrite( kid, "iicestrv", kt, vtau_ice       , jpi*jpj, (/1/) )
370      CALL histwrite( kid, "iicesflx", kt, qsr , jpi*jpj, (/1/) )
371      CALL histwrite( kid, "iicenflx", kt, qns , jpi*jpj, (/1/) )
372      CALL histwrite( kid, "isnowpre", kt, sprecip        , jpi*jpj, (/1/) )
373      CALL histwrite( kid, "iicesali", kt, smt_i          , jpi*jpj, (/1/) )
374      CALL histwrite( kid, "iicevolu", kt, vt_i           , jpi*jpj, (/1/) )
375      CALL histwrite( kid, "iicedive", kt, divu_i*1.0e8   , jpi*jpj, (/1/) )
376
377      CALL histwrite( kid, "iicebopr", kt, diag_bot_gr        , jpi*jpj, (/1/) )
378      CALL histwrite( kid, "iicedypr", kt, diag_dyn_gr        , jpi*jpj, (/1/) )
379      CALL histwrite( kid, "iicelapr", kt, diag_lat_gr        , jpi*jpj, (/1/) )
380      CALL histwrite( kid, "iicesipr", kt, diag_sni_gr        , jpi*jpj, (/1/) )
381      CALL histwrite( kid, "iicerepr", kt, diag_res_pr        , jpi*jpj, (/1/) )
382      CALL histwrite( kid, "iicebome", kt, diag_bot_me        , jpi*jpj, (/1/) )
383      CALL histwrite( kid, "iicesume", kt, diag_sur_me        , jpi*jpj, (/1/) )
384      CALL histwrite( kid, "iisfxthd", kt, sfx_thd        , jpi*jpj, (/1/) )
385      CALL histwrite( kid, "iisfxmec", kt, sfx_mec        , jpi*jpj, (/1/) )
386      CALL histwrite( kid, "iisfxres", kt, sfx_res        , jpi*jpj, (/1/) )
387
388      ! Close the file
389      ! -----------------
390      CALL histclo( kid )
391
392    END SUBROUTINE lim_wri_state
393
394#else
395   !!----------------------------------------------------------------------
396   !!   Default option :         Empty module          NO LIM sea-ice model
397   !!----------------------------------------------------------------------
398CONTAINS
399   SUBROUTINE lim_wri          ! Empty routine
400   END SUBROUTINE lim_wri
401#endif
402
403   !!======================================================================
404END MODULE limwri
Note: See TracBrowser for help on using the repository browser.