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.
thd_ice.F90 in branches/DEV_r1837_mass_heat_salt_fluxes/NEMO/LIM_SRC_3 – NEMO

source: branches/DEV_r1837_mass_heat_salt_fluxes/NEMO/LIM_SRC_3/thd_ice.F90 @ 1859

Last change on this file since 1859 was 1859, checked in by gm, 14 years ago

ticket:#665 step 2 & 3: heat content in qns & new forcing terms

  • Property svn:keywords set to Id
File size: 8.9 KB
Line 
1MODULE thd_ice
2   !!======================================================================
3   !!                       ***  MODULE thd_ice  ***
4   !! LIM-3 sea-ice :   Ice thermodynamics in 1D
5   !!=====================================================================
6   !! History :  3.0  ! 2008-03  (M. Vancoppenolle)  LIM3 original code
7   !!            3.1  ! 2010-05  (Y. Aksenov, M. Vancoppenolle, G. Madec) add heat content exchanges
8   !!----------------------------------------------------------------------
9   USE par_ice
10
11   IMPLICIT NONE
12   PRIVATE
13
14   !!---------------------------
15   !! * Share Module variables
16   !!---------------------------
17   REAL(wp) , PUBLIC ::   & !!! ** ice-thermo namelist (namicethd) **
18      hmelt   = -0.15  ,  &  !: maximum melting at the bottom; active only for
19                                !: one category
20      hicmin  = 0.2    ,  &  !: (REMOVE)
21      hiclim  = 0.05   ,  &  !: minimum ice thickness
22      amax    = 0.999  ,  &  !: maximum lead fraction
23      sbeta   = 1.0    ,  &  !: numerical scheme for diffusion in ice  (REMOVE)
24      parlat  = 0.0    ,  &  !: (REMOVE)
25      hakspl  = 0.5    ,  &  !: (REMOVE)
26      hibspl  = 0.5    ,  &  !: (REMOVE)
27      exld    = 2.0    ,  &  !: (REMOVE)
28      hakdif  = 1.0    ,  &  !: (REMOVE)
29      thth    = 0.2    ,  &  !: (REMOVE)
30      hnzst   = 0.1    ,  &  !: thick. of the surf. layer in temp. comp.
31      parsub  = 1.0    ,  &  !: switch for snow sublimation or not
32      alphs   = 1.0    ,  &  !: coef. for snow density when snow-ice formation
33      fraz_swi= 1.0    ,  &  !: use of frazil ice collection in function of wind (1.0) or not (0.0)
34      maxfrazb= 0.7    ,  &  !: maximum portion of frazil ice collecting at the ice bottom
35      vfrazb  = 0.41667,  &  !: threshold drift speed for collection of bottom frazil ice
36      Cfrazb  = 5.0          !: squeezing coefficient for collection of bottom frazil ice
37
38   REAL(wp), PUBLIC, DIMENSION(2)  ::  &  !:   
39      hiccrit = (/0.3,0.3/)  !: ice th. for lateral accretion in the NH (SH) (m)
40
41   !!-----------------------------
42   !! * Share 1D Module variables
43   !!-----------------------------
44   !: In ice thermodynamics, to spare memory, the vectors are folded
45   !: from 1D to 2D vectors. The following variables, with ending _1d (or _b)
46   !: are the variables corresponding to 2d vectors
47
48   INTEGER , PUBLIC, DIMENSION(jpij) ::   &  !:
49      npb     ,   &   !: number of points where computations has to be done
50      npac            !: correspondance between the points (lateral accretion)
51
52   REAL(wp), PUBLIC, DIMENSION(jpij) ::   &  !:
53      qldif_1d    ,     &  !: corresponding to the 2D var  qldif
54      qcmif_1d    ,     &  !: corresponding to the 2D var  qcmif
55      fstbif_1d   ,     &  !:    "                  "      fstric
56      fltbif_1d   ,     &  !:    "                  "      ffltbif
57      fscbq_1d    ,     &  !:    "                  "      fscmcbq
58      qsr_ice_1d  ,     &  !:    "                  "      qsr_ice
59      fr1_i0_1d   ,     &  !:    "                  "      fr1_i0
60      fr2_i0_1d   ,     &  !:    "                  "      fr2_i0
61      qnsr_ice_1d ,     &  !:    "                  "      qns_ice
62      qfvbq_1d    ,     &  !:    "                  "      qfvbq
63      t_bo_b               !:    "                  "      t_bo
64
65   REAL(wp), PUBLIC, DIMENSION(jpij) ::   &  !:
66      sprecip_1d  ,     &  !:    "                  "      sprecip
67      frld_1d     ,     &  !:    "                  "      frld
68      at_i_b      ,     &  !:    "                  "      frld
69      fbif_1d     ,     &  !:    "                  "      fbif
70      rdm_ice_1d  ,     &  !:    "                  "      rdm_ice
71      rdq_ice_1d  ,     &  !:    "                  "      rdm_ice
72      rdm_snw_1d  ,     &  !:    "                  "      rdm_snw
73      rdq_snw_1d  ,     &  !:    "                  "      rdm_snw
74      qlbbq_1d    ,     &  !:    "                  "      qlbsbq
75      dmgwi_1d    ,     &  !:    "                  "      dmgwi
76      dvsbq_1d    ,     &  !:    "                  "      rdvosif
77      dvbbq_1d    ,     &  !:    "                  "      rdvobif
78      dvlbq_1d    ,     &  !:    "                  "      rdvolif
79      dvnbq_1d    ,     &  !:    "                  "      rdvolif
80      dqns_ice_1d ,     &  !:    "                  "      dqns_ice
81      qla_ice_1d  ,     &  !:    "                  "      qla_ice
82      dqla_ice_1d ,     &  !:    "                  "      dqla_ice
83                                ! to reintegrate longwave flux inside the ice thermodynamics
84!!sm: not used      qtur_ice_1d ,     &  !:    "                  "      qtur_ice
85!!sm: not used      dqtu_ice_1d ,     &  !:    "                  "      dqtu_ice
86!!sm: not used      catm_ice_1d ,     &  !:    "                  "      catm_ice
87      tatm_ice_1d ,     &  !:    "                  "      tatm_ice
88!!sm: not used      evsq_ice_1d ,     &  !:    "                  "      evsq_ice
89!!sm: not used      sbud_ice_1d ,     &  !:    "                  "      sbud_ice
90      fsup        ,     &  !:    Energy flux sent from bottom to lateral ablation if |dhb|> 0.15 m
91      focea       ,     &  !:    Remaining energy in case of total ablation
92      i0          ,     &  !:    fraction of radiation transmitted to the ice interior
93      old_ht_i_b  ,     &  !:    Ice thickness at the beginnning of the time step [m]
94      old_ht_s_b  ,     &  !:    Snow thickness at the beginning of the time step [m]
95      fsbri_1d    ,     &  !:    Salt flux due to brine drainage
96      fhbri_1d    ,     &  !:    Heat flux due to brine drainage
97      fseqv_1d    ,     &  !:    Equivalent Salt flux due to ice growth/decay
98      dsm_i_fl_1d ,     &  !:    Ice salinity variations due to flushing
99      dsm_i_gd_1d ,     &  !:    Ice salinity variations due to gravity drainage
100      dsm_i_se_1d ,     &  !:    Ice salinity variations due to basal salt entrapment
101!!sm: not used      dsm_i_la_1d ,     &  !:    Ice salinity variations due to lateral accretion   
102      dsm_i_si_1d ,     &  !:    Ice salinity variations due to lateral accretion   
103      hicol_b              !:    Ice collection thickness accumulated in fleads
104
105   REAL(wp), PUBLIC, DIMENSION(jpij) ::   &  !:
106      t_su_b      ,     &  !:    "                  "      t_su
107      a_i_b       ,     &  !:                              a_i
108      ht_i_b      ,     &  !:    "                  "      ht_s
109      ht_s_b      ,     &  !:    "                  "      ht_i
110      fc_su       ,     &  !:    Surface Conduction flux
111      fc_bo_i     ,     &  !:    Bottom  Conduction flux
112      dh_s_tot    ,     &  !:    Snow accretion/ablation        [m]
113      dh_i_surf   ,     &  !:    Ice surface accretion/ablation [m]
114      dh_i_bott   ,     &  !:    Ice bottom accretion/ablation  [m]
115      dh_snowice  ,     &  !:    Snow ice formation             [m of ice]
116      sm_i_b      ,     &  !:    Ice bulk salinity [ppt]
117      s_i_new     ,     &  !:    Salinity of new ice at the bottom
118      s_snowice   ,     &  !:    Salinity of new snow ice on top of the ice
119      o_i_b                !:    Ice age                        [days]
120
121   REAL(wp), PUBLIC, DIMENSION(jpij,nlay_s) ::   &  !:
122      t_s_b              !: corresponding to the 2D var  t_s
123   REAL(wp), PUBLIC, DIMENSION(jpij,jkmax) ::   &  !:
124      t_i_b,            &  !: corresponding to the 2D var  t_i
125      s_i_b,            &  !: profiled ice salinity
126      q_i_b,            &  !:    Ice  enthalpy per unit volume
127      q_s_b                !:    Snow enthalpy per unit volume
128
129   ! Clean the following ...
130   ! These variables are coded for conservation checks
131   REAL(wp), PUBLIC, DIMENSION(jpij,jpl)    ::   &  !
132      qt_i_in   ,           &  !: ice energy summed over categories (initial)
133      qt_i_fin  ,           &  !: ice energy summed over categories (final)
134      qt_s_in, qt_s_fin  ,  &  !: snow energy summed over categories
135      dq_i, sum_fluxq    ,  &  !: increment of energy, sum of fluxes
136      fatm, foce,           &  !: atmospheric, oceanic, heat flux
137      cons_error, surf_error   !: conservation, surface error
138
139   REAL(wp), PUBLIC, DIMENSION(jpij,jkmax)::   &  !:  goes to trash
140      q_i_layer_in,         &
141      q_i_layer_fin,        &
142      dq_i_layer, radab
143
144   REAL(wp), PUBLIC, DIMENSION(jpij) ::   &  !:
145      ftotal_in  ,          &  !: initial total heat flux
146      ftotal_fin               !: final total heat flux
147
148   REAL(wp), PUBLIC, DIMENSION(jpij,0:nlay_s) ::   fc_s
149   REAL(wp), PUBLIC, DIMENSION(jpij,0:jkmax)  ::   fc_i
150   REAL(wp), PUBLIC, DIMENSION(jpij,nlay_s)   ::   de_s_lay
151   REAL(wp), PUBLIC, DIMENSION(jpij,jkmax)    ::   de_i_lay
152   INTEGER , PUBLIC                           ::   jiindex_1d   ! 1D index of debugging point
153
154   !!----------------------------------------------------------------------
155   !! NEMO/LIM 3.0, UCL-LOCEAN-IPSL (2010)
156   !! $Id$
157   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
158   !!======================================================================
159END MODULE thd_ice
Note: See TracBrowser for help on using the repository browser.