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

source: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90 @ 7910

Last change on this file since 7910 was 7910, checked in by timgraham, 7 years ago

All wrk_alloc removed

  • Property svn:keywords set to Id
File size: 21.0 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 ice
[2715]20   USE limvar
21   USE in_out_manager
[825]22   USE lbclnk
[2715]23   USE lib_mpp         ! MPP library
[4161]24   USE iom
25   USE timing          ! Timing
26   USE lib_fortran     ! Fortran utilities
[825]27
28   IMPLICIT NONE
29   PRIVATE
30
31   PUBLIC lim_wri        ! routine called by lim_step.F90
[4161]32   PUBLIC lim_wri_state  ! called by dia_wri_state
[825]33
[2528]34   !!----------------------------------------------------------------------
[4161]35   !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2011)
[2528]36   !! $Id$
[2715]37   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
[2528]38   !!----------------------------------------------------------------------
39CONTAINS
[825]40
41
42   SUBROUTINE lim_wri( kindic )
43      !!-------------------------------------------------------------------
44      !!  This routine computes the average of some variables and write it
45      !!  on the ouput files.
46      !!  ATTENTION cette routine n'est valable que si le pas de temps est
47      !!  egale a une fraction entiere de 1 jours.
48      !!  Diff 1-D 3-D : suppress common also included in etat
49      !!                 suppress cmoymo 11-18
50      !!  modif : 03/06/98
51      !!-------------------------------------------------------------------
[2715]52      INTEGER, INTENT(in) ::   kindic   ! if kindic < 0 there has been an error somewhere
53      !
[4990]54      INTEGER  ::  ji, jj, jk, jl  ! dummy loop indices
55      REAL(wp) ::  z1_365
[7646]56      REAL(wp) ::  z2da, z2db, ztmp
[7910]57      REAL(wp), DIMENSION(jpi,jpj,jpl) ::  zswi2
58      REAL(wp), DIMENSION(jpi,jpj)   ::  z2d, zswi    ! 2D workspace
[2715]59      !!-------------------------------------------------------------------
[825]60
[4161]61      IF( nn_timing == 1 )  CALL timing_start('limwri')
62
[2777]63
[4688]64      !-----------------------------
65      ! Mean category values
66      !-----------------------------
[5202]67      z1_365 = 1._wp / 365._wp
[825]68
[7646]69      ! brine volume
70      CALL lim_var_bv 
[921]71
[7646]72      ! tresholds for outputs
73      DO jj = 1, jpj
[4688]74         DO ji = 1, jpi
[4990]75            zswi(ji,jj)  = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) )
[4688]76         END DO
77      END DO
[7646]78      DO jl = 1, jpl
79         DO jj = 1, jpj
[4688]80            DO ji = 1, jpi
[7646]81               zswi2(ji,jj,jl)  = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) )
[4688]82            END DO
83         END DO
[7646]84      END DO
85      !
86      ! fluxes
87      ! pfrld is the lead fraction at the previous time step (actually between TRP and THD)
88      IF( iom_use('qsr_oce') )   CALL iom_put( "qsr_oce" , qsr_oce(:,:) * pfrld(:,:) )                                   !     solar flux at ocean surface
89      IF( iom_use('qns_oce') )   CALL iom_put( "qns_oce" , qns_oce(:,:) * pfrld(:,:) + qemp_oce(:,:) )                   ! non-solar flux at ocean surface
90      IF( iom_use('qsr_ice') )   CALL iom_put( "qsr_ice" , SUM( qsr_ice(:,:,:) * a_i_b(:,:,:), dim=3 ) )                 !     solar flux at ice surface
91      IF( iom_use('qns_ice') )   CALL iom_put( "qns_ice" , SUM( qns_ice(:,:,:) * a_i_b(:,:,:), dim=3 ) + qemp_ice(:,:) ) ! non-solar flux at ice surface
92      IF( iom_use('qtr_ice') )   CALL iom_put( "qtr_ice" , SUM( ftr_ice(:,:,:) * a_i_b(:,:,:), dim=3 ) )                 !     solar flux transmitted thru ice
93      IF( iom_use('qt_oce' ) )   CALL iom_put( "qt_oce"  , ( qsr_oce(:,:) + qns_oce(:,:) ) * pfrld(:,:) + qemp_oce(:,:) ) 
94      IF( iom_use('qt_ice' ) )   CALL iom_put( "qt_ice"  , SUM( ( qns_ice(:,:,:) + qsr_ice(:,:,:) )   &
95         &                                                      * a_i_b(:,:,:), dim=3 ) + qemp_ice(:,:) )
96      IF( iom_use('qemp_oce') )  CALL iom_put( "qemp_oce" , qemp_oce(:,:) ) 
97      IF( iom_use('qemp_ice') )  CALL iom_put( "qemp_ice" , qemp_ice(:,:) ) 
98      IF( iom_use('emp_oce' ) )  CALL iom_put( "emp_oce"  , emp_oce(:,:) )   ! emp over ocean (taking into account the snow blown away from the ice)
99      IF( iom_use('emp_ice' ) )  CALL iom_put( "emp_ice"  , emp_ice(:,:) )   ! emp over ice   (taking into account the snow blown away from the ice)
[921]100
[7646]101      ! velocity
[4688]102      IF ( iom_use( "uice_ipa" ) .OR. iom_use( "vice_ipa" ) .OR. iom_use( "icevel" ) ) THEN
103         DO jj = 2 , jpjm1
104            DO ji = 2 , jpim1
[7646]105               z2da  = ( u_ice(ji,jj) * umask(ji,jj,1) + u_ice(ji-1,jj) * umask(ji-1,jj,1) ) * 0.5_wp
106               z2db  = ( v_ice(ji,jj) * vmask(ji,jj,1) + v_ice(ji,jj-1) * vmask(ji,jj-1,1) ) * 0.5_wp
107               z2d(ji,jj) = SQRT( z2da * z2da + z2db * z2db )
[4688]108           END DO
109         END DO
[7646]110         CALL lbc_lnk( z2d, 'T', 1. )
111         CALL iom_put( "uice_ipa"     , u_ice      )       ! ice velocity u component
112         CALL iom_put( "vice_ipa"     , v_ice      )       ! ice velocity v component
113         CALL iom_put( "icevel"       , z2d        )       ! ice velocity module
[4688]114      ENDIF
[825]115
[7646]116      IF ( iom_use( "tau_icebfr" ) )    CALL iom_put( "tau_icebfr"  , tau_icebfr             )  ! ice friction with ocean bottom (landfast ice) 
[4688]117      !
[7646]118      IF ( iom_use( "miceage" ) )       CALL iom_put( "miceage"     , om_i * zswi * z1_365   )  ! mean ice age
119      IF ( iom_use( "icethic_cea" ) )   CALL iom_put( "icethic_cea" , htm_i * zswi           )  ! ice thickness mean
120      IF ( iom_use( "snowthic_cea" ) )  CALL iom_put( "snowthic_cea", htm_s * zswi           )  ! snow thickness mean
121      IF ( iom_use( "micet" ) )         CALL iom_put( "micet"       , ( tm_i  - rt0 ) * zswi )  ! ice mean    temperature
122      IF ( iom_use( "icest" ) )         CALL iom_put( "icest"       , ( tm_su - rt0 ) * zswi )  ! ice surface temperature
123      IF ( iom_use( "icecolf" ) )       CALL iom_put( "icecolf"     , hicol                  )  ! frazil ice collection thickness
124      !
[4688]125      CALL iom_put( "isst"        , sst_m               )        ! sea surface temperature
126      CALL iom_put( "isss"        , sss_m               )        ! sea surface salinity
[7646]127      CALL iom_put( "iceconc"     , at_i  * zswi        )        ! ice concentration
128      CALL iom_put( "icevolu"     , vt_i  * zswi        )        ! ice volume = mean ice thickness over the cell
129      CALL iom_put( "icehc"       , et_i  * zswi        )        ! ice total heat content
130      CALL iom_put( "isnowhc"     , et_s  * zswi        )        ! snow total heat content
131      CALL iom_put( "ibrinv"      , bvm_i * zswi * 100. )        ! brine volume
[4688]132      CALL iom_put( "utau_ice"    , utau_ice            )        ! wind stress over ice along i-axis at I-point
133      CALL iom_put( "vtau_ice"    , vtau_ice            )        ! wind stress over ice along j-axis at I-point
[5407]134      CALL iom_put( "snowpre"     , sprecip * 86400.    )        ! snow precipitation
[7646]135      CALL iom_put( "micesalt"    , smt_i   * zswi      )        ! mean ice salinity
[4161]136
[7646]137      CALL iom_put( "icestr"      , strength * zswi )    ! ice strength
138      CALL iom_put( "idive"       , divu_i * 1.0e8      )    ! divergence
139      CALL iom_put( "ishear"      , shear_i * 1.0e8     )    ! shear
140      CALL iom_put( "snowvol"     , vt_s   * zswi       )        ! snow volume
[4688]141     
142      CALL iom_put( "icetrp"      , diag_trp_vi * rday  )        ! ice volume transport
143      CALL iom_put( "snwtrp"      , diag_trp_vs * rday  )        ! snw volume transport
[5123]144      CALL iom_put( "saltrp"      , diag_trp_smv * rday * rhoic ) ! salt content transport
[4688]145      CALL iom_put( "deitrp"      , diag_trp_ei         )        ! advected ice enthalpy (W/m2)
146      CALL iom_put( "destrp"      , diag_trp_es         )        ! advected snw enthalpy (W/m2)
[921]147
[6418]148      CALL iom_put( "sfxbog"      , sfx_bog * rday      )        ! salt flux from bottom growth
[7646]149      CALL iom_put( "sfxbom"      , sfx_bom * rday      )        ! salt flux from bottom melting
150      CALL iom_put( "sfxsum"      , sfx_sum * rday      )        ! salt flux from surface melting
151      CALL iom_put( "sfxlam"      , sfx_lam * rday      )        ! salt flux from lateral melting
[6418]152      CALL iom_put( "sfxsni"      , sfx_sni * rday      )        ! salt flux from snow ice formation
153      CALL iom_put( "sfxopw"      , sfx_opw * rday      )        ! salt flux from open water formation
[4688]154      CALL iom_put( "sfxdyn"      , sfx_dyn * rday      )        ! salt flux from ridging rafting
[7646]155      CALL iom_put( "sfxres"      , sfx_res * rday      )        ! salt flux from limupdate (resultant)
[4688]156      CALL iom_put( "sfxbri"      , sfx_bri * rday      )        ! salt flux from brines
[6418]157      CALL iom_put( "sfxsub"      , sfx_sub * rday      )        ! salt flux from sublimation
[4688]158      CALL iom_put( "sfx"         , sfx     * rday      )        ! total salt flux
[825]159
[4990]160      ztmp = rday / rhoic
[5123]161      CALL iom_put( "vfxres"     , wfx_res * ztmp       )        ! daily prod./melting due to limupdate
162      CALL iom_put( "vfxopw"     , wfx_opw * ztmp       )        ! daily lateral thermodynamic ice production
163      CALL iom_put( "vfxsni"     , wfx_sni * ztmp       )        ! daily snowice ice production
164      CALL iom_put( "vfxbog"     , wfx_bog * ztmp       )        ! daily bottom thermodynamic ice production
165      CALL iom_put( "vfxdyn"     , wfx_dyn * ztmp       )        ! daily dynamic ice production (rid/raft)
166      CALL iom_put( "vfxsum"     , wfx_sum * ztmp       )        ! surface melt
167      CALL iom_put( "vfxbom"     , wfx_bom * ztmp       )        ! bottom melt
[7646]168      CALL iom_put( "vfxlam"     , wfx_lam * ztmp       )        ! lateral melt
[5123]169      CALL iom_put( "vfxice"     , wfx_ice * ztmp       )        ! total ice growth/melt
[7646]170
171      IF ( iom_use( "vfxthin" ) ) THEN   ! ice production for open water + thin ice (<20cm) => comparable to observations 
[7753]172         WHERE( htm_i(:,:) < 0.2 .AND. htm_i(:,:) > 0. ) ; z2d = wfx_bog
173         ELSEWHERE                                       ; z2d = 0._wp
174         END WHERE
[7646]175         CALL iom_put( "vfxthin", ( wfx_opw + z2d ) * ztmp )
176      ENDIF
177
178      ztmp = rday / rhosn
179      CALL iom_put( "vfxspr"     , wfx_spr * ztmp       )        ! precip (snow)
[5123]180      CALL iom_put( "vfxsnw"     , wfx_snw * ztmp       )        ! total snw growth/melt
[7646]181      CALL iom_put( "vfxsub"     , wfx_sub * ztmp       )        ! sublimation (snow/ice)
182      CALL iom_put( "vfxsub_err" , wfx_err_sub * ztmp   )        ! "excess" of sublimation sent to ocean
[5123]183     
184      CALL iom_put( "afxtot"     , afx_tot * rday       )        ! concentration tendency (total)
185      CALL iom_put( "afxdyn"     , afx_dyn * rday       )        ! concentration tendency (dynamics)
186      CALL iom_put( "afxthd"     , afx_thd * rday       )        ! concentration tendency (thermo)
[825]187
[5123]188      CALL iom_put ('hfxthd'     , hfx_thd(:,:)         )   
189      CALL iom_put ('hfxdyn'     , hfx_dyn(:,:)         )   
190      CALL iom_put ('hfxres'     , hfx_res(:,:)         )   
191      CALL iom_put ('hfxout'     , hfx_out(:,:)         )   
192      CALL iom_put ('hfxin'      , hfx_in(:,:)          )   
193      CALL iom_put ('hfxsnw'     , hfx_snw(:,:)         )   
194      CALL iom_put ('hfxsub'     , hfx_sub(:,:)         )   
195      CALL iom_put ('hfxerr'     , hfx_err(:,:)         )   
196      CALL iom_put ('hfxerr_rem' , hfx_err_rem(:,:)     )   
[4688]197     
[5123]198      CALL iom_put ('hfxsum'     , hfx_sum(:,:)         )   
199      CALL iom_put ('hfxbom'     , hfx_bom(:,:)         )   
200      CALL iom_put ('hfxbog'     , hfx_bog(:,:)         )   
201      CALL iom_put ('hfxdif'     , hfx_dif(:,:)         )   
202      CALL iom_put ('hfxopw'     , hfx_opw(:,:)         )   
[7646]203      CALL iom_put ('hfxtur'     , fhtur(:,:) * at_i_b(:,:) ) ! turbulent heat flux at ice base
[5167]204      CALL iom_put ('hfxdhc'     , diag_heat(:,:)       )   ! Heat content variation in snow and ice
[5123]205      CALL iom_put ('hfxspr'     , hfx_spr(:,:)         )   ! Heat content of snow precip
[7646]206
[4688]207     
208      !--------------------------------
209      ! Output values for each category
210      !--------------------------------
[7646]211      IF ( iom_use( "iceconc_cat"  ) )  CALL iom_put( "iceconc_cat"      , a_i   * zswi2   )        ! area for categories
212      IF ( iom_use( "icethic_cat"  ) )  CALL iom_put( "icethic_cat"      , ht_i  * zswi2   )        ! thickness for categories
213      IF ( iom_use( "snowthic_cat" ) )  CALL iom_put( "snowthic_cat"     , ht_s  * zswi2   )        ! snow depth for categories
214      IF ( iom_use( "salinity_cat" ) )  CALL iom_put( "salinity_cat"     , sm_i  * zswi2   )        ! salinity for categories
[5517]215      ! ice temperature
[7646]216      IF ( iom_use( "icetemp_cat"  ) )  CALL iom_put( "icetemp_cat", ( SUM( t_i(:,:,:,:), dim=3 ) * r1_nlay_i - rt0 ) * zswi2 )
[5517]217      ! snow temperature
[7646]218      IF ( iom_use( "snwtemp_cat"  ) )  CALL iom_put( "snwtemp_cat", ( SUM( t_s(:,:,:,:), dim=3 ) * r1_nlay_s - rt0 ) * zswi2 )
219      ! ice age
220      IF ( iom_use( "iceage_cat"   ) )  CALL iom_put( "iceage_cat" , o_i * zswi2 * z1_365 )
221      ! brine volume
222      IF ( iom_use( "brinevol_cat" ) )  CALL iom_put( "brinevol_cat", bv_i * 100. * zswi2 )
[5517]223
[4688]224      !     !  Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s
225      !     IF( kindic < 0 )   CALL lim_wri_state( 'output.abort' )
226      !     not yet implemented
227     
[4161]228
229      IF( nn_timing == 1 )  CALL timing_stop('limwri')
[2777]230     
[825]231   END SUBROUTINE lim_wri
232
[4161]233 
234   SUBROUTINE lim_wri_state( kt, kid, kh_i )
235      !!---------------------------------------------------------------------
236      !!                 ***  ROUTINE lim_wri_state  ***
237      !!       
238      !! ** Purpose :   create a NetCDF file named cdfile_name which contains
239      !!      the instantaneous ice state and forcing fields for ice model
240      !!        Used to find errors in the initial state or save the last
241      !!      ocean state in case of abnormal end of a simulation
242      !!
243      !! History :
[7646]244      !!   4.0  !  2013-06  (C. Rousset)
[4161]245      !!----------------------------------------------------------------------
[7646]246      INTEGER, INTENT( in )   ::   kt               ! ocean time-step index)
247      INTEGER, INTENT( in )   ::   kid , kh_i
248      INTEGER                 ::   nz_i, jl
249      REAL(wp), DIMENSION(jpl) :: jcat
[4161]250      !!----------------------------------------------------------------------
[7646]251      DO jl = 1, jpl
252         jcat(jl) = REAL(jl)
253      ENDDO
254     
255      CALL histvert( kid, "ncatice", "Ice Categories","", jpl, jcat, nz_i, "up")
[825]256
[7646]257      CALL histdef( kid, "sithic", "Ice thickness"           , "m"      ,   &
[4765]258      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]259      CALL histdef( kid, "siconc", "Ice concentration"       , "%"      ,   &
[4765]260      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]261      CALL histdef( kid, "sitemp", "Ice temperature"         , "C"      ,   &
[4765]262      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]263      CALL histdef( kid, "sivelu", "i-Ice speed "            , "m/s"    ,   &
[4765]264      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]265      CALL histdef( kid, "sivelv", "j-Ice speed "            , "m/s"    ,   &
[4765]266      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
[7646]267      CALL histdef( kid, "sistru", "i-Wind stress over ice " , "Pa"     ,   &
[4765]268      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]269      CALL histdef( kid, "sistrv", "j-Wind stress over ice " , "Pa"     ,   &
[4765]270      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
[7646]271      CALL histdef( kid, "sisflx", "Solar flux over ocean"     , "w/m2" ,   &
[4765]272      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
[7646]273      CALL histdef( kid, "sinflx", "Non-solar flux over ocean" , "w/m2" ,   &
[4765]274      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
275      CALL histdef( kid, "isnowpre", "Snow precipitation"      , "kg/m2/s",   &
276      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
[7646]277      CALL histdef( kid, "sisali", "Ice salinity"            , "PSU"    ,   &
[4765]278      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
[7646]279      CALL histdef( kid, "sivolu", "Ice volume"              , "m"      ,   &
[4765]280      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
[7646]281      CALL histdef( kid, "sidive", "Ice divergence"          , "10-8s-1",   &
[4765]282      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 
[7646]283
284      CALL histdef( kid, "vfxbog", "Ice bottom production"   , "m/s"    ,   &
[4765]285      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]286      CALL histdef( kid, "vfxdyn", "Ice dynamic production"  , "m/s"    ,   &
[4765]287      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]288      CALL histdef( kid, "vfxopw", "Ice open water prod"     , "m/s"    ,   &
[4765]289      &       jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]290      CALL histdef( kid, "vfxsni", "Snow ice production "    , "m/s"    ,   &
[4765]291      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]292      CALL histdef( kid, "vfxres", "Ice prod from limupdate" , "m/s"    ,   &
[4765]293      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]294      CALL histdef( kid, "vfxbom", "Ice bottom melt"         , "m/s"    ,   &
[4765]295      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[7646]296      CALL histdef( kid, "vfxsum", "Ice surface melt"        , "m/s"    ,   &
[4765]297      &      jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
[4161]298
[7646]299      CALL histdef( kid, "sithicat", "Ice thickness"         , "m"      ,   &
300      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
301      CALL histdef( kid, "siconcat", "Ice concentration"     , "%"      ,   &
302      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
303      CALL histdef( kid, "sisalcat", "Ice salinity"           , ""      ,   &
304      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
305      CALL histdef( kid, "sitemcat", "Ice temperature"       , "C"      ,   &
306      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
307      CALL histdef( kid, "snthicat", "Snw thickness"         , "m"      ,   &
308      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
309      CALL histdef( kid, "sntemcat", "Snw temperature"       , "C"      ,   &
310      &      jpi, jpj, kh_i, jpl, 1, jpl, nz_i, 32, "inst(x)", rdt, rdt )
311
[4161]312      CALL histend( kid, snc4set )   ! end of the file definition
313
[7646]314      CALL histwrite( kid, "sithic", kt, htm_i         , jpi*jpj, (/1/) )   
315      CALL histwrite( kid, "siconc", kt, at_i          , jpi*jpj, (/1/) )
316      CALL histwrite( kid, "sitemp", kt, tm_i - rt0    , jpi*jpj, (/1/) )
317      CALL histwrite( kid, "sivelu", kt, u_ice          , jpi*jpj, (/1/) )
318      CALL histwrite( kid, "sivelv", kt, v_ice          , jpi*jpj, (/1/) )
319      CALL histwrite( kid, "sistru", kt, utau_ice       , jpi*jpj, (/1/) )
320      CALL histwrite( kid, "sistrv", kt, vtau_ice       , jpi*jpj, (/1/) )
321      CALL histwrite( kid, "sisflx", kt, qsr , jpi*jpj, (/1/) )
322      CALL histwrite( kid, "sinflx", kt, qns , jpi*jpj, (/1/) )
[4161]323      CALL histwrite( kid, "isnowpre", kt, sprecip        , jpi*jpj, (/1/) )
[7646]324      CALL histwrite( kid, "sisali", kt, smt_i          , jpi*jpj, (/1/) )
325      CALL histwrite( kid, "sivolu", kt, vt_i           , jpi*jpj, (/1/) )
326      CALL histwrite( kid, "sidive", kt, divu_i*1.0e8   , jpi*jpj, (/1/) )
[4161]327
[7646]328      CALL histwrite( kid, "vfxbog", kt, wfx_bog        , jpi*jpj, (/1/) )
329      CALL histwrite( kid, "vfxdyn", kt, wfx_dyn        , jpi*jpj, (/1/) )
330      CALL histwrite( kid, "vfxopw", kt, wfx_opw        , jpi*jpj, (/1/) )
331      CALL histwrite( kid, "vfxsni", kt, wfx_sni        , jpi*jpj, (/1/) )
332      CALL histwrite( kid, "vfxres", kt, wfx_res        , jpi*jpj, (/1/) )
333      CALL histwrite( kid, "vfxbom", kt, wfx_bom        , jpi*jpj, (/1/) )
334      CALL histwrite( kid, "vfxsum", kt, wfx_sum        , jpi*jpj, (/1/) )
[4333]335
[7646]336      CALL histwrite( kid, "sithicat", kt, ht_i        , jpi*jpj*jpl, (/1/) )   
337      CALL histwrite( kid, "siconcat", kt, a_i         , jpi*jpj*jpl, (/1/) )   
338      CALL histwrite( kid, "sisalcat", kt, sm_i        , jpi*jpj*jpl, (/1/) )   
339      CALL histwrite( kid, "sitemcat", kt, tm_i - rt0  , jpi*jpj*jpl, (/1/) )   
340      CALL histwrite( kid, "snthicat", kt, ht_s        , jpi*jpj*jpl, (/1/) )   
341      CALL histwrite( kid, "sntemcat", kt, tm_su - rt0 , jpi*jpj*jpl, (/1/) )   
342
[4688]343      ! Close the file
344      ! -----------------
345      !CALL histclo( kid )
[4161]346
347    END SUBROUTINE lim_wri_state
348
[825]349#else
350   !!----------------------------------------------------------------------
351   !!   Default option :         Empty module          NO LIM sea-ice model
352   !!----------------------------------------------------------------------
353CONTAINS
354   SUBROUTINE lim_wri          ! Empty routine
355   END SUBROUTINE lim_wri
356#endif
357
358   !!======================================================================
359END MODULE limwri
Note: See TracBrowser for help on using the repository browser.