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 8738 for branches/UKMO/dev_r8183_ICEMODEL_svn_removed/NEMOGCM/NEMO/LIM_SRC_3/ice.F90 – NEMO

Ignore:
Timestamp:
2017-11-17T15:40:12+01:00 (6 years ago)
Author:
dancopsey
Message:

Merged in main ICEMODEL branch (branches/2017/dev_r8183_ICEMODEL) up to revision 8588

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r8183_ICEMODEL_svn_removed/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r8733 r8738  
    11MODULE ice 
    22   !!====================================================================== 
    3    !!                        ***  MODULE ice  *** 
    4    !! LIM-3 Sea Ice physics:  diagnostics variables of ice defined in memory 
    5    !!===================================================================== 
     3   !!                        ***  MODULE  ice  *** 
     4   !!   sea-ice:  ice variables defined in memory 
     5   !!====================================================================== 
    66   !! History :  3.0  ! 2008-03  (M. Vancoppenolle) original code LIM-3 
    77   !!            4.0  ! 2011-02  (G. Madec) dynamical allocation 
     
    99#if defined key_lim3 
    1010   !!---------------------------------------------------------------------- 
    11    !!   'key_lim3'                                      LIM-3 sea-ice model 
     11   !!   'key_lim3'                                       ESIM sea-ice model 
    1212   !!---------------------------------------------------------------------- 
    1313   USE in_out_manager ! I/O manager 
     
    1717   PRIVATE 
    1818 
    19    PUBLIC    ice_alloc  !  Called in sbc_lim_init 
     19   PUBLIC    ice_alloc  ! called by icestp.F90 
    2020 
    2121   !!====================================================================== 
     
    6363   !!   meaningful and/or used in ice thermodynamics                      | 
    6464   !!                                                                     | 
    65    !! Routines in limvar.F90 perform conversions                          | 
    66    !!  - lim_var_glo2eqv  : from global to equivalent variables           | 
    67    !!  - lim_var_eqv2glo  : from equivalent to global variables           | 
     65   !! Routines in icevar.F90 perform conversions                          | 
     66   !!  - ice_var_glo2eqv  : from global to equivalent variables           | 
     67   !!  - ice_var_eqv2glo  : from equivalent to global variables           | 
    6868   !!                                                                     | 
    6969   !! For various purposes, the sea ice state variables have sometimes    | 
    7070   !! to be aggregated over all ice thickness categories. This operation  | 
    7171   !! is done in :                                                        | 
    72    !!  - lim_var_agg                                                      | 
     72   !!  - ice_var_agg                                                      | 
    7373   !!                                                                     | 
    7474   !! in icestp.F90, the routines that compute the changes in the ice     | 
    7575   !! state variables are called                                          | 
    76    !! - lim_dyn : ice dynamics                                            | 
    77    !! - lim_trp : ice transport                                           | 
    78    !! - lim_itd_me : mechanical redistribution (ridging and rafting)      | 
    79    !! - lim_thd : ice halo-thermodynamics                                 | 
    80    !! - lim_itd_th : thermodynamic changes in ice thickness distribution  | 
    81    !!                and creation of new ice                              | 
     76   !! - ice_rhg : ice dynamics                                            | 
     77   !! - ice_adv : ice advection                                           | 
     78   !! - ice_rdgrft : ice ridging and rafting                              | 
     79   !! - ice_thd : ice halo-thermodynamics and creation of new ice         | 
     80   !! - ice_itd : thermodynamic changes in ice thickness distribution     | 
    8281   !!                                                                     | 
    8382   !! See the associated routines for more information                    | 
     
    107106   !! v_i         |      -      |    Ice volume per unit area     | m     | 
    108107   !! v_s         |      -      |    Snow volume per unit area    | m     | 
    109    !! smv_i       |      -      |    Sea ice salt content         | ppt.m | 
    110    !! oa_i        !      -      !    Sea ice areal age content    | day   | 
     108   !! sv_i        |      -      |    Sea ice salt content         | ppt.m | 
     109   !! oa_i        !      -      !    Sea ice areal age content    |    | 
    111110   !! e_i         !      -      !    Ice enthalpy                 | J/m2  |  
    112    !!      -      ! q_i_1d      !    Ice enthalpy per unit vol.   | J/m3  |  
     111   !!      -      ! e_i_1d      !    Ice enthalpy per unit vol.   | J/m3  |  
    113112   !! e_s         !      -      !    Snow enthalpy                | J/m2  |  
    114    !!      -      ! q_s_1d      !    Snow enthalpy per unit vol.  | J/m3  |  
     113   !!      -      ! e_s_1d      !    Snow enthalpy per unit vol.  | J/m3  |  
    115114   !!                                                                     | 
    116115   !!-------------|-------------|---------------------------------|-------| 
     
    119118   !!-------------|-------------|---------------------------------|-------| 
    120119   !!                                                                     | 
    121    !! ht_i        | ht_i_1d     |    Ice thickness                | m     | 
    122    !! ht_s        ! ht_s_1d     |    Snow depth                   | m     | 
    123    !! sm_i        ! sm_i_1d     |    Sea ice bulk salinity        ! ppt   | 
    124    !! s_i         ! s_i_1d      |    Sea ice salinity profile     ! ppt   | 
    125    !! o_i         !      -      |    Sea ice Age                  ! days  | 
     120   !! h_i         | h_i_1d      |    Ice thickness                | m     | 
     121   !! h_s         ! h_s_1d      |    Snow depth                   | m     | 
     122   !! s_i         ! s_i_1d      |    Sea ice bulk salinity        ! ppt   | 
     123   !! sz_i        ! sz_i_1d     |    Sea ice salinity profile     ! ppt   | 
     124   !! o_i         !      -      |    Sea ice Age                  ! s     | 
    126125   !! t_i         ! t_i_1d      |    Sea ice temperature          ! K     | 
    127126   !! t_s         ! t_s_1d      |    Snow temperature             ! K     | 
     
    144143   !! vt_i        |      -      |    Total ice vol. per unit area | m     | 
    145144   !! vt_s        |      -      |    Total snow vol. per unit ar. | m     | 
    146    !! smt_i       |      -      |    Mean sea ice salinity        | ppt   | 
     145   !! sm_i        |      -      |    Mean sea ice salinity        | ppt   | 
    147146   !! tm_i        |      -      |    Mean sea ice temperature     | K     | 
    148147   !! et_i        !      -      !    Total ice enthalpy           | J/m2  |  
     
    151150   !!===================================================================== 
    152151 
    153    LOGICAL, PUBLIC ::   con_i = .false.   ! switch for conservation test 
    154  
    155    !!-------------------------------------------------------------------------- 
     152   !!---------------------------------------------------------------------- 
    156153   !! * Share Module variables 
    157    !!-------------------------------------------------------------------------- 
    158    !                                     !!** ice-generic parameters namelist (namicerun) ** 
     154   !!---------------------------------------------------------------------- 
     155   !                                     !!** ice-generic parameters namelist (nampar) ** 
    159156   INTEGER           , PUBLIC ::   jpl             !: number of ice  categories  
    160157   INTEGER           , PUBLIC ::   nlay_i          !: number of ice  layers  
    161158   INTEGER           , PUBLIC ::   nlay_s          !: number of snow layers  
     159   INTEGER           , PUBLIC ::   nn_monocat      !: virtual ITD mono-category parameterizations (1-4) or not (0) 
     160   LOGICAL           , PUBLIC ::   ln_icedyn       !: flag for ice dynamics (T) or not (F) 
     161   LOGICAL           , PUBLIC ::   ln_icethd       !: flag for ice thermo   (T) or not (F) 
    162162   REAL(wp)          , PUBLIC ::   rn_amax_n       !: maximum ice concentration Northern hemisphere 
    163163   REAL(wp)          , PUBLIC ::   rn_amax_s       !: maximum ice concentration Southern hemisphere 
     
    166166   CHARACTER(len=256), PUBLIC ::   cn_icerst_indir !: ice restart input directory 
    167167   CHARACTER(len=256), PUBLIC ::   cn_icerst_outdir!: ice restart output directory 
    168    LOGICAL           , PUBLIC ::   ln_limthd       !: flag for ice thermo (T) or not (F) 
    169    LOGICAL           , PUBLIC ::   ln_limdyn       !: flag for ice dynamics (T) or not (F) 
    170    INTEGER           , PUBLIC ::   nn_limdyn       !: flag for ice dynamics 
    171    REAL(wp)          , PUBLIC ::   rn_uice         !: prescribed u-vel (case nn_limdyn=0) 
    172    REAL(wp)          , PUBLIC ::   rn_vice         !: prescribed v-vel (case nn_limdyn=0) 
     168 
     169   !                                     !!** ice-itd namelist (namitd) ** 
     170   REAL(wp), PUBLIC ::   rn_himin         !: minimum ice thickness 
    173171    
    174    !                                     !!** ice-diagnostics namelist (namicediag) ** 
    175    LOGICAL , PUBLIC ::   ln_limdiachk     !: flag for ice diag (T) or not (F) 
    176    LOGICAL , PUBLIC ::   ln_limdiahsb     !: flag for ice diag (T) or not (F) 
    177    LOGICAL , PUBLIC ::   ln_limctl        !: flag for sea-ice points output (T) or not (F) 
    178    INTEGER , PUBLIC ::   iiceprt          !: debug i-point 
    179    INTEGER , PUBLIC ::   jiceprt          !: debug j-point 
    180  
    181    !                                     !!** ice-init namelist (namiceini) ** 
    182                                           ! -- limistate -- ! 
    183    LOGICAL , PUBLIC ::   ln_limini        ! initialization or not 
    184    LOGICAL , PUBLIC ::   ln_limini_file   ! Ice initialization state from 2D netcdf file 
    185    REAL(wp), PUBLIC ::   rn_thres_sst     ! threshold water temperature for initial sea ice 
    186    REAL(wp), PUBLIC ::   rn_hts_ini_n     ! initial snow thickness in the north 
    187    REAL(wp), PUBLIC ::   rn_hts_ini_s     ! initial snow thickness in the south 
    188    REAL(wp), PUBLIC ::   rn_hti_ini_n     ! initial ice thickness in the north 
    189    REAL(wp), PUBLIC ::   rn_hti_ini_s     ! initial ice thickness in the south 
    190    REAL(wp), PUBLIC ::   rn_ati_ini_n     ! initial leads area in the north 
    191    REAL(wp), PUBLIC ::   rn_ati_ini_s     ! initial leads area in the south 
    192    REAL(wp), PUBLIC ::   rn_smi_ini_n     ! initial salinity  
    193    REAL(wp), PUBLIC ::   rn_smi_ini_s     ! initial salinity 
    194    REAL(wp), PUBLIC ::   rn_tmi_ini_n     ! initial temperature 
    195    REAL(wp), PUBLIC ::   rn_tmi_ini_s     ! initial temperature 
    196     
    197    !                                     !!** ice-thickness distribution namelist (namiceitd) ** 
    198    INTEGER , PUBLIC ::   nn_catbnd        !: categories distribution following: tanh function (1), or h^(-alpha) function (2) 
    199    REAL(wp), PUBLIC ::   rn_himean        !: mean thickness of the domain (used to compute the distribution, nn_itdshp = 2 only) 
    200  
    201    !                                     !!** ice-dynamics namelist (namicedyn) ** 
    202                                           ! -- limtrp & limadv -- ! 
    203    INTEGER , PUBLIC ::   nn_limadv        !: choose the advection scheme (-1=Prather ; 0=Ultimate-Macho) 
    204    INTEGER , PUBLIC ::   nn_limadv_ord    !: choose the order of the advection scheme (if Ultimate-Macho)    
    205                                           ! -- limitd_me -- ! 
    206    INTEGER , PUBLIC ::   nn_icestr        !: ice strength parameterization (0=Hibler79 1=Rothrock75) 
    207    REAL(wp), PUBLIC ::   rn_pe_rdg        !: ridging work divided by pot. energy change in ridging, nn_icestr = 1 
    208    REAL(wp), PUBLIC ::   rn_pstar         !: determines ice strength, Hibler JPO79 
    209    REAL(wp), PUBLIC ::   rn_crhg          !: determines changes in ice strength 
    210    LOGICAL , PUBLIC ::   ln_icestr_bvf    !: use brine volume to diminish ice strength 
    211                                           ! -- limdyn & limrhg -- ! 
    212    REAL(wp), PUBLIC ::   rn_cio           !: drag coefficient for oceanic stress 
     172   !                                     !!** ice-dynamics namelist (namdyn) ** 
     173   REAL(wp), PUBLIC ::   rn_ishlat        !: lateral boundary condition for sea-ice 
     174   LOGICAL , PUBLIC ::   ln_landfast      !: landfast ice parameterization (T or F)  
     175   REAL(wp), PUBLIC ::   rn_gamma         !:    fraction of ocean depth that ice must reach to initiate landfast ice 
     176   REAL(wp), PUBLIC ::   rn_icebfr        !:    maximum bottom stress per unit area of contact (landfast ice)  
     177   REAL(wp), PUBLIC ::   rn_lfrelax       !:    relaxation time scale (s-1) to reach static friction (landfast ice)  
     178   ! 
     179   !                                     !!** ice-rheology namelist (namrhg) ** 
    213180   REAL(wp), PUBLIC ::   rn_creepl        !: creep limit : has to be under 1.0e-9 
    214181   REAL(wp), PUBLIC ::   rn_ecc           !: eccentricity of the elliptical yield curve 
    215182   INTEGER , PUBLIC ::   nn_nevp          !: number of iterations for subcycling 
    216183   REAL(wp), PUBLIC ::   rn_relast        !: ratio => telast/rdt_ice (1/3 or 1/9 depending on nb of subcycling nevp)  
    217    LOGICAL , PUBLIC ::   ln_landfast      !: landfast ice parameterization (T or F)  
    218    REAL(wp), PUBLIC ::   rn_gamma         !: fraction of ocean depth that ice must reach to initiate landfast ice 
    219    REAL(wp), PUBLIC ::   rn_icebfr        !: maximum bottom stress per unit area of contact (landfast ice)  
    220    REAL(wp), PUBLIC ::   rn_lfrelax       !: relaxation time scale (s-1) to reach static friction (landfast ice)  
    221  
    222    !                                     !!** ice-diffusion namelist (namicehdf) ** 
    223    INTEGER , PUBLIC ::   nn_ahi0          !: sea-ice hor. eddy diffusivity coeff. (3 ways of calculation) 
    224    REAL(wp), PUBLIC ::   rn_ahi0_ref      !: sea-ice hor. eddy diffusivity coeff. (m2/s) 
    225  
    226    !                                     !!** ice-thermodynamics namelist (namicethd) ** 
    227                                           ! -- limthd_dif -- ! 
    228    REAL(wp), PUBLIC ::   rn_kappa_i       !: coef. for the extinction of radiation Grenfell et al. (2006) [1/m] 
    229    REAL(wp), PUBLIC ::   nn_conv_dif      !: maximal number of iterations for heat diffusion 
    230    REAL(wp), PUBLIC ::   rn_terr_dif      !: maximal tolerated error (C) for heat diffusion 
    231    INTEGER , PUBLIC ::   nn_ice_thcon     !: thermal conductivity: =0 Untersteiner (1964) ; =1 Pringle et al (2007) 
    232    LOGICAL , PUBLIC ::   ln_it_qnsice     !: iterate surface flux with changing surface temperature or not (F) 
    233    INTEGER , PUBLIC ::   nn_monocat       !: virtual ITD mono-category parameterizations (1) or not (0) 
    234    REAL(wp), PUBLIC ::   rn_cdsn          !: thermal conductivity of the snow [W/m/K] 
    235                                           ! -- limthd_dh -- ! 
    236    LOGICAL , PUBLIC ::   ln_limdH         !: activate ice thickness change from growing/melting (T) or not (F) 
    237    REAL(wp), PUBLIC ::   rn_betas         !: coef. for partitioning of snowfall between leads and sea ice 
    238                                           ! -- limthd_da -- ! 
    239    LOGICAL , PUBLIC ::   ln_limdA         !: activate lateral melting param. (T) or not (F) 
    240    REAL(wp), PUBLIC ::   rn_beta          !: coef. beta for lateral melting param. 
    241    REAL(wp), PUBLIC ::   rn_dmin          !: minimum floe diameter for lateral melting param. 
    242                                           ! -- limthd_lac -- ! 
    243    LOGICAL , PUBLIC ::   ln_limdO         !: activate ice growth in open-water (T) or not (F) 
    244    REAL(wp), PUBLIC ::   rn_hnewice       !: thickness for new ice formation (m) 
    245    LOGICAL , PUBLIC ::   ln_frazil        !: use of frazil ice collection as function of wind (T) or not (F) 
    246    REAL(wp), PUBLIC ::   rn_maxfrazb      !: maximum portion of frazil ice collecting at the ice bottom 
    247    REAL(wp), PUBLIC ::   rn_vfrazb        !: threshold drift speed for collection of bottom frazil ice 
    248    REAL(wp), PUBLIC ::   rn_Cfrazb        !: squeezing coefficient for collection of bottom frazil ice 
    249                                           ! -- limitd_th -- ! 
    250    REAL(wp), PUBLIC ::   rn_himin         !: minimum ice thickness 
    251  
    252    !                                     !!** ice-salinity namelist (namicesal) ** 
    253    LOGICAL , PUBLIC ::   ln_limdS         !: activate gravity drainage and flushing (T) or not (F) 
     184   ! 
     185   !                                     !!** ice-surface forcing namelist (namforcing) ** 
     186                                          ! -- icethd_dh -- ! 
     187   REAL(wp), PUBLIC ::   rn_blow_s        !: coef. for partitioning of snowfall between leads and sea ice 
     188                                          ! -- icethd -- ! 
     189   REAL(wp), PUBLIC ::   rn_cio           !: drag coefficient for oceanic stress 
     190   INTEGER , PUBLIC ::   nn_iceflx        !: Redistribute heat flux over ice categories 
     191   !                                      !   =-1  Do nothing (needs N(cat) fluxes) 
     192   !                                      !   = 0  Average N(cat) fluxes then apply the average over the N(cat) ice  
     193   !                                      !   = 1  Average N(cat) fluxes then redistribute over the N(cat) ice 
     194   !                                      !                                   using T-ice and albedo sensitivity 
     195   !                                      !   = 2  Redistribute a single flux over categories 
     196 
     197   !                                     !!** ice-salinity namelist (namthd_sal) ** 
    254198   INTEGER , PUBLIC ::   nn_icesal        !: salinity configuration used in the model 
    255199   !                                      ! 1 - constant salinity in both space and time 
     
    257201   !                                      ! 3 - salinity profile, constant in time 
    258202   REAL(wp), PUBLIC ::   rn_icesal        !: bulk salinity (ppt) in case of constant salinity 
    259    REAL(wp), PUBLIC ::   rn_sal_gd        !: restoring salinity for gravity drainage [PSU] 
    260    REAL(wp), PUBLIC ::   rn_time_gd       !: restoring time constant for gravity drainage (= 20 days) [s] 
    261    REAL(wp), PUBLIC ::   rn_sal_fl        !: restoring salinity for flushing [PSU] 
    262    REAL(wp), PUBLIC ::   rn_time_fl       !: restoring time constant for gravity drainage (= 10 days) [s] 
    263203   REAL(wp), PUBLIC ::   rn_simax         !: maximum ice salinity [PSU] 
    264204   REAL(wp), PUBLIC ::   rn_simin         !: minimum ice salinity [PSU] 
    265205 
    266    !                                     !!** ice-mechanical redistribution namelist (namiceitdme) 
    267    REAL(wp), PUBLIC ::   rn_cs            !: fraction of shearing energy contributing to ridging             
    268    INTEGER , PUBLIC ::   nn_partfun       !: participation function: =0 Thorndike et al. (1975), =1 Lipscomb et al. (2007) 
    269    REAL(wp), PUBLIC ::   rn_gstar         !: fractional area of young ice contributing to ridging 
    270    REAL(wp), PUBLIC ::   rn_astar         !: equivalent of G* for an exponential participation function 
    271    LOGICAL , PUBLIC ::   ln_ridging       !: ridging of ice or not                         
    272    REAL(wp), PUBLIC ::   rn_hstar         !: thickness that determines the maximal thickness of ridged ice 
    273    REAL(wp), PUBLIC ::   rn_por_rdg       !: initial porosity of ridges (0.3 regular value) 
    274    REAL(wp), PUBLIC ::   rn_fsnowrdg      !: fractional snow loss to the ocean during ridging 
    275    LOGICAL , PUBLIC ::   ln_rafting       !: rafting of ice or not                         
    276    REAL(wp), PUBLIC ::   rn_hraft         !: threshold thickness (m) for rafting / ridging  
    277    REAL(wp), PUBLIC ::   rn_craft         !: coefficient for smoothness of the hyperbolic tangent in rafting 
    278    REAL(wp), PUBLIC ::   rn_fsnowrft      !: fractional snow loss to the ocean during ridging 
     206   ! MV MP 2016 
     207   !                                     !!** melt pond namelist (nammp) 
     208   LOGICAL , PUBLIC ::   ln_pnd           !: activate ponds or not 
     209   LOGICAL , PUBLIC ::   ln_pnd_rad       !: ponds radiatively active or not 
     210   LOGICAL , PUBLIC ::   ln_pnd_fw        !: ponds active wrt meltwater or not 
     211   INTEGER , PUBLIC ::   nn_pnd_scheme    !: type of melt pond scheme:   =0 prescribed, =1 empirical, =2 topographic 
     212   REAL(wp), PUBLIC ::   rn_apnd          !: prescribed pond fraction (0<rn_apnd<1), only if nn_pnd_scheme = 0 
     213   REAL(wp), PUBLIC ::   rn_hpnd          !: prescribed pond depth    (0<rn_hpnd<1), only if nn_pnd_scheme = 0 
     214   ! END MV MP 2016 
     215   !                                     !!** ice-diagnostics namelist (namdia) ** 
     216   LOGICAL , PUBLIC ::   ln_icediachk     !: flag for ice diag (T) or not (F) 
     217   LOGICAL , PUBLIC ::   ln_icediahsb     !: flag for ice diag (T) or not (F) 
     218   LOGICAL , PUBLIC ::   ln_icectl        !: flag for sea-ice points output (T) or not (F) 
     219   INTEGER , PUBLIC ::   iiceprt          !: debug i-point 
     220   INTEGER , PUBLIC ::   jiceprt          !: debug j-point 
    279221 
    280222   !                                     !!** some other parameters  
    281    INTEGER , PUBLIC ::   nstart           !: iteration number of the begining of the run  
    282    INTEGER , PUBLIC ::   nlast            !: iteration number of the end of the run  
    283    INTEGER , PUBLIC ::   nitrun           !: number of iteration 
    284    INTEGER , PUBLIC ::   numit            !: iteration number 
     223   INTEGER , PUBLIC ::   kt_ice           !: iteration number 
    285224   REAL(wp), PUBLIC ::   rdt_ice          !: ice time step 
    286225   REAL(wp), PUBLIC ::   r1_rdtice        !: = 1. / rdt_ice 
     
    288227   REAL(wp), PUBLIC ::   r1_nlay_s        !: 1 / nlay_s  
    289228   REAL(wp), PUBLIC ::   rswitch          !: switch for the presence of ice (1) or not (0) 
    290    REAL(wp), PUBLIC, PARAMETER ::   epsi06   = 1.e-06_wp  !: small number  
    291    REAL(wp), PUBLIC, PARAMETER ::   epsi10   = 1.e-10_wp  !: small number  
    292    REAL(wp), PUBLIC, PARAMETER ::   epsi20   = 1.e-20_wp  !: small number  
     229   REAL(wp), PUBLIC ::   rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft   !: conservation diagnostics 
     230   REAL(wp), PUBLIC, PARAMETER ::   epsi06 = 1.e-06_wp  !: small number  
     231   REAL(wp), PUBLIC, PARAMETER ::   epsi10 = 1.e-10_wp  !: small number  
     232   REAL(wp), PUBLIC, PARAMETER ::   epsi20 = 1.e-20_wp  !: small number  
     233 
    293234 
    294235   !                                     !!** define arrays 
    295    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   u_oce, v_oce !: surface ocean velocity used in ice dynamics 
    296    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ahiu , ahiv !: hor. diffusivity coeff. at U- and V-points [m2/s] 
    297    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hicol       !: ice collection thickness accreted in leads 
     236   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   u_oce,v_oce !: surface ocean velocity used in ice dynamics 
     237   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ht_i_new    !: ice collection thickness accreted in leads 
    298238   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   strength    !: ice strength 
    299239   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   stress1_i, stress2_i, stress12_i   !: 1st, 2nd & diagonal stress tensor element 
     
    303243   ! 
    304244   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   t_bo        !: Sea-Ice bottom temperature [Kelvin]      
    305    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   frld        !: Leads fraction = 1 - ice fraction 
    306    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   pfrld       !: Leads fraction at previous time   
    307    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   phicif      !: Old ice thickness 
    308245   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qlead       !: heat balance of the lead (or of the open ocean) 
    309246   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fhtur       !: net downward heat flux from the ice to the ocean 
     
    311248 
    312249   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_snw     !: snow-ocean mass exchange   [kg.m-2.s-1] 
     250   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_snw_sni !: snow ice growth component of wfx_snw [kg.m-2.s-1] 
     251   ! MV MP 2016 
     252   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_snw_sum !: surface melt component of wfx_snw [kg.m-2.s-1] 
     253   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_pnd     !: melt pond-ocean mass exchange   [kg.m-2.s-1] 
     254   ! END MV MP 2016 
    313255   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_spr     !: snow precipitation on ice  [kg.m-2.s-1] 
    314    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_sub     !: snow/ice sublimation       [kg.m-2.s-1] 
     256   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_sub     !: sublimation of snow/ice    [kg.m-2.s-1] 
     257   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_snw_sub !: snow sublimation           [kg.m-2.s-1] 
     258   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_ice_sub !: ice sublimation            [kg.m-2.s-1] 
     259 
     260   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_snw_dyn !: dynamical component of wfx_snw    [kg.m-2.s-1] 
    315261 
    316262   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_ice     !: ice-ocean mass exchange                   [kg.m-2.s-1] 
     
    325271 
    326272   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   afx_tot     !: ice concentration tendency (total)          [s-1] 
    327    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   afx_thd     !: ice concentration tendency (thermodynamics) [s-1] 
    328    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   afx_dyn     !: ice concentration tendency (dynamics)       [s-1] 
    329273 
    330274   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   sfx_bog     !: salt flux due to ice growth/melt                      [PSU/m2/s] 
     
    346290   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_dif     !: total heat flux causing Temp change in the ice   [W.m-2] 
    347291   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_snw     !: heat flux for snow melt                          [W.m-2] 
    348    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_err     !: heat flux error after heat diffusion             [W.m-2] 
    349292   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_err_dif !: heat flux remaining due to change in non-solar flux [W.m-2] 
    350293   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_err_rem !: heat flux error after heat remapping             [W.m-2] 
     
    358301 
    359302   ! heat flux associated with ice-ocean mass exchange 
    360    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_thd     !: ice-ocean heat flux from thermo processes (limthd_dh) [W.m-2] 
    361    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_dyn     !: ice-ocean heat flux from mecanical processes (limitd_me)  [W.m-2] 
     303   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_thd     !: ice-ocean heat flux from thermo processes (icethd_dh) [W.m-2] 
     304   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_dyn     !: ice-ocean heat flux from ridging                      [W.m-2] 
    362305   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hfx_res     !: residual heat flux due to correction of ice thickness [W.m-2] 
    363306 
    364307   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   rn_amax_2d     !: maximum ice concentration 2d array 
    365308   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ftr_ice        !: transmitted solar radiation under ice 
    366    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   pahu3D, pahv3D !: ice hor. eddy diffusivity coef. at U- and V-points 
    367  
    368    !!-------------------------------------------------------------------------- 
     309 
     310   !!---------------------------------------------------------------------- 
    369311   !! * Ice global state variables 
    370    !!-------------------------------------------------------------------------- 
     312   !!---------------------------------------------------------------------- 
    371313   !! Variables defined for each ice category 
    372    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ht_i      !: Ice thickness (m) 
     314   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   h_i       !: Ice thickness (m) 
    373315   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   a_i       !: Ice fractional areas (concentration) 
    374316   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   v_i       !: Ice volume per unit area (m) 
    375317   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   v_s       !: Snow volume per unit area(m) 
    376    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ht_s      !: Snow thickness (m) 
     318   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   h_s       !: Snow thickness (m) 
    377319   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   t_su      !: Sea-Ice Surface Temperature (K) 
    378    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sm_i      !: Sea-Ice Bulk salinity (ppt) 
    379    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   smv_i     !: Sea-Ice Bulk salinity times volume per area (ppt.m) 
    380    !                                                                    !  this is an extensive variable that has to be transported 
    381    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   o_i       !: Sea-Ice Age (days) 
    382    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   oa_i      !: Sea-Ice Age times ice area (days) 
     320   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   s_i       !: Sea-Ice Bulk salinity (ppt) 
     321   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sv_i     !: Sea-Ice Bulk salinity times volume per area (ppt.m) 
     322   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   o_i       !: Sea-Ice Age (s) 
     323   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   oa_i      !: Sea-Ice Age times ice area (s) 
    383324   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   bv_i      !: brine volume 
    384325 
     
    391332   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tm_i         !: mean ice temperature over all categories 
    392333   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   bvm_i        !: brine volume averaged over all categories 
    393    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   smt_i        !: mean sea ice salinity averaged over all categories [PSU] 
     334   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   sm_i         !: mean sea ice salinity averaged over all categories [PSU] 
    394335   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tm_su        !: mean surface temperature over all categories 
    395    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htm_i        !: mean ice  thickness over all categories 
    396    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htm_s        !: mean snow thickness over all categories 
     336   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hm_i         !: mean ice  thickness over all categories 
     337   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hm_s         !: mean snow thickness over all categories 
    397338   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   om_i         !: mean ice age over all categories 
    398339   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tau_icebfr   !: ice friction with bathy (landfast param activated) 
    399340 
    400    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   t_s      !: Snow temperatures [K] 
    401    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_s      !: Snow ...       
    402        
    403    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   t_i      !: ice temperatures          [K] 
    404    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_i      !: ice thermal contents    [J/m2] 
    405    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   s_i      !: ice salinities          [PSU] 
    406  
    407    !!-------------------------------------------------------------------------- 
    408    !! * Moments for advection 
    409    !!-------------------------------------------------------------------------- 
    410    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   sxopw, syopw, sxxopw, syyopw, sxyopw   !: open water in sea ice 
    411    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   sxice, syice, sxxice, syyice, sxyice   !: ice thickness  
    412    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   sxsn , sysn , sxxsn , syysn , sxysn    !: snow thickness 
    413    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   sxa  , sya  , sxxa  , syya  , sxya     !: lead fraction 
    414    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   sxc0 , syc0 , sxxc0 , syyc0 , sxyc0    !: snow thermal content 
    415    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   sxsal, sysal, sxxsal, syysal, sxysal   !: ice salinity 
    416    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   sxage, syage, sxxage, syyage, sxyage   !: ice age 
    417    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   sxe  , sye  , sxxe  , syye  , sxye     !: ice layers heat content 
    418  
    419    !!-------------------------------------------------------------------------- 
     341   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   t_s      !: Snow temperatures     [K] 
     342   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_s      !: Snow enthalpy         [J/m2] 
     343   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   t_i      !: ice temperatures      [K] 
     344   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_i      !: ice enthalpy          [J/m2] 
     345   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   sz_i     !: ice salinity          [PSU] 
     346 
     347   ! MV MP 2016 
     348   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   a_ip       !: melt pond fraction per grid cell area 
     349   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   v_ip       !: melt pond volume per grid cell area [m] 
     350   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   a_ip_frac  !: melt pond volume per ice area 
     351   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   h_ip       !: melt pond thickness [m] 
     352 
     353   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   at_ip      !: total melt pond fraction 
     354   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   vt_ip      !: total melt pond volume per unit area [m] 
     355   ! END MV MP 2016 
     356 
     357   !!---------------------------------------------------------------------- 
    420358   !! * Old values of global variables 
    421    !!-------------------------------------------------------------------------- 
    422    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   v_s_b, v_i_b               !: snow and ice volumes 
    423    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   a_i_b, smv_i_b, oa_i_b     !: 
    424    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_s_b                      !: snow heat content 
    425    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_i_b                      !: ice temperatures 
    426    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   u_ice_b, v_ice_b           !: ice velocity 
    427    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   at_i_b                     !: ice concentration (total) 
     359   !!---------------------------------------------------------------------- 
     360   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   v_s_b, v_i_b, h_s_b, h_i_b  !: snow and ice volumes/thickness 
     361   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   a_i_b, sv_i_b, oa_i_b        !: 
     362   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_s_b                         !: snow heat content 
     363   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_i_b                         !: ice temperatures 
     364   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   u_ice_b, v_ice_b              !: ice velocity 
     365   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   at_i_b                        !: ice concentration (total) 
    428366             
    429    !!-------------------------------------------------------------------------- 
     367   !!---------------------------------------------------------------------- 
    430368   !! * Ice thickness distribution variables 
    431    !!-------------------------------------------------------------------------- 
     369   !!---------------------------------------------------------------------- 
    432370   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)   ::   hi_max         !: Boundary of ice thickness categories in thickness space 
    433371   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)   ::   hi_mean        !: Mean ice thickness in catgories  
    434372   ! 
    435    !!-------------------------------------------------------------------------- 
     373   !!---------------------------------------------------------------------- 
    436374   !! * Ice diagnostics 
    437    !!-------------------------------------------------------------------------- 
     375   !!---------------------------------------------------------------------- 
    438376   ! thd refers to changes induced by thermodynamics 
    439377   ! trp   ''         ''     ''       advection (transport of ice) 
     
    443381   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_trp_ei   !: transport of ice enthalpy (W/m2) 
    444382   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_trp_es   !: transport of snw enthalpy (W/m2) 
    445    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_trp_smv  !: transport of salt content 
     383   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_trp_sv   !: transport of salt content 
    446384   ! 
    447385   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_heat     !: snw/ice heat content variation   [W/m2]  
    448    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_smvi     !: ice salt content variation   []  
     386   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_sice     !: ice salt content variation   []  
    449387   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_vice     !: ice volume variation   [m/s]  
    450388   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_vsnw     !: snw volume variation   [m/s]  
    451    ! 
    452    !!---------------------------------------------------------------------- 
    453    !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2010) 
     389 
     390   ! 
     391   !!---------------------------------------------------------------------- 
     392   !! * SIMIP extra diagnostics 
     393   !!---------------------------------------------------------------------- 
     394   ! Extra sea ice diagnostics to address the data request 
     395   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   t_si          !: Temperature at Snow-ice interface (K)  
     396   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   tm_si         !: mean temperature at the snow-ice interface (K)  
     397   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_fc_bo    !: Bottom conduction flux (W/m2) 
     398   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_fc_su    !: Surface conduction flux (W/m2) 
     399 
     400   ! 
     401   !!---------------------------------------------------------------------- 
     402   !! NEMO/ICE 4.0 , NEMO Consortium (2017) 
    454403   !! $Id$ 
    455404   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    463412      INTEGER :: ice_alloc 
    464413      ! 
    465       INTEGER :: ierr(15), ii 
     414      INTEGER :: ierr(18), ii 
    466415      !!----------------------------------------------------------------- 
    467416 
     
    471420      ! stay within Fortran's max-line length limit. 
    472421      ii = 1 
    473       ALLOCATE( u_oce   (jpi,jpj) , v_oce    (jpi,jpj) ,                                             & 
    474          &      ahiu    (jpi,jpj) , ahiv     (jpi,jpj) , hicol    (jpi,jpj) ,                        & 
     422      ALLOCATE( u_oce   (jpi,jpj) , v_oce    (jpi,jpj) , ht_i_new (jpi,jpj) ,                        & 
    475423         &      strength(jpi,jpj) , stress1_i(jpi,jpj) , stress2_i(jpi,jpj) , stress12_i(jpi,jpj) ,  & 
    476424         &      delta_i (jpi,jpj) , divu_i   (jpi,jpj) , shear_i  (jpi,jpj) , STAT=ierr(ii) ) 
    477425 
    478426      ii = ii + 1 
    479       ALLOCATE( t_bo   (jpi,jpj) , frld   (jpi,jpj) , pfrld  (jpi,jpj) , phicif (jpi,jpj) ,     & 
    480          &      wfx_snw(jpi,jpj) , wfx_ice(jpi,jpj) , wfx_sub(jpi,jpj) , wfx_lam(jpi,jpj) ,     & 
     427      ALLOCATE( t_bo   (jpi,jpj) , wfx_snw_sni(jpi,jpj) ,                                                & 
     428         &      wfx_snw(jpi,jpj) , wfx_snw_dyn(jpi,jpj) , wfx_snw_sum(jpi,jpj) , wfx_snw_sub(jpi,jpj) ,  & 
     429         &      wfx_ice(jpi,jpj) , wfx_sub    (jpi,jpj) , wfx_ice_sub(jpi,jpj) , wfx_lam    (jpi,jpj) ,  & 
     430         &      wfx_pnd(jpi,jpj) ,                                                              & 
    481431         &      wfx_bog(jpi,jpj) , wfx_dyn(jpi,jpj) , wfx_bom(jpi,jpj) , wfx_sum(jpi,jpj) ,     & 
    482432         &      wfx_res(jpi,jpj) , wfx_sni(jpi,jpj) , wfx_opw(jpi,jpj) , wfx_spr(jpi,jpj) ,     & 
    483          &      afx_tot(jpi,jpj) , afx_thd(jpi,jpj),  afx_dyn(jpi,jpj) , rn_amax_2d(jpi,jpj),   & 
     433         &      afx_tot(jpi,jpj) , rn_amax_2d(jpi,jpj),                                         & 
    484434         &      fhtur  (jpi,jpj) , qlead  (jpi,jpj) ,                                           & 
    485435         &      sfx_res(jpi,jpj) , sfx_bri(jpi,jpj) , sfx_dyn(jpi,jpj) , sfx_sub(jpi,jpj) , sfx_lam(jpi,jpj) ,  & 
    486436         &      sfx_bog(jpi,jpj) , sfx_bom(jpi,jpj) , sfx_sum(jpi,jpj) , sfx_sni(jpi,jpj) , sfx_opw(jpi,jpj) ,  & 
    487          &      hfx_res(jpi,jpj) , hfx_snw(jpi,jpj) , hfx_sub(jpi,jpj) , hfx_err(jpi,jpj) ,     &  
     437         &      hfx_res(jpi,jpj) , hfx_snw(jpi,jpj) , hfx_sub(jpi,jpj) ,     &  
    488438         &      hfx_in (jpi,jpj) , hfx_out(jpi,jpj) , fhld   (jpi,jpj) ,                        & 
    489439         &      hfx_sum(jpi,jpj) , hfx_bom(jpi,jpj) , hfx_bog(jpi,jpj) , hfx_dif(jpi,jpj) ,     & 
     
    493443      ! * Ice global state variables 
    494444      ii = ii + 1 
    495       ALLOCATE( ftr_ice(jpi,jpj,jpl) , pahu3D(jpi,jpj,jpl+1) , pahv3D(jpi,jpj,jpl+1) , & 
    496          &      ht_i   (jpi,jpj,jpl) , a_i   (jpi,jpj,jpl) , v_i   (jpi,jpj,jpl) ,     & 
    497          &      v_s    (jpi,jpj,jpl) , ht_s  (jpi,jpj,jpl) , t_su  (jpi,jpj,jpl) ,     & 
    498          &      sm_i   (jpi,jpj,jpl) , smv_i (jpi,jpj,jpl) , o_i   (jpi,jpj,jpl) ,     & 
     445      ALLOCATE( ftr_ice(jpi,jpj,jpl) ,                                                 & 
     446         &      h_i   (jpi,jpj,jpl) , a_i   (jpi,jpj,jpl) , v_i   (jpi,jpj,jpl) ,     & 
     447         &      v_s    (jpi,jpj,jpl) , h_s  (jpi,jpj,jpl) , t_su  (jpi,jpj,jpl) ,     & 
     448         &      s_i   (jpi,jpj,jpl) , sv_i (jpi,jpj,jpl) , o_i   (jpi,jpj,jpl) ,     & 
    499449         &      oa_i   (jpi,jpj,jpl) , bv_i  (jpi,jpj,jpl) ,  STAT=ierr(ii) ) 
    500450      ii = ii + 1 
     
    502452         &      vt_i (jpi,jpj) , vt_s (jpi,jpj) , at_i (jpi,jpj) , ato_i(jpi,jpj) ,     & 
    503453         &      et_i (jpi,jpj) , et_s (jpi,jpj) , tm_i (jpi,jpj) , bvm_i(jpi,jpj) ,     & 
    504          &      smt_i(jpi,jpj) , tm_su(jpi,jpj) , htm_i(jpi,jpj) , htm_s(jpi,jpj) ,     & 
     454         &      sm_i (jpi,jpj) , tm_su(jpi,jpj) , hm_i(jpi,jpj) , hm_s(jpi,jpj) ,     & 
    505455         &      om_i (jpi,jpj) , tau_icebfr(jpi,jpj)                              , STAT=ierr(ii) ) 
    506456      ii = ii + 1 
    507457      ALLOCATE( t_s(jpi,jpj,nlay_s,jpl) , e_s(jpi,jpj,nlay_s,jpl) , STAT=ierr(ii) ) 
    508458      ii = ii + 1 
    509       ALLOCATE( t_i(jpi,jpj,nlay_i,jpl) , e_i(jpi,jpj,nlay_i,jpl) , s_i(jpi,jpj,nlay_i,jpl) , STAT=ierr(ii) ) 
    510  
    511       ! * Moments for advection 
    512       ii = ii + 1 
    513       ALLOCATE( sxopw(jpi,jpj) , syopw(jpi,jpj) , sxxopw(jpi,jpj) , syyopw(jpi,jpj) , sxyopw(jpi,jpj) , STAT=ierr(ii) ) 
    514       ii = ii + 1 
    515       ALLOCATE( sxice(jpi,jpj,jpl) , syice(jpi,jpj,jpl) , sxxice(jpi,jpj,jpl) , syyice(jpi,jpj,jpl) , sxyice(jpi,jpj,jpl) ,   & 
    516          &      sxsn (jpi,jpj,jpl) , sysn (jpi,jpj,jpl) , sxxsn (jpi,jpj,jpl) , syysn (jpi,jpj,jpl) , sxysn (jpi,jpj,jpl) ,   & 
    517          &      STAT=ierr(ii) ) 
    518       ii = ii + 1 
    519       ALLOCATE( sxa  (jpi,jpj,jpl) , sya  (jpi,jpj,jpl) , sxxa  (jpi,jpj,jpl) , syya  (jpi,jpj,jpl) , sxya  (jpi,jpj,jpl) ,   & 
    520          &      sxc0 (jpi,jpj,jpl) , syc0 (jpi,jpj,jpl) , sxxc0 (jpi,jpj,jpl) , syyc0 (jpi,jpj,jpl) , sxyc0 (jpi,jpj,jpl) ,   & 
    521          &      sxsal(jpi,jpj,jpl) , sysal(jpi,jpj,jpl) , sxxsal(jpi,jpj,jpl) , syysal(jpi,jpj,jpl) , sxysal(jpi,jpj,jpl) ,   & 
    522          &      sxage(jpi,jpj,jpl) , syage(jpi,jpj,jpl) , sxxage(jpi,jpj,jpl) , syyage(jpi,jpj,jpl) , sxyage(jpi,jpj,jpl) ,   & 
    523          &      STAT=ierr(ii) ) 
    524       ii = ii + 1 
    525       ALLOCATE( sxe (jpi,jpj,nlay_i,jpl) , sye (jpi,jpj,nlay_i,jpl) , sxxe(jpi,jpj,nlay_i,jpl) ,     & 
    526          &      syye(jpi,jpj,nlay_i,jpl) , sxye(jpi,jpj,nlay_i,jpl)                            , STAT=ierr(ii) ) 
     459      ALLOCATE( t_i(jpi,jpj,nlay_i,jpl) , e_i(jpi,jpj,nlay_i,jpl) , sz_i(jpi,jpj,nlay_i,jpl) , STAT=ierr(ii) ) 
     460 
     461      ii = ii + 1 
     462      ALLOCATE( a_ip(jpi,jpj,jpl) , v_ip(jpi,jpj,jpl) , a_ip_frac(jpi,jpj,jpl) , & 
     463         &      h_ip(jpi,jpj,jpl) , STAT = ierr(ii) ) 
     464      ii = ii + 1 
     465      ALLOCATE( at_ip(jpi,jpj) , vt_ip(jpi,jpj) , STAT = ierr(ii) ) 
    527466 
    528467      ! * Old values of global variables 
    529468      ii = ii + 1 
    530       ALLOCATE( v_s_b  (jpi,jpj,jpl) , v_i_b  (jpi,jpj,jpl) , e_s_b(jpi,jpj,nlay_s,jpl) ,     & 
    531          &      a_i_b  (jpi,jpj,jpl) , smv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj,nlay_i,jpl) ,     & 
    532          &      oa_i_b (jpi,jpj,jpl)                                                    , STAT=ierr(ii) ) 
     469      ALLOCATE( v_s_b  (jpi,jpj,jpl) , v_i_b  (jpi,jpj,jpl) , h_s_b(jpi,jpj,jpl)        , h_i_b(jpi,jpj,jpl)        ,   & 
     470         &      a_i_b  (jpi,jpj,jpl) , sv_i_b(jpi,jpj,jpl) , e_i_b (jpi,jpj,nlay_i,jpl) , e_s_b (jpi,jpj,nlay_s,jpl) ,   & 
     471         &      oa_i_b (jpi,jpj,jpl)                                                     , STAT=ierr(ii) ) 
    533472      ii = ii + 1 
    534473      ALLOCATE( u_ice_b(jpi,jpj) , v_ice_b(jpi,jpj) , at_i_b(jpi,jpj) , STAT=ierr(ii) ) 
     
    541480      ii = ii + 1 
    542481      ALLOCATE( diag_trp_vi(jpi,jpj) , diag_trp_vs (jpi,jpj) , diag_trp_ei(jpi,jpj),   &  
    543          &      diag_trp_es(jpi,jpj) , diag_trp_smv(jpi,jpj) , diag_heat  (jpi,jpj),   & 
    544          &      diag_smvi  (jpi,jpj) , diag_vice   (jpi,jpj) , diag_vsnw  (jpi,jpj), STAT=ierr(ii) ) 
     482         &      diag_trp_es(jpi,jpj) , diag_trp_sv (jpi,jpj) , diag_heat  (jpi,jpj),   & 
     483         &      diag_sice  (jpi,jpj) , diag_vice   (jpi,jpj) , diag_vsnw  (jpi,jpj), STAT=ierr(ii) ) 
     484 
     485      ! * SIMIP diagnostics 
     486      ii = ii + 1 
     487      ALLOCATE( t_si (jpi,jpj,jpl)    , tm_si(jpi,jpj)        ,    &  
     488                diag_fc_bo(jpi,jpj)   , diag_fc_su(jpi,jpj)   ,    & 
     489                STAT = ierr(ii) ) 
    545490 
    546491      ice_alloc = MAXVAL( ierr(:) ) 
     
    551496#else 
    552497   !!---------------------------------------------------------------------- 
    553    !!   Default option         Empty module            NO LIM sea-ice model 
     498   !!   Default option         Empty module           NO ESIM sea-ice model 
    554499   !!---------------------------------------------------------------------- 
    555500#endif 
Note: See TracChangeset for help on using the changeset viewer.