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 12371 for NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icevar.F90 – NEMO

Ignore:
Timestamp:
2020-02-12T13:13:26+01:00 (4 years ago)
Author:
dancopsey
Message:

Add changes to match CICE settings.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icevar.F90

    r12369 r12371  
    317317      REAL(wp), PARAMETER :: zsi0 = 3.5_wp 
    318318      REAL(wp), PARAMETER :: zsi1 = 4.5_wp 
     319 
     320      REAL(wp), PARAMETER :: min_salin = 0.1_wp     ! Minimum salinity in sea ice 
     321      REAL(wp) ::            zn                     ! Fraction of ice depth 
     322      REAL(wp), PARAMETER :: msal    = 0.573_wp 
     323      REAL(wp), PARAMETER :: nsal    = 0.407_wp 
     324      REAL(wp), PARAMETER :: saltmax = 9.6_wp 
     325      ! REAL(wp), PARAMETER, DIMENSION(4) :: weights = (/0.06363419, 0.25545967, 0.33155539, 0.34935076/) 
     326      REAL(wp), PARAMETER, DIMENSION(4) :: weights = (/0.0703805, 0.25526203, 0.32860314, 0.34575433/) 
     327       
    319328      !!------------------------------------------------------------------- 
    320329 
     
    350359            DO jj = 1, jpj 
    351360               DO ji = 1, jpi 
    352                   zalpha(ji,jj,jl) = MAX(  0._wp , MIN( ( zsi1 - s_i(ji,jj,jl) ) * z1_dS , 1._wp )  ) 
     361                  zalpha(ji,jj,jl) = 1._wp 
    353362                  !                             ! force a constant profile when SSS too low (Baltic Sea) 
    354363                  IF( 2._wp * s_i(ji,jj,jl) >= sss_m(ji,jj) )   zalpha(ji,jj,jl) = 0._wp   
     
    363372               DO jj = 1, jpj 
    364373                  DO ji = 1, jpi 
    365                      !                          ! linear profile with 0 surface value 
    366                      zs0 = z_slope_s(ji,jj,jl) * ( REAL(jk,wp) - 0.5_wp ) * h_i(ji,jj,jl) * r1_nlay_i 
     374 
     375                     !  Copied over from CICE 
     376                     ! zn = (real(jk,kind=dbl_kind)-0.5_wp) / real(nlay_i,kind=dbl_kind) 
     377                     ! sz_i(ji,jj,jk,jl)=(saltmax/2.0_wp)*(1.0_wp-cos(pi*zn**(nsal/(msal+zn)))) 
     378                     ! sz_i(ji,jj,jk,jl) = max(sz_i(ji,jj,jk,jl), min_salin) 
     379 
     380                     ! Weighting method to match CICE 
     381                     zs0 = (s_i(ji,jj,jl)*4.0_wp) * weights(jk) 
    367382                     zs  = zalpha(ji,jj,jl) * zs0 + ( 1._wp - zalpha(ji,jj,jl) ) * s_i(ji,jj,jl)     ! weighting the profile 
    368383                     sz_i(ji,jj,jk,jl) = MIN( rn_simax, MAX( zs, rn_simin ) ) 
     384 
     385 
     386                     ! zs0 = z_slope_s(ji,jj,jl) * ( REAL(jk,wp) - 0.5_wp ) * h_i(ji,jj,jl) * r1_nlay_i 
     387                     ! zs  = zalpha(ji,jj,jl) * zs0 + ( 1._wp - zalpha(ji,jj,jl) ) * s_i(ji,jj,jl)     ! weighting the profile 
     388                     ! sz_i(ji,jj,jk,jl) = MIN( rn_simax, MAX( zs, rn_simin ) ) 
    369389 
    370390                     IF ( jl == 1 .AND. jj == 26 .AND. ji == 42 ) THEN 
    371391                       write(numout,*) 'icevar: jk, sz_i(ji,jj,jk,jl), s_i(ji,jj,jl), weights(jk) = ',jk, ' ',sz_i(ji,jj,jk,jl), ' ',s_i(ji,jj,jl), ' ',weights(jk) 
    372392                     ENDIF 
     393 
    373394                  END DO 
    374395               END DO 
Note: See TracChangeset for help on using the changeset viewer.