- Timestamp:
- 2019-09-20T17:28:02+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11265_ASINTER-01_Guillaume_ABL1D/src/OCE/BDY/bdyice.F90
r11210 r11586 63 63 IF( ln_timing ) CALL timing_start('bdy_ice_thd') ! timing 64 64 IF( ln_icediachk ) CALL ice_cons_hsm(0,'bdy_ice_thd', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) ! conservation 65 IF( ln_icediachk ) CALL ice_cons2D (0,'bdy_ice_thd', diag_v, diag_s, diag_t, diag_fv, diag_fs, diag_ft) ! conservation 65 66 ! 66 67 CALL ice_var_glo2eqv … … 109 110 ! 110 111 ! controls 112 IF( ln_icectl ) CALL ice_prt ( kt, iiceprt, jiceprt, 1, ' - ice thermo bdy - ' ) ! prints 111 113 IF( ln_icediachk ) CALL ice_cons_hsm(1,'bdy_ice_thd', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) ! conservation 112 IF( ln_ice ctl ) CALL ice_prt ( kt, iiceprt, jiceprt, 1, ' - ice thermo bdy - ' ) ! prints114 IF( ln_icediachk ) CALL ice_cons2D (1,'bdy_ice_thd', diag_v, diag_s, diag_t, diag_fv, diag_fs, diag_ft) ! conservation 113 115 IF( ln_timing ) CALL timing_stop ('bdy_ice_thd') ! timing 114 116 ! … … 152 154 zwgt = idx%nbw(i_bdy,jgrd) 153 155 zwgt1 = 1.e0 - idx%nbw(i_bdy,jgrd) 154 a_i(ji,jj,jl) = ( a_i(ji,jj,jl) * zwgt1 + dta%a_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Leads fraction 155 h_i(ji,jj,jl) = ( h_i(ji,jj,jl) * zwgt1 + dta%h_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice depth 156 h_s(ji,jj,jl) = ( h_s(ji,jj,jl) * zwgt1 + dta%h_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Snow depth 157 156 a_i (ji,jj, jl) = ( a_i (ji,jj, jl) * zwgt1 + dta%a_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice concentration 157 h_i (ji,jj, jl) = ( h_i (ji,jj, jl) * zwgt1 + dta%h_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice depth 158 h_s (ji,jj, jl) = ( h_s (ji,jj, jl) * zwgt1 + dta%h_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Snow depth 159 t_i (ji,jj,:,jl) = ( t_i (ji,jj,:,jl) * zwgt1 + dta%t_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice temperature 160 t_s (ji,jj,:,jl) = ( t_s (ji,jj,:,jl) * zwgt1 + dta%t_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Snow temperature 161 t_su(ji,jj, jl) = ( t_su(ji,jj, jl) * zwgt1 + dta%tsu(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Surf temperature 162 s_i (ji,jj, jl) = ( s_i (ji,jj, jl) * zwgt1 + dta%s_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice salinity 163 a_ip(ji,jj, jl) = ( a_ip(ji,jj, jl) * zwgt1 + dta%aip(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice pond concentration 164 h_ip(ji,jj, jl) = ( h_ip(ji,jj, jl) * zwgt1 + dta%hip(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice pond depth 165 ! 166 sz_i(ji,jj,:,jl) = s_i(ji,jj,jl) 167 ! 168 ! make sure ponds = 0 if no ponds scheme 169 IF( .NOT.ln_pnd ) THEN 170 a_ip(ji,jj,jl) = 0._wp 171 h_ip(ji,jj,jl) = 0._wp 172 ENDIF 173 ! 158 174 ! ----------------- 159 175 ! Pathological case … … 170 186 h_i(ji,jj,jl) = MIN( hi_max(jl), h_i(ji,jj,jl) + zdh ) 171 187 h_s(ji,jj,jl) = MAX( 0._wp, h_s(ji,jj,jl) - zdh * rhoi / rhos ) 172 188 ! 173 189 ENDDO 174 190 ENDDO … … 206 222 IF( a_i(ib,jb,jl) > 0._wp ) THEN ! there is ice at the boundary 207 223 ! 208 a_i(ji,jj,jl) = a_i(ib,jb,jl) ! concentration 209 h_i(ji,jj,jl) = h_i(ib,jb,jl) ! thickness ice 210 h_s(ji,jj,jl) = h_s(ib,jb,jl) ! thickness snw 211 ! 212 SELECT CASE( jpbound ) 213 ! 214 CASE( 0 ) ! velocity is inward 215 ! 216 oa_i(ji,jj, jl) = rn_ice_age(jbdy) * a_i(ji,jj,jl) ! age 217 a_ip(ji,jj, jl) = 0._wp ! pond concentration 218 v_ip(ji,jj, jl) = 0._wp ! pond volume 219 t_su(ji,jj, jl) = rn_ice_tem(jbdy) ! temperature surface 220 t_s (ji,jj,:,jl) = rn_ice_tem(jbdy) ! temperature snw 221 t_i (ji,jj,:,jl) = rn_ice_tem(jbdy) ! temperature ice 222 s_i (ji,jj, jl) = rn_ice_sal(jbdy) ! salinity 223 sz_i(ji,jj,:,jl) = rn_ice_sal(jbdy) ! salinity profile 224 ! 225 CASE( 1 ) ! velocity is outward 226 ! 227 oa_i(ji,jj, jl) = oa_i(ib,jb, jl) ! age 228 a_ip(ji,jj, jl) = a_ip(ib,jb, jl) ! pond concentration 229 v_ip(ji,jj, jl) = v_ip(ib,jb, jl) ! pond volume 230 t_su(ji,jj, jl) = t_su(ib,jb, jl) ! temperature surface 231 t_s (ji,jj,:,jl) = t_s (ib,jb,:,jl) ! temperature snw 232 t_i (ji,jj,:,jl) = t_i (ib,jb,:,jl) ! temperature ice 233 s_i (ji,jj, jl) = s_i (ib,jb, jl) ! salinity 234 sz_i(ji,jj,:,jl) = sz_i(ib,jb,:,jl) ! salinity profile 235 ! 236 END SELECT 224 a_i (ji,jj, jl) = a_i (ib,jb, jl) 225 h_i (ji,jj, jl) = h_i (ib,jb, jl) 226 h_s (ji,jj, jl) = h_s (ib,jb, jl) 227 t_i (ji,jj,:,jl) = t_i (ib,jb,:,jl) 228 t_s (ji,jj,:,jl) = t_s (ib,jb,:,jl) 229 t_su(ji,jj, jl) = t_su(ib,jb, jl) 230 s_i (ji,jj, jl) = s_i (ib,jb, jl) 231 a_ip(ji,jj, jl) = a_ip(ib,jb, jl) 232 h_ip(ji,jj, jl) = h_ip(ib,jb, jl) 233 ! 234 sz_i(ji,jj,:,jl) = sz_i(ib,jb,:,jl) 235 ! 236 ! ice age 237 IF ( jpbound == 0 ) THEN ! velocity is inward 238 oa_i(ji,jj,jl) = rice_age(jbdy) * a_i(ji,jj,jl) 239 ELSEIF( jpbound == 1 ) THEN ! velocity is outward 240 oa_i(ji,jj,jl) = oa_i(ib,jb,jl) 241 ENDIF 237 242 ! 238 243 IF( nn_icesal == 1 ) THEN ! if constant salinity … … 259 264 END DO 260 265 ! 266 ! melt ponds 267 IF( a_i(ji,jj,jl) > epsi10 ) THEN 268 a_ip_frac(ji,jj,jl) = a_ip(ji,jj,jl) / a_i (ji,jj,jl) 269 ELSE 270 a_ip_frac(ji,jj,jl) = 0._wp 271 ENDIF 272 v_ip(ji,jj,jl) = h_ip(ji,jj,jl) * a_ip(ji,jj,jl) 273 ! 261 274 ELSE ! no ice at the boundary 262 275 ! … … 270 283 t_s (ji,jj,:,jl) = rt0 271 284 t_i (ji,jj,:,jl) = rt0 285 286 a_ip_frac(ji,jj,jl) = 0._wp 287 h_ip (ji,jj,jl) = 0._wp 288 a_ip (ji,jj,jl) = 0._wp 289 v_ip (ji,jj,jl) = 0._wp 272 290 273 291 IF( nn_icesal == 1 ) THEN ! if constant salinity … … 372 390 jj = idx_bdy(jbdy)%nbj(i_bdy,jgrd) 373 391 zflag = idx_bdy(jbdy)%flagv(i_bdy,jgrd) 374 ! ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ! ¨¨¨¨ïce¨¨¨(jj+1)¨¨ ! ¨¨¨¨¨¨ö¨¨¨¨(jj+1)392 ! ! ice (jj+1) ! o (jj+1) 375 393 ! ^ (jj ) ! ^ (jj ) ! ^ (jj ) 376 394 ! ice (jj ) ! o (jj ) ! o (jj )
Note: See TracChangeset
for help on using the changeset viewer.