Changeset 6125 for trunk/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
- Timestamp:
- 2015-12-18T13:58:12+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r5930 r6125 55 55 !! 56 56 !! ** Purpose : Compute land/ocean mask arrays at tracer points, hori- 57 !! zontal velocity points (u & v), vorticity points (f) and baro- 58 !! tropic stream function points (b). 57 !! zontal velocity points (u & v), vorticity points (f) points. 59 58 !! 60 59 !! ** Method : The ocean/land mask is computed from the basin bathy- … … 74 73 !! 1. IF mbathy( ji ,jj) and mbathy( ji ,jj+1) 75 74 !! and mbathy(ji+1,jj) and mbathy(ji+1,jj+1) >= jk. 76 !! b-point : the same definition as for f-point of the first ocean77 !! level (surface level) but with 0 along coastlines.78 75 !! tmask_i : interior ocean mask at t-point, i.e. excluding duplicated 79 76 !! rows/lines due to cyclic or North Fold boundaries as well … … 89 86 !! 90 87 !! N.B. If nperio not equal to 0, the land/ocean mask arrays 91 !! are defined with the proper value at lateral domain boundaries, 92 !! but bmask. indeed, bmask defined the domain over which the 93 !! barotropic stream function is computed. this domain cannot 94 !! contain identical columns because the matrix associated with 95 !! the barotropic stream function equation is then no more inverti- 96 !! ble. therefore bmask is set to 0 along lateral domain boundaries 97 !! even IF nperio is not zero. 88 !! are defined with the proper value at lateral domain boundaries. 98 89 !! 99 90 !! In case of open boundaries (lk_bdy=T): 100 91 !! - tmask is set to 1 on the points to be computed bay the open 101 92 !! boundaries routines. 102 !! - bmask is set to 0 on the open boundaries.103 93 !! 104 94 !! ** Action : tmask : land/ocean mask at t-point (=0. or 1.) … … 107 97 !! fmask : land/ocean mask at f-point (=0. or 1.) 108 98 !! =rn_shlat along lateral boundaries 109 !! bmask : land/ocean mask at barotropic stream110 !! function point (=0. or 1.) and set to 0 along lateral boundaries111 99 !! tmask_i : interior ocean mask 112 100 !!---------------------------------------------------------------------- … … 254 242 END DO 255 243 256 ! 4. ocean/land mask for the elliptic equation257 ! --------------------------------------------258 bmask(:,:) = ssmask(:,:) ! elliptic equation is written at t-point259 !260 ! ! Boundary conditions261 ! ! cyclic east-west : bmask must be set to 0. on rows 1 and jpi262 IF( nperio == 1 .OR. nperio == 4 .OR. nperio == 6 ) THEN263 bmask( 1 ,:) = 0._wp264 bmask(jpi,:) = 0._wp265 ENDIF266 IF( nperio == 2 ) THEN ! south symmetric : bmask must be set to 0. on row 1267 bmask(:, 1 ) = 0._wp268 ENDIF269 ! ! north fold :270 IF( nperio == 3 .OR. nperio == 4 ) THEN ! T-pt pivot : bmask set to 0. on row jpj and on half jpjglo-1 row271 DO ji = 1, jpi272 ii = ji + nimpp - 1273 bmask(ji,jpj-1) = bmask(ji,jpj-1) * tpol(ii)274 bmask(ji,jpj ) = 0._wp275 END DO276 ENDIF277 IF( nperio == 5 .OR. nperio == 6 ) THEN ! F-pt pivot and T-pt elliptic eq. : bmask set to 0. on row jpj278 bmask(:,jpj) = 0._wp279 ENDIF280 !281 IF( lk_mpp ) THEN ! mpp specificities282 ! ! bmask is set to zero on the overlap region283 IF( nbondi /= -1 .AND. nbondi /= 2 ) bmask( 1 :jpreci,:) = 0._wp284 IF( nbondi /= 1 .AND. nbondi /= 2 ) bmask(nlci:jpi ,:) = 0._wp285 IF( nbondj /= -1 .AND. nbondj /= 2 ) bmask(:, 1 :jprecj) = 0._wp286 IF( nbondj /= 1 .AND. nbondj /= 2 ) bmask(:,nlcj:jpj ) = 0._wp287 !288 IF( npolj == 3 .OR. npolj == 4 ) THEN ! north fold : bmask must be set to 0. on rows jpj-1 and jpj289 DO ji = 1, nlci290 ii = ji + nimpp - 1291 bmask(ji,nlcj-1) = bmask(ji,nlcj-1) * tpol(ii)292 bmask(ji,nlcj ) = 0._wp293 END DO294 ENDIF295 IF( npolj == 5 .OR. npolj == 6 ) THEN ! F-pt pivot and T-pt elliptic eq. : bmask set to 0. on row jpj296 DO ji = 1, nlci297 bmask(ji,nlcj ) = 0._wp298 END DO299 ENDIF300 ENDIF301 302 244 ! Lateral boundary conditions on velocity (modify fmask) 303 245 ! --------------------------------------- … … 438 380 & 1, jpj, 1, 1, numout ) 439 381 END DO 440 WRITE(numout,*)441 WRITE(numout,*) ' dom_msk: bmask '442 WRITE(numout,*) ' ---------------'443 WRITE(numout,*)444 imsk(:,:) = INT( bmask(:,:) )445 CALL prihin( imsk(:,:), jpi, jpj, 1, jpi, 1, &446 & 1, jpj, 1, 1, numout )447 382 ENDIF 448 383 !
Note: See TracChangeset
for help on using the changeset viewer.