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 8522 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icevar.F90 – NEMO

Ignore:
Timestamp:
2017-09-14T17:52:02+02:00 (7 years ago)
Author:
clem
Message:

changes in style - part6 - ice diffusion (hope the scheme still converges)

File:
1 edited

Legend:

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

    r8517 r8522  
    150150      !!------------------------------------------------------------------ 
    151151      INTEGER  ::   ji, jj, jk, jl   ! dummy loop indices 
    152       REAL(wp) ::   ze_i, z1_cp, z1_2cp             ! local scalars 
     152      REAL(wp) ::   ze_i             ! local scalars 
    153153      REAL(wp) ::   ze_s, ztmelts, zbbb, zccc       !   -      - 
    154154      REAL(wp) ::   zhmax, z1_zhmax, zsm_i          !   -      - 
     
    193193 
    194194      !------------------- 
    195       ! Ice temperature   [K]   (with a minimum value (rt0 - 100.) imposed everywhere) 
     195      ! Ice temperature   [K]   (with a minimum value (rt0 - 100.)) 
    196196      !------------------- 
    197197      zlay_i   = REAL( nlay_i , wp )    ! number of layers 
    198       z1_2cp  = 1._wp / ( 2._wp * cpic ) 
    199198      DO jl = 1, jpl 
    200199         DO jk = 1, nlay_i 
     
    208207                     zbbb             = ( rcp - cpic ) * ztmelts + ze_i * r1_rhoic - lfus 
    209208                     zccc             = SQRT( MAX( zbbb * zbbb - 4._wp * cpic * lfus * ztmelts , 0._wp) ) 
    210                      t_i(ji,jj,jk,jl) = MAX( -100._wp , MIN( -( zbbb + zccc ) * z1_2cp , ztmelts ) ) + rt0   ! [K] with bounds: -100 < t_i < ztmelts 
     209                     t_i(ji,jj,jk,jl) = MAX( -100._wp , MIN( -( zbbb + zccc ) * 0.5_wp * r1_cpic , ztmelts ) ) + rt0   ! [K] with bounds: -100 < t_i < ztmelts 
    211210                     ! 
    212211                  ELSE                                !--- no ice 
    213                      t_i(ji,jj,jk,jl) = rt0 - 100._wp                                   ! impose 173.15 K (i.e. -100 C) 
    214 !!clem: I think we should impose rt0 instead 
     212                     t_i(ji,jj,jk,jl) = rt0 
    215213                  ENDIF 
    216214               END DO 
     
    220218 
    221219      !-------------------- 
    222       ! Snow temperature   [K]   (with a minimum value (rt0 - 100.) imposed everywhere) 
     220      ! Snow temperature   [K]   (with a minimum value (rt0 - 100.)) 
    223221      !-------------------- 
    224222      zlay_s = REAL( nlay_s , wp ) 
    225       z1_cp  = 1._wp / cpic 
    226223      DO jk = 1, nlay_s 
    227224         WHERE( v_s(:,:,:) > epsi20 )        !--- icy area 
    228             t_s(:,:,jk,:) = MAX( -100._wp , MIN( z1_cp * ( -r1_rhosn * (e_s(:,:,jk,:)/v_s(:,:,:)*zlay_s) + lfus ) , 0._wp ) ) + rt0 
     225            t_s(:,:,jk,:) = MAX( -100._wp , MIN( r1_cpic * ( -r1_rhosn * (e_s(:,:,jk,:)/v_s(:,:,:)*zlay_s) + lfus ) , 0._wp ) ) + rt0 
    229226         ELSEWHERE                           !--- no ice 
    230             t_s(:,:,jk,:) =  rt0 - 100._wp         ! impose 173.15 K (i.e. -100 C) 
     227            t_s(:,:,jk,:) = rt0 
    231228         END WHERE 
    232229      END DO 
Note: See TracChangeset for help on using the changeset viewer.