- Timestamp:
- 2013-12-11T15:38:42+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90
r4220 r4332 66 66 PUBLIC lim_var_salprof1d ! 67 67 68 REAL(wp) :: epsi20 = 1.e-20_wp ! module constants69 REAL(wp) :: epsi16 = 1.e-16_wp ! - -70 REAL(wp) :: epsi13 = 1.e-13_wp ! - -71 68 REAL(wp) :: epsi10 = 1.e-10_wp ! - - 72 REAL(wp) :: epsi06 = 1.e-06_wp ! - -73 69 REAL(wp) :: zzero = 0.e0 ! - - 74 70 REAL(wp) :: zone = 1.e0 ! - - … … 117 113 at_i(ji,jj) = at_i(ji,jj) + a_i(ji,jj,jl) ! ice concentration 118 114 ! 119 zinda = MAX( zzero , SIGN( zone , at_i(ji,jj) - epsi1 6) )120 icethi(ji,jj) = vt_i(ji,jj) / MAX( at_i(ji,jj) , epsi1 6) * zinda ! ice thickness115 zinda = MAX( zzero , SIGN( zone , at_i(ji,jj) - epsi10 ) ) 116 icethi(ji,jj) = vt_i(ji,jj) / MAX( at_i(ji,jj) , epsi10 ) * zinda ! ice thickness 121 117 END DO 122 118 END DO … … 138 134 DO jj = 1, jpj 139 135 DO ji = 1, jpi 140 zinda = MAX( zzero , SIGN( zone , vt_i(ji,jj) - epsi1 6) )141 zindb = MAX( zzero , SIGN( zone , at_i(ji,jj) - epsi1 6) )136 zinda = MAX( zzero , SIGN( zone , vt_i(ji,jj) - epsi10 ) ) 137 zindb = MAX( zzero , SIGN( zone , at_i(ji,jj) - epsi10 ) ) 142 138 et_s(ji,jj) = et_s(ji,jj) + e_s(ji,jj,1,jl) ! snow heat content 143 smt_i(ji,jj) = smt_i(ji,jj) + smv_i(ji,jj,jl) / MAX( vt_i(ji,jj) , epsi1 6) * zinda ! ice salinity144 ot_i(ji,jj) = ot_i(ji,jj) + oa_i(ji,jj,jl) / MAX( at_i(ji,jj) , epsi1 6) * zindb ! ice age139 smt_i(ji,jj) = smt_i(ji,jj) + smv_i(ji,jj,jl) / MAX( vt_i(ji,jj) , epsi10 ) * zinda ! ice salinity 140 ot_i(ji,jj) = ot_i(ji,jj) + oa_i(ji,jj,jl) / MAX( at_i(ji,jj) , epsi10 ) * zindb ! ice age 145 141 END DO 146 142 END DO … … 209 205 DO ji = 1, jpi 210 206 ! ! Energy of melting q(S,T) [J.m-3] 211 zq_i = e_i(ji,jj,jk,jl) / area(ji,jj) / MAX( v_i(ji,jj,jl) , epsi 06) * REAL(nlay_i,wp)212 zindb = 1.0 - MAX( 0.0 , SIGN( 1.0 , - v_i(ji,jj,jl) ) ) ! zindb = 0 if no ice and 1 if yes207 zq_i = e_i(ji,jj,jk,jl) / area(ji,jj) / MAX( v_i(ji,jj,jl) , epsi10 ) * REAL(nlay_i,wp) 208 zindb = 1.0 - MAX( 0.0 , SIGN( 1.0 , - v_i(ji,jj,jl) + epsi10 ) ) ! zindb = 0 if no ice and 1 if yes 213 209 zq_i = zq_i * unit_fac * zindb !convert units 214 210 ztmelts = -tmut * s_i(ji,jj,jk,jl) + rtt ! Ice layer melt temperature … … 235 231 DO ji = 1, jpi 236 232 !Energy of melting q(S,T) [J.m-3] 237 zq_s = e_s(ji,jj,jk,jl) / ( area(ji,jj) * MAX( v_s(ji,jj,jl) , epsi 06) ) * REAL(nlay_s,wp)238 zindb = 1._wp - MAX( 0._wp , SIGN( 1._wp , - v_s(ji,jj,jl) ) ) ! zindb = 0 if no ice and 1 if yes233 zq_s = e_s(ji,jj,jk,jl) / ( area(ji,jj) * MAX( v_s(ji,jj,jl) , epsi10 ) ) * REAL(nlay_s,wp) 234 zindb = 1._wp - MAX( 0._wp , SIGN( 1._wp , - v_s(ji,jj,jl) + epsi10 ) ) ! zindb = 0 if no ice and 1 if yes 239 235 zq_s = zq_s * unit_fac * zindb ! convert units 240 236 ! … … 341 337 zind01 = ( 1._wp - zind0 ) * MAX( 0._wp , SIGN( 1._wp , s_i_1 - sm_i(ji,jj,jl) ) ) 342 338 ! If 2.sm_i GE sss_m then zindbal = 1 339 ! this is to force a constant salinity profile in the Baltic Sea 343 340 zindbal = MAX( 0._wp , SIGN( 1._wp , 2._wp * sm_i(ji,jj,jl) - sss_m(ji,jj) ) ) 344 341 zalpha(ji,jj,jl) = zind0 + zind01 * ( sm_i(ji,jj,jl) * dummy_fac0 + dummy_fac1 ) … … 434 431 DO jj = 1, jpj 435 432 DO ji = 1, jpi 436 zinda = ( 1._wp - MAX( 0._wp , SIGN( 1._wp , (t_i(ji,jj,jk,jl) - rtt) + epsi1 6) ) )437 zindb = ( 1._wp - MAX( 0._wp , SIGN( 1._wp , - vt_i(ji,jj) + epsi1 6) ) )438 zbvi = - zinda * tmut * s_i(ji,jj,jk,jl) / MIN( t_i(ji,jj,jk,jl) - rtt, - epsi1 6) &433 zinda = ( 1._wp - MAX( 0._wp , SIGN( 1._wp , (t_i(ji,jj,jk,jl) - rtt) + epsi10 ) ) ) 434 zindb = ( 1._wp - MAX( 0._wp , SIGN( 1._wp , - vt_i(ji,jj) + epsi10 ) ) ) 435 zbvi = - zinda * tmut * s_i(ji,jj,jk,jl) / MIN( t_i(ji,jj,jk,jl) - rtt, - epsi10 ) & 439 436 & * v_i(ji,jj,jl) / REAL(nlay_i,wp) 440 bv_i(ji,jj) = bv_i(ji,jj) + zindb * zbvi / MAX( vt_i(ji,jj) , epsi1 6)437 bv_i(ji,jj) = bv_i(ji,jj) + zindb * zbvi / MAX( vt_i(ji,jj) , epsi10 ) 441 438 END DO 442 439 END DO … … 498 495 zind01 = ( 1._wp - zind0 ) * MAX( 0._wp , SIGN( 1._wp , s_i_1 - sm_i_b(ji) ) ) 499 496 ! if 2.sm_i GE sss_m then zindbal = 1 497 ! this is to force a constant salinity profile in the Baltic Sea 500 498 zindbal = MAX( 0._wp , SIGN( 1._wp , 2._wp * sm_i_b(ji) - sss_m(ii,ij) ) ) 501 499 !
Note: See TracChangeset
for help on using the changeset viewer.