- Timestamp:
- 2020-04-09T15:48:28+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/ice.F90
r12720 r12725 353 353 !! * Old values of global variables 354 354 !!---------------------------------------------------------------------- 355 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: v_s_b, v_i_b, h_s_b, h_i_b , h_ip_b!: snow and ice volumes/thickness356 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: a_i_b, sv_i_b , oa_i_b!:357 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e_s_b 358 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e_i_b 359 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_ice_b, v_ice_b 360 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: at_i_b 355 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: v_s_b, v_i_b, h_s_b, h_i_b !: snow and ice volumes/thickness 356 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: a_i_b, sv_i_b !: 357 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e_s_b !: snow heat content 358 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e_i_b !: ice temperatures 359 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_ice_b, v_ice_b !: ice velocity 360 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: at_i_b !: ice concentration (total) 361 361 362 362 !!---------------------------------------------------------------------- … … 469 469 ! * Old values of global variables 470 470 ii = ii + 1 471 ALLOCATE( v_s_b (jpi,jpj,jpl) , v_i_b (jpi,jpj,jpl) , h_s_b(jpi,jpj,jpl) , h_i_b(jpi,jpj,jpl), h_ip_b(jpi,jpj,jpl),&472 & a_i_b (jpi,jpj,jpl) , sv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj,nlay_i,jpl) , e_s_b(jpi,jpj,nlay_s,jpl) , 473 & oa_i_b(jpi,jpj,jpl) ,STAT=ierr(ii) )471 ALLOCATE( v_s_b (jpi,jpj,jpl) , v_i_b (jpi,jpj,jpl) , h_s_b(jpi,jpj,jpl) , h_i_b(jpi,jpj,jpl), & 472 & a_i_b (jpi,jpj,jpl) , sv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj,nlay_i,jpl) , e_s_b(jpi,jpj,nlay_s,jpl) , & 473 & STAT=ierr(ii) ) 474 474 475 475 ii = ii + 1 -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/ice1d.F90
r12720 r12725 128 128 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: h_ip_1d !: 129 129 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_ip_frac_1d !: 130 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: a_ip_eff_1d !:131 130 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: v_il_1d !: Ice pond lid 132 131 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: h_il_1d !: … … 212 211 & dh_s_tot(jpij) , dh_i_sum(jpij) , dh_i_itm (jpij) , dh_i_bom(jpij) , dh_i_bog(jpij) , & 213 212 & dh_i_sub(jpij) , dh_s_mlt(jpij) , dh_snowice(jpij) , s_i_1d (jpij) , s_i_new (jpij) , & 214 & a_ip_1d (jpij) , v_ip_1d (jpij) , v_i_1d (jpij) , v_s_1d (jpij) , v_il_1d (jpij) , h_il_1d(jpij) ,&215 & h_i p_1d (jpij) , a_ip_frac_1d(jpij) , a_ip_eff_1d(jpij) ,&213 & a_ip_1d (jpij) , v_ip_1d (jpij) , v_i_1d (jpij) , v_s_1d (jpij) , v_il_1d (jpij) , & 214 & h_il_1d (jpij) , h_ip_1d (jpij) , a_ip_frac_1d(jpij) , & 216 215 & sv_i_1d (jpij) , oa_i_1d (jpij) , o_i_1d (jpij) , STAT=ierr(ii) ) 217 216 ! -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icealb.F90
r12720 r12725 96 96 LOGICAL , INTENT(in ) :: ld_pnd_alb ! effect of melt ponds on albedo 97 97 REAL(wp), INTENT(in ), DIMENSION(:,:,:) :: pafrac_pnd ! melt pond relative fraction (per unit ice area) 98 ! This is the effective fraction not covered up by a pond lid99 98 REAL(wp), INTENT(in ), DIMENSION(:,:,:) :: ph_pnd ! melt pond depth 100 99 REAL(wp), INTENT( out), DIMENSION(:,:,:) :: palb_cs ! albedo of ice under clear sky … … 120 119 DO jj = 1, jpj 121 120 DO ji = 1, jpi 122 ! !--- Specific snow, ice and pond fractions (for now, we prevent melt ponds and snow at the same time) 123 IF( ph_snw(ji,jj,jl) == 0._wp ) THEN 121 !---------------------------------------------! 122 !--- Specific snow, ice and pond fractions ---! 123 !---------------------------------------------! 124 IF( ph_snw(ji,jj,jl) == 0._wp ) THEN !--- no snow : we prevent melt ponds and snow at the same time (for now) 124 125 zafrac_snw = 0._wp 125 126 IF( ld_pnd_alb ) THEN … … 130 131 zafrac_ice = 1._wp - zafrac_pnd 131 132 ELSE 132 zafrac_snw = 1._wp ! Snowfully "shades" melt ponds and ice133 zafrac_snw = 1._wp !--- snow : fully "shades" melt ponds and ice 133 134 zafrac_pnd = 0._wp 134 135 zafrac_ice = 0._wp 135 136 ENDIF 136 137 ! 138 !---------------! 139 !--- Albedos ---! 140 !---------------! 137 141 ! !--- Bare ice albedo (for hi > 150cm) 138 142 IF( ld_pnd_alb ) THEN -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icectl.F90
r12545 r12725 625 625 WRITE(numout,*) ' e_snow : ', e_s(ji,jj,1,jl) , ' e_snow_b : ', e_s_b(ji,jj,1,jl) 626 626 WRITE(numout,*) ' sv_i : ', sv_i(ji,jj,jl) , ' sv_i_b : ', sv_i_b(ji,jj,jl) 627 WRITE(numout,*) ' oa_i : ', oa_i(ji,jj,jl) , ' oa_i_b : ', oa_i_b(ji,jj,jl)628 627 END DO !jl 629 628 -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/iceistate.F90
r12720 r12725 377 377 378 378 ! Melt ponds 379 WHERE( a_i > epsi10 ) 380 a_ip_frac(:,:,:) = a_ip(:,:,:) / a_i(:,:,:) 381 ELSEWHERE 382 a_ip_frac(:,:,:) = 0._wp 379 WHERE( a_i > epsi10 ) ; a_ip_frac(:,:,:) = a_ip(:,:,:) / a_i(:,:,:) 380 ELSEWHERE ; a_ip_frac(:,:,:) = 0._wp 383 381 END WHERE 384 382 a_ip_eff(:,:,:) = a_ip_frac(:,:,:) … … 456 454 e_s_b (:,:,:,:) = e_s (:,:,:,:) 457 455 sv_i_b (:,:,:) = sv_i (:,:,:) 458 oa_i_b (:,:,:) = oa_i (:,:,:)459 456 u_ice_b(:,:) = u_ice(:,:) 460 457 v_ice_b(:,:) = v_ice(:,:) -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icerst.F90
r12720 r12725 251 251 v_ip(:,:,:) = 0._wp 252 252 ENDIF 253 a_ip_eff(:,:,:) = a_ip(:,:,:)254 253 ! melt pond lids 255 id 5= iom_varid( numrir, 'v_il' , ldstop = .FALSE. )256 IF( id 5> 0 ) THEN254 id3 = iom_varid( numrir, 'v_il' , ldstop = .FALSE. ) 255 IF( id3 > 0 ) THEN 257 256 CALL iom_get( numrir, jpdom_autoglo, 'v_il', v_il) 258 257 ELSE … … 262 261 ! fields needed for Met Office (Jules) coupling 263 262 IF( ln_cpl ) THEN 264 id 3= iom_varid( numrir, 'cnd_ice' , ldstop = .FALSE. )265 id 4= iom_varid( numrir, 't1_ice' , ldstop = .FALSE. )266 IF( id 3 > 0 .AND. id4> 0 ) THEN ! fields exist263 id4 = iom_varid( numrir, 'cnd_ice' , ldstop = .FALSE. ) 264 id5 = iom_varid( numrir, 't1_ice' , ldstop = .FALSE. ) 265 IF( id4 > 0 .AND. id5 > 0 ) THEN ! fields exist 267 266 CALL iom_get( numrir, jpdom_autoglo, 'cnd_ice', cnd_ice ) 268 267 CALL iom_get( numrir, jpdom_autoglo, 't1_ice' , t1_ice ) -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icestp.F90
r11536 r12725 363 363 v_s_b (:,:,:) = v_s (:,:,:) ! snow volume 364 364 sv_i_b(:,:,:) = sv_i(:,:,:) ! salt content 365 oa_i_b(:,:,:) = oa_i(:,:,:) ! areal age content366 365 e_s_b (:,:,:,:) = e_s (:,:,:,:) ! snow thermal energy 367 366 e_i_b (:,:,:,:) = e_i (:,:,:,:) ! ice thermal energy … … 372 371 h_i_b(:,:,:) = 0._wp 373 372 h_s_b(:,:,:) = 0._wp 374 END WHERE375 376 WHERE( a_ip(:,:,:) >= epsi20 )377 h_ip_b(:,:,:) = v_ip(:,:,:) / a_ip(:,:,:) ! ice pond thickness378 ELSEWHERE379 h_ip_b(:,:,:) = 0._wp380 373 END WHERE 381 374 ! -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icethd.F90
r12720 r12725 355 355 CALL tab_2d_1d( npti, nptidx(1:npti), h_ip_1d (1:npti), h_ip (:,:,kl) ) 356 356 CALL tab_2d_1d( npti, nptidx(1:npti), a_ip_frac_1d(1:npti), a_ip_frac(:,:,kl) ) 357 CALL tab_2d_1d( npti, nptidx(1:npti), a_ip_eff_1d (1:npti), a_ip_eff (:,:,kl) )358 357 CALL tab_2d_1d( npti, nptidx(1:npti), h_il_1d (1:npti), h_il (:,:,kl) ) 359 358 ! … … 464 463 CALL tab_1d_2d( npti, nptidx(1:npti), h_ip_1d (1:npti), h_ip (:,:,kl) ) 465 464 CALL tab_1d_2d( npti, nptidx(1:npti), a_ip_frac_1d(1:npti), a_ip_frac(:,:,kl) ) 466 CALL tab_1d_2d( npti, nptidx(1:npti), a_ip_eff_1d (1:npti), a_ip_eff (:,:,kl) )467 465 CALL tab_1d_2d( npti, nptidx(1:npti), h_il_1d (1:npti), h_il (:,:,kl) ) 468 466 ! -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icethd_pnd.F90
r12720 r12725 89 89 IF( a_i_1d(ji) > 0._wp .AND. t_su_1d(ji) >= rt0 ) THEN 90 90 a_ip_frac_1d(ji) = rn_apnd 91 a_ip_eff_1d(ji) = rn_apnd92 91 h_ip_1d(ji) = rn_hpnd 93 92 a_ip_1d(ji) = a_ip_frac_1d(ji) * a_i_1d(ji) … … 95 94 ELSE 96 95 a_ip_frac_1d(ji) = 0._wp 97 a_ip_eff_1d(ji) = 0._wp98 96 h_ip_1d(ji) = 0._wp 99 97 a_ip_1d(ji) = 0._wp … … 139 137 !! if no lids: Vp = Vp * exp(0.01*MAX(Tp-Tsu,0)/Tp) --- from Holland et al 2012 --- 140 138 !! 141 !! - Overflow: w = -perm/visc * rho_oce * grav * Hp / Hi --- from Flocco et al 2007 ---139 !! - Flushing: w = -perm/visc * rho_oce * grav * Hp / Hi --- from Flocco et al 2007 --- 142 140 !! perm = permability of sea-ice 143 141 !! visc = water viscosity … … 145 143 !! Hi = ice thickness thru which there is flushing 146 144 !! 147 !!148 145 !! - Corrections: remove melt ponds when lid thickness is 10 times the pond thickness 149 !!150 !! - effective pond area: to be used for albedo151 146 !! 152 147 !! - pond thickness and area is retrieved from pond volume assuming a linear relationship between h_ip and a_ip: … … 161 156 !! Holland et al (J. Clim, 2012) 162 157 !!------------------------------------------------------------------- 163 REAL(wp), DIMENSION(nlay_i) :: z perm ! Permeability of sea ice158 REAL(wp), DIMENSION(nlay_i) :: ztmp ! temporary array 164 159 !! 165 160 REAL(wp), PARAMETER :: zaspect = 0.8_wp ! pond aspect ratio 166 161 REAL(wp), PARAMETER :: zTp = -2._wp ! reference temperature 167 162 REAL(wp), PARAMETER :: zvisc = 1.79e-3_wp ! water viscosity 168 REAL(wp), PARAMETER :: zhl_max = 0.015_wp ! pond lid thickness above which the ponds disappear from the albedo calculation169 REAL(wp), PARAMETER :: zhl_min = 0.005_wp ! pond lid thickness below which the full pond area is used in the albedo calculation170 163 !! 171 164 REAL(wp) :: zfr_mlt, zdv_mlt ! fraction and volume of available meltwater retained for melt ponding 172 165 REAL(wp) :: zdv_frz, zdv_flush ! Amount of melt pond that freezes, flushes 173 166 REAL(wp) :: zhp ! heigh of top of pond lid wrt ssh 174 REAL(wp) :: v_ip_max! max pond volume allowed167 REAL(wp) :: zv_ip_max ! max pond volume allowed 175 168 REAL(wp) :: zdT ! zTp-t_su 176 169 REAL(wp) :: zsbr ! Brine salinity 170 REAL(wp) :: zperm ! permeability of sea ice 177 171 REAL(wp) :: zfac, zdum ! temporary arrays 178 172 REAL(wp) :: z1_rhow, z1_aspect, z1_Tp ! inverse … … 214 208 ! a_ip_max = zfr_mlt * a_i 215 209 ! => from zaspect = h_ip / (a_ip / a_i), set v_ip_max as: 216 v_ip_max = zfr_mlt**2 * a_i_1d(ji) * zaspect217 zdv_mlt = MAX( 0._wp, MIN( zdv_mlt, v_ip_max - v_ip_1d(ji) ) )210 zv_ip_max = zfr_mlt**2 * a_i_1d(ji) * zaspect 211 zdv_mlt = MAX( 0._wp, MIN( zdv_mlt, zv_ip_max - v_ip_1d(ji) ) ) 218 212 219 213 ! If pond depth exceeds half the ice thickness then reduce the pond volume 220 214 ! h_ip_max = 0.5 * h_i 221 215 ! => from zaspect = h_ip / (a_ip / a_i), set v_ip_max as: 222 v_ip_max = z1_aspect * a_i_1d(ji) * 0.25 * h_i_1d(ji) * h_i_1d(ji)223 zdv_mlt = MAX( 0._wp, MIN( zdv_mlt, v_ip_max - v_ip_1d(ji) ) )216 zv_ip_max = z1_aspect * a_i_1d(ji) * 0.25 * h_i_1d(ji) * h_i_1d(ji) 217 zdv_mlt = MAX( 0._wp, MIN( zdv_mlt, zv_ip_max - v_ip_1d(ji) ) ) 224 218 225 219 !--- Pond growing ---! … … 266 260 ! v_ip = h_ip * a_ip 267 261 ! a_ip/a_i = a_ip_frac = h_ip / zaspect (cf Holland 2012, fitting SHEBA so that knowing v_ip we can distribute it to a_ip and h_ip) 268 a_ip_1d(ji) = SQRT( v_ip_1d(ji) * z1_aspect * a_i_1d(ji) )262 a_ip_1d(ji) = MIN( a_i_1d(ji), SQRT( v_ip_1d(ji) * z1_aspect * a_i_1d(ji) ) ) ! make sure a_ip < a_i 269 263 a_ip_frac_1d(ji) = a_ip_1d(ji) / a_i_1d(ji) 270 264 h_ip_1d(ji) = zaspect * a_ip_frac_1d(ji) … … 283 277 & - 0.919_wp * ( t_i_1d(ji,jk) - rt0 )**2 & 284 278 & - 0.0178_wp * ( t_i_1d(ji,jk) - rt0 )**3 ! clem: error here the factor was 0.01878 instead of 0.0178 (cf Flocco 2010) 285 z perm(jk) = MAX( 0._wp, 3.e-08_wp * (sz_i_1d(ji,jk) / zsbr)**3 )279 ztmp(jk) = sz_i_1d(ji,jk) / zsbr 286 280 END DO 281 zperm = MAX( 0._wp, 3.e-08_wp * MINVAL(ztmp)**3 ) 287 282 288 283 ! Do the drainage using Darcy's law 289 zdv_flush = - MINVAL(zperm(:))* rau0 * grav * zhp * rdt_ice / (zvisc * h_i_1d(ji)) * a_ip_1d(ji)284 zdv_flush = -zperm * rau0 * grav * zhp * rdt_ice / (zvisc * h_i_1d(ji)) * a_ip_1d(ji) 290 285 zdv_flush = MAX( zdv_flush, -v_ip_1d(ji) ) 291 286 v_ip_1d(ji) = v_ip_1d(ji) + zdv_flush 292 287 293 288 !--- Set new pond area and depth ---! assuming linear relation between h_ip and a_ip_frac 294 a_ip_1d(ji) = SQRT( v_ip_1d(ji) * z1_aspect * a_i_1d(ji) )289 a_ip_1d(ji) = MIN( a_i_1d(ji), SQRT( v_ip_1d(ji) * z1_aspect * a_i_1d(ji) ) ) ! make sure a_ip < a_i 295 290 a_ip_frac_1d(ji) = a_ip_1d(ji) / a_i_1d(ji) 296 291 h_ip_1d(ji) = zaspect * a_ip_frac_1d(ji) … … 300 295 !--- Corrections and lid thickness ---! 301 296 IF( ln_pnd_lids ) THEN 297 !--- retrieve lid thickness from volume ---! 298 IF( a_ip_1d(ji) > epsi10 ) THEN ; h_il_1d(ji) = v_il_1d(ji) / a_ip_1d(ji) 299 ELSE ; h_il_1d(ji) = 0._wp 300 ENDIF 302 301 !--- remove ponds if lids are much larger than ponds ---! 303 IF ( v_il_1d(ji) > v_ip_1d(ji) * 10._wp ) THEN302 IF ( h_il_1d(ji) > h_ip_1d(ji) * 10._wp ) THEN 304 303 a_ip_1d(ji) = 0._wp 305 304 a_ip_frac_1d(ji) = 0._wp 306 305 h_ip_1d(ji) = 0._wp 307 v_il_1d(ji) = 0._wp 308 ENDIF 309 !--- retrieve lid thickness from volume ---! 310 IF( a_ip_1d(ji) > epsi10 ) THEN ; h_il_1d(ji) = v_il_1d(ji) / a_ip_1d(ji) 311 ELSE ; h_il_1d(ji) = 0._wp ; 306 h_il_1d(ji) = 0._wp 312 307 ENDIF 313 308 ENDIF … … 316 311 317 312 END DO 318 319 !-------------------------------------------------!320 ! How much melt pond is exposed to the atmosphere !321 !-------------------------------------------------!322 ! Calculate the melt pond effective area (used for albedo)323 WHERE ( h_il_1d(1:npti) <= zhl_min ) ; a_ip_eff_1d(1:npti) = a_ip_frac_1d(1:npti) ! lid is very thin. Expose all the pond324 ELSEWHERE( h_il_1d(1:npti) >= zhl_max ) ; a_ip_eff_1d(1:npti) = 0._wp ! lid is very thick. Cover all the pond up with ice and snow325 ELSEWHERE ; a_ip_eff_1d(1:npti) = a_ip_frac_1d(1:npti) * & ! lid is in between. Expose part of the pond326 & ( h_il_1d(1:npti) - zhl_min ) / ( zhl_max - zhl_min )327 END WHERE328 313 ! 329 314 END SUBROUTINE pnd_H12 -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icevar.F90
r12720 r12725 185 185 REAL(wp) :: zhmax, z1_zhmax ! - - 186 186 REAL(wp) :: zlay_i, zlay_s ! - - 187 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z1_a_i, z1_v_i 187 REAL(wp), PARAMETER :: zhl_max = 0.015_wp ! pond lid thickness above which the ponds disappear from the albedo calculation 188 REAL(wp), PARAMETER :: zhl_min = 0.005_wp ! pond lid thickness below which the full pond area is used in the albedo calculation 189 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z1_a_i, z1_v_i, z1_a_ip 188 190 !!------------------------------------------------------------------- 189 191 … … 204 206 ELSEWHERE ; z1_v_i(:,:,:) = 0._wp 205 207 END WHERE 208 ! 209 WHERE( a_ip(:,:,:) > epsi20 ) ; z1_a_ip(:,:,:) = 1._wp / a_ip(:,:,:) 210 ELSEWHERE ; z1_a_ip(:,:,:) = 0._wp 211 END WHERE 206 212 ! !--- ice thickness 207 213 h_i(:,:,:) = v_i (:,:,:) * z1_a_i(:,:,:) … … 218 224 ! !--- ice age 219 225 o_i(:,:,:) = oa_i(:,:,:) * z1_a_i(:,:,:) 220 ! !--- pond fraction and thickness 226 ! !--- pond and lid thickness 227 h_ip(:,:,:) = v_ip(:,:,:) * z1_a_ip(:,:,:) 228 h_il(:,:,:) = v_il(:,:,:) * z1_a_ip(:,:,:) 229 ! !--- melt pond effective area (used for albedo) 221 230 a_ip_frac(:,:,:) = a_ip(:,:,:) * z1_a_i(:,:,:) 222 WHERE( a_ip_frac(:,:,:) > epsi20 ) ; h_ip(:,:,:) = v_ip(:,:,:) * z1_a_i(:,:,:) / a_ip_frac(:,:,:) 223 ELSEWHERE ; h_ip(:,:,:) = 0._wp 224 END WHERE 225 ! !--- pond lid thickness 226 WHERE( a_ip_frac(:,:,:) > epsi20 ) ; h_il(:,:,:) = v_il(:,:,:) * z1_a_i(:,:,:) / a_ip_frac(:,:,:) 227 ELSEWHERE ; h_il(:,:,:) = 0._wp 228 END WHERE 229 ! 231 WHERE ( h_il(:,:,:) <= zhl_min ) ; a_ip_eff(:,:,:) = a_ip_frac(:,:,:) ! lid is very thin. Expose all the pond 232 ELSEWHERE( h_il(:,:,:) >= zhl_max ) ; a_ip_eff(:,:,:) = 0._wp ! lid is very thick. Cover all the pond up with ice and snow 233 ELSEWHERE ; a_ip_eff(:,:,:) = a_ip_frac(:,:,:) * & ! lid is in between. Expose part of the pond 234 & ( h_il(:,:,:) - zhl_min ) / ( zhl_max - zhl_min ) 235 END WHERE 230 236 ! !--- salinity (with a minimum value imposed everywhere) 231 237 IF( nn_icesal == 2 ) THEN -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/SBC/sbccpl.F90
r12288 r12725 2308 2308 SELECT CASE( sn_snd_mpnd%clcat ) 2309 2309 CASE( 'yes' ) 2310 ztmp3(:,:,1:jpl) = a_ip_ frac(:,:,1:jpl)2310 ztmp3(:,:,1:jpl) = a_ip_eff(:,:,1:jpl) 2311 2311 ztmp4(:,:,1:jpl) = h_ip(:,:,1:jpl) 2312 2312 CASE( 'no' ) … … 2314 2314 ztmp4(:,:,:) = 0.0 2315 2315 DO jl=1,jpl 2316 ztmp3(:,:,1) = ztmp3(:,:,1) + a_ip_ frac(:,:,jpl)2316 ztmp3(:,:,1) = ztmp3(:,:,1) + a_ip_eff(:,:,jpl) 2317 2317 ztmp4(:,:,1) = ztmp4(:,:,1) + h_ip(:,:,jpl) 2318 2318 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.