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.
Changeset 8512 – NEMO

Changeset 8512


Ignore:
Timestamp:
2017-09-07T20:08:11+02:00 (7 years ago)
Author:
clem
Message:

changes in style - part5 - reaching the end

Location:
branches/2017/dev_r8183_ICEMODEL/NEMOGCM
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/ORCA2_LIM3_PISCES/EXP00/namelist_ice_cfg

    r8321 r8512  
    11!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    22!! LIM3 configuration namelist: Overwrites SHARED/namelist_ice_lim3_ref 
    3 !!              1 - Generic parameters                 (namicerun) 
    4 !!              2 - Diagnostics                        (namicediag) 
    5 !!              3 - Ice initialization                 (namiceini) 
    6 !!              4 - Ice discretization                 (namiceitd) 
    7 !!              5 - Ice dynamics and transport         (namicedyn) 
    8 !!              6 - Ice thermodynamics                 (namicethd) 
    9 !!              7 - Ice salinity                       (namicesal) 
    10 !!              8 - Ice mechanical redistribution      (namiceitdme) 
    11 !!              9 - Ice/snow albedos                   (namicealb) 
    12 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     3!!              1 - Generic parameters                 (namice_run) 
     4!!              2 - Ice thickness discretization       (namice_itd) 
     5!!              3 - Ice ridging/rafting                (namice_rdgrft) 
     6!!              4 - Ice rheology                       (namice_rhg) 
     7!!              5 - Ice advection                      (namice_adv) 
     8!!              6 - Ice thermodynamics                 (namice_thd) 
     9!!              7 - Ice salinity                       (namice_sal) 
     10!!              8 - Ice melt ponds                     (namice_mp) 
     11!!              9 - Ice initialization                 (namice_ini) 
     12!!             10 - Ice/snow albedos                   (namice_alb) 
     13!!             11 - Ice diagnostics                    (namice_dia) 
     14!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     15! 
    1316!------------------------------------------------------------------------------ 
    14 &namicerun     !   Generic parameters 
     17&namice_run     !   Generic parameters 
    1518!------------------------------------------------------------------------------ 
    1619/ 
    1720!------------------------------------------------------------------------------ 
    18 &namicediag    !   Diagnostics 
     21&namice_itd     !   Ice discretization 
    1922!------------------------------------------------------------------------------ 
    2023/ 
    2124!------------------------------------------------------------------------------ 
    22 &namiceini     !   Ice initialization 
     25&namice_rdgrft  !   Ice ridging/rafting 
    2326!------------------------------------------------------------------------------ 
    2427/ 
    2528!------------------------------------------------------------------------------ 
    26 &namiceitd     !   Ice discretization 
     29&namice_rhg     !   Ice rheology 
    2730!------------------------------------------------------------------------------ 
    2831/ 
    2932!------------------------------------------------------------------------------ 
    30 &namicedyn     !   Ice dynamics and transport 
     33&namice_adv     !   Ice advection 
    3134!------------------------------------------------------------------------------ 
    3235/ 
    3336!------------------------------------------------------------------------------ 
    34 &namicethd     !   Ice thermodynamics 
     37&namice_thd     !   Ice thermodynamics 
    3538!------------------------------------------------------------------------------ 
    3639/ 
    3740!------------------------------------------------------------------------------ 
    38 &namicesal     !   Ice salinity 
     41&namice_sal     !   Ice salinity 
    3942!------------------------------------------------------------------------------ 
    4043/ 
    4144!------------------------------------------------------------------------------ 
    42 &namiceitdme   !   Ice mechanical redistribution (ridging and rafting) 
     45&namicemp      !   Melt ponds 
    4346!------------------------------------------------------------------------------ 
    4447/ 
    45 !----------------------------------------------------------------------- 
    46 &namicealb     !   albedo parameters 
    47 !----------------------------------------------------------------------- 
     48!------------------------------------------------------------------------------ 
     49&namice_ini     !   Ice initialization 
     50!------------------------------------------------------------------------------ 
    4851/ 
     52!------------------------------------------------------------------------------ 
     53&namice_alb     !   albedo parameters 
     54!------------------------------------------------------------------------------ 
     55/ 
     56!------------------------------------------------------------------------------ 
     57&namice_dia     !   Diagnostics 
     58!------------------------------------------------------------------------------ 
     59/ 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/SHARED/namelist_ice_lim3_ref

    r8321 r8512  
    11!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    22!! LIM3 namelist:   
    3 !!              1 - Generic parameters                 (namicerun) 
    4 !!              2 - Diagnostics                        (namicediag) 
    5 !!              3 - Ice initialization                 (namiceini) 
    6 !!              4 - Ice discretization                 (namiceitd) 
    7 !!              5 - Ice dynamics and transport         (namicedyn) 
    8 !!              6 - Ice thermodynamics                 (namicethd) 
    9 !!              7 - Ice salinity                       (namicesal) 
    10 !!              8 - Ice mechanical redistribution      (namiceitdme) 
    11 !!              9 - Ice/snow albedos                   (namicealb) 
     3!!              1 - Generic parameters                 (namice_run) 
     4!!              2 - Ice thickness discretization       (namice_itd) 
     5!!              3 - Ice ridging/rafting                (namice_rdgrft) 
     6!!              4 - Ice rheology                       (namice_rhg) 
     7!!              5 - Ice advection                      (namice_adv) 
     8!!              6 - Ice thermodynamics                 (namice_thd) 
     9!!              7 - Ice salinity                       (namice_sal) 
     10!!              8 - Ice melt ponds                     (namice_mp) 
     11!!              9 - Ice initialization                 (namice_ini) 
     12!!             10 - Ice/snow albedos                   (namice_alb) 
     13!!             11 - Ice diagnostics                    (namice_dia) 
    1214!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    1315! 
    1416!------------------------------------------------------------------------------ 
    15 &namicerun     !   Generic parameters 
    16 !------------------------------------------------------------------------------ 
    17    jpl              =    5          !  number of ice  categories 
    18    nlay_i           =    2          !  number of ice  layers 
    19    nlay_s           =    1          !  number of snow layers (only 1 is working) 
    20    nn_monocat       =    0          !  virtual ITD mono-category parameterizations (1-4 => jpl = 1 only) or not (0) 
    21                                     !     2: simple piling instead of ridging    --- temporary option 
    22                                     !     3: activate G(he) only                 --- temporary option 
    23                                     !     4: activate extra lateral melting only --- temporary option 
    24    rn_amax_n        =   0.997       !  maximum tolerated ice concentration NH 
    25    rn_amax_s        =   0.997       !  maximum tolerated ice concentration SH 
    26    cn_icerst_in     = "restart_ice" !  suffix of ice restart name (input) 
    27    cn_icerst_out    = "restart_ice" !  suffix of ice restart name (output) 
    28    cn_icerst_indir  = "."           !  directory to read   input ice restarts 
    29    cn_icerst_outdir = "."           !  directory to write output ice restarts 
    30    ln_limthd        =  .true.       !  ice thermo   (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
    31    ln_limdyn        =  .true.       !  ice dynamics (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
    32    nn_limdyn        =   2           !     (ln_limdyn=T) switch for ice dynamics    
    33                                     !      2: total 
    34                                     !      1: advection only (no diffusion, no ridging/rafting) 
    35                                     !      0: advection only (as 1 but with prescribed velocity, bypass rheology) 
    36    rn_uice          =   0.00001     !     (nn_limdyn=0) ice u-velocity 
    37    rn_vice          =  -0.00001     !     (nn_limdyn=0) ice v-velocity 
    38 / 
    39 !------------------------------------------------------------------------------ 
    40 &namicediag    !   Diagnostics 
    41 !------------------------------------------------------------------------------ 
    42    ln_limdiachk   =  .false.        !  check online the heat, mass & salt budgets (T) or not (F) 
    43    ln_limdiahsb   =  .false.        !  output the heat, mass & salt budgets (T) or not (F) 
    44    ln_limctl      =  .false.        !  ice points output for debug (T or F) 
    45    iiceprt        =    10           !  i-index for debug 
    46    jiceprt        =    10           !  j-index for debug 
    47 / 
    48 !------------------------------------------------------------------------------ 
    49 &namiceini     !   Ice initialization 
     17&namice_run     !   Generic parameters 
     18!------------------------------------------------------------------------------ 
     19   jpl              =    5            !  number of ice  categories 
     20   nlay_i           =    2            !  number of ice  layers 
     21   nlay_s           =    1            !  number of snow layers (only 1 is working) 
     22   nn_monocat       =    0            !  virtual ITD mono-category parameterizations (1-4 => jpl = 1 only) or not (0) 
     23                                      !     2: simple piling instead of ridging    --- temporary option 
     24                                      !     3: activate G(he) only                 --- temporary option 
     25                                      !     4: activate extra lateral melting only --- temporary option 
     26   rn_amax_n        =   0.997         !  maximum tolerated ice concentration NH 
     27   rn_amax_s        =   0.997         !  maximum tolerated ice concentration SH 
     28   cn_icerst_in     = "restart_ice"   !  suffix of ice restart name (input) 
     29   cn_icerst_out    = "restart_ice"   !  suffix of ice restart name (output) 
     30   cn_icerst_indir  = "."             !  directory to read   input ice restarts 
     31   cn_icerst_outdir = "."             !  directory to write output ice restarts 
     32/ 
     33!------------------------------------------------------------------------------ 
     34&namice_itd     !   Ice discretization 
     35!------------------------------------------------------------------------------ 
     36   rn_himean        =   2.0           !  expected domain-average ice thickness (m) 
     37/ 
     38!------------------------------------------------------------------------------ 
     39&namice_rdgrft  !   Ice ridging/rafting 
     40!------------------------------------------------------------------------------ 
     41          ! -- ice_rdgrft_strength -- ! 
     42   ln_str_Hib       = .true.          !  ice strength param.: Hibler_79   => P = pstar*<h>*exp(-c_rhg*A)                       
     43      rn_pstar      =   2.0e+04       !     ice strength thickness parameter (N/m2)  
     44      rn_crhg       =   20.0          !     ice strength conc. parameter (-) 
     45   ln_str_Rot       = .false.         !  ice strength param.: Rothrock_75 => P = Cf*coeff*integral(wr.h^2)     
     46      rn_perdg      =   17.0          !     ridging work divided by pot. energy change in ridging 
     47                   ! -- ice_rdgrft -- ! 
     48   rn_cs            =   0.5           !  fraction of shearing energy contributing to ridging 
     49              ! -- ice_rdgrft_prep -- ! 
     50   ln_partf_lin     = .false.         !  Linear ridging participation function (Thorndike et al, 1975) 
     51      rn_gstar      =   0.15          !     fractional area of thin ice being ridged  
     52   ln_partf_exp     = .true.          !  Exponential ridging participation function (Lipscomb, 2007) 
     53      rn_astar      =   0.03          !     exponential measure of ridging ice fraction [set to 0.05 if hstar=100] 
     54   ln_ridging       = .true.          !  ridging activated (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
     55      rn_hstar      =  25.0           !     determines the maximum thickness of ridged ice (m) (Hibler, 1980) 
     56      rn_porordg    =   0.3           !     porosity of newly ridged ice (Lepparanta et al., 1995) 
     57      rn_fsnwrdg    =   0.5           !     snow volume fraction that survives in ridging 
     58      rn_fpndrdg    =   1.0           !     pond fraction that survives in ridging (small a priori) 
     59   ln_rafting       = .true.          !  rafting activated (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
     60      rn_hraft      =   0.75          !     threshold thickness for rafting (m) 
     61      rn_craft      =   5.0           !     squeezing coefficient used in the rafting function 
     62      rn_fsnwrft    =   0.5           !     snow volume fraction that survives in rafting 
     63      rn_fpndrft    =   1.0           !     pond fraction that survives in rafting (0.5 a priori) 
     64/ 
     65!------------------------------------------------------------------------------ 
     66&namice_rhg     !   Ice rheology 
     67!------------------------------------------------------------------------------ 
     68   rn_ishlat        =   2.            !  free slip (0) ; partial slip (0-2) ; no slip (2) ; strong slip (>2) 
     69   rn_cio           =   5.0e-03       !  ice-ocean drag coefficient (-) 
     70   rn_creepl        =   1.0e-12       !  creep limit (s-1) 
     71   rn_ecc           =   2.0           !  eccentricity of the elliptical yield curve           
     72   nn_nevp          = 120             !  number of EVP subcycles                              
     73   rn_relast        =   0.333         !  ratio of elastic timescale to ice time step: Telast = dt_ice * rn_relast  
     74                                      !     advised value: 1/3 (rn_nevp=120) or 1/9 (rn_nevp=300) 
     75   ln_landfast      = .false.         !  landfast ice parameterization (T or F)                            
     76      rn_gamma      =   0.15          !     fraction of ocean depth that ice must reach to initiate landfast 
     77                                      !        recommended range: [0.1 ; 0.25] 
     78      rn_icebfr     =  10.            !     maximum bottom stress per unit area of contact (N/m2)                  
     79                                      !        a very large value ensures ice velocity=0 even with a small contact area 
     80                                      !        recommended range: ?? (should be greater than atm-ice stress => >0.1 N/m2) 
     81      rn_lfrelax    =   1.e-5         !     relaxation time scale to reach static friction (s-1)                  
     82/ 
     83!------------------------------------------------------------------------------ 
     84&namice_adv     !   Ice advection 
     85!------------------------------------------------------------------------------ 
     86   ln_icedyn        = .true.          !  ice dynamics (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
     87      nn_icedyn     =   2             !     switch for ice dynamics    
     88                                      !        2: total 
     89                                      !        1: advection only (no diffusion, no ridging/rafting) 
     90                                      !        0: advection only (as 1 but with prescribed velocity, bypass rheology) 
     91         rn_uice    =   0.00001       !           prescribed ice u-velocity 
     92         rn_vice    =  -0.00001       !           prescribed ice v-velocity 
     93                      ! -- ice_adv -- ! 
     94   ln_adv_Pra       = .false.         !  Advection scheme (Prather) 
     95   ln_adv_UMx       = .true.          !  Advection scheme (Ultimate-Macho) 
     96      nn_UMx        =   5             !     order of the scheme for UMx (1-5) 
     97/ 
     98!------------------------------------------------------------------------------ 
     99&namice_thd     !   Ice thermodynamics 
     100!------------------------------------------------------------------------------ 
     101   ln_limthd      =  .true.           !  ice thermo   (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
     102                   ! -- limthd_dif -- ! 
     103   rn_kappa_i     = 1.0               !  radiation attenuation coefficient in sea ice (m-1) 
     104   nn_ice_thcon   = 1                 !  sea ice thermal conductivity 
     105                                      !     0: k = k0 + beta.S/T            (Untersteiner, 1964) 
     106                                      !     1: k = k0 + beta1.S/T - beta2.T (Pringle et al., 2007) 
     107   ln_dqnsice     = .true.            !  change the surface non-solar flux with surface temperature (T) or not (F) 
     108   rn_cdsn        = 0.31              !  thermal conductivity of the snow (0.31 W/m/K, Maykut and Untersteiner, 1971) 
     109                                      !     Obs: 0.1-0.5 (Lecomte et al, JAMES 2013) 
     110                    ! -- limthd_dh -- ! 
     111   ln_limdH       = .true.            !  activate ice thickness change from growing/melting (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
     112   rn_betas       = 0.66              !  exponent in lead-ice repratition of snow precipitation 
     113                                      !     betas = 1 -> equipartition, betas < 1 -> more on leads 
     114                    ! -- limthd_da -- ! 
     115   ln_limdA       = .true.            !  activate lateral melting param. (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
     116   rn_beta        = 1.0               !     (ln_latmelt=T) coef. beta for lateral melting param. Recommended range=[0.8-1.2] 
     117                                      !      => decrease = more melt and melt peaks toward higher concentration (A~0.5 for beta=1 ; A~0.8 for beta=0.2) 
     118                                      !         0.3 = best fit for western Fram Strait and Antarctica 
     119                                      !         1.4 = best fit for eastern Fram Strait       
     120   rn_dmin        = 8.                !     (ln_latmelt=T) minimum floe diameter for lateral melting param. Recommended range=[6-10] 
     121                                      !      => 6  vs 8m = +40% melting at the peak (A~0.5) 
     122                                      !         10 vs 8m = -20% melting 
     123                   ! -- limthd_lac -- ! 
     124   ln_limdO       = .true.            !  activate ice growth in open-water (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
     125   rn_hnewice     = 0.1               !  thickness for new ice formation in open water (m) 
     126   ln_frazil      = .false.           !  Frazil ice parameterization (ice collection as a function of wind) 
     127   rn_maxfrazb    = 1.0               !     (ln_frazil=T) maximum fraction of frazil ice collecting at the ice base 
     128   rn_vfrazb      = 0.417             !     (ln_frazil=T) thresold drift speed for frazil ice collecting at the ice bottom (m/s) 
     129   rn_Cfrazb      = 5.0               !     (ln_frazil=T) squeezing coefficient for frazil ice collecting at the ice bottom 
     130                    ! -- limitd_th -- ! 
     131   rn_himin       = 0.1               !  minimum ice thickness (m) used in remapping, must be smaller than rn_hnewice 
     132                       ! -- icestp -- ! 
     133   nn_limflx      = -1                !  LIM3 Multi-category heat flux formulation (use -1 if LIM3 is not used) 
     134                                      !  =-1  Use per-category fluxes, bypass redistributor, forced mode only, not yet implemented coupled 
     135                                      !  = 0  Average per-category fluxes (forced and coupled mode) 
     136                                      !  = 1  Average and redistribute per-category fluxes, forced mode only, not yet implemented coupled 
     137                                      !  = 2  Redistribute a single flux over categories (coupled mode only) 
     138/ 
     139!------------------------------------------------------------------------------ 
     140&namice_sal     !   Ice salinity 
     141!------------------------------------------------------------------------------ 
     142                   ! -- limthd_sal -- ! 
     143   ln_limdS       = .true.            !  activate gravity drainage and flushing (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
     144   nn_icesal      =  2                !  ice salinity option 
     145                                      !     1: constant ice salinity (S=rn_icesal) 
     146                                      !     2: varying salinity parameterization S(z,t) 
     147                                      !     3: prescribed salinity profile S(z), Schwarzacher, 1959 
     148   rn_icesal      =  4.               !    (nn_icesal=1) ice salinity (g/kg) 
     149   rn_sal_gd      =  5.               !  restoring ice salinity, gravity drainage (g/kg) 
     150   rn_time_gd     =  1.73e+6          !  restoring time scale, gravity drainage  (s) 
     151   rn_sal_fl      =  2.               !  restoring ice salinity, flushing (g/kg) 
     152   rn_time_fl     =  8.64e+5          !  restoring time scale, flushing (s) 
     153   rn_simax       = 20.               !  maximum tolerated ice salinity (g/kg) 
     154   rn_simin       =  0.1              !  minimum tolerated ice salinity (g/kg) 
     155/ 
     156!------------------------------------------------------------------------------ 
     157&namicemp      !   Melt ponds 
     158!------------------------------------------------------------------------------ 
     159                 ! -- limmp      -- ! 
     160   ln_pnd         = .false.         !  active melt ponds 
     161   ln_pnd_rad     = .false.         !  active melt ponds radiative coupling 
     162   ln_pnd_fw      = .false.         !  active melt ponds freshwater coupling 
     163   nn_pnd_scheme  = 0               !  type of melt pond scheme  : =0 prescribed ( Tsu=0 ), =1 empirical, =2 topographic 
     164   rn_apnd        = 0.2             !  prescribed pond fraction, at Tsu=0  : (0<rn_apnd<1, nn_pnd_scheme = 0) 
     165   rn_hpnd        = 0.05            !  prescribed pond depth, at Tsu=0     : (0<rn_apnd<1, nn_pnd_scheme = 0) 
     166/ 
     167!------------------------------------------------------------------------------ 
     168&namice_ini     !   Ice initialization 
    50169!------------------------------------------------------------------------------ 
    51170                  ! -- limistate -- ! 
    52    ln_limini      = .true.          !  activate ice initialization (T) or not (F) 
    53    ln_limini_file = .false.         !  netcdf file provided for initialization (T) or not (F) 
     171   ln_iceini      = .true.          !  activate ice initialization (T) or not (F) 
     172   ln_iceini_file = .false.         !  netcdf file provided for initialization (T) or not (F) 
    54173   rn_thres_sst   =  2.0            !  maximum water temperature with initial ice (degC) 
    55174   rn_hts_ini_n   =  0.3            !  initial real snow thickness (m), North 
     
    73192/ 
    74193!------------------------------------------------------------------------------ 
    75 &namiceitd     !   Ice discretization 
    76 !------------------------------------------------------------------------------ 
    77    rn_himean      =    2.0         !  expected domain-average ice thickness (m) 
    78 / 
    79 !------------------------------------------------------------------------------ 
    80 &namicedyn     !   Ice dynamics and transport 
    81 !------------------------------------------------------------------------------ 
    82                   ! -- limtrp & limadv -- ! 
    83    nn_limadv      =    0            !  choose the advection scheme (-1=Prather ; 0=Ultimate-Macho) 
    84    nn_limadv_ord  =    5            !  choose the order of the advection scheme (if nn_limadv=0) 
    85                   ! -- limitd_me -- ! 
    86    nn_icestr      =    0            !  ice strength parameteriztaion                       
    87                                     !     0: Hibler_79     P = pstar*<h>*exp(-c_rhg*A) 
    88                                     !     1: Rothrock_75   P = Cf*coeff*integral(wr.h^2)     
    89    rn_pe_rdg      =   17.0          !     (nn_icestr=1) ridging work divided by pot. energy change in ridging 
    90    rn_pstar       =    2.0e+04      !     (nn_icestr=0) ice strength thickness parameter (N/m2)  
    91    rn_crhg        =   20.0          !     (nn_icestr=0) ice strength conc. parameter (-) 
    92    ln_icestr_bvf  =    .false.      !     ice strength function brine volume (T) or not (F) 
    93                                     ! 
    94             ! -- limdyn & limrhg -- ! 
    95    rn_ishlat      =    2.           !  free slip (0) ; partial slip (0-2) ; no slip (2) ; strong slip (>2) 
    96    rn_cio         =    5.0e-03      !  ice-ocean drag coefficient (-) 
    97    rn_creepl      =    1.0e-12      !  creep limit (s-1) 
    98    rn_ecc         =    2.0          !  eccentricity of the elliptical yield curve           
    99    nn_nevp        =  120            !  number of EVP subcycles                              
    100    rn_relast      =    0.333        !  ratio of elastic timescale to ice time step: Telast = dt_ice * rn_relast  
    101                                     !     advised value: 1/3 (rn_nevp=120) or 1/9 (rn_nevp=300) 
    102    ln_landfast    =  .false.        !  landfast ice parameterization (T or F)                            
    103    rn_gamma       =    0.15         !     (ln_landfast=T)  fraction of ocean depth that ice must reach to initiate landfast 
    104                                     !                      recommended range: [0.1 ; 0.25] 
    105    rn_icebfr      =    10.          !     (ln_landfast=T)  maximum bottom stress per unit area of contact (N/m2)                  
    106                                     !                      a very large value ensures ice velocity=0 even with a small contact area 
    107                                     !                      recommended range: ?? (should be greater than atm-ice stress => >0.1 N/m2) 
    108    rn_lfrelax     =    1.e-5        !     (ln_landfast=T)  relaxation time scale to reach static friction (s-1)                  
    109 / 
    110 !------------------------------------------------------------------------------ 
    111 &namicethd     !   Ice thermodynamics 
    112 !------------------------------------------------------------------------------ 
    113                  ! -- limthd_dif -- ! 
    114    rn_kappa_i     = 1.0             !  radiation attenuation coefficient in sea ice (m-1) 
    115    nn_ice_thcon   = 1               !  sea ice thermal conductivity 
    116                                     !     0: k = k0 + beta.S/T            (Untersteiner, 1964) 
    117                                     !     1: k = k0 + beta1.S/T - beta2.T (Pringle et al., 2007) 
    118    ln_dqnsice     = .true.          !  change the surface non-solar flux with surface temperature (T) or not (F) 
    119    rn_cdsn        = 0.31            !  thermal conductivity of the snow (0.31 W/m/K, Maykut and Untersteiner, 1971) 
    120                                     !     Obs: 0.1-0.5 (Lecomte et al, JAMES 2013) 
    121                   ! -- limthd_dh -- ! 
    122    ln_limdH       = .true.          !  activate ice thickness change from growing/melting (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
    123    rn_betas       = 0.66            !  exponent in lead-ice repratition of snow precipitation 
    124                                     !     betas = 1 -> equipartition, betas < 1 -> more on leads 
    125                   ! -- limthd_da -- ! 
    126    ln_limdA       = .true.          !  activate lateral melting param. (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
    127    rn_beta        = 1.0             !     (ln_latmelt=T) coef. beta for lateral melting param. Recommended range=[0.8-1.2] 
    128                                     !      => decrease = more melt and melt peaks toward higher concentration (A~0.5 for beta=1 ; A~0.8 for beta=0.2) 
    129                                     !         0.3 = best fit for western Fram Strait and Antarctica 
    130                                     !         1.4 = best fit for eastern Fram Strait       
    131    rn_dmin        = 8.              !     (ln_latmelt=T) minimum floe diameter for lateral melting param. Recommended range=[6-10] 
    132                                     !      => 6  vs 8m = +40% melting at the peak (A~0.5) 
    133                                     !         10 vs 8m = -20% melting 
    134                  ! -- limthd_lac -- ! 
    135    ln_limdO       = .true.          !  activate ice growth in open-water (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
    136    rn_hnewice     = 0.1             !  thickness for new ice formation in open water (m) 
    137    ln_frazil      = .false.         !  Frazil ice parameterization (ice collection as a function of wind) 
    138    rn_maxfrazb    = 1.0             !     (ln_frazil=T) maximum fraction of frazil ice collecting at the ice base 
    139    rn_vfrazb      = 0.417           !     (ln_frazil=T) thresold drift speed for frazil ice collecting at the ice bottom (m/s) 
    140    rn_Cfrazb      = 5.0             !     (ln_frazil=T) squeezing coefficient for frazil ice collecting at the ice bottom 
    141                   ! -- limitd_th -- ! 
    142    rn_himin       = 0.1             !  minimum ice thickness (m) used in remapping, must be smaller than rn_hnewice 
    143                      ! -- icestp -- ! 
    144    nn_limflx      = -1              !  LIM3 Multi-category heat flux formulation (use -1 if LIM3 is not used) 
    145                                     !  =-1  Use per-category fluxes, bypass redistributor, forced mode only, not yet implemented coupled 
    146                                     !  = 0  Average per-category fluxes (forced and coupled mode) 
    147                                     !  = 1  Average and redistribute per-category fluxes, forced mode only, not yet implemented coupled 
    148                                     !  = 2  Redistribute a single flux over categories (coupled mode only) 
    149 / 
    150 !------------------------------------------------------------------------------ 
    151 &namicesal     !   Ice salinity 
    152 !------------------------------------------------------------------------------ 
    153                  ! -- limthd_sal -- ! 
    154    ln_limdS       = .true.          !  activate gravity drainage and flushing (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
    155    nn_icesal      =  2              !  ice salinity option 
    156                                     !     1: constant ice salinity (S=rn_icesal) 
    157                                     !     2: varying salinity parameterization S(z,t) 
    158                                     !     3: prescribed salinity profile S(z), Schwarzacher, 1959 
    159    rn_icesal      =  4.             !    (nn_icesal=1) ice salinity (g/kg) 
    160    rn_sal_gd      =  5.             !  restoring ice salinity, gravity drainage (g/kg) 
    161    rn_time_gd     =  1.73e+6        !  restoring time scale, gravity drainage  (s) 
    162    rn_sal_fl      =  2.             !  restoring ice salinity, flushing (g/kg) 
    163    rn_time_fl     =  8.64e+5        !  restoring time scale, flushing (s) 
    164    rn_simax       = 20.             !  maximum tolerated ice salinity (g/kg) 
    165    rn_simin       =  0.1            !  minimum tolerated ice salinity (g/kg) 
    166 / 
    167 !------------------------------------------------------------------------------ 
    168 &namicemp      !   Melt ponds 
    169 !------------------------------------------------------------------------------ 
    170                  ! -- limmp      -- ! 
    171    ln_pnd         = .false.         !  active melt ponds 
    172    ln_pnd_rad     = .false.         !  active melt ponds radiative coupling 
    173    ln_pnd_fw      = .false.         !  active melt ponds freshwater coupling 
    174    nn_pnd_scheme  = 0               !  type of melt pond scheme  : =0 prescribed ( Tsu=0 ), =1 empirical, =2 topographic 
    175    rn_apnd        = 0.2             !  prescribed pond fraction, at Tsu=0  : (0<rn_apnd<1, nn_pnd_scheme = 0) 
    176    rn_hpnd        = 0.05            !  prescribed pond depth, at Tsu=0     : (0<rn_apnd<1, nn_pnd_scheme = 0) 
    177 / 
    178 !------------------------------------------------------------------------------ 
    179 &namiceitdme   !   Ice mechanical redistribution (ridging and rafting) 
    180 !------------------------------------------------------------------------------ 
    181                   ! -- limitd_me -- ! 
    182    rn_cs          =   0.5           !  fraction of shearing energy contributing to ridging 
    183    nn_partfun     =   1             !  type of ridging participation function 
    184                                     !     0: linear      (Thorndike et al, 1975) 
    185                                     !     1: exponential (Lipscomb, 2007) 
    186    rn_gstar       =   0.15          !     (nn_partfun = 0) fractional area of thin ice being ridged  
    187    rn_astar       =   0.03          !     (nn_partfun = 1) exponential measure of ridging ice fraction [set to 0.05 if hstar=100] 
    188    ln_ridging     =   .true.        !  ridging activated (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
    189    rn_hstar       =  25.0           !     (ln_ridging = T) determines the maximum thickness of ridged ice (m) (Hibler, 1980) 
    190    rn_por_rdg     =   0.3           !     (ln_ridging = T) porosity of newly ridged ice (Lepparanta et al., 1995) 
    191    rn_fsnowrdg    =   0.5           !     (ln_ridging = T) snow volume fraction that survives in ridging 
    192    rn_fpondrdg    =   1.0           !     (ln_ridging = T) pond fraction that survives in ridging (small a priori) 
    193    ln_rafting     =   .true.        !  rafting activated (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
    194    rn_hraft       =   0.75          !     (ln_rafting = T) threshold thickness for rafting (m) 
    195    rn_craft       =   5.0           !     (ln_rafting = T) squeezing coefficient used in the rafting function 
    196    rn_fsnowrft    =   0.5           !     (ln_rafting = T) snow volume fraction that survives in rafting 
    197    rn_fpondrft    =   1.0           !     (ln_rafting = T) pond fraction that survives in rafting (0.5 a priori) 
    198 / 
    199 !----------------------------------------------------------------------- 
    200 &namicealb     !   albedo parameters 
    201 !----------------------------------------------------------------------- 
     194&namice_alb     !   albedo parameters 
     195!------------------------------------------------------------------------------ 
    202196   nn_ice_alb   =    1   !  parameterization of ice/snow albedo 
    203197                         !     0: Shine & Henderson-Sellers (JGR 1985), giving clear-sky albedo 
     
    210204   rn_alb_dpnd  =  0.27  !  ponded ice albedo       : 0.25 ( '' )          ; 0.27 ( '' )          ; obs 0.10-0.30 ( '' ) 
    211205/ 
     206!------------------------------------------------------------------------------ 
     207&namice_dia     !   Diagnostics 
     208!------------------------------------------------------------------------------ 
     209   ln_limdiachk   =  .false.        !  check online the heat, mass & salt budgets (T) or not (F) 
     210   ln_limdiahsb   =  .false.        !  output the heat, mass & salt budgets (T) or not (F) 
     211   ln_limctl      =  .false.        !  ice points output for debug (T or F) 
     212   iiceprt        =    10           !  i-index for debug 
     213   jiceprt        =    10           !  j-index for debug 
     214/ 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r8506 r8512  
    153153   !! * Share Module variables 
    154154   !!-------------------------------------------------------------------------- 
    155    !                                     !!** ice-generic parameters namelist (namicerun) ** 
     155   !                                     !!** ice-generic parameters namelist (namice_run) ** 
    156156   INTEGER           , PUBLIC ::   jpl             !: number of ice  categories  
    157157   INTEGER           , PUBLIC ::   nlay_i          !: number of ice  layers  
     
    163163   CHARACTER(len=256), PUBLIC ::   cn_icerst_indir !: ice restart input directory 
    164164   CHARACTER(len=256), PUBLIC ::   cn_icerst_outdir!: ice restart output directory 
    165    LOGICAL           , PUBLIC ::   ln_limthd       !: flag for ice thermo (T) or not (F) 
    166    LOGICAL           , PUBLIC ::   ln_limdyn       !: flag for ice dynamics (T) or not (F) 
    167    INTEGER           , PUBLIC ::   nn_limdyn       !: flag for ice dynamics 
    168    REAL(wp)          , PUBLIC ::   rn_uice         !: prescribed u-vel (case nn_limdyn=0) 
    169    REAL(wp)          , PUBLIC ::   rn_vice         !: prescribed v-vel (case nn_limdyn=0) 
    170165    
    171    !                                     !!** ice-diagnostics namelist (namicediag) ** 
     166   !                                     !!** ice-diagnostics namelist (namice_dia) ** 
    172167   LOGICAL , PUBLIC ::   ln_limdiachk     !: flag for ice diag (T) or not (F) 
    173168   LOGICAL , PUBLIC ::   ln_limdiahsb     !: flag for ice diag (T) or not (F) 
     
    177172 
    178173   !                                     !!** ice-dynamics namelist (namicedyn) ** 
     174   LOGICAL , PUBLIC ::   ln_icedyn        !: flag for ice dynamics (T) or not (F) 
     175   INTEGER , PUBLIC ::   nn_icedyn        !: flag for ice dynamics 
     176   REAL(wp), PUBLIC ::   rn_uice          !: prescribed u-vel (case nn_icedyn=0) 
     177   REAL(wp), PUBLIC ::   rn_vice          !: prescribed v-vel (case nn_icedyn=0) 
    179178                                          ! -- iceadv -- ! 
    180    INTEGER , PUBLIC ::   nn_limadv        !: choose the advection scheme (-1=Prather ; 0=Ultimate-Macho) 
    181    INTEGER , PUBLIC ::   nn_limadv_ord    !: choose the order of the advection scheme (if Ultimate-Macho)    
     179   LOGICAL , PUBLIC ::   ln_adv_Pra       !: Prather        advection scheme 
     180   LOGICAL , PUBLIC ::   ln_adv_UMx       !: Ultimate-Macho advection scheme 
     181   INTEGER , PUBLIC ::   nn_UMx           !: order of the UMx advection scheme    
    182182                                          ! -- icerdgrft -- ! 
    183    INTEGER , PUBLIC ::   nn_icestr        !: ice strength parameterization (0=Hibler79 1=Rothrock75) 
    184    REAL(wp), PUBLIC ::   rn_pe_rdg        !: ridging work divided by pot. energy change in ridging, nn_icestr = 1 
     183   LOGICAL , PUBLIC ::   ln_str_Hib       !: ice strength parameterization (Hibler79) 
    185184   REAL(wp), PUBLIC ::   rn_pstar         !: determines ice strength, Hibler JPO79 
    186185   REAL(wp), PUBLIC ::   rn_crhg          !: determines changes in ice strength 
    187    LOGICAL , PUBLIC ::   ln_icestr_bvf    !: use brine volume to diminish ice strength 
     186   LOGICAL , PUBLIC ::   ln_str_Rot       !: ice strength parameterization (Rothrock75) 
     187   REAL(wp), PUBLIC ::   rn_perdg         !: ridging work divided by pot. energy change in ridging 
    188188                                          ! -- icerhg -- ! 
    189189   REAL(wp), PUBLIC ::   rn_ishlat        !: lateral boundary condition for sea-ice 
     
    198198   REAL(wp), PUBLIC ::   rn_lfrelax       !: relaxation time scale (s-1) to reach static friction (landfast ice)  
    199199 
    200    !                                     !!** ice-thermodynamics namelist (namicethd) ** 
     200   !                                     !!** ice-thermodynamics namelist (namice_thd) ** 
     201   LOGICAL , PUBLIC ::   ln_limthd        !: flag for ice thermo (T) or not (F) 
    201202                                          ! -- icethd_dif -- ! 
    202203   REAL(wp), PUBLIC ::   rn_kappa_i       !: coef. for the extinction of radiation Grenfell et al. (2006) [1/m] 
     
    219220   REAL(wp), PUBLIC ::   rn_vfrazb        !: threshold drift speed for collection of bottom frazil ice 
    220221   REAL(wp), PUBLIC ::   rn_Cfrazb        !: squeezing coefficient for collection of bottom frazil ice 
    221                                           ! -- iceitd -- ! 
     222                                          ! -- iceitd_th -- ! 
    222223   REAL(wp), PUBLIC ::   rn_himin         !: minimum ice thickness 
    223  
    224    !                                     !!** ice-salinity namelist (namicesal) ** 
     224                                          ! --  -- ! 
     225   INTEGER , PUBLIC ::   nn_limflx        !: LIM3 Multi-category heat flux formulation 
     226   !                                      !   =-1  Use of per-category fluxes 
     227   !                                      !   = 0  Average per-category fluxes 
     228   !                                      !   = 1  Average then redistribute per-category fluxes 
     229   !                                      !   = 2  Redistribute a single flux over categories 
     230 
     231   !                                     !!** ice-salinity namelist (namice_sal) ** 
    225232   LOGICAL , PUBLIC ::   ln_limdS         !: activate gravity drainage and flushing (T) or not (F) 
    226233   INTEGER , PUBLIC ::   nn_icesal        !: salinity configuration used in the model 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceadv.F90

    r8505 r8512  
    3434   PRIVATE 
    3535 
    36    PUBLIC   ice_adv    ! called by icestp 
     36   PUBLIC   ice_adv        ! called by icestp 
     37   PUBLIC   ice_adv_init   ! called by icestp 
     38 
     39   INTEGER, PUBLIC ::              nice_dyn   ! choice of the type of advection scheme 
     40   !                                  ! associated indices: 
     41   INTEGER, PUBLIC, PARAMETER ::   np_dynNO   = 0   ! no ice dynamics and ice advection 
     42   INTEGER, PUBLIC, PARAMETER ::   np_dynFULL = 1   ! full ice dynamics  (rheology + advection + ridging/rafting + correction) 
     43   INTEGER, PUBLIC, PARAMETER ::   np_dyn     = 2   ! no ridging/rafting (rheology + advection                   + correction) 
     44   INTEGER, PUBLIC, PARAMETER ::   np_dynPURE = 3   ! pure dynamics      (rheology + advection)  
    3745 
    3846   !! * Substitution 
     
    5462      !!     other values are considered as second order.  
    5563      !!     For advection, one can choose between 
    56       !!     a) an Ultimate-Macho scheme (whose order is defined by nn_limadv_ord) => nn_limadv=0 
    57       !!     b) and a second order Prather scheme => nn_limadv=-1 
     64      !!     a) an Ultimate-Macho scheme (whose order is defined by nn_UMx) => ln_adv_UMx 
     65      !!     b) and a second order Prather scheme => ln_adv_Pra 
    5866      !! 
    5967      !! ** action : 
     
    7583      IF( kt == nit000 .AND. lwp ) THEN 
    7684         WRITE(numout,*) 
    77          WRITE(numout,*) 'iceadv: sea-ice advection' 
    78          WRITE(numout,*) '~~~~~~' 
     85         WRITE(numout,*) 'ice_adv: sea-ice advection' 
     86         WRITE(numout,*) '~~~~~~~' 
    7987      ENDIF 
    8088       
     
    116124      ! Advection 
    117125      !---------- 
    118       SELECT CASE ( nn_limadv ) 
    119       CASE ( 0 )                    !-- ULTIMATE-MACHO scheme 
     126      IF( ln_adv_UMx ) THEN                    !-- ULTIMATE-MACHO scheme 
    120127         CALL ice_adv_umx( kt, u_ice, v_ice,  & 
    121128            &              ato_i, v_i, v_s, smv_i, oa_i, a_i, a_ip, v_ip, e_s, e_i ) 
    122129          
    123       CASE ( -1 )                   !-- PRATHER scheme 
     130      ELSEIF( ln_adv_Pra ) THEN                !-- PRATHER scheme 
    124131         CALL ice_adv_prather( kt, u_ice, v_ice,  & 
    125132            &                  ato_i, v_i, v_s, smv_i, oa_i, a_i, a_ip, v_ip, e_s, e_i ) 
    126133          
    127       END SELECT 
     134      ENDIF 
    128135 
    129136      ! total ice fraction 
     
    154161      ! Thickness correction in case too high 
    155162      !-------------------------------------- 
    156       IF( nn_limdyn == 2 ) THEN 
     163      IF( nn_icedyn == 2 ) THEN 
    157164         ! 
    158165         CALL ice_var_zapsmall                       !-- zap small areas 
     
    228235   END SUBROUTINE ice_adv 
    229236 
     237 
     238   SUBROUTINE ice_adv_init 
     239      !!------------------------------------------------------------------- 
     240      !!                  ***  ROUTINE ice_adv_init  *** 
     241      !! 
     242      !! ** Purpose : Physical constants and parameters linked to the ice 
     243      !!      dynamics 
     244      !! 
     245      !! ** Method  :  Read the namice_adv namelist and check the ice-dynamic 
     246      !!       parameter values called at the first timestep (nit000) 
     247      !! 
     248      !! ** input   :   Namelist namice_adv 
     249      !!------------------------------------------------------------------- 
     250      INTEGER ::   ios   ! Local integer output status for namelist read 
     251      !! 
     252      NAMELIST/namice_adv/ ln_icedyn, nn_icedyn, rn_uice, rn_vice, ln_adv_Pra, ln_adv_UMx, nn_UMx 
     253      !!------------------------------------------------------------------- 
     254      ! 
     255      REWIND( numnam_ice_ref )         ! Namelist namice_adv in reference namelist : Ice dynamics 
     256      READ  ( numnam_ice_ref, namice_adv, IOSTAT = ios, ERR = 901) 
     257901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_adv in reference namelist', lwp ) 
     258      ! 
     259      REWIND( numnam_ice_cfg )         ! Namelist namice_adv in configuration namelist : Ice dynamics 
     260      READ  ( numnam_ice_cfg, namice_adv, IOSTAT = ios, ERR = 902 ) 
     261902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_adv in configuration namelist', lwp ) 
     262      IF(lwm) WRITE ( numoni, namice_adv ) 
     263      ! 
     264      IF(lwp) THEN                     ! control print 
     265         WRITE(numout,*) 
     266         WRITE(numout,*) 'ice_adv_init : ice parameters for ice dynamics ' 
     267         WRITE(numout,*) '~~~~~~~~~~~~' 
     268         WRITE(numout,*) '   Namelist namice_adv' 
     269         WRITE(numout,*) '      Ice dynamics       (T) or not (F)                         ln_icedyn  = ', ln_icedyn 
     270         WRITE(numout,*) '         associated switch                                      nn_icedyn  = ', nn_icedyn 
     271         WRITE(numout,*) '            =2 all processes (default option)' 
     272         WRITE(numout,*) '            =1 advection only (no ridging/rafting)' 
     273         WRITE(numout,*) '            =0 advection only with prescribed velocity given by ' 
     274         WRITE(numout,*) '               a uniform field               (u,v)_ice = (rn_uice,rn_vice) = (', rn_uice,',', rn_vice,')' 
     275         WRITE(numout,*) '      advection scheme for ice transport (limtrp)' 
     276         WRITE(numout,*) '         type of advection scheme (Prather)                     ln_adv_Pra = ', ln_adv_Pra  
     277         WRITE(numout,*) '         type of advection scheme (Ulimate-Macho)               ln_adv_UMx = ', ln_adv_UMx  
     278         WRITE(numout,*) '            order of the Ultimate-Macho scheme                      nn_UMx = ', nn_UMx 
     279      ENDIF 
     280      ! 
     281      !                             ! set the choice of ice dynamics 
     282      IF( lk_c1d .OR. .NOT. ln_icedyn ) THEN 
     283         nice_dyn = np_dynNO                    !--- no dynamics 
     284      ELSE 
     285         SELECT CASE( nn_icedyn ) 
     286         CASE( 2 )                     
     287            IF( nn_monocat /= 2 ) THEN          !--- full dynamics (rheology + advection + ridging/rafting + correction) 
     288               nice_dyn = np_dynFULL 
     289            ELSE 
     290               nice_dyn = np_dyn                !--- dynamics without ridging/rafting 
     291            ENDIF 
     292         CASE( 0 , 1 )                          !--- dynamics without ridging/rafting and correction  
     293            nice_dyn = np_dynPURE 
     294         END SELECT 
     295      ENDIF 
     296      !                                         !--- simple conservative piling, comparable with LIM2 
     297      l_piling = nn_icedyn == 1 .OR. ( nn_monocat == 2  .AND.  jpl == 1 ) 
     298      ! 
     299      IF ( ( ln_adv_Pra .AND. ln_adv_UMx ) .OR. ( .NOT.ln_adv_Pra .AND. .NOT.ln_adv_UMx ) ) THEN 
     300         CALL ctl_stop( 'ice_adv_init: choose one and only one ice advection scheme (ln_adv_Pra or ln_adv_UMx)' ) 
     301      ENDIF 
     302      ! 
     303   END SUBROUTINE ice_adv_init 
     304 
    230305#else 
    231306   !!---------------------------------------------------------------------- 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceadv_prather.F90

    r8504 r8512  
    7575      !!---------------------------------------------------------------------- 
    7676      ! 
    77       IF( kt == nit000 .AND. lwp ) THEN 
    78          WRITE(numout,*) 
    79          WRITE(numout,*) 'ice_adv_prather: Prather advection scheme' 
    80          WRITE(numout,*) '~~~~~~~~~~~~~~~' 
    81       ENDIF 
     77      IF( kt == nit000 .AND. lwp )   WRITE(numout,*) '-- ice_adv_prather: Prather advection scheme' 
    8278      ! 
    8379      ALLOCATE( zarea(jpi,jpj)     , z0opw(jpi,jpj, 1 ) ,                                           & 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceadv_umx.F90

    r8504 r8512  
    7474      !!---------------------------------------------------------------------- 
    7575      ! 
    76       IF( kt == nit000 .AND. lwp ) THEN 
    77          WRITE(numout,*)  
    78          WRITE(numout,*) 'ice_adv_umx : Ultimate-MACHO advection scheme' 
    79          WRITE(numout,*) '~~~~~~~~~~~' 
    80       ENDIF 
     76      IF( kt == nit000 .AND. lwp )   WRITE(numout,*) '-- ice_adv_umx: Ultimate-Macho advection scheme' 
    8177      ! 
    8278      ALLOCATE( zudy(jpi,jpj) , zvdx(jpi,jpj) , zcu_box(jpi,jpj) , zcv_box(jpi,jpj) ) 
     
    193189      ! High order (_ho) fluxes  
    194190      ! ----------------------- 
    195       SELECT CASE( nn_limadv_ord ) 
     191      SELECT CASE( nn_UMx ) 
    196192      CASE ( 20 )                          ! centered second order 
    197193         DO jj = 2, jpjm1 
     
    203199         ! 
    204200      CASE ( 1:5 )                      ! 1st to 5th order ULTIMATE-MACHO scheme 
    205          CALL macho( kt, nn_limadv_ord, pdt, ptc, puc, pvc, pubox, pvbox, zt_u, zt_v ) 
     201         CALL macho( kt, nn_UMx, pdt, ptc, puc, pvc, pubox, pvbox, zt_u, zt_v ) 
    206202         ! 
    207203         DO jj = 2, jpjm1 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icealb.F90

    r8505 r8512  
    3434   REAL(wp) , PARAMETER ::   r1_c2 = 1. / rc2 
    3535   ! 
    36    ! ** albedo namelist (namicealb) 
     36   ! ** albedo namelist (namice_alb) 
    3737   INTEGER  ::   nn_ice_alb       ! type of albedo scheme: 0: Shine & Henderson-Sellers (JGR 1985) 
    3838   !                                      !                         1: "home made" based on Brandt et al. (JClim 2005) 
     
    310310      !! ** Purpose :   initializations for the albedo parameters 
    311311      !! 
    312       !! ** Method  :   Read the namelist namicealb 
     312      !! ** Method  :   Read the namelist namice_alb 
    313313      !!---------------------------------------------------------------------- 
    314314      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    315315      !! 
    316       NAMELIST/namicealb/ nn_ice_alb, rn_alb_sdry, rn_alb_smlt, rn_alb_idry, rn_alb_imlt, rn_alb_dpnd 
    317       !!---------------------------------------------------------------------- 
    318       ! 
    319       REWIND( numnam_ice_ref )              ! Namelist namicealb in reference namelist : Albedo parameters 
    320       READ  ( numnam_ice_ref, namicealb, IOSTAT = ios, ERR = 901) 
    321 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicealb in reference namelist', lwp ) 
     316      NAMELIST/namice_alb/ nn_ice_alb, rn_alb_sdry, rn_alb_smlt, rn_alb_idry, rn_alb_imlt, rn_alb_dpnd 
     317      !!---------------------------------------------------------------------- 
     318      ! 
     319      REWIND( numnam_ice_ref )              ! Namelist namice_alb in reference namelist : Albedo parameters 
     320      READ  ( numnam_ice_ref, namice_alb, IOSTAT = ios, ERR = 901) 
     321901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_alb in reference namelist', lwp ) 
    322322 
    323323      REWIND( numnam_ice_cfg )              ! Namelist namsbc_alb in configuration namelist : Albedo parameters 
    324       READ  ( numnam_ice_cfg, namicealb, IOSTAT = ios, ERR = 902 ) 
    325 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicealb in configuration namelist', lwp ) 
    326       IF(lwm) WRITE ( numoni, namicealb ) 
     324      READ  ( numnam_ice_cfg, namice_alb, IOSTAT = ios, ERR = 902 ) 
     325902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_alb in configuration namelist', lwp ) 
     326      IF(lwm) WRITE ( numoni, namice_alb ) 
    327327      ! 
    328328      IF(lwp) THEN                      ! Control print 
     
    330330         WRITE(numout,*) 'albedo : set albedo parameters' 
    331331         WRITE(numout,*) '~~~~~~~' 
    332          WRITE(numout,*) '   Namelist namicealb : albedo ' 
     332         WRITE(numout,*) '   Namelist namice_alb : albedo ' 
    333333         WRITE(numout,*) '      choose the albedo parameterization   nn_ice_alb  = ', nn_ice_alb 
    334334         WRITE(numout,*) '      albedo of dry snow                   rn_alb_sdry = ', rn_alb_sdry 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icecor.F90

    r8498 r8512  
    6060      IF( kt == nit000 .AND. lwp .AND. kn == 2 ) THEN 
    6161         WRITE(numout,*) 
    62          WRITE(numout,*)' icecor :  correct sea ice variables if out of bounds '  
    63          WRITE(numout,*)' ~~~~~~~' 
     62         WRITE(numout,*) 'ice_cor:  correct sea ice variables if out of bounds '  
     63         WRITE(numout,*) '~~~~~~~' 
    6464      ENDIF 
    6565      !                             !--- conservation test 
     
    103103      !                             !  Rebin categories with thickness out of bounds     ! 
    104104      !                             !----------------------------------------------------- 
    105       IF ( jpl > 1 )   CALL ice_itd_reb 
     105      IF ( jpl > 1 )   CALL ice_itd_reb( kt ) 
    106106 
    107107      !                             !----------------------------------------------------- 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icedia.F90

    r8505 r8512  
    164164      INTEGER            ::   ios, ierror   ! local integer 
    165165      !! 
    166       NAMELIST/namicediag/ ln_limdiachk, ln_limdiahsb, ln_limctl, iiceprt, jiceprt   
     166      NAMELIST/namice_dia/ ln_limdiachk, ln_limdiahsb, ln_limctl, iiceprt, jiceprt   
    167167      !!---------------------------------------------------------------------- 
    168168      ! 
    169       REWIND( numnam_ice_ref )      ! Namelist namicediag in reference namelist : Parameters for ice 
    170       READ  ( numnam_ice_ref, namicediag, IOSTAT = ios, ERR = 901) 
    171 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicediag in reference namelist', lwp ) 
    172  
    173       REWIND( numnam_ice_cfg )      ! Namelist namicediag in configuration namelist : Parameters for ice 
    174       READ  ( numnam_ice_cfg, namicediag, IOSTAT = ios, ERR = 902 ) 
    175 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicediag in configuration namelist', lwp ) 
    176       IF(lwm) WRITE ( numoni, namicediag ) 
     169      REWIND( numnam_ice_ref )      ! Namelist namice_dia in reference namelist : Parameters for ice 
     170      READ  ( numnam_ice_ref, namice_dia, IOSTAT = ios, ERR = 901) 
     171901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_dia in reference namelist', lwp ) 
     172 
     173      REWIND( numnam_ice_cfg )      ! Namelist namice_dia in configuration namelist : Parameters for ice 
     174      READ  ( numnam_ice_cfg, namice_dia, IOSTAT = ios, ERR = 902 ) 
     175902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_dia in configuration namelist', lwp ) 
     176      IF(lwm) WRITE ( numoni, namice_dia ) 
    177177      ! 
    178178      IF(lwp) THEN                  ! control print 
     
    180180         WRITE(numout,*) 'ice_dia_init: ice diagnostics' 
    181181         WRITE(numout,*) ' ~~~~~~~~~~~' 
    182          WRITE(numout,*) '   Namelist namicediag : ' 
     182         WRITE(numout,*) '   Namelist namice_dia : ' 
    183183         WRITE(numout,*) '      Diagnose online heat/mass/salt budget      ln_limdiachk = ', ln_limdiachk 
    184184         WRITE(numout,*) '      Output          heat/mass/salt budget      ln_limdiahsb = ', ln_limdiahsb 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceforcing.F90

    r8498 r8512  
    6565      IF( kt == nit000 .AND. lwp ) THEN 
    6666         WRITE(numout,*) 
    67          WRITE(numout,*)'ice_forcing_tau : Surface boundary condition for sea ice (momentum)' 
     67         WRITE(numout,*)'ice_forcing_tau: Surface boundary condition for sea ice (momentum)' 
    6868         WRITE(numout,*)'~~~~~~~~~~~~~~~' 
    6969      ENDIF 
     
    124124      IF( kt == nit000 .AND. lwp ) THEN 
    125125         WRITE(numout,*) 
    126          WRITE(numout,*)'ice_forcing_flx : Surface boundary condition for sea ice (flux)' 
     126         WRITE(numout,*)'ice_forcing_flx: Surface boundary condition for sea ice (flux)' 
    127127         WRITE(numout,*)'~~~~~~~~~~~~~~~' 
    128128      ENDIF 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceist.F90

    r8506 r8512  
    4747   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   si  ! structure of input fields (file informations, fields read) 
    4848   ! 
    49    ! ** namelist (namiceini) ** 
    50    LOGICAL  ::   ln_limini        ! initialization or not 
    51    LOGICAL  ::   ln_limini_file   ! Ice initialization state from 2D netcdf file 
     49   ! ** namelist (namice_ini) ** 
     50   LOGICAL  ::   ln_iceini        ! initialization or not 
     51   LOGICAL  ::   ln_iceini_file   ! Ice initialization state from 2D netcdf file 
    5252   REAL(wp) ::   rn_thres_sst     ! threshold water temperature for initial sea ice 
    5353   REAL(wp) ::   rn_hts_ini_n     ! initial snow thickness in the north 
     
    126126      ! 2) Initialization of sea ice state variables 
    127127      !-------------------------------------------------------------------- 
    128       IF( ln_limini ) THEN 
     128      IF( ln_iceini ) THEN 
    129129         ! 
    130          IF( ln_limini_file )THEN 
     130         IF( ln_iceini_file )THEN 
    131131         ! 
    132132            zht_i_ini(:,:)  = si(jp_hti)%fnow(:,:,1) 
     
    141141            END WHERE 
    142142            ! 
    143          ELSE ! ln_limini_file = F 
     143         ELSE ! ln_iceini_file = F 
    144144 
    145145            !-------------------------------------------------------------------- 
     
    175175            END DO 
    176176            ! 
    177          ENDIF ! ln_limini_file 
     177         ENDIF ! ln_iceini_file 
    178178          
    179179         zvt_i_ini(:,:) = zht_i_ini(:,:) * zat_i_ini(:,:)   ! ice volume 
     
    403403         ! END MV MP 2016 
    404404 
    405       ELSE ! if ln_limini=false 
     405      ELSE ! if ln_iceini=false 
    406406         a_i  (:,:,:) = 0._wp 
    407407         v_i  (:,:,:) = 0._wp 
     
    431431         h_ip     (:,:,:) = 0._wp 
    432432 
    433       ENDIF ! ln_limini 
     433      ENDIF ! ln_iceini 
    434434       
    435435      at_i (:,:) = 0.0_wp 
     
    518518      !! ** Purpose : Definition of initial state of the ice  
    519519      !! 
    520       !! ** Method : Read the namiceini namelist and check the parameter  
     520      !! ** Method : Read the namice_ini namelist and check the parameter  
    521521      !!       values called at the first timestep (nit000) 
    522522      !! 
    523523      !! ** input :  
    524       !!        Namelist namiceini 
     524      !!        Namelist namice_ini 
    525525      !! 
    526526      !! history : 
     
    537537      TYPE(FLD_N), DIMENSION(jpfldi) ::   slf_i                 ! array of namelist informations on the fields to read 
    538538      ! 
    539       NAMELIST/namiceini/ ln_limini, ln_limini_file, rn_thres_sst, rn_hts_ini_n, rn_hts_ini_s,  & 
     539      NAMELIST/namice_ini/ ln_iceini, ln_iceini_file, rn_thres_sst, rn_hts_ini_n, rn_hts_ini_s,  & 
    540540         &                rn_hti_ini_n, rn_hti_ini_s, rn_ati_ini_n, rn_ati_ini_s, rn_smi_ini_n, & 
    541541         &                rn_smi_ini_s, rn_tmi_ini_n, rn_tmi_ini_s,                             & 
     
    543543      !!----------------------------------------------------------------------------- 
    544544      ! 
    545       REWIND( numnam_ice_ref )              ! Namelist namiceini in reference namelist : Ice initial state 
    546       READ  ( numnam_ice_ref, namiceini, IOSTAT = ios, ERR = 901) 
    547 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceini in reference namelist', lwp ) 
    548  
    549       REWIND( numnam_ice_cfg )              ! Namelist namiceini in configuration namelist : Ice initial state 
    550       READ  ( numnam_ice_cfg, namiceini, IOSTAT = ios, ERR = 902 ) 
    551 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceini in configuration namelist', lwp ) 
    552       IF(lwm) WRITE ( numoni, namiceini ) 
     545      REWIND( numnam_ice_ref )              ! Namelist namice_ini in reference namelist : Ice initial state 
     546      READ  ( numnam_ice_ref, namice_ini, IOSTAT = ios, ERR = 901) 
     547901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_ini in reference namelist', lwp ) 
     548 
     549      REWIND( numnam_ice_cfg )              ! Namelist namice_ini in configuration namelist : Ice initial state 
     550      READ  ( numnam_ice_cfg, namice_ini, IOSTAT = ios, ERR = 902 ) 
     551902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_ini in configuration namelist', lwp ) 
     552      IF(lwm) WRITE ( numoni, namice_ini ) 
    553553 
    554554      slf_i(jp_hti) = sn_hti  ;  slf_i(jp_hts) = sn_hts 
     
    563563         WRITE(numout,*) 'ice_ist_init : ice parameters inititialisation ' 
    564564         WRITE(numout,*) '~~~~~~~~~~~~' 
    565          WRITE(numout,*) '   Namelist namiceini' 
    566          WRITE(numout,*) '      initialization with ice (T) or not (F)       ln_limini     = ', ln_limini 
    567          WRITE(numout,*) '      ice initialization from a netcdf file      ln_limini_file  = ', ln_limini_file 
     565         WRITE(numout,*) '   Namelist namice_ini' 
     566         WRITE(numout,*) '      initialization with ice (T) or not (F)       ln_iceini     = ', ln_iceini 
     567         WRITE(numout,*) '      ice initialization from a netcdf file      ln_iceini_file  = ', ln_iceini_file 
    568568         WRITE(numout,*) '      threshold water temp. for initial sea-ice    rn_thres_sst  = ', rn_thres_sst 
    569569         WRITE(numout,*) '      initial snow thickness in the north          rn_hts_ini_n  = ', rn_hts_ini_n 
     
    579579      ENDIF 
    580580 
    581       IF( ln_limini_file ) THEN                      ! Ice initialization using input file 
     581      IF( ln_iceini_file ) THEN                      ! Ice initialization using input file 
    582582         ! 
    583583         ! set si structure 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceitd.F90

    r8505 r8512  
    3838   PUBLIC   ice_itd_reb   ! called in iceerr 
    3939 
    40    ! ** ice-thickness distribution namelist (namiceitd) ** 
     40   ! ** ice-thickness distribution namelist (namice_itd) ** 
    4141   REAL(wp) ::   rn_himean        ! mean thickness of the domain (used to compute the distribution) 
    4242 
     
    7979      !!------------------------------------------------------------------ 
    8080 
    81       IF( kt == nit000 .AND. lwp) THEN 
    82          WRITE(numout,*) 
    83          WRITE(numout,*) 'ice_itd_rem  : Remapping the ice thickness distribution' 
    84          WRITE(numout,*) '~~~~~~~~~~~~~~~' 
    85       ENDIF 
     81      IF( kt == nit000 .AND. lwp )   WRITE(numout,*) '-- ice_itd_rem: remapping ice thickness distribution'  
    8682 
    8783      IF( ln_limdiachk ) CALL ice_cons_hsm(0, 'iceitd_rem', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 
     
    545541    
    546542 
    547    SUBROUTINE ice_itd_reb 
     543   SUBROUTINE ice_itd_reb( kt ) 
    548544      !!------------------------------------------------------------------ 
    549545      !!                ***  ROUTINE ice_itd_reb *** 
     
    555551      !!              to the neighboring category 
    556552      !!------------------------------------------------------------------ 
     553      INTEGER , INTENT (in) ::   kt      ! Ocean time step  
    557554      INTEGER ::   ji, jj, jl   ! dummy loop indices 
    558555      ! 
     
    561558      !!------------------------------------------------------------------ 
    562559      ! 
     560      IF( kt == nit000 .AND. lwp )   WRITE(numout,*) '-- ice_itd_reb: rebining ice thickness distribution'  
     561 
    563562      jdonor(:,:) = 0 
    564563      zdaice(:,:) = 0._wp 
     
    645644      !! ** Purpose :   Initializes the ice thickness distribution 
    646645      !! ** Method  :   ... 
    647       !! ** input   :   Namelist namiceitd 
     646      !! ** input   :   Namelist namice_itd 
    648647      !!------------------------------------------------------------------- 
    649648      INTEGER  ::   jl    ! dummy loop index 
     
    651650      REAL(wp) ::   zhmax, znum, zden, zalpha   !   -      - 
    652651      !! 
    653       NAMELIST/namiceitd/ rn_himean 
    654       !!------------------------------------------------------------------ 
    655       ! 
    656       REWIND( numnam_ice_ref )      ! Namelist namiceitd in reference namelist : Parameters for ice 
    657       READ  ( numnam_ice_ref, namiceitd, IOSTAT = ios, ERR = 901) 
    658 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceitd in reference namelist', lwp ) 
    659  
    660       REWIND( numnam_ice_cfg )      ! Namelist namiceitd in configuration namelist : Parameters for ice 
    661       READ  ( numnam_ice_cfg, namiceitd, IOSTAT = ios, ERR = 902 ) 
    662 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceitd in configuration namelist', lwp ) 
    663       IF(lwm) WRITE ( numoni, namiceitd ) 
     652      NAMELIST/namice_itd/ rn_himean 
     653      !!------------------------------------------------------------------ 
     654      ! 
     655      REWIND( numnam_ice_ref )      ! Namelist namice_itd in reference namelist : Parameters for ice 
     656      READ  ( numnam_ice_ref, namice_itd, IOSTAT = ios, ERR = 901) 
     657901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_itd in reference namelist', lwp ) 
     658 
     659      REWIND( numnam_ice_cfg )      ! Namelist namice_itd in configuration namelist : Parameters for ice 
     660      READ  ( numnam_ice_cfg, namice_itd, IOSTAT = ios, ERR = 902 ) 
     661902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_itd in configuration namelist', lwp ) 
     662      IF(lwm) WRITE ( numoni, namice_itd ) 
    664663      ! 
    665664      IF(lwp) THEN                  ! control print 
     
    667666         WRITE(numout,*) 'ice_itd_init : Initialization of ice cat distribution ' 
    668667         WRITE(numout,*) '~~~~~~~~~~~~' 
    669          WRITE(numout,*) '   Namelist namicerun : ' 
     668         WRITE(numout,*) '   Namelist namice_itd : ' 
    670669         WRITE(numout,*) '      mean ice thickness in the domain               rn_himean = ', rn_himean 
    671670      ENDIF 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icerdgrft.F90

    r8506 r8512  
    3232 
    3333   PUBLIC   ice_rdgrft               ! called by ice_stp 
    34    PUBLIC   ice_rdgrft_icestrength   ! called by icerhg_evp 
     34   PUBLIC   ice_rdgrft_strength      ! called by icerhg_evp 
    3535   PUBLIC   ice_rdgrft_init          ! called by ice_stp 
    3636   PUBLIC   ice_rdgrft_alloc         ! called by ice_init  
     
    5151   REAL(wp)            ::   zdrho               !  
    5252   ! 
    53    ! ** namelist (namiceitdme) ** 
    54    REAL(wp) ::   rn_cs            !: fraction of shearing energy contributing to ridging             
    55    INTEGER  ::   nn_partfun       !: participation function: =0 Thorndike et al. (1975), =1 Lipscomb et al. (2007) 
    56    REAL(wp) ::   rn_gstar         !: fractional area of young ice contributing to ridging 
    57    REAL(wp) ::   rn_astar         !: equivalent of G* for an exponential participation function 
    58    LOGICAL  ::   ln_ridging       !: ridging of ice or not                         
    59    REAL(wp) ::   rn_hstar         !: thickness that determines the maximal thickness of ridged ice 
    60    REAL(wp) ::   rn_por_rdg       !: initial porosity of ridges (0.3 regular value) 
    61    REAL(wp) ::   rn_fsnowrdg      !: fractional snow loss to the ocean during ridging 
    62    REAL(wp) ::   rn_fpondrdg      !: fractional melt pond loss to the ocean during ridging 
    63    LOGICAL  ::   ln_rafting       !: rafting of ice or not                         
    64    REAL(wp) ::   rn_hraft         !: threshold thickness (m) for rafting / ridging  
    65    REAL(wp) ::   rn_craft         !: coefficient for smoothness of the hyperbolic tangent in rafting 
    66    REAL(wp) ::   rn_fsnowrft      !: fractional snow loss to the ocean during ridging 
    67    REAL(wp) ::   rn_fpondrft      !: fractional snow loss to the ocean during rafting 
     53   ! ** namelist (namice_rdgrft) ** 
     54   REAL(wp) ::   rn_cs            ! fraction of shearing energy contributing to ridging             
     55   LOGICAL  ::   ln_partf_lin     ! participation function linear (Thorndike et al. (1975)) 
     56   REAL(wp) ::   rn_gstar         !    fractional area of young ice contributing to ridging 
     57   LOGICAL  ::   ln_partf_exp     ! participation function exponential (Lipscomb et al. (2007)) 
     58   REAL(wp) ::   rn_astar         !    equivalent of G* for an exponential participation function 
     59   LOGICAL  ::   ln_ridging       ! ridging of ice or not                         
     60   REAL(wp) ::   rn_hstar         !    thickness that determines the maximal thickness of ridged ice 
     61   REAL(wp) ::   rn_porordg       !    initial porosity of ridges (0.3 regular value) 
     62   REAL(wp) ::   rn_fsnwrdg       !    fractional snow loss to the ocean during ridging 
     63   REAL(wp) ::   rn_fpndrdg       !    fractional pond loss to the ocean during ridging 
     64   LOGICAL  ::   ln_rafting       ! rafting of ice or not                         
     65   REAL(wp) ::   rn_hraft         !    threshold thickness (m) for rafting / ridging  
     66   REAL(wp) ::   rn_craft         !    coefficient for smoothness of the hyperbolic tangent in rafting 
     67   REAL(wp) ::   rn_fsnwrft       !    fractional snow loss to the ocean during rafting 
     68   REAL(wp) ::   rn_fpndrft       !    fractional pond loss to the ocean during rafting 
    6869   ! 
    6970   !!---------------------------------------------------------------------- 
     
    133134      IF( kt == nit000 ) THEN 
    134135         IF(lwp) WRITE(numout,*) 
    135          IF(lwp) WRITE(numout,*)'icerdgrft : ice ridging and rafting' 
     136         IF(lwp) WRITE(numout,*)'ice_rdgrft: ice ridging and rafting' 
    136137         IF(lwp) WRITE(numout,*)'~~~~~~~~~~' 
    137138         ! 
     
    146147      !-----------------------------------------------------------------------------! 
    147148      ! 
    148       CALL ice_rdgrft_ridgeprep                             ! prepare ridging 
     149      CALL ice_rdgrft_prep                             ! prepare ridging 
    149150      ! 
    150151      DO jj = 1, jpj                                        ! Initialize arrays. 
     
    272273         ! 
    273274         IF( iterate_ridging == 1 ) THEN 
    274             CALL ice_rdgrft_ridgeprep 
     275            CALL ice_rdgrft_prep 
    275276            IF( niter  >  nitermax ) THEN 
    276277               WRITE(numout,*) ' ALERTE : non-converging ridging scheme ' 
     
    297298 
    298299 
    299    SUBROUTINE ice_rdgrft_ridgeprep 
     300   SUBROUTINE ice_rdgrft_prep 
    300301      !!---------------------------------------------------------------------! 
    301       !!                ***  ROUTINE ice_rdgrft_ridgeprep *** 
     302      !!                ***  ROUTINE ice_rdgrft_prep *** 
    302303      !! 
    303304      !! ** Purpose :   preparation for ridging and strength calculations 
     
    352353      !----------------------------------------------------------------- 
    353354      ! 
    354       IF( nn_partfun == 0 ) THEN       !--- Linear formulation (Thorndike et al., 1975) 
     355      IF( ln_partf_lin ) THEN          !--- Linear formulation (Thorndike et al., 1975) 
    355356         DO jl = 0, jpl     
    356357            DO jj = 1, jpj  
     
    369370         END DO 
    370371         ! 
    371       ELSE                             !--- Exponential, more stable formulation (Lipscomb et al, 2007) 
     372      ELSEIF( ln_partf_exp ) THEN      !--- Exponential, more stable formulation (Lipscomb et al, 2007) 
    372373         !                         
    373374         zdummy = 1._wp / ( 1._wp - EXP(-z1_astar) )        ! precompute exponential terms using zGsum as a work array 
     
    453454      END DO 
    454455      ! 
    455    END SUBROUTINE ice_rdgrft_ridgeprep 
     456   END SUBROUTINE ice_rdgrft_prep 
    456457 
    457458 
    458459   SUBROUTINE ice_rdgrft_ridgeshift( opning, closing_gross ) 
    459460      !!---------------------------------------------------------------------- 
    460       !!                ***  ROUTINE ice_rdgrft_icestrength *** 
     461      !!                ***  ROUTINE ice_rdgrft_strength *** 
    461462      !! 
    462463      !! ** Purpose :   shift ridging ice among thickness categories of ice thickness 
     
    565566            !-------------------------------------------------------------------------- 
    566567            vrdg1(ij) = v_i(ji,jj,jl1) * afrac(ij) 
    567             vrdg2(ij) = vrdg1(ij) * ( 1. + rn_por_rdg ) 
    568             vsw  (ij) = vrdg1(ij) * rn_por_rdg 
     568            vrdg2(ij) = vrdg1(ij) * ( 1. + rn_porordg ) 
     569            vsw  (ij) = vrdg1(ij) * rn_porordg 
    569570 
    570571            vsrdg (ij) = v_s  (ji,jj,  jl1) * afrac(ij) 
     
    621622            !  During the next time step, thermo_rates will determine whether 
    622623            !  the ocean cools or new ice grows. 
    623             wfx_snw_dyn(ji,jj) = wfx_snw_dyn(ji,jj) + ( rhosn * vsrdg(ij) * ( 1._wp - rn_fsnowrdg )   &  
    624                &                                      + rhosn * vsrft(ij) * ( 1._wp - rn_fsnowrft ) ) * r1_rdtice  ! fresh water source for ocean 
    625  
    626             hfx_dyn(ji,jj) = hfx_dyn(ji,jj) + ( - esrdg(ij) * ( 1._wp - rn_fsnowrdg )         &  
    627                &                                - esrft(ij) * ( 1._wp - rn_fsnowrft ) ) * r1_rdtice        ! heat sink for ocean (<0, W.m-2) 
     624            wfx_snw_dyn(ji,jj) = wfx_snw_dyn(ji,jj) + ( rhosn * vsrdg(ij) * ( 1._wp - rn_fsnwrdg )   &  
     625               &                                      + rhosn * vsrft(ij) * ( 1._wp - rn_fsnwrft ) ) * r1_rdtice  ! fresh water source for ocean 
     626 
     627            hfx_dyn(ji,jj) = hfx_dyn(ji,jj) + ( - esrdg(ij) * ( 1._wp - rn_fsnwrdg )         &  
     628               &                                - esrft(ij) * ( 1._wp - rn_fsnwrft ) ) * r1_rdtice        ! heat sink for ocean (<0, W.m-2) 
    628629 
    629630            ! MV MP 2016 
     
    633634            !  Place part of the melt pond volume into the ocean.  
    634635            IF ( ( nn_pnd_scheme > 0 ) .AND. ln_pnd_fw ) THEN 
    635                wfx_pnd(ji,jj) = wfx_pnd(ji,jj) + ( rhofw * vprdg(ij) * ( 1._wp - rn_fpondrdg )   &  
    636                &                                 + rhofw * vprft(ij) * ( 1._wp - rn_fpondrft ) ) * r1_rdtice  ! fresh water source for ocean 
     636               wfx_pnd(ji,jj) = wfx_pnd(ji,jj) + ( rhofw * vprdg(ij) * ( 1._wp - rn_fpndrdg )   &  
     637               &                                 + rhofw * vprft(ij) * ( 1._wp - rn_fpndrft ) ) * r1_rdtice  ! fresh water source for ocean 
    637638            ENDIF 
    638639            ! END MV MP 2016 
     
    719720               v_i  (ji,jj  ,jl2) = v_i  (ji,jj  ,jl2) + ( vrdg2 (ij) * fvol(ij) + virft (ij) * zswitch(ij) ) 
    720721               smv_i(ji,jj  ,jl2) = smv_i(ji,jj  ,jl2) + ( srdg2 (ij) * fvol(ij) + smrft (ij) * zswitch(ij) ) 
    721                v_s  (ji,jj  ,jl2) = v_s  (ji,jj  ,jl2) + ( vsrdg (ij) * rn_fsnowrdg * fvol(ij)  +  & 
    722                   &                                        vsrft (ij) * rn_fsnowrft * zswitch(ij) ) 
    723                e_s  (ji,jj,1,jl2) = e_s  (ji,jj,1,jl2) + ( esrdg (ij) * rn_fsnowrdg * fvol(ij)  +  & 
    724                   &                                        esrft (ij) * rn_fsnowrft * zswitch(ij) ) 
     722               v_s  (ji,jj  ,jl2) = v_s  (ji,jj  ,jl2) + ( vsrdg (ij) * rn_fsnwrdg * fvol(ij)  +  & 
     723                  &                                        vsrft (ij) * rn_fsnwrft * zswitch(ij) ) 
     724               e_s  (ji,jj,1,jl2) = e_s  (ji,jj,1,jl2) + ( esrdg (ij) * rn_fsnwrdg * fvol(ij)  +  & 
     725                  &                                        esrft (ij) * rn_fsnwrft * zswitch(ij) ) 
    725726               ! MV MP 2016 
    726727               IF ( nn_pnd_scheme > 0 ) THEN 
    727                   v_ip (ji,jj,jl2) = v_ip(ji,jj,jl2) + (   vprdg (ij) * rn_fpondrdg * fvol   (ij)   & 
    728                      &                                   + vprft (ij) * rn_fpondrft * zswitch(ij)   ) 
    729                   a_ip (ji,jj,jl2) = a_ip(ji,jj,jl2) + (   aprdg2(ij) * rn_fpondrdg * farea         &  
    730                      &                                   + aprft2(ij) * rn_fpondrft * zswitch(ji)   ) 
     728                  v_ip (ji,jj,jl2) = v_ip(ji,jj,jl2) + (   vprdg (ij) * rn_fpndrdg * fvol   (ij)   & 
     729                     &                                   + vprft (ij) * rn_fpndrft * zswitch(ij)   ) 
     730                  a_ip (ji,jj,jl2) = a_ip(ji,jj,jl2) + (   aprdg2(ij) * rn_fpndrdg * farea         &  
     731                     &                                   + aprft2(ij) * rn_fpndrft * zswitch(ji)   ) 
    731732               ENDIF 
    732733               ! END MV MP 2016 
     
    748749 
    749750 
    750    SUBROUTINE ice_rdgrft_icestrength( kstrngth ) 
     751   SUBROUTINE ice_rdgrft_strength 
    751752      !!---------------------------------------------------------------------- 
    752       !!                ***  ROUTINE ice_rdgrft_icestrength *** 
     753      !!                ***  ROUTINE ice_rdgrft_strength *** 
    753754      !! 
    754755      !! ** Purpose :   computes ice strength used in dynamics routines of ice thickness 
     
    759760      !!              by ridging. Note that only Hibler's formulation is stable and that 
    760761      !!              ice strength has to be smoothed 
    761       !! 
    762       !! ** Inputs / Ouputs : kstrngth (what kind of ice strength we are using) 
    763762      !!---------------------------------------------------------------------- 
    764       INTEGER, INTENT(in) ::   kstrngth    ! = 1 for Rothrock formulation, 0 for Hibler (1979) 
    765       ! 
    766763      INTEGER             ::   ji,jj, jl   ! dummy loop indices 
    767764      INTEGER             ::   ismooth     ! smoothing the resistance to deformation 
     
    773770 
    774771      !                              !--------------------------------------------------! 
    775       CALL ice_rdgrft_ridgeprep      ! Thickness distribution of ridging and ridged ice ! 
     772      CALL ice_rdgrft_prep           ! Thickness distribution of ridging and ridged ice ! 
    776773      !                              !--------------------------------------------------! 
    777774 
    778775      !                              !--------------------------------------------------! 
    779       IF( kstrngth == 1 ) THEN       ! Ice strength => Rothrock (1975) method           ! 
     776      IF( ln_str_Rot ) THEN          ! Ice strength => Rothrock (1975) method           ! 
    780777      !                              !--------------------------------------------------! 
    781778         z1_3 = 1._wp / 3._wp 
     
    792789            END WHERE 
    793790         END DO 
    794          strength(:,:) = rn_pe_rdg * zdrho * strength(:,:) / aksum(:,:) * tmask(:,:,1) 
    795                          ! where zdrho = (g/2)*(rhow-rhoi)*(rhoi/rhow) and rn_pe_rdg accounts for frictional dissipation 
     791         strength(:,:) = rn_perdg * zdrho * strength(:,:) / aksum(:,:) * tmask(:,:,1) 
     792                         ! where zdrho = (g/2)*(rhow-rhoi)*(rhoi/rhow) and rn_perdg accounts for frictional dissipation 
    796793         ismooth = 1 
    797794      !                              !--------------------------------------------------! 
    798       ELSE                           ! Ice strength => Hibler (1979) method             ! 
     795      ELSEIF( ln_str_Hib ) THEN      ! Ice strength => Hibler (1979) method             ! 
    799796      !                              !--------------------------------------------------! 
    800797         strength(:,:) = rn_pstar * vt_i(:,:) * EXP( - rn_crhg * ( 1._wp - at_i(:,:) )  ) * tmask(:,:,1) 
     
    802799         ismooth = 1 
    803800         ! 
    804       ENDIF 
    805       !                              !--------------------------------------------------! 
    806       IF( ln_icestr_bvf ) THEN       ! Impact of brine volume                           ! 
    807       !                              !--------------------------------------------------! 
    808       ! CAN BE REMOVED 
    809          DO jj = 1, jpj 
    810             DO ji = 1, jpi 
    811                strength(ji,jj) = strength(ji,jj) * exp(-5.88*SQRT(MAX(bvm_i(ji,jj),0.0))) 
    812             END DO 
    813          END DO 
    814801      ENDIF 
    815802      !                              !--------------------------------------------------! 
    816803      SELECT CASE( ismooth )         ! Smoothing ice strength                           ! 
    817804      !                              !--------------------------------------------------! 
    818       ! 
    819805      CASE( 1 )               !--- Spatial smoothing 
    820806         DO jj = 2, jpjm1 
     
    861847      END SELECT 
    862848      ! 
    863    END SUBROUTINE ice_rdgrft_icestrength 
     849   END SUBROUTINE ice_rdgrft_strength 
    864850 
    865851 
     
    871857      !!                to the mechanical ice redistribution 
    872858      !! 
    873       !! ** Method  :   Read the namiceitdme namelist  
     859      !! ** Method  :   Read the namice_rdgrft namelist  
    874860      !!                and check the parameters values  
    875861      !!                called at the first timestep (nit000) 
    876862      !! 
    877       !! ** input   :   Namelist namiceitdme 
     863      !! ** input   :   Namelist namice_rdgrft 
    878864      !!------------------------------------------------------------------- 
    879865      INTEGER :: ios                 ! Local integer output status for namelist read 
    880866      !! 
    881       NAMELIST/namiceitdme/ rn_cs     , nn_partfun, rn_gstar  , rn_astar   ,                &  
    882          &                  ln_ridging, rn_hstar  , rn_por_rdg, rn_fsnowrdg, rn_fpondrdg,   &  
    883          &                  ln_rafting, rn_hraft  , rn_craft  , rn_fsnowrft, rn_fpondrft 
     867      NAMELIST/namice_rdgrft/ ln_str_Hib, rn_pstar, rn_crhg, & 
     868         &                    ln_str_Rot, rn_perdg,          & 
     869         &                    rn_cs     ,                    & 
     870         &                    ln_partf_lin, rn_gstar,        & 
     871         &                    ln_partf_exp, rn_astar,        &  
     872         &                    ln_ridging, rn_hstar, rn_porordg, rn_fsnwrdg, rn_fpndrdg,  &  
     873         &                    ln_rafting, rn_hraft, rn_craft  , rn_fsnwrft, rn_fpndrft 
    884874      !!------------------------------------------------------------------- 
    885875      ! 
    886876      REWIND( numnam_ice_ref )              ! Namelist namicetdme in reference namelist : Ice mechanical ice redistribution 
    887       READ  ( numnam_ice_ref, namiceitdme, IOSTAT = ios, ERR = 901) 
    888 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceitdme in reference namelist', lwp ) 
    889       ! 
    890       REWIND( numnam_ice_cfg )              ! Namelist namiceitdme in configuration namelist : Ice mechanical ice redistribution 
    891       READ  ( numnam_ice_cfg, namiceitdme, IOSTAT = ios, ERR = 902 ) 
    892 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceitdme in configuration namelist', lwp ) 
    893       IF(lwm) WRITE ( numoni, namiceitdme ) 
     877      READ  ( numnam_ice_ref, namice_rdgrft, IOSTAT = ios, ERR = 901) 
     878901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_rdgrft in reference namelist', lwp ) 
     879      ! 
     880      REWIND( numnam_ice_cfg )              ! Namelist namice_rdgrft in configuration namelist : Ice mechanical ice redistribution 
     881      READ  ( numnam_ice_cfg, namice_rdgrft, IOSTAT = ios, ERR = 902 ) 
     882902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_rdgrft in configuration namelist', lwp ) 
     883      IF(lwm) WRITE ( numoni, namice_rdgrft ) 
    894884      ! 
    895885      IF (lwp) THEN                          ! control print 
    896886         WRITE(numout,*) 
    897          WRITE(numout,*) 'ice_rdgrft_init : ice parameters for mechanical ice redistribution ' 
     887         WRITE(numout,*) 'ice_rdgrft_init : ice parameters for ridging/rafting ' 
    898888         WRITE(numout,*) '~~~~~~~~~~~~~~~' 
    899          WRITE(numout,*) '   Namelist namiceitdme' 
    900          WRITE(numout,*) '      Fraction of shear energy contributing to ridging        rn_cs       = ', rn_cs  
    901          WRITE(numout,*) '      Switch for part. function (0) linear (1) exponential    nn_partfun  = ', nn_partfun 
    902          WRITE(numout,*) '      Fraction of total ice coverage contributing to ridging  rn_gstar    = ', rn_gstar 
    903          WRITE(numout,*) '      Equivalent to G* for an exponential part function       rn_astar    = ', rn_astar 
    904          WRITE(numout,*) '      Ridging of ice sheets or not                            ln_ridging  = ', ln_ridging 
    905          WRITE(numout,*) '      Quantity playing a role in max ridged ice thickness     rn_hstar    = ', rn_hstar 
    906          WRITE(numout,*) '      Initial porosity of ridges                              rn_por_rdg  = ', rn_por_rdg 
    907          WRITE(numout,*) '      Fraction of snow volume conserved during ridging        rn_fsnowrdg = ', rn_fsnowrdg  
    908          WRITE(numout,*) '      Fraction of pond volume conserved during ridging        rn_fpondrdg = ', rn_fpondrdg  
    909          WRITE(numout,*) '      Rafting of ice sheets or not                            ln_rafting  = ', ln_rafting 
    910          WRITE(numout,*) '      Parmeter thickness (threshold between ridge-raft)       rn_hraft    = ', rn_hraft 
    911          WRITE(numout,*) '      Rafting hyperbolic tangent coefficient                  rn_craft    = ', rn_craft   
    912          WRITE(numout,*) '      Fraction of snow volume conserved during ridging        rn_fsnowrft = ', rn_fsnowrft  
    913          WRITE(numout,*) '      Fraction of pond volume conserved during rafting        rn_fpondrft = ', rn_fpondrft  
     889         WRITE(numout,*) '   Namelist namice_rdgrft' 
     890         WRITE(numout,*) '      ice strength parameterization Hibler (1979)              ln_str_Hib   = ', ln_str_Hib  
     891         WRITE(numout,*) '            1st bulk-rheology parameter                        rn_pstar     = ', rn_pstar 
     892         WRITE(numout,*) '            2nd bulk-rhelogy parameter                         rn_crhg      = ', rn_crhg 
     893         WRITE(numout,*) '      ice strength parameterization Rothrock (1975)            ln_str_Rot   = ', ln_str_Rot  
     894         WRITE(numout,*) '            Ratio of ridging work to PotEner change in ridging rn_perdg     = ', rn_perdg  
     895         WRITE(numout,*) '      Fraction of shear energy contributing to ridging         rn_cs        = ', rn_cs  
     896         WRITE(numout,*) '      linear ridging participation function                    ln_partf_lin = ', ln_partf_lin 
     897         WRITE(numout,*) '            Fraction of ice coverage contributing to ridging   rn_gstar     = ', rn_gstar 
     898         WRITE(numout,*) '      Exponential ridging participation function               ln_partf_exp = ', ln_partf_exp 
     899         WRITE(numout,*) '            Equivalent to G* for an exponential function       rn_astar     = ', rn_astar 
     900         WRITE(numout,*) '      Ridging of ice sheets or not                             ln_ridging   = ', ln_ridging 
     901         WRITE(numout,*) '            max ridged ice thickness                           rn_hstar     = ', rn_hstar 
     902         WRITE(numout,*) '            Initial porosity of ridges                         rn_porordg   = ', rn_porordg 
     903         WRITE(numout,*) '            Fraction of snow volume conserved during ridging   rn_fsnwrdg   = ', rn_fsnwrdg  
     904         WRITE(numout,*) '            Fraction of pond volume conserved during ridging   rn_fpndrdg   = ', rn_fpndrdg  
     905         WRITE(numout,*) '      Rafting of ice sheets or not                             ln_rafting   = ', ln_rafting 
     906         WRITE(numout,*) '            Parmeter thickness (threshold between ridge-raft)  rn_hraft     = ', rn_hraft 
     907         WRITE(numout,*) '            Rafting hyperbolic tangent coefficient             rn_craft     = ', rn_craft   
     908         WRITE(numout,*) '            Fraction of snow volume conserved during rafting   rn_fsnwrft   = ', rn_fsnwrft  
     909         WRITE(numout,*) '            Fraction of pond volume conserved during rafting   rn_fpndrft   = ', rn_fpndrft  
    914910      ENDIF 
    915911      ! 
    916    END SUBROUTINE ice_rdgrft_init 
     912      IF ( ( ln_str_Hib .AND. ln_str_Rot ) .OR. ( .NOT.ln_str_Hib .AND. .NOT.ln_str_Rot ) ) THEN 
     913         CALL ctl_stop( 'ice_rdgrft_init: choose one and only one formulation for ice strength (ln_str_Hib or ln_str_Rot)' ) 
     914      ENDIF 
     915      ! 
     916      IF ( ( ln_partf_lin .AND. ln_partf_exp ) .OR. ( .NOT.ln_partf_lin .AND. .NOT.ln_partf_exp ) ) THEN 
     917         CALL ctl_stop( 'ice_rdgrft_init: choose one and only one participation function (ln_partf_lin or ln_partf_exp)' ) 
     918      ENDIF 
     919      ! 
     920  END SUBROUTINE ice_rdgrft_init 
    917921 
    918922#else 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icerhg.F90

    r8491 r8512  
    3131   PRIVATE 
    3232 
    33    PUBLIC   ice_rhg        ! routine called by icestp.F90 
    34    PUBLIC   ice_rhg_init   ! routine called by icestp.F90 
    35  
     33   PUBLIC   ice_rhg        ! called by icestp.F90 
     34   PUBLIC   ice_rhg_init   ! called by icestp.F90 
     35    
    3636   !! * Substitutions 
    3737#  include "vectopt_loop_substitute.h90" 
     
    6363      IF( kt == nit000 .AND. lwp ) THEN 
    6464         WRITE(numout,*) 
    65          WRITE(numout,*)'ice_rhg : sea-ice rheology' 
    66          WRITE(numout,*)'~~~~~~~~' 
     65         WRITE(numout,*)'ice_rhg: sea-ice rheology' 
     66         WRITE(numout,*)'~~~~~~~' 
    6767      ENDIF 
    6868 
     
    8282      ! Rheology (ice dynamics) 
    8383      ! -----------------------    
    84       IF( nn_limdyn /= 0 ) THEN     ! -- Ice dynamics 
     84      IF( nn_icedyn /= 0 ) THEN     ! -- Ice dynamics 
    8585         ! 
    86          CALL ice_rhg_evp( stress1_i, stress2_i, stress12_i, u_ice, v_ice, shear_i, divu_i, delta_i ) 
     86         CALL ice_rhg_evp( kt, stress1_i, stress2_i, stress12_i, u_ice, v_ice, shear_i, divu_i, delta_i ) 
    8787         ! 
    8888      ELSE                          ! -- prescribed uniform velocity 
     
    110110      !!      dynamics 
    111111      !! 
    112       !! ** Method  :  Read the namicedyn namelist and check the ice-dynamic 
     112      !! ** Method  :  Read the namice_rhg namelist and check the ice-dynamic 
    113113      !!       parameter values called at the first timestep (nit000) 
    114114      !! 
    115       !! ** input   :   Namelist namicedyn 
     115      !! ** input   :   Namelist namice_rhg 
    116116      !!------------------------------------------------------------------- 
    117117      INTEGER ::   ios   ! Local integer output status for namelist read 
    118118      !! 
    119       NAMELIST/namicedyn/ nn_limadv  , nn_limadv_ord,                                       & 
    120          &                nn_icestr  , rn_pe_rdg, rn_pstar , rn_crhg, ln_icestr_bvf     ,   & 
    121          &                rn_ishlat  , rn_cio   , rn_creepl, rn_ecc , nn_nevp, rn_relast,   & 
     119      NAMELIST/namice_rhg/  rn_ishlat  , rn_cio   , rn_creepl, rn_ecc , nn_nevp, rn_relast,   & 
    122120         &                ln_landfast, rn_gamma , rn_icebfr, rn_lfrelax 
    123121      !!------------------------------------------------------------------- 
    124122      ! 
    125       REWIND( numnam_ice_ref )         ! Namelist namicedyn in reference namelist : Ice dynamics 
    126       READ  ( numnam_ice_ref, namicedyn, IOSTAT = ios, ERR = 901) 
    127 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicedyn in reference namelist', lwp ) 
     123      REWIND( numnam_ice_ref )         ! Namelist namice_rhg in reference namelist : Ice dynamics 
     124      READ  ( numnam_ice_ref, namice_rhg, IOSTAT = ios, ERR = 901) 
     125901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_rhg in reference namelist', lwp ) 
    128126      ! 
    129       REWIND( numnam_ice_cfg )         ! Namelist namicedyn in configuration namelist : Ice dynamics 
    130       READ  ( numnam_ice_cfg, namicedyn, IOSTAT = ios, ERR = 902 ) 
    131 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicedyn in configuration namelist', lwp ) 
    132       IF(lwm) WRITE ( numoni, namicedyn ) 
     127      REWIND( numnam_ice_cfg )         ! Namelist namice_rhg in configuration namelist : Ice dynamics 
     128      READ  ( numnam_ice_cfg, namice_rhg, IOSTAT = ios, ERR = 902 ) 
     129902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_rhg in configuration namelist', lwp ) 
     130      IF(lwm) WRITE ( numoni, namice_rhg ) 
    133131      ! 
    134132      IF(lwp) THEN                     ! control print 
     
    136134         WRITE(numout,*) 'ice_rhg_init : ice parameters for ice dynamics ' 
    137135         WRITE(numout,*) '~~~~~~~~~~~~' 
    138          WRITE(numout,*) '   Namelist namicedyn' 
    139          WRITE(numout,*) '      advection scheme for ice transport (limtrp)' 
    140          WRITE(numout,*) '         type of advection scheme (-1=Prather, 0=Ulimate-Macho)   nn_limadv     = ', nn_limadv  
    141          WRITE(numout,*) '         order of the scheme for Ultimate-Macho case              nn_limadv_ord = ', nn_limadv_ord 
    142          WRITE(numout,*) '      ridging/rafting (icerdgrft)' 
    143          WRITE(numout,*) '         ice strength parameterization (0=Hibler 1=Rothrock)      nn_icestr     = ', nn_icestr  
    144          WRITE(numout,*) '         Ratio of ridging work to PotEner change in ridging       rn_pe_rdg     = ', rn_pe_rdg  
    145          WRITE(numout,*) '         1st bulk-rheology parameter                              rn_pstar      = ', rn_pstar 
    146          WRITE(numout,*) '         2nd bulk-rhelogy parameter                               rn_crhg       = ', rn_crhg 
    147          WRITE(numout,*) '         brine volume included in ice strength computation        ln_icestr_bvf = ', ln_icestr_bvf 
    148          WRITE(numout,*) '      rheology EVP (icerhg_evp)' 
     136         WRITE(numout,*) '   Namelist namice_rhg' 
     137        WRITE(numout,*) '      rheology EVP (icerhg_evp)' 
    149138         WRITE(numout,*) '         lateral boundary condition for sea ice dynamics          rn_ishlat     = ', rn_ishlat 
    150139         WRITE(numout,*) '         drag coefficient for oceanic stress                      rn_cio        = ', rn_cio 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icerhg_evp.F90

    r8500 r8512  
    5252CONTAINS 
    5353 
    54    SUBROUTINE ice_rhg_evp( stress1_i, stress2_i, stress12_i, u_ice, v_ice, shear_i, divu_i, delta_i ) 
     54   SUBROUTINE ice_rhg_evp( kt, stress1_i, stress2_i, stress12_i, u_ice, v_ice, shear_i, divu_i, delta_i ) 
    5555      !!------------------------------------------------------------------- 
    5656      !!                 ***  SUBROUTINE ice_rhg_evp  *** 
     
    107107      !!              Bouillon et al., Ocean Modelling 2013 
    108108      !!------------------------------------------------------------------- 
     109      INTEGER, INTENT(in) ::   kt      ! time step 
    109110      REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) ::   stress1_i, stress2_i, stress12_i 
    110111      REAL(wp), DIMENSION(jpi,jpj), INTENT(  out) ::   u_ice, v_ice, shear_i, divu_i, delta_i  
     
    174175      !!------------------------------------------------------------------- 
    175176 
     177      IF( kt == nit000 .AND. lwp )   WRITE(numout,*) '-- ice_rhg_evp: EVP sea-ice rheology' 
     178 
    176179#if defined key_agrif  
    177180      CALL agrif_interp_lim3( 'U', 0, nn_nevp )   ! First interpolation of coarse values 
     
    249252 
    250253      ! Ice strength 
    251       CALL ice_rdgrft_icestrength( nn_icestr ) 
     254      CALL ice_rdgrft_strength 
    252255 
    253256      ! scale factors 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icerst.F90

    r8486 r8512  
    188188      ! In case Prather scheme is used for advection, write second order moments 
    189189      ! ------------------------------------------------------------------------ 
    190       IF( nn_limadv == -1 ) THEN 
     190      IF( ln_adv_Pra ) THEN 
    191191          
    192192         DO jl = 1, jpl  
     
    461461      ! In case Prather scheme is used for advection, read second order moments 
    462462      ! ------------------------------------------------------------------------ 
    463       IF( nn_limadv == -1 ) THEN 
     463      IF( ln_adv_Pra ) THEN 
    464464 
    465465         DO jl = 1, jpl  
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90

    r8505 r8512  
    7676   PUBLIC   ice_init   ! called by sbcmod.F90 
    7777 
    78    INTEGER ::              nice_dyn   ! choice of the type of advection scheme 
    79    !                                  ! associated indices: 
    80    INTEGER, PARAMETER ::   np_dynNO   = 0   ! no ice dynamics and ice advection 
    81    INTEGER, PARAMETER ::   np_dynFULL = 1   ! full ice dynamics  (rheology + advection + ridging/rafting + correction) 
    82    INTEGER, PARAMETER ::   np_dyn     = 2   ! no ridging/rafting (rheology + advection                   + correction) 
    83    INTEGER, PARAMETER ::   np_dynPURE = 3   ! pure dynamics      (rheology + advection)  
    84  
    8578   !! * Substitutions 
    8679#  include "vectopt_loop_substitute.h90" 
     
    161154            CALL ice_adv   ( kt )          ! -- advection of ice 
    162155            CALL ice_cor   ( kt , 1 )      ! -- Corrections 
    163          CASE ( np_dynPURE )          !==  pure dynamics only ==!   (nn_limdyn= 0 or 1 ) 
     156         CASE ( np_dynPURE )          !==  pure dynamics only ==!   (nn_icedyn= 0 or 1 ) 
    164157            CALL ice_rhg   ( kt )          ! -- rheology   
    165158            CALL ice_adv   ( kt )          ! -- advection of ice 
     
    239232      ! Update surface ocean stresses (only in ice-dynamic case) otherwise the atm.-ocean stresses are used everywhere 
    240233      !    using before instantaneous surf. currents 
    241       IF( ln_limdyn )               CALL ice_update_tau( kt, ub(:,:,1), vb(:,:,1) ) 
     234      IF( ln_icedyn )               CALL ice_update_tau( kt, ub(:,:,1), vb(:,:,1) ) 
    242235!!gm   remark, the ocean-ice stress is not saved in ice diag call above .....  find a solution!!! 
    243236      ! 
     
    270263      ierr = ierr + sbc_ice_alloc    ()      ! surface forcing  
    271264      ierr = ierr + ice1D_alloc      ()      ! thermodynamics 
    272       IF( ln_limdyn )   ierr = ierr + ice_rdgrft_alloc ()      ! ridging/rafting 
     265      ierr = ierr + ice_rdgrft_alloc ()      ! ridging/rafting 
    273266      ! 
    274267      IF( lk_mpp    )   CALL mpp_sum( ierr ) 
    275268      IF( ierr /= 0 )   CALL ctl_stop('STOP', 'ice_init : unable to allocate ice arrays') 
    276269      ! 
    277       CALL ice_rhg_init                ! set ice dynamics parameters 
    278       ! 
    279270      CALL ice_itd_init                ! ice thickness distribution initialization 
     271      ! 
     272      CALL ice_rdgrft_init             ! set ice ridging/rafting parameters 
     273      ! 
     274      CALL ice_rhg_init                ! set ice rheology parameters 
     275      ! 
     276      CALL ice_adv_init                ! set ice advection parameters 
    280277      ! 
    281278      CALL ice_thd_init                ! set ice thermodynics parameters 
     
    286283      CALL lim_mp_init                 ! set melt ponds parameters 
    287284      ! END MV MP 2016 
    288  
    289       IF( ln_limdyn )   CALL ice_rdgrft_init  ! ice thickness distribution initialization for ridging/rafting 
    290285      !                                ! Initial sea-ice state 
    291286      IF( .NOT. ln_rstart ) THEN              ! start from rest: sea-ice deduced from sst 
     
    323318      !! ** Purpose :   Definition some run parameter for ice model 
    324319      !! 
    325       !! ** Method  :   Read the namicerun namelist and check the parameter 
     320      !! ** Method  :   Read the namice_run namelist and check the parameter 
    326321      !!              values called at the first timestep (nit000) 
    327322      !! 
    328       !! ** input   :   Namelist namicerun 
     323      !! ** input   :   Namelist namice_run 
    329324      !!------------------------------------------------------------------- 
    330325      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    331       NAMELIST/namicerun/ jpl, nlay_i, nlay_s, nn_monocat, rn_amax_n, rn_amax_s, cn_icerst_in, cn_icerst_indir,   & 
    332          &                cn_icerst_out, cn_icerst_outdir, ln_limthd, ln_limdyn, nn_limdyn, rn_uice, rn_vice   
     326      NAMELIST/namice_run/ jpl, nlay_i, nlay_s, nn_monocat, rn_amax_n, rn_amax_s, cn_icerst_in, cn_icerst_indir,   & 
     327         &                cn_icerst_out, cn_icerst_outdir 
    333328      !!------------------------------------------------------------------- 
    334329      ! 
    335       REWIND( numnam_ice_ref )      ! Namelist namicerun in reference namelist : Parameters for ice 
    336       READ  ( numnam_ice_ref, namicerun, IOSTAT = ios, ERR = 901) 
    337 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicerun in reference namelist', lwp ) 
    338  
    339       REWIND( numnam_ice_cfg )      ! Namelist namicerun in configuration namelist : Parameters for ice 
    340       READ  ( numnam_ice_cfg, namicerun, IOSTAT = ios, ERR = 902 ) 
    341 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicerun in configuration namelist', lwp ) 
    342       IF(lwm) WRITE ( numoni, namicerun ) 
     330      REWIND( numnam_ice_ref )      ! Namelist namice_run in reference namelist : Parameters for ice 
     331      READ  ( numnam_ice_ref, namice_run, IOSTAT = ios, ERR = 901) 
     332901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_run in reference namelist', lwp ) 
     333 
     334      REWIND( numnam_ice_cfg )      ! Namelist namice_run in configuration namelist : Parameters for ice 
     335      READ  ( numnam_ice_cfg, namice_run, IOSTAT = ios, ERR = 902 ) 
     336902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_run in configuration namelist', lwp ) 
     337      IF(lwm) WRITE ( numoni, namice_run ) 
    343338      ! 
    344339      IF(lwp) THEN                  ! control print 
     
    346341         WRITE(numout,*) 'ice_run_init : ice share parameters for dynamics/advection/thermo of sea-ice' 
    347342         WRITE(numout,*) ' ~~~~~~' 
    348          WRITE(numout,*) '   Namelist namicerun : ' 
     343         WRITE(numout,*) '   Namelist namice_run : ' 
    349344         WRITE(numout,*) '      number of ice  categories                              jpl    = ', jpl 
    350345         WRITE(numout,*) '      number of ice  layers                                  nlay_i = ', nlay_i 
     
    353348         WRITE(numout,*) '      maximum ice concentration for NH                              = ', rn_amax_n  
    354349         WRITE(numout,*) '      maximum ice concentration for SH                              = ', rn_amax_s 
    355          WRITE(numout,*) '      Ice thermodynamics (T) or not (F)                  ln_limthd  = ', ln_limthd 
    356          WRITE(numout,*) '      Ice dynamics       (T) or not (F)                  ln_limdyn  = ', ln_limdyn 
    357          WRITE(numout,*) '         associated switch                               nn_limdyn  = ', nn_limdyn 
    358          WRITE(numout,*) '            =2 all processes (default option)' 
    359          WRITE(numout,*) '            =1 advection only (no ridging/rafting)' 
    360          WRITE(numout,*) '            =0 advection only with prescribed velocity given by ' 
    361          WRITE(numout,*) '               a uniform field        (u,v)_ice = (rn_uice,rn_vice) = (', rn_uice,',', rn_vice,')' 
    362350      ENDIF 
    363351      ! 
     
    373361      ! 
    374362      IF( ln_bdy .AND. ln_limdiachk )   CALL ctl_warn('ice_run_init: online conservation check does not work with BDY') 
    375       ! 
    376       !                             ! set the choice of ice dynamics 
    377       IF( lk_c1d .OR. .NOT.ln_limdyn ) THEN 
    378          nice_dyn = np_dynNO                    !--- no dynamics 
    379       ELSE 
    380          SELECT CASE( nn_limdyn ) 
    381          CASE( 2 )                     
    382             IF( nn_monocat /= 2 ) THEN          !--- full dynamics (rheology + advection + ridging/rafting + correction) 
    383                nice_dyn = np_dynFULL 
    384             ELSE 
    385                nice_dyn = np_dyn                !--- dynamics without ridging/rafting 
    386             ENDIF 
    387          CASE( 0 , 1 )                          !--- dynamics without ridging/rafting and correction  
    388             nice_dyn = np_dynPURE 
    389          END SELECT 
    390       ENDIF 
    391       !                                         !--- simple conservative piling, comparable with LIM2 
    392       l_piling = nn_limdyn == 1 .OR. ( nn_monocat == 2  .AND.  jpl == 1 ) 
    393363      ! 
    394364      rdt_ice   = REAL(nn_fsbc) * rdt           !--- sea-ice timestep and inverse 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icethd.F90

    r8506 r8512  
    2626   USE sbc_oce , ONLY : sss_m, sst_m, e3t_m, utau, vtau, ssu_m, ssv_m, frq_m, qns_tot, qsr_tot, sprecip, ln_cpl 
    2727   USE sbc_ice , ONLY : qsr_oce, qns_oce, qemp_oce, qsr_ice, qns_ice, dqns_ice, evap_ice, qprec_ice, qevap_ice, & 
    28       &                 fr1_i0, fr2_i0, nn_limflx 
     28      &                 fr1_i0, fr2_i0 
    2929   USE ice1D          ! thermodynamic sea-ice variables 
    3030   USE icethd_dif     ! vertical diffusion 
     
    9292      IF( kt == nit000 .AND. lwp ) THEN 
    9393         WRITE(numout,*) 
    94          WRITE(numout,*)' icethd : sea-ice thermodynamics' 
    95          WRITE(numout,*)' ~~~~~~~~' 
     94         WRITE(numout,*) 'ice_thd: sea-ice thermodynamics' 
     95         WRITE(numout,*) '~~~~~~~' 
    9696      ENDIF 
    9797       
     
    104104      ! computation of friction velocity at T points 
    105105      !---------------------------------------------! 
    106       IF( ln_limdyn ) THEN 
     106      IF( ln_icedyn ) THEN 
    107107         zu_io(:,:) = u_ice(:,:) - ssu_m(:,:) 
    108108         zv_io(:,:) = v_ice(:,:) - ssv_m(:,:) 
     
    532532      !!              thermodynamics 
    533533      !! 
    534       !! ** Method  :   Read the namicethd namelist and check the ice-thermo 
     534      !! ** Method  :   Read the namice_thd namelist and check the ice-thermo 
    535535      !!              parameter values called at the first timestep (nit000) 
    536536      !! 
     
    539539      INTEGER  ::   ios   ! Local integer output status for namelist read 
    540540      !! 
    541       NAMELIST/namicethd/ rn_kappa_i, nn_ice_thcon, ln_dqnsice, rn_cdsn,                                  & 
     541      NAMELIST/namice_thd/ ln_limthd, rn_kappa_i, nn_ice_thcon, ln_dqnsice, rn_cdsn,                       & 
    542542         &                ln_limdH, rn_betas,                                                             & 
    543543         &                ln_limdA, rn_beta, rn_dmin,                                                     & 
     
    546546      !!------------------------------------------------------------------- 
    547547      ! 
    548       REWIND( numnam_ice_ref )              ! Namelist namicethd in reference namelist : Ice thermodynamics 
    549       READ  ( numnam_ice_ref, namicethd, IOSTAT = ios, ERR = 901) 
    550 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicethd in reference namelist', lwp ) 
    551  
    552       REWIND( numnam_ice_cfg )              ! Namelist namicethd in configuration namelist : Ice thermodynamics 
    553       READ  ( numnam_ice_cfg, namicethd, IOSTAT = ios, ERR = 902 ) 
    554 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicethd in configuration namelist', lwp ) 
    555       IF(lwm) WRITE ( numoni, namicethd ) 
     548      REWIND( numnam_ice_ref )              ! Namelist namice_thd in reference namelist : Ice thermodynamics 
     549      READ  ( numnam_ice_ref, namice_thd, IOSTAT = ios, ERR = 901) 
     550901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_thd in reference namelist', lwp ) 
     551 
     552      REWIND( numnam_ice_cfg )              ! Namelist namice_thd in configuration namelist : Ice thermodynamics 
     553      READ  ( numnam_ice_cfg, namice_thd, IOSTAT = ios, ERR = 902 ) 
     554902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_thd in configuration namelist', lwp ) 
     555      IF(lwm) WRITE ( numoni, namice_thd ) 
    556556      ! 
    557557      ! 
     
    559559         WRITE(numout,*) 'ice_thd_init : Ice Thermodynamics' 
    560560         WRITE(numout,*) '~~~~~~~~~~~~~' 
    561          WRITE(numout,*)'   Namelist namicethd' 
    562          WRITE(numout,*)'   -- icethd_dif --' 
    563          WRITE(numout,*)'      extinction radiation parameter in sea ice               rn_kappa_i   = ', rn_kappa_i 
    564          WRITE(numout,*)'      switch for comp. of thermal conductivity in the ice     nn_ice_thcon = ', nn_ice_thcon 
    565          WRITE(numout,*)'      change the surface non-solar flux with Tsu or not       ln_dqnsice   = ', ln_dqnsice 
    566          WRITE(numout,*)'      thermal conductivity of the snow                        rn_cdsn      = ', rn_cdsn 
    567          WRITE(numout,*)'   -- icethd_dh --' 
    568          WRITE(numout,*)'      activate ice thick change from top/bot (T) or not (F)   ln_limdH     = ', ln_limdH 
    569          WRITE(numout,*)'      coefficient for ice-lead partition of snowfall          rn_betas     = ', rn_betas 
    570          WRITE(numout,*)'   -- icethd_da --' 
    571          WRITE(numout,*)'      activate lateral melting (T) or not (F)                 ln_limdA     = ', ln_limdA 
    572          WRITE(numout,*)'      Coef. beta for lateral melting param.                   rn_beta      = ', rn_beta 
    573          WRITE(numout,*)'      Minimum floe diameter for lateral melting param.        rn_dmin      = ', rn_dmin 
    574          WRITE(numout,*)'   -- icethd_lac --' 
    575          WRITE(numout,*)'      activate ice growth in open-water (T) or not (F)        ln_limdO     = ', ln_limdO 
    576          WRITE(numout,*)'      ice thickness for lateral accretion                     rn_hnewice   = ', rn_hnewice 
    577          WRITE(numout,*)'      Frazil ice thickness as a function of wind or not       ln_frazil    = ', ln_frazil 
    578          WRITE(numout,*)'      Maximum proportion of frazil ice collecting at bottom   rn_maxfrazb  = ', rn_maxfrazb 
    579          WRITE(numout,*)'      Threshold relative drift speed for collection of frazil rn_vfrazb    = ', rn_vfrazb 
    580          WRITE(numout,*)'      Squeezing coefficient for collection of frazil          rn_Cfrazb    = ', rn_Cfrazb 
    581          WRITE(numout,*)'   -- iceitd --' 
    582          WRITE(numout,*)'      minimum ice thickness                                   rn_himin     = ', rn_himin  
    583          WRITE(numout,*)'   -- icestp --' 
    584          WRITE(numout,*)'      Multicategory heat flux formulation                     nn_limflx    = ', nn_limflx 
     561         WRITE(numout,*) '   Namelist namice_thd' 
     562         WRITE(numout,*) '      Ice thermodynamics (T) or not (F)                       ln_limthd    = ', ln_limthd 
     563         WRITE(numout,*) '   -- icethd_dif --' 
     564         WRITE(numout,*) '      extinction radiation parameter in sea ice               rn_kappa_i   = ', rn_kappa_i 
     565         WRITE(numout,*) '      switch for comp. of thermal conductivity in the ice     nn_ice_thcon = ', nn_ice_thcon 
     566         WRITE(numout,*) '      change the surface non-solar flux with Tsu or not       ln_dqnsice   = ', ln_dqnsice 
     567         WRITE(numout,*) '      thermal conductivity of the snow                        rn_cdsn      = ', rn_cdsn 
     568         WRITE(numout,*) '   -- icethd_dh --' 
     569         WRITE(numout,*) '      activate ice thick change from top/bot (T) or not (F)   ln_limdH     = ', ln_limdH 
     570         WRITE(numout,*) '      coefficient for ice-lead partition of snowfall          rn_betas     = ', rn_betas 
     571         WRITE(numout,*) '   -- icethd_da --' 
     572         WRITE(numout,*) '      activate lateral melting (T) or not (F)                 ln_limdA     = ', ln_limdA 
     573         WRITE(numout,*) '      Coef. beta for lateral melting param.                   rn_beta      = ', rn_beta 
     574         WRITE(numout,*) '      Minimum floe diameter for lateral melting param.        rn_dmin      = ', rn_dmin 
     575         WRITE(numout,*) '   -- icethd_lac --' 
     576         WRITE(numout,*) '      activate ice growth in open-water (T) or not (F)        ln_limdO     = ', ln_limdO 
     577         WRITE(numout,*) '      ice thickness for lateral accretion                     rn_hnewice   = ', rn_hnewice 
     578         WRITE(numout,*) '      Frazil ice thickness as a function of wind or not       ln_frazil    = ', ln_frazil 
     579         WRITE(numout,*) '      Maximum proportion of frazil ice collecting at bottom   rn_maxfrazb  = ', rn_maxfrazb 
     580         WRITE(numout,*) '      Threshold relative drift speed for collection of frazil rn_vfrazb    = ', rn_vfrazb 
     581         WRITE(numout,*) '      Squeezing coefficient for collection of frazil          rn_Cfrazb    = ', rn_Cfrazb 
     582         WRITE(numout,*) '   -- iceitd --' 
     583         WRITE(numout,*) '      minimum ice thickness                                   rn_himin     = ', rn_himin  
     584         WRITE(numout,*) '   -- icestp --' 
     585         WRITE(numout,*) '      Multicategory heat flux formulation                     nn_limflx    = ', nn_limflx 
    585586      ENDIF 
    586587      ! 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icethd_sal.F90

    r8498 r8512  
    107107      !! ** Purpose :   initialization of ice salinity parameters 
    108108      !! 
    109       !! ** Method  :   Read the namicesal namelist and check the parameter 
     109      !! ** Method  :   Read the namice_sal namelist and check the parameter 
    110110      !!              values called at the first timestep (nit000) 
    111111      !! 
    112       !! ** input   :   Namelist namicesal 
     112      !! ** input   :   Namelist namice_sal 
    113113      !!------------------------------------------------------------------- 
    114114      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    115115      !! 
    116       NAMELIST/namicesal/ ln_limdS , nn_icesal , rn_icesal, rn_sal_gd, rn_time_gd,   & 
     116      NAMELIST/namice_sal/ ln_limdS , nn_icesal , rn_icesal, rn_sal_gd, rn_time_gd,   & 
    117117         &                rn_sal_fl, rn_time_fl, rn_simax , rn_simin  
    118118      !!------------------------------------------------------------------- 
    119119      ! 
    120       REWIND( numnam_ice_ref )              ! Namelist namicesal in reference namelist : Ice salinity 
    121       READ  ( numnam_ice_ref, namicesal, IOSTAT = ios, ERR = 901) 
    122 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicesal in reference namelist', lwp ) 
     120      REWIND( numnam_ice_ref )              ! Namelist namice_sal in reference namelist : Ice salinity 
     121      READ  ( numnam_ice_ref, namice_sal, IOSTAT = ios, ERR = 901) 
     122901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_sal in reference namelist', lwp ) 
    123123      ! 
    124       REWIND( numnam_ice_cfg )              ! Namelist namicesal in configuration namelist : Ice salinity 
    125       READ  ( numnam_ice_cfg, namicesal, IOSTAT = ios, ERR = 902 ) 
    126 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicesal in configuration namelist', lwp ) 
    127       IF(lwm) WRITE ( numoni, namicesal ) 
     124      REWIND( numnam_ice_cfg )              ! Namelist namice_sal in configuration namelist : Ice salinity 
     125      READ  ( numnam_ice_cfg, namice_sal, IOSTAT = ios, ERR = 902 ) 
     126902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namice_sal in configuration namelist', lwp ) 
     127      IF(lwm) WRITE ( numoni, namice_sal ) 
    128128      ! 
    129129      IF(lwp) THEN                           ! control print 
     
    131131         WRITE(numout,*) 'ice_thd_sal_init : Ice parameters for salinity ' 
    132132         WRITE(numout,*) '~~~~~~~~~~~~~~~~' 
    133          WRITE(numout,*) '   activate gravity drainage and flushing (T) or not (F)   ln_limdS   = ', ln_limdS 
    134          WRITE(numout,*) '   switch for salinity                                     nn_icesal  = ', nn_icesal 
    135          WRITE(numout,*) '   bulk salinity value if nn_icesal = 1                    rn_icesal  = ', rn_icesal 
    136          WRITE(numout,*) '   restoring salinity for gravity drainage                 rn_sal_gd  = ', rn_sal_gd 
    137          WRITE(numout,*) '   restoring time for for gravity drainage                 rn_time_gd = ', rn_time_gd 
    138          WRITE(numout,*) '   restoring salinity for flushing                         rn_sal_fl  = ', rn_sal_fl 
    139          WRITE(numout,*) '   restoring time for flushing                             rn_time_fl = ', rn_time_fl 
    140          WRITE(numout,*) '   Maximum tolerated ice salinity                          rn_simax   = ', rn_simax 
    141          WRITE(numout,*) '   Minimum tolerated ice salinity                          rn_simin   = ', rn_simin 
     133         WRITE(numout,*) '   Namelist namice_sal' 
     134         WRITE(numout,*) '      activate gravity drainage and flushing (T) or not (F)   ln_limdS   = ', ln_limdS 
     135         WRITE(numout,*) '      switch for salinity                                     nn_icesal  = ', nn_icesal 
     136         WRITE(numout,*) '      bulk salinity value if nn_icesal = 1                    rn_icesal  = ', rn_icesal 
     137         WRITE(numout,*) '      restoring salinity for gravity drainage                 rn_sal_gd  = ', rn_sal_gd 
     138         WRITE(numout,*) '      restoring time for for gravity drainage                 rn_time_gd = ', rn_time_gd 
     139         WRITE(numout,*) '      restoring salinity for flushing                         rn_sal_fl  = ', rn_sal_fl 
     140         WRITE(numout,*) '      restoring time for flushing                             rn_time_fl = ', rn_time_fl 
     141         WRITE(numout,*) '      Maximum tolerated ice salinity                          rn_simax   = ', rn_simax 
     142         WRITE(numout,*) '      Minimum tolerated ice salinity                          rn_simin   = ', rn_simin 
    142143      ENDIF 
    143144      ! 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceupdate.F90

    r8498 r8512  
    116116      IF( kt == nit000 .AND. lwp ) THEN 
    117117         WRITE(numout,*) 
    118          WRITE(numout,*)'ice_update_flx' 
     118         WRITE(numout,*)'ice_update_flx: update fluxes (mass, salt and heat) at the ice-ocean interface' 
    119119         WRITE(numout,*)'~~~~~~~~~~~~~~' 
    120120      ENDIF 
     
    255255      IF( kt == nit000 .AND. lwp ) THEN 
    256256         WRITE(numout,*) 
    257          WRITE(numout,*)'ice_update_tau' 
     257         WRITE(numout,*)'ice_update_tau: update stress at the ice-ocean interface' 
    258258         WRITE(numout,*)'~~~~~~~~~~~~~~' 
    259259      ENDIF 
     
    314314      ! 
    315315      IF(lwp) WRITE(numout,*) 
    316       IF(lwp) WRITE(numout,*) 'ice_update_init :   sea-ice   ????' 
    317       IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~   ' 
     316      IF(lwp) WRITE(numout,*) 'ice_update_init: ???? ' 
     317      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~' 
    318318 
    319319      !                                      ! allocate ice_update array 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90

    r8376 r8512  
    6868   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   emp_oce        !: evap - precip over ocean                 [kg/m2/s] 
    6969   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   wndm_ice       !: wind speed module at T-point                 [m/s] 
    70    INTEGER , PUBLIC                                      ::   nn_limflx      !: LIM3 Multi-category heat flux formulation 
    71    !                                                                            ! =-1  Use of per-category fluxes 
    72    !                                                                            ! = 0  Average per-category fluxes 
    73    !                                                                            ! = 1  Average then redistribute per-category fluxes 
    74    !                                                                            ! = 2  Redistribute a single flux over categories 
    7570#endif 
    7671 
Note: See TracChangeset for help on using the changeset viewer.