- Timestamp:
- 2021-09-20T11:12:08+02:00 (17 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/tools_r4.0-HEAD_dev_MEs/DOMAINcfg/src/domwri.f90
r15153 r15271 16 16 !!---------------------------------------------------------------------- 17 17 USE dom_oce ! ocean space and time domain 18 USE mes, ONLY : ln_loc_mes 18 19 USE in_out_manager ! I/O manager 19 20 USE iom ! I/O library … … 554 555 REAL(wp), DIMENSION(:,:), INTENT(out), OPTIONAL :: px1 ! saw-tooth metric 555 556 ! 556 INTEGER :: ji, jj, k1, k2 557 INTEGER :: ji, jj, kk, km1, kp1 558 REAL(wp) :: dm1, dp1 557 559 REAL(wp), DIMENSION(4) :: zr1 558 560 REAL(wp), DIMENSION(jpi,jpj) :: zx1 … … 564 566 DO jj = 2, jpjm1 565 567 ! Avoiding coastal points 566 IF ( ( + tmask(ji-1,jj+1) + tmask(ji,jj+1) + tmask(ji+1,jj+1) &567 & + tmask(ji-1,jj ) + tmask(ji+1,jj ) &568 & + tmask(ji-1,jj-1) + tmask(ji,jj+1) + tmask(ji+1,jj-1) ) == 8._wp ) THEN568 IF ( ( + ssmask(ji-1,jj+1) + ssmask(ji,jj+1) + ssmask(ji+1,jj+1) & 569 & + ssmask(ji-1,jj ) + ssmask(ji+1,jj ) & 570 & + ssmask(ji-1,jj-1) + ssmask(ji,jj+1) + ssmask(ji+1,jj-1) ) == 8._wp ) THEN 569 571 ! 570 572 zr1(:) = 0._wp 571 k1 = mbkt(ji,jj) 572 ! i-1 573 k2 = mbkt(ji-1,jj) 574 IF ( ( (k1 > k2) .AND. (gdepw_0(ji,jj,jpk) < gdepw_0(ji-1,jj,jpk)) ) .OR. & 575 & ( (k1 < k2) .AND. (gdepw_0(ji,jj,jpk) > gdepw_0(ji-1,jj,jpk)) ) ) THEN 576 zr1(1) = ABS( mbkt(ji,jj) - mbkt(ji-1,jj) ) * umask(ji-1,jj) 573 kk = mbkt(ji,jj) 574 ! 575 ! i-direction 576 km1 = mbkt(ji-1,jj) 577 kp1 = mbkt(ji+1,jj) 578 dm1 = gdept_0(ji-1, jj, km1) - gdept_0(ji, jj, kk) 579 dp1 = gdept_0(ji+1, jj, kp1) - gdept_0(ji, jj, kk) 580 IF ( (dp1 * dm1) > 0. ) THEN 581 zr1(1) = ABS( kk - km1 ) * umask(ji-1, jj) 582 zr1(2) = ABS( kk - kp1 ) * umask(ji , jj) 577 583 END IF 578 ! i+1 579 k2 = mbkt(ji+1,jj) 580 IF ( ( (k1 > k2) .AND. (gdepw_0(ji,jj,jpk) < gdepw_0(ji+1,jj,jpk)) ) .OR. & 581 & ( (k1 < k2) .AND. (gdepw_0(ji,jj,jpk) > gdepw_0(ji+1,jj,jpk)) ) ) THEN 582 zr1(2) = ABS( mbkt(ji,jj) - mbkt(ji+1,jj) ) * umask(ji,jj) 583 END IF 584 ! j+1 585 k2 = mbkt(ji,jj+1) 586 IF ( ( (k1 > k2) .AND. (gdepw_0(ji,jj,jpk) < gdepw_0(ji,jj+1,jpk)) ) .OR. & 587 & ( (k1 < k2) .AND. (gdepw_0(ji,jj,jpk) > gdepw_0(ji,jj+1,jpk)) ) ) THEN 588 zr1(3) = ABS( mbkt(ji,jj) - mbkt(ji,jj+1) ) * vmask(ji,jj) 589 END IF 590 ! j-1 591 k2 = mbkt(ji,jj-1) 592 IF ( ( (k1 > k2) .AND. (gdepw_0(ji,jj,jpk) < gdepw_0(ji,jj-1,jpk)) ) .OR. & 593 & ( (k1 < k2) .AND. (gdepw_0(ji,jj,jpk) > gdepw_0(ji,jj-1,jpk)) ) ) THEN 594 zr1(4) = ABS( mbkt(ji,jj) - mbkt(ji,jj-1) ) * vmask(ji,jj-1) 584 ! j-direction 585 km1 = mbkt(ji,jj-1) 586 kp1 = mbkt(ji,jj+1) 587 dm1 = gdept_0(ji, jj-1, km1) - gdept_0(ji, jj, kk) 588 dp1 = gdept_0(ji, jj+1, kp1) - gdept_0(ji, jj, kk) 589 IF ( (dp1 * dm1) > 0. ) THEN 590 zr1(3) = ABS( kk - km1 ) * vmask(ji, jj-1) 591 zr1(4) = ABS( kk - kp1 ) * vmask(ji, jj ) 595 592 END IF 596 593 zx1(ji,jj) = REAL( MAXVAL(zr1(1:4)), wp ) … … 599 596 END DO 600 597 END DO 598 IF( ln_loc_mes ) zx1 = zx1 * mes_msk 601 599 CALL lbc_lnk( zx1, 'T', 1. ) 602 600 !
Note: See TracChangeset
for help on using the changeset viewer.