Changeset 14976 for NEMO/trunk/src/NST
- Timestamp:
- 2021-06-11T11:14:27+02:00 (3 years ago)
- Location:
- NEMO/trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEAD ext/AGRIF5 ^/vendors/AGRIF/dev_r14608_AGRIF_domcfg@HEAD ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL
-
- Property svn:externals
-
NEMO/trunk/src/NST/agrif_oce_interp.F90
r14433 r14976 44 44 PUBLIC interptsn, interpsshn, interpavm 45 45 PUBLIC interpunb, interpvnb , interpub2b, interpvb2b 46 PUBLIC interp e3t, interpglamt, interpgphit46 PUBLIC interpglamt, interpgphit 47 47 PUBLIC interpht0, interpmbkt, interpe3t0_vremap 48 48 PUBLIC agrif_istate_oce, agrif_istate_ssh ! called by icestate.F90 and domvvl.F90 … … 216 216 IF( lk_west ) THEN 217 217 ibdy1 = nn_hls + 2 ! halo + land + 1 218 ibdy2 = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells218 ibdy2 = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells 219 219 ! 220 220 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport … … 265 265 ! --- East --- ! 266 266 IF( lk_east) THEN 267 ibdy1 = jpiglo - ( nn_hls + nbghostcells + 1) - nn_shift_bar*Agrif_Rhox()267 ibdy1 = jpiglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhox() 268 268 ibdy2 = jpiglo - ( nn_hls + 2 ) 269 269 ! … … 293 293 END DO 294 294 ! 295 ibdy1 = jpiglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhox()295 ibdy1 = jpiglo - ( nn_hls + nbghostcells - 1 ) - nn_shift_bar*Agrif_Rhox() 296 296 ibdy2 = jpiglo - ( nn_hls + 1 ) 297 297 ! … … 326 326 IF( lk_south ) THEN 327 327 jbdy1 = nn_hls + 2 328 jbdy2 = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhoy()328 jbdy2 = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhoy() 329 329 ! 330 330 IF( .NOT.ln_dynspg_ts ) THEN … … 375 375 ! --- North --- ! 376 376 IF( lk_north ) THEN 377 jbdy1 = jpjglo - ( nn_hls + nbghostcells + 1) - nn_shift_bar*Agrif_Rhoy()377 jbdy1 = jpjglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhoy() 378 378 jbdy2 = jpjglo - ( nn_hls + 2 ) 379 379 ! … … 403 403 END DO 404 404 ! 405 jbdy1 = jpjglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhoy()405 jbdy1 = jpjglo - ( nn_hls + nbghostcells -1 ) - nn_shift_bar*Agrif_Rhoy() 406 406 jbdy2 = jpjglo - ( nn_hls + 1 ) 407 407 ! … … 451 451 IF( lk_west ) THEN 452 452 istart = nn_hls + 2 ! halo + land + 1 453 iend = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells453 iend = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells 454 454 DO ji = mi0(istart), mi1(iend) 455 455 DO jj=1,jpj … … 462 462 !--- East ---! 463 463 IF( lk_east ) THEN 464 istart = jpiglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhox()464 istart = jpiglo - ( nn_hls + nbghostcells -1 ) - nn_shift_bar*Agrif_Rhox() 465 465 iend = jpiglo - ( nn_hls + 1 ) 466 466 DO ji = mi0(istart), mi1(iend) … … 470 470 END DO 471 471 END DO 472 istart = jpiglo - ( nn_hls + nbghostcells + 1) - nn_shift_bar*Agrif_Rhox()472 istart = jpiglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhox() 473 473 iend = jpiglo - ( nn_hls + 2 ) 474 474 DO ji = mi0(istart), mi1(iend) … … 482 482 IF( lk_south ) THEN 483 483 jstart = nn_hls + 2 484 jend = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhoy()484 jend = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhoy() 485 485 DO jj = mj0(jstart), mj1(jend) 486 486 … … 494 494 !--- North ---! 495 495 IF( lk_north ) THEN 496 jstart = jpjglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhoy()496 jstart = jpjglo - ( nn_hls + nbghostcells -1 ) - nn_shift_bar*Agrif_Rhoy() 497 497 jend = jpjglo - ( nn_hls + 1 ) 498 498 DO jj = mj0(jstart), mj1(jend) … … 501 501 END DO 502 502 END DO 503 jstart = jpjglo - ( nn_hls + nbghostcells + 1) - nn_shift_bar*Agrif_Rhoy()503 jstart = jpjglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhoy() 504 504 jend = jpjglo - ( nn_hls + 2 ) 505 505 DO jj = mj0(jstart), mj1(jend) … … 529 529 IF( lk_west ) THEN 530 530 istart = nn_hls + 2 531 iend = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhox()531 iend = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhox() 532 532 DO ji = mi0(istart), mi1(iend) 533 533 DO jj=1,jpj … … 540 540 !--- East ---! 541 541 IF( lk_east ) THEN 542 istart = jpiglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhox()542 istart = jpiglo - ( nn_hls + nbghostcells -1 ) - nn_shift_bar*Agrif_Rhox() 543 543 iend = jpiglo - ( nn_hls + 1 ) 544 544 DO ji = mi0(istart), mi1(iend) … … 547 547 END DO 548 548 END DO 549 istart = jpiglo - ( nn_hls + nbghostcells + 1) - nn_shift_bar*Agrif_Rhox()549 istart = jpiglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhox() 550 550 iend = jpiglo - ( nn_hls + 2 ) 551 551 DO ji = mi0(istart), mi1(iend) … … 559 559 IF( lk_south ) THEN 560 560 jstart = nn_hls + 2 561 jend = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhoy()561 jend = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhoy() 562 562 DO jj = mj0(jstart), mj1(jend) 563 563 DO ji=1,jpi … … 570 570 !--- North ---! 571 571 IF( lk_north ) THEN 572 jstart = jpjglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhoy()572 jstart = jpjglo - ( nn_hls + nbghostcells -1 ) - nn_shift_bar*Agrif_Rhoy() 573 573 jend = jpjglo - ( nn_hls + 1 ) 574 574 DO jj = mj0(jstart), mj1(jend) … … 577 577 END DO 578 578 END DO 579 jstart = jpjglo - ( nn_hls + nbghostcells + 1) - nn_shift_bar*Agrif_Rhoy()579 jstart = jpjglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhoy() 580 580 jend = jpjglo - ( nn_hls + 2 ) 581 581 DO jj = mj0(jstart), mj1(jend) … … 672 672 IF(lk_west) THEN 673 673 istart = nn_hls + 2 ! halo + land + 1 674 iend = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells674 iend = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells 675 675 DO ji = mi0(istart), mi1(iend) 676 676 DO jj = 1, jpj … … 682 682 ! --- East --- ! 683 683 IF(lk_east) THEN 684 istart = jpiglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells - 1684 istart = jpiglo - ( nn_hls + nbghostcells -1 ) - nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells - 1 685 685 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 686 686 DO ji = mi0(istart), mi1(iend) … … 694 694 IF(lk_south) THEN 695 695 jstart = nn_hls + 2 ! halo + land + 1 696 jend = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhoy() ! halo + land + nbghostcells696 jend = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhoy() ! halo + land + nbghostcells 697 697 DO jj = mj0(jstart), mj1(jend) 698 698 DO ji = 1, jpi … … 704 704 ! --- North --- ! 705 705 IF(lk_north) THEN 706 jstart = jpjglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhoy() ! halo + land + nbghostcells - 1706 jstart = jpjglo - ( nn_hls + nbghostcells -1 ) - nn_shift_bar*Agrif_Rhoy() ! halo + land + nbghostcells - 1 707 707 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 708 708 DO jj = mj0(jstart), mj1(jend) … … 731 731 IF(lk_west) THEN 732 732 istart = nn_hls + 2 ! halo + land + 1 733 iend = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells733 iend = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells 734 734 DO ji = mi0(istart), mi1(iend) 735 735 DO jj = 1, jpj … … 741 741 ! --- East --- ! 742 742 IF(lk_east) THEN 743 istart = jpiglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells - 1743 istart = jpiglo - ( nn_hls + nbghostcells -1 ) - nn_shift_bar*Agrif_Rhox() ! halo + land + nbghostcells - 1 744 744 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 745 745 DO ji = mi0(istart), mi1(iend) … … 753 753 IF(lk_south) THEN 754 754 jstart = nn_hls + 2 ! halo + land + 1 755 jend = nn_hls + 1 +nbghostcells + nn_shift_bar*Agrif_Rhoy() ! halo + land + nbghostcells755 jend = nn_hls + nbghostcells + nn_shift_bar*Agrif_Rhoy() ! halo + land + nbghostcells 756 756 DO jj = mj0(jstart), mj1(jend) 757 757 DO ji = 1, jpi … … 763 763 ! --- North --- ! 764 764 IF(lk_north) THEN 765 jstart = jpjglo - ( nn_hls + nbghostcells ) - nn_shift_bar*Agrif_Rhoy() ! halo + land + nbghostcells - 1765 jstart = jpjglo - ( nn_hls + nbghostcells -1 ) - nn_shift_bar*Agrif_Rhoy() ! halo + land + nbghostcells - 1 766 766 jend = jpjglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 767 767 DO jj = mj0(jstart), mj1(jend) … … 1418 1418 DO jj=j1,j2 1419 1419 IF (utint_stage(ji,jj)==0) THEN 1420 zx = 2._wp*MOD(ABS(mig0(ji)-nbghostcells -1), INT(Agrif_Rhox()))/zrhox - 1._wp1420 zx = 2._wp*MOD(ABS(mig0(ji)-nbghostcells), INT(Agrif_Rhox()))/zrhox - 1._wp 1421 1421 ubdy(ji,jj) = ubdy(ji,jj) + 0.25_wp*(1._wp-zx*zx) * ptab(ji,jj) & 1422 1422 & / zrhoy *r1_e2u(ji,jj) * umask(ji,jj,1) … … 1522 1522 DO jj=j1,j2 1523 1523 IF (vtint_stage(ji,jj)==0) THEN 1524 zy = 2._wp*MOD(ABS(mjg0(jj)-nbghostcells -1), INT(Agrif_Rhoy()))/zrhoy - 1._wp1524 zy = 2._wp*MOD(ABS(mjg0(jj)-nbghostcells), INT(Agrif_Rhoy()))/zrhoy - 1._wp 1525 1525 vbdy(ji,jj) = vbdy(ji,jj) + 0.25_wp*(1._wp-zy*zy) * ptab(ji,jj) & 1526 1526 & / zrhox * r1_e1v(ji,jj) * vmask(ji,jj,1) … … 1533 1533 ! 1534 1534 END SUBROUTINE vb2b_cor 1535 1536 1537 SUBROUTINE interpe3t( ptab, i1, i2, j1, j2, k1, k2, before )1538 !!----------------------------------------------------------------------1539 !! *** ROUTINE interpe3t ***1540 !!----------------------------------------------------------------------1541 INTEGER , INTENT(in ) :: i1, i2, j1, j2, k1, k21542 REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2), INTENT(inout) :: ptab1543 LOGICAL , INTENT(in ) :: before1544 !1545 INTEGER :: ji, jj, jk1546 !!----------------------------------------------------------------------1547 !1548 IF( before ) THEN1549 ptab(i1:i2,j1:j2,k1:k2) = tmask(i1:i2,j1:j2,k1:k2) * e3t_0(i1:i2,j1:j2,k1:k2)1550 ELSE1551 !1552 DO jk = k1, k21553 DO jj = j1, j21554 DO ji = i1, i21555 IF( ABS( ptab(ji,jj,jk) - tmask(ji,jj,jk) * e3t_0(ji,jj,jk) ) > 1.D-2) THEN1556 WRITE(numout,*) ' Agrif error for e3t_0: parent , child, i, j, k ', &1557 & ptab(ji,jj,jk), tmask(ji,jj,jk) * e3t_0(ji,jj,jk), &1558 & mig0(ji), mjg0(jj), jk1559 kindic_agr = kindic_agr + 11560 ENDIF1561 END DO1562 END DO1563 END DO1564 !1565 ENDIF1566 !1567 END SUBROUTINE interpe3t1568 1535 1569 1536 … … 1793 1760 INTEGER, INTENT(inout) :: iindic 1794 1761 !! 1795 INTEGER :: ji, jj 1762 INTEGER :: ji, jj, jk 1796 1763 INTEGER :: istart, iend, jstart, jend, ispon 1797 1764 !!---------------------------------------------------------------------- … … 1802 1769 ispon = nn_sponge_len * Agrif_irhox() 1803 1770 istart = nn_hls + 2 ! halo + land + 1 1804 iend = nn_hls + 1 + nbghostcells + ispon ! halo + land + nbghostcells + sponge 1805 jstart = nn_hls + 2 1771 iend = nn_hls + nbghostcells + ispon ! halo + land + nbghostcells + sponge 1772 jstart = nn_hls + 2 1773 jend = jpjglo - nn_hls - 1 1774 DO ji = mi0(istart), mi1(iend) 1775 DO jj = mj0(jstart), mj1(jend) 1776 IF ( ABS(ht0_parent(ji,jj)-ht_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1777 IF ( .NOT.ln_vert_remap) THEN 1778 DO jk = 1, jpkm1 1779 IF ( ABS(e3t0_parent(ji,jj,jk)-e3t_0(ji,jj,jk))*tmask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1780 END DO 1781 ENDIF 1782 END DO 1783 DO jj = mj0(jstart), mj1(jend-1) 1784 IF ( ABS(hv0_parent(ji,jj)-hv_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1785 IF ( .NOT.ln_vert_remap) THEN 1786 DO jk = 1, jpkm1 1787 IF ( ABS(e3v0_parent(ji,jj,jk)-e3v_0(ji,jj,jk))*vmask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1788 END DO 1789 ENDIF 1790 END DO 1791 END DO 1792 DO ji = mi0(istart), mi1(iend-1) 1793 DO jj = mj0(jstart), mj1(jend) 1794 IF ( ABS(hu0_parent(ji,jj)-hu_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1795 IF ( .NOT.ln_vert_remap) THEN 1796 DO jk = 1, jpkm1 1797 IF ( ABS(e3u0_parent(ji,jj,jk)-e3u_0(ji,jj,jk))*umask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1798 END DO 1799 ENDIF 1800 END DO 1801 END DO 1802 ENDIF 1803 ! 1804 ! --- East --- ! 1805 IF(lk_east) THEN 1806 ispon = nn_sponge_len * Agrif_irhox() 1807 istart = jpiglo - ( nn_hls + nbghostcells + ispon -1 ) ! halo + land + nbghostcells + sponge - 1 1808 iend = jpiglo - nn_hls - 1 ! halo + land + 1 - 1 1809 jstart = nn_hls + 2 1806 1810 jend = jpjglo - nn_hls - 1 1807 1811 DO ji = mi0(istart), mi1(iend) 1808 1812 DO jj = mj0(jstart), mj1(jend) 1809 1813 IF ( ABS(ht0_parent(ji,jj)-ht_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1814 IF ( .NOT.ln_vert_remap) THEN 1815 DO jk = 1, jpkm1 1816 IF ( ABS(e3t0_parent(ji,jj,jk)-e3t_0(ji,jj,jk))*tmask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1817 END DO 1818 ENDIF 1810 1819 END DO 1811 1820 DO jj = mj0(jstart), mj1(jend-1) 1812 1821 IF ( ABS(hv0_parent(ji,jj)-hv_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1822 IF ( .NOT.ln_vert_remap) THEN 1823 DO jk = 1, jpkm1 1824 IF ( ABS(e3v0_parent(ji,jj,jk)-e3v_0(ji,jj,jk))*vmask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1825 END DO 1826 ENDIF 1813 1827 END DO 1814 1828 END DO … … 1816 1830 DO jj = mj0(jstart), mj1(jend) 1817 1831 IF ( ABS(hu0_parent(ji,jj)-hu_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1818 END DO 1819 END DO 1820 ENDIF 1821 ! 1822 ! --- East --- ! 1823 IF(lk_east) THEN 1824 ispon = nn_sponge_len * Agrif_irhox() 1825 istart = jpiglo - ( nn_hls + nbghostcells + ispon ) ! halo + land + nbghostcells + sponge - 1 1826 iend = jpiglo - ( nn_hls + 1 ) ! halo + land + 1 - 1 1827 jstart = nn_hls + 2 1828 jend = jpjglo - nn_hls - 1 1829 DO ji = mi0(istart), mi1(iend) 1830 DO jj = mj0(jstart), mj1(jend) 1831 IF ( ABS(ht0_parent(ji,jj)-ht_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1832 END DO 1833 DO jj = mj0(jstart), mj1(jend-1) 1834 IF ( ABS(hv0_parent(ji,jj)-hv_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1835 END DO 1836 END DO 1837 DO ji = mi0(istart+1), mi1(iend-1) 1838 DO jj = mj0(jstart), mj1(jend) 1839 IF ( ABS(hu0_parent(ji,jj)-hu_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1832 IF ( .NOT.ln_vert_remap) THEN 1833 DO jk = 1, jpkm1 1834 IF ( ABS(e3u0_parent(ji,jj,jk)-e3u_0(ji,jj,jk))*umask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1835 END DO 1836 ENDIF 1840 1837 END DO 1841 1838 END DO … … 1844 1841 ! --- South --- ! 1845 1842 IF(lk_south) THEN 1846 ispon = nn_sponge_len * Agrif_irhoy() 1843 ispon = nn_sponge_len * Agrif_irhoy() 1847 1844 jstart = nn_hls + 2 ! halo + land + 1 1848 jend = nn_hls + 1 +nbghostcells + ispon ! halo + land + nbghostcells + sponge1849 istart = nn_hls + 2 1850 iend = jpiglo - nn_hls - 1 1845 jend = nn_hls + nbghostcells + ispon ! halo + land + nbghostcells + sponge 1846 istart = nn_hls + 2 1847 iend = jpiglo - nn_hls - 1 1851 1848 DO jj = mj0(jstart), mj1(jend) 1852 1849 DO ji = mi0(istart), mi1(iend) 1853 1850 IF ( ABS(ht0_parent(ji,jj)-ht_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1851 IF ( .NOT.ln_vert_remap) THEN 1852 DO jk = 1, jpkm1 1853 IF ( ABS(e3t0_parent(ji,jj,jk)-e3t_0(ji,jj,jk))*tmask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1854 END DO 1855 ENDIF 1854 1856 END DO 1855 1857 DO ji = mi0(istart), mi1(iend-1) 1856 1858 IF ( ABS(hu0_parent(ji,jj)-hu_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1859 IF ( .NOT.ln_vert_remap) THEN 1860 DO jk = 1, jpkm1 1861 IF ( ABS(e3u0_parent(ji,jj,jk)-e3u_0(ji,jj,jk))*umask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1862 END DO 1863 ENDIF 1857 1864 END DO 1858 1865 END DO … … 1860 1867 DO ji = mi0(istart), mi1(iend) 1861 1868 IF ( ABS(hv0_parent(ji,jj)-hv_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1869 IF ( .NOT.ln_vert_remap) THEN 1870 DO jk = 1, jpkm1 1871 IF ( ABS(e3v0_parent(ji,jj,jk)-e3v_0(ji,jj,jk))*vmask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1872 END DO 1873 ENDIF 1862 1874 END DO 1863 1875 END DO … … 1867 1879 IF(lk_north) THEN 1868 1880 ispon = nn_sponge_len * Agrif_irhoy() 1869 jstart = jpjglo - ( nn_hls + nbghostcells + ispon ) ! halo + land + nbghostcells +sponge - 11870 jend = jpjglo - ( nn_hls + 1 )! halo + land + 1 - 11871 istart = nn_hls + 2 1872 iend = jpiglo - nn_hls - 1 1881 jstart = jpjglo - ( nn_hls + nbghostcells + ispon - 1) ! halo + land + nbghostcells +sponge - 1 1882 jend = jpjglo - nn_hls - 1 ! halo + land + 1 - 1 1883 istart = nn_hls + 2 1884 iend = jpiglo - nn_hls - 1 1873 1885 DO jj = mj0(jstart), mj1(jend) 1874 1886 DO ji = mi0(istart), mi1(iend) 1875 1887 IF ( ABS(ht0_parent(ji,jj)-ht_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1888 IF ( .NOT.ln_vert_remap) THEN 1889 DO jk = 1, jpkm1 1890 IF ( ABS(e3t0_parent(ji,jj,jk)-e3t_0(ji,jj,jk))*tmask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1891 END DO 1892 ENDIF 1876 1893 END DO 1877 1894 DO ji = mi0(istart), mi1(iend-1) 1878 1895 IF ( ABS(hu0_parent(ji,jj)-hu_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1879 END DO 1880 END DO 1881 DO jj = mj0(jstart+1), mj1(jend-1) 1896 IF ( .NOT.ln_vert_remap) THEN 1897 DO jk = 1, jpkm1 1898 IF ( ABS(e3u0_parent(ji,jj,jk)-e3u_0(ji,jj,jk))*umask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1899 END DO 1900 ENDIF 1901 END DO 1902 END DO 1903 DO jj = mj0(jstart), mj1(jend-1) 1882 1904 DO ji = mi0(istart), mi1(iend) 1883 1905 IF ( ABS(hv0_parent(ji,jj)-hv_0(ji,jj)) > 1.e-3 ) iindic = iindic + 1 1906 IF ( .NOT.ln_vert_remap) THEN 1907 DO jk = 1, jpkm1 1908 IF ( ABS(e3v0_parent(ji,jj,jk)-e3v_0(ji,jj,jk))*vmask(ji,jj,jk) > 1.e-3 ) iindic = iindic + 1 1909 END DO 1910 ENDIF 1884 1911 END DO 1885 1912 END DO -
NEMO/trunk/src/NST/agrif_oce_sponge.F90
r14433 r14976 150 150 ztabramp(:,:) = 0._wp 151 151 152 IF( lk_west ) THEN 153 ind1 = nn_hls + 1 + nbghostcells ! halo + land+ nbghostcells154 ind2 = nn_hls + 1 +nbghostcells + ispongearea152 IF( lk_west ) THEN ! --- West --- ! 153 ind1 = nn_hls + nbghostcells ! halo + nbghostcells 154 ind2 = nn_hls + nbghostcells + ispongearea 155 155 DO ji = mi0(ind1), mi1(ind2) 156 156 DO jj = 1, jpj … … 160 160 ! ghost cells: 161 161 ind1 = 1 162 ind2 = nn_hls + 1 + nbghostcells ! halo + land+ nbghostcells162 ind2 = nn_hls + nbghostcells ! halo + nbghostcells 163 163 DO ji = mi0(ind1), mi1(ind2) 164 164 DO jj = 1, jpj … … 168 168 ENDIF 169 169 IF( lk_east ) THEN ! --- East --- ! 170 ind1 = jpiglo - ( nn_hls + nbghostcells ) - ispongearea - 1171 ind2 = jpiglo - ( nn_hls + nbghostcells ) - 1 ! halo + land + nbghostcells - 1170 ind1 = jpiglo - ( nn_hls + nbghostcells -1 ) - ispongearea - 1 171 ind2 = jpiglo - ( nn_hls + nbghostcells -1 ) - 1 ! halo + land + nbghostcells - 1 172 172 DO ji = mi0(ind1), mi1(ind2) 173 173 DO jj = 1, jpj … … 176 176 END DO 177 177 ! ghost cells: 178 ind1 = jpiglo - ( nn_hls + nbghostcells ) - 1 ! halo + land + nbghostcells - 1178 ind1 = jpiglo - ( nn_hls + nbghostcells -1 ) - 1 ! halo + land + nbghostcells - 1 179 179 ind2 = jpiglo - 1 180 180 DO ji = mi0(ind1), mi1(ind2) … … 185 185 ENDIF 186 186 IF( lk_south ) THEN ! --- South --- ! 187 ind1 = nn_hls + 1 + nbghostcells ! halo + land+ nbghostcells188 ind2 = nn_hls + 1 +nbghostcells + jspongearea187 ind1 = nn_hls + nbghostcells ! halo + nbghostcells 188 ind2 = nn_hls + nbghostcells + jspongearea 189 189 DO jj = mj0(ind1), mj1(ind2) 190 190 DO ji = 1, jpi … … 194 194 ! ghost cells: 195 195 ind1 = 1 196 ind2 = nn_hls + 1 + nbghostcells ! halo + land+ nbghostcells196 ind2 = nn_hls + nbghostcells ! halo + nbghostcells 197 197 DO jj = mj0(ind1), mj1(ind2) 198 198 DO ji = 1, jpi … … 202 202 ENDIF 203 203 IF( lk_north ) THEN ! --- North --- ! 204 ind1 = jpjglo - ( nn_hls + nbghostcells ) - jspongearea - 1205 ind2 = jpjglo - ( nn_hls + nbghostcells ) - 1 ! halo + land+ nbghostcells - 1204 ind1 = jpjglo - ( nn_hls + nbghostcells -1 ) - jspongearea - 1 205 ind2 = jpjglo - ( nn_hls + nbghostcells -1 ) - 1 ! halo + nbghostcells - 1 206 206 DO jj = mj0(ind1), mj1(ind2) 207 207 DO ji = 1, jpi … … 210 210 END DO 211 211 ! ghost cells: 212 ind1 = jpjglo - ( nn_hls + nbghostcells ) ! halo + land + nbghostcells - 1212 ind1 = jpjglo - ( nn_hls + nbghostcells -1 ) ! halo + land + nbghostcells - 1 213 213 ind2 = jpjglo 214 214 DO jj = mj0(ind1), mj1(ind2) … … 284 284 285 285 IF( lk_west ) THEN ! --- West --- ! 286 ind1 = nn_hls + 1 +nbghostcells + ishift287 ind2 = nn_hls + 1 +nbghostcells + ishift + ispongearea286 ind1 = nn_hls + nbghostcells + ishift 287 ind2 = nn_hls + nbghostcells + ishift + ispongearea 288 288 DO ji = mi0(ind1), mi1(ind2) 289 289 DO jj = 1, jpj … … 293 293 ! ghost cells: 294 294 ind1 = 1 295 ind2 = nn_hls + 1 + nbghostcells + ishift ! halo + land+ nbghostcells295 ind2 = nn_hls + nbghostcells + ishift ! halo + nbghostcells 296 296 DO ji = mi0(ind1), mi1(ind2) 297 297 DO jj = 1, jpj … … 301 301 ENDIF 302 302 IF( lk_east ) THEN ! --- East --- ! 303 ind1 = jpiglo - ( nn_hls + nbghostcells + ishift) - ispongearea - 1304 ind2 = jpiglo - ( nn_hls + nbghostcells + ishift) - 1 ! halo + land+ nbghostcells - 1303 ind1 = jpiglo - ( nn_hls + nbghostcells -1 + ishift) - ispongearea - 1 304 ind2 = jpiglo - ( nn_hls + nbghostcells -1 + ishift) - 1 ! halo + nbghostcells - 1 305 305 DO ji = mi0(ind1), mi1(ind2) 306 306 DO jj = 1, jpj … … 309 309 END DO 310 310 ! ghost cells: 311 ind1 = jpiglo - ( nn_hls + nbghostcells + ishift) - 1 ! halo + land+ nbghostcells - 1311 ind1 = jpiglo - ( nn_hls + nbghostcells -1 + ishift) - 1 ! halo + nbghostcells - 1 312 312 ind2 = jpiglo - 1 313 313 DO ji = mi0(ind1), mi1(ind2) … … 318 318 ENDIF 319 319 IF( lk_south ) THEN ! --- South --- ! 320 ind1 = nn_hls + 1 + nbghostcells + jshift ! halo + land+ nbghostcells321 ind2 = nn_hls + 1 +nbghostcells + jshift + jspongearea320 ind1 = nn_hls + nbghostcells + jshift ! halo + nbghostcells 321 ind2 = nn_hls + nbghostcells + jshift + jspongearea 322 322 DO jj = mj0(ind1), mj1(ind2) 323 323 DO ji = 1, jpi … … 327 327 ! ghost cells: 328 328 ind1 = 1 329 ind2 = nn_hls + 1 +nbghostcells + jshift ! halo + land + nbghostcells329 ind2 = nn_hls + nbghostcells + jshift ! halo + land + nbghostcells 330 330 DO jj = mj0(ind1), mj1(ind2) 331 331 DO ji = 1, jpi … … 335 335 ENDIF 336 336 IF( lk_north ) THEN ! --- North --- ! 337 ind1 = jpjglo - ( nn_hls + nbghostcells + jshift) - jspongearea - 1338 ind2 = jpjglo - ( nn_hls + nbghostcells + jshift) - 1 ! halo + land + nbghostcells - 1337 ind1 = jpjglo - ( nn_hls + nbghostcells -1 + jshift) - jspongearea - 1 338 ind2 = jpjglo - ( nn_hls + nbghostcells -1 + jshift) - 1 ! halo + land + nbghostcells - 1 339 339 DO jj = mj0(ind1), mj1(ind2) 340 340 DO ji = 1, jpi … … 343 343 END DO 344 344 ! ghost cells: 345 ind1 = jpjglo - ( nn_hls + nbghostcells + jshift) ! halo + land + nbghostcells - 1345 ind1 = jpjglo - ( nn_hls + nbghostcells -1 + jshift) ! halo + land + nbghostcells - 1 346 346 ind2 = jpjglo 347 347 DO jj = mj0(ind1), mj1(ind2) … … 741 741 742 742 jmax = j2-1 743 ind1 = jpjglo - ( nn_hls + nbghostcells + 2) ! North743 ind1 = jpjglo - ( nn_hls + nbghostcells + 1 ) ! North 744 744 DO jj = mj0(ind1), mj1(ind1) 745 745 jmax = MIN(jmax,jj) … … 905 905 906 906 imax = i2 - 1 907 ind1 = jpiglo - ( nn_hls + nbghostcells + 2) ! East907 ind1 = jpiglo - ( nn_hls + nbghostcells + 1 ) ! East 908 908 DO ji = mi0(ind1), mi1(ind1) 909 909 imax = MIN(imax,ji) … … 1005 1005 1006 1006 jmax = j2-1 1007 ind1 = jpjglo - ( nn_hls + nbghostcells + 2) ! North1007 ind1 = jpjglo - ( nn_hls + nbghostcells + 1 ) ! North 1008 1008 DO jj = mj0(ind1), mj1(ind1) 1009 1009 jmax = MIN(jmax,jj) … … 1072 1072 1073 1073 imax = i2 - 1 1074 ind1 = jpiglo - ( nn_hls + nbghostcells + 2) ! East1074 ind1 = jpiglo - ( nn_hls + nbghostcells + 1 ) ! East 1075 1075 DO ji = mi0(ind1), mi1(ind1) 1076 1076 imax = MIN(imax,ji) -
NEMO/trunk/src/NST/agrif_oce_update.F90
r14227 r14976 1284 1284 !!---------------------------------------------------------------------- 1285 1285 ! 1286 IF (( .NOT.ln_agrif_2way ).OR.(.NOT.ln_chk_bathy).OR.(Agrif_Root())) RETURN 1286 IF (( .NOT.ln_agrif_2way ).OR.(.NOT.ln_chk_bathy) & 1287 & .OR.(.NOT.ln_vert_remap).OR.(Agrif_Root())) RETURN 1287 1288 ! 1288 1289 Agrif_UseSpecialValueInUpdate = .FALSE. -
NEMO/trunk/src/NST/agrif_user.F90
r14433 r14976 57 57 ! 58 58 INTEGER :: ind1, ind2, ind3, imaxrho 59 INTEGER :: nbghostcellsfine_tot_x, nbghostcellsfine_tot_y 59 60 INTEGER :: its 60 61 External :: nemo_mapping … … 78 79 ! 1. Declaration of the type of variable which have to be interpolated 79 80 !--------------------------------------------------------------------- 80 ind1 = nbghostcells 81 ind2 = nn_hls + 2 + nbghostcells_x 82 ind3 = nn_hls + 2 + nbghostcells_y_s 81 ! ind1 = nbghostcells 82 ind2 = nn_hls + 1 + nbghostcells_x 83 ind3 = nn_hls + 1 + nbghostcells_y_s 84 nbghostcellsfine_tot_x = nbghostcells_x+1 85 nbghostcellsfine_tot_y = MAX(nbghostcells_y_s,nbghostcells_y_n)+1 86 ind1 = MAX(nbghostcellsfine_tot_x, nbghostcellsfine_tot_y) 83 87 imaxrho = MAX(Agrif_irhox(), Agrif_irhoy()) 84 88 … … 120 124 ! 3. Location of interpolation 121 125 !----------------------------- 122 ! CALL Agrif_Set_bc( e3t_id, (/-nn_sponge_len*imaxrho,ind1-1/) ) 123 ! JC: check near the boundary only until matching in sponge has been sorted out: 124 CALL Agrif_Set_bc( e3t_id, (/0,ind1-1/) ) 126 CALL Agrif_Set_bc( e3t_id, (/-nn_sponge_len*imaxrho-2,ind1-1/) ) 125 127 126 128 ! extend the interpolation zone by 1 more point than necessary: 127 129 ! RB check here 128 CALL Agrif_Set_bc( e3t0_interp_id, (/-nn_sponge_len*imaxrho-2,ind1/) ) 129 CALL Agrif_Set_bc( mbkt_id, (/-nn_sponge_len*imaxrho-2,ind1/) ) 130 CALL Agrif_Set_bc( ht0_id, (/-nn_sponge_len*imaxrho-2,ind1/) ) 130 CALL Agrif_Set_bc( e3t0_interp_id, (/-nn_sponge_len*imaxrho-2,ind1-1/) ) 131 CALL Agrif_Set_bc( mbkt_id, (/-nn_sponge_len*imaxrho-2,ind1-1/) ) 132 CALL Agrif_Set_bc( ht0_id, (/-nn_sponge_len*imaxrho-2,ind1-1/) ) 133 131 134 CALL Agrif_Set_bc( tsini_id, (/0,ind1-1/) ) ! if west, rhox=3 and nbghost=3: columns 2 to 4 132 135 CALL Agrif_Set_bc( uini_id, (/0,ind1-1/) ) … … 142 145 #endif 143 146 144 !CALL Agrif_Set_ExternalMapping(nemo_mapping)147 CALL Agrif_Set_ExternalMapping(nemo_mapping) 145 148 ! 146 149 END SUBROUTINE agrif_declare_var_ini … … 222 225 ! 223 226 ! Build "intermediate" parent vertical grid on child domain 224 IF ( ln_vert_remap ) THEN 225 226 jpk_parent = Agrif_parent( jpk ) 227 ALLOCATE(e3t0_parent(jpi,jpj,jpk_parent), & 228 & e3u0_parent(jpi,jpj,jpk_parent), & 229 & e3v0_parent(jpi,jpj,jpk_parent), STAT = ierr) 230 IF( ierr > 0 ) CALL ctl_warn('Agrif_Init_Domain: allocation of arrays failed') 227 jpk_parent = Agrif_parent( jpk ) 228 ALLOCATE(e3t0_parent(jpi,jpj,jpk_parent), & 229 & e3u0_parent(jpi,jpj,jpk_parent), & 230 & e3v0_parent(jpi,jpj,jpk_parent), STAT = ierr) 231 IF( ierr > 0 ) CALL ctl_warn('Agrif_Init_Domain: allocation of arrays failed') 231 232 232 ! Retrieve expected parent scale factors on child grid: 233 Agrif_UseSpecialValue = .FALSE. 234 e3t0_parent(:,:,:) = 0._wp 235 CALL Agrif_Init_Variable(e3t0_interp_id, procname=interpe3t0_vremap) 236 ! 237 ! Deduce scale factors at U and V points: 238 DO_3D( 0, 0, 0, 0, 1, jpk_parent ) 239 e3u0_parent(ji,jj,jk) = 0.5_wp * (e3t0_parent(ji,jj,jk) + e3t0_parent(ji+1,jj ,jk)) 240 e3v0_parent(ji,jj,jk) = 0.5_wp * (e3t0_parent(ji,jj,jk) + e3t0_parent(ji ,jj+1,jk)) 241 END_3D 242 243 ! Assume a step at the bottom except if (pure) s-coordinates 244 IF ( .NOT.Agrif_Parent(ln_sco) ) THEN 245 DO_2D( 1, 0, 1, 0 ) 246 jk = mbku_parent(ji,jj) 247 e3u0_parent(ji,jj,jk) = MIN(e3t0_parent(ji,jj,jk), e3t0_parent(ji+1,jj ,jk)) 248 jk = mbkv_parent(ji,jj) 249 e3v0_parent(ji,jj,jk) = MIN(e3t0_parent(ji,jj,jk), e3t0_parent(ji ,jj+1,jk)) 250 END_2D 251 ENDIF 252 253 CALL lbc_lnk( 'Agrif_Init_Domain', e3u0_parent, 'U', 1.0_wp, e3v0_parent, 'V', 1.0_wp ) 254 ENDIF 233 ! Retrieve expected parent scale factors on child grid: 234 Agrif_UseSpecialValue = .FALSE. 235 e3t0_parent(:,:,:) = 0._wp 236 CALL Agrif_Init_Variable(e3t0_interp_id, procname=interpe3t0_vremap) 237 ! 238 ! Deduce scale factors at U and V points: 239 DO_3D( 0, 0, 0, 0, 1, jpk_parent ) 240 e3u0_parent(ji,jj,jk) = 0.5_wp * (e3t0_parent(ji,jj,jk) + e3t0_parent(ji+1,jj ,jk)) 241 e3v0_parent(ji,jj,jk) = 0.5_wp * (e3t0_parent(ji,jj,jk) + e3t0_parent(ji ,jj+1,jk)) 242 END_3D 243 244 ! Assume a step at the bottom except if (pure) s-coordinates 245 IF ( .NOT.Agrif_Parent(ln_sco) ) THEN 246 DO_2D( 1, 0, 1, 0 ) 247 jk = mbku_parent(ji,jj) 248 e3u0_parent(ji,jj,jk) = MIN(e3t0_parent(ji,jj,jk), e3t0_parent(ji+1,jj ,jk)) 249 jk = mbkv_parent(ji,jj) 250 e3v0_parent(ji,jj,jk) = MIN(e3t0_parent(ji,jj,jk), e3t0_parent(ji ,jj+1,jk)) 251 END_2D 252 ENDIF 253 254 CALL lbc_lnk( 'Agrif_Init_Domain', e3u0_parent, 'U', 1.0_wp, e3v0_parent, 'V', 1.0_wp ) 255 255 256 256 ! check if masks and bathymetries match … … 262 262 ! 263 263 kindic_agr = 0 264 IF( .NOT. ln_vert_remap ) THEN 265 ! 266 ! check if tmask and vertical scale factors agree with parent in sponge area: 267 CALL Agrif_Bc_variable(e3t_id,calledweight=1.,procname=interpe3t) 268 ! 269 ELSE 270 ! 271 ! In case of vertical interpolation, check only that total depths agree between child and parent: 272 273 CALL Agrif_check_bat( kindic_agr ) 274 ENDIF 264 ! 265 CALL Agrif_check_bat( kindic_agr ) 275 266 ! 276 267 CALL mpp_sum( 'agrif_InitValues_Domain', kindic_agr ) … … 287 278 WHERE (ssmask(:,:) == 0._wp) mbkt_parent(:,:) = 0 288 279 ! 280 IF ( .NOT.ln_vert_remap ) DEALLOCATE(e3t0_parent, e3u0_parent, e3v0_parent) 281 289 282 END SUBROUTINE Agrif_Init_Domain 290 283 … … 440 433 !--------------------------------------------------------------------- 441 434 ind1 = nbghostcells 442 ind2 = nn_hls + 2+ nbghostcells_x443 ind3 = nn_hls + 2+ nbghostcells_y_s435 ind2 = nn_hls + 1 + nbghostcells_x 436 ind3 = nn_hls + 1 + nbghostcells_y_s 444 437 imaxrho = MAX(Agrif_irhox(), Agrif_irhoy()) 445 438 … … 640 633 !------------------------------------------------------------------------------------- 641 634 ind1 = nbghostcells 642 ind2 = nn_hls + 2+ nbghostcells_x643 ind3 = nn_hls + 2+ nbghostcells_y_s635 ind2 = nn_hls + 1 + nbghostcells_x 636 ind3 = nn_hls + 1 + nbghostcells_y_s 644 637 ipl = jpl*(9+nlay_s+nlay_i) 645 638 CALL agrif_declare_variable((/2,2,0/),(/ind2,ind3,0/),(/'x','y','N'/),(/1,1,1/),(/jpi,jpj,ipl/),tra_ice_id) … … 780 773 !--------------------------------------------------------------------- 781 774 ind1 = nbghostcells 782 ind2 = nn_hls + 2+ nbghostcells_x783 ind3 = nn_hls + 2+ nbghostcells_y_s775 ind2 = nn_hls + 1 + nbghostcells_x 776 ind3 = nn_hls + 1 + nbghostcells_y_s 784 777 imaxrho = MAX(Agrif_irhox(), Agrif_irhoy()) 785 778 … … 862 855 863 856 ! JC => side effects of lines below to be checked: 864 lk_west = .NOT. ( Agrif_Ix() == 1 ) 865 lk_east = .NOT. ( Agrif_Ix() + nbcellsx/AGRIF_Irhox() == Agrif_Parent(Ni0glo) -1 ) 866 lk_south = .NOT. ( Agrif_Iy() == 1 ) 867 lk_north = .NOT. ( Agrif_Iy() + nbcellsy/AGRIF_Irhoy() == Agrif_Parent(Nj0glo) -1 ) 868 ! 869 ! Set the number of ghost cells according to periodicity 870 nbghostcells_x = nbghostcells 871 nbghostcells_y_s = nbghostcells 872 nbghostcells_y_n = nbghostcells 873 ! 874 IF( l_Iperio ) nbghostcells_x = 0 875 IF( .NOT. lk_south ) nbghostcells_y_s = 0 876 IF( .NOT. lk_north ) nbghostcells_y_n = 0 877 ! 878 ! Some checks 879 IF( (.NOT.ln_vert_remap).AND.(jpkglo>Agrif_Parent(jpkglo)) ) CALL ctl_stop( 'STOP', & 880 & 'agrif_nemo_init: Agrif children must have less or equal number of vertical levels without ln_vert_remap defined' ) 881 IF( jpiglo /= nbcellsx + 2 + 2*nn_hls + nbghostcells_x + nbghostcells_x ) CALL ctl_stop( 'STOP', & 882 & 'agrif_nemo_init: Agrif children requires jpiglo == nbcellsx + 2 + 2*nn_hls + 2*nbghostcells_x' ) 883 IF( jpjglo /= nbcellsy + 2 + 2*nn_hls + nbghostcells_y_s + nbghostcells_y_n ) CALL ctl_stop( 'STOP', & 884 & 'agrif_nemo_init: Agrif children requires jpjglo == nbcellsy + 2 + 2*nn_hls + nbghostcells_y_s + nbghostcells_y_n' ) 885 IF( ln_use_jattr ) CALL ctl_stop( 'STOP', 'agrif_nemo_init:Agrif children requires ln_use_jattr = .false. ' ) 857 IF (.not.agrif_root()) THEN 858 nbghostcells_x = nbghostcells 859 nbghostcells_y_s = nbghostcells 860 nbghostcells_y_n = nbghostcells 861 862 863 lk_west = .TRUE. 864 lk_east = .TRUE. 865 lk_south = .TRUE. 866 lk_north = .TRUE. 867 ! 868 ! Correct number of ghost cells according to periodicity 869 ! 870 IF( l_Iperio ) THEN ; lk_west = .FALSE. ; lk_east = .FALSE. ; nbghostcells_x = 0 ; ENDIF 871 IF( Agrif_Iy() == 1 ) THEN ; lk_south = .FALSE. ; nbghostcells_y_s = 1 ; ENDIF 872 IF( Agrif_Iy() + nbcellsy/AGRIF_Irhoy() == Agrif_Parent(Nj0glo) - 1 ) THEN ; lk_north = .FALSE. ; nbghostcells_y_n = 1 ; ENDIF 873 ! 874 ! Some checks 875 IF( (.NOT.ln_vert_remap).AND.(jpkglo>Agrif_Parent(jpkglo)) ) CALL ctl_stop( 'STOP', & 876 & 'agrif_nemo_init: Agrif children must have less or equal number of vertical levels without ln_vert_remap defined' ) 877 IF( Ni0glo /= nbcellsx + nbghostcells_x + nbghostcells_x ) CALL ctl_stop( 'STOP', & 878 & 'agrif_nemo_init: Agrif children requires jpiglo == nbcellsx + 2*nbghostcells_x' ) 879 IF( Nj0glo /= nbcellsy + nbghostcells_y_s + nbghostcells_y_n ) CALL ctl_stop( 'STOP', & 880 & 'agrif_nemo_init: Agrif children requires jpjglo == nbcellsy + nbghostcells_y_s + nbghostcells_y_n' ) 881 IF( ln_use_jattr ) CALL ctl_stop( 'STOP', 'agrif_nemo_init:Agrif children requires ln_use_jattr = .false. ' ) 882 ELSE 883 ! Root grid 884 nbghostcells_x = 1 885 nbghostcells_y_s = 1 886 nbghostcells_y_n = 1 887 IF ( l_Iperio.OR.l_NFold ) THEN 888 nbghostcells_x = 0 889 ENDIF 890 IF ( l_NFold ) THEN 891 nbghostcells_y_n = 0 ! for completeness 892 ENDIF 893 ENDIF 886 894 ! 887 895 ! … … 973 981 ENDIF 974 982 975 IF( bounds(2,2,2) > jpjglo) THEN983 IF(( bounds(2,2,2) > jpjglo).AND. ( l_NFold )) THEN 976 984 IF( bounds(2,1,2) <=jpjglo) THEN 977 985 nb_chunks = 2 … … 1065 1073 ENDIF 1066 1074 1067 ELSE IF ( bounds(1,1,2) < 1) THEN1075 ELSE IF ((bounds(1,1,2) < 1).AND.( l_Iperio )) THEN 1068 1076 IF (bounds(1,2,2) > 0) THEN 1069 1077 nb_chunks = 2
Note: See TracChangeset
for help on using the changeset viewer.