- Timestamp:
- 2018-07-12T17:55:41+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/ICE/icevar.F90
r9923 r9937 228 228 ztmelts = - sz_i(ji,jj,jk,jl) * tmut ! Ice layer melt temperature [C] 229 229 ! Conversion q(S,T) -> T (second order equation) 230 zbbb = ( rcp - cpic ) * ztmelts + ze_i * r1_rhoic - lfus231 zccc = SQRT( MAX( zbbb * zbbb - 4._wp * cpic * lfus * ztmelts , 0._wp) )232 t_i(ji,jj,jk,jl) = MAX( -100._wp , MIN( -( zbbb + zccc ) * 0.5_wp * r1_cpi c, ztmelts ) ) + rt0 ! [K] with bounds: -100 < t_i < ztmelts230 zbbb = ( rcp - rcpi ) * ztmelts + ze_i * r1_rhoi - rLfus 231 zccc = SQRT( MAX( zbbb * zbbb - 4._wp * rcpi * rLfus * ztmelts , 0._wp) ) 232 t_i(ji,jj,jk,jl) = MAX( -100._wp , MIN( -( zbbb + zccc ) * 0.5_wp * r1_cpi , ztmelts ) ) + rt0 ! [K] with bounds: -100 < t_i < ztmelts 233 233 ! 234 234 ELSE !--- no ice … … 247 247 WHERE( v_s(:,:,:) > epsi20 ) !--- icy area 248 248 t_s(:,:,jk,:) = rt0 + MAX( -100._wp , & 249 & MIN( r1_cpi c * ( -r1_rhosn * ( e_s(:,:,jk,:) / v_s(:,:,:) * zlay_s ) + lfus ) , 0._wp ) )249 & MIN( r1_cpi * ( -r1_rhos * ( e_s(:,:,jk,:) / v_s(:,:,:) * zlay_s ) + rLfus ) , 0._wp ) ) 250 250 ELSEWHERE !--- no ice 251 251 t_s(:,:,jk,:) = rt0 … … 498 498 DO ji = 1 , jpi 499 499 ! update exchanges with ocean 500 sfx_res(ji,jj) = sfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * sv_i(ji,jj,jl) * rhoi c* r1_Dt_ice501 wfx_res(ji,jj) = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_i (ji,jj,jl) * rhoi c* r1_Dt_ice502 wfx_res(ji,jj) = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_s (ji,jj,jl) * rhos n* r1_Dt_ice500 sfx_res(ji,jj) = sfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * sv_i(ji,jj,jl) * rhoi * r1_Dt_ice 501 wfx_res(ji,jj) = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_i (ji,jj,jl) * rhoi * r1_Dt_ice 502 wfx_res(ji,jj) = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_s (ji,jj,jl) * rhos * r1_Dt_ice 503 503 ! 504 504 !----------------------------------------------------------------- … … 669 669 ! In case snow load is in excess that would lead to transformation from snow to ice 670 670 ! Then, transfer the snow excess into the ice (different from icethd_dh) 671 zdh = MAX( 0._wp, ( rhos n * zh_s(ji,jl) + ( rhoic- rho0 ) * zh_i(ji,jl) ) * r1_rho0 )671 zdh = MAX( 0._wp, ( rhos * zh_s(ji,jl) + ( rhoi - rho0 ) * zh_i(ji,jl) ) * r1_rho0 ) 672 672 ! recompute h_i, h_s avoiding out of bounds values 673 673 zh_i(ji,jl) = MIN( hi_max(jl), zh_i(ji,jl) + zdh ) 674 zh_s(ji,jl) = MAX( 0._wp, zh_s(ji,jl) - zdh * rhoi c * r1_rhosn)674 zh_s(ji,jl) = MAX( 0._wp, zh_s(ji,jl) - zdh * rhoi * r1_rhos ) 675 675 ENDIF 676 676 END DO … … 854 854 ztmelts = - tmut * sz_i_1d(ji,jk) 855 855 t_i_1d(ji,jk) = MIN( t_i_1d(ji,jk), ztmelts + rt0 ) ! Force t_i_1d to be lower than melting point 856 857 e_i_1d(ji,jk) = rhoi c * ( cpic* ( ztmelts - ( t_i_1d(ji,jk) - rt0 ) ) &858 & + lfus * ( 1._wp - ztmelts / ( t_i_1d(ji,jk) - rt0 ) ) &859 & - rcp* ztmelts )856 ! ! (sometimes zdf scheme produces abnormally high temperatures) 857 e_i_1d(ji,jk) = rhoi * ( rcpi * ( ztmelts - ( t_i_1d(ji,jk) - rt0 ) ) & 858 & + rLfus * ( 1._wp - ztmelts / ( t_i_1d(ji,jk) - rt0 ) ) & 859 & - rcp * ztmelts ) 860 860 END DO 861 861 END DO 862 862 DO jk = 1, nlay_s ! Snow energy of melting 863 863 DO ji = 1, npti 864 e_s_1d(ji,jk) = rhos n * ( cpic * ( rt0 - t_s_1d(ji,jk) ) + lfus )864 e_s_1d(ji,jk) = rhos * ( rcpi * ( rt0 - t_s_1d(ji,jk) ) + rLfus ) 865 865 END DO 866 866 END DO
Note: See TracChangeset
for help on using the changeset viewer.