Changeset 8098
- Timestamp:
- 2017-05-30T13:17:53+02:00 (7 years ago)
- Location:
- branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r8061 r8098 285 285 INTEGER , PUBLIC :: nn_pnd_cpl !: type of melt pond coupling: =0 passive, =1 full, =2 radiation only, =3 freshwater only 286 286 REAL(wp), PUBLIC :: rn_apnd !: prescribed pond fraction (0<rn_apnd<1), only if nn_pnd_scheme = 0 287 REAL(wp), PUBLIC :: rn_hpnd !: prescribed pond depth (0<rn_hpnd<1), only if nn_pnd_scheme = 0 287 288 ! END MV MP 2016 288 289 -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
r8085 r8098 88 88 REAL(wp) :: ztmelts, zdh 89 89 INTEGER :: i_hemis, i_fill, jl0 90 REAL(wp) :: zarg, zV, zconv, zdv , z1_jpl90 REAL(wp) :: zarg, zV, zconv, zdv 91 91 REAL(wp), POINTER, DIMENSION(:,:) :: zswitch ! ice indicator 92 92 REAL(wp), POINTER, DIMENSION(:,:) :: zht_i_ini, zat_i_ini, zvt_i_ini !data from namelist or nc file … … 380 380 ! MV MP 2016 381 381 ! Melt pond volume and fraction 382 383 z1_jpl = 1. / REAL(jpl) 384 385 SELECT CASE ( nn_pnd_scheme ) 386 387 CASE ( 0 ) !--- Prescribed melt ponds 388 389 DO jl = 1, jpl 390 391 a_ip(:,:,jl) = rn_apnd * z1_jpl * zswitch(:,:) 392 v_ip(:,:,jl) = 0.1 * zswitch(:,:) * a_ip(:,:,jl) 393 394 END DO 395 396 CASE ( 1, 2 ) !--- Prognostic melt ponds 397 398 DO jl = 1, jpl 399 400 a_ip(:,:,jl) = 0.1 * zswitch(:,:) 401 v_ip(:,:,jl) = 0.1 * zswitch(:,:) * a_ip(:,:,jl) 402 403 END DO 404 405 END SELECT 406 382 IF ( ln_pnd ) THEN 383 384 DO jl = 1, jpl 385 a_ip(:,:,jl) = 0.1 * zswitch(:,:) 386 v_ip(:,:,jl) = 0.1 * zswitch(:,:) * a_ip(:,:,jl) 387 END DO 388 389 ELSE 390 391 a_ip = 0._wp 392 v_ip = 0._wp 393 394 ENDIF 407 395 ! END MV MP 2016 408 396 … … 433 421 a_ip(:,:,:) = 0._wp 434 422 v_ip(:,:,:) = 0._wp 435 h_ip(:,:,:) = 0._wp436 a_ip_frac(:,:,:) = 0._wp437 423 ! END MV MP 2016 438 424 … … 488 474 489 475 ! MV MP 2016 490 IF ( nn_pnd_scheme > = 1) THEN476 IF ( nn_pnd_scheme > 0 ) THEN 491 477 sxap (:,:,:) = 0._wp ; sxvp (:,:,:) = 0._wp 492 478 syap (:,:,:) = 0._wp ; syvp (:,:,:) = 0._wp -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limmp.F90
r8085 r8098 83 83 !!------------------------------------------------------------------- 84 84 INTEGER :: ios ! Local integer output status for namelist read 85 NAMELIST/namicemp/ ln_pnd, nn_pnd_scheme, nn_pnd_cpl, rn_apnd 85 NAMELIST/namicemp/ ln_pnd, nn_pnd_scheme, nn_pnd_cpl, rn_apnd, rn_hpnd 86 86 !!------------------------------------------------------------------- 87 87 … … 103 103 WRITE(numout,*)' Type of melt pond coupling =0 pass., =1 full, =2 rad, 3=fw nn_pnd_cpl = ', nn_pnd_cpl 104 104 WRITE(numout,*)' Prescribed pond fraction rn_apnd = ', rn_apnd 105 WRITE(numout,*)' Prescribed pond depth rn_hpnd = ', rn_hpnd 105 106 ENDIF 106 107 107 IF ( ln_pnd == .FALSE.) THEN108 WRITE(numout ) ' Melt ponds are not activated '109 WRITE(numout ) ' nn_pnd_scheme, nn_pnd_cpl and rn_apnd are set to zero '108 IF ( .NOT. ln_pnd ) THEN 109 WRITE(numout,*) ' Melt ponds are not activated ' 110 WRITE(numout,*) ' nn_pnd_scheme, nn_pnd_cpl, rn_apnd and rn_hpnd are set to zero ' 110 111 nn_pnd_scheme = 0 111 112 nn_pnd_cpl = 0 112 113 rn_apnd = 0._wp 114 rn_hpnd = 0._wp 113 115 ENDIF 116 114 117 ! 115 118 END SUBROUTINE lim_mp_init 116 119 117 120 118 121 … … 142 145 SELECT CASE ( nn_pnd_scheme ) 143 146 147 CASE (0) 148 149 CALL lim_mp_cstt ! staircase melt ponds 150 144 151 CASE (1) 145 152 146 CALL lim_mp_cesm ! empirical melt ponds153 CALL lim_mp_cesm ! empirical melt ponds 147 154 148 155 CASE (2) 149 156 150 CALL lim_mp_topo (at_i, a_i, & 151 & vt_i, v_i, v_s, t_i, s_i, a_ip_frac, & 157 CALL lim_mp_topo & ! topographic melt ponds 158 & (at_i, a_i, & 159 & vt_i, v_i, v_s, t_i, s_i, a_ip_frac, & 152 160 & h_ip, t_su) 153 161 … … 162 170 END SUBROUTINE lim_mp 163 171 164 172 SUBROUTINE lim_mp_cstt 173 !!------------------------------------------------------------------- 174 !! *** ROUTINE lim_mp_cstt *** 175 !! 176 !! ** Purpose : Compute melt pond evolution 177 !! 178 !! ** Method : Melt pond fraction and thickness are prescribed 179 !! to non-zero values when t_su = 0C 180 !! 181 !! ** Tunable parameters : pond fraction (rn_apnd), pond depth (rn_hpnd) 182 !! 183 !! ** Note : Coupling with such melt ponds is only radiative 184 !! Advection, ridging, rafting... are bypassed 185 !! 186 !! ** References : Bush, G.W., and Trump, D.J. (2017) 187 !! 188 !!------------------------------------------------------------------- 189 INTEGER :: ji, jj, jl 190 REAL(wp) :: z1_jpl ! 1/jpl 191 !!------------------------------------------------------------------- 192 193 z1_jpl = 1. / FLOAT(jpl) 194 195 WHERE ( ( a_i > epsi10 ) .AND. ( t_su >= rt0-epsi06 ) ) 196 a_ip = rn_apnd * z1_jpl 197 h_ip = rn_hpnd 198 v_ip = a_ip * h_ip 199 a_ip_frac = a_ip / a_i 200 ELSE WHERE 201 a_ip = 0._wp 202 h_ip = 0._wp 203 v_ip = 0._wp 204 a_ip_frac = 0._wp 205 END WHERE 206 207 wfx_pnd(:,:) = 0._wp 208 209 END SUBROUTINE lim_mp_cstt 165 210 166 211 SUBROUTINE lim_mp_cesm … … 172 217 !! ** Method : Empirical method. A fraction of meltwater is accumulated 173 218 !! in pond volume. It is then released exponentially when 174 !! surface is freezing Accumulation of meltwater and exponential release219 !! surface is freezing. 175 220 !! 176 !! ** Tunable parameters : 177 !! 221 !! ** Tunable parameters : (no expertise yet) 178 222 !! 179 223 !! ** Note : Stolen from CICE for quick test of the melt pond 180 224 !! radiation and freshwater interfaces 225 !! Coupling can be radiative AND freshwater 226 !! Advection, ridging, rafting are called 181 227 !! 182 228 !! ** References : Holland, M. M. et al (J Clim 2012) -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90
r8085 r8098 92 92 93 93 ! MV MP 2016 94 IF ( nn_pnd_scheme > 0) THEN94 IF ( ln_pnd ) THEN 95 95 at_ip(:,:) = SUM( a_ip, dim=3 ) 96 96 vt_ip(:,:) = SUM( v_ip, dim=3 ) … … 566 566 zvs = v_s (ji,jj, jl) 567 567 zes = e_s (ji,jj,1,jl) 568 zvp = v_ip (ji,jj ,jl)568 IF ( ln_pnd ) zvp = v_ip (ji,jj ,jl) 569 569 !----------------------------------------------------------------- 570 570 ! Zap snow energy … … 585 585 586 586 ! MV MP 2016 587 a_ip (ji,jj,jl) = a_ip (ji,jj,jl) * rswitch 588 v_ip (ji,jj,jl) = v_ip (ji,jj,jl) * rswitch 589 wfx_res(ji,jj) = wfx_res(ji,jj) - ( v_ip(ji,jj,jl) - zvp ) * rhofw * r1_rdtice 587 IF ( ln_pnd ) THEN 588 a_ip (ji,jj,jl) = a_ip (ji,jj,jl) * rswitch 589 v_ip (ji,jj,jl) = v_ip (ji,jj,jl) * rswitch 590 wfx_res(ji,jj) = wfx_res(ji,jj) - ( v_ip(ji,jj,jl) - zvp ) * rhofw * r1_rdtice 591 ENDIF 590 592 ! END MV MP 2016 591 593 -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r8085 r8098 171 171 CALL iom_put( "vfxice" , wfx_ice * ztmp ) ! total ice growth/melt 172 172 173 IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 )) &173 IF ( ln_pnd ) & 174 174 CALL iom_put( "vfxpnd" , wfx_pnd * ztmp ) ! melt pond water flux 175 175 … … 235 235 236 236 ! MV MP 2016 237 IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 )) THEN237 IF ( ln_pnd ) THEN 238 238 IF ( iom_use( "iceamp_cat" ) ) CALL iom_put( "iceamp_cat" , a_ip * zswi2 ) ! melt pond frac for categories 239 239 IF ( iom_use( "icevmp_cat" ) ) CALL iom_put( "icevmp_cat" , v_ip * zswi2 ) ! melt pond frac for categories … … 304 304 305 305 ! MV MP 2016 306 IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 )) THEN306 IF ( ln_pnd ) THEN 307 307 CALL histdef( kid, "si_amp", "Melt pond fraction" , "%" , & 308 308 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) … … 357 357 358 358 ! MV MP 2016 359 IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 )) THEN359 IF ( ln_pnd ) THEN 360 360 CALL histwrite( kid, "si_amp", kt, at_ip , jpi*jpj, (/1/) ) 361 361 CALL histwrite( kid, "si_vmp", kt, vt_ip , jpi*jpj, (/1/) ) … … 370 370 CALL histwrite( kid, "vfxbom", kt, wfx_bom , jpi*jpj, (/1/) ) 371 371 CALL histwrite( kid, "vfxsum", kt, wfx_sum , jpi*jpj, (/1/) ) 372 IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 )) &372 IF ( ln_pnd ) & 373 373 CALL histwrite( kid, "vfxpnd", kt, wfx_pnd , jpi*jpj, (/1/) ) 374 374
Note: See TracChangeset
for help on using the changeset viewer.