Changeset 15033 for NEMO/trunk/src/OCE/DOM
- Timestamp:
- 2021-06-21T12:24:45+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/DOM/domwri.F90
r14433 r15033 200 200 zr1(:) = 0._wp 201 201 ! 202 DO ji = 2, jpim1 203 DO jj = 2, jpjm1 204 DO jk = 1, jpkm1 205 !!gm remark: dk(gdepw) = e3t ===>>> possible simplification of the following calculation.... 206 !! especially since it is gde3w which is used to compute the pressure gradient 207 !! furthermore, I think gdept_0 should be used below instead of w point in the numerator 208 !! so that the ratio is computed at the same point (i.e. uw and vw) .... 209 zr1(1) = ABS( ( gdepw_0(ji ,jj,jk )-gdepw_0(ji-1,jj,jk ) & 210 & +gdepw_0(ji ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) ) & 211 & / ( gdepw_0(ji ,jj,jk )+gdepw_0(ji-1,jj,jk ) & 212 & -gdepw_0(ji ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) + rsmall ) ) * umask(ji-1,jj,jk) 213 zr1(2) = ABS( ( gdepw_0(ji+1,jj,jk )-gdepw_0(ji ,jj,jk ) & 214 & +gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji ,jj,jk+1) ) & 215 & / ( gdepw_0(ji+1,jj,jk )+gdepw_0(ji ,jj,jk ) & 216 & -gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji ,jj,jk+1) + rsmall ) ) * umask(ji ,jj,jk) 217 zr1(3) = ABS( ( gdepw_0(ji,jj+1,jk )-gdepw_0(ji,jj ,jk ) & 218 & +gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj ,jk+1) ) & 219 & / ( gdepw_0(ji,jj+1,jk )+gdepw_0(ji,jj ,jk ) & 220 & -gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj ,jk+1) + rsmall ) ) * vmask(ji,jj ,jk) 221 zr1(4) = ABS( ( gdepw_0(ji,jj ,jk )-gdepw_0(ji,jj-1,jk ) & 222 & +gdepw_0(ji,jj ,jk+1)-gdepw_0(ji,jj-1,jk+1) ) & 223 & / ( gdepw_0(ji,jj ,jk )+gdepw_0(ji,jj-1,jk ) & 224 & -gdepw_0(ji,jj ,jk+1)-gdepw_0(ji,jj-1,jk+1) + rsmall ) ) * vmask(ji,jj-1,jk) 225 zrxmax = MAXVAL( zr1(1:4) ) 226 zx1(ji,jj) = MAX( zx1(ji,jj) , zrxmax ) 227 END DO 228 END DO 229 END DO 202 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 203 !!gm remark: dk(gdepw) = e3t ===>>> possible simplification of the following calculation.... 204 !! especially since it is gde3w which is used to compute the pressure gradient 205 !! furthermore, I think gdept_0 should be used below instead of w point in the numerator 206 !! so that the ratio is computed at the same point (i.e. uw and vw) .... 207 zr1(1) = ABS( ( gdepw_0(ji ,jj,jk )-gdepw_0(ji-1,jj,jk ) & 208 & +gdepw_0(ji ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) ) & 209 & / ( gdepw_0(ji ,jj,jk )+gdepw_0(ji-1,jj,jk ) & 210 & -gdepw_0(ji ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) + rsmall ) ) * umask(ji-1,jj,jk) 211 zr1(2) = ABS( ( gdepw_0(ji+1,jj,jk )-gdepw_0(ji ,jj,jk ) & 212 & +gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji ,jj,jk+1) ) & 213 & / ( gdepw_0(ji+1,jj,jk )+gdepw_0(ji ,jj,jk ) & 214 & -gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji ,jj,jk+1) + rsmall ) ) * umask(ji ,jj,jk) 215 zr1(3) = ABS( ( gdepw_0(ji,jj+1,jk )-gdepw_0(ji,jj ,jk ) & 216 & +gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj ,jk+1) ) & 217 & / ( gdepw_0(ji,jj+1,jk )+gdepw_0(ji,jj ,jk ) & 218 & -gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj ,jk+1) + rsmall ) ) * vmask(ji,jj ,jk) 219 zr1(4) = ABS( ( gdepw_0(ji,jj ,jk )-gdepw_0(ji,jj-1,jk ) & 220 & +gdepw_0(ji,jj ,jk+1)-gdepw_0(ji,jj-1,jk+1) ) & 221 & / ( gdepw_0(ji,jj ,jk )+gdepw_0(ji,jj-1,jk ) & 222 & -gdepw_0(ji,jj ,jk+1)-gdepw_0(ji,jj-1,jk+1) + rsmall ) ) * vmask(ji,jj-1,jk) 223 zrxmax = MAXVAL( zr1(1:4) ) 224 zx1(ji,jj) = MAX( zx1(ji,jj) , zrxmax ) 225 END_3D 230 226 CALL lbc_lnk( 'domwri', zx1, 'T', 1.0_wp ) 231 227 !
Note: See TracChangeset
for help on using the changeset viewer.