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_2.F90 in branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2 – NEMO

source: branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/thd_ice_2.F90 @ 4291

Last change on this file since 4291 was 4147, checked in by cetlod, 10 years ago

merge in dev_LOCEAN_2013, the 1st development branch dev_r3853_CNRS9_Confsetting, from its starting point ( r3853 ) on the trunk: see ticket #1169

  • Property svn:keywords set to Id
File size: 6.5 KB
Line 
1MODULE thd_ice_2
2#if defined key_lim2
3   !!======================================================================
4   !!                       ***  MODULE thd_ice_2  ***
5   !! LIM 2.0 sea-ice :   Ice thermodynamics in 1D
6   !!=====================================================================
7   !! History :
8   !!   2.0  !  02-11  (C. Ethe)  F90: Free form and module
9   !!----------------------------------------------------------------------
10   !! NEMO/LIM2 3.3 , UCL - NEMO Consortium (2010)
11   !! $Id$
12   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
13   !!----------------------------------------------------------------------
14   USE par_ice_2
15
16   IMPLICIT NONE
17   PRIVATE
18
19   PUBLIC thd_ice_alloc_2 ! Routine called by nemogcm.F90
20
21   !! * Share Module variables
22   REAL(wp) , PUBLIC ::   & !!! ** ice-thermo namelist (namicethd) **
23      hmelt            ,  &  !: maximum melting at the bottom
24      hicmin           ,  &  !: ice th. corr. to max. ener. in brine pocket
25      hiclim           ,  &  !: minimum ice thickness
26      amax             ,  &  !: maximum lead fraction
27      swiqst           ,  &  !: energy stored in brine pocket (1) or not (0)
28      sbeta            ,  &  !: numerical scheme for diffusion in ice
29      parlat           ,  &  !: percent. of energy used for lateral ablation
30      hakspl           ,  &  !: slope of distr. for Hakkinen-Mellro's lat. melt
31      hibspl           ,  &  !: slope of distribution for Hibler's lat. melt
32      exld             ,  &  !: exponent for leads-closure rate
33      hakdif           ,  &  !: coefficient for diffusions of ice and snow
34      thth             ,  &  !: thick. for comp. of eq. thermal conduct
35      hnzst            ,  &  !: thick. of the surf. layer in temp. comp.
36      parsub           ,  &  !: switch for snow sublimation or not
37      alphs                  !: coef. for snow density when snow-ice formation
38
39   REAL(wp), PUBLIC, DIMENSION(2)  ::  &  !:   
40      hiccrit                !: ice th. for lateral accretion in the NH (SH) (m)
41
42   REAL(wp) , PUBLIC ::   &  !:
43      uscomi,             &  !: inverse of minimum lead fraction
44      cnscg                  !: ratio  rcpsn/rcpic
45
46   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   &  !:
47      npb     ,   &   !: number of points where computations has to be done
48      npac            !: correspondance between the points
49
50   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   &  !:
51      qldif_1d    ,     &  !: corresponding to the 2D var  qldif
52      qcmif_1d    ,     &  !: corresponding to the 2D var  qcmif
53      thcm_1d     ,     &  !:    "                  "      thcm
54      fstbif_1d   ,     &  !:    "                  "      fstric
55      fltbif_1d   ,     &  !:    "                  "      ffltbif
56      fscbq_1d    ,     &  !:    "                  "      fscmcbq
57      qsr_ice_1d  ,     &  !:    "                  "      qsr_ice
58      fr1_i0_1d   ,     &  !:    "                  "      fr1_i0
59      fr2_i0_1d   ,     &  !:    "                  "      fr2_i0
60      qns_ice_1d  ,     &  !:    "                  "      qns_ice
61      qfvbq_1d    ,     &  !:    "                  "      qfvbq
62      sist_1d     ,     &  !:    "                  "      sist
63      tfu_1d      ,     &  !:    "                  "      tfu
64      sprecip_1d  ,     &  !:    "                  "      sprecip
65      h_snow_1d   ,     &  !:    "                  "      h_snow
66      h_ice_1d    ,     &  !:    "                  "      h_ice
67      frld_1d     ,     &  !:    "                  "      frld
68      qstbif_1d   ,     &  !:    "                  "      qstoif
69      fbif_1d     ,     &  !:    "                  "      fbif
70      rdm_ice_1d  ,     &  !:    "                  "      rdm_ice
71      rdq_ice_1d  ,     &  !:    "                  "      rdq_ice
72      rdm_snw_1d  ,     &  !:    "                  "      rdm_snw
73      rdq_snw_1d  ,     &  !:    "                  "      rdq_snw
74      qlbbq_1d    ,     &  !:    "                  "      qlbsbq
75      dmgwi_1d    ,     &  !:    "                  "      dmgwi
76      dvsbq_1d    ,     &  !:    "                  "      rdvosif
77      rdvomif_1d  ,     &  !:    "                  "      rdvomif
78      dvbbq_1d    ,     &  !:    "                  "      rdvobif
79      dvlbq_1d    ,     &  !:    "                  "      rdvolif
80      dvnbq_1d    ,     &  !:    "                  "      rdvolif
81      dqns_ice_1d ,     &  !:    "                  "      dqns_ice
82      qla_ice_1d  ,     &  !:    "                  "      qla_ice
83      dqla_ice_1d          !:    "                  "      dqla_ice
84
85   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   &  !:
86      tbif_1d              !: corresponding to the 2D var  tbif
87
88   !!----------------------------------------------------------------------
89   !! NEMO/LIM2 3.3 , UCL - NEMO Consortium (2010)
90   !! $Id$
91   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
92   !!----------------------------------------------------------------------
93 CONTAINS
94
95   INTEGER FUNCTION thd_ice_alloc_2()
96      !!----------------------------------------------------------------------
97      USE lib_mpp        ! MPP library
98      INTEGER :: ierr(4)
99      !!----------------------------------------------------------------------
100      !
101      ierr(:) = 0
102      !
103      ALLOCATE( npb(jpij), npac(jpij),                             &
104         &      qldif_1d(jpij), qcmif_1d(jpij), thcm_1d(jpij),     &
105         &      fstbif_1d(jpij), fltbif_1d(jpij), fscbq_1d(jpij),  &
106         &      qsr_ice_1d(jpij),fr1_i0_1d(jpij), fr2_i0_1d(jpij), Stat=ierr(1))
107         !
108      ALLOCATE( qns_ice_1d(jpij), qfvbq_1d(jpij), sist_1d(jpij), tfu_1d(jpij), &
109         &      sprecip_1d(jpij), h_snow_1d(jpij),h_ice_1d(jpij),frld_1d(jpij),&
110         &      qstbif_1d(jpij),  fbif_1d(jpij),  Stat=ierr(2))
111         !
112      ALLOCATE( rdm_ice_1d(jpij), rdq_ice_1d(jpij)                  , &
113         &      rdm_snw_1d(jpij), rdq_snw_1d(jpij), qlbbq_1d(jpij)  , &
114         &      dmgwi_1d(jpij)  , dvsbq_1d(jpij)  , rdvomif_1d(jpij), &
115         &      dvbbq_1d(jpij)  , dvlbq_1d(jpij)  , dvnbq_1d(jpij)  , &
116         &      Stat=ierr(3))
117         !
118      ALLOCATE( dqns_ice_1d(jpij) ,qla_ice_1d(jpij), dqla_ice_1d(jpij), &
119         &      tbif_1d(jpij, jplayersp1), Stat=ierr(4))
120         !
121      thd_ice_alloc_2 = MAXVAL(ierr)
122      IF( thd_ice_alloc_2 /= 0 )   CALL ctl_warn('thd_ice_alloc_2: failed to allocate arrays')
123      !
124   END FUNCTION thd_ice_alloc_2
125
126#endif
127   !!======================================================================
128END MODULE thd_ice_2
Note: See TracBrowser for help on using the repository browser.