- Timestamp:
- 2018-09-12T17:39:01+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r10057_ENHANCE03_ZTILDE/src/OCE/DYN/dynnxt.F90
r9598 r10116 95 95 ! 96 96 INTEGER :: ji, jj, jk ! dummy loop indices 97 INTEGER :: ikt 97 INTEGER :: ikt, jkbot ! local integers 98 98 REAL(wp) :: zue3a, zue3n, zue3b, zuf, zcoef ! local scalars 99 99 REAL(wp) :: zve3a, zve3n, zve3b, zvf, z1_2dt ! - - 100 REAL(wp) :: zhcri, zmsku, zwgtu, zmskv, zwgtv ! - - 100 101 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zue, zve 101 102 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ze3u_f, ze3v_f, zua, zva … … 136 137 END DO 137 138 ENDIF 139 ENDIF 140 141 IF( ln_vvl_ztilde .OR. ln_vvl_layer) THEN 142 ! ! Duplicate baroclinic velocities from above in massless layers 143 ! ! Correction to handle correct barotropic velocities right after 144 zhcri = 0.1_wp 145 DO ji = 2, jpim1 146 DO jj= 2, jpjm1 147 jkbot=jpkm1 148 DO jk=jpkm1,2,-1 149 IF (e3u_a(ji,jj,jk)>zhcri) jkbot = jk+1 150 END DO 151 DO jk=jkbot,jpkm1 152 zwgtu = MIN(zhcri, e3u_a(ji,jj,jk)) 153 zmsku = 0.5_wp * ( 1._wp + SIGN(1._wp, e3u_a(ji,jj,jk) - 0.01_wp) ) 154 ua(ji,jj,jk) = zmsku * (zwgtu * ua(ji,jj,jk) + (zhcri - zwgtu) * ua(ji,jj,jk-1)*zwgtu/(zwgtu+0.01_wp)) / zhcri 155 END DO 156 jkbot=jpkm1 157 DO jk=jpkm1,2,-1 158 IF (e3v_a(ji,jj,jk)>zhcri) jkbot = jk+1 159 END DO 160 DO jk=jkbot,jpkm1 161 zwgtv = MIN(zhcri, e3v_a(ji,jj,jk)) 162 zmskv = 0.5_wp * ( 1._wp + SIGN(1._wp, e3v_a(ji,jj,jk) - 0.01_wp) ) 163 va(ji,jj,jk) = zmskv * (zwgtv * va(ji,jj,jk) + (zhcri - zwgtv) * va(ji,jj,jk-1)*zwgtv/(zwgtv+0.01_wp)) / zhcri 164 END DO 165 END DO 166 END DO 138 167 ENDIF 139 168 … … 291 320 zuf = ( zue3n + atfp * ( zue3b - 2._wp * zue3n + zue3a ) ) / ze3u_f(ji,jj,jk) 292 321 zvf = ( zve3n + atfp * ( zve3b - 2._wp * zve3n + zve3a ) ) / ze3v_f(ji,jj,jk) 322 zmsku = 0.5_wp * ( 1._wp + SIGN(1._wp, ze3u_f(ji,jj,jk) - 0.01_wp) ) 323 zmskv = 0.5_wp * ( 1._wp + SIGN(1._wp, ze3v_f(ji,jj,jk) - 0.01_wp) ) 293 324 ! 294 ub(ji,jj,jk) = z uf! ub <-- filtered velocity295 vb(ji,jj,jk) = z vf325 ub(ji,jj,jk) = zmsku * zuf ! ub <-- filtered velocity 326 vb(ji,jj,jk) = zmskv * zvf 296 327 un(ji,jj,jk) = ua(ji,jj,jk) ! un <-- ua 297 328 vn(ji,jj,jk) = va(ji,jj,jk)
Note: See TracChangeset
for help on using the changeset viewer.