Changeset 14575
- Timestamp:
- 2021-03-03T16:45:08+01:00 (3 years ago)
- Location:
- branches/NERC/dev_r5518_GO6_r9321_isf_merge_UKESM_AIS/NEMOGCM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_r9321_isf_merge_UKESM_AIS/NEMOGCM/CONFIG/SHARED/namelist_ref
r14573 r14575 594 594 &namlbc ! lateral momentum boundary condition 595 595 !----------------------------------------------------------------------- 596 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 597 ! ! ! (if <0 months) ! name ! (logical) ! (T/F ) ! 'monthly' ! filename ! pairing ! filename ! 598 sn_shlat2d = 'shlat_coef.nc', -12 , 'shlat2d' , .false. , .true. , 'yearly' , '' , '' , '' 599 ln_shlat2d = .false. ! read lateral momentum boundary condition from a file (T) 596 600 rn_shlat = 2. ! shlat = 0 ! 0 < shlat < 2 ! shlat = 2 ! 2 < shlat 597 601 ! free slip ! partial slip ! no slip ! strong slip -
branches/NERC/dev_r5518_GO6_r9321_isf_merge_UKESM_AIS/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r14573 r14575 35 35 USE wrk_nemo ! Memory allocation 36 36 USE timing ! Timing 37 USE iom ! For shlat2d 38 USE fldread ! for sn_shlat2d 37 39 38 40 IMPLICIT NONE … … 143 145 REAL(wp) :: zphi_drake_passage, zshlat_antarc 144 146 REAL(wp), POINTER, DIMENSION(:,:) :: zwf 145 !! 146 NAMELIST/namlbc/ rn_shlat, ln_vorlat 147 148 INTEGER :: inum ! logical unit for shlat2d 149 REAL(wp) :: zshlat !: locally modified shlat for some strait 150 REAL(wp), POINTER, DIMENSION(:,:) :: zshlat2d 151 LOGICAL :: ln_shlat2d 152 TYPE(FLD_N) :: sn_shlat2d 153 !! 154 NAMELIST/namlbc/ rn_shlat, ln_vorlat, ln_shlat2d, sn_shlat2d 147 155 !!--------------------------------------------------------------------- 148 156 ! … … 177 185 WRITE(ctmp1,*) ' rn_shlat is negative = ', rn_shlat 178 186 CALL ctl_stop( ctmp1 ) 187 ENDIF 188 189 IF ( ln_shlat2d ) THEN 190 IF(lwp) WRITE(numout,*) ' READ shlat as a 2D coefficient in a file ' 191 CALL wrk_alloc( jpi, jpj, zshlat2d ) 192 CALL iom_open(sn_shlat2d%clname, inum) 193 CALL iom_get (inum, jpdom_data, sn_shlat2d%clvar, zshlat2d, 1) ! 194 CALL iom_close(inum) 179 195 ENDIF 180 196 … … 399 415 DO jk = 1, jpk 400 416 zwf(:,:) = fmask(:,:,jk) 401 DO jj = 2, jpjm1 402 DO ji = fs_2, fs_jpim1 ! vector opt. 403 IF( fmask(ji,jj,jk) == 0._wp ) THEN 404 fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), & 405 & zwf(ji-1,jj), zwf(ji,jj-1) ) ) 406 ENDIF 407 END DO 408 END DO 417 IF ( ln_shlat2d ) THEN 418 DO jj = 2, jpjm1 419 DO ji = fs_2, fs_jpim1 ! vector opt. 420 IF( fmask(ji,jj,jk) == 0. ) THEN 421 fmask(ji,jj,jk) = zshlat2d(ji,jj) * 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 ELSE 427 DO jj = 2, jpjm1 428 DO ji = fs_2, fs_jpim1 ! vector opt. 429 IF( fmask(ji,jj,jk) == 0._wp ) THEN 430 fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), & 431 & zwf(ji-1,jj), zwf(ji,jj-1) ) ) 432 ENDIF 433 END DO 434 END DO 435 ENDIF 409 436 DO jj = 2, jpjm1 410 437 IF( fmask(1,jj,jk) == 0._wp ) THEN … … 569 596 CALL wrk_dealloc( jpi, jpj, imsk ) 570 597 CALL wrk_dealloc( jpi, jpj, zwf ) 598 IF ( ln_shlat2d ) THEN 599 CALL wrk_dealloc( jpi, jpj, zshlat2d ) 600 ENDIF 571 601 ! 572 602 IF( nn_timing == 1 ) CALL timing_stop('dom_msk')
Note: See TracChangeset
for help on using the changeset viewer.