Changeset 5143
- Timestamp:
- 2015-03-11T16:49:05+01:00 (8 years ago)
- Location:
- trunk/NEMOGCM/NEMO
- Files:
-
- 1 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/BDY/bdyice_lim.F90
r5140 r5143 41 41 PRIVATE 42 42 43 PUBLIC bdy_ice_lim ! routine called in sbcmod43 PUBLIC bdy_ice_lim ! routine called in sbcmod 44 44 PUBLIC bdy_ice_lim_dyn ! routine called in limrhg 45 45 … … 89 89 TYPE(OBC_DATA), INTENT(in) :: dta ! OBC external data 90 90 INTEGER, INTENT(in) :: kt ! main time-step counter 91 INTEGER, INTENT(in) :: ib_bdy ! BDY set index !!91 INTEGER, INTENT(in) :: ib_bdy ! BDY set index 92 92 93 93 INTEGER :: jpbound ! 0 = incoming ice … … 169 169 jpbound = 0; ii = ji; ij = jj; 170 170 171 IF ( u_ice(ji+1,jj ) < 0. .AND. umask(ji-1,jj ,1) == 0. ) jpbound = 1; ii = ji+1; ij = jj 172 IF ( u_ice(ji-1,jj ) > 0. .AND. umask(ji+1,jj ,1) == 0. ) jpbound = 1; ii = ji-1; ij = jj 173 IF ( v_ice(ji ,jj+1) < 0. .AND. vmask(ji ,jj-1,1) == 0. ) jpbound = 1; ii = ji ; ij = jj+1 174 IF ( v_ice(ji ,jj-1) > 0. .AND. vmask(ji ,jj+1,1) == 0. ) jpbound = 1; ii = ji ; ij = jj-1 171 IF( u_ice(ji+1,jj ) < 0. .AND. umask(ji-1,jj ,1) == 0. ) jpbound = 1; ii = ji+1; ij = jj 172 IF( u_ice(ji-1,jj ) > 0. .AND. umask(ji+1,jj ,1) == 0. ) jpbound = 1; ii = ji-1; ij = jj 173 IF( v_ice(ji ,jj+1) < 0. .AND. vmask(ji ,jj-1,1) == 0. ) jpbound = 1; ii = ji ; ij = jj+1 174 IF( v_ice(ji ,jj-1) > 0. .AND. vmask(ji ,jj+1,1) == 0. ) jpbound = 1; ii = ji ; ij = jj-1 175 176 IF( nn_ice_lim_dta(ib_bdy) == 0 ) jpbound = 0; ii = ji; ij = jj ! case ice boundaries = initial conditions 177 ! do not make state variables dependent on velocity 178 175 179 176 180 rswitch = 1.0 - MAX( 0.0_wp , SIGN ( 1.0_wp , - at_i(ii,ij) + 0.01 ) ) ! 0 if no ice … … 286 290 !! 287 291 CHARACTER(len=1), INTENT(in) :: cd_type ! nature of velocity grid-points 288 INTEGER :: jb, jgrd ! dummy loop indices292 INTEGER :: jb, jgrd ! dummy loop indices 289 293 INTEGER :: ji, jj ! local scalar 290 INTEGER :: ib_bdy ! Loop index294 INTEGER :: ib_bdy ! Loop index 291 295 REAL(wp) :: zmsk1, zmsk2, zflag 292 296 !!------------------------------------------------------------------------------ … … 304 308 CASE('frs') 305 309 306 310 IF( nn_ice_lim_dta(ib_bdy) == 0 ) CYCLE ! case ice boundaries = initial conditions 311 ! do not change ice velocity (it is only computed by rheology) 312 307 313 SELECT CASE ( cd_type ) 308 314 309 315 CASE ( 'U' ) 310 316 … … 321 327 322 328 ! u_ice = u_ice of the adjacent grid point except if this grid point is ice-free (then u_ice = u_oce) 323 u_ice (ji,jj) = u_ice(ji+1,jj) * 0.5 * ABS( zflag + 1._wp ) * zmsk1 + &324 & u_ice(ji-1,jj) * 0.5 * ABS( zflag - 1._wp ) * zmsk2 + &329 u_ice (ji,jj) = u_ice(ji+1,jj) * 0.5_wp * ABS( zflag + 1._wp ) * zmsk1 + & 330 & u_ice(ji-1,jj) * 0.5_wp * ABS( zflag - 1._wp ) * zmsk2 + & 325 331 & u_oce(ji ,jj) * ( 1._wp - MIN( 1._wp, zmsk1 + zmsk2 ) ) 326 332 ELSE ! everywhere else … … 329 335 ENDIF 330 336 ! mask ice velocities 331 rswitch = 1.0 - MAX( 0.0_wp , SIGN ( 1.0_wp , - at_i(ji,jj) + 0.01) ) ! 0 if no ice337 rswitch = MAX( 0.0_wp , SIGN ( 1.0_wp , at_i(ji,jj) - 0.01_wp ) ) ! 0 if no ice 332 338 u_ice(ji,jj) = rswitch * u_ice(ji,jj) 333 339 334 340 ENDDO 335 341 336 342 CALL lbc_bdy_lnk( u_ice(:,:), 'U', -1., ib_bdy ) 337 343 … … 350 356 351 357 ! u_ice = u_ice of the adjacent grid point except if this grid point is ice-free (then u_ice = u_oce) 352 v_ice (ji,jj) = v_ice(ji,jj+1) * 0.5 * ABS( zflag + 1._wp ) * zmsk1 + &353 & v_ice(ji,jj-1) * 0.5 * ABS( zflag - 1._wp ) * zmsk2 + &358 v_ice (ji,jj) = v_ice(ji,jj+1) * 0.5_wp * ABS( zflag + 1._wp ) * zmsk1 + & 359 & v_ice(ji,jj-1) * 0.5_wp * ABS( zflag - 1._wp ) * zmsk2 + & 354 360 & v_oce(ji,jj ) * ( 1._wp - MIN( 1._wp, zmsk1 + zmsk2 ) ) 355 361 ELSE ! everywhere else … … 358 364 ENDIF 359 365 ! mask ice velocities 360 rswitch = 1.0 - MAX( 0.0_wp , SIGN ( 1.0_wp , - at_i(ji,jj) +0.01 ) ) ! 0 if no ice366 rswitch = MAX( 0.0_wp , SIGN ( 1.0_wp , at_i(ji,jj) - 0.01 ) ) ! 0 if no ice 361 367 v_ice(ji,jj) = rswitch * v_ice(ji,jj) 362 368 … … 364 370 365 371 CALL lbc_bdy_lnk( v_ice(:,:), 'V', -1., ib_bdy ) 366 372 367 373 END SELECT 368 374 -
trunk/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90
r4624 r5143 42 42 #endif 43 43 #if defined key_lim3 44 USE par_ice45 44 USE ice 46 45 #endif
Note: See TracChangeset
for help on using the changeset viewer.