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

source: branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90 @ 2633

Last change on this file since 2633 was 2633, checked in by trackstand2, 13 years ago

Renamed wrk_use => wrk_in_use and wrk_release => wrk_not_released

  • Property svn:keywords set to Id
File size: 19.7 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_init : initialization and namelist read
12   !!----------------------------------------------------------------------
13   USE ioipsl
14   USE dianam          ! build name of file (routine)
15   USE phycst
16   USE dom_oce
17   USE in_out_manager
18   USE sbc_oce         ! Surface boundary condition: ocean fields
19   USE sbc_ice         ! Surface boundary condition: ice fields
20   USE dom_ice
21   USE ice
22   USE lbclnk
23   USE par_ice
24   USE limvar
25
26   IMPLICIT NONE
27   PRIVATE
28
29   PUBLIC lim_wri        ! routine called by lim_step.F90
30
31   INTEGER, PARAMETER ::   jpnoumax = 40   !: maximum number of variable for ice output
32   
33   INTEGER  ::   noumef             ! number of fields
34   INTEGER  ::   noumefa            ! number of additional fields
35   INTEGER  ::   add_diag_swi       ! additional diagnostics
36   INTEGER  ::   nz                                         ! dimension for the itd field
37
38   REAL(wp) , DIMENSION(jpnoumax) ::   cmulti         ! multiplicative constant
39   REAL(wp) , DIMENSION(jpnoumax) ::   cadd           ! additive constant
40   REAL(wp) , DIMENSION(jpnoumax) ::   cmultia        ! multiplicative constant
41   REAL(wp) , DIMENSION(jpnoumax) ::   cadda          ! additive constant
42   CHARACTER(len = 35), DIMENSION(jpnoumax) ::   titn, titna   ! title of the field
43   CHARACTER(len = 8 ), DIMENSION(jpnoumax) ::   nam , nama    ! name of the field
44   CHARACTER(len = 8 ), DIMENSION(jpnoumax) ::   uni , unia    ! unit of the field
45   INTEGER            , DIMENSION(jpnoumax) ::   nc  , nca     ! switch for saving field ( = 1 ) or not ( = 0 )
46
47   REAL(wp)  ::   epsi16 = 1e-16_wp
48   REAL(wp)  ::   zzero  = 0._wp
49   REAL(wp)  ::   zone   = 1._wp
50     
51   !!----------------------------------------------------------------------
52   !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2011)
53   !! $Id$
54   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
55   !!----------------------------------------------------------------------
56CONTAINS
57
58#if defined key_dimgout
59# include "limwri_dimg.h90"
60#else
61
62   SUBROUTINE lim_wri( kindic )
63      !!-------------------------------------------------------------------
64      !!  This routine computes the average of some variables and write it
65      !!  on the ouput files.
66      !!  ATTENTION cette routine n'est valable que si le pas de temps est
67      !!  egale a une fraction entiere de 1 jours.
68      !!  Diff 1-D 3-D : suppress common also included in etat
69      !!                 suppress cmoymo 11-18
70      !!  modif : 03/06/98
71      !!-------------------------------------------------------------------
72      USE wrk_nemo, ONLY: wrk_not_released, wrk_in_use
73      USE wrk_nemo, ONLY: zfield => wrk_2d_1             ! 2D workspace
74      USE wrk_nemo, ONLY: wrk_3d_1, wrk_3D_2, wrk_3d_3   ! 3D workspace
75      !
76      INTEGER, INTENT(in) ::   kindic   ! if kindic < 0 there has been an error somewhere
77      !
78      INTEGER ::  ji, jj, jk, jl, jf, ipl ! dummy loop indices
79      INTEGER ::  ierr
80      REAL(wp),DIMENSION(1) ::   zdept
81      REAL(wp) ::  zsto, zjulian, zout, zindh, zinda, zindb
82      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zcmo, zcmoa   ! additional fields
83      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zmaskitd, zoi, zei
84
85      CHARACTER(len = 40) ::   clhstnam, clop, clhstnama
86
87      INTEGER , SAVE ::   nice, nhorid, ndim, niter, ndepid
88      INTEGER , SAVE ::   nicea, nhorida, ndimitd
89      INTEGER , ALLOCATABLE, DIMENSION(:), SAVE ::   ndex51
90      INTEGER , ALLOCATABLE, DIMENSION(:), SAVE ::   ndexitd
91      !!-------------------------------------------------------------------
92
93      ipl = jpl
94
95      zcmo     => wrk_3d_1(:,:,1:jpnoumax)
96      zcmoa    => wrk_3d_2(:,:,1:jpnoumax)
97      zmaskitd => wrk_3d_2(:,:,1:jpl)
98      zoi      => wrk_3d_2(:,:,1:jpl)
99      zei      => wrk_3d_2(:,:,1:jpl)
100
101
102      IF( numit == nstart ) THEN
103
104         ALLOCATE( ndex51(jpij) , ndexitd(jpij*jpl) , STAT=ierr )
105         IF( ierr /= 0 ) THEN
106            CALL ctl_stop( 'lim_wri : unable to allocate standard arrays' )   ;   RETURN
107         ENDIF
108
109         CALL lim_wri_init 
110
111         IF(lwp) WRITE(numout,*) ' lim_wri, first time step '
112         IF(lwp) WRITE(numout,*) ' add_diag_swi ', add_diag_swi
113
114         !--------------------
115         !  1) Initialization
116         !--------------------
117
118         !-------------
119         ! Normal file
120         !-------------
121
122         zsto     = rdt_ice
123         IF( ln_mskland )   THEN   ;   clop = "ave(only(x))"   ! put 1.e+20 on land (very expensive!!)
124         ELSE                      ;   clop = "ave(x)"         ! no use of the mask value (require less cpu time)
125         ENDIF
126         zout     = nwrite * rdt_ice / nn_fsbc
127         niter    = ( nit000 - 1 ) / nn_fsbc
128         zdept(1) = 0.
129
130         CALL ymds2ju ( nyear, nmonth, nday, rdt, zjulian )
131         zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment
132         CALL dia_nam ( clhstnam, nwrite, 'icemod' )
133         CALL histbeg ( clhstnam, jpi, glamt, jpj, gphit, 1, jpi, 1, jpj, niter, zjulian, rdt_ice,   &
134            &           nhorid, nice, domain_id=nidom, snc4chunks=snc4set )
135         CALL histvert( nice, "deptht", "Vertical T levels", "m", 1, zdept, ndepid, "down")
136         CALL wheneq  ( jpij , tmask(:,:,1), 1, 1., ndex51, ndim)
137
138         DO jf = 1 , noumef
139            IF(lwp) WRITE(numout,*) 'jf', jf
140            IF ( nc(jf) == 1 ) THEN
141               CALL histdef( nice, nam(jf), titn(jf), uni(jf), jpi, jpj &
142                  , nhorid, 1, 1, 1, -99, 32, clop, zsto, zout )
143               IF(lwp) WRITE(numout,*) 'nice, nam(jf), titn(jf), uni(jf), nhorid, clop, zsto, zout'
144               IF(lwp) WRITE(numout,*)  nice, nam(jf), titn(jf), uni(jf), nhorid, clop, zsto, zout 
145            ENDIF
146         END DO
147
148         CALL histend(nice, snc4set)
149
150         !-----------------
151         ! ITD file output
152         !-----------------
153         zsto     = rdt_ice
154         clop     = "ave(x)"
155         zout     = nwrite * rdt_ice / nn_fsbc
156         zdept(1) = 0.
157
158         CALL dia_nam ( clhstnama, nwrite, 'icemoa' )
159         CALL histbeg ( clhstnama, jpi, glamt, jpj, gphit,         &
160            1, jpi, 1, jpj,            & ! zoom
161            niter, zjulian, rdt_ice,   & ! time
162            nhorida,                   & ! ? linked with horizontal ...
163            nicea , domain_id=nidom, snc4chunks=snc4set)                  ! file
164         CALL histvert( nicea, "icethi", "L levels",               &
165            "m", ipl , hi_mean , nz )
166         DO jl = 1, jpl
167            zmaskitd(:,:,jl) = tmask(:,:,1)
168         END DO
169         CALL wheneq  ( jpij , tmask(:,:,1), 1, 1., ndex51, ndim)
170         CALL wheneq( jpi*jpj*jpl, zmaskitd, 1, 1., ndexitd, ndimitd  ) 
171         CALL histdef( nicea, "iice_itd", "Ice area in categories"         , "-"    ,   & 
172            jpi, jpj, nhorida, jpl, 1, jpl, nz, 15, clop, zsto, zout )
173         CALL histdef( nicea, "iice_hid", "Ice thickness in categories"    , "m"    ,   & 
174            jpi, jpj, nhorida, jpl, 1, jpl, nz, 15, clop, zsto, zout )
175         CALL histdef( nicea, "iice_hsd", "Snow depth in in categories"    , "m"    ,   & 
176            jpi, jpj, nhorida, jpl, 1, jpl, nz, 15, clop, zsto, zout )
177         CALL histdef( nicea, "iice_std", "Ice salinity distribution"      , "ppt"  ,   & 
178            jpi, jpj, nhorida, jpl, 1, jpl, nz, 15, clop, zsto, zout )
179         CALL histdef( nicea, "iice_otd", "Ice age distribution"               , "days",   & 
180            jpi, jpj, nhorida, jpl, 1, jpl, nz, 15, clop, zsto, zout )
181         CALL histdef( nicea, "iice_etd", "Brine volume distr. "               , "%"    ,   & 
182            jpi, jpj, nhorida, jpl, 1, jpl, nz, 15, clop, zsto, zout )
183         CALL histend(nicea, snc4set)
184      ENDIF
185
186      !     !-----------------------------------------------------------------------!
187      !     !--2. Computation of instantaneous values                               !
188      !     !-----------------------------------------------------------------------!
189
190      !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
191      IF( ln_nicep ) THEN
192         WRITE(numout,*)
193         WRITE(numout,*) 'lim_wri : write ice outputs in NetCDF files at time : ', nyear, nmonth, nday, numit
194         WRITE(numout,*) '~~~~~~~ '
195         WRITE(numout,*) ' kindic = ', kindic
196      ENDIF
197      !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
198
199      !-- calculs des valeurs instantanees
200      zcmo ( 1:jpi, 1:jpj, 1:jpnoumax ) = 0._wp
201      zcmoa( 1:jpi, 1:jpj, 1:jpnoumax ) = 0._wp
202
203      DO jl = 1, jpl
204         DO jj = 1, jpj
205            DO ji = 1, jpi
206               zindh  = MAX( zzero , SIGN( zone , vt_i(ji,jj) * at_i(ji,jj) - 0.10 ) )
207               zinda  = MAX( zzero , SIGN( zone , at_i(ji,jj) - 0.10 ) )
208               zcmo(ji,jj,17) = zcmo(ji,jj,17) + a_i(ji,jj,jl)*qsr_ice (ji,jj,jl) 
209               zcmo(ji,jj,18) = zcmo(ji,jj,18) + a_i(ji,jj,jl)*qns_ice(ji,jj,jl) 
210               zcmo(ji,jj,27) = zcmo(ji,jj,27) + t_su(ji,jj,jl)*a_i(ji,jj,jl)/MAX(at_i(ji,jj),epsi16)*zinda
211            END DO
212         END DO
213      END DO
214
215      CALL lim_var_bv
216
217      DO jj = 2 , jpjm1
218         DO ji = 2 , jpim1
219            zindh  = MAX( zzero , SIGN( zone , vt_i(ji,jj) * at_i(ji,jj) - 0.10 ) )
220            zinda  = MAX( zzero , SIGN( zone , at_i(ji,jj) - 0.10 ) )
221            zindb  = zindh * zinda
222
223            zcmo(ji,jj,1)  = at_i(ji,jj)
224            zcmo(ji,jj,2)  = vt_i(ji,jj) / MAX( at_i(ji,jj), epsi16 ) * zinda
225            zcmo(ji,jj,3)  = vt_s(ji,jj) / MAX( at_i(ji,jj), epsi16 ) * zinda
226            zcmo(ji,jj,4)  = diag_bot_gr(ji,jj) * 86400.0 * zinda    ! Bottom thermodynamic ice production
227            zcmo(ji,jj,5)  = diag_dyn_gr(ji,jj) * 86400.0 * zinda    ! Dynamic ice production (rid/raft)
228            zcmo(ji,jj,22) = diag_lat_gr(ji,jj) * 86400.0 * zinda    ! Lateral thermodynamic ice production
229            zcmo(ji,jj,23) = diag_sni_gr(ji,jj) * 86400.0 * zinda    ! Snow ice production ice production
230            zcmo(ji,jj,24) = tm_i(ji,jj) - rtt
231
232            zcmo(ji,jj,6)  = fbif  (ji,jj)
233            zcmo(ji,jj,7)  = zindb * (  u_ice(ji,jj) * tmu(ji,jj) + u_ice(ji-1,jj) * tmu(ji-1,jj) ) * 0.5_wp
234            zcmo(ji,jj,8)  = zindb * (  v_ice(ji,jj) * tmv(ji,jj) + v_ice(ji,jj-1) * tmv(ji,jj-1) ) * 0.5_wp
235            zcmo(ji,jj,9)  = sst_m(ji,jj)
236            zcmo(ji,jj,10) = sss_m(ji,jj)
237
238            zcmo(ji,jj,11) = qns(ji,jj) + qsr(ji,jj)
239            zcmo(ji,jj,12) = qsr(ji,jj)
240            zcmo(ji,jj,13) = qns(ji,jj)
241            zcmo(ji,jj,14) = fhbri(ji,jj)
242            zcmo(ji,jj,15) = utau_ice(ji,jj)
243            zcmo(ji,jj,16) = vtau_ice(ji,jj)
244            zcmo(ji,jj,17) = zcmo(ji,jj,17) + ( 1._wp - at_i(ji,jj) ) * qsr(ji,jj)
245            zcmo(ji,jj,18) = zcmo(ji,jj,18) + ( 1._wp - at_i(ji,jj) ) * qns(ji,jj)
246            zcmo(ji,jj,19) = sprecip(ji,jj)
247            zcmo(ji,jj,20) = smt_i(ji,jj)
248            zcmo(ji,jj,21) = ot_i(ji,jj)
249            zcmo(ji,jj,25) = et_i(ji,jj)
250            zcmo(ji,jj,26) = et_s(ji,jj)
251            zcmo(ji,jj,28) = fsbri(ji,jj)
252            zcmo(ji,jj,29) = fseqv(ji,jj)
253
254            zcmo(ji,jj,30) = bv_i(ji,jj)
255            zcmo(ji,jj,31) = hicol(ji,jj)
256            zcmo(ji,jj,32) = strength(ji,jj)
257            zcmo(ji,jj,33) = SQRT(  zcmo(ji,jj,7)*zcmo(ji,jj,7) + zcmo(ji,jj,8)*zcmo(ji,jj,8)  )
258            zcmo(ji,jj,34) = diag_sur_me(ji,jj) * 86400.0 * zinda    ! Surface melt
259            zcmo(ji,jj,35) = diag_bot_me(ji,jj) * 86400.0 * zinda    ! Bottom melt
260            zcmo(ji,jj,36) = divu_i(ji,jj)
261            zcmo(ji,jj,37) = shear_i(ji,jj)
262         END DO
263      END DO
264
265      !
266      ! ecriture d'un fichier netcdf
267      !
268      niter = niter + 1
269      DO jf = 1 , noumef
270         !
271         zfield(:,:) = zcmo(:,:,jf) * cmulti(jf) + cadd(jf)
272         !
273         IF( jf == 7  .OR. jf == 8  .OR. jf == 15 .OR. jf == 16 ) THEN   ;   CALL lbc_lnk( zfield, 'T', -1. )
274         ELSE                                                            ;   CALL lbc_lnk( zfield, 'T',  1. )
275         ENDIF
276         !
277         IF( ln_nicep ) THEN
278            WRITE(numout,*)
279            WRITE(numout,*) 'nc(jf), nice, nam(jf), niter, ndim'
280            WRITE(numout,*) nc(jf), nice, nam(jf), niter, ndim
281         ENDIF
282         IF( nc(jf) == 1 ) CALL histwrite( nice, nam(jf), niter, zfield, ndim, ndex51 )
283         !
284      END DO
285
286      IF( ( nn_fsbc * niter ) >= nitend .OR. kindic < 0 ) THEN
287         IF( lwp) WRITE(numout,*) ' Closing the icemod file '
288         CALL histclo( nice )
289      ENDIF
290
291      !-----------------------------
292      ! Thickness distribution file
293      !-----------------------------
294      IF( add_diag_swi == 1 ) THEN
295
296         DO jl = 1, jpl 
297            CALL lbc_lnk( a_i(:,:,jl)  , 'T' ,  1. )
298            CALL lbc_lnk( sm_i(:,:,jl) , 'T' ,  1. )
299            CALL lbc_lnk( oa_i(:,:,jl) , 'T' ,  1. )
300            CALL lbc_lnk( ht_i(:,:,jl) , 'T' ,  1. )
301            CALL lbc_lnk( ht_s(:,:,jl) , 'T' ,  1. )
302         END DO
303
304         ! Compute ice age
305         DO jl = 1, jpl 
306            DO jj = 1, jpj
307               DO ji = 1, jpi
308                  zinda = MAX( zzero , SIGN( zone , a_i(ji,jj,jl) - 1.0e-6 ) )
309                  zoi(ji,jj,jl) = oa_i(ji,jj,jl)  / MAX( a_i(ji,jj,jl) , 1.0e-6 ) * zinda
310               END DO
311            END DO
312         END DO
313
314         ! Compute brine volume
315         zei(:,:,:) = 0._wp
316         DO jl = 1, jpl 
317            DO jk = 1, nlay_i
318               DO jj = 1, jpj
319                  DO ji = 1, jpi
320                     zinda = MAX( zzero , SIGN( zone , a_i(ji,jj,jl) - 1.0e-6 ) )
321                     zei(ji,jj,jl) = zei(ji,jj,jl) + 100.0* &
322                        ( - tmut * s_i(ji,jj,jk,jl) / MIN( ( t_i(ji,jj,jk,jl) - rtt ), -1.0e-6 ) ) * &
323                        zinda / nlay_i
324                  END DO
325               END DO
326            END DO
327         END DO
328
329         DO jl = 1, jpl 
330            CALL lbc_lnk( zei(:,:,jl) , 'T' ,  1. )
331         END DO
332
333         CALL histwrite( nicea, "iice_itd", niter, a_i  , ndimitd , ndexitd  )   ! area
334         CALL histwrite( nicea, "iice_hid", niter, ht_i , ndimitd , ndexitd  )   ! thickness
335         CALL histwrite( nicea, "iice_hsd", niter, ht_s , ndimitd , ndexitd  )   ! snow depth
336         CALL histwrite( nicea, "iice_std", niter, sm_i , ndimitd , ndexitd  )   ! salinity
337         CALL histwrite( nicea, "iice_otd", niter, zoi  , ndimitd , ndexitd  )   ! age
338         CALL histwrite( nicea, "iice_etd", niter, zei  , ndimitd , ndexitd  )   ! brine volume
339
340         !     !  Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s
341         !     IF( kindic < 0 )   CALL lim_wri_state( 'output.abort' )
342         !     not yet implemented
343
344         IF( ( nn_fsbc * niter ) >= nitend .OR. kindic < 0 ) THEN
345            IF(lwp) WRITE(numout,*) ' Closing the icemod file '
346            CALL histclo( nicea ) 
347         ENDIF
348         !
349      ENDIF
350
351   END SUBROUTINE lim_wri
352#endif
353
354   SUBROUTINE lim_wri_init
355      !!-------------------------------------------------------------------
356      !!                    ***   ROUTINE lim_wri_init  ***
357      !!               
358      !! ** Purpose :   ???
359      !!
360      !! ** Method  : Read the namicewri namelist and check the parameter
361      !!       values called at the first timestep (nit000)
362      !!
363      !! ** input   :   Namelist namicewri
364      !!-------------------------------------------------------------------
365      INTEGER ::   nf      ! ???
366
367      TYPE FIELD 
368         CHARACTER(len = 35) :: ztitle 
369         CHARACTER(len = 8 ) :: zname         
370         CHARACTER(len = 8 ) :: zunit
371         INTEGER             :: znc   
372         REAL                :: zcmulti 
373         REAL                :: zcadd       
374      END TYPE FIELD
375
376      TYPE(FIELD) ::  &
377         field_1 , field_2 , field_3 , field_4 , field_5 , field_6 ,   &
378         field_7 , field_8 , field_9 , field_10, field_11, field_12,   &
379         field_13, field_14, field_15, field_16, field_17, field_18,   &
380         field_19, field_20, field_21, field_22, field_23, field_24,   &
381         field_25, field_26, field_27, field_28, field_29, field_30,   &
382         field_31, field_32, field_33, field_34, field_35, field_36,   &
383         field_37
384
385      TYPE(FIELD) , DIMENSION(jpnoumax) :: zfield
386      !
387      NAMELIST/namiceout/ noumef, &
388         field_1 , field_2 , field_3 , field_4 , field_5 , field_6 ,   &
389         field_7 , field_8 , field_9 , field_10, field_11, field_12,   &
390         field_13, field_14, field_15, field_16, field_17, field_18,   &
391         field_19, field_20, field_21, field_22, field_23, field_24,   &
392         field_25, field_26, field_27, field_28, field_29, field_30,   &
393         field_31, field_32, field_33, field_34, field_35, field_36,   &
394         field_37, add_diag_swi
395      !!-------------------------------------------------------------------
396
397      REWIND( numnam_ice )                ! Read Namelist namicewri
398      READ  ( numnam_ice  , namiceout )
399
400      zfield(1)  = field_1
401      zfield(2)  = field_2
402      zfield(3)  = field_3
403      zfield(4)  = field_4
404      zfield(5)  = field_5
405      zfield(6)  = field_6
406      zfield(7)  = field_7
407      zfield(8)  = field_8
408      zfield(9)  = field_9
409      zfield(10) = field_10
410      zfield(11) = field_11
411      zfield(12) = field_12
412      zfield(13) = field_13
413      zfield(14) = field_14
414      zfield(15) = field_15
415      zfield(16) = field_16
416      zfield(17) = field_17
417      zfield(18) = field_18
418      zfield(19) = field_19
419      zfield(20) = field_20
420      zfield(21) = field_21
421      zfield(22) = field_22
422      zfield(23) = field_23
423      zfield(24) = field_24
424      zfield(25) = field_25
425      zfield(26) = field_26
426      zfield(27) = field_27
427      zfield(28) = field_28
428      zfield(29) = field_29
429      zfield(30) = field_30
430      zfield(31) = field_31
431      zfield(32) = field_32
432      zfield(33) = field_33
433      zfield(34) = field_34
434      zfield(35) = field_35
435      zfield(36) = field_36
436      zfield(37) = field_37
437
438      DO nf = 1, noumef
439         titn  (nf) = zfield(nf)%ztitle
440         nam   (nf) = zfield(nf)%zname
441         uni   (nf) = zfield(nf)%zunit
442         nc    (nf) = zfield(nf)%znc
443         cmulti(nf) = zfield(nf)%zcmulti
444         cadd  (nf) = zfield(nf)%zcadd
445      END DO
446
447      IF(lwp) THEN                        ! control print
448         WRITE(numout,*)
449         WRITE(numout,*) 'lim_wri_init : Ice parameters for outputs'
450         WRITE(numout,*) '~~~~~~~~~~~~'
451         WRITE(numout,*) '    number of fields to be stored         noumef = ', noumef
452         WRITE(numout,*) '           title                            name     unit      Saving (1/0) ',   &
453            &            '    multiplicative constant       additive constant '
454         DO nf = 1 , noumef         
455            WRITE(numout,*) '   ', titn(nf), '   '    , nam   (nf), '      '  , uni (nf),   &
456               &            '  ' , nc  (nf),'        ', cmulti(nf), '        ', cadd(nf)
457         END DO
458         WRITE(numout,*) ' add_diag_swi ', add_diag_swi
459      ENDIF
460      !
461   END SUBROUTINE lim_wri_init
462
463#else
464   !!----------------------------------------------------------------------
465   !!   Default option :         Empty module          NO LIM sea-ice model
466   !!----------------------------------------------------------------------
467CONTAINS
468   SUBROUTINE lim_wri          ! Empty routine
469   END SUBROUTINE lim_wri
470#endif
471
472   !!======================================================================
473END MODULE limwri
Note: See TracBrowser for help on using the repository browser.