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 8564 – NEMO

Changeset 8564


Ignore:
Timestamp:
2017-09-27T11:11:01+02:00 (7 years ago)
Author:
clem
Message:

change variable names

Location:
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r8563 r8564  
    106106   !! v_i         |      -      |    Ice volume per unit area     | m     | 
    107107   !! v_s         |      -      |    Snow volume per unit area    | m     | 
    108    !! smv_i       |      -      |    Sea ice salt content         | ppt.m | 
     108   !! sv_i       |      -      |    Sea ice salt content         | ppt.m | 
    109109   !! oa_i        !      -      !    Sea ice areal age content    | s     | 
    110110   !! e_i         !      -      !    Ice enthalpy                 | J/m2  |  
     
    118118   !!-------------|-------------|---------------------------------|-------| 
    119119   !!                                                                     | 
    120    !! h_i        | h_i_1d     |    Ice thickness                | m     | 
    121    !! h_s        ! h_s_1d     |    Snow depth                   | m     | 
    122    !! sm_i        ! sm_i_1d     |    Sea ice bulk salinity        ! ppt   | 
    123    !! s_i         ! s_i_1d      |    Sea ice salinity profile     ! ppt   | 
     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   | 
    124124   !! o_i         !      -      |    Sea ice Age                  ! s     | 
    125125   !! t_i         ! t_i_1d      |    Sea ice temperature          ! K     | 
     
    143143   !! vt_i        |      -      |    Total ice vol. per unit area | m     | 
    144144   !! vt_s        |      -      |    Total snow vol. per unit ar. | m     | 
    145    !! smt_i       |      -      |    Mean sea ice salinity        | ppt   | 
     145   !! sm_i        |      -      |    Mean sea ice salinity        | ppt   | 
    146146   !! tm_i        |      -      |    Mean sea ice temperature     | K     | 
    147147   !! et_i        !      -      !    Total ice enthalpy           | J/m2  |  
     
    312312   !!---------------------------------------------------------------------- 
    313313   !! Variables defined for each ice category 
    314    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   h_i      !: Ice thickness (m) 
     314   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   h_i       !: Ice thickness (m) 
    315315   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   a_i       !: Ice fractional areas (concentration) 
    316316   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   v_i       !: Ice volume per unit area (m) 
    317317   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   v_s       !: Snow volume per unit area(m) 
    318    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   h_s      !: Snow thickness (m) 
     318   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   h_s       !: Snow thickness (m) 
    319319   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   t_su      !: Sea-Ice Surface Temperature (K) 
    320    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sm_i      !: Sea-Ice Bulk salinity (ppt) 
    321    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   smv_i     !: Sea-Ice Bulk salinity times volume per area (ppt.m) 
     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) 
    322322   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   o_i       !: Sea-Ice Age (s) 
    323323   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   oa_i      !: Sea-Ice Age times ice area (s) 
     
    332332   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tm_i         !: mean ice temperature over all categories 
    333333   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   bvm_i        !: brine volume averaged over all categories 
    334    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] 
    335335   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tm_su        !: mean surface temperature over all categories 
    336    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htm_i        !: mean ice  thickness over all categories 
    337    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 
    338338   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   om_i         !: mean ice age over all categories 
    339339   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tau_icebfr   !: ice friction with bathy (landfast param activated) 
    340340 
    341    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   t_s      !: Snow temperatures [K] 
    342    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_s      !: Snow ...       
    343        
    344    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   t_i      !: ice temperatures          [K] 
    345    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_i      !: ice thermal contents    [J/m2] 
    346    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   s_i      !: ice salinities          [PSU] 
     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] 
    347346 
    348347   ! MV MP 2016 
     
    376375   !!---------------------------------------------------------------------- 
    377376   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   v_s_b, v_i_b, h_s_b, h_i_b  !: snow and ice volumes/thickness 
    378    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   a_i_b, smv_i_b, oa_i_b        !: 
     377   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   a_i_b, sv_i_b, oa_i_b        !: 
    379378   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_s_b                         !: snow heat content 
    380379   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_i_b                         !: ice temperatures 
     
    398397   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_trp_ei   !: transport of ice enthalpy (W/m2) 
    399398   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_trp_es   !: transport of snw enthalpy (W/m2) 
    400    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_trp_smv  !: transport of salt content 
     399   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_trp_sv   !: transport of salt content 
    401400   ! 
    402401   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_heat     !: snw/ice heat content variation   [W/m2]  
    403    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_smvi     !: ice salt content variation   []  
     402   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_sice     !: ice salt content variation   []  
    404403   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_vice     !: ice volume variation   [m/s]  
    405404   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_vsnw     !: snw volume variation   [m/s]  
     
    465464         &      h_i   (jpi,jpj,jpl) , a_i   (jpi,jpj,jpl) , v_i   (jpi,jpj,jpl) ,     & 
    466465         &      v_s    (jpi,jpj,jpl) , h_s  (jpi,jpj,jpl) , t_su  (jpi,jpj,jpl) ,     & 
    467          &      sm_i   (jpi,jpj,jpl) , smv_i (jpi,jpj,jpl) , o_i   (jpi,jpj,jpl) ,     & 
     466         &      s_i   (jpi,jpj,jpl) , sv_i (jpi,jpj,jpl) , o_i   (jpi,jpj,jpl) ,     & 
    468467         &      oa_i   (jpi,jpj,jpl) , bv_i  (jpi,jpj,jpl) ,  STAT=ierr(ii) ) 
    469468      ii = ii + 1 
     
    471470         &      vt_i (jpi,jpj) , vt_s (jpi,jpj) , at_i (jpi,jpj) , ato_i(jpi,jpj) ,     & 
    472471         &      et_i (jpi,jpj) , et_s (jpi,jpj) , tm_i (jpi,jpj) , bvm_i(jpi,jpj) ,     & 
    473          &      smt_i(jpi,jpj) , tm_su(jpi,jpj) , htm_i(jpi,jpj) , htm_s(jpi,jpj) ,     & 
     472         &      sm_i (jpi,jpj) , tm_su(jpi,jpj) , hm_i(jpi,jpj) , hm_s(jpi,jpj) ,     & 
    474473         &      om_i (jpi,jpj) , tau_icebfr(jpi,jpj)                              , STAT=ierr(ii) ) 
    475474      ii = ii + 1 
    476475      ALLOCATE( t_s(jpi,jpj,nlay_s,jpl) , e_s(jpi,jpj,nlay_s,jpl) , STAT=ierr(ii) ) 
    477476      ii = ii + 1 
    478       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) ) 
     477      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) ) 
    479478 
    480479      ! MV MP 2016 
     
    513512      ii = ii + 1 
    514513      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)        ,   & 
    515          &      a_i_b  (jpi,jpj,jpl) , smv_i_b(jpi,jpj,jpl) , e_i_b (jpi,jpj,nlay_i,jpl) , e_s_b (jpi,jpj,nlay_s,jpl) ,   & 
     514         &      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) ,   & 
    516515         &      oa_i_b (jpi,jpj,jpl)                                                     , STAT=ierr(ii) ) 
    517516      ii = ii + 1 
     
    525524      ii = ii + 1 
    526525      ALLOCATE( diag_trp_vi(jpi,jpj) , diag_trp_vs (jpi,jpj) , diag_trp_ei(jpi,jpj),   &  
    527          &      diag_trp_es(jpi,jpj) , diag_trp_smv(jpi,jpj) , diag_heat  (jpi,jpj),   & 
    528          &      diag_smvi  (jpi,jpj) , diag_vice   (jpi,jpj) , diag_vsnw  (jpi,jpj), STAT=ierr(ii) ) 
     526         &      diag_trp_es(jpi,jpj) , diag_trp_sv (jpi,jpj) , diag_heat  (jpi,jpj),   & 
     527         &      diag_sice  (jpi,jpj) , diag_vice   (jpi,jpj) , diag_vsnw  (jpi,jpj), STAT=ierr(ii) ) 
    529528 
    530529      ! * SIMIP diagnostics 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/ice1D.F90

    r8563 r8564  
    115115   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   dh_i_bott     !: Ice bottom accretion/ablation  [m] 
    116116   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   dh_snowice    !: Snow ice formation             [m of ice] 
    117    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   sm_i_1d       !: Ice bulk salinity [ppt] 
     117   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   s_i_1d       !: Ice bulk salinity [ppt] 
    118118   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   s_i_new       !: Salinity of new ice at the bottom 
    119119   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   a_ip_1d       !: 
     
    121121   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   v_i_1d        !: 
    122122   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   v_s_1d        !: 
    123    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   smv_i_1d      !: 
     123   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   sv_i_1d      !: 
    124124   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   oa_i_1d       !: 
    125125 
    126126   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   t_s_1d   !: corresponding to the 2D var  t_s 
    127127   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   t_i_1d   !: corresponding to the 2D var  t_i 
    128    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   s_i_1d   !: profiled ice salinity 
     128   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   sz_i_1d  !: profiled ice salinity 
    129129   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e_i_1d   !:    Ice  enthalpy per unit volume 
    130130   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e_s_1d   !:    Snow enthalpy per unit volume 
     
    149149   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   v_s_2d  
    150150   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   oa_i_2d  
    151    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   smv_i_2d  
     151   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   sv_i_2d  
    152152   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   a_ip_2d 
    153153   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   v_ip_2d  
     
    202202         &      h_i_1d  (jpij) , h_ib_1d  (jpij) , h_s_1d (jpij) , fc_su  (jpij) , fc_bo_i(jpij) ,  &     
    203203         &      dh_s_tot (jpij) , dh_i_surf (jpij) , dh_i_sub(jpij) ,                                  &     
    204          &      dh_i_bott(jpij) , dh_snowice(jpij) , sm_i_1d (jpij) , s_i_new(jpij) , & 
     204         &      dh_i_bott(jpij) , dh_snowice(jpij) , s_i_1d (jpij) , s_i_new(jpij) , & 
    205205         &      a_ip_1d  (jpij) , v_ip_1d   (jpij) , v_i_1d  (jpij) , v_s_1d (jpij) , & 
    206          &      smv_i_1d (jpij) , oa_i_1d   (jpij) , STAT=ierr(ii) ) 
    207       ! 
    208       ii = ii + 1 
    209       ALLOCATE( t_s_1d  (jpij,nlay_s)     , t_i_1d (jpij,nlay_i)     , s_i_1d(jpij,nlay_i) ,  &             
     206         &      sv_i_1d (jpij) , oa_i_1d   (jpij) , STAT=ierr(ii) ) 
     207      ! 
     208      ii = ii + 1 
     209      ALLOCATE( t_s_1d  (jpij,nlay_s)     , t_i_1d (jpij,nlay_i)     , sz_i_1d(jpij,nlay_i) ,  &             
    210210         &      e_i_1d  (jpij,nlay_i)     , e_s_1d (jpij,nlay_s)     ,                        & 
    211211         &      eh_i_old(jpij,0:nlay_i+1) , h_i_old(jpij,0:nlay_i+1) , STAT=ierr(ii) ) 
     
    219219      ii = ii + 1 
    220220      ALLOCATE( a_i_2d(jpij,jpl) , a_ib_2d(jpij,jpl) , h_i_2d(jpij,jpl) , h_ib_2d(jpij,jpl) , & 
    221          &      v_i_2d(jpij,jpl) ,v_s_2d(jpij,jpl) ,oa_i_2d(jpij,jpl) ,smv_i_2d(jpij,jpl) ,  & 
     221         &      v_i_2d(jpij,jpl) ,v_s_2d(jpij,jpl) ,oa_i_2d(jpij,jpl) ,sv_i_2d(jpij,jpl) ,  & 
    222222         &      a_ip_2d(jpij,jpl) ,v_ip_2d(jpij,jpl) ,t_su_2d(jpij,jpl) ,  & 
    223223         &      STAT=ierr(ii) ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icecor.F90

    r8563 r8564  
    9191            DO jj = 1, jpj  
    9292               DO ji = 1, jpi 
    93                   zsal = smv_i(ji,jj,jl) 
    94                   smv_i(ji,jj,jl) = MIN(  MAX( rn_simin*v_i(ji,jj,jl) , smv_i(ji,jj,jl) ) , rn_simax*v_i(ji,jj,jl)  ) 
    95                   sfx_res(ji,jj) = sfx_res(ji,jj) - ( smv_i(ji,jj,jl) - zsal ) * zzc   ! associated salt flux 
     93                  zsal = sv_i(ji,jj,jl) 
     94                  sv_i(ji,jj,jl) = MIN(  MAX( rn_simin*v_i(ji,jj,jl) , sv_i(ji,jj,jl) ) , rn_simax*v_i(ji,jj,jl)  ) 
     95                  sfx_res(ji,jj) = sfx_res(ji,jj) - ( sv_i(ji,jj,jl) - zsal ) * zzc   ! associated salt flux 
    9696               END DO 
    9797            END DO 
     
    140140                  &                  + SUM( e_s(ji,jj,1:nlay_s,:) - e_s_b(ji,jj,1:nlay_s,:) )  ) * r1_rdtice 
    141141               !                 ! salt, volume 
    142                diag_smvi(ji,jj) = SUM( smv_i(ji,jj,:) - smv_i_b(ji,jj,:) ) * rhoic * r1_rdtice 
    143                diag_vice(ji,jj) = SUM( v_i  (ji,jj,:) - v_i_b (ji,jj,:) ) * rhoic * r1_rdtice 
    144                diag_vsnw(ji,jj) = SUM( v_s  (ji,jj,:) - v_s_b (ji,jj,:) ) * rhosn * r1_rdtice 
     142               diag_sice(ji,jj) = SUM( sv_i(ji,jj,:) - sv_i_b(ji,jj,:) ) * rhoic * r1_rdtice 
     143               diag_vice(ji,jj) = SUM( v_i (ji,jj,:) - v_i_b (ji,jj,:) ) * rhoic * r1_rdtice 
     144               diag_vsnw(ji,jj) = SUM( v_s (ji,jj,:) - v_s_b (ji,jj,:) ) * rhosn * r1_rdtice 
    145145            END DO 
    146146         END DO 
     
    161161                  &                                   + SUM( e_s(ji,jj,1:nlay_s,:) - e_s_b(ji,jj,1:nlay_s,:) )  ) * r1_rdtice 
    162162               !                 ! salt, volume 
    163                diag_smvi(ji,jj) = diag_smvi(ji,jj) + SUM( smv_i(ji,jj,:) - smv_i_b(ji,jj,:) ) * rhoic * r1_rdtice 
    164                diag_vice(ji,jj) = diag_vice(ji,jj) + SUM( v_i  (ji,jj,:) - v_i_b (ji,jj,:) ) * rhoic * r1_rdtice 
    165                diag_vsnw(ji,jj) = diag_vsnw(ji,jj) + SUM( v_s  (ji,jj,:) - v_s_b (ji,jj,:) ) * rhosn * r1_rdtice 
     163               diag_sice(ji,jj) = diag_sice(ji,jj) + SUM( sv_i(ji,jj,:) - sv_i_b(ji,jj,:) ) * rhoic * r1_rdtice 
     164               diag_vice(ji,jj) = diag_vice(ji,jj) + SUM( v_i (ji,jj,:) - v_i_b (ji,jj,:) ) * rhoic * r1_rdtice 
     165               diag_vsnw(ji,jj) = diag_vsnw(ji,jj) + SUM( v_s (ji,jj,:) - v_s_b (ji,jj,:) ) * rhosn * r1_rdtice 
    166166            END DO 
    167167         END DO 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icectl.F90

    r8563 r8564  
    9393         pdiag_v = glob_sum( SUM( v_i * rhoic + v_s * rhosn, dim=3 ) * e1e2t * zconv ) 
    9494 
    95          pdiag_s = glob_sum( SUM( smv_i * rhoic            , dim=3 ) * e1e2t * zconv ) 
     95         pdiag_s = glob_sum( SUM( sv_i * rhoic            , dim=3 ) * e1e2t * zconv ) 
    9696 
    9797         pdiag_t = glob_sum( (  SUM( SUM( e_i(:,:,1:nlay_i,:), dim=4 ), dim=3 )     & 
     
    120120            &     - pdiag_v ) * r1_rdtice - zfv ) * rday 
    121121 
    122          zs = ( ( glob_sum( SUM( smv_i * rhoic            , dim=3 ) * e1e2t ) * zconv  & 
     122         zs = ( ( glob_sum( SUM( sv_i * rhoic            , dim=3 ) * e1e2t ) * zconv  & 
    123123            &     - pdiag_s ) * r1_rdtice + zfs ) * rday 
    124124 
     
    183183 
    184184      ! salt flux 
    185       zsfx  = glob_sum( ( sfx + diag_smvi ) * e1e2t ) * zconv * rday 
     185      zsfx  = glob_sum( ( sfx + diag_sice ) * e1e2t ) * zconv * rday 
    186186 
    187187      ! heat flux 
     
    304304         DO jj = 1, jpj 
    305305            DO ji = 1, jpi 
    306                IF( sm_i(ji,jj,jl) < 0.1 .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
     306               IF( s_i(ji,jj,jl) < 0.1 .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
    307307!                 CALL ice_prt(kt,ji,jj,1, ' ALERTE 7 :   Very fresh ice ' ) 
    308308!                 WRITE(numout,*) ' sst                  : ', sst_m(ji,jj) 
     
    379379            DO jj = 1, jpj 
    380380               DO ji = 1, jpi 
    381                   ztmelts    =  -tmut * s_i(ji,jj,jk,jl) + rt0 
     381                  ztmelts    =  -tmut * sz_i(ji,jj,jk,jl) + rt0 
    382382                  IF( t_i(ji,jj,jk,jl) >= ztmelts  .AND.  v_i(ji,jj,jl) > 1.e-10   & 
    383383                     &                             .AND.  a_i(ji,jj,jl) > 0._wp   ) THEN 
     
    386386                     !WRITE(numout,*) ' t_i : ', t_i(ji,jj,jk,jl) 
    387387                     !WRITE(numout,*) ' e_i : ', e_i(ji,jj,jk,jl) 
    388                      !WRITE(numout,*) ' s_i : ', s_i(ji,jj,jk,jl) 
     388                     !WRITE(numout,*) ' sz_i: ', sz_i(ji,jj,jk,jl) 
    389389                     !WRITE(numout,*) ' ztmelts : ', ztmelts 
    390390                     inb_alp(ialert_id) = inb_alp(ialert_id) + 1 
     
    478478                  WRITE(numout,*) ' t_snow        : ', t_s(ji,jj,1,jl) 
    479479                  WRITE(numout,*) ' t_i           : ', t_i(ji,jj,1:nlay_i,jl) 
    480                   WRITE(numout,*) ' sm_i          : ', sm_i(ji,jj,jl) 
    481                   WRITE(numout,*) ' smv_i         : ', smv_i(ji,jj,jl) 
     480                  WRITE(numout,*) ' s_i           : ', s_i(ji,jj,jl) 
     481                  WRITE(numout,*) ' sv_i          : ', sv_i(ji,jj,jl) 
    482482                  WRITE(numout,*) 
    483483               END DO 
     
    523523                  WRITE(numout,*) ' t_i        : ', t_i(ji,jj,1:nlay_i,jl) 
    524524                  WRITE(numout,*) ' t_su       : ', t_su(ji,jj,jl)             , ' t_s        : ', t_s(ji,jj,1,jl) 
    525                   WRITE(numout,*) ' sm_i       : ', sm_i(ji,jj,jl)             , ' o_i        : ', o_i(ji,jj,jl) 
     525                  WRITE(numout,*) ' s_i        : ', s_i(ji,jj,jl)              , ' o_i        : ', o_i(ji,jj,jl) 
    526526                  WRITE(numout,*) ' a_i        : ', a_i(ji,jj,jl)              , ' a_i_b      : ', a_i_b(ji,jj,jl)    
    527527                  WRITE(numout,*) ' v_i        : ', v_i(ji,jj,jl)              , ' v_i_b      : ', v_i_b(ji,jj,jl)    
     
    530530                  WRITE(numout,*) ' e_i2       : ', e_i(ji,jj,2,jl)            , ' ei2_b      : ', e_i_b(ji,jj,2,jl)   
    531531                  WRITE(numout,*) ' e_snow     : ', e_s(ji,jj,1,jl)            , ' e_snow_b   : ', e_s_b(ji,jj,1,jl)  
    532                   WRITE(numout,*) ' smv_i      : ', smv_i(ji,jj,jl)            , ' smv_i_b    : ', smv_i_b(ji,jj,jl)    
     532                  WRITE(numout,*) ' sv_i       : ', sv_i(ji,jj,jl)             , ' sv_i_b     : ', sv_i_b(ji,jj,jl)    
    533533                  WRITE(numout,*) ' oa_i       : ', oa_i(ji,jj,jl)             , ' oa_i_b     : ', oa_i_b(ji,jj,jl) 
    534534               END DO !jl 
     
    630630         CALL prt_ctl_info(' - Category : ', ivar1=jl) 
    631631         CALL prt_ctl_info('   ~~~~~~~~~~') 
    632          CALL prt_ctl(tab2d_1=h_i        (:,:,jl)        , clinfo1= ' h_i        : ') 
    633          CALL prt_ctl(tab2d_1=h_s        (:,:,jl)        , clinfo1= ' h_s        : ') 
     632         CALL prt_ctl(tab2d_1=h_i        (:,:,jl)        , clinfo1= ' h_i         : ') 
     633         CALL prt_ctl(tab2d_1=h_s        (:,:,jl)        , clinfo1= ' h_s         : ') 
    634634         CALL prt_ctl(tab2d_1=t_su       (:,:,jl)        , clinfo1= ' t_su        : ') 
    635635         CALL prt_ctl(tab2d_1=t_s        (:,:,1,jl)      , clinfo1= ' t_snow      : ') 
    636          CALL prt_ctl(tab2d_1=sm_i       (:,:,jl)        , clinfo1= ' sm_i        : ') 
     636         CALL prt_ctl(tab2d_1=s_i        (:,:,jl)        , clinfo1= ' s_i         : ') 
    637637         CALL prt_ctl(tab2d_1=o_i        (:,:,jl)        , clinfo1= ' o_i         : ') 
    638638         CALL prt_ctl(tab2d_1=a_i        (:,:,jl)        , clinfo1= ' a_i         : ') 
     
    641641         CALL prt_ctl(tab2d_1=e_i        (:,:,1,jl)      , clinfo1= ' e_i1        : ') 
    642642         CALL prt_ctl(tab2d_1=e_s        (:,:,1,jl)      , clinfo1= ' e_snow      : ') 
    643          CALL prt_ctl(tab2d_1=smv_i      (:,:,jl)        , clinfo1= ' smv_i       : ') 
     643         CALL prt_ctl(tab2d_1=sv_i       (:,:,jl)        , clinfo1= ' sv_i        : ') 
    644644         CALL prt_ctl(tab2d_1=oa_i       (:,:,jl)        , clinfo1= ' oa_i        : ') 
    645645          
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icedia.F90

    r8562 r8564  
    8888      zbg_svol = glob_sum( vt_s(:,:) * e1e2t(:,:) ) * 1.e-9                  ! snow volume (km3) 
    8989      zbg_area = glob_sum( at_i(:,:) * e1e2t(:,:) ) * 1.e-6                  ! area (km2) 
    90       zbg_isal = glob_sum( SUM( smv_i(:,:,:), dim=3 ) * e1e2t(:,:) ) * 1.e-9 ! salt content (pss*km3) 
     90      zbg_isal = glob_sum( SUM( sv_i(:,:,:), dim=3 ) * e1e2t(:,:) ) * 1.e-9 ! salt content (pss*km3) 
    9191      zbg_item = glob_sum( et_i * e1e2t(:,:) ) * 1.e-20                      ! heat content (1.e20 J) 
    9292      zbg_stem = glob_sum( et_s * e1e2t(:,:) ) * 1.e-20                      ! heat content (1.e20 J) 
     
    111111      ! ----------------------- ! 
    112112      zdiff_vol = r1_rau0 * glob_sum( ( rhoic*vt_i(:,:) + rhosn*vt_s(:,:) - vol_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! freshwater trend (km3)  
    113       zdiff_sal = r1_rau0 * glob_sum( ( rhoic* SUM( smv_i(:,:,:), dim=3 ) - sal_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! salt content trend (km3*pss) 
     113      zdiff_sal = r1_rau0 * glob_sum( ( rhoic* SUM( sv_i(:,:,:), dim=3 ) - sal_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-9 ! salt content trend (km3*pss) 
    114114      zdiff_tem =           glob_sum( ( et_i(:,:) + et_s(:,:)             - tem_loc_ini(:,:) ) * e1e2t(:,:) ) * 1.e-20 ! heat content trend (1.e20 J) 
    115115      !                               + SUM( qevap_ice * a_i_b, dim=3 )       !! clem: I think this term should not be there (but needs a check) 
     
    249249            vol_loc_ini(:,:) = rhoic * vt_i(:,:) + rhosn * vt_s(:,:)  ! ice/snow volume (kg/m2) 
    250250            tem_loc_ini(:,:) = et_i(:,:) + et_s(:,:)                  ! ice/snow heat content (J) 
    251             sal_loc_ini(:,:) = rhoic * SUM( smv_i(:,:,:), dim=3 )     ! ice salt content (pss*kg/m2) 
     251            sal_loc_ini(:,:) = rhoic * SUM( sv_i(:,:,:), dim=3 )      ! ice salt content (pss*kg/m2) 
    252252         ENDIF 
    253253         ! 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icedyn_adv.F90

    r8562 r8564  
    8989         !                             !-----------------------! 
    9090         CALL ice_dyn_adv_umx( nn_UMx, kt, u_ice, v_ice,  & 
    91             &                  ato_i, v_i, v_s, smv_i, oa_i, a_i, a_ip, v_ip, e_s, e_i ) 
     91            &                  ato_i, v_i, v_s, sv_i, oa_i, a_i, a_ip, v_ip, e_s, e_i ) 
    9292      !                                !-----------------------! 
    9393      CASE( np_advPRA )                ! PRATHER scheme        ! 
    9494         !                             !-----------------------! 
    9595         CALL ice_dyn_adv_pra( kt, u_ice, v_ice,  & 
    96             &                  ato_i, v_i, v_s, smv_i, oa_i, a_i, a_ip, v_ip, e_s, e_i ) 
     96            &                  ato_i, v_i, v_s, sv_i, oa_i, a_i, a_ip, v_ip, e_s, e_i ) 
    9797      END SELECT 
    9898 
     
    100100      ! diagnostics 
    101101      !------------ 
    102       diag_trp_ei (:,:) = SUM(SUM( e_i  (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_rdtice 
    103       diag_trp_es (:,:) = SUM(SUM( e_s  (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_rdtice 
    104       diag_trp_smv(:,:) = SUM(     smv_i(:,:,:)          - smv_i_b(:,:,:)                  , dim=3 ) * r1_rdtice 
    105       diag_trp_vi (:,:) = SUM(     v_i  (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_rdtice 
    106       diag_trp_vs (:,:) = SUM(     v_s  (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_rdtice 
     102      diag_trp_ei(:,:) = SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_rdtice 
     103      diag_trp_es(:,:) = SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_rdtice 
     104      diag_trp_sv(:,:) = SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_rdtice 
     105      diag_trp_vi(:,:) = SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_rdtice 
     106      diag_trp_vs(:,:) = SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_rdtice 
    107107      IF( iom_use('icetrp') )   CALL iom_put( "icetrp" , diag_trp_vi )          ! ice volume transport 
    108108      IF( iom_use('snwtrp') )   CALL iom_put( "snwtrp" , diag_trp_vs )          ! snw volume transport 
    109       IF( iom_use('saltrp') )   CALL iom_put( "saltrp" , diag_trp_smv * rhoic ) ! salt content transport 
     109      IF( iom_use('saltrp') )   CALL iom_put( "saltrp" , diag_trp_sv * rhoic ) ! salt content transport 
    110110      IF( iom_use('deitrp') )   CALL iom_put( "deitrp" , diag_trp_ei )          ! advected ice enthalpy (W/m2) 
    111111      IF( iom_use('destrp') )   CALL iom_put( "destrp" , diag_trp_es )          ! advected snw enthalpy (W/m2) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icedyn_adv_pra.F90

    r8534 r8564  
    4141 
    4242   SUBROUTINE ice_dyn_adv_pra( kt, pu_ice, pv_ice,  & 
    43       &                        pato_i, pv_i, pv_s, psmv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i ) 
     43      &                        pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i ) 
    4444      !!---------------------------------------------------------------------- 
    4545      !!                **  routine ice_dyn_adv_pra  ** 
     
    5959      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   pv_i       ! ice volume 
    6060      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   pv_s       ! snw volume 
    61       REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   psmv_i     ! salt content 
     61      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   psv_i      ! salt content 
    6262      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   poa_i      ! age content 
    6363      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   pa_i       ! ice concentration 
     
    9999      z0opw(:,:,1) = pato_i(:,:) * e1e2t(:,:)              ! Open water area  
    100100      DO jl = 1, jpl 
    101          z0snw(:,:,jl) = pv_s  (:,:,  jl) * e1e2t(:,:)     ! Snow volume 
    102          z0ice(:,:,jl) = pv_i  (:,:,  jl) * e1e2t(:,:)     ! Ice  volume 
    103          z0ai (:,:,jl) = pa_i  (:,:,  jl) * e1e2t(:,:)     ! Ice area 
    104          z0smi(:,:,jl) = psmv_i(:,:,  jl) * e1e2t(:,:)     ! Salt content 
    105          z0oi (:,:,jl) = poa_i (:,:,  jl) * e1e2t(:,:)     ! Age content 
    106          z0es (:,:,jl) = pe_s  (:,:,1,jl) * e1e2t(:,:)     ! Snow heat content 
     101         z0snw(:,:,jl) = pv_s (:,:,  jl) * e1e2t(:,:)     ! Snow volume 
     102         z0ice(:,:,jl) = pv_i (:,:,  jl) * e1e2t(:,:)     ! Ice  volume 
     103         z0ai (:,:,jl) = pa_i (:,:,  jl) * e1e2t(:,:)     ! Ice area 
     104         z0smi(:,:,jl) = psv_i(:,:,  jl) * e1e2t(:,:)     ! Salt content 
     105         z0oi (:,:,jl) = poa_i(:,:,  jl) * e1e2t(:,:)     ! Age content 
     106         z0es (:,:,jl) = pe_s (:,:,1,jl) * e1e2t(:,:)     ! Snow heat content 
    107107         DO jk = 1, nlay_i 
    108108            z0ei(:,:,jk,jl) = pe_i(:,:,jk,jl) * e1e2t(:,:) ! Ice  heat content 
     
    227227      pato_i(:,:) = z0opw(:,:,1) * r1_e1e2t(:,:) 
    228228      DO jl = 1, jpl 
    229          pv_i  (:,:,  jl) = z0ice(:,:,jl) * r1_e1e2t(:,:) 
    230          pv_s  (:,:,  jl) = z0snw(:,:,jl) * r1_e1e2t(:,:) 
    231          psmv_i(:,:,  jl) = z0smi(:,:,jl) * r1_e1e2t(:,:) 
    232          poa_i (:,:,  jl) = z0oi (:,:,jl) * r1_e1e2t(:,:) 
    233          pa_i  (:,:,  jl) = z0ai (:,:,jl) * r1_e1e2t(:,:) 
    234          pe_s  (:,:,1,jl) = z0es (:,:,jl) * r1_e1e2t(:,:) 
     229         pv_i (:,:,  jl) = z0ice(:,:,jl) * r1_e1e2t(:,:) 
     230         pv_s (:,:,  jl) = z0snw(:,:,jl) * r1_e1e2t(:,:) 
     231         psv_i(:,:,  jl) = z0smi(:,:,jl) * r1_e1e2t(:,:) 
     232         poa_i(:,:,  jl) = z0oi (:,:,jl) * r1_e1e2t(:,:) 
     233         pa_i (:,:,  jl) = z0ai (:,:,jl) * r1_e1e2t(:,:) 
     234         pe_s (:,:,1,jl) = z0es (:,:,jl) * r1_e1e2t(:,:) 
    235235         DO jk = 1, nlay_i 
    236236            pe_i(:,:,jk,jl) = z0ei(:,:,jk,jl) * r1_e1e2t(:,:) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icedyn_adv_umx.F90

    r8534 r8564  
    4444 
    4545   SUBROUTINE ice_dyn_adv_umx( k_order, kt, pu_ice, pv_ice,  & 
    46       &                    pato_i, pv_i, pv_s, psmv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i ) 
     46      &                    pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i ) 
    4747      !!---------------------------------------------------------------------- 
    4848      !!                  ***  ROUTINE ice_dyn_adv_umx  *** 
     
    6161      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   pv_i       ! ice volume 
    6262      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   pv_s       ! snw volume 
    63       REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   psmv_i     ! salt content 
     63      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   psv_i      ! salt content 
    6464      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   poa_i      ! age content 
    6565      REAL(wp), DIMENSION(:,:,:)  , INTENT(inout) ::   pa_i       ! ice concentration 
     
    117117            CALL adv_umx( k_order, kt, zdt, zudy, zvdx, zcu_box, zcv_box, pa_i(:,:,jl) )         ! Ice area 
    118118            CALL adv_umx( k_order, kt, zdt, zudy, zvdx, zcu_box, zcv_box, pv_i(:,:,jl) )         ! Ice  volume 
    119             CALL adv_umx( k_order, kt, zdt, zudy, zvdx, zcu_box, zcv_box, psmv_i(:,:,jl) )       ! Salt content 
    120             CALL adv_umx( k_order, kt, zdt, zudy, zvdx, zcu_box, zcv_box, poa_i (:,:,jl) )       ! Age content 
     119            CALL adv_umx( k_order, kt, zdt, zudy, zvdx, zcu_box, zcv_box, psv_i(:,:,jl) )        ! Salt content 
     120            CALL adv_umx( k_order, kt, zdt, zudy, zvdx, zcu_box, zcv_box, poa_i(:,:,jl) )        ! Age content 
    121121            DO jk = 1, nlay_i 
    122122               CALL adv_umx( k_order, kt, zdt, zudy, zvdx, zcu_box, zcv_box, pe_i(:,:,jk,jl) )   ! Ice  heat content 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icedyn_rdgrft.F90

    r8556 r8564  
    252252         !!CALL tab_3d_2d( nidx, idxice(1:nidx), a_i_2d(1:nidx,1:jpl), a_i(:,:,:) ) 
    253253         !!CALL tab_3d_2d( nidx, idxice(1:nidx), v_i_2d  (1:nidx,1:jpl), v_i  (:,:,:) ) 
    254          CALL tab_3d_2d( nidx, idxice(1:nidx), v_s_2d  (1:nidx,1:jpl), v_s (:,:,:) ) 
    255          CALL tab_3d_2d( nidx, idxice(1:nidx), smv_i_2d(1:nidx,1:jpl), smv_i(:,:,:) ) 
    256          CALL tab_3d_2d( nidx, idxice(1:nidx), oa_i_2d (1:nidx,1:jpl), oa_i (:,:,:) ) 
     254         CALL tab_3d_2d( nidx, idxice(1:nidx), v_s_2d (1:nidx,1:jpl), v_s (:,:,:) ) 
     255         CALL tab_3d_2d( nidx, idxice(1:nidx), sv_i_2d(1:nidx,1:jpl), sv_i(:,:,:) ) 
     256         CALL tab_3d_2d( nidx, idxice(1:nidx), oa_i_2d(1:nidx,1:jpl), oa_i(:,:,:) ) 
    257257         IF ( nn_pnd_scheme > 0 ) THEN 
    258258            CALL tab_3d_2d( nidx, idxice(1:nidx), a_ip_2d(1:nidx,1:jpl), a_ip(:,:,:) ) 
     
    317317         !----------- 
    318318         CALL tab_1d_2d( nidx, idxice(1:nidx), ato_i_1d(1:nidx), ato_i(:,:) ) 
    319          CALL tab_2d_3d( nidx, idxice(1:nidx), a_i_2d(1:nidx,1:jpl), a_i(:,:,:) ) 
    320          CALL tab_2d_3d( nidx, idxice(1:nidx), v_i_2d  (1:nidx,1:jpl), v_i (:,:,:) ) 
    321          CALL tab_2d_3d( nidx, idxice(1:nidx), v_s_2d  (1:nidx,1:jpl), v_s (:,:,:) ) 
    322          CALL tab_2d_3d( nidx, idxice(1:nidx), smv_i_2d(1:nidx,1:jpl), smv_i(:,:,:) ) 
    323          CALL tab_2d_3d( nidx, idxice(1:nidx), oa_i_2d (1:nidx,1:jpl), oa_i (:,:,:) ) 
     319         CALL tab_2d_3d( nidx, idxice(1:nidx), a_i_2d (1:nidx,1:jpl), a_i (:,:,:) ) 
     320         CALL tab_2d_3d( nidx, idxice(1:nidx), v_i_2d (1:nidx,1:jpl), v_i (:,:,:) ) 
     321         CALL tab_2d_3d( nidx, idxice(1:nidx), v_s_2d (1:nidx,1:jpl), v_s (:,:,:) ) 
     322         CALL tab_2d_3d( nidx, idxice(1:nidx), sv_i_2d(1:nidx,1:jpl), sv_i(:,:,:) ) 
     323         CALL tab_2d_3d( nidx, idxice(1:nidx), oa_i_2d(1:nidx,1:jpl), oa_i(:,:,:) ) 
    324324         IF ( nn_pnd_scheme > 0 ) THEN 
    325325            CALL tab_2d_3d( nidx, idxice(1:nidx), a_ip_2d(1:nidx,1:jpl), a_ip(:,:,:) ) 
     
    603603      DO jl1 = 1, jpl 
    604604 
    605          CALL tab_2d_1d( nidx, idxice(1:nidx), sm_i_1d(1:nidx), sm_i(:,:,jl1) ) 
     605         CALL tab_2d_1d( nidx, idxice(1:nidx), s_i_1d(1:nidx), s_i(:,:,jl1) ) 
    606606 
    607607         DO ji = 1, nidx 
     
    636636               ! 2.4) Compute ridging ice and new ridges (vi, vs, sm, oi, es, ei) 
    637637               !--------------------------------------------------------------- 
    638                virdg1     = v_i_2d  (ji,jl1)   * afrdg 
    639                virdg2(ji) = v_i_2d  (ji,jl1)   * afrdg * ( 1. + rn_porordg ) 
    640                vsrdg(ji)  = v_s_2d  (ji,jl1)   * afrdg 
    641                sirdg1     = smv_i_2d(ji,jl1)   * afrdg 
    642                sirdg2(ji) = smv_i_2d(ji,jl1)   * afrdg + vsw * sss_1d(ji) 
    643                oirdg1     = oa_i_2d (ji,jl1)   * afrdg 
    644                oirdg2(ji) = oa_i_2d (ji,jl1)   * afrdg * hi_hrdg(ji,jl1)  
    645                esrdg(ji)  = ze_s_2d (ji,1,jl1) * afrdg 
    646  
    647                virft(ji)  = v_i_2d  (ji,jl1)   * afrft 
    648                vsrft(ji)  = v_s_2d  (ji,jl1)   * afrft 
    649                sirft(ji)  = smv_i_2d(ji,jl1)   * afrft  
    650                oirft1     = oa_i_2d (ji,jl1)   * afrft  
    651                oirft2(ji) = oa_i_2d (ji,jl1)   * afrft * hi_hrft  
    652                esrft(ji)  = ze_s_2d (ji,1,jl1) * afrft 
     638               virdg1     = v_i_2d (ji,jl1)   * afrdg 
     639               virdg2(ji) = v_i_2d (ji,jl1)   * afrdg * ( 1. + rn_porordg ) 
     640               vsrdg(ji)  = v_s_2d (ji,jl1)   * afrdg 
     641               sirdg1     = sv_i_2d(ji,jl1)   * afrdg 
     642               sirdg2(ji) = sv_i_2d(ji,jl1)   * afrdg + vsw * sss_1d(ji) 
     643               oirdg1     = oa_i_2d(ji,jl1)   * afrdg 
     644               oirdg2(ji) = oa_i_2d(ji,jl1)   * afrdg * hi_hrdg(ji,jl1)  
     645               esrdg(ji)  = ze_s_2d(ji,1,jl1) * afrdg 
     646 
     647               virft(ji)  = v_i_2d (ji,jl1)   * afrft 
     648               vsrft(ji)  = v_s_2d (ji,jl1)   * afrft 
     649               sirft(ji)  = sv_i_2d(ji,jl1)   * afrft  
     650               oirft1     = oa_i_2d(ji,jl1)   * afrft  
     651               oirft2(ji) = oa_i_2d(ji,jl1)   * afrft * hi_hrft  
     652               esrft(ji)  = ze_s_2d(ji,1,jl1) * afrft 
    653653 
    654654               !MV MP 2016 
     
    689689               !------------------------------------------             
    690690               IF( nn_icesal /= 2 )  THEN 
    691                   sirdg2(ji)      = sirdg2(ji)      - vsw * ( sss_1d(ji) - sm_i_1d(ji) )        ! ridge salinity = sm_i 
    692                   sfx_bri_1d(ji) = sfx_bri_1d(ji) + sss_1d(ji)  * vsw * rhoic * r1_rdtice  &  ! put back sss_m into the ocean 
    693                      &                            - sm_i_1d(ji) * vsw * rhoic * r1_rdtice     ! and get  sm_i  from the ocean  
     691                  sirdg2(ji)     = sirdg2(ji)     - vsw * ( sss_1d(ji) - s_i_1d(ji) )        ! ridge salinity = s_i 
     692                  sfx_bri_1d(ji) = sfx_bri_1d(ji) + sss_1d(ji) * vsw * rhoic * r1_rdtice  &  ! put back sss_m into the ocean 
     693                     &                            - s_i_1d(ji) * vsw * rhoic * r1_rdtice     ! and get  s_i  from the ocean  
    694694               ENDIF 
    695695 
     
    698698               ! 2.6) update jl1 (removing ridged/rafted area) 
    699699               !------------------------------------------             
    700                a_i_2d  (ji,jl1) = a_i_2d (ji,jl1) - airdg1    - airft1 
    701                v_i_2d  (ji,jl1) = v_i_2d (ji,jl1) - virdg1    - virft(ji) 
    702                v_s_2d  (ji,jl1) = v_s_2d (ji,jl1) - vsrdg(ji) - vsrft(ji) 
    703                smv_i_2d(ji,jl1) = smv_i_2d(ji,jl1) - sirdg1    - sirft(ji) 
    704                oa_i_2d (ji,jl1) = oa_i_2d (ji,jl1) - oirdg1    - oirft1 
     700               a_i_2d (ji,jl1) = a_i_2d (ji,jl1) - airdg1    - airft1 
     701               v_i_2d (ji,jl1) = v_i_2d (ji,jl1) - virdg1    - virft(ji) 
     702               v_s_2d (ji,jl1) = v_s_2d (ji,jl1) - vsrdg(ji) - vsrft(ji) 
     703               sv_i_2d(ji,jl1) = sv_i_2d(ji,jl1) - sirdg1    - sirft(ji) 
     704               oa_i_2d(ji,jl1) = oa_i_2d(ji,jl1) - oirdg1    - oirft1 
    705705               ! MV MP 2016 
    706706               IF ( nn_pnd_scheme > 0 ) THEN 
     
    761761                  ENDIF 
    762762                  ! 
    763                   a_i_2d  (ji,jl2) = a_i_2d (ji,jl2) + ( airdg2(ji) * farea    + airft2(ji) * zswitch(ji) ) 
    764                   oa_i_2d (ji,jl2) = oa_i_2d (ji,jl2) + ( oirdg2(ji) * farea    + oirft2(ji) * zswitch(ji) ) 
    765                   v_i_2d  (ji,jl2) = v_i_2d (ji,jl2) + ( virdg2(ji) * fvol(ji) + virft (ji) * zswitch(ji) ) 
    766                   smv_i_2d(ji,jl2) = smv_i_2d(ji,jl2) + ( sirdg2(ji) * fvol(ji) + sirft (ji) * zswitch(ji) ) 
    767                   v_s_2d  (ji,jl2) = v_s_2d (ji,jl2) + ( vsrdg (ji) * rn_fsnwrdg * fvol(ji)  +  & 
     763                  a_i_2d (ji,jl2) = a_i_2d (ji,jl2) + ( airdg2(ji) * farea    + airft2(ji) * zswitch(ji) ) 
     764                  oa_i_2d(ji,jl2) = oa_i_2d(ji,jl2) + ( oirdg2(ji) * farea    + oirft2(ji) * zswitch(ji) ) 
     765                  v_i_2d (ji,jl2) = v_i_2d (ji,jl2) + ( virdg2(ji) * fvol(ji) + virft (ji) * zswitch(ji) ) 
     766                  sv_i_2d(ji,jl2) = sv_i_2d(ji,jl2) + ( sirdg2(ji) * fvol(ji) + sirft (ji) * zswitch(ji) ) 
     767                  v_s_2d (ji,jl2) = v_s_2d (ji,jl2) + ( vsrdg (ji) * rn_fsnwrdg * fvol(ji)  +  & 
    768768                     &                                    vsrft (ji) * rn_fsnwrft * zswitch(ji) ) 
    769769                  ! MV MP 2016 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceistate.F90

    r8563 r8564  
    8888      !!                6) store before fields 
    8989      !! 
    90       !! ** Notes   : o_i, t_su, t_s, t_i, s_i must be filled everywhere, even 
     90      !! ** Notes   : o_i, t_su, t_s, t_i, sz_i must be filled everywhere, even 
    9191      !!              where there is no ice (clem: I do not know why, is it mandatory?)  
    9292      !!-------------------------------------------------------------------- 
     
    284284            DO jj = 1, jpj 
    285285               DO ji = 1, jpi 
    286                   a_i(ji,jj,jl)   = zswitch(ji,jj) * za_i_ini(ji,jj,jl)                       ! concentration 
     286                  a_i(ji,jj,jl)  = zswitch(ji,jj) * za_i_ini(ji,jj,jl)                       ! concentration 
    287287                  h_i(ji,jj,jl)  = zswitch(ji,jj) * zh_i_ini(ji,jj,jl)                       ! ice thickness 
    288                   sm_i(ji,jj,jl)  = zswitch(ji,jj) * zsm_i_ini(ji,jj)                         ! salinity 
    289                   o_i(ji,jj,jl)   = 0._wp                                                     ! age (0 day) 
    290                   t_su(ji,jj,jl)  = zswitch(ji,jj) * zts_u_ini(ji,jj) + ( 1._wp - zswitch(ji,jj) ) * rt0 ! surf temp 
     288                  s_i(ji,jj,jl)  = zswitch(ji,jj) * zsm_i_ini(ji,jj)                         ! salinity 
     289                  o_i(ji,jj,jl)  = 0._wp                                                     ! age (0 day) 
     290                  t_su(ji,jj,jl) = zswitch(ji,jj) * zts_u_ini(ji,jj) + ( 1._wp - zswitch(ji,jj) ) * rt0 ! surf temp 
    291291 
    292292                  IF( zht_i_ini(ji,jj) > 0._wp )THEN 
     
    305305 
    306306                  ! ice volume, salt content, age content 
    307                   v_i(ji,jj,jl)  = h_i(ji,jj,jl) * a_i(ji,jj,jl)              ! ice volume 
    308                   v_s(ji,jj,jl)  = h_s(ji,jj,jl) * a_i(ji,jj,jl)              ! snow volume 
    309                   smv_i(ji,jj,jl) = MIN( sm_i(ji,jj,jl) , sss_m(ji,jj) ) * v_i(ji,jj,jl) ! salt content 
    310                   oa_i(ji,jj,jl)  = o_i(ji,jj,jl) * a_i(ji,jj,jl)               ! age content 
     307                  v_i (ji,jj,jl) = h_i(ji,jj,jl) * a_i(ji,jj,jl)              ! ice volume 
     308                  v_s (ji,jj,jl) = h_s(ji,jj,jl) * a_i(ji,jj,jl)              ! snow volume 
     309                  sv_i(ji,jj,jl) = MIN( s_i(ji,jj,jl) , sss_m(ji,jj) ) * v_i(ji,jj,jl) ! salt content 
     310                  oa_i(ji,jj,jl) = o_i(ji,jj,jl) * a_i(ji,jj,jl)               ! age content 
    311311               END DO 
    312312            END DO 
     
    316316         IF( nn_icesal == 1 .OR. nn_icesal == 3 )  THEN 
    317317            CALL ice_var_salprof 
    318             smv_i = sm_i * v_i 
     318            sv_i = s_i * v_i 
    319319         ENDIF 
    320320             
     
    340340               DO jj = 1, jpj 
    341341                  DO ji = 1, jpi 
    342                      t_i(ji,jj,jk,jl) = zswitch(ji,jj) * ztm_i_ini(ji,jj) + ( 1._wp - zswitch(ji,jj) ) * rt0  
    343                      s_i(ji,jj,jk,jl) = zswitch(ji,jj) * zsm_i_ini(ji,jj) + ( 1._wp - zswitch(ji,jj) ) * rn_simin 
    344                      ztmelts          = - tmut * s_i(ji,jj,jk,jl) + rt0 !Melting temperature in K 
     342                     t_i (ji,jj,jk,jl) = zswitch(ji,jj) * ztm_i_ini(ji,jj) + ( 1._wp - zswitch(ji,jj) ) * rt0  
     343                     sz_i(ji,jj,jk,jl) = zswitch(ji,jj) * zsm_i_ini(ji,jj) + ( 1._wp - zswitch(ji,jj) ) * rn_simin 
     344                     ztmelts          = - tmut * sz_i(ji,jj,jk,jl) + rt0 !Melting temperature in K 
    345345 
    346346                     ! heat content per unit volume 
     
    379379         v_i  (:,:,:) = 0._wp 
    380380         v_s  (:,:,:) = 0._wp 
    381          smv_i(:,:,:) = 0._wp 
     381         sv_i (:,:,:) = 0._wp 
    382382         oa_i (:,:,:) = 0._wp 
    383383         h_i  (:,:,:) = 0._wp 
    384384         h_s  (:,:,:) = 0._wp 
    385          sm_i (:,:,:) = 0._wp 
     385         s_i (:,:,:) = 0._wp 
    386386         o_i  (:,:,:) = 0._wp 
    387387 
     
    475475      v_s_b  (:,:,:)   = v_s  (:,:,:) 
    476476      e_s_b  (:,:,:,:) = e_s  (:,:,:,:) 
    477       smv_i_b(:,:,:)   = smv_i(:,:,:) 
     477      sv_i_b (:,:,:)   = sv_i (:,:,:) 
    478478      oa_i_b (:,:,:)   = oa_i (:,:,:) 
    479479      u_ice_b(:,:)     = u_ice(:,:) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceitd.F90

    r8563 r8564  
    392392      !!------------------------------------------------------------------ 
    393393          
    394       CALL tab_3d_2d( nidx, idxice(1:nidx), h_i_2d (1:nidx,1:jpl), h_i   ) 
    395       CALL tab_3d_2d( nidx, idxice(1:nidx), a_i_2d  (1:nidx,1:jpl), a_i    ) 
    396       CALL tab_3d_2d( nidx, idxice(1:nidx), v_i_2d  (1:nidx,1:jpl), v_i    ) 
    397       CALL tab_3d_2d( nidx, idxice(1:nidx), v_s_2d  (1:nidx,1:jpl), v_s    ) 
    398       CALL tab_3d_2d( nidx, idxice(1:nidx), oa_i_2d (1:nidx,1:jpl), oa_i  ) 
    399       CALL tab_3d_2d( nidx, idxice(1:nidx), smv_i_2d(1:nidx,1:jpl), smv_i ) 
    400       CALL tab_3d_2d( nidx, idxice(1:nidx), a_ip_2d (1:nidx,1:jpl), a_ip  ) 
    401       CALL tab_3d_2d( nidx, idxice(1:nidx), v_ip_2d (1:nidx,1:jpl), v_ip  ) 
    402       CALL tab_3d_2d( nidx, idxice(1:nidx), t_su_2d (1:nidx,1:jpl), t_su  ) 
     394      CALL tab_3d_2d( nidx, idxice(1:nidx), h_i_2d (1:nidx,1:jpl), h_i  ) 
     395      CALL tab_3d_2d( nidx, idxice(1:nidx), a_i_2d (1:nidx,1:jpl), a_i  ) 
     396      CALL tab_3d_2d( nidx, idxice(1:nidx), v_i_2d (1:nidx,1:jpl), v_i  ) 
     397      CALL tab_3d_2d( nidx, idxice(1:nidx), v_s_2d (1:nidx,1:jpl), v_s  ) 
     398      CALL tab_3d_2d( nidx, idxice(1:nidx), oa_i_2d(1:nidx,1:jpl), oa_i ) 
     399      CALL tab_3d_2d( nidx, idxice(1:nidx), sv_i_2d(1:nidx,1:jpl), sv_i ) 
     400      CALL tab_3d_2d( nidx, idxice(1:nidx), a_ip_2d(1:nidx,1:jpl), a_ip ) 
     401      CALL tab_3d_2d( nidx, idxice(1:nidx), v_ip_2d(1:nidx,1:jpl), v_ip ) 
     402      CALL tab_3d_2d( nidx, idxice(1:nidx), t_su_2d(1:nidx,1:jpl), t_su ) 
    403403 
    404404      !---------------------------------------------------------------------------------------------- 
     
    443443               !           
    444444               !                                                     ! Ice age  
    445                ztrans             = oa_i_2d(ji,jl1) * pdaice(ji,jl)  !!clem: should be * zworka(ji) but it does not work ???? 
    446                oa_i_2d(ji,jl1)    = oa_i_2d(ji,jl1) - ztrans 
    447                oa_i_2d(ji,jl2)    = oa_i_2d(ji,jl2) + ztrans 
    448                ! 
    449                ztrans             = smv_i_2d(ji,jl1) * zworkv(ji)    ! Ice salinity 
    450                ! 
    451                smv_i_2d(ji,jl1)   = smv_i_2d(ji,jl1) - ztrans 
    452                smv_i_2d(ji,jl2)   = smv_i_2d(ji,jl2) + ztrans 
     445               ztrans          = oa_i_2d(ji,jl1) * pdaice(ji,jl)  !!clem: should be * zworka(ji) but it does not work ???? 
     446               oa_i_2d(ji,jl1) = oa_i_2d(ji,jl1) - ztrans 
     447               oa_i_2d(ji,jl2) = oa_i_2d(ji,jl2) + ztrans 
     448               ! 
     449               ztrans          = sv_i_2d(ji,jl1) * zworkv(ji)        ! Ice salinity 
     450               ! 
     451               sv_i_2d(ji,jl1) = sv_i_2d(ji,jl1) - ztrans 
     452               sv_i_2d(ji,jl2) = sv_i_2d(ji,jl2) + ztrans 
    453453               ! 
    454454               !                                                     ! Surface temperature 
     
    526526      ! 
    527527      CALL tab_2d_3d( nidx, idxice(1:nidx), h_i_2d (1:nidx,1:jpl), h_i  ) 
    528       CALL tab_2d_3d( nidx, idxice(1:nidx), a_i_2d  (1:nidx,1:jpl), a_i   ) 
    529       CALL tab_2d_3d( nidx, idxice(1:nidx), v_i_2d  (1:nidx,1:jpl), v_i   ) 
    530       CALL tab_2d_3d( nidx, idxice(1:nidx), v_s_2d  (1:nidx,1:jpl), v_s   ) 
    531       CALL tab_2d_3d( nidx, idxice(1:nidx), oa_i_2d (1:nidx,1:jpl), oa_i ) 
    532       CALL tab_2d_3d( nidx, idxice(1:nidx), smv_i_2d(1:nidx,1:jpl), smv_i ) 
    533       CALL tab_2d_3d( nidx, idxice(1:nidx), a_ip_2d (1:nidx,1:jpl), a_ip ) 
    534       CALL tab_2d_3d( nidx, idxice(1:nidx), v_ip_2d (1:nidx,1:jpl), v_ip ) 
    535       CALL tab_2d_3d( nidx, idxice(1:nidx), t_su_2d (1:nidx,1:jpl), t_su ) 
     528      CALL tab_2d_3d( nidx, idxice(1:nidx), a_i_2d (1:nidx,1:jpl), a_i  ) 
     529      CALL tab_2d_3d( nidx, idxice(1:nidx), v_i_2d (1:nidx,1:jpl), v_i  ) 
     530      CALL tab_2d_3d( nidx, idxice(1:nidx), v_s_2d (1:nidx,1:jpl), v_s  ) 
     531      CALL tab_2d_3d( nidx, idxice(1:nidx), oa_i_2d(1:nidx,1:jpl), oa_i ) 
     532      CALL tab_2d_3d( nidx, idxice(1:nidx), sv_i_2d(1:nidx,1:jpl), sv_i ) 
     533      CALL tab_2d_3d( nidx, idxice(1:nidx), a_ip_2d(1:nidx,1:jpl), a_ip ) 
     534      CALL tab_2d_3d( nidx, idxice(1:nidx), v_ip_2d(1:nidx,1:jpl), v_ip ) 
     535      CALL tab_2d_3d( nidx, idxice(1:nidx), t_su_2d(1:nidx,1:jpl), t_su ) 
    536536      ! 
    537537   END SUBROUTINE ice_itd_shiftice 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icerst.F90

    r8536 r8564  
    133133         z2d(:,:) = v_s(:,:,jl) 
    134134         CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) ! v_s 
    135          znam = 'smv_i'//'_htc'//zchar 
    136          z2d(:,:) = smv_i(:,:,jl) 
    137          CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) ! smv_i 
     135         znam = 'sv_i'//'_htc'//zchar 
     136         z2d(:,:) = sv_i(:,:,jl) 
     137         CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) ! sv_i 
    138138         znam = 'oa_i'//'_htc'//zchar 
    139139         z2d(:,:) = oa_i(:,:,jl) 
     
    234234         CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 
    235235         v_s(:,:,jl) = z2d(:,:)  
    236          znam = 'smv_i'//'_htc'//zchar 
    237          CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 
    238          smv_i(:,:,jl) = z2d(:,:) 
     236         znam = 'sv_i'//'_htc'//zchar 
     237         CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 
     238         sv_i(:,:,jl) = z2d(:,:) 
    239239         znam = 'oa_i'//'_htc'//zchar 
    240240         CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90

    r8563 r8564  
    350350      !!---------------------------------------------------------------------- 
    351351      ! 
    352       a_i_b  (:,:,:)   = a_i (:,:,:)     ! ice area 
    353       v_i_b  (:,:,:)   = v_i (:,:,:)     ! ice volume 
    354       v_s_b  (:,:,:)   = v_s (:,:,:)     ! snow volume 
    355       smv_i_b(:,:,:)   = smv_i(:,:,:)     ! salt content 
    356       oa_i_b (:,:,:)   = oa_i (:,:,:)     ! areal age content 
    357       e_s_b  (:,:,:,:) = e_s (:,:,:,:)   ! snow thermal energy 
    358       e_i_b  (:,:,:,:) = e_i (:,:,:,:)   ! ice thermal energy 
     352      a_i_b (:,:,:)   = a_i (:,:,:)     ! ice area 
     353      v_i_b (:,:,:)   = v_i (:,:,:)     ! ice volume 
     354      v_s_b (:,:,:)   = v_s (:,:,:)     ! snow volume 
     355      sv_i_b(:,:,:)   = sv_i(:,:,:)     ! salt content 
     356      oa_i_b(:,:,:)   = oa_i(:,:,:)     ! areal age content 
     357      e_s_b (:,:,:,:) = e_s (:,:,:,:)   ! snow thermal energy 
     358      e_i_b (:,:,:,:) = e_i (:,:,:,:)   ! ice thermal energy 
    359359      WHERE( a_i_b(:,:,:) >= epsi20 ) 
    360360         h_i_b(:,:,:) = v_i_b (:,:,:) / a_i_b(:,:,:)   ! ice thickness 
     
    414414      afx_tot(:,:) = 0._wp   ; 
    415415      ! 
    416       diag_heat(:,:) = 0._wp ;   diag_smvi(:,:) = 0._wp 
     416      diag_heat(:,:) = 0._wp ;   diag_sice(:,:) = 0._wp 
    417417      diag_vice(:,:) = 0._wp ;   diag_vsnw(:,:) = 0._wp 
    418418 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icethd.F90

    r8563 r8564  
    295295      DO jk = 1, nlay_i 
    296296         DO ji = 1, nidx 
    297             ztmelts       = -tmut * s_i_1d(ji,jk) 
     297            ztmelts       = -tmut * sz_i_1d(ji,jk) 
    298298            ! Conversion q(S,T) -> T (second order equation) 
    299299            zbbb          = ( rcp - cpic ) * ztmelts + e_i_1d(ji,jk) * r1_rhoic - lfus 
     
    365365         CALL tab_2d_1d( nidx, idxice(1:nidx), h_s_1d(1:nidx), h_s(:,:,kl)     ) 
    366366         CALL tab_2d_1d( nidx, idxice(1:nidx), t_su_1d(1:nidx), t_su(:,:,kl)     ) 
    367          CALL tab_2d_1d( nidx, idxice(1:nidx), sm_i_1d(1:nidx), sm_i(:,:,kl)     ) 
     367         CALL tab_2d_1d( nidx, idxice(1:nidx), s_i_1d(1:nidx), s_i(:,:,kl)     ) 
    368368         DO jk = 1, nlay_s 
    369369            CALL tab_2d_1d( nidx, idxice(1:nidx), t_s_1d(1:nidx,jk), t_s(:,:,jk,kl)   ) 
     
    373373            CALL tab_2d_1d( nidx, idxice(1:nidx), t_i_1d(1:nidx,jk), t_i(:,:,jk,kl)   ) 
    374374            CALL tab_2d_1d( nidx, idxice(1:nidx), e_i_1d(1:nidx,jk), e_i(:,:,jk,kl)   ) 
    375             CALL tab_2d_1d( nidx, idxice(1:nidx), s_i_1d(1:nidx,jk), s_i(:,:,jk,kl)   ) 
     375            CALL tab_2d_1d( nidx, idxice(1:nidx), sz_i_1d(1:nidx,jk), sz_i(:,:,jk,kl)   ) 
    376376         END DO 
    377377         ! 
     
    454454         ! 
    455455         ! Change thickness to volume (replaces routine ice_var_eqv2glo) 
    456          v_i_1d(1:nidx)   = h_i_1d(1:nidx) * a_i_1d(1:nidx) 
    457          v_s_1d(1:nidx)   = h_s_1d(1:nidx) * a_i_1d(1:nidx) 
    458          smv_i_1d(1:nidx) = sm_i_1d(1:nidx) * v_i_1d(1:nidx) 
     456         v_i_1d(1:nidx)  = h_i_1d(1:nidx) * a_i_1d(1:nidx) 
     457         v_s_1d(1:nidx)  = h_s_1d(1:nidx) * a_i_1d(1:nidx) 
     458         sv_i_1d(1:nidx) = s_i_1d(1:nidx) * v_i_1d(1:nidx) 
    459459          
    460460         CALL tab_1d_2d( nidx, idxice(1:nidx), at_i_1d(1:nidx), at_i             ) 
     
    463463         CALL tab_1d_2d( nidx, idxice(1:nidx), h_s_1d(1:nidx), h_s(:,:,kl)     ) 
    464464         CALL tab_1d_2d( nidx, idxice(1:nidx), t_su_1d(1:nidx), t_su(:,:,kl)     ) 
    465          CALL tab_1d_2d( nidx, idxice(1:nidx), sm_i_1d(1:nidx), sm_i(:,:,kl)     ) 
     465         CALL tab_1d_2d( nidx, idxice(1:nidx), s_i_1d(1:nidx), s_i(:,:,kl)     ) 
    466466         DO jk = 1, nlay_s 
    467467            CALL tab_1d_2d( nidx, idxice(1:nidx), t_s_1d(1:nidx,jk), t_s(:,:,jk,kl) ) 
     
    471471            CALL tab_1d_2d( nidx, idxice(1:nidx), t_i_1d(1:nidx,jk), t_i(:,:,jk,kl) ) 
    472472            CALL tab_1d_2d( nidx, idxice(1:nidx), e_i_1d(1:nidx,jk), e_i(:,:,jk,kl) ) 
    473             CALL tab_1d_2d( nidx, idxice(1:nidx), s_i_1d(1:nidx,jk), s_i(:,:,jk,kl) ) 
     473            CALL tab_1d_2d( nidx, idxice(1:nidx), sz_i_1d(1:nidx,jk), sz_i(:,:,jk,kl) ) 
    474474         END DO 
    475475         ! 
     
    520520         CALL tab_1d_2d( nidx, idxice(1:nidx), diag_fc_su_1d(1:nidx), diag_fc_su   ) 
    521521         ! extensive variables 
    522          CALL tab_1d_2d( nidx, idxice(1:nidx), v_i_1d  (1:nidx), v_i (:,:,kl) ) 
    523          CALL tab_1d_2d( nidx, idxice(1:nidx), v_s_1d  (1:nidx), v_s (:,:,kl) ) 
    524          CALL tab_1d_2d( nidx, idxice(1:nidx), smv_i_1d(1:nidx), smv_i(:,:,kl) ) 
     522         CALL tab_1d_2d( nidx, idxice(1:nidx), v_i_1d (1:nidx), v_i (:,:,kl) ) 
     523         CALL tab_1d_2d( nidx, idxice(1:nidx), v_s_1d (1:nidx), v_s (:,:,kl) ) 
     524         CALL tab_1d_2d( nidx, idxice(1:nidx), sv_i_1d(1:nidx), sv_i(:,:,kl) ) 
    525525         ! 
    526526      END SELECT 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icethd_da.F90

    r8563 r8564  
    135135             
    136136            ! Contribution to salt flux 
    137             sfx_lam_1d(ji) = sfx_lam_1d(ji) + rhoic *  h_i_1d(ji) * zda * sm_i_1d(ji) * r1_rdtice 
     137            sfx_lam_1d(ji) = sfx_lam_1d(ji) + rhoic *  h_i_1d(ji) * zda * s_i_1d(ji) * r1_rdtice 
    138138             
    139139            ! Contribution to heat flux into the ocean [W.m-2], (<0)   
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icethd_dh.F90

    r8563 r8564  
    288288      DO jk = 1, nlay_i 
    289289         DO ji = 1, nidx 
    290             ztmelts           = - tmut * s_i_1d(ji,jk)          ! Melting point of layer k [C] 
     290            ztmelts           = - tmut * sz_i_1d(ji,jk)          ! Melting point of layer k [C] 
    291291             
    292292            IF( t_i_1d(ji,jk) >= (ztmelts+rt0) ) THEN !!! Internal melting 
     
    306306               hfx_res_1d(ji) = hfx_res_1d(ji) + zfmdt * a_i_1d(ji) * zEi * r1_rdtice 
    307307                
    308                ! Contribution to salt flux (clem: using sm_i_1d and not s_i_1d(jk) is ok) 
    309                sfx_res_1d(ji) = sfx_res_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * sm_i_1d(ji) * r1_rdtice 
     308               ! Contribution to salt flux (clem: using s_i_1d and not sz_i_1d(jk) is ok) 
     309               sfx_res_1d(ji) = sfx_res_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice 
    310310                
    311311               ! Contribution to mass flux 
     
    332332               zQm            = zfmdt * zEw                           ! Energy of the melt water sent to the ocean [J/m2, <0] 
    333333                
    334                ! Contribution to salt flux >0 (clem: using sm_i_1d and not s_i_1d(jk) is ok) 
    335                sfx_sum_1d(ji) = sfx_sum_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * sm_i_1d(ji) * r1_rdtice 
     334               ! Contribution to salt flux >0 (clem: using s_i_1d and not sz_i_1d(jk) is ok) 
     335               sfx_sum_1d(ji) = sfx_sum_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice 
    336336                
    337337               ! Contribution to heat flux [W.m-2], < 0 
     
    353353            ! Salt flux > 0 (clem2016: flux is sent to the ocean for simplicity but salt should remain in the ice except if all ice is melted. 
    354354            !                          It must be corrected at some point) 
    355             sfx_sub_1d(ji) = sfx_sub_1d(ji) - rhoic * a_i_1d(ji) * zdum * sm_i_1d(ji) * r1_rdtice 
     355            sfx_sub_1d(ji) = sfx_sub_1d(ji) - rhoic * a_i_1d(ji) * zdum * s_i_1d(ji) * r1_rdtice 
    356356            ! Heat flux [W.m-2], < 0 
    357357            hfx_sub_1d(ji) = hfx_sub_1d(ji) + zdum * e_i_1d(ji,jk) * a_i_1d(ji) * r1_rdtice 
     
    423423 
    424424               s_i_new(ji)        = zswitch_sal * zfracs * sss_1d(ji)  &  ! New ice salinity 
    425                                   + ( 1. - zswitch_sal ) * sm_i_1d(ji)  
     425                                  + ( 1. - zswitch_sal ) * s_i_1d(ji)  
    426426               ! New ice growth 
    427427               ztmelts            = - tmut * s_i_new(ji)                 ! New ice melting point (C) 
     
    483483            IF(  zf_tt(ji)  >  0._wp  .AND. jk > icount(ji,jk) ) THEN   ! do not calculate where layer has already disappeared by surface melting  
    484484 
    485                ztmelts = - tmut * s_i_1d(ji,jk)  ! Melting point of layer jk (C) 
     485               ztmelts = - tmut * sz_i_1d(ji,jk)  ! Melting point of layer jk (C) 
    486486 
    487487               IF( t_i_1d(ji,jk) >= (ztmelts+rt0) ) THEN !!! Internal melting 
     
    500500                  hfx_res_1d(ji) = hfx_res_1d(ji) + zfmdt * a_i_1d(ji) * zEi * r1_rdtice 
    501501 
    502                   ! Contribution to salt flux (clem: using sm_i_1d and not s_i_1d(jk) is ok) 
    503                   sfx_res_1d(ji) = sfx_res_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * sm_i_1d(ji) * r1_rdtice 
     502                  ! Contribution to salt flux (clem: using s_i_1d and not sz_i_1d(jk) is ok) 
     503                  sfx_res_1d(ji) = sfx_res_1d(ji) - rhoic * a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice 
    504504                                     
    505505                  ! Contribution to mass flux 
     
    533533                  hfx_thd_1d(ji)  = hfx_thd_1d(ji) + zfmdt * a_i_1d(ji) * zEw * r1_rdtice 
    534534 
    535                   ! Contribution to salt flux (clem: using sm_i_1d and not s_i_1d(jk) is ok) 
    536                   sfx_bom_1d(ji)  = sfx_bom_1d(ji) - rhoic *  a_i_1d(ji) * zdeltah(ji,jk) * sm_i_1d(ji) * r1_rdtice 
     535                  ! Contribution to salt flux (clem: using s_i_1d and not sz_i_1d(jk) is ok) 
     536                  sfx_bom_1d(ji)  = sfx_bom_1d(ji) - rhoic *  a_i_1d(ji) * zdeltah(ji,jk) * s_i_1d(ji) * r1_rdtice 
    537537                   
    538538                  ! Total heat flux used in this process [W.m-2], >0   
     
    613613         IF( nn_icesal == 1 .OR. nn_icesal == 3 )  THEN 
    614614            sfx_bri_1d(ji) = sfx_bri_1d(ji) - sss_1d (ji) * a_i_1d(ji) * zfmdt                  * r1_rdtice  & ! put back sss_m     into the ocean 
    615                &                            - sm_i_1d(ji) * a_i_1d(ji) * dh_snowice(ji) * rhoic * r1_rdtice    ! and get  rn_icesal from the ocean  
     615               &                            - s_i_1d(ji) * a_i_1d(ji) * dh_snowice(ji) * rhoic * r1_rdtice    ! and get  rn_icesal from the ocean  
    616616         ENDIF 
    617617 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icethd_do.F90

    r8563 r8564  
    239239      IF ( nidx > 0 ) THEN 
    240240 
    241          CALL tab_2d_1d( nidx, idxice(1:nidx), at_i_1d (1:nidx)      , at_i         ) 
    242          CALL tab_3d_2d( nidx, idxice(1:nidx), a_i_2d  (1:nidx,1:jpl), a_i (:,:,:) ) 
    243          CALL tab_3d_2d( nidx, idxice(1:nidx), v_i_2d  (1:nidx,1:jpl), v_i (:,:,:) ) 
    244          CALL tab_3d_2d( nidx, idxice(1:nidx), smv_i_2d(1:nidx,1:jpl), smv_i(:,:,:) ) 
     241         CALL tab_2d_1d( nidx, idxice(1:nidx), at_i_1d(1:nidx)      , at_i        ) 
     242         CALL tab_3d_2d( nidx, idxice(1:nidx), a_i_2d (1:nidx,1:jpl), a_i (:,:,:) ) 
     243         CALL tab_3d_2d( nidx, idxice(1:nidx), v_i_2d (1:nidx,1:jpl), v_i (:,:,:) ) 
     244         CALL tab_3d_2d( nidx, idxice(1:nidx), sv_i_2d(1:nidx,1:jpl), sv_i(:,:,:) ) 
    245245         DO jl = 1, jpl 
    246246            DO jk = 1, nlay_i 
     
    441441         DO jl = 1, jpl 
    442442            DO ji = 1, nidx 
    443                smv_i_2d(ji,jl) = smv_i_2d(ji,jl) + zs_newice(ji) * ( v_i_2d(ji,jl) - zv_b(ji,jl) ) 
     443               sv_i_2d(ji,jl) = sv_i_2d(ji,jl) + zs_newice(ji) * ( v_i_2d(ji,jl) - zv_b(ji,jl) ) 
    444444            END DO 
    445445         END DO 
     
    456456         ! 7) Change 2D vectors to 1D vectors  
    457457         !------------------------------------------------------------------------------! 
    458          CALL tab_2d_3d( nidx, idxice(1:nidx), a_i_2d  (1:nidx,1:jpl), a_i (:,:,:) ) 
    459          CALL tab_2d_3d( nidx, idxice(1:nidx), v_i_2d  (1:nidx,1:jpl), v_i (:,:,:) ) 
    460          CALL tab_2d_3d( nidx, idxice(1:nidx), smv_i_2d(1:nidx,1:jpl), smv_i(:,:,:) ) 
     458         CALL tab_2d_3d( nidx, idxice(1:nidx), a_i_2d (1:nidx,1:jpl), a_i (:,:,:) ) 
     459         CALL tab_2d_3d( nidx, idxice(1:nidx), v_i_2d (1:nidx,1:jpl), v_i (:,:,:) ) 
     460         CALL tab_2d_3d( nidx, idxice(1:nidx), sv_i_2d(1:nidx,1:jpl), sv_i(:,:,:) ) 
    461461          DO jl = 1, jpl 
    462462            DO jk = 1, nlay_i 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icethd_sal.F90

    r8563 r8564  
    5858      INTEGER  ::   ji, jk                       ! dummy loop indices  
    5959      REAL(wp) ::   iflush, igravdr              ! local scalars 
    60       REAL(wp) ::   zs_sni, zsm_i_gd, zsm_i_fl, zsm_i_si, zsm_i_bg   ! local scalars 
     60      REAL(wp) ::   zs_sni, zs_i_gd, zs_i_fl, zs_i_si, zs_i_bg   ! local scalars 
    6161      REAL(wp) ::   z1_time_gd, z1_time_fl 
    6262      !!--------------------------------------------------------------------- 
     
    7777            IF( h_i_1d(ji) > 0._wp ) THEN 
    7878               zs_sni   = sss_1d(ji) * ( rhoic - rhosn ) * r1_rhoic                                 ! Salinity of snow ice 
    79                zsm_i_si = ( zs_sni      - sm_i_1d(ji) ) *             dh_snowice(ji)  / h_i_1d(ji) ! snow-ice     
    80                zsm_i_bg = ( s_i_new(ji) - sm_i_1d(ji) ) * MAX( 0._wp, dh_i_bott(ji) ) / h_i_1d(ji) ! bottom growth 
     79               zs_i_si = ( zs_sni      - s_i_1d(ji) ) *             dh_snowice(ji)  / h_i_1d(ji) ! snow-ice     
     80               zs_i_bg = ( s_i_new(ji) - s_i_1d(ji) ) * MAX( 0._wp, dh_i_bott(ji) ) / h_i_1d(ji) ! bottom growth 
    8181               ! Update salinity (nb: salt flux already included in icethd_dh) 
    82                sm_i_1d(ji) = sm_i_1d(ji) + zsm_i_bg + zsm_i_si 
     82               s_i_1d(ji) = s_i_1d(ji) + zs_i_bg + zs_i_si 
    8383            ENDIF 
    8484 
     
    9090               igravdr  = MAX( 0._wp , SIGN( 1._wp , t_bo_1d(ji) - t_su_1d(ji) ) )  ! =1 if t_su < t_bo 
    9191 
    92                zsm_i_gd = - igravdr * MAX( sm_i_1d(ji) - rn_sal_gd , 0._wp ) * z1_time_gd  ! gravity drainage  
    93                zsm_i_fl = - iflush  * MAX( sm_i_1d(ji) - rn_sal_fl , 0._wp ) * z1_time_fl  ! flushing 
     92               zs_i_gd = - igravdr * MAX( s_i_1d(ji) - rn_sal_gd , 0._wp ) * z1_time_gd  ! gravity drainage  
     93               zs_i_fl = - iflush  * MAX( s_i_1d(ji) - rn_sal_fl , 0._wp ) * z1_time_fl  ! flushing 
    9494                
    9595               ! Update salinity    
    96                sm_i_1d(ji) = sm_i_1d(ji) + zsm_i_fl + zsm_i_gd 
     96               s_i_1d(ji) = s_i_1d(ji) + zs_i_fl + zs_i_gd 
    9797                
    9898               ! Salt flux 
    99                sfx_bri_1d(ji) = sfx_bri_1d(ji) - rhoic * a_i_1d(ji) * h_i_1d(ji) * ( zsm_i_fl + zsm_i_gd ) * r1_rdtice 
     99               sfx_bri_1d(ji) = sfx_bri_1d(ji) - rhoic * a_i_1d(ji) * h_i_1d(ji) * ( zs_i_fl + zs_i_gd ) * r1_rdtice 
    100100            ENDIF 
    101101         END DO 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icethd_zdf.F90

    r8563 r8564  
    7979      !!           surface temperature : t_su_1d 
    8080      !!           ice/snow temperatures   : t_i_1d, t_s_1d 
    81       !!           ice salinities          : s_i_1d 
     81      !!           ice salinities          : sz_i_1d 
    8282      !!           number of layers in the ice/snow: nlay_i, nlay_s 
    8383      !!           total ice/snow thickness : h_i_1d, h_s_1d 
     
    237237            ! 
    238238            DO ji = 1, nidx 
    239                ztcond_i(ji,0)      = rcdic + zbeta * s_i_1d(ji,1)      / MIN( -epsi10, t_i_1d(ji,1) - rt0 ) 
    240                ztcond_i(ji,nlay_i) = rcdic + zbeta * s_i_1d(ji,nlay_i) / MIN( -epsi10, t_bo_1d(ji)  - rt0 ) 
     239               ztcond_i(ji,0)      = rcdic + zbeta * sz_i_1d(ji,1)      / MIN( -epsi10, t_i_1d(ji,1) - rt0 ) 
     240               ztcond_i(ji,nlay_i) = rcdic + zbeta * sz_i_1d(ji,nlay_i) / MIN( -epsi10, t_bo_1d(ji)  - rt0 ) 
    241241            END DO 
    242242            DO jk = 1, nlay_i-1 
    243243               DO ji = 1, nidx 
    244                   ztcond_i(ji,jk) = rcdic + zbeta * 0.5_wp * ( s_i_1d(ji,jk) + s_i_1d(ji,jk+1) ) /  & 
     244                  ztcond_i(ji,jk) = rcdic + zbeta * 0.5_wp * ( sz_i_1d(ji,jk) + sz_i_1d(ji,jk+1) ) /  & 
    245245                     &                      MIN( -epsi10, 0.5_wp * (t_i_1d(ji,jk) + t_i_1d(ji,jk+1)) - rt0 ) 
    246246               END DO 
     
    250250            ! 
    251251            DO ji = 1, nidx 
    252                ztcond_i(ji,0)      = rcdic + 0.09_wp * s_i_1d(ji,1) / MIN( -epsi10, t_i_1d(ji,1) - rt0 )  & 
     252               ztcond_i(ji,0)      = rcdic + 0.09_wp * sz_i_1d(ji,1) / MIN( -epsi10, t_i_1d(ji,1) - rt0 )  & 
    253253                  &                        - 0.011_wp * ( t_i_1d(ji,1) - rt0 ) 
    254                ztcond_i(ji,nlay_i) = rcdic + 0.09_wp * s_i_1d(ji,nlay_i) / MIN( -epsi10, t_bo_1d(ji) - rt0 )  & 
     254               ztcond_i(ji,nlay_i) = rcdic + 0.09_wp * sz_i_1d(ji,nlay_i) / MIN( -epsi10, t_bo_1d(ji) - rt0 )  & 
    255255                  &                        - 0.011_wp * ( t_bo_1d(ji) - rt0 ) 
    256256            END DO 
    257257            DO jk = 1, nlay_i-1 
    258258               DO ji = 1, nidx 
    259                   ztcond_i(ji,jk) = rcdic + 0.09_wp * 0.5_wp * ( s_i_1d(ji,jk) + s_i_1d(ji,jk+1) ) /          & 
     259                  ztcond_i(ji,jk) = rcdic + 0.09_wp * 0.5_wp * ( sz_i_1d(ji,jk) + sz_i_1d(ji,jk+1) ) /          & 
    260260                     &                     MIN( -epsi10, 0.5_wp * (t_i_1d(ji,jk) + t_i_1d(ji,jk+1)) - rt0 )   & 
    261261                     &                    - 0.011_wp * ( 0.5_wp * (t_i_1d(ji,jk) + t_i_1d(ji,jk+1)) - rt0 ) 
     
    320320         DO jk = 1, nlay_i 
    321321            DO ji = 1, nidx 
    322                zcpi = cpic + zgamma * s_i_1d(ji,jk) / MAX( ( t_i_1d(ji,jk) - rt0 ) * ( ztiold(ji,jk) - rt0 ), epsi10 ) 
     322               zcpi = cpic + zgamma * sz_i_1d(ji,jk) / MAX( ( t_i_1d(ji,jk) - rt0 ) * ( ztiold(ji,jk) - rt0 ), epsi10 ) 
    323323               zeta_i(ji,jk) = rdt_ice * r1_rhoic * z1_h_i(ji) / MAX( epsi10, zcpi )  
    324324            END DO 
     
    556556         DO jk  =  1, nlay_i 
    557557            DO ji = 1, nidx 
    558                ztmelt_i      = -tmut * s_i_1d(ji,jk) + rt0  
     558               ztmelt_i      = -tmut * sz_i_1d(ji,jk) + rt0  
    559559               t_i_1d(ji,jk) =  MAX( MIN( t_i_1d(ji,jk), ztmelt_i ), rt0 - 100._wp ) 
    560560               zdti_max      =  MAX( zdti_max, ABS( t_i_1d(ji,jk) - ztib(ji,jk) ) ) 
     
    646646      DO jk = 1, nlay_i             ! Sea ice energy of melting 
    647647         DO ji = 1, nidx 
    648             ztmelts      = - tmut  * s_i_1d(ji,jk) 
     648            ztmelts      = - tmut  * sz_i_1d(ji,jk) 
    649649            t_i_1d(ji,jk) = MIN( t_i_1d(ji,jk), ztmelts + rt0 ) ! Force t_i_1d to be lower than melting point 
    650650                                                                !   (sometimes dif scheme produces abnormally high temperatures)    
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceupdate.F90

    r8563 r8564  
    249249 
    250250      IF ( iom_use( "vfxthin" ) ) THEN   ! ice production for open water + thin ice (<20cm) => comparable to observations   
    251          WHERE( htm_i(:,:) < 0.2 .AND. htm_i(:,:) > 0. ) ; z2d = wfx_bog 
    252          ELSEWHERE                                       ; z2d = 0._wp 
     251         WHERE( hm_i(:,:) < 0.2 .AND. hm_i(:,:) > 0. ) ; z2d = wfx_bog 
     252         ELSEWHERE                                     ; z2d = 0._wp 
    253253         END WHERE 
    254254         CALL iom_put( "vfxthin", ( wfx_opw + z2d )     ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icevar.F90

    r8563 r8564  
    1212   !!                        - t_s (jpi,jpj,jpl) 
    1313   !!                        - e_i (jpi,jpj,nlay_i,jpl) 
    14    !!                        - smv_i(jpi,jpj,jpl) 
    15    !!                        - oa_i (jpi,jpj,jpl) 
     14   !!                        - sv_i(jpi,jpj,jpl) 
     15   !!                        - oa_i(jpi,jpj,jpl) 
    1616   !!                 VEQV : equivalent variables sometimes used in the model 
    1717   !!                        - h_i(jpi,jpj,jpl) 
     
    2626   !!                        - et_s(jpi,jpj)  !total snow heat content 
    2727   !!                        - et_i(jpi,jpj)  !total ice thermal content  
    28    !!                        - smt_i(jpi,jpj) !mean ice salinity 
     28   !!                        - sm_i(jpi,jpj) !mean ice salinity 
    2929   !!                        - tm_i (jpi,jpj) !mean ice temperature 
    3030   !!====================================================================== 
     
    117117         ! 
    118118         !                          ! mean ice/snow thickness 
    119          htm_i(:,:) = vt_i(:,:) * z1_at_i(:,:) 
    120          htm_s(:,:) = vt_s(:,:) * z1_at_i(:,:) 
     119         hm_i(:,:) = vt_i(:,:) * z1_at_i(:,:) 
     120         hm_s(:,:) = vt_s(:,:) * z1_at_i(:,:) 
    121121         !          
    122122         !                          ! mean temperature (K), salinity and age 
     
    125125         om_i (:,:) = SUM( oa_i(:,:,:)              , dim=3 ) * z1_at_i(:,:) 
    126126         ! 
    127          tm_i (:,:) = 0._wp 
    128          smt_i(:,:) = 0._wp 
     127         tm_i(:,:) = 0._wp 
     128         sm_i(:,:) = 0._wp 
    129129         DO jl = 1, jpl 
    130130            DO jk = 1, nlay_i 
    131                tm_i (:,:) = tm_i (:,:) + r1_nlay_i * t_i(:,:,jk,jl) * v_i(:,:,jl) * z1_vt_i(:,:) 
    132                smt_i(:,:) = smt_i(:,:) + r1_nlay_i * s_i(:,:,jk,jl) * v_i(:,:,jl) * z1_vt_i(:,:) 
    133             END DO 
    134          END DO 
    135          ! 
    136 !!gm  QUESTION 1 : why salinity is named smt_i  and not just sm_i ?   since the 4D field is named s_i. (NB for temp: tm_i, t_i) 
     131               tm_i(:,:) = tm_i(:,:) + r1_nlay_i * t_i (:,:,jk,jl) * v_i(:,:,jl) * z1_vt_i(:,:) 
     132               sm_i(:,:) = sm_i(:,:) + r1_nlay_i * sz_i(:,:,jk,jl) * v_i(:,:,jl) * z1_vt_i(:,:) 
     133            END DO 
     134         END DO 
    137135         ! 
    138136         DEALLOCATE( z1_at_i , z1_vt_i ) 
     
    152150      REAL(wp) ::   ze_i             ! local scalars 
    153151      REAL(wp) ::   ze_s, ztmelts, zbbb, zccc       !   -      - 
    154       REAL(wp) ::   zhmax, z1_zhmax, zsm_i          !   -      - 
     152      REAL(wp) ::   zhmax, z1_zhmax                 !   -      - 
    155153      REAL(wp) ::   zlay_i, zlay_s                  !   -      - 
    156154      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   z1_a_i, z1_v_i 
     
    189187 
    190188      IF( nn_icesal == 2 ) THEN                    !--- salinity (with a minimum value imposed everywhere) 
    191          WHERE( v_i(:,:,:) > epsi20 )   ;   sm_i(:,:,:) = MAX( rn_simin , MIN( rn_simax, smv_i(:,:,:) * z1_v_i(:,:,:) ) ) 
    192          ELSEWHERE                      ;   sm_i(:,:,:) = rn_simin 
     189         WHERE( v_i(:,:,:) > epsi20 )   ;   s_i(:,:,:) = MAX( rn_simin , MIN( rn_simax, sv_i(:,:,:) * z1_v_i(:,:,:) ) ) 
     190         ELSEWHERE                      ;   s_i(:,:,:) = rn_simin 
    193191         END WHERE 
    194192      ENDIF 
     
    206204                  IF ( v_i(ji,jj,jl) > epsi20 ) THEN     !--- icy area  
    207205                     ! 
    208                      ze_i             =   e_i(ji,jj,jk,jl) * z1_v_i(ji,jj,jl) * zlay_i               ! Energy of melting e(S,T) [J.m-3] 
    209                      ztmelts          = - s_i(ji,jj,jk,jl) * tmut                                 ! Ice layer melt temperature [C] 
     206                     ze_i             =   e_i (ji,jj,jk,jl) * z1_v_i(ji,jj,jl) * zlay_i               ! Energy of melting e(S,T) [J.m-3] 
     207                     ztmelts          = - sz_i(ji,jj,jk,jl) * tmut                                 ! Ice layer melt temperature [C] 
    210208                     ! Conversion q(S,T) -> T (second order equation) 
    211209                     zbbb             = ( rcp - cpic ) * ztmelts + ze_i * r1_rhoic - lfus 
     
    253251      !!------------------------------------------------------------------- 
    254252      ! 
    255       v_i  (:,:,:) = h_i(:,:,:) * a_i(:,:,:) 
    256       v_s  (:,:,:) = h_s(:,:,:) * a_i(:,:,:) 
    257       smv_i(:,:,:) = sm_i(:,:,:) * v_i(:,:,:) 
     253      v_i (:,:,:) = h_i(:,:,:) * a_i(:,:,:) 
     254      v_s (:,:,:) = h_s(:,:,:) * a_i(:,:,:) 
     255      sv_i(:,:,:) = s_i(:,:,:) * v_i(:,:,:) 
    258256      ! 
    259257   END SUBROUTINE ice_var_eqv2glo 
     
    290288      CASE( 1 )       !  constant salinity in time and space  ! 
    291289         !            !---------------------------------------! 
    292          s_i (:,:,:,:) = rn_icesal 
    293          sm_i(:,:,:)   = rn_icesal 
     290         sz_i(:,:,:,:) = rn_icesal 
     291         s_i(:,:,:)   = rn_icesal 
    294292         ! 
    295293         !            !---------------------------------------------! 
     
    301299         DO jl = 1, jpl 
    302300            DO jk = 1, nlay_i 
    303                s_i(:,:,jk,jl)  = sm_i(:,:,jl) 
     301               sz_i(:,:,jk,jl)  = s_i(:,:,jl) 
    304302            END DO 
    305303         END DO 
    306304         !                                      ! Slope of the linear profile  
    307          WHERE( h_i(:,:,:) > epsi20 )   ;   z_slope_s(:,:,:) = 2._wp * sm_i(:,:,:) / h_i(:,:,:) 
     305         WHERE( h_i(:,:,:) > epsi20 )   ;   z_slope_s(:,:,:) = 2._wp * s_i(:,:,:) / h_i(:,:,:) 
    308306         ELSEWHERE                       ;   z_slope_s(:,:,:) = 0._wp 
    309307         END WHERE 
     
    313311            DO jj = 1, jpj 
    314312               DO ji = 1, jpi 
    315                   zalpha(ji,jj,jl) = MAX(  0._wp , MIN( ( zsi1 - sm_i(ji,jj,jl) ) * z1_dS , 1._wp )  ) 
     313                  zalpha(ji,jj,jl) = MAX(  0._wp , MIN( ( zsi1 - s_i(ji,jj,jl) ) * z1_dS , 1._wp )  ) 
    316314                  !                             ! force a constant profile when SSS too low (Baltic Sea) 
    317                   IF( 2._wp * sm_i(ji,jj,jl) >= sss_m(ji,jj) )   zalpha(ji,jj,jl) = 0._wp   
     315                  IF( 2._wp * s_i(ji,jj,jl) >= sss_m(ji,jj) )   zalpha(ji,jj,jl) = 0._wp   
    318316               END DO 
    319317            END DO 
     
    327325                     !                          ! linear profile with 0 surface value 
    328326                     zs0 = z_slope_s(ji,jj,jl) * ( REAL(jk,wp) - 0.5_wp ) * h_i(ji,jj,jl) * r1_nlay_i 
    329                      zs  = zalpha(ji,jj,jl) * zs0 + ( 1._wp - zalpha(ji,jj,jl) ) * sm_i(ji,jj,jl)     ! weighting the profile 
    330                      s_i(ji,jj,jk,jl) = MIN( rn_simax, MAX( zs, rn_simin ) ) 
     327                     zs  = zalpha(ji,jj,jl) * zs0 + ( 1._wp - zalpha(ji,jj,jl) ) * s_i(ji,jj,jl)     ! weighting the profile 
     328                     sz_i(ji,jj,jk,jl) = MIN( rn_simax, MAX( zs, rn_simin ) ) 
    331329                  END DO 
    332330               END DO 
     
    340338         !            !-------------------------------------------!                                   (mean = 2.30) 
    341339         ! 
    342          sm_i(:,:,:) = 2.30_wp 
     340         s_i(:,:,:) = 2.30_wp 
    343341!!gm Remark: if we keep the case 3, then compute an store one for all time-step 
    344342!!           a array  S_prof(1:nlay_i) containing the calculation and just do: 
    345343!         DO jk = 1, nlay_i 
    346 !            s_i(:,:,jk,:) = S_prof(jk) 
     344!            sz_i(:,:,jk,:) = S_prof(jk) 
    347345!         END DO 
    348346!!gm end 
     
    351349            DO jk = 1, nlay_i 
    352350               zargtemp  = ( REAL(jk,wp) - 0.5_wp ) * r1_nlay_i 
    353                s_i(:,:,jk,jl) =  1.6_wp * (  1._wp - COS( rpi * zargtemp**(0.407_wp/(0.573_wp+zargtemp)) )  ) 
     351               sz_i(:,:,jk,jl) =  1.6_wp * (  1._wp - COS( rpi * zargtemp**(0.407_wp/(0.573_wp+zargtemp)) )  ) 
    354352            END DO 
    355353         END DO 
     
    380378      CASE( 1 )       !  constant salinity in time and space  ! 
    381379         !            !---------------------------------------! 
    382          s_i_1d(1:nidx,:) = rn_icesal 
     380         sz_i_1d(1:nidx,:) = rn_icesal 
    383381         ! 
    384382         !            !---------------------------------------------! 
     
    389387         ! 
    390388         !                                      ! Slope of the linear profile  
    391          WHERE( h_i_1d(1:nidx) > epsi20 )   ;   z_slope_s(1:nidx) = 2._wp * sm_i_1d(1:nidx) / h_i_1d(1:nidx) 
     389         WHERE( h_i_1d(1:nidx) > epsi20 )   ;   z_slope_s(1:nidx) = 2._wp * s_i_1d(1:nidx) / h_i_1d(1:nidx) 
    392390         ELSEWHERE                           ;   z_slope_s(1:nidx) = 0._wp 
    393391         END WHERE 
     
    395393         z1_dS = 1._wp / ( zsi1 - zsi0 ) 
    396394         DO ji = 1, nidx 
    397             zalpha(ji) = MAX(  0._wp , MIN(  ( zsi1 - sm_i_1d(ji) ) * z1_dS , 1._wp  )  ) 
     395            zalpha(ji) = MAX(  0._wp , MIN(  ( zsi1 - s_i_1d(ji) ) * z1_dS , 1._wp  )  ) 
    398396            !                             ! force a constant profile when SSS too low (Baltic Sea) 
    399             IF( 2._wp * sm_i_1d(ji) >= sss_1d(ji) )   zalpha(ji) = 0._wp 
     397            IF( 2._wp * s_i_1d(ji) >= sss_1d(ji) )   zalpha(ji) = 0._wp 
    400398         END DO 
    401399         ! 
     
    405403               !                          ! linear profile with 0 surface value 
    406404               zs0 = z_slope_s(ji) * ( REAL(jk,wp) - 0.5_wp ) * h_i_1d(ji) * r1_nlay_i 
    407                zs  = zalpha(ji) * zs0 + ( 1._wp - zalpha(ji) ) * sm_i_1d(ji) 
    408                s_i_1d(ji,jk) = MIN( rn_simax , MAX( zs , rn_simin ) ) 
     405               zs  = zalpha(ji) * zs0 + ( 1._wp - zalpha(ji) ) * s_i_1d(ji) 
     406               sz_i_1d(ji,jk) = MIN( rn_simax , MAX( zs , rn_simin ) ) 
    409407            END DO 
    410408         END DO 
     
    416414         !            !-------------------------------------------!                                   (mean = 2.30) 
    417415         ! 
    418          sm_i_1d(1:nidx) = 2.30_wp 
     416         s_i_1d(1:nidx) = 2.30_wp 
    419417         ! 
    420418!!gm cf remark in ice_var_salprof routine, CASE( 3 ) 
     
    423421            zsal =  1.6_wp * ( 1._wp - COS( rpi * zargtemp**( 0.407_wp / ( 0.573_wp + zargtemp ) ) ) ) 
    424422            DO ji = 1, nidx 
    425                s_i_1d(ji,jk) = zsal 
     423               sz_i_1d(ji,jk) = zsal 
    426424            END DO 
    427425         END DO 
     
    452450         ! 
    453451         WHERE( a_i(:,:,jl) < epsi10 .OR. v_i(:,:,jl) < epsi10 .OR. h_i(:,:,jl) < epsi10 )   ;   zswitch(:,:) = 0._wp 
    454          ELSEWHERE                                                                            ;   zswitch(:,:) = 1._wp 
     452         ELSEWHERE                                                                           ;   zswitch(:,:) = 1._wp 
    455453         END WHERE 
    456454          
     
    469467            DO ji = 1 , jpi 
    470468               ! update exchanges with ocean 
    471                sfx_res(ji,jj)  = sfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * smv_i(ji,jj,jl)   * rhoic * r1_rdtice 
    472                wfx_res(ji,jj)  = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_i  (ji,jj,jl)   * rhoic * r1_rdtice 
    473                wfx_res(ji,jj)  = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_s  (ji,jj,jl)   * rhosn * r1_rdtice 
    474                hfx_res(ji,jj)  = hfx_res(ji,jj) - (1._wp - zswitch(ji,jj) ) * e_s  (ji,jj,1,jl) * r1_rdtice ! W.m-2 <0 
     469               sfx_res(ji,jj)  = sfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * sv_i(ji,jj,jl)   * rhoic * r1_rdtice 
     470               wfx_res(ji,jj)  = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_i (ji,jj,jl)   * rhoic * r1_rdtice 
     471               wfx_res(ji,jj)  = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_s (ji,jj,jl)   * rhosn * r1_rdtice 
     472               hfx_res(ji,jj)  = hfx_res(ji,jj) - (1._wp - zswitch(ji,jj) ) * e_s (ji,jj,1,jl) * r1_rdtice ! W.m-2 <0 
    475473               !----------------------------------------------------------------- 
    476474               ! Zap snow energy  
     
    482480               ! zap ice and snow volume, add water and salt to ocean 
    483481               !----------------------------------------------------------------- 
    484                ato_i(ji,jj)    = a_i  (ji,jj,jl) * ( 1._wp - zswitch(ji,jj) ) + ato_i(ji,jj) 
    485                a_i  (ji,jj,jl) = a_i  (ji,jj,jl) * zswitch(ji,jj) 
    486                v_i  (ji,jj,jl) = v_i  (ji,jj,jl) * zswitch(ji,jj) 
    487                v_s  (ji,jj,jl) = v_s  (ji,jj,jl) * zswitch(ji,jj) 
    488                t_su (ji,jj,jl) = t_su (ji,jj,jl) * zswitch(ji,jj) + t_bo(ji,jj) * ( 1._wp - zswitch(ji,jj) ) 
    489                oa_i (ji,jj,jl) = oa_i (ji,jj,jl) * zswitch(ji,jj) 
    490                smv_i(ji,jj,jl) = smv_i(ji,jj,jl) * zswitch(ji,jj) 
     482               ato_i(ji,jj)    = a_i (ji,jj,jl) * ( 1._wp - zswitch(ji,jj) ) + ato_i(ji,jj) 
     483               a_i  (ji,jj,jl) = a_i (ji,jj,jl) * zswitch(ji,jj) 
     484               v_i  (ji,jj,jl) = v_i (ji,jj,jl) * zswitch(ji,jj) 
     485               v_s  (ji,jj,jl) = v_s (ji,jj,jl) * zswitch(ji,jj) 
     486               t_su (ji,jj,jl) = t_su(ji,jj,jl) * zswitch(ji,jj) + t_bo(ji,jj) * ( 1._wp - zswitch(ji,jj) ) 
     487               oa_i (ji,jj,jl) = oa_i(ji,jj,jl) * zswitch(ji,jj) 
     488               sv_i (ji,jj,jl) = sv_i(ji,jj,jl) * zswitch(ji,jj) 
    491489 
    492490               h_i (ji,jj,jl) = h_i (ji,jj,jl) * zswitch(ji,jj) 
     
    685683         DO jk = 1, nlay_i 
    686684            WHERE( t_i(:,:,jk,jl) < rt0 - epsi10 )    
    687                bv_i(:,:,jl) = bv_i(:,:,jl) - tmut * s_i(:,:,jk,jl) * r1_nlay_i / ( t_i(:,:,jk,jl) - rt0 ) 
     685               bv_i(:,:,jl) = bv_i(:,:,jl) - tmut * sz_i(:,:,jk,jl) * r1_nlay_i / ( t_i(:,:,jk,jl) - rt0 ) 
    688686            END WHERE 
    689687         END DO 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icewri.F90

    r8563 r8564  
    121121      CALL iom_put( "iceconc"     , at_i  * zswi        )        ! ice concentration 
    122122      CALL iom_put( "icevolu"     , vt_i  * zswi        )        ! ice volume = mean ice thickness over the cell 
    123       CALL iom_put( "icethick"    , htm_i * zswi        )        ! ice thickness 
     123      CALL iom_put( "icethick"    , hm_i * zswi        )        ! ice thickness 
    124124      CALL iom_put( "icehc"       , et_i  * zswi        )        ! ice total heat content 
    125125      CALL iom_put( "isnowhc"     , et_s  * zswi        )        ! snow total heat content 
    126126      CALL iom_put( "ibrinv"      , bvm_i * zswi * 100. )        ! brine volume 
    127       CALL iom_put( "micesalt"    , smt_i   * zswi      )        ! mean ice salinity 
    128       CALL iom_put( "snowvol"     , vt_s    * zswi      )        ! snow volume 
     127      CALL iom_put( "micesalt"    , sm_i  * zswi      )        ! mean ice salinity 
     128      CALL iom_put( "snowvol"     , vt_s  * zswi      )        ! snow volume 
    129129       
    130130      IF ( ln_pnd ) THEN 
     
    136136      ! Output category-dependent fields 
    137137      !---------------------------------- 
    138       IF ( iom_use('iceconc_cat' ) )  CALL iom_put( "iceconc_cat"      , a_i   * zswi2   )        ! area for categories 
     138      IF ( iom_use('iceconc_cat' ) )  CALL iom_put( "iceconc_cat"      , a_i  * zswi2   )        ! area for categories 
    139139      IF ( iom_use('icethic_cat' ) )  CALL iom_put( "icethic_cat"      , h_i  * zswi2   )        ! thickness for categories 
    140140      IF ( iom_use('snowthic_cat') )  CALL iom_put( "snowthic_cat"     , h_s  * zswi2   )        ! snow depth for categories 
    141       IF ( iom_use('salinity_cat') )  CALL iom_put( "salinity_cat"     , sm_i  * zswi2   )        ! salinity for categories 
     141      IF ( iom_use('salinity_cat') )  CALL iom_put( "salinity_cat"     , s_i  * zswi2   )        ! salinity for categories 
    142142      IF ( iom_use('icetemp_cat' ) )  CALL iom_put( "icetemp_cat", ( SUM( t_i(:,:,:,:), dim=3 ) * r1_nlay_i - rt0 ) * zswi2 )    ! ice temperature 
    143143      IF ( iom_use('snwtemp_cat' ) )  CALL iom_put( "snwtemp_cat", ( SUM( t_s(:,:,:,:), dim=3 ) * r1_nlay_s - rt0 ) * zswi2 )    ! snow temperature 
     
    159159      IF ( iom_use( "icepres"  ) ) CALL iom_put( "icepres"     , zswi(:,:)                     )                                ! Ice presence (1 or 0)  
    160160      IF ( iom_use( "icemass"  ) ) CALL iom_put( "icemass"     , rhoic * vt_i(:,:) * zswi(:,:) )                                ! Ice mass per cell area  
    161       IF ( iom_use( "icethic"  ) ) CALL iom_put( "icethic"     , htm_i(:,:) * zamask(:,:)  + ( 1. - zamask(:,:) ) * zmiss_val )     ! Ice thickness  
     161      IF ( iom_use( "icethic"  ) ) CALL iom_put( "icethic"     , hm_i(:,:) * zamask(:,:)  + ( 1. - zamask(:,:) ) * zmiss_val )     ! Ice thickness  
    162162      IF ( iom_use( "snomass"  ) ) CALL iom_put( "snomass"     , rhosn * vt_s(:,:)         * zswi(:,:) + zmiss(:,:) )           ! Snow mass per cell area 
    163       IF ( iom_use( "snothic"  ) ) CALL iom_put( "snothic"     , htm_s(:,:) * zamask(:,:)  + ( 1. - zamask(:,:) ) * zmiss_val )     ! Snow thickness        
     163      IF ( iom_use( "snothic"  ) ) CALL iom_put( "snothic"     , hm_s(:,:) * zamask(:,:)  + ( 1. - zamask(:,:) ) * zmiss_val )     ! Snow thickness        
    164164 
    165165      IF ( iom_use( "iceconc_cat_mv"  ) )  CALL iom_put( "iceconc_cat_mv" , a_i(:,:,:)  * zswi2(:,:,:) + zmiss2(:,:,:) )        ! Area for categories 
     
    171171      IF ( iom_use( "icebotK"  ) ) CALL iom_put( "icebotK"     , t_bo(:,:)                 * zswi(:,:) + zmiss(:,:) )           ! Ice bottom temperature 
    172172      IF ( iom_use( "iceage"   ) ) CALL iom_put( "iceage"      , om_i(:,:) * zamask15(:,:) + ( 1. - zamask15(:,:) ) * zmiss_val )   ! Ice age 
    173       IF ( iom_use( "icesmass" ) ) CALL iom_put( "icesmass"    , SUM( smv_i, DIM = 3 ) * rhoic * 1.0e-3 * zswi(:,:) )           ! Mass of salt in sea ice per cell area 
    174       IF ( iom_use( "icesal"   ) ) CALL iom_put( "icesal"      , smt_i(:,:)                * zswi(:,:) + zmiss(:,:) )           ! Ice salinity 
     173      IF ( iom_use( "icesmass" ) ) CALL iom_put( "icesmass"    , SUM( sv_i, DIM = 3 ) * rhoic * 1.0e-3 * zswi(:,:) )           ! Mass of salt in sea ice per cell area 
     174      IF ( iom_use( "icesal"   ) ) CALL iom_put( "icesal"      , sm_i(:,:)                * zswi(:,:) + zmiss(:,:) )           ! Ice salinity 
    175175 
    176176      IF ( iom_use( "icefb"    ) ) THEN 
    177          zfb(:,:) = ( zrho1 * htm_i(:,:) - zrho2 * htm_s(:,:) )                                          
     177         zfb(:,:) = ( zrho1 * hm_i(:,:) - zrho2 * hm_s(:,:) )                                          
    178178         WHERE( zfb < 0._wp ) ;   zfb = 0._wp ;   END WHERE 
    179179                                   CALL iom_put( "icefb"       , zfb(:,:)                  * zswi(:,:) + zmiss(:,:) )           ! Ice freeboard 
     
    356356      CALL histend( kid, snc4set )   ! end of the file definition 
    357357 
    358       CALL histwrite( kid, "sithic", kt, htm_i         , jpi*jpj, (/1/) )     
    359       CALL histwrite( kid, "siconc", kt, at_i          , jpi*jpj, (/1/) ) 
    360       CALL histwrite( kid, "sitemp", kt, tm_i - rt0    , jpi*jpj, (/1/) ) 
     358      CALL histwrite( kid, "sithic", kt, hm_i           , jpi*jpj, (/1/) )     
     359      CALL histwrite( kid, "siconc", kt, at_i           , jpi*jpj, (/1/) ) 
     360      CALL histwrite( kid, "sitemp", kt, tm_i - rt0     , jpi*jpj, (/1/) ) 
    361361      CALL histwrite( kid, "sivelu", kt, u_ice          , jpi*jpj, (/1/) ) 
    362362      CALL histwrite( kid, "sivelv", kt, v_ice          , jpi*jpj, (/1/) ) 
     
    366366      CALL histwrite( kid, "sinflx", kt, qns , jpi*jpj, (/1/) ) 
    367367      CALL histwrite( kid, "isnowpre", kt, sprecip        , jpi*jpj, (/1/) ) 
    368       CALL histwrite( kid, "sisali", kt, smt_i          , jpi*jpj, (/1/) ) 
     368      CALL histwrite( kid, "sisali", kt, sm_i           , jpi*jpj, (/1/) ) 
    369369      CALL histwrite( kid, "sivolu", kt, vt_i           , jpi*jpj, (/1/) ) 
    370370      CALL histwrite( kid, "sidive", kt, divu_i*1.0e8   , jpi*jpj, (/1/) ) 
     
    389389      CALL histwrite( kid, "sithicat", kt, h_i         , jpi*jpj*jpl, (/1/) )     
    390390      CALL histwrite( kid, "siconcat", kt, a_i         , jpi*jpj*jpl, (/1/) )     
    391       CALL histwrite( kid, "sisalcat", kt, sm_i        , jpi*jpj*jpl, (/1/) )     
     391      CALL histwrite( kid, "sisalcat", kt, s_i         , jpi*jpj*jpl, (/1/) )     
    392392      CALL histwrite( kid, "sitemcat", kt, tm_i - rt0  , jpi*jpj*jpl, (/1/) )     
    393393      CALL histwrite( kid, "snthicat", kt, h_s         , jpi*jpj*jpl, (/1/) )     
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limmp.F90

    r8531 r8564  
    180180            CALL lim_mp_topo   &   ! topographic melt ponds  
    181181                      &          (at_i, a_i,                                       & 
    182                       &          vt_i, v_i, v_s,            t_i, s_i, a_ip_frac,   & 
     182                      &          vt_i, v_i, v_s,            t_i, sz_i, a_ip_frac,   & 
    183183                      &          h_ip,     t_su) 
    184184 
     
    12291229!OLI_CODE  
    12301230!OLI_CODE       CALL compute_mp_topo(at_i, a_i,                               & 
    1231 !OLI_CODE                          vt_i, v_i, v_s, rhosn_glo, t_i, s_i, a_ip_frac,  & 
     1231!OLI_CODE                          vt_i, v_i, v_s, rhosn_glo, t_i, sz_i, a_ip_frac,  & 
    12321232!OLI_CODE                       h_ip, h_il, t_su, tatm_ice, diag_sur_me*rdt_ice, & 
    12331233!OLI_CODE                          fsurf, fwoc) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/NST_SRC/agrif_lim3_interp.F90

    r8226 r8564  
    163163         jm = 1 
    164164         DO jl = 1, jpl 
    165             ptab(i1:i2,j1:j2,jm  ) = a_i_b  (i1:i2,j1:j2,jl) 
    166             ptab(i1:i2,j1:j2,jm+1) = v_i_b  (i1:i2,j1:j2,jl) 
    167             ptab(i1:i2,j1:j2,jm+2) = v_s_b  (i1:i2,j1:j2,jl) 
    168             ptab(i1:i2,j1:j2,jm+3) = smv_i_b(i1:i2,j1:j2,jl) 
    169             ptab(i1:i2,j1:j2,jm+4) = oa_i_b (i1:i2,j1:j2,jl) 
     165            ptab(i1:i2,j1:j2,jm  ) = a_i_b (i1:i2,j1:j2,jl) 
     166            ptab(i1:i2,j1:j2,jm+1) = v_i_b (i1:i2,j1:j2,jl) 
     167            ptab(i1:i2,j1:j2,jm+2) = v_s_b (i1:i2,j1:j2,jl) 
     168            ptab(i1:i2,j1:j2,jm+3) = sv_i_b(i1:i2,j1:j2,jl) 
     169            ptab(i1:i2,j1:j2,jm+4) = oa_i_b(i1:i2,j1:j2,jl) 
    170170            jm = jm + 5 
    171171            DO jk = 1, nlay_s 
     
    191191               DO jj = j1, j2 
    192192                  DO ji = i1, i2 
    193                      a_i  (ji,jj,jl) = ptab(ji,jj,jm  ) * tmask(ji,jj,1) 
    194                      v_i  (ji,jj,jl) = ptab(ji,jj,jm+1) * tmask(ji,jj,1) 
    195                      v_s  (ji,jj,jl) = ptab(ji,jj,jm+2) * tmask(ji,jj,1) 
    196                      smv_i(ji,jj,jl) = ptab(ji,jj,jm+3) * tmask(ji,jj,1) 
    197                      oa_i (ji,jj,jl) = ptab(ji,jj,jm+4) * tmask(ji,jj,1) 
     193                     a_i (ji,jj,jl) = ptab(ji,jj,jm  ) * tmask(ji,jj,1) 
     194                     v_i (ji,jj,jl) = ptab(ji,jj,jm+1) * tmask(ji,jj,1) 
     195                     v_s (ji,jj,jl) = ptab(ji,jj,jm+2) * tmask(ji,jj,1) 
     196                     sv_i(ji,jj,jl) = ptab(ji,jj,jm+3) * tmask(ji,jj,1) 
     197                     oa_i(ji,jj,jl) = ptab(ji,jj,jm+4) * tmask(ji,jj,1) 
    198198                  ENDDO 
    199199               ENDDO 
     
    224224               ztab(:,:,jm+1) = v_i  (:,:,jl) 
    225225               ztab(:,:,jm+2) = v_s  (:,:,jl) 
    226                ztab(:,:,jm+3) = smv_i(:,:,jl) 
    227                ztab(:,:,jm+4) = oa_i (:,:,jl) 
     226               ztab(:,:,jm+3) = sv_i(:,:,jl) 
     227               ztab(:,:,jm+4) = oa_i(:,:,jl) 
    228228               jm = jm + 5 
    229229               DO jk = 1, nlay_s 
     
    324324               DO jj = j1, j2 
    325325                  DO ji = i1, i2 
    326                      a_i  (ji,jj,jl) = ztab(ji,jj,jm  ) * tmask(ji,jj,1) 
    327                      v_i  (ji,jj,jl) = ztab(ji,jj,jm+1) * tmask(ji,jj,1) 
    328                      v_s  (ji,jj,jl) = ztab(ji,jj,jm+2) * tmask(ji,jj,1) 
    329                      smv_i(ji,jj,jl) = ztab(ji,jj,jm+3) * tmask(ji,jj,1) 
     326                     a_i (ji,jj,jl) = ztab(ji,jj,jm  ) * tmask(ji,jj,1) 
     327                     v_i (ji,jj,jl) = ztab(ji,jj,jm+1) * tmask(ji,jj,1) 
     328                     v_s (ji,jj,jl) = ztab(ji,jj,jm+2) * tmask(ji,jj,1) 
     329                     sv_i(ji,jj,jl) = ztab(ji,jj,jm+3) * tmask(ji,jj,1) 
    330330                     oa_i (ji,jj,jl) = ztab(ji,jj,jm+4) * tmask(ji,jj,1) 
    331331                  ENDDO 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/NST_SRC/agrif_lim3_update.F90

    r8226 r8564  
    9797         jm = 1 
    9898         DO jl = 1, jpl 
    99             ptab(i1:i2,j1:j2,jm  ) = a_i  (i1:i2,j1:j2,jl) 
    100             ptab(i1:i2,j1:j2,jm+1) = v_i  (i1:i2,j1:j2,jl) 
    101             ptab(i1:i2,j1:j2,jm+2) = v_s  (i1:i2,j1:j2,jl) 
    102             ptab(i1:i2,j1:j2,jm+3) = smv_i(i1:i2,j1:j2,jl) 
     99            ptab(i1:i2,j1:j2,jm  ) = a_i (i1:i2,j1:j2,jl) 
     100            ptab(i1:i2,j1:j2,jm+1) = v_i (i1:i2,j1:j2,jl) 
     101            ptab(i1:i2,j1:j2,jm+2) = v_s (i1:i2,j1:j2,jl) 
     102            ptab(i1:i2,j1:j2,jm+3) = sv_i(i1:i2,j1:j2,jl) 
    103103            ptab(i1:i2,j1:j2,jm+4) = oa_i (i1:i2,j1:j2,jl) 
    104104            jm = jm + 5 
     
    123123               DO ji = i1, i2 
    124124                  IF( ptab(ji,jj,jm) /= Agrif_SpecialValueFineGrid ) THEN 
    125                      a_i  (ji,jj,jl) = ptab(ji,jj,jm  ) * tmask(ji,jj,1) 
    126                      v_i  (ji,jj,jl) = ptab(ji,jj,jm+1) * tmask(ji,jj,1) 
    127                      v_s  (ji,jj,jl) = ptab(ji,jj,jm+2) * tmask(ji,jj,1) 
    128                      smv_i(ji,jj,jl) = ptab(ji,jj,jm+3) * tmask(ji,jj,1) 
    129                      oa_i (ji,jj,jl) = ptab(ji,jj,jm+4) * tmask(ji,jj,1) 
     125                     a_i (ji,jj,jl) = ptab(ji,jj,jm  ) * tmask(ji,jj,1) 
     126                     v_i (ji,jj,jl) = ptab(ji,jj,jm+1) * tmask(ji,jj,1) 
     127                     v_s (ji,jj,jl) = ptab(ji,jj,jm+2) * tmask(ji,jj,1) 
     128                     sv_i(ji,jj,jl) = ptab(ji,jj,jm+3) * tmask(ji,jj,1) 
     129                     oa_i(ji,jj,jl) = ptab(ji,jj,jm+4) * tmask(ji,jj,1) 
    130130                  ENDIF 
    131131               ENDDO 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r8313 r8564  
    3636   USE lib_mpp          ! MPP library 
    3737#if defined key_lim3 
    38    USE ice,   ONLY: htm_i, at_i, at_i_b 
     38   USE ice,   ONLY: hm_i, at_i, at_i_b 
    3939#endif 
    4040   USE sbc_oce          ! Surface boundary condition variables. 
     
    835835#if defined key_lim3 
    836836            zofrld (:,:) = 1._wp - at_i(:,:) 
    837             zohicif(:,:) = htm_i(:,:) 
     837            zohicif(:,:) = hm_i(:,:) 
    838838            ! 
    839839            at_i  (:,:) = 1. - MIN( MAX( 1.-at_i  (:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 
     
    844844            ! 
    845845            ! Nudge sea ice depth to bring it up to a required minimum depth 
    846             WHERE( zseaicendg(:,:) > 0.0_wp .AND. htm_i(:,:) < zhicifmin )  
    847                zhicifinc(:,:) = (zhicifmin - htm_i(:,:)) * zincwgt     
     846            WHERE( zseaicendg(:,:) > 0.0_wp .AND. hm_i(:,:) < zhicifmin )  
     847               zhicifinc(:,:) = (zhicifmin - hm_i(:,:)) * zincwgt     
    848848            ELSEWHERE 
    849849               zhicifinc(:,:) = 0.0_wp 
     
    851851            ! 
    852852            ! nudge ice depth 
    853             htm_i (:,:) = htm_i (:,:) + zhicifinc(:,:) 
     853            hm_i (:,:) = hm_i (:,:) + zhicifinc(:,:) 
    854854            ! 
    855855            ! seaice salinity balancing (to add) 
     
    884884#if defined key_lim3 
    885885            zofrld (:,:) = 1._wp - at_i(:,:) 
    886             zohicif(:,:) = htm_i(:,:) 
     886            zohicif(:,:) = hm_i(:,:) 
    887887            !  
    888888            ! Initialize the now fields the background + increment 
     
    894894            ! 
    895895            ! Nudge sea ice depth to bring it up to a required minimum depth 
    896             WHERE( zseaicendg(:,:) > 0.0_wp .AND. htm_i(:,:) < zhicifmin )  
    897                zhicifinc(:,:) = (zhicifmin - htm_i(:,:)) * zincwgt     
     896            WHERE( zseaicendg(:,:) > 0.0_wp .AND. hm_i(:,:) < zhicifmin )  
     897               zhicifinc(:,:) = (zhicifmin - hm_i(:,:)) * zincwgt     
    898898            ELSEWHERE 
    899899               zhicifinc(:,:) = 0.0_wp 
     
    901901            ! 
    902902            ! nudge ice depth 
    903             htm_i (:,:) = htm_i (:,:) + zhicifinc(:,:) 
     903            hm_i (:,:) = hm_i (:,:) + zhicifinc(:,:) 
    904904            ! 
    905905            ! seaice salinity balancing (to add) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/BDY/bdyice.F90

    r8563 r8564  
    174174               ! 
    175175               ! Ice salinity, age, temperature 
    176                sm_i(ji,jj,jl)   = rswitch * rn_ice_sal(ib_bdy)  + ( 1.0 - rswitch ) * rn_simin 
     176               s_i (ji,jj,jl)   = rswitch * rn_ice_sal(ib_bdy)  + ( 1.0 - rswitch ) * rn_simin 
    177177               oa_i(ji,jj,jl)   = rswitch * rn_ice_age(ib_bdy) * a_i(ji,jj,jl) 
    178178               t_su(ji,jj,jl)   = rswitch * rn_ice_tem(ib_bdy)  + ( 1.0 - rswitch ) * rn_ice_tem(ib_bdy) 
     
    181181               END DO 
    182182               DO jk = 1, nlay_i 
    183                   t_i(ji,jj,jk,jl) = rswitch * rn_ice_tem(ib_bdy) + ( 1.0 - rswitch ) * rt0  
    184                   s_i(ji,jj,jk,jl) = rswitch * rn_ice_sal(ib_bdy) + ( 1.0 - rswitch ) * rn_simin 
     183                  t_i (ji,jj,jk,jl) = rswitch * rn_ice_tem(ib_bdy) + ( 1.0 - rswitch ) * rt0  
     184                  sz_i(ji,jj,jk,jl) = rswitch * rn_ice_sal(ib_bdy) + ( 1.0 - rswitch ) * rn_simin 
    185185               END DO 
    186186               ! 
     
    188188               ! 
    189189               ! Ice salinity, age, temperature 
    190                sm_i(ji,jj,jl)   = rswitch * sm_i(ii,ij,jl)  + ( 1.0 - rswitch ) * rn_simin 
     190               s_i (ji,jj,jl)   = rswitch * s_i (ii,ij,jl)  + ( 1.0 - rswitch ) * rn_simin 
    191191               oa_i(ji,jj,jl)   = rswitch * oa_i(ii,ij,jl) 
    192192               t_su(ji,jj,jl)   = rswitch * t_su(ii,ij,jl)  + ( 1.0 - rswitch ) * rt0 
     
    195195               END DO 
    196196               DO jk = 1, nlay_i 
    197                   t_i(ji,jj,jk,jl) = rswitch * t_i(ii,ij,jk,jl) + ( 1.0 - rswitch ) * rt0 
    198                   s_i(ji,jj,jk,jl) = rswitch * s_i(ii,ij,jk,jl) + ( 1.0 - rswitch ) * rn_simin 
     197                  t_i (ji,jj,jk,jl) = rswitch * t_i (ii,ij,jk,jl) + ( 1.0 - rswitch ) * rt0 
     198                  sz_i(ji,jj,jk,jl) = rswitch * sz_i(ii,ij,jk,jl) + ( 1.0 - rswitch ) * rn_simin 
    199199               END DO 
    200200               ! 
     
    202202            ! 
    203203            IF( nn_icesal == 1 ) THEN     ! constant salinity : overwrite rn_icesal 
    204                sm_i(ji,jj  ,jl) = rn_icesal 
    205                s_i (ji,jj,:,jl) = rn_icesal 
     204               s_i (ji,jj  ,jl) = rn_icesal 
     205               sz_i(ji,jj,:,jl) = rn_icesal 
    206206            ENDIF 
    207207            ! 
    208208            ! contents 
    209             smv_i(ji,jj,jl)  = MIN( sm_i(ji,jj,jl) , sss_m(ji,jj) ) * v_i(ji,jj,jl) 
     209            sv_i(ji,jj,jl)  = MIN( s_i(ji,jj,jl) , sss_m(ji,jj) ) * v_i(ji,jj,jl) 
    210210            DO jk = 1, nlay_s 
    211211               ! Snow energy of melting 
     
    215215            END DO 
    216216            DO jk = 1, nlay_i 
    217                ztmelts          = - tmut * s_i(ji,jj,jk,jl) + rt0 !Melting temperature in K                   
     217               ztmelts          = - tmut * sz_i(ji,jj,jk,jl) + rt0 !Melting temperature in K                   
    218218               ! heat content per unit volume 
    219219               e_i(ji,jj,jk,jl) = rswitch * rhoic * & 
     
    227227         END DO 
    228228         ! 
    229          CALL lbc_bdy_lnk(  a_i(:,:,jl), 'T', 1., ib_bdy ) 
    230          CALL lbc_bdy_lnk(  h_i(:,:,jl), 'T', 1., ib_bdy ) 
    231          CALL lbc_bdy_lnk(  h_s(:,:,jl), 'T', 1., ib_bdy ) 
    232          CALL lbc_bdy_lnk(  v_i(:,:,jl), 'T', 1., ib_bdy ) 
    233          CALL lbc_bdy_lnk(  v_s(:,:,jl), 'T', 1., ib_bdy ) 
    234          ! 
    235          CALL lbc_bdy_lnk( smv_i(:,:,jl), 'T', 1., ib_bdy ) 
    236          CALL lbc_bdy_lnk(  sm_i(:,:,jl), 'T', 1., ib_bdy ) 
    237          CALL lbc_bdy_lnk(  oa_i(:,:,jl), 'T', 1., ib_bdy ) 
    238          CALL lbc_bdy_lnk(  t_su(:,:,jl), 'T', 1., ib_bdy ) 
     229         CALL lbc_bdy_lnk( a_i(:,:,jl), 'T', 1., ib_bdy ) 
     230         CALL lbc_bdy_lnk( h_i(:,:,jl), 'T', 1., ib_bdy ) 
     231         CALL lbc_bdy_lnk( h_s(:,:,jl), 'T', 1., ib_bdy ) 
     232         CALL lbc_bdy_lnk( v_i(:,:,jl), 'T', 1., ib_bdy ) 
     233         CALL lbc_bdy_lnk( v_s(:,:,jl), 'T', 1., ib_bdy ) 
     234         ! 
     235         CALL lbc_bdy_lnk( sv_i(:,:,jl), 'T', 1., ib_bdy ) 
     236         CALL lbc_bdy_lnk(  s_i(:,:,jl), 'T', 1., ib_bdy ) 
     237         CALL lbc_bdy_lnk( oa_i(:,:,jl), 'T', 1., ib_bdy ) 
     238         CALL lbc_bdy_lnk( t_su(:,:,jl), 'T', 1., ib_bdy ) 
    239239         DO jk = 1, nlay_s 
    240240            CALL lbc_bdy_lnk(t_s(:,:,jk,jl), 'T', 1., ib_bdy ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/ICB/icbutl.F90

    r8306 r8564  
    2222   USE sbc_oce                             ! ocean surface boundary conditions 
    2323#if defined key_lim3 
    24    USE ice,    ONLY: u_ice, v_ice, htm_i   ! LIM-3 variables 
     24   USE ice,    ONLY: u_ice, v_ice, hm_i    ! LIM-3 variables 
    2525#endif 
    2626 
     
    8181      CALL lbc_lnk_icb( tt_e, 'T', +1._wp, 1, 1 ) 
    8282#if defined key_lim3 
    83       hicth(:,:) = 0._wp ;  hicth(1:jpi,1:jpj) = htm_i(:,:)   
     83      hicth(:,:) = 0._wp ;  hicth(1:jpi,1:jpj) = hm_i (:,:)   
    8484      ui_e(:,:) = 0._wp ;   ui_e(1:jpi, 1:jpj) = u_ice(:,:) 
    8585      vi_e(:,:) = 0._wp ;   vi_e(1:jpi, 1:jpj) = v_ice(:,:) 
Note: See TracChangeset for help on using the changeset viewer.