- Timestamp:
- 2017-09-14T17:52:02+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icevar.F90
r8517 r8522 150 150 !!------------------------------------------------------------------ 151 151 INTEGER :: ji, jj, jk, jl ! dummy loop indices 152 REAL(wp) :: ze_i , z1_cp, z1_2cp! local scalars152 REAL(wp) :: ze_i ! local scalars 153 153 REAL(wp) :: ze_s, ztmelts, zbbb, zccc ! - - 154 154 REAL(wp) :: zhmax, z1_zhmax, zsm_i ! - - … … 193 193 194 194 !------------------- 195 ! Ice temperature [K] (with a minimum value (rt0 - 100.) imposed everywhere)195 ! Ice temperature [K] (with a minimum value (rt0 - 100.)) 196 196 !------------------- 197 197 zlay_i = REAL( nlay_i , wp ) ! number of layers 198 z1_2cp = 1._wp / ( 2._wp * cpic )199 198 DO jl = 1, jpl 200 199 DO jk = 1, nlay_i … … 208 207 zbbb = ( rcp - cpic ) * ztmelts + ze_i * r1_rhoic - lfus 209 208 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 < ztmelts209 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 211 210 ! 212 211 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 215 213 ENDIF 216 214 END DO … … 220 218 221 219 !-------------------- 222 ! Snow temperature [K] (with a minimum value (rt0 - 100.) imposed everywhere)220 ! Snow temperature [K] (with a minimum value (rt0 - 100.)) 223 221 !-------------------- 224 222 zlay_s = REAL( nlay_s , wp ) 225 z1_cp = 1._wp / cpic226 223 DO jk = 1, nlay_s 227 224 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 ) ) + rt0225 t_s(:,:,jk,:) = MAX( -100._wp , MIN( r1_cpic * ( -r1_rhosn * (e_s(:,:,jk,:)/v_s(:,:,:)*zlay_s) + lfus ) , 0._wp ) ) + rt0 229 226 ELSEWHERE !--- no ice 230 t_s(:,:,jk,:) = rt0 - 100._wp ! impose 173.15 K (i.e. -100 C)227 t_s(:,:,jk,:) = rt0 231 228 END WHERE 232 229 END DO
Note: See TracChangeset
for help on using the changeset viewer.