Opened 3 years ago
Closed 3 years ago
#2359 closed Bug (fixed)
Bug: U/V point interpolation of isf tbl tracer properties
Reported by: | mathiot | Owned by: | mathiot |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | SBC | Version: | trunk |
Severity: | minor | Keywords: | |
Cc: |
Description
Context
Interpolation of the mean tracer properties in the isf top boundary layer on U/V point is wrong.
Analysis
It only affect the trunk and version 4. Version 3.6 is not affected. A fix has been included 2019 isf development and therefore included in the 2 dev_merge_2019 branches.
Recommendation
-
src/OCE/SBC/sbcisf.F90
741 741 INTEGER :: ikt, ikb ! top and bottom index of the tbl 742 742 REAL(wp) :: ze3, zhk 743 743 REAL(wp), DIMENSION(jpi,jpj) :: zhisf_tbl ! thickness of the tbl 744 REAL(wp), DIMENSION(jpi,jpj) :: zvarout 744 745 !!---------------------------------------------------------------------- 745 746 746 747 ! initialisation … … 748 749 749 750 SELECT CASE ( cd_ptin ) 750 751 CASE ( 'U' ) ! compute U in the top boundary layer at T- point 752 ! 753 zvarout(:,:)=0._wp 754 ! 751 755 DO jj = 1,jpj 752 756 DO ji = 1,jpi 753 757 ikt = miku(ji,jj) ; ikb = miku(ji,jj) … … 763 767 ! level fully include in the ice shelf boundary layer 764 768 DO jk = ikt, ikb - 1 765 769 ze3 = e3u_n(ji,jj,jk) 766 pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3770 zvarout(ji,jj) = zvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 767 771 END DO 768 772 769 773 ! level partially include in ice shelf boundary layer 770 774 zhk = SUM( e3u_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 771 pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk)775 zvarout(ji,jj) = zvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 772 776 END DO 773 777 END DO 774 778 DO jj = 2, jpj 775 779 DO ji = 2, jpi 776 780 !!gm a wet-point only average should be used here !!! 777 pvarout(ji,jj) = 0.5_wp * ( pvarout(ji,jj) + pvarout(ji-1,jj))781 pvarout(ji,jj) = 0.5_wp * (zvarout(ji,jj) + zvarout(ji-1,jj)) 778 782 END DO 779 783 END DO 780 784 CALL lbc_lnk('sbcisf', pvarout,'T',-1.) 781 785 782 786 CASE ( 'V' ) ! compute V in the top boundary layer at T- point 787 ! 788 zvarout(:,:)=0._wp 789 ! 783 790 DO jj = 1,jpj 784 791 DO ji = 1,jpi 785 792 ikt = mikv(ji,jj) ; ikb = mikv(ji,jj) … … 795 802 ! level fully include in the ice shelf boundary layer 796 803 DO jk = ikt, ikb - 1 797 804 ze3 = e3v_n(ji,jj,jk) 798 pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3805 zvarout(ji,jj) = zvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 799 806 END DO 800 807 801 808 ! level partially include in ice shelf boundary layer 802 809 zhk = SUM( e3v_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 803 pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk)810 zvarout(ji,jj) = zvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 804 811 END DO 805 812 END DO 806 813 DO jj = 2, jpj 807 814 DO ji = 2, jpi 808 815 !!gm a wet-point only average should be used here !!! 809 pvarout(ji,jj) = 0.5_wp * ( pvarout(ji,jj) + pvarout(ji,jj-1))816 pvarout(ji,jj) = 0.5_wp * (zvarout(ji,jj) + zvarout(ji,jj-1)) 810 817 END DO 811 818 END DO 812 819 CALL lbc_lnk('sbcisf', pvarout,'T',-1.)
Change History (1)
comment:1 Changed 3 years ago by mathiot
- Resolution set to fixed
- Status changed from new to closed
Note: See
TracTickets for help on using
tickets.
In 12294: