- Timestamp:
- 2015-02-11T16:32:03+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5044_CNRS_LIM3CLEAN/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90
r5078 r5079 193 193 rswitch = 1.0 - MAX( 0.0 , SIGN( 1.0 , - v_i(ji,jj,jl) + epsi20 ) ) ! rswitch = 0 if no ice and 1 if yes 194 194 zq_i = rswitch * e_i(ji,jj,jk,jl) / MAX( v_i(ji,jj,jl) , epsi20 ) * REAL(nlay_i,wp) 195 ztmelts = -tmut * s_i(ji,jj,jk,jl) + rt t! Ice layer melt temperature195 ztmelts = -tmut * s_i(ji,jj,jk,jl) + rt0 ! Ice layer melt temperature 196 196 ! 197 197 zaaa = cpic ! Conversion q(S,T) -> T (second order equation) 198 zbbb = ( rcp - cpic ) * ( ztmelts - rt t) + zq_i * r1_rhoic - lfus199 zccc = lfus * (ztmelts-rt t)198 zbbb = ( rcp - cpic ) * ( ztmelts - rt0 ) + zq_i * r1_rhoic - lfus 199 zccc = lfus * (ztmelts-rt0) 200 200 zdiscrim = SQRT( MAX(zbbb*zbbb - 4._wp*zaaa*zccc , 0._wp) ) 201 t_i(ji,jj,jk,jl) = rt t+ rswitch *( - zbbb - zdiscrim ) / ( 2.0 *zaaa )202 t_i(ji,jj,jk,jl) = MIN( rt t, MAX( 173.15_wp, t_i(ji,jj,jk,jl) ) ) ! 100-rtt < t_i < rtt201 t_i(ji,jj,jk,jl) = rt0 + rswitch *( - zbbb - zdiscrim ) / ( 2.0 *zaaa ) 202 t_i(ji,jj,jk,jl) = MIN( rt0, MAX( 173.15_wp, t_i(ji,jj,jk,jl) ) ) ! 100-rt0 < t_i < rt0 203 203 END DO 204 204 END DO … … 219 219 zq_s = rswitch * e_s(ji,jj,jk,jl) / MAX( v_s(ji,jj,jl) , epsi20 ) * REAL(nlay_s,wp) 220 220 ! 221 t_s(ji,jj,jk,jl) = rt t+ rswitch * ( - zfac1 * zq_s + zfac2 )222 t_s(ji,jj,jk,jl) = MIN( rt t, MAX( 173.15, t_s(ji,jj,jk,jl) ) ) ! 100-rtt < t_i < rtt221 t_s(ji,jj,jk,jl) = rt0 + rswitch * ( - zfac1 * zq_s + zfac2 ) 222 t_s(ji,jj,jk,jl) = MIN( rt0, MAX( 173.15, t_s(ji,jj,jk,jl) ) ) ! 100-rt0 < t_i < rt0 223 223 END DO 224 224 END DO … … 415 415 DO jj = 1, jpj 416 416 DO ji = 1, jpi 417 rswitch = ( 1._wp - MAX( 0._wp , SIGN( 1._wp , (t_i(ji,jj,jk,jl) - rt t) + epsi10 ) ) )418 zbvi = - rswitch * tmut * s_i(ji,jj,jk,jl) / MIN( t_i(ji,jj,jk,jl) - rt t, - epsi10 ) &417 rswitch = ( 1._wp - MAX( 0._wp , SIGN( 1._wp , (t_i(ji,jj,jk,jl) - rt0) + epsi10 ) ) ) 418 zbvi = - rswitch * tmut * s_i(ji,jj,jk,jl) / MIN( t_i(ji,jj,jk,jl) - rt0, - epsi10 ) & 419 419 & * v_i(ji,jj,jl) * r1_nlay_i 420 420 rswitch = ( 1._wp - MAX( 0._wp , SIGN( 1._wp , - vt_i(ji,jj) + epsi10 ) ) ) … … 536 536 zei = e_i(ji,jj,jk,jl) 537 537 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * rswitch 538 t_i(ji,jj,jk,jl) = t_i(ji,jj,jk,jl) * rswitch + rt t* ( 1._wp - rswitch )538 t_i(ji,jj,jk,jl) = t_i(ji,jj,jk,jl) * rswitch + rt0 * ( 1._wp - rswitch ) 539 539 ! update exchanges with ocean 540 540 hfx_res(ji,jj) = hfx_res(ji,jj) + ( e_i(ji,jj,jk,jl) - zei ) * r1_rdtice ! W.m-2 <0 … … 554 554 ! Zap snow energy 555 555 !----------------------------------------------------------------- 556 t_s(ji,jj,1,jl) = t_s(ji,jj,1,jl) * rswitch + rt t* ( 1._wp - rswitch )556 t_s(ji,jj,1,jl) = t_s(ji,jj,1,jl) * rswitch + rt0 * ( 1._wp - rswitch ) 557 557 e_s(ji,jj,1,jl) = e_s(ji,jj,1,jl) * rswitch 558 558
Note: See TracChangeset
for help on using the changeset viewer.