Changeset 11559
- Timestamp:
- 2019-09-18T10:53:22+02:00 (5 years ago)
- Location:
- branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/CONFIG/SHARED/namelist_ref
r10302 r11559 583 583 &namlbc ! lateral momentum boundary condition 584 584 !----------------------------------------------------------------------- 585 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 586 ! ! ! (if <0 months) ! name ! (logical) ! (T/F ) ! 'monthly' ! filename ! pairing ! filename ! 587 sn_shlat2d = 'shlat_coef.nc', -12 , 'shlat2d' , .false. , .true. , 'yearly' , '' , '' , '' 588 ln_shlat2d = .false. ! read lateral momentum boundary condition from a file (T) 585 589 rn_shlat = 2. ! shlat = 0 ! 0 < shlat < 2 ! shlat = 2 ! 2 < shlat 586 590 ! free slip ! partial slip ! no slip ! strong slip -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r10302 r11559 33 33 USE domwri 34 34 USE timing ! Timing 35 35 USE iom ! For shlat2d 36 USE fldread ! for sn_shlat2d 37 36 38 IMPLICIT NONE 37 39 PRIVATE … … 141 143 REAL(wp), POINTER, DIMENSION(:,:) :: zwf 142 144 REAL(wp) :: uvt(jpi,jpj) ! dummy array for masking purposes. 143 !! 144 NAMELIST/namlbc/ rn_shlat, ln_vorlat 145 INTEGER :: inum ! logical unit for shlat2d 146 REAL(wp) :: zshlat !: locally modified shlat for some strait 147 REAL(wp), POINTER, DIMENSION(:,:) :: zshlat2d 148 LOGICAL :: ln_shlat2d 149 TYPE(FLD_N) :: sn_shlat2d 150 !! 151 NAMELIST/namlbc/ rn_shlat, ln_vorlat, ln_shlat2d, sn_shlat2d 145 152 !!--------------------------------------------------------------------- 146 153 ! … … 177 184 ENDIF 178 185 186 IF ( ln_shlat2d ) THEN 187 IF(lwp) WRITE(numout,*) ' READ shlat as a 2D coefficient in a file ' 188 CALL wrk_alloc( jpi, jpj, zshlat2d ) 189 CALL iom_open(sn_shlat2d%clname, inum) 190 CALL iom_get (inum, jpdom_data, sn_shlat2d%clvar, zshlat2d, 1) ! 191 CALL iom_close(inum) 192 ENDIF 193 179 194 ! 1. Ocean/land mask at t-point (computed from mbathy) 180 195 ! ----------------------------- … … 391 406 DO jk = 1, jpk 392 407 zwf(:,:) = fmask(:,:,jk) 393 DO jj = 2, jpjm1 394 DO ji = fs_2, fs_jpim1 ! vector opt. 395 IF( fmask(ji,jj,jk) == 0._wp ) THEN 396 fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), & 397 & zwf(ji-1,jj), zwf(ji,jj-1) ) ) 398 ENDIF 399 END DO 400 END DO 408 IF ( ln_shlat2d ) THEN 409 DO jj = 2, jpjm1 410 DO ji = fs_2, fs_jpim1 ! vector opt. 411 IF( fmask(ji,jj,jk) == 0. ) THEN 412 fmask(ji,jj,jk) = zshlat2d(ji,jj) * MIN( 1._wp, MAX( zwf(ji+1,jj), zwf(ji,jj+1), & 413 & zwf(ji-1,jj), zwf(ji,jj-1) ) ) 414 ENDIF 415 END DO 416 END DO 417 ELSE 418 DO jj = 2, jpjm1 419 DO ji = fs_2, fs_jpim1 ! vector opt. 420 IF( fmask(ji,jj,jk) == 0._wp ) THEN 421 fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), & 422 & zwf(ji-1,jj), zwf(ji,jj-1) ) ) 423 ENDIF 424 END DO 425 END DO 426 ENDIF 401 427 DO jj = 2, jpjm1 402 428 IF( fmask(1,jj,jk) == 0._wp ) THEN … … 561 587 CALL wrk_dealloc( jpi, jpj, imsk ) 562 588 CALL wrk_dealloc( jpi, jpj, zwf ) 589 IF ( ln_shlat2d ) THEN 590 CALL wrk_dealloc( jpi, jpj, zshlat2d ) 591 ENDIF 563 592 ! 564 593 IF( nn_timing == 1 ) CALL timing_stop('dom_msk')
Note: See TracChangeset
for help on using the changeset viewer.