Changeset 1601 for trunk/NEMO/OPA_SRC/DOM/dommsk.F90
- Timestamp:
- 2009-08-11T12:09:19+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DOM/dommsk.F90
r1566 r1601 36 36 PUBLIC dom_msk ! routine called by inidom.F90 37 37 38 REAL(wp) :: shlat = 2. ! type of lateral boundary condition on velocity (namelist namlbc) 38 ! !!* Namelist namlbc : lateral boundary condition * 39 REAL(wp) :: rn_shlat = 2. ! type of lateral boundary condition on velocity 39 40 40 41 !! * Substitutions … … 77 78 !! 78 79 !! The lateral friction is set through the value of fmask along 79 !! the coast and topography. This value is defined by shlat, a80 !! the coast and topography. This value is defined by rn_shlat, a 80 81 !! namelist parameter: 81 !! shlat = 0, free slip (no shear along the coast)82 !! shlat = 2, no slip (specified zero velocity at the coast)83 !! 0 < shlat < 2, partial slip | non-linear velocity profile84 !! 2 < shlat, strong slip | in the lateral boundary layer82 !! rn_shlat = 0, free slip (no shear along the coast) 83 !! rn_shlat = 2, no slip (specified zero velocity at the coast) 84 !! 0 < rn_shlat < 2, partial slip | non-linear velocity profile 85 !! 2 < rn_shlat, strong slip | in the lateral boundary layer 85 86 !! 86 87 !! N.B. If nperio not equal to 0, the land/ocean mask arrays … … 106 107 !! vmask : land/ocean mask at v-point (=0. or 1.) 107 108 !! fmask : land/ocean mask at f-point (=0. or 1.) 108 !! = shlat along lateral boundaries109 !! =rn_shlat along lateral boundaries 109 110 !! bmask : land/ocean mask at barotropic stream 110 111 !! function point (=0. or 1.) and set to 0 along lateral boundaries … … 114 115 INTEGER :: iif, iil, ii0, ii1, ii 115 116 INTEGER :: ijf, ijl, ij0, ij1 116 INTEGER , DIMENSION(jpi,jpj) :: imsk117 INTEGER , DIMENSION(jpi,jpj) :: imsk 117 118 REAL(wp), DIMENSION(jpi,jpj) :: zwf 118 119 NAMELIST/namlbc/ shlat119 !! 120 NAMELIST/namlbc/ rn_shlat 120 121 !!--------------------------------------------------------------------- 121 122 … … 128 129 WRITE(numout,*) '~~~~~~' 129 130 WRITE(numout,*) ' Namelist namlbc' 130 WRITE(numout,*) ' lateral momentum boundary cond. shlat = ',shlat131 ENDIF 132 133 IF ( shlat == 0. ) THEN ; IF(lwp) WRITE(numout,*) 'ocean lateral free-slip '134 ELSEIF ( shlat == 2. ) THEN ; IF(lwp) WRITE(numout,*) 'ocean lateral no-slip '135 ELSEIF ( 0. < shlat .AND. shlat < 2. ) THEN ; IF(lwp) WRITE(numout,*) 'ocean lateral partial-slip '136 ELSEIF ( 2. < shlat ) THEN ; IF(lwp) WRITE(numout,*) 'ocean lateral strong-slip '137 138 WRITE(ctmp1,*) ' shlat is negative = ',shlat139 131 WRITE(numout,*) ' lateral momentum boundary cond. rn_shlat = ',rn_shlat 132 ENDIF 133 134 IF ( rn_shlat == 0. ) THEN ; IF(lwp) WRITE(numout,*) ' ocean lateral free-slip ' 135 ELSEIF ( rn_shlat == 2. ) THEN ; IF(lwp) WRITE(numout,*) ' ocean lateral no-slip ' 136 ELSEIF ( 0. < rn_shlat .AND. rn_shlat < 2. ) THEN ; IF(lwp) WRITE(numout,*) ' ocean lateral partial-slip ' 137 ELSEIF ( 2. < rn_shlat ) THEN ; IF(lwp) WRITE(numout,*) ' ocean lateral strong-slip ' 138 ELSE 139 WRITE(ctmp1,*) ' rn_shlat is negative = ', rn_shlat 140 CALL ctl_stop( ctmp1 ) 140 141 ENDIF 141 142 … … 148 149 DO jj = 1, jpj 149 150 DO ji = 1, jpi 150 IF( REAL( mbathy(ji,jj) - jk ) +.1 >= 0.e0 ) tmask(ji,jj,jk) = 1.e0151 IF( REAL( mbathy(ji,jj) - jk ) +.1 >= 0.e0 ) tmask(ji,jj,jk) = 1.e0 151 152 END DO 152 153 END DO … … 155 156 !!gm ???? 156 157 #if defined key_zdfkpp 157 IF( cp_cfg == 'orca' ) THEN 158 IF( jp_cfg == 2 ) THEN 159 ! land point on Bab el Mandeb zonal section 158 IF( cp_cfg == 'orca' ) THEN 159 IF( jp_cfg == 2 ) THEN ! land point on Bab el Mandeb zonal section 160 160 ij0 = 87 ; ij1 = 88 161 161 ii0 = 160 ; ii1 = 161 … … 283 283 DO ji = fs_2, fs_jpim1 ! vector opt. 284 284 IF( fmask(ji,jj,jk) == 0. ) THEN 285 fmask(ji,jj,jk) = shlat * MIN( 1., MAX( zwf(ji+1,jj), zwf(ji,jj+1), &286 & zwf(ji-1,jj), zwf(ji,jj-1) ) )285 fmask(ji,jj,jk) = rn_shlat * MIN( 1., MAX( zwf(ji+1,jj), zwf(ji,jj+1), & 286 & zwf(ji-1,jj), zwf(ji,jj-1) ) ) 287 287 ENDIF 288 288 END DO … … 290 290 DO jj = 2, jpjm1 291 291 IF( fmask(1,jj,jk) == 0. ) THEN 292 fmask(1 ,jj,jk) = shlat * MIN( 1., MAX( zwf(2,jj), zwf(1,jj+1), zwf(1,jj-1) ) )292 fmask(1 ,jj,jk) = rn_shlat * MIN( 1., MAX( zwf(2,jj), zwf(1,jj+1), zwf(1,jj-1) ) ) 293 293 ENDIF 294 294 IF( fmask(jpi,jj,jk) == 0. ) THEN 295 fmask(jpi,jj,jk) = shlat * MIN( 1., MAX( zwf(jpi,jj+1), zwf(jpim1,jj), zwf(jpi,jj-1) ) )295 fmask(jpi,jj,jk) = rn_shlat * MIN( 1., MAX( zwf(jpi,jj+1), zwf(jpim1,jj), zwf(jpi,jj-1) ) ) 296 296 ENDIF 297 297 END DO 298 298 DO ji = 2, jpim1 299 299 IF( fmask(ji,1,jk) == 0. ) THEN 300 fmask(ji, 1 ,jk) = shlat * MIN( 1., MAX( zwf(ji+1,1), zwf(ji,2), zwf(ji-1,1) ) )300 fmask(ji, 1 ,jk) = rn_shlat * MIN( 1., MAX( zwf(ji+1,1), zwf(ji,2), zwf(ji-1,1) ) ) 301 301 ENDIF 302 302 IF( fmask(ji,jpj,jk) == 0. ) THEN 303 fmask(ji,jpj,jk) = shlat * MIN( 1., MAX( zwf(ji+1,jpj), zwf(ji-1,jpj), zwf(ji,jpjm1) ) )303 fmask(ji,jpj,jk) = rn_shlat * MIN( 1., MAX( zwf(ji+1,jpj), zwf(ji-1,jpj), zwf(ji,jpjm1) ) ) 304 304 ENDIF 305 305 END DO
Note: See TracChangeset
for help on using the changeset viewer.