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 8313 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM – NEMO

Ignore:
Timestamp:
2017-07-10T20:24:21+02:00 (7 years ago)
Author:
clem
Message:

STEP2 (2): remove obsolete features

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

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/SHARED/namelist_ice_lim3_ref

    r8312 r8313  
    1717   nlay_i           =    2          !  number of ice  layers 
    1818   nlay_s           =    1          !  number of snow layers (only 1 is working) 
     19   nn_monocat       =    0          !  virtual ITD mono-category parameterizations (1-4 => jpl = 1 only) or not (0) 
     20                                    !     2: simple piling instead of ridging    --- temporary option 
     21                                    !     3: activate G(he) only                 --- temporary option 
     22                                    !     4: activate extra lateral melting only --- temporary option 
    1923   rn_amax_n        =   0.997       !  maximum tolerated ice concentration NH 
    2024   rn_amax_s        =   0.997       !  maximum tolerated ice concentration SH 
     
    7074&namiceitd     !   Ice discretization 
    7175!------------------------------------------------------------------------------ 
    72    nn_catbnd      =    2           !  computation of ice category boundaries based on 
    73                                    !      1: tanh function 
    74                                    !      2: h^(-alpha), function of rn_himean 
    75    rn_himean      =    2.0         !  expected domain-average ice thickness (m), nn_catbnd = 2 only 
     76   rn_himean      =    2.0         !  expected domain-average ice thickness (m) 
    7677/ 
    7778!------------------------------------------------------------------------------ 
     
    9192                                    ! 
    9293            ! -- limdyn & limrhg -- ! 
     94   rn_ishlat      =    2.           !  free slip (0) ; partial slip (0-2) ; no slip (2) ; strong slip (>2) 
    9395   rn_cio         =    5.0e-03      !  ice-ocean drag coefficient (-) 
    9496   rn_creepl      =    1.0e-12      !  creep limit (s-1) 
     
    110112                 ! -- limthd_dif -- ! 
    111113   rn_kappa_i     = 1.0             !  radiation attenuation coefficient in sea ice (m-1) 
    112    nn_conv_dif    = 50              !  maximal number of iterations for heat diffusion computation 
    113    rn_terr_dif    = 1.0e-04         !  maximum temperature after heat diffusion (degC) 
    114114   nn_ice_thcon   = 1               !  sea ice thermal conductivity 
    115115                                    !     0: k = k0 + beta.S/T            (Untersteiner, 1964) 
    116116                                    !     1: k = k0 + beta1.S/T - beta2.T (Pringle et al., 2007) 
    117    ln_it_qnsice   = .true.          !  iterate the surface non-solar flux with surface temperature (T) or not (F) 
    118    nn_monocat     = 0               !  virtual ITD mono-category parameterizations (1, jpl = 1 only) or not (0) 
    119                                     !     2: simple piling instead of ridging    --- temporary option 
    120                                     !     3: activate G(he) only                 --- temporary option 
    121                                     !     4: activate extra lateral melting only --- temporary option 
    122    rn_cdsn     = 0.31              !  thermal conductivity of the snow (0.31 W/m/K, Maykut and Untersteiner, 1971) 
    123                                    !  Obs: 0.1-0.5 (Lecomte et al, JAMES 2013) 
     117   ln_dqnsice     = .true.          !  change the surface non-solar flux with surface temperature (T) or not (F) 
     118   rn_cdsn        = 0.31            !  thermal conductivity of the snow (0.31 W/m/K, Maykut and Untersteiner, 1971) 
     119                                    !     Obs: 0.1-0.5 (Lecomte et al, JAMES 2013) 
    124120                  ! -- limthd_dh -- ! 
    125121   ln_limdH       = .true.          !  activate ice thickness change from growing/melting (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/SHARED/namelist_ref

    r8306 r8313  
    201201                           !  =1 use observed ice-cover      , 
    202202                           !  =3 to 4 :  ice-model used (LIM3 or CICE)                         ("key_lim3" or "key_cice") 
    203    nn_ice_embd = 1         !  =0 levitating ice (no mass exchange, concentration/dilution effect) 
    204                            !  =1 levitating ice with mass and salt exchange but no presure effect 
    205                            !  =2 embedded sea-ice (full salt and mass exchanges and pressure) 
     203   ln_ice_embd = .false.   !  =F levitating ice with mass and salt exchange but no presure effect 
     204                           !  =T embedded sea-ice (full salt and mass exchanges and pressure) 
    206205                     ! Misc. options of sbc :  
    207206   ln_traqsr   = .true.    !  Light penetration in the ocean            (T => fill namtra_qsr) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r8312 r8313  
    196196    
    197197   !                                     !!** ice-thickness distribution namelist (namiceitd) ** 
    198    INTEGER , PUBLIC ::   nn_catbnd        !: categories distribution following: tanh function (1), or h^(-alpha) function (2) 
    199198   REAL(wp), PUBLIC ::   rn_himean        !: mean thickness of the domain (used to compute the distribution, nn_itdshp = 2 only) 
    200199 
     
    210209   LOGICAL , PUBLIC ::   ln_icestr_bvf    !: use brine volume to diminish ice strength 
    211210                                          ! -- limdyn & limrhg -- ! 
     211   REAL(wp), PUBLIC ::   rn_ishlat        !: lateral boundary condition for sea-ice 
    212212   REAL(wp), PUBLIC ::   rn_cio           !: drag coefficient for oceanic stress 
    213213   REAL(wp), PUBLIC ::   rn_creepl        !: creep limit : has to be under 1.0e-9 
     
    223223                                          ! -- limthd_dif -- ! 
    224224   REAL(wp), PUBLIC ::   rn_kappa_i       !: coef. for the extinction of radiation Grenfell et al. (2006) [1/m] 
    225    REAL(wp), PUBLIC ::   nn_conv_dif      !: maximal number of iterations for heat diffusion 
    226    REAL(wp), PUBLIC ::   rn_terr_dif      !: maximal tolerated error (C) for heat diffusion 
    227225   INTEGER , PUBLIC ::   nn_ice_thcon     !: thermal conductivity: =0 Untersteiner (1964) ; =1 Pringle et al (2007) 
    228    LOGICAL , PUBLIC ::   ln_it_qnsice     !: iterate surface flux with changing surface temperature or not (F) 
    229    INTEGER , PUBLIC ::   nn_monocat       !: virtual ITD mono-category parameterizations (1) or not (0) 
     226   LOGICAL , PUBLIC ::   ln_dqnsice       !: change non-solar surface flux with changing surface temperature (T) or not (F) 
     227   INTEGER , PUBLIC ::   nn_monocat       !: virtual ITD mono-category parameterizations (1-4) or not (0) 
    230228   REAL(wp), PUBLIC ::   rn_cdsn          !: thermal conductivity of the snow [W/m/K] 
    231229                                          ! -- limthd_dh -- ! 
     
    310308   ! 
    311309   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   t_bo        !: Sea-Ice bottom temperature [Kelvin]      
    312    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   frld        !: Leads fraction = 1 - ice fraction 
    313    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   pfrld       !: Leads fraction at previous time   
    314    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   phicif      !: Old ice thickness 
    315310   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qlead       !: heat balance of the lead (or of the open ocean) 
    316311   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fhtur       !: net downward heat flux from the ice to the ocean 
     
    534529 
    535530      ii = ii + 1 
    536       ALLOCATE( t_bo   (jpi,jpj) , frld       (jpi,jpj) , pfrld      (jpi,jpj) , phicif     (jpi,jpj) ,  & 
     531      ALLOCATE( t_bo   (jpi,jpj) ,                                                                       & 
    537532         &      wfx_snw(jpi,jpj) , wfx_snw_dyn(jpi,jpj) , wfx_snw_sum(jpi,jpj) , wfx_snw_sub(jpi,jpj) ,  & 
    538533         &      wfx_ice(jpi,jpj) , wfx_sub    (jpi,jpj) , wfx_ice_sub(jpi,jpj) , wfx_lam    (jpi,jpj) ,  & 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limctl.F90

    r7646 r8313  
    385385               WRITE(numout,*) '   ~~~~~~~~~~~~~~~~ ' 
    386386               WRITE(numout,*) ' - Heat fluxes in and out the ice ***' 
    387                WRITE(numout,*) ' qsr_ini       : ', pfrld(ji,jj) * qsr(ji,jj) + SUM( a_i_b(ji,jj,:) * qsr_ice(ji,jj,:) ) 
    388                WRITE(numout,*) ' qns_ini       : ', pfrld(ji,jj) * qns(ji,jj) + SUM( a_i_b(ji,jj,:) * qns_ice(ji,jj,:) ) 
     387               WRITE(numout,*) ' qsr_ini       : ', (1._wp-at_i_b(ji,jj)) * qsr(ji,jj) + SUM( a_i_b(ji,jj,:) * qsr_ice(ji,jj,:) ) 
     388               WRITE(numout,*) ' qns_ini       : ', (1._wp-at_i_b(ji,jj)) * qns(ji,jj) + SUM( a_i_b(ji,jj,:) * qns_ice(ji,jj,:) ) 
    389389               WRITE(numout,*) 
    390390               WRITE(numout,*)  
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90

    r7753 r8313  
    109109      !!------------------------------------------------------------------- 
    110110      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    111       NAMELIST/namicedyn/ nn_limadv, nn_limadv_ord,  & 
    112          &                nn_icestr, ln_icestr_bvf, rn_pe_rdg, rn_pstar, rn_crhg, rn_cio, rn_creepl, rn_ecc, & 
     111      NAMELIST/namicedyn/ nn_limadv, nn_limadv_ord,                                & 
     112         &                nn_icestr, rn_pe_rdg, rn_pstar, rn_crhg, ln_icestr_bvf,  & 
     113         &                rn_ishlat, rn_cio, rn_creepl, rn_ecc,                    & 
    113114         &                nn_nevp, rn_relast, ln_landfast, rn_gamma, rn_icebfr, rn_lfrelax 
    114115      !!------------------------------------------------------------------- 
     
    130131         WRITE(numout,*)'    choose the advection scheme (-1=Prather, 0=Ulimate-Macho)   nn_limadv     = ', nn_limadv  
    131132         WRITE(numout,*)'    choose the order of the scheme (if ultimate)                nn_limadv_ord = ', nn_limadv_ord   
    132          ! limrhg 
     133         ! limitd_me 
    133134         WRITE(numout,*)'    ice strength parameterization (0=Hibler 1=Rothrock)         nn_icestr     = ', nn_icestr  
    134          WRITE(numout,*)'    Including brine volume in ice strength comp.                ln_icestr_bvf = ', ln_icestr_bvf 
    135135         WRITE(numout,*)'    Ratio of ridging work to PotEner change in ridging          rn_pe_rdg     = ', rn_pe_rdg  
    136          WRITE(numout,*) '   drag coefficient for oceanic stress                         rn_cio        = ', rn_cio 
    137136         WRITE(numout,*) '   first bulk-rheology parameter                               rn_pstar      = ', rn_pstar 
    138137         WRITE(numout,*) '   second bulk-rhelogy parameter                               rn_crhg       = ', rn_crhg 
     138         WRITE(numout,*)'    Including brine volume in ice strength comp.                ln_icestr_bvf = ', ln_icestr_bvf 
     139         ! limrhg 
     140         WRITE(numout,*) '   lateral boundary condition for sea ice dynamics             rn_ishlat     = ', rn_ishlat 
     141         WRITE(numout,*) '   drag coefficient for oceanic stress                         rn_cio        = ', rn_cio 
    139142         WRITE(numout,*) '   creep limit                                                 rn_creepl     = ', rn_creepl 
    140143         WRITE(numout,*) '   eccentricity of the elliptical yield curve                  rn_ecc        = ', rn_ecc 
     
    142145         WRITE(numout,*) '   ratio of elastic timescale over ice time step               rn_relast     = ', rn_relast 
    143146         WRITE(numout,*) '   Landfast: param (T or F)                                    ln_landfast   = ', ln_landfast 
    144          WRITE(numout,*) '   Landfast: fraction of ocean depth that ice must reach       rn_gamma      = ', rn_gamma 
    145          WRITE(numout,*) '   Landfast: maximum bottom stress per unit area of contact    rn_icebfr     = ', rn_icebfr 
    146          WRITE(numout,*) '   Landfast: relax time scale (s-1) to reach static friction   rn_lfrelax    = ', rn_lfrelax 
     147         WRITE(numout,*) '      T: fraction of ocean depth that ice must reach           rn_gamma      = ', rn_gamma 
     148         WRITE(numout,*) '      T: maximum bottom stress per unit area of contact        rn_icebfr     = ', rn_icebfr 
     149         WRITE(numout,*) '      T: relax time scale (s-1) to reach static friction       rn_lfrelax    = ', rn_lfrelax 
     150      ENDIF 
     151      ! 
     152      IF     (      rn_ishlat == 0.                ) THEN   ;   IF(lwp) WRITE(numout,*) '   ice lateral  free-slip ' 
     153      ELSEIF (      rn_ishlat == 2.                ) THEN   ;   IF(lwp) WRITE(numout,*) '   ice lateral  no-slip ' 
     154      ELSEIF ( 0. < rn_ishlat .AND. rn_ishlat < 2. ) THEN   ;   IF(lwp) WRITE(numout,*) '   ice lateral  partial-slip ' 
     155      ELSEIF ( 2. < rn_ishlat                      ) THEN   ;   IF(lwp) WRITE(numout,*) '   ice lateral  strong-slip ' 
    147156      ENDIF 
    148157      ! 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90

    r8306 r8313  
    150150      REAL(wp), PARAMETER               ::   zepsi  = 1.0e-20_wp             ! tolerance parameter 
    151151      REAL(wp), PARAMETER               ::   zmmin  = 1._wp                  ! ice mass (kg/m2) below which ice velocity equals ocean velocity 
    152       REAL(wp), PARAMETER               ::   zshlat = 2._wp                  ! boundary condition for sea-ice velocity (2=no slip ; 0=free slip) 
    153152      !!------------------------------------------------------------------- 
    154153 
     
    182181         DO ji = fs_2, fs_jpim1   ! vector opt. 
    183182            IF( zfmask(ji,jj) == 0._wp ) THEN 
    184                zfmask(ji,jj) = zshlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), zwf(ji-1,jj), zwf(ji,jj-1) ) ) 
     183               zfmask(ji,jj) = rn_ishlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), zwf(ji-1,jj), zwf(ji,jj-1) ) ) 
    185184            ENDIF 
    186185         END DO 
     
    188187      DO jj = 2, jpjm1 
    189188         IF( zfmask(1,jj) == 0._wp ) THEN 
    190             zfmask(1  ,jj) = zshlat * MIN( 1._wp , MAX( zwf(2,jj), zwf(1,jj+1), zwf(1,jj-1) ) ) 
     189            zfmask(1  ,jj) = rn_ishlat * MIN( 1._wp , MAX( zwf(2,jj), zwf(1,jj+1), zwf(1,jj-1) ) ) 
    191190         ENDIF 
    192191         IF( zfmask(jpi,jj) == 0._wp ) THEN 
    193             zfmask(jpi,jj) = zshlat * MIN( 1._wp , MAX( zwf(jpi,jj+1), zwf(jpim1,jj), zwf(jpi,jj-1) ) ) 
     192            zfmask(jpi,jj) = rn_ishlat * MIN( 1._wp , MAX( zwf(jpi,jj+1), zwf(jpim1,jj), zwf(jpi,jj-1) ) ) 
    194193         ENDIF 
    195194      END DO 
    196195      DO ji = 2, jpim1 
    197196         IF( zfmask(ji,1) == 0._wp ) THEN 
    198             zfmask(ji,1  ) = zshlat * MIN( 1._wp , MAX( zwf(ji+1,1), zwf(ji,2), zwf(ji-1,1) ) ) 
     197            zfmask(ji,1  ) = rn_ishlat * MIN( 1._wp , MAX( zwf(ji+1,1), zwf(ji,2), zwf(ji-1,1) ) ) 
    199198         ENDIF 
    200199         IF( zfmask(ji,jpj) == 0._wp ) THEN 
    201             zfmask(ji,jpj) = zshlat * MIN( 1._wp , MAX( zwf(ji+1,jpj), zwf(ji-1,jpj), zwf(ji,jpjm1) ) ) 
     200            zfmask(ji,jpj) = rn_ishlat * MIN( 1._wp , MAX( zwf(ji+1,jpj), zwf(ji-1,jpj), zwf(ji,jpjm1) ) ) 
    202201         ENDIF 
    203202      END DO 
     
    251250      !------------------------------------------------------------------------------! 
    252251 
    253       IF( nn_ice_embd == 2 ) THEN             !== embedded sea ice: compute representative ice top surface ==! 
     252      IF( ln_ice_embd ) THEN             !== embedded sea ice: compute representative ice top surface ==! 
    254253         !                                             
    255254         ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[n/nn_fsbc], n=0,nn_fsbc-1} 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90

    r8266 r8313  
    112112      ! --- case we bypass ice thermodynamics --- ! 
    113113      IF( .NOT. ln_limthd ) THEN   ! we suppose ice is impermeable => ocean is isolated from atmosphere 
    114          hfx_in   (:,:)   = pfrld(:,:) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:) 
    115          hfx_out  (:,:)   = pfrld(:,:) *   qns_oce(:,:)                  + qemp_oce(:,:) 
     114         hfx_in   (:,:)   = ( 1._wp - at_i_b(:,:) ) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:) 
     115         hfx_out  (:,:)   = ( 1._wp - at_i_b(:,:) ) *   qns_oce(:,:)                  + qemp_oce(:,:) 
    116116         ftr_ice  (:,:,:) = 0._wp 
    117117         emp_ice  (:,:)   = 0._wp 
     
    195195         &     + sfx_res(:,:) + sfx_dyn(:,:) + sfx_bri(:,:) + sfx_sub(:,:) + sfx_lam(:,:) 
    196196 
    197       !-------------------------------------------------------------! 
    198       !   mass of snow and ice per unit area for embedded sea-ice   ! 
    199       !-------------------------------------------------------------! 
    200       IF( nn_ice_embd /= 0 ) THEN 
    201          ! save mass from the previous ice time step 
    202          snwice_mass_b(:,:) = snwice_mass(:,:)                   
    203          ! new mass per unit area 
    204          snwice_mass  (:,:) = tmask(:,:,1) * ( rhosn * vt_s(:,:) + rhoic * vt_i(:,:)  )  
    205          ! time evolution of snow+ice mass 
    206          snwice_fmass (:,:) = ( snwice_mass(:,:) - snwice_mass_b(:,:) ) * r1_rdtice 
    207       ENDIF 
     197      !----------------------------------------! 
     198      !   mass of snow and ice per unit area   ! 
     199      !----------------------------------------! 
     200      ! save mass from the previous ice time step 
     201      snwice_mass_b(:,:) = snwice_mass(:,:)                   
     202      ! new mass per unit area 
     203      snwice_mass  (:,:) = tmask(:,:,1) * ( rhosn * vt_s(:,:) + rhoic * vt_i(:,:)  )  
     204      ! time evolution of snow+ice mass 
     205      snwice_fmass (:,:) = ( snwice_mass(:,:) - snwice_mass_b(:,:) ) * r1_rdtice 
    208206 
    209207      !-----------------------------------------------! 
     
    243241      !!                      tmod_io = rhoco * | U_ice-U_oce | 
    244242      !!                - update the modulus of stress at ocean surface 
    245       !!                      taum = frld * taum + (1-frld) * tmod_io * | U_ice-U_oce | 
     243      !!                      taum = (1-a) * taum + a * tmod_io * | U_ice-U_oce | 
    246244      !!              * at each ocean time step (every kt):  
    247245      !!                  compute linearized ice-ocean stresses as 
     
    336334      ! 
    337335      IF( .NOT. ln_rstart ) THEN 
    338          !                                      ! embedded sea ice 
    339          IF( nn_ice_embd /= 0 ) THEN            ! mass exchanges between ice and ocean (case 1 or 2) set the snow+ice mass 
    340             snwice_mass  (:,:) = tmask(:,:,1) * ( rhosn * vt_s(:,:) + rhoic * vt_i(:,:)  ) 
    341             snwice_mass_b(:,:) = snwice_mass(:,:) 
    342          ELSE 
    343             snwice_mass  (:,:) = 0._wp          ! no mass exchanges 
    344             snwice_mass_b(:,:) = 0._wp          ! no mass exchanges 
    345          ENDIF 
    346          IF( nn_ice_embd == 2 ) THEN            ! full embedment (case 2) deplete the initial ssh below sea-ice area 
     336         ! 
     337         snwice_mass  (:,:) = tmask(:,:,1) * ( rhosn * vt_s(:,:) + rhoic * vt_i(:,:)  )   ! snow+ice mass 
     338         snwice_mass_b(:,:) = snwice_mass(:,:) 
     339         ! 
     340         IF( ln_ice_embd ) THEN            ! embedded sea-ice: deplete the initial ssh below sea-ice area 
    347341            sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 
    348342            sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90

    r8239 r8313  
    172172            ! --- Energy received in the lead, zqld is defined everywhere (J.m-2) --- ! 
    173173            zqld =  tmask(ji,jj,1) * rdt_ice *  & 
    174                &    ( pfrld(ji,jj) * qsr_oce(ji,jj) * frq_m(ji,jj) + pfrld(ji,jj) * qns_oce(ji,jj) + qemp_oce(ji,jj) ) 
     174               &    ( ( 1._wp - at_i_b(ji,jj) ) * qsr_oce(ji,jj) * frq_m(ji,jj) +  & 
     175               &      ( 1._wp - at_i_b(ji,jj) ) * qns_oce(ji,jj) + qemp_oce(ji,jj) ) 
    175176 
    176177            ! --- Energy needed to bring ocean surface layer until its freezing (<0, J.m-2) --- ! 
     
    210211      IF( .NOT. ln_limdO )  qlead(:,:) = 0._wp 
    211212      ! In case we bypass growing/melting from top and bottom: we suppose ice is impermeable => ocean is isolated from atmosphere 
    212       IF( .NOT. ln_limdH )  hfx_in(:,:) = pfrld(:,:) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:) 
     213      IF( .NOT. ln_limdH )  hfx_in(:,:) = ( 1._wp - at_i_b(:,:) ) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:) 
    213214      IF( .NOT. ln_limdH )  fhtur (:,:) = 0._wp  ;  fhld  (:,:) = 0._wp 
    214215 
     
    221222      DO jj = 1, jpj 
    222223         DO ji = 1, jpi 
    223             hfx_out(ji,jj) =   pfrld(ji,jj) * qns_oce(ji,jj) + qemp_oce(ji,jj)  &  ! Non solar heat flux received by the ocean                
    224                &             - qlead(ji,jj) * r1_rdtice                         &  ! heat flux taken from the ocean where there is open water ice formation 
    225                &             - at_i(ji,jj) * fhtur(ji,jj)                       &  ! heat flux taken by turbulence 
    226                &             - at_i(ji,jj) *  fhld(ji,jj)                          ! heat flux taken during bottom growth/melt  
    227                                                                                    !    (fhld should be 0 while bott growth) 
     224            hfx_out(ji,jj) = ( 1._wp - at_i_b(ji,jj) ) * qns_oce(ji,jj) + qemp_oce(ji,jj)  &  ! Non solar heat flux received by the ocean                
     225               &             - qlead(ji,jj) * r1_rdtice                                    &  ! heat flux taken from the ocean where there is open water ice formation 
     226               &             - at_i(ji,jj) * fhtur(ji,jj)                                  &  ! heat flux taken by turbulence 
     227               &             - at_i(ji,jj) *  fhld(ji,jj)                                     ! heat flux taken during bottom growth/melt  
     228                                                                                              !    (fhld should be 0 while bott growth) 
    228229         END DO 
    229230      END DO 
     
    590591      !!------------------------------------------------------------------- 
    591592      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    592       NAMELIST/namicethd/ rn_kappa_i, nn_conv_dif, rn_terr_dif, nn_ice_thcon, ln_it_qnsice, nn_monocat, rn_cdsn,  & 
    593          &                ln_limdH, rn_betas,                                                                     & 
    594          &                ln_limdA, rn_beta, rn_dmin,                                                             & 
     593      NAMELIST/namicethd/ rn_kappa_i, nn_ice_thcon, ln_dqnsice, rn_cdsn,                                  & 
     594         &                ln_limdH, rn_betas,                                                             & 
     595         &                ln_limdA, rn_beta, rn_dmin,                                                     & 
    595596         &                ln_limdO, rn_hnewice, ln_frazil, rn_maxfrazb, rn_vfrazb, rn_Cfrazb, rn_himin 
    596597      !!------------------------------------------------------------------- 
     
    605606      IF(lwm) WRITE ( numoni, namicethd ) 
    606607      ! 
    607       IF ( ( jpl > 1 ) .AND. ( nn_monocat == 1 ) ) THEN  
    608          nn_monocat = 0 
    609          IF(lwp) WRITE(numout,*) 
    610          IF(lwp) WRITE(numout,*) '   nn_monocat forced to 0 as jpl>1, i.e. multi-category case is chosen' 
    611       ENDIF 
    612608      ! 
    613609      IF(lwp) THEN                          ! control print 
     
    616612         WRITE(numout,*)'   -- limthd_dif --' 
    617613         WRITE(numout,*)'      extinction radiation parameter in sea ice               rn_kappa_i   = ', rn_kappa_i 
    618          WRITE(numout,*)'      maximal n. of iter. for heat diffusion computation      nn_conv_dif  = ', nn_conv_dif 
    619          WRITE(numout,*)'      maximal err. on T for heat diffusion computation        rn_terr_dif  = ', rn_terr_dif 
    620614         WRITE(numout,*)'      switch for comp. of thermal conductivity in the ice     nn_ice_thcon = ', nn_ice_thcon 
    621          WRITE(numout,*)'      iterate the surface non-solar flux (T) or not (F)       ln_it_qnsice = ', ln_it_qnsice 
    622          WRITE(numout,*)'      virtual ITD mono-category parameterizations (1) or not  nn_monocat   = ', nn_monocat 
     615         WRITE(numout,*)'      change the surface non-solar flux with Tsu or not       ln_dqnsice   = ', ln_dqnsice 
    623616         WRITE(numout,*)'      thermal conductivity of the snow                        rn_cdsn      = ', rn_cdsn 
    624617         WRITE(numout,*)'   -- limthd_dh --' 
     
    641634      ENDIF 
    642635      ! 
     636      IF ( rn_hnewice < rn_himin )   CALL ctl_stop( 'STOP', 'lim_thd_init : rn_hnewice should be >= rn_himin' ) 
     637      ! 
    643638   END SUBROUTINE lim_thd_init 
    644639 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90

    r8239 r8313  
    702702   !!-------------------------------------------------------------------------- 
    703703   SUBROUTINE lim_thd_snwblow_2d( pin, pout ) 
    704       REAL(wp), DIMENSION(:,:), INTENT(in   ) :: pin   ! previous fraction lead ( pfrld or (1. - a_i_b) ) 
     704      REAL(wp), DIMENSION(:,:), INTENT(in   ) :: pin   ! previous fraction lead ( 1. - a_i_b ) 
    705705      REAL(wp), DIMENSION(:,:), INTENT(inout) :: pout 
    706706      pout = ( 1._wp - ( pin )**rn_betas ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90

    r8239 r8313  
    9292 
    9393      !! * Local variables 
    94       INTEGER ::   ji          ! spatial loop index 
    95       INTEGER ::   ii, ij      ! temporary dummy loop index 
    96       INTEGER ::   numeq       ! current reference number of equation 
    97       INTEGER ::   jk       ! vertical dummy loop index  
    98       INTEGER ::   nconv       ! number of iterations in iterative procedure 
     94      INTEGER ::   ji             ! spatial loop index 
     95      INTEGER ::   ii, ij         ! temporary dummy loop index 
     96      INTEGER ::   numeq          ! current reference number of equation 
     97      INTEGER ::   jk             ! vertical dummy loop index  
    9998      INTEGER ::   minnumeqmin, maxnumeqmax 
     99      INTEGER ::   iconv          ! number of iterations in iterative procedure 
     100      INTEGER ::   iconv_max = 50 ! max number of iterations in iterative procedure 
    100101       
    101102      INTEGER, POINTER, DIMENSION(:) ::   numeqmin   ! reference number of top equation 
     
    109110      REAL(wp) ::   zkimin    =  0.10_wp      ! minimum ice thermal conductivity 
    110111      REAL(wp) ::   ztsu_err  =  1.e-5_wp     ! range around which t_su is considered as 0°C  
    111       REAL(wp) ::   ztmelt_i    ! ice melting temperature 
    112       REAL(wp) ::   zerritmax   ! current maximal error on temperature  
     112      REAL(wp) ::   ztmelt_i                  ! ice melting temperature 
    113113      REAL(wp) ::   zhsu 
     114      REAL(wp) ::   zdti_max                  ! current maximal error on temperature  
     115      REAL(wp) ::   zdti_bnd = 1.e-4_wp       ! maximal authorized error on temperature  
    114116       
    115117      REAL(wp), POINTER, DIMENSION(:)     ::   isnow       ! switch for presence (1) or absence (0) of snow 
     
    122124      REAL(wp), POINTER, DIMENSION(:)     ::   zf          ! surface flux function 
    123125      REAL(wp), POINTER, DIMENSION(:)     ::   dzf         ! derivative of the surface flux function 
    124       REAL(wp), POINTER, DIMENSION(:)     ::   zerrit      ! current error on temperature 
     126      REAL(wp), POINTER, DIMENSION(:)     ::   zdti        ! current error on temperature 
    125127      REAL(wp), POINTER, DIMENSION(:)     ::   zdifcase    ! case of the equation resolution (1->4) 
    126128      REAL(wp), POINTER, DIMENSION(:)     ::   zftrice     ! solar radiation transmitted through the ice 
     
    168170      CALL wrk_alloc( jpij, numeqmin, numeqmax ) 
    169171      CALL wrk_alloc( jpij, isnow, ztsub, ztsubit, zh_i, zh_s, zfsw ) 
    170       CALL wrk_alloc( jpij, zf, dzf, zqns_ice_b, zerrit, zdifcase, zftrice, zihic, zghe ) 
     172      CALL wrk_alloc( jpij, zf, dzf, zqns_ice_b, zdti, zdifcase, zftrice, zihic, zghe ) 
    171173      CALL wrk_alloc( jpij,nlay_i+1, ztcond_i, zradtr_i, zradab_i, zkappa_i, ztib, zeta_i, ztitemp, z_i, zspeche_i, kjstart=0 ) 
    172174      CALL wrk_alloc( jpij,nlay_s+1,           zradtr_s, zradab_s, zkappa_s, ztsb, zeta_s, ztstemp, z_s, kjstart=0 ) 
     
    290292         ztsubit(ji) =  t_su_1d(ji)                              ! temperature at the previous iter 
    291293         t_su_1d(ji) =  MIN( t_su_1d(ji), rt0 - ztsu_err )       ! necessary 
    292          zerrit (ji) =  1000._wp                                 ! initial value of error 
     294         zdti  (ji) =  1000._wp                                 ! initial value of error 
    293295      END DO 
    294296 
     
    305307      END DO 
    306308 
    307       nconv     =  0           ! number of iterations 
    308       zerritmax =  1000._wp    ! maximal value of error on all points 
    309  
    310       DO WHILE ( zerritmax > rn_terr_dif .AND. nconv < nn_conv_dif ) 
    311          ! 
    312          nconv = nconv + 1 
     309      iconv    =  0           ! number of iterations 
     310      zdti_max =  1000._wp    ! maximal value of error on all points 
     311 
     312      DO WHILE ( zdti_max > zdti_bnd .AND. iconv < iconv_max ) 
     313         ! 
     314         iconv = iconv + 1 
    313315         ! 
    314316         !------------------------------------------------------------------------------| 
     
    452454         !------------------------------------------------------------------------------| 
    453455         ! 
    454          IF ( ln_it_qnsice ) THEN  
     456         IF ( ln_dqnsice ) THEN  
    455457            DO ji = kideb , kiut 
    456458               ! update of the non solar flux according to the update in T_su 
     
    703705         ! 
    704706         ! check that nowhere it has started to melt 
    705          ! zerrit(ji) is a measure of error, it has to be under terr_dif 
     707         ! zdti(ji) is a measure of error, it has to be under zdti_bnd 
    706708         DO ji = kideb , kiut 
    707709            t_su_1d(ji) =  MAX(  MIN( t_su_1d(ji) , rt0 ) , 190._wp  ) 
    708             zerrit(ji) =  ABS( t_su_1d(ji) - ztsubit(ji) )      
     710            zdti   (ji) =  ABS( t_su_1d(ji) - ztsubit(ji) )      
    709711         END DO 
    710712 
     
    712714            DO ji = kideb , kiut 
    713715               t_s_1d(ji,jk) = MAX(  MIN( t_s_1d(ji,jk), rt0 ), 190._wp  ) 
    714                zerrit(ji)    = MAX( zerrit(ji), ABS( t_s_1d(ji,jk) - ztstemp(ji,jk) ) ) 
     716               zdti  (ji)    = MAX( zdti(ji), ABS( t_s_1d(ji,jk) - ztstemp(ji,jk) ) ) 
    715717            END DO 
    716718         END DO 
     
    720722               ztmelt_i      = -tmut * s_i_1d(ji,jk) + rt0  
    721723               t_i_1d(ji,jk) =  MAX( MIN( t_i_1d(ji,jk), ztmelt_i ), 190._wp ) 
    722                zerrit(ji)    =  MAX( zerrit(ji), ABS( t_i_1d(ji,jk) - ztitemp(ji,jk) ) ) 
     724               zdti  (ji)    =  MAX( zdti(ji), ABS( t_i_1d(ji,jk) - ztitemp(ji,jk) ) ) 
    723725            END DO 
    724726         END DO 
     
    726728         ! Compute spatial maximum over all errors 
    727729         ! note that this could be optimized substantially by iterating only the non-converging points 
    728          zerritmax = 0._wp 
     730         zdti_max = 0._wp 
    729731         DO ji = kideb, kiut 
    730             zerritmax = MAX( zerritmax, zerrit(ji) )    
    731          END DO 
    732          IF( lk_mpp ) CALL mpp_max( zerritmax, kcom=ncomm_ice ) 
     732            zdti_max = MAX( zdti_max, zdti(ji) )    
     733         END DO 
     734         IF( lk_mpp ) CALL mpp_max( zdti_max, kcom=ncomm_ice ) 
    733735 
    734736      END DO  ! End of the do while iterative procedure 
     
    745747 
    746748      IF( ln_limctl .AND. lwp ) THEN 
    747          WRITE(numout,*) ' zerritmax : ', zerritmax 
    748          WRITE(numout,*) ' nconv     : ', nconv 
     749         WRITE(numout,*) ' zdti_max : ', zdti_max 
     750         WRITE(numout,*) ' iconv    : ', iconv 
    749751      ENDIF 
    750752 
     
    772774 
    773775      ! --- diagnose the change in non-solar flux due to surface temperature change --- ! 
    774       IF ( ln_it_qnsice ) THEN 
     776      IF ( ln_dqnsice ) THEN 
    775777         DO ji = kideb, kiut 
    776778            hfx_err_dif_1d(ji) = hfx_err_dif_1d(ji) - ( qns_ice_1d(ji)  - zqns_ice_b(ji) ) * a_i_1d(ji)  
     
    810812      CALL wrk_dealloc( jpij, numeqmin, numeqmax ) 
    811813      CALL wrk_dealloc( jpij, isnow, ztsub, ztsubit, zh_i, zh_s, zfsw ) 
    812       CALL wrk_dealloc( jpij, zf, dzf, zqns_ice_b, zerrit, zdifcase, zftrice, zihic, zghe ) 
     814      CALL wrk_dealloc( jpij, zf, dzf, zqns_ice_b, zdti, zdifcase, zftrice, zihic, zghe ) 
    813815      CALL wrk_dealloc( jpij,nlay_i+1, ztcond_i, zradtr_i, zradab_i, zkappa_i, ztib, zeta_i, ztitemp, z_i, zspeche_i, kjstart = 0 ) 
    814816      CALL wrk_dealloc( jpij,nlay_s+1,           zradtr_s, zradab_s, zkappa_s, ztsb, zeta_s, ztstemp, z_s, kjstart = 0 ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90

    r7753 r8313  
    6767      !!             - Updating ice internal temperature 
    6868      !!             - Computation of variation of ice volume and mass 
    69       !!             - Computation of frldb after lateral accretion and  
     69      !!             - Computation of a_i after lateral accretion and  
    7070      !!               update ht_s_1d, ht_i_1d and tbif_1d(:,:)       
    7171      !!------------------------------------------------------------------------ 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90

    r8294 r8313  
    109109      !---------------------------------------- 
    110110      ! fluxes  
    111       ! pfrld is the lead fraction at the previous time step (actually between TRP and THD) 
    112       IF( iom_use('qsr_oce') )   CALL iom_put( "qsr_oce" , qsr_oce(:,:) * pfrld(:,:) )                                   !     solar flux at ocean surface 
    113       IF( iom_use('qns_oce') )   CALL iom_put( "qns_oce" , qns_oce(:,:) * pfrld(:,:) + qemp_oce(:,:) )                   ! non-solar flux at ocean surface 
     111      IF( iom_use('qsr_oce') )   CALL iom_put( "qsr_oce" , qsr_oce(:,:) * ( 1._wp - at_i_b(:,:) ) )                      !     solar flux at ocean surface 
     112      IF( iom_use('qns_oce') )   CALL iom_put( "qns_oce" , qns_oce(:,:) * ( 1._wp - at_i_b(:,:) ) + qemp_oce(:,:) )      ! non-solar flux at ocean surface 
    114113      IF( iom_use('qsr_ice') )   CALL iom_put( "qsr_ice" , SUM( qsr_ice(:,:,:) * a_i_b(:,:,:), dim=3 ) )                 !     solar flux at ice surface 
    115114      IF( iom_use('qns_ice') )   CALL iom_put( "qns_ice" , SUM( qns_ice(:,:,:) * a_i_b(:,:,:), dim=3 ) + qemp_ice(:,:) ) ! non-solar flux at ice surface 
    116115      IF( iom_use('qtr_ice') )   CALL iom_put( "qtr_ice" , SUM( ftr_ice(:,:,:) * a_i_b(:,:,:), dim=3 ) )                 !     solar flux transmitted thru ice 
    117       IF( iom_use('qt_oce' ) )   CALL iom_put( "qt_oce"  , ( qsr_oce(:,:) + qns_oce(:,:) ) * pfrld(:,:) + qemp_oce(:,:) )   
     116      IF( iom_use('qt_oce' ) )   CALL iom_put( "qt_oce"  , ( qsr_oce(:,:) + qns_oce(:,:) ) * ( 1._wp - at_i_b(:,:) ) + qemp_oce(:,:) ) 
    118117      IF( iom_use('qt_ice' ) )   CALL iom_put( "qt_ice"  , SUM( ( qns_ice(:,:,:) + qsr_ice(:,:,:) )   & 
    119118         &                                                      * a_i_b(:,:,:), dim=3 ) + qemp_ice(:,:) ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90

    r8240 r8313  
    8282 
    8383   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   sprecip_1d    !: <==> the 2D  sprecip 
    84    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   frld_1d       !: <==> the 2D  frld 
    8584   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   at_i_1d        !: <==> the 2D  at_i 
    8685   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   fhtur_1d      !: <==> the 2D  fhtur 
     
    153152      ! 
    154153      ii = ii + 1 
    155       ALLOCATE( sprecip_1d (jpij) , frld_1d    (jpij) , at_i_1d    (jpij) ,                     & 
     154      ALLOCATE( sprecip_1d (jpij) , at_i_1d    (jpij) ,                     & 
    156155         &      fhtur_1d   (jpij) , wfx_snw_1d (jpij) , wfx_spr_1d (jpij) , wfx_snw_sum_1d(jpij) , & 
    157156         &      fhld_1d    (jpij) , wfx_sub_1d (jpij) , wfx_bog_1d (jpij) , wfx_bom_1d(jpij) ,  & 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90

    r8306 r8313  
    146146            CALL iom_rstput( kt, nitdin_r, inum, 'sshn'   , sshn              ) 
    147147#if defined key_lim3 
    148             IF( nn_ice == 2  .OR.  nn_ice == 3 ) THEN 
    149                IF( ALLOCATED(frld) ) THEN 
    150                   CALL iom_rstput( kt, nitdin_r, inum, 'iceconc', 1._wp - frld(:,:)   ) 
     148            IF( nn_ice == 3 ) THEN 
     149               IF( ALLOCATED(at_i) ) THEN 
     150                  CALL iom_rstput( kt, nitdin_r, inum, 'iceconc', at_i(:,:)   ) 
    151151               ELSE 
    152                   CALL ctl_warn('Ice concentration not written to background as ice variable frld not allocated on this timestep') 
     152                  CALL ctl_warn('Ice concentration not written to background as ice variable at_i not allocated on this timestep') 
    153153               ENDIF 
    154154            ENDIF 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r8306 r8313  
    3636   USE lib_mpp          ! MPP library 
    3737#if defined key_lim3 
    38    USE ice,   ONLY: htm_i, at_i, pfrld, phicif 
     38   USE ice,   ONLY: htm_i, at_i, at_i_b 
    3939#endif 
    4040   USE sbc_oce          ! Surface boundary condition variables. 
     
    837837            zohicif(:,:) = htm_i(:,:) 
    838838            ! 
    839             at_i(:,:) = 1. - MIN( MAX( 1.-at_i(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 
    840             pfrld     =      MIN( MAX( pfrld(:,:)  - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 
     839            at_i  (:,:) = 1. - MIN( MAX( 1.-at_i  (:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 
     840            at_i_b(:,:) = 1. - MIN( MAX( 1.-at_i_b(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 
    841841            fr_i(:,:) = at_i(:,:)        ! adjust ice fraction 
    842842            ! 
     
    852852            ! nudge ice depth 
    853853            htm_i (:,:) = htm_i (:,:) + zhicifinc(:,:) 
    854             phicif(:,:) = phicif(:,:) + zhicifinc(:,:)        
    855854            ! 
    856855            ! seaice salinity balancing (to add) 
     
    889888            ! Initialize the now fields the background + increment 
    890889            at_i(:,:) = 1. - MIN( MAX( 1.-at_i(:,:) - seaice_bkginc(:,:), 0.0_wp), 1.0_wp) 
    891             pfrld(:,:) = 1.-at_i(:,:)  
     890            at_i_b(:,:) = at_i(:,:)  
    892891            fr_i(:,:) = at_i(:,:)        ! adjust ice fraction 
    893892            ! 
     
    903902            ! nudge ice depth 
    904903            htm_i (:,:) = htm_i (:,:) + zhicifinc(:,:) 
    905             phicif(:,:) = phicif(:,:)        
    906904            ! 
    907905            ! seaice salinity balancing (to add) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90

    r7753 r8313  
    8989      IF(      ln_apr_dyn                                                &   ! atmos. pressure 
    9090         .OR.  ( .NOT.ln_dynspg_ts .AND. (ln_tide_pot .AND. ln_tide) )   &   ! tide potential (no time slitting) 
    91          .OR.  nn_ice_embd == 2  ) THEN                                      ! embedded sea-ice 
     91         .OR.  ln_ice_embd ) THEN                                            ! embedded sea-ice 
    9292         ! 
    9393         DO jj = 2, jpjm1 
     
    123123         ENDIF 
    124124         ! 
    125          IF( nn_ice_embd == 2 ) THEN          !== embedded sea ice: Pressure gradient due to snow-ice mass ==! 
     125         IF( ln_ice_embd ) THEN          !== embedded sea ice: Pressure gradient due to snow-ice mass ==! 
    126126            CALL wrk_alloc( jpi,jpj,   zpice ) 
    127127            !                                             
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r8306 r8313  
    539539#if defined  key_lim3 
    540540      USE ice, ONLY : &            ! LIM3 Ice model variables 
    541          & frld 
     541         & at_i 
    542542#endif 
    543543      IMPLICIT NONE 
     
    564564         & zgphi2                  ! Model latitudes for prof variable 2 
    565565#if ! defined key_lim3 
    566       REAL(wp), POINTER, DIMENSION(:,:) :: frld 
     566      REAL(wp), POINTER, DIMENSION(:,:) :: at_i 
    567567#endif 
    568568      LOGICAL :: llnightav        ! Logical for calculating night-time average 
     
    579579      CALL wrk_alloc( jpi, jpj, zgphi2 ) 
    580580#if ! defined key_lim3 
    581       CALL wrk_alloc(jpi,jpj,frld)  
     581      CALL wrk_alloc(jpi,jpj,at_i)  
    582582#endif 
    583583 
     
    591591 
    592592      !----------------------------------------------------------------------- 
    593       ! No LIM => frld == 0.0_wp 
     593      ! No LIM => at_i == 0.0_wp 
    594594      !----------------------------------------------------------------------- 
    595595#if ! defined key_lim3 
    596       frld(:,:) = 0.0_wp 
     596      at_i(:,:) = 0.0_wp 
    597597#endif 
    598598      !----------------------------------------------------------------------- 
     
    674674                  CYCLE 
    675675               ELSE 
    676                   zsurfvar(:,:) = 1._wp - frld(:,:) 
     676                  zsurfvar(:,:) = at_i(:,:) 
    677677               ENDIF 
    678678 
     
    699699      CALL wrk_dealloc( jpi, jpj, zgphi2 ) 
    700700#if ! defined key_lim3 
    701       CALL wrk_dealloc(jpi,jpj,frld) 
     701      CALL wrk_dealloc(jpi,jpj,at_i) 
    702702#endif 
    703703 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r7788 r8313  
    4747   LOGICAL , PUBLIC ::   ln_apr_dyn     !: Atmospheric pressure forcing used on dynamics (ocean & ice) 
    4848   INTEGER , PUBLIC ::   nn_ice         !: flag for ice in the surface boundary condition (=0/1/2/3) 
    49    INTEGER , PUBLIC ::   nn_ice_embd    !: flag for levitating/embedding sea-ice in the ocean 
    50    !                                             !: =0 levitating ice (no mass exchange, concentration/dilution effect) 
    51    !                                             !: =1 levitating ice with mass and salt exchange but no presure effect 
    52    !                                             !: =2 embedded sea-ice (full salt and mass exchanges and pressure) 
     49   LOGICAL , PUBLIC ::   ln_ice_embd    !: flag for levitating/embedding sea-ice in the ocean 
     50   !                                             !: =F levitating ice with mass and salt exchange but no presure effect 
     51   !                                             !: =T embedded sea-ice (full salt and mass exchanges and pressure) 
    5352   INTEGER , PUBLIC ::   nn_components  !: flag for sbc module (including sea-ice) coupling mode (see component definition below)  
    5453   INTEGER , PUBLIC ::   nn_limflx      !: LIM3 Multi-category heat flux formulation 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90

    r8306 r8313  
    4040   USE lib_fortran    ! to use key_nosignedzero 
    4141#if defined key_lim3 
    42    USE ice     , ONLY :   u_ice, v_ice, jpl, pfrld, a_i_b, at_i_b 
     42   USE ice     , ONLY :   u_ice, v_ice, jpl, a_i_b, at_i_b 
    4343   USE limthd_dh      ! for CALL lim_thd_snwblow 
    4444#endif 
     
    789789      ! --- evaporation minus precipitation --- ! 
    790790      zsnw(:,:) = 0._wp 
    791       CALL lim_thd_snwblow( pfrld, zsnw )  ! snow distribution over ice after wind blowing 
    792       emp_oce(:,:) = pfrld(:,:) * zevap(:,:) - ( tprecip(:,:) - sprecip(:,:) ) - sprecip(:,:) * (1._wp - zsnw ) 
     791      CALL lim_thd_snwblow( (1.-at_i_b(:,:)), zsnw )  ! snow distribution over ice after wind blowing 
     792      emp_oce(:,:) = ( 1._wp - at_i_b(:,:) ) * zevap(:,:) - ( tprecip(:,:) - sprecip(:,:) ) - sprecip(:,:) * (1._wp - zsnw ) 
    793793      emp_ice(:,:) = SUM( a_i_b(:,:,:) * evap_ice(:,:,:), dim=3 ) - sprecip(:,:) * zsnw 
    794794      emp_tot(:,:) = emp_oce(:,:) + emp_ice(:,:) 
    795795 
    796796      ! --- heat flux associated with emp --- ! 
    797       qemp_oce(:,:) = - pfrld(:,:) * zevap(:,:) * sst_m(:,:) * rcp                               & ! evap at sst 
     797      qemp_oce(:,:) = - ( 1._wp - at_i_b(:,:) ) * zevap(:,:) * sst_m(:,:) * rcp                  & ! evap at sst 
    798798         &          + ( tprecip(:,:) - sprecip(:,:) ) * ( sf(jp_tair)%fnow(:,:,1) - rt0 ) * rcp  & ! liquid precip at Tair 
    799799         &          +   sprecip(:,:) * ( 1._wp - zsnw ) *                                        & ! solid precip at min(Tair,Tsnow) 
     
    803803 
    804804      ! --- total solar and non solar fluxes --- ! 
    805       qns_tot(:,:) = pfrld(:,:) * qns_oce(:,:) + SUM( a_i_b(:,:,:) * qns_ice(:,:,:), dim=3 ) + qemp_ice(:,:) + qemp_oce(:,:) 
    806       qsr_tot(:,:) = pfrld(:,:) * qsr_oce(:,:) + SUM( a_i_b(:,:,:) * qsr_ice(:,:,:), dim=3 ) 
     805      qns_tot(:,:) = ( 1._wp - at_i_b(:,:) ) * qns_oce(:,:) + SUM( a_i_b(:,:,:) * qns_ice(:,:,:), dim=3 )  & 
     806         &           + qemp_ice(:,:) + qemp_oce(:,:) 
     807      qsr_tot(:,:) = ( 1._wp - at_i_b(:,:) ) * qsr_oce(:,:) + SUM( a_i_b(:,:,:) * qsr_ice(:,:,:), dim=3 ) 
    807808 
    808809      ! --- heat content of precip over ice in J/m3 (to be used in 1D-thermo) --- ! 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r8306 r8313  
    15571557      !! 
    15581558      !! ** Details 
    1559       !!             qns_tot = pfrld * qns_oce + ( 1 - pfrld ) * qns_ice   => provided 
     1559      !!             qns_tot = (1-a) * qns_oce + a * qns_ice               => provided 
    15601560      !!                     + qemp_oce + qemp_ice                         => recalculated and added up to qns 
    15611561      !! 
    1562       !!             qsr_tot = pfrld * qsr_oce + ( 1 - pfrld ) * qsr_ice   => provided 
     1562      !!             qsr_tot = (1-a) * qsr_oce + a * qsr_ice               => provided 
    15631563      !! 
    15641564      !!             emp_tot = emp_oce + emp_ice                           => calving is provided and added to emp_tot (and emp_oce). 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r7646 r8313  
    230230      CALL lbc_lnk ( fr_iv , 'V', 1. ) 
    231231 
    232       !                                      ! embedded sea ice 
    233       IF( nn_ice_embd /= 0 ) THEN            ! mass exchanges between ice and ocean (case 1 or 2) set the snow+ice mass 
    234          CALL cice2nemo(vsno(:,:,:),ztmp1,'T', 1. ) 
    235          CALL cice2nemo(vice(:,:,:),ztmp2,'T', 1. ) 
    236          snwice_mass  (:,:) = ( rhosn * ztmp1(:,:) + rhoic * ztmp2(:,:)  ) 
    237          snwice_mass_b(:,:) = snwice_mass(:,:) 
    238       ELSE 
    239          snwice_mass  (:,:) = 0.0_wp         ! no mass exchanges 
    240          snwice_mass_b(:,:) = 0.0_wp         ! no mass exchanges 
    241       ENDIF 
     232      ! set the snow+ice mass 
     233      CALL cice2nemo(vsno(:,:,:),ztmp1,'T', 1. ) 
     234      CALL cice2nemo(vice(:,:,:),ztmp2,'T', 1. ) 
     235      snwice_mass  (:,:) = ( rhosn * ztmp1(:,:) + rhoic * ztmp2(:,:)  ) 
     236      snwice_mass_b(:,:) = snwice_mass(:,:) 
     237 
    242238      IF( .NOT.ln_rstart ) THEN 
    243          IF( nn_ice_embd == 2 ) THEN            ! full embedment (case 2) deplete the initial ssh below sea-ice area 
     239         IF( ln_ice_embd ) THEN            ! embedded sea-ice: deplete the initial ssh below sea-ice area 
    244240            sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 
    245241            sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 
     
    473469      CALL nemo2cice(ztmp,vocn,'F', -1. ) 
    474470 
    475       IF( nn_ice_embd == 2 ) THEN             !== embedded sea ice: compute representative ice top surface ==! 
     471      IF( ln_ice_embd ) THEN             !== embedded sea ice: compute representative ice top surface ==! 
    476472          ! 
    477473          ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[n/nn_fsbc], n=0,nn_fsbc-1} 
     
    676672      CALL lbc_lnk ( fr_iv , 'V', 1. ) 
    677673 
    678       !                                      ! embedded sea ice 
    679       IF( nn_ice_embd /= 0 ) THEN            ! mass exchanges between ice and ocean (case 1 or 2) set the snow+ice mass 
    680          CALL cice2nemo(vsno(:,:,:),ztmp1,'T', 1. ) 
    681          CALL cice2nemo(vice(:,:,:),ztmp2,'T', 1. ) 
    682          snwice_mass  (:,:) = ( rhosn * ztmp1(:,:) + rhoic * ztmp2(:,:)  ) 
    683          snwice_mass_b(:,:) = snwice_mass(:,:) 
    684          snwice_fmass (:,:) = ( snwice_mass(:,:) - snwice_mass_b(:,:) ) / dt 
    685       ENDIF 
     674      ! set the snow+ice mass 
     675      CALL cice2nemo(vsno(:,:,:),ztmp1,'T', 1. ) 
     676      CALL cice2nemo(vice(:,:,:),ztmp2,'T', 1. ) 
     677      snwice_mass  (:,:) = ( rhosn * ztmp1(:,:) + rhoic * ztmp2(:,:)  ) 
     678      snwice_mass_b(:,:) = snwice_mass(:,:) 
     679      snwice_fmass (:,:) = ( snwice_mass(:,:) - snwice_mass_b(:,:) ) / dt 
    686680 
    687681! Release work space 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r8312 r8313  
    196196                                      CALL sbc_lim_bef                         
    197197                                      CALL lim_var_glo2eqv     ! ht_i and ht_s for ice albedo calculation 
    198                                       CALL lim_var_agg(1)      ! at_i for coupling (via pfrld)  
    199          ! 
    200          pfrld(:,:)   = 1._wp - at_i(:,:) 
    201          phicif(:,:)  = vt_i(:,:) 
     198                                      CALL lim_var_agg(1)      ! at_i for coupling  
    202199 
    203200         !------------------------------------------------------! 
     
    221218               alb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 
    222219                                      CALL blk_ice_flx( t_su, alb_ice ) 
    223                IF( ln_mixcpl      )   CALL sbc_cpl_ice_flx( p_frld=pfrld, palbi=alb_ice, psst=sst_m, pist=t_su ) 
     220               IF( ln_mixcpl      )   CALL sbc_cpl_ice_flx( p_frld=(1.-at_i_b), palbi=alb_ice, psst=sst_m, pist=t_su ) 
    224221               IF( nn_limflx /= 2 )   CALL ice_lim_flx( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_limflx ) 
    225222            CASE ( jp_purecpl ) 
    226223               ! albedo depends on cloud fraction because of non-linear spectral effects 
    227224               alb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 
    228                                       CALL sbc_cpl_ice_flx( p_frld=pfrld, palbi=alb_ice, psst=sst_m, pist=t_su ) 
     225                                      CALL sbc_cpl_ice_flx( p_frld=(1.-at_i_b), palbi=alb_ice, psst=sst_m, pist=t_su ) 
    229226               IF( nn_limflx == 2 )   CALL ice_lim_flx( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_limflx ) 
    230227         END SELECT 
     
    374371      !!------------------------------------------------------------------- 
    375372      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    376       NAMELIST/namicerun/ jpl, nlay_i, nlay_s, rn_amax_n, rn_amax_s, cn_icerst_in, cn_icerst_indir,   & 
     373      NAMELIST/namicerun/ jpl, nlay_i, nlay_s, nn_monocat, rn_amax_n, rn_amax_s, cn_icerst_in, cn_icerst_indir,   & 
    377374         &                cn_icerst_out, cn_icerst_outdir, ln_limthd, ln_limdyn, nn_limdyn, rn_uice, rn_vice   
    378375      NAMELIST/namicediag/ ln_limdiachk, ln_limdiahsb, ln_limctl, iiceprt, jiceprt   
     
    401398         WRITE(numout,*) 'lim_run_init : ice share parameters for dynamics/advection/thermo of sea-ice' 
    402399         WRITE(numout,*) ' ~~~~~~' 
    403          WRITE(numout,*) '   number of ice  categories                               = ', jpl 
    404          WRITE(numout,*) '   number of ice  layers                                   = ', nlay_i 
    405          WRITE(numout,*) '   number of snow layers                                   = ', nlay_s 
    406          WRITE(numout,*) '   maximum ice concentration for NH                        = ', rn_amax_n  
    407          WRITE(numout,*) '   maximum ice concentration for SH                        = ', rn_amax_s 
    408          WRITE(numout,*) '   Ice thermodynamics (T) or not (F)            ln_limthd  = ', ln_limthd 
    409          WRITE(numout,*) '   Ice dynamics       (T) or not (F)            ln_limdyn  = ', ln_limdyn 
    410          WRITE(numout,*) '     (ln_limdyn=T) Ice dynamics switch          nn_limdyn  = ', nn_limdyn 
     400         WRITE(numout,*) '   number of ice  categories                              jpl    = ', jpl 
     401         WRITE(numout,*) '   number of ice  layers                                  nlay_i = ', nlay_i 
     402         WRITE(numout,*) '   number of snow layers                                  nlay_s = ', nlay_s 
     403         WRITE(numout,*) '   virtual ITD mono-category param (1-4) or not (0)   nn_monocat = ', nn_monocat 
     404         WRITE(numout,*) '   maximum ice concentration for NH                              = ', rn_amax_n  
     405         WRITE(numout,*) '   maximum ice concentration for SH                              = ', rn_amax_s 
     406         WRITE(numout,*) '   Ice thermodynamics (T) or not (F)                  ln_limthd  = ', ln_limthd 
     407         WRITE(numout,*) '   Ice dynamics       (T) or not (F)                  ln_limdyn  = ', ln_limdyn 
     408         WRITE(numout,*) '     (ln_limdyn=T) Ice dynamics switch                nn_limdyn  = ', nn_limdyn 
    411409         WRITE(numout,*) '       2: total' 
    412410         WRITE(numout,*) '       1: advection only (no diffusion, no ridging/rafting)' 
    413411         WRITE(numout,*) '       0: advection only (as 1 + prescribed velocity, bypass rheology)' 
    414          WRITE(numout,*) '     (ln_limdyn=T) prescribed u-vel (case nn_limdyn=0)     = ', rn_uice 
    415          WRITE(numout,*) '     (ln_limdyn=T) prescribed v-vel (case nn_limdyn=0)     = ', rn_vice 
     412         WRITE(numout,*) '     (ln_limdyn=T) prescribed u-vel (case nn_limdyn=0)           = ', rn_uice 
     413         WRITE(numout,*) '     (ln_limdyn=T) prescribed v-vel (case nn_limdyn=0)           = ', rn_vice 
    416414         WRITE(numout,*) 
    417415         WRITE(numout,*) '...and ice diagnostics' 
     
    424422      ENDIF 
    425423      ! 
     424      IF ( ( jpl > 1 ) .AND. ( nn_monocat == 1 ) ) THEN 
     425         nn_monocat = 0 
     426         IF(lwp) WRITE(numout,*) 
     427         IF(lwp) WRITE(numout,*) '   nn_monocat forced to 0 as jpl>1, i.e. multi-category case is chosen' 
     428      ENDIF 
     429      IF ( ( jpl == 1 ) .AND. ( nn_monocat == 0 ) ) THEN 
     430         CALL ctl_stop( 'STOP', 'lim_run_init : if jpl=1 then nn_monocat should be between 1 and 4' ) 
     431      ENDIF 
     432      ! 
    426433      ! sea-ice timestep and inverse 
    427434      rdt_ice   = REAL(nn_fsbc) * rdt   
     
    449456      !!------------------------------------------------------------------- 
    450457      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    451       NAMELIST/namiceitd/ nn_catbnd, rn_himean 
     458      NAMELIST/namiceitd/ rn_himean 
    452459      ! 
    453460      INTEGER  ::   jl                   ! dummy loop index 
     
    469476         WRITE(numout,*) 'lim_itd_init : Initialization of ice cat distribution ' 
    470477         WRITE(numout,*) '~~~~~~~~~~~~' 
    471          WRITE(numout,*) '   shape of ice categories distribution                          nn_catbnd = ', nn_catbnd 
    472          WRITE(numout,*) '   mean ice thickness in the domain (only active if nn_catbnd=2) rn_himean = ', rn_himean 
     478         WRITE(numout,*) '   mean ice thickness in the domain            rn_himean = ', rn_himean 
    473479      ENDIF 
    474480      ! 
     
    479485      hi_max(:) = 0._wp 
    480486      ! 
    481       SELECT CASE ( nn_catbnd  )    ! type of ice categories distribution 
    482       ! 
    483       CASE (1)                            !==  tanh function (CICE)  ==! 
    484          zc1 =  3._wp / REAL( jpl, wp ) 
    485          zc2 = 10._wp * zc1 
    486          zc3 =  3._wp 
    487          DO jl = 1, jpl 
    488             zx1 = REAL( jl-1, wp ) / REAL( jpl, wp ) 
    489             hi_max(jl) = hi_max(jl-1) + zc1 + zc2 * (1._wp + TANH( zc3 * (zx1 - 1._wp ) ) ) 
    490          END DO 
    491          ! 
    492       CASE (2)                            !==  h^(-alpha) function  ==! 
    493          zalpha = 0.05_wp 
    494          zhmax  = 3._wp * rn_himean 
    495          DO jl = 1, jpl 
    496             znum = jpl * ( zhmax+1 )**zalpha 
    497             zden = REAL( jpl-jl , wp ) * ( zhmax + 1._wp )**zalpha + REAL( jl , wp ) 
    498             hi_max(jl) = ( znum / zden )**(1./zalpha) - 1 
    499          END DO 
    500          ! 
    501       END SELECT 
     487      !==  h^(-alpha) function  ==! 
     488      zalpha = 0.05_wp 
     489      zhmax  = 3._wp * rn_himean 
     490      DO jl = 1, jpl 
     491         znum = jpl * ( zhmax+1 )**zalpha 
     492         zden = REAL( jpl-jl , wp ) * ( zhmax + 1._wp )**zalpha + REAL( jl , wp ) 
     493         hi_max(jl) = ( znum / zden )**(1./zalpha) - 1 
     494      END DO 
     495      ! 
    502496      ! 
    503497      DO jl = 1, jpl                ! mean thickness by category 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r8306 r8313  
    9090         &             ln_usr   , ln_flx   , ln_blk       ,                          & 
    9191         &             ln_cpl   , ln_mixcpl, nn_components, nn_limflx,               & 
    92          &             nn_ice   , nn_ice_embd,                                       & 
     92         &             nn_ice   , ln_ice_embd,                                       & 
    9393         &             ln_traqsr, ln_dm2dc ,                                         & 
    9494         &             ln_rnf   , nn_fwb   , ln_ssr   , ln_isf    , ln_apr_dyn ,     & 
     
    139139         WRITE(numout,*) '         Multicategory heat flux formulation (LIM3) nn_limflx     = ', nn_limflx 
    140140         WRITE(numout,*) '      Sea-ice : ' 
    141          WRITE(numout,*) '         ice management in the sbc (=0/1/2/3)       nn_ice        = ', nn_ice 
    142          WRITE(numout,*) '         ice-ocean embedded/levitating (=0/1/2)     nn_ice_embd   = ', nn_ice_embd 
     141         WRITE(numout,*) '         ice management in the sbc (=0/1/3/4)       nn_ice        = ', nn_ice 
     142         WRITE(numout,*) '         ice embedded into ocean                    ln_ice_embd   = ', ln_ice_embd 
    143143         WRITE(numout,*) '      Misc. options of sbc : ' 
    144144         WRITE(numout,*) '         Light penetration in temperature Eq.       ln_traqsr     = ', ln_traqsr 
     
    199199      CASE( 1 )                        !- Ice-cover climatology ("Ice-if" model)   
    200200      CASE( 3 )                        !- LIM3 ice model 
    201          IF( nn_ice_embd == 0            )   CALL ctl_stop( 'sbc_init : LIM3 sea-ice models require nn_ice_embd = 1 or 2' ) 
    202201      CASE( 4 )                        !- CICE ice model 
    203202         IF( .NOT.( ln_blk .OR. ln_cpl ) )   CALL ctl_stop( 'sbc_init : CICE sea-ice model requires ln_blk or ln_cpl = T' ) 
    204          IF( nn_ice_embd == 0            )   CALL ctl_stop( 'sbc_init : CICE sea-ice models require nn_ice_embd = 1 or 2' ) 
    205203         IF( lk_agrif                    )   CALL ctl_stop( 'sbc_init : CICE sea-ice model not currently available with AGRIF' )  
    206204      CASE DEFAULT                     !- not supported 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r7753 r8313  
    4848   LOGICAL , PUBLIC ::   ln_qsr_2bd   !: 2 band         light absorption flag 
    4949   LOGICAL , PUBLIC ::   ln_qsr_bio   !: bio-model      light absorption flag 
    50    LOGICAL , PUBLIC ::   ln_qsr_ice   !: light penetration for ice-model LIM3 (clem) 
     50   LOGICAL , PUBLIC ::   ln_qsr_ice   !: light penetration for ice-model 
    5151   INTEGER , PUBLIC ::   nn_chldta    !: use Chlorophyll data (=1) or not (=0) 
    5252   REAL(wp), PUBLIC ::   rn_abs       !: fraction absorbed in the very near surface (RGB & 2 bands) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90

    r7753 r8313  
    6363      INTEGER  ::   ji, jj, jn                                     ! dummy loop indices 
    6464      REAL(wp) ::   zse3t, zrtrn, zratio, zfact                    ! temporary scalars 
    65       REAL(wp) ::   zswitch, zftra, zcd, zdtra, ztfx, ztra         ! temporary scalars 
     65      REAL(wp) ::   zftra, zcd, zdtra, ztfx, ztra                  ! temporary scalars 
    6666      CHARACTER (len=22) :: charout 
    6767      REAL(wp), POINTER, DIMENSION(:,:  ) :: zsfx 
     
    7777      ! 
    7878      zrtrn = 1.e-15_wp 
    79  
    80       SELECT CASE( nn_ice_embd )         ! levitating or embedded sea-ice option 
    81          CASE( 0    )   ;   zswitch = 1  ! (0) standard levitating sea-ice : salt exchange only 
    82          CASE( 1, 2 )   ;   zswitch = 0  ! (1) levitating sea-ice: salt and volume exchange but no pressure effect                                 
    83       !                                  ! (2) embedded sea-ice : salt and volume fluxes and pressure 
    84       END SELECT 
    8579 
    8680      IF( kt == nittrc000 ) THEN 
     
    145139                  ! tracer flux only       : add concentration dilution term in net tracer flux, no F-M in volume flux 
    146140                  ! tracer and mass fluxes : no concentration dilution term in net tracer flux, F-M term in volume flux 
    147                   ztfx  = zftra + zswitch * zcd                ! net tracer flux (+C/D if no ice/ocean mass exchange) 
     141                  ztfx  = zftra                             ! net tracer flux 
    148142    
    149143                  zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * trn(ji,jj,1,jn) )  
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90

    r7881 r8313  
    6363   USE sbc_oce , ONLY :   ln_rnf     =>    ln_rnf     !: runoffs / runoff mouths 
    6464   USE sbc_oce , ONLY :   fr_i       =>    fr_i       !: ice fraction (between 0 to 1) 
    65    USE sbc_oce , ONLY :   nn_ice_embd => nn_ice_embd  !: flag for  levitating/embedding sea-ice in the ocean 
    6665   USE sbc_oce , ONLY :   atm_co2    =>    atm_co2    !  atmospheric pCO2 
    6766   USE traqsr  , ONLY :   rn_abs     =>    rn_abs     !: fraction absorbed in the very near surface 
Note: See TracChangeset for help on using the changeset viewer.