Changeset 10648
- Timestamp:
- 2019-02-07T16:57:16+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/dev_r10037_shlat2d/src/OCE/DOM/dommsk.F90
r10642 r10648 94 94 INTEGER :: iktop, ikbot ! - - 95 95 INTEGER :: ios, inum 96 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zwf ! 2D workspace97 96 !! 98 97 INTEGER :: inum ! logical unit for shlat2d … … 259 258 IF( rn_shlat /= 0 .or. ln_shlat2d ) THEN ! Not free-slip lateral boundary condition everywhere 260 259 ! 261 ALLOCATE( zwf(jpi,jpj) )262 !263 260 DO jk = 1, jpk 264 zwf(:,:) = fmask(:,:,jk)265 261 IF ( ln_shlat2d ) THEN 266 262 DO jj = 2, jpjm1 267 263 DO ji = fs_2, fs_jpim1 ! vector opt. 268 264 IF( fmask(ji,jj,jk) == 0._wp ) THEN 269 fmask(ji,jj,jk) = zshlat2d(ji,jj) * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), &270 & zwf(ji-1,jj), zwf(ji,jj-1) ) )265 fmask(ji,jj,jk) = zshlat2d(ji,jj) * MIN( 1._wp , MAX( umask(ji,jj,jk), umask(ji,jj+1,jk), & 266 & vmask(ji,jj,jk), vmask(ji+1,jj,jk) ) ) 271 267 ENDIF 272 268 END DO … … 276 272 DO ji = fs_2, fs_jpim1 ! vector opt. 277 273 IF( fmask(ji,jj,jk) == 0._wp ) THEN 278 fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), &279 & zwf(ji-1,jj), zwf(ji,jj-1)) )274 fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( umask(ji,jj,jk), umask(ji,jj+1,jk), & 275 & vmask(ji,jj,jk), vmask(ji+1,jj,jk) ) ) 280 276 ENDIF 281 277 END DO … … 284 280 DO jj = 2, jpjm1 285 281 IF( fmask(1,jj,jk) == 0._wp ) THEN 286 fmask(1 ,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(2,jj), zwf(1,jj+1), zwf(1,jj-1) ) )282 fmask(1 ,jj,jk) = rn_shlat * MIN( 1._wp , MAX( vmask(2,jj,jk), umask(1,jj+1,jk), umask(1,jj,jk) ) ) 287 283 ENDIF 288 284 IF( fmask(jpi,jj,jk) == 0._wp ) THEN 289 fmask(jpi,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(jpi,jj+1), zwf(jpim1,jj), zwf(jpi,jj-1) ) )285 fmask(jpi,jj,jk) = rn_shlat * MIN( 1._wp , MAX( umask(jpi,jj+1,jk), vmask(jpim1,jj,jk), umask(jpi,jj-1,jk) ) ) 290 286 ENDIF 291 287 END DO 292 288 DO ji = 2, jpim1 293 289 IF( fmask(ji,1,jk) == 0._wp ) THEN 294 fmask(ji, 1 ,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,1), zwf(ji,2), zwf(ji-1,1) ) )290 fmask(ji, 1 ,jk) = rn_shlat * MIN( 1._wp , MAX( vmask(ji+1,1,jk), umask(ji,2,jk), vmask(ji,1,jk) ) ) 295 291 ENDIF 296 292 IF( fmask(ji,jpj,jk) == 0._wp ) THEN 297 fmask(ji,jpj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jpj), zwf(ji-1,jpj), zwf(ji,jpjm1) ) )293 fmask(ji,jpj,jk) = rn_shlat * MIN( 1._wp , MAX( vmask(ji+1,jpj,jk), vmask(ji-1,jpj,jk), umask(ji,jpjm1,jk) ) ) 298 294 ENDIF 299 295 END DO … … 308 304 END DO 309 305 ! 310 DEALLOCATE( zwf )311 306 IF( ln_shlat2d ) DEALLOCATE( zshlat2d ) 312 307 !
Note: See TracChangeset
for help on using the changeset viewer.