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

source: trunk/NEMO/LIM_SRC_3/thd_ice.F90 @ 1465

Last change on this file since 1465 was 1465, checked in by smasson, 15 years ago

supress ice_oce module, see ticket:448

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