Changeset 7678
- Timestamp:
- 2017-02-13T18:28:39+01:00 (8 years ago)
- Location:
- branches/UKMO/dev_r7651_GO6pck_shlat2d/NEMOGCM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r7651_GO6pck_shlat2d/NEMOGCM/CONFIG/SHARED/namelist_ref
r7540 r7678 563 563 &namlbc ! lateral momentum boundary condition 564 564 !----------------------------------------------------------------------- 565 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 566 ! ! ! (if <0 months) ! name ! (logical) ! (T/F ) ! 'monthly' ! filename ! pairing ! filename ! 567 sn_shlat2d = 'shlat_coef.nc', -12 , 'shlat2d' , .false. , .true. , 'yearly' , '' , '' , '' 568 ln_shlat2d = .false. ! read lateral momentum boundary condition from a file (T) 565 569 rn_shlat = 2. ! shlat = 0 ! 0 < shlat < 2 ! shlat = 2 ! 2 < shlat 566 570 ! free slip ! partial slip ! no slip ! strong slip -
branches/UKMO/dev_r7651_GO6pck_shlat2d/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r6491 r7678 31 31 USE wrk_nemo ! Memory allocation 32 32 USE timing ! Timing 33 USE iom ! For shlat2d 34 USE fldread ! for sn_shlat2d 33 35 34 36 IMPLICIT NONE … … 138 140 REAL(wp) :: zphi_drake_passage, zshlat_antarc 139 141 REAL(wp), POINTER, DIMENSION(:,:) :: zwf 140 !! 141 NAMELIST/namlbc/ rn_shlat, ln_vorlat 142 143 INTEGER :: inum ! logical unit for shlat2d 144 REAL(wp) :: zshlat !: locally modified shlat for some strait 145 REAL(wp), POINTER, DIMENSION(:,:) :: zshlat2d 146 LOGICAL :: ln_shlat2d 147 TYPE(FLD_N) :: sn_shlat2d 148 !! 149 NAMELIST/namlbc/ rn_shlat, ln_vorlat, ln_shlat2d, sn_shlat2d 142 150 !!--------------------------------------------------------------------- 143 151 ! … … 172 180 WRITE(ctmp1,*) ' rn_shlat is negative = ', rn_shlat 173 181 CALL ctl_stop( ctmp1 ) 182 ENDIF 183 184 IF ( ln_shlat2d ) THEN 185 IF(lwp) WRITE(numout,*) ' READ shlat as a 2D coefficient in a file ' 186 CALL wrk_alloc( jpi, jpj, zshlat2d ) 187 CALL iom_open(sn_shlat2d%clname, inum) 188 CALL iom_get (inum, jpdom_data, sn_shlat2d%clvar, zshlat2d, 1) ! 189 CALL iom_close(inum) 174 190 ENDIF 175 191 … … 350 366 DO jk = 1, jpk 351 367 zwf(:,:) = fmask(:,:,jk) 352 DO jj = 2, jpjm1 353 DO ji = fs_2, fs_jpim1 ! vector opt. 354 IF( fmask(ji,jj,jk) == 0._wp ) THEN 355 fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), & 356 & zwf(ji-1,jj), zwf(ji,jj-1) ) ) 357 ENDIF 358 END DO 359 END DO 368 IF ( ln_shlat2d ) THEN 369 DO jj = 2, jpjm1 370 DO ji = fs_2, fs_jpim1 ! vector opt. 371 IF( fmask(ji,jj,jk) == 0. ) THEN 372 fmask(ji,jj,jk) = zshlat2d(ji,jj) * MIN( 1._wp, MAX( zwf(ji+1,jj), zwf(ji,jj+1), & 373 & zwf(ji-1,jj), zwf(ji,jj-1) ) ) 374 ENDIF 375 END DO 376 END DO 377 ELSE 378 DO jj = 2, jpjm1 379 DO ji = fs_2, fs_jpim1 ! vector opt. 380 IF( fmask(ji,jj,jk) == 0._wp ) THEN 381 fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), & 382 & zwf(ji-1,jj), zwf(ji,jj-1) ) ) 383 ENDIF 384 END DO 385 END DO 386 ENDIF 360 387 DO jj = 2, jpjm1 361 388 IF( fmask(1,jj,jk) == 0._wp ) THEN … … 520 547 CALL wrk_dealloc( jpi, jpj, imsk ) 521 548 CALL wrk_dealloc( jpi, jpj, zwf ) 549 IF ( ln_shlat2d ) THEN 550 CALL wrk_dealloc( jpi, jpj, zshlat2d ) 551 ENDIF 522 552 ! 523 553 IF( nn_timing == 1 ) CALL timing_stop('dom_msk')
Note: See TracChangeset
for help on using the changeset viewer.