Changeset 8189 for branches/2017/dev_r8127_AGRIF_LIM3_GHOST/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90
- Timestamp:
- 2017-06-19T17:16:00+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8127_AGRIF_LIM3_GHOST/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90
r8129 r8189 104 104 ! 105 105 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 106 ua_b( 1:1+nbghostcells,:) = 0._wp106 ua_b(2:1+nbghostcells,:) = 0._wp 107 107 DO jk = 1, jpkm1 108 108 DO jj = 1, jpj 109 ua_b( 1:1+nbghostcells,jj) = ua_b(1:1+nbghostcells,jj) + e3u_a(1:1+nbghostcells,jj,jk) * ua(1:1+nbghostcells,jj,jk)109 ua_b(2:1+nbghostcells,jj) = ua_b(2:1+nbghostcells,jj) + e3u_a(2:1+nbghostcells,jj,jk) * ua(2:1+nbghostcells,jj,jk) 110 110 END DO 111 111 END DO 112 112 DO jj = 1, jpj 113 ua_b( 1:1+nbghostcells,jj) = ua_b(1:1+nbghostcells,jj) * r1_hu_a(1:1+nbghostcells,jj)113 ua_b(2:1+nbghostcells,jj) = ua_b(2:1+nbghostcells,jj) * r1_hu_a(2:1+nbghostcells,jj) 114 114 END DO 115 115 ENDIF … … 166 166 167 167 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 168 ua_b(nlci-nbghostcells-1:nlci ,:) = 0._wp168 ua_b(nlci-nbghostcells-1:nlci-2,:) = 0._wp 169 169 DO jk=1,jpkm1 170 170 DO jj=1,jpj 171 ua_b(nlci-nbghostcells-1:nlci ,jj) = ua_b(nlci-nbghostcells-1:nlci,jj) + e3u_a(nlci-nbghostcells-1:nlci,jj,jk) &172 & * ua(nlci-nbghostcells-1:nlci,jj,jk)171 ua_b(nlci-nbghostcells-1:nlci-2,jj) = ua_b(nlci-nbghostcells-1:nlci-2,jj) + e3u_a(nlci-nbghostcells-1:nlci-2,jj,jk) & 172 & * ua(nlci-nbghostcells-1:nlci-2,jj,jk) 173 173 END DO 174 174 END DO 175 175 DO jj=1,jpj 176 ua_b(nlci-nbghostcells-1:nlci ,jj) = ua_b(nlci-nbghostcells-1:nlci,jj) * r1_hu_a(nlci-nbghostcells-1:nlci,jj)176 ua_b(nlci-nbghostcells-1:nlci-2,jj) = ua_b(nlci-nbghostcells-1:nlci-2,jj) * r1_hu_a(nlci-nbghostcells-1:nlci-2,jj) 177 177 END DO 178 178 ENDIF … … 229 229 230 230 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 231 va_b(:, 1:nbghostcells+1) = 0._wp231 va_b(:,2:nbghostcells+1) = 0._wp 232 232 DO jk = 1, jpkm1 233 233 DO ji = 1, jpi 234 va_b(ji, 1:nbghostcells+1) = va_b(ji,1:nbghostcells+1) + e3v_a(ji,1:nbghostcells+1,jk) * va(ji,1:nbghostcells+1,jk)234 va_b(ji,2:nbghostcells+1) = va_b(ji,2:nbghostcells+1) + e3v_a(ji,2:nbghostcells+1,jk) * va(ji,2:nbghostcells+1,jk) 235 235 END DO 236 236 END DO 237 237 DO ji=1,jpi 238 va_b(ji, 1:nbghostcells+1) = va_b(ji,1:nbghostcells+1) * r1_hv_a(ji,1:nbghostcells+1)238 va_b(ji,2:nbghostcells+1) = va_b(ji,2:nbghostcells+1) * r1_hv_a(ji,2:nbghostcells+1) 239 239 END DO 240 240 ENDIF … … 291 291 ! 292 292 IF( .NOT.ln_dynspg_ts ) THEN ! Store transport 293 va_b(:,nlcj-nbghostcells-1:nlcj ) = 0._wp293 va_b(:,nlcj-nbghostcells-1:nlcj-2) = 0._wp 294 294 DO jk = 1, jpkm1 295 295 DO ji = 1, jpi 296 va_b(ji,nlcj-nbghostcells-1:nlcj ) = va_b(ji,nlcj-nbghostcells-1:nlcj) + e3v_a(ji,nlcj-nbghostcells-1:nlcj,jk) &297 & * va(ji,nlcj-nbghostcells-1:nlcj,jk)296 va_b(ji,nlcj-nbghostcells-1:nlcj-2) = va_b(ji,nlcj-nbghostcells-1:nlcj-2) + e3v_a(ji,nlcj-nbghostcells-1:nlcj-2,jk) & 297 & * va(ji,nlcj-nbghostcells-1:nlcj-2,jk) 298 298 END DO 299 299 END DO 300 300 DO ji = 1, jpi 301 va_b(ji,nlcj-nbghostcells-1:nlcj ) = va_b(ji,nlcj-nbghostcells-1:nlcj) * r1_hv_a(ji,nlcj-nbghostcells-1:nlcj)301 va_b(ji,nlcj-nbghostcells-1:nlcj-2) = va_b(ji,nlcj-nbghostcells-1:nlcj-2) * r1_hv_a(ji,nlcj-nbghostcells-1:nlcj-2) 302 302 END DO 303 303 ENDIF … … 369 369 IF((nbondi == -1).OR.(nbondi == 2)) THEN 370 370 DO jj=1,jpj 371 va_e(1:nbghostcells+1,jj) = vbdy_w(jj) * hvr_e(1:nbghostcells+1,jj) 372 ! Specified fluxes: 373 ua_e(1:nbghostcells+1,jj) = ubdy_w(jj) * hur_e(1:nbghostcells+1,jj) 374 ! Characteristics method (only if ghostcells=1): 375 !alt ua_e(2,jj) = 0.5_wp * ( ubdy_w(jj) * hur_e(2,jj) + ua_e(3,jj) & 376 !alt & - sqrt(grav * hur_e(2,jj)) * (sshn_e(3,jj) - hbdy_w(jj)) ) 371 IF( vmask(2,jj,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 372 va_e(2:nbghostcells+1,jj) = vbdy_w(jj) * hvr_e(2:nbghostcells+1,jj) 373 ! Specified fluxes: 374 ua_e(2:nbghostcells+1,jj) = ubdy_w(jj) * hur_e(2:nbghostcells+1,jj) 375 ! Characteristics method (only if ghostcells=1): 376 !alt ua_e(2,jj) = 0.5_wp * ( ubdy_w(jj) * hur_e(2,jj) + ua_e(3,jj) & 377 !alt & - sqrt(grav * hur_e(2,jj)) * (sshn_e(3,jj) - hbdy_w(jj)) ) 378 ENDIF 377 379 END DO 378 380 ENDIF … … 380 382 IF((nbondi == 1).OR.(nbondi == 2)) THEN 381 383 DO jj=1,jpj 382 va_e(nlci-nbghostcells:nlci,jj) = vbdy_e(jj) * hvr_e(nlci-nbghostcells:nlci,jj) 383 ! Specified fluxes: 384 ua_e(nlci-nbghostcells-1:nlci-1,jj) = ubdy_e(jj) * hur_e(nlci-nbghostcells-1:nlci-1,jj) 385 ! Characteristics method (only if ghostcells=1): 386 !alt ua_e(nlci-2,jj) = 0.5_wp * ( ubdy_e(jj) * hur_e(nlci-2,jj) + ua_e(nlci-3,jj) & 387 !alt & + sqrt(grav * hur_e(nlci-2,jj)) * (sshn_e(nlci-2,jj) - hbdy_e(jj)) ) 384 IF( vmask(nlci-1,jj,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 385 va_e(nlci-nbghostcells:nlci-1,jj) = vbdy_e(jj) * hvr_e(nlci-nbghostcells:nlci-1,jj) 386 ! Specified fluxes: 387 ua_e(nlci-nbghostcells-1:nlci-2,jj) = ubdy_e(jj) * hur_e(nlci-nbghostcells-1:nlci-2,jj) 388 ! Characteristics method (only if ghostcells=1): 389 !alt ua_e(nlci-2,jj) = 0.5_wp * ( ubdy_e(jj) * hur_e(nlci-2,jj) + ua_e(nlci-3,jj) & 390 !alt & + sqrt(grav * hur_e(nlci-2,jj)) * (sshn_e(nlci-2,jj) - hbdy_e(jj)) ) 391 ENDIF 388 392 END DO 389 393 ENDIF … … 391 395 IF((nbondj == -1).OR.(nbondj == 2)) THEN 392 396 DO ji=1,jpi 393 ua_e(ji,1:nbghostcells+1) = ubdy_s(ji) * hur_e(ji,1:nbghostcells+1) 394 ! Specified fluxes: 395 va_e(ji,1:nbghostcells+1) = vbdy_s(ji) * hvr_e(ji,1:nbghostcells+1) 396 ! Characteristics method (only if ghostcells=1): 397 !alt va_e(ji,2) = 0.5_wp * ( vbdy_s(ji) * hvr_e(ji,2) + va_e(ji,3) & 398 !alt & - sqrt(grav * hvr_e(ji,2)) * (sshn_e(ji,3) - hbdy_s(ji)) ) 397 IF( umask(ji,2,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 398 ua_e(ji,2:nbghostcells+1) = ubdy_s(ji) * hur_e(ji,2:nbghostcells+1) 399 ! Specified fluxes: 400 va_e(ji,2:nbghostcells+1) = vbdy_s(ji) * hvr_e(ji,2:nbghostcells+1) 401 ! Characteristics method (only if ghostcells=1): 402 !alt va_e(ji,2) = 0.5_wp * ( vbdy_s(ji) * hvr_e(ji,2) + va_e(ji,3) & 403 !alt & - sqrt(grav * hvr_e(ji,2)) * (sshn_e(ji,3) - hbdy_s(ji)) ) 404 ENDIF 399 405 END DO 400 406 ENDIF … … 402 408 IF((nbondj == 1).OR.(nbondj == 2)) THEN 403 409 DO ji=1,jpi 404 ua_e(ji,nlcj-nbghostcells:nlcj) = ubdy_n(ji) * hur_e(ji,nlcj-nbghostcells:nlcj) 405 ! Specified fluxes: 406 va_e(ji,nlcj-nbghostcells-1:nlcj-1) = vbdy_n(ji) * hvr_e(ji,nlcj-nbghostcells-1:nlcj-1) 407 ! Characteristics method (only if ghostcells=1): 408 !alt va_e(ji,nlcj-2) = 0.5_wp * ( vbdy_n(ji) * hvr_e(ji,nlcj-2) + va_e(ji,nlcj-3) & 409 !alt & + sqrt(grav * hvr_e(ji,nlcj-2)) * (sshn_e(ji,nlcj-2) - hbdy_n(ji)) ) 410 IF( umask(ji,nlcj-1,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 411 ua_e(ji,nlcj-nbghostcells:nlcj-1) = ubdy_n(ji) * hur_e(ji,nlcj-nbghostcells:nlcj-1) 412 ! Specified fluxes: 413 va_e(ji,nlcj-nbghostcells-1:nlcj-2) = vbdy_n(ji) * hvr_e(ji,nlcj-nbghostcells-1:nlcj-2) 414 ! Characteristics method (only if ghostcells=1): 415 !alt va_e(ji,nlcj-2) = 0.5_wp * ( vbdy_n(ji) * hvr_e(ji,nlcj-2) + va_e(ji,nlcj-3) & 416 !alt & + sqrt(grav * hvr_e(ji,nlcj-2)) * (sshn_e(ji,nlcj-2) - hbdy_n(ji)) ) 417 ENDIF 410 418 END DO 411 419 ENDIF … … 488 496 indx = 1+nbghostcells 489 497 DO jj = 1, jpj 490 DO ji = 1, indx 491 ssha(ji,jj)=ssha(indx+1,jj) 492 sshn(ji,jj)=sshn(indx+1,jj) 498 DO ji = 2, indx 499 IF( tmask(2,jj,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 500 ssha(ji,jj)=ssha(indx+1,jj) 501 sshn(ji,jj)=sshn(indx+1,jj) 502 ENDIF 493 503 ENDDO 494 504 ENDDO … … 499 509 indx = nlci-nbghostcells 500 510 DO jj = 1, jpj 501 DO ji = indx, nlci 502 ssha(ji,jj)=ssha(indx-1,jj) 503 sshn(ji,jj)=sshn(indx-1,jj) 511 DO ji = indx, nlci-1 512 IF( tmask(nlci-1,jj,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 513 ssha(ji,jj)=ssha(indx-1,jj) 514 sshn(ji,jj)=sshn(indx-1,jj) 515 ENDIF 504 516 ENDDO 505 517 ENDDO … … 509 521 IF((nbondj == -1).OR.(nbondj == 2)) THEN 510 522 indx = 1+nbghostcells 511 DO jj = 1, indx523 DO jj = 2, indx 512 524 DO ji = 1, jpi 513 ssha(ji,jj)=ssha(ji,indx+1) 514 sshn(ji,jj)=sshn(ji,indx+1) 525 IF( tmask(ji,2,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 526 ssha(ji,jj)=ssha(ji,indx+1) 527 sshn(ji,jj)=sshn(ji,indx+1) 528 ENDIF 515 529 ENDDO 516 530 ENDDO … … 520 534 IF((nbondj == 1).OR.(nbondj == 2)) THEN 521 535 indx = nlcj-nbghostcells 522 DO jj = indx, nlcj 536 DO jj = indx, nlcj-1 523 537 DO ji = 1, jpi 524 ssha(ji,jj)=ssha(ji,indx-1) 525 sshn(ji,jj)=sshn(ji,indx-1) 538 IF( tmask(ji,nlcj-1,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 539 ssha(ji,jj)=ssha(ji,indx-1) 540 sshn(ji,jj)=sshn(ji,indx-1) 541 ENDIF 526 542 ENDDO 527 543 ENDDO … … 542 558 IF((nbondi == -1).OR.(nbondi == 2)) THEN 543 559 DO jj = 1, jpj 544 ssha_e(1:nbghostcells+1,jj) = hbdy_w(jj) 560 IF( tmask(2,jj,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 561 ssha_e(2:nbghostcells+1,jj) = hbdy_w(jj) 562 ENDIF 545 563 END DO 546 564 ENDIF … … 548 566 IF((nbondi == 1).OR.(nbondi == 2)) THEN 549 567 DO jj = 1, jpj 550 ssha_e(nlci-nbghostcells:nlci,jj) = hbdy_e(jj) 568 IF( tmask(nlci-1,jj,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 569 ssha_e(nlci-nbghostcells:nlci-1,jj) = hbdy_e(jj) 570 ENDIF 551 571 END DO 552 572 ENDIF … … 554 574 IF((nbondj == -1).OR.(nbondj == 2)) THEN 555 575 DO ji = 1, jpi 556 ssha_e(ji,1:nbghostcells+1) = hbdy_s(ji) 576 IF( tmask(ji,2,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 577 ssha_e(ji,2:nbghostcells+1) = hbdy_s(ji) 578 ENDIF 557 579 END DO 558 580 ENDIF … … 560 582 IF((nbondj == 1).OR.(nbondj == 2)) THEN 561 583 DO ji = 1, jpi 562 ssha_e(ji,nlcj-nbghostcells:nlcj) = hbdy_n(ji) 584 IF( tmask(ji,nlcj-1,1) == 1._wp ) THEN !clem: avoid interpolation if coast at the boundary 585 ssha_e(ji,nlcj-nbghostcells:nlcj-1) = hbdy_n(ji) 586 ENDIF 563 587 END DO 564 588 ENDIF … … 608 632 ELSE 609 633 ! 634 western_side = (nb == 1).AND.(ndir == 1) ; eastern_side = (nb == 1).AND.(ndir == 2) 635 southern_side = (nb == 2).AND.(ndir == 1) ; northern_side = (nb == 2).AND.(ndir == 2) 636 ! 610 637 IF( nbghostcells > 1 ) THEN ! no smoothing 611 638 tsa(i1:i2,j1:j2,k1:k2,n1:n2) = ptab(i1:i2,j1:j2,k1:k2,n1:n2) 612 639 ELSE ! smoothing 613 !614 western_side = (nb == 1).AND.(ndir == 1) ; eastern_side = (nb == 1).AND.(ndir == 2)615 southern_side = (nb == 2).AND.(ndir == 1) ; northern_side = (nb == 2).AND.(ndir == 2)616 640 ! 617 641 zrhox = Agrif_Rhox() … … 744 768 northern_side = (nb == 2).AND.(ndir == 2) 745 769 !! clem ghost 746 IF(western_side) hbdy_w(j1:j2) = ptab(i2,j1:j2) * tmask(i 1,j1:j2,1)747 IF(eastern_side) hbdy_e(j1:j2) = ptab(i 2,j1:j2) * tmask(i2,j1:j2,1) !clem previously i1770 IF(western_side) hbdy_w(j1:j2) = ptab(i2,j1:j2) * tmask(i2,j1:j2,1) 771 IF(eastern_side) hbdy_e(j1:j2) = ptab(i1,j1:j2) * tmask(i1,j1:j2,1) !clem previously i1 748 772 IF(southern_side) hbdy_s(i1:i2) = ptab(i1:i2,j2) * tmask(i1:i2,j2,1) !clem previously j1 749 IF(northern_side) hbdy_n(i1:i2) = ptab(i1:i2,j 2) * tmask(i1:i2,j1,1)773 IF(northern_side) hbdy_n(i1:i2) = ptab(i1:i2,j1) * tmask(i1:i2,j1,1) 750 774 ENDIF 751 775 ! … … 844 868 ENDIF 845 869 !! clem ghost 846 IF(western_side) ubdy_w(j1:j2) = ubdy_w(j1:j2) + ztcoeff * ptab(i 1,j1:j2)847 IF(eastern_side) ubdy_e(j1:j2) = ubdy_e(j1:j2) + ztcoeff * ptab(i 2,j1:j2) !clem previously i1870 IF(western_side) ubdy_w(j1:j2) = ubdy_w(j1:j2) + ztcoeff * ptab(i2,j1:j2) 871 IF(eastern_side) ubdy_e(j1:j2) = ubdy_e(j1:j2) + ztcoeff * ptab(i1,j1:j2) !clem previously i1 848 872 IF(southern_side) ubdy_s(i1:i2) = ubdy_s(i1:i2) + ztcoeff * ptab(i1:i2,j2) !clem previously j1 849 873 IF(northern_side) ubdy_n(i1:i2) = ubdy_n(i1:i2) + ztcoeff * ptab(i1:i2,j1) 850 874 ! 851 875 IF( bdy_tinterp == 0 .OR. bdy_tinterp == 2) THEN 852 IF(western_side) ubdy_w(j1:j2) = ubdy_w(j1:j2) / (zrhoy*e2u(i 1,j1:j2)) * umask(i1,j1:j2,1)853 IF(eastern_side) ubdy_e(j1:j2) = ubdy_e(j1:j2) / (zrhoy*e2u(i 2,j1:j2)) * umask(i2,j1:j2,1)876 IF(western_side) ubdy_w(j1:j2) = ubdy_w(j1:j2) / (zrhoy*e2u(i2,j1:j2)) * umask(i2,j1:j2,1) 877 IF(eastern_side) ubdy_e(j1:j2) = ubdy_e(j1:j2) / (zrhoy*e2u(i1,j1:j2)) * umask(i1,j1:j2,1) 854 878 IF(southern_side) ubdy_s(i1:i2) = ubdy_s(i1:i2) / (zrhoy*e2u(i1:i2,j2)) * umask(i1:i2,j2,1) 855 879 IF(northern_side) ubdy_n(i1:i2) = ubdy_n(i1:i2) / (zrhoy*e2u(i1:i2,j1)) * umask(i1:i2,j1,1) … … 896 920 ENDIF 897 921 !! clem ghost 898 IF(western_side) vbdy_w(j1:j2) = vbdy_w(j1:j2) + ztcoeff * ptab(i 1,j1:j2)899 IF(eastern_side) vbdy_e(j1:j2) = vbdy_e(j1:j2) + ztcoeff * ptab(i 2,j1:j2) !clem previously i1922 IF(western_side) vbdy_w(j1:j2) = vbdy_w(j1:j2) + ztcoeff * ptab(i2,j1:j2) 923 IF(eastern_side) vbdy_e(j1:j2) = vbdy_e(j1:j2) + ztcoeff * ptab(i1,j1:j2) !clem previously i1 900 924 IF(southern_side) vbdy_s(i1:i2) = vbdy_s(i1:i2) + ztcoeff * ptab(i1:i2,j2) !clem previously j1 901 925 IF(northern_side) vbdy_n(i1:i2) = vbdy_n(i1:i2) + ztcoeff * ptab(i1:i2,j1) 902 926 ! 903 927 IF( bdy_tinterp == 0 .OR. bdy_tinterp == 2) THEN 904 IF(western_side) vbdy_w(j1:j2) = vbdy_w(j1:j2) / (zrhox*e1v(i 1,j1:j2)) * vmask(i1,j1:j2,1)905 IF(eastern_side) vbdy_e(j1:j2) = vbdy_e(j1:j2) / (zrhox*e1v(i 2,j1:j2)) * vmask(i2,j1:j2,1)928 IF(western_side) vbdy_w(j1:j2) = vbdy_w(j1:j2) / (zrhox*e1v(i2,j1:j2)) * vmask(i2,j1:j2,1) 929 IF(eastern_side) vbdy_e(j1:j2) = vbdy_e(j1:j2) / (zrhox*e1v(i1,j1:j2)) * vmask(i1,j1:j2,1) 906 930 IF(southern_side) vbdy_s(i1:i2) = vbdy_s(i1:i2) / (zrhox*e1v(i1:i2,j2)) * vmask(i1:i2,j2,1) 907 931 IF(northern_side) vbdy_n(i1:i2) = vbdy_n(i1:i2) / (zrhox*e1v(i1:i2,j1)) * vmask(i1:i2,j1,1) … … 940 964 & - zt0**2._wp * (-2._wp*zt0 + 3._wp) ) 941 965 !! clem ghost 942 IF(western_side ) ubdy_w(j1:j2) = zat * ptab(i 1,j1:j2)943 IF(eastern_side ) ubdy_e(j1:j2) = zat * ptab(i 2,j1:j2) !clem previously i1966 IF(western_side ) ubdy_w(j1:j2) = zat * ptab(i2,j1:j2) 967 IF(eastern_side ) ubdy_e(j1:j2) = zat * ptab(i1,j1:j2) !clem previously i1 944 968 IF(southern_side) ubdy_s(i1:i2) = zat * ptab(i1:i2,j2) !clem previously j1 945 969 IF(northern_side) ubdy_n(i1:i2) = zat * ptab(i1:i2,j1) … … 978 1002 & - zt0**2._wp * (-2._wp*zt0 + 3._wp) ) 979 1003 ! 980 IF(western_side ) vbdy_w(j1:j2) = zat * ptab(i 1,j1:j2)981 IF(eastern_side ) vbdy_e(j1:j2) = zat * ptab(i 2,j1:j2) !clem previously i11004 IF(western_side ) vbdy_w(j1:j2) = zat * ptab(i2,j1:j2) 1005 IF(eastern_side ) vbdy_e(j1:j2) = zat * ptab(i1,j1:j2) !clem previously i1 982 1006 IF(southern_side) vbdy_s(i1:i2) = zat * ptab(i1:i2,j2) !clem previously j1 983 1007 IF(northern_side) vbdy_n(i1:i2) = zat * ptab(i1:i2,j1)
Note: See TracChangeset
for help on using the changeset viewer.