- Timestamp:
- 2015-12-16T10:25:22+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90
r5836 r6060 68 68 TYPE(FLD_N) , PUBLIC :: sn_depmax_isf, sn_depmin_isf, sn_Leff_isf !: information about the runoff file to be read 69 69 70 !! * Substitutions71 # include "domzgr_substitute.h90"72 70 !!---------------------------------------------------------------------- 73 71 !! NEMO/OPA 3.7 , LOCEAN-IPSL (2015) … … 170 168 DO jj = 1, jpj 171 169 jk = 2 172 DO WHILE ( jk .LE. mbkt(ji,jj) .AND. fsdepw(ji,jj,jk) < rzisf_tbl(ji,jj) ) ; jk = jk + 1 ; END DO170 DO WHILE ( jk .LE. mbkt(ji,jj) .AND. gdepw_n(ji,jj,jk) < rzisf_tbl(ji,jj) ) ; jk = jk + 1 ; END DO 173 171 misfkt(ji,jj) = jk-1 174 172 END DO … … 195 193 ikb = misfkt(ji,jj) 196 194 ! thickness of boundary layer at least the top level thickness 197 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3t_n(ji,jj,ikt))195 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3t_n(ji,jj,ikt)) 198 196 199 197 ! determine the deepest level influenced by the boundary layer 200 198 ! test on tmask useless ????? 201 199 DO jk = ikt, mbkt(ji,jj) 202 IF ( (SUM( fse3t_n(ji,jj,ikt:jk-1)) .LT. rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk200 IF ( (SUM(e3t_n(ji,jj,ikt:jk-1)) .LT. rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk 203 201 END DO 204 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM( fse3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness.202 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM(e3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness. 205 203 misfkb(ji,jj) = ikb ! last wet level of the tbl 206 204 r1_hisf_tbl(ji,jj) = 1._wp / rhisf_tbl(ji,jj) 207 205 208 zhk = SUM( fse3t(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1209 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / fse3t(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer206 zhk = SUM( e3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1 207 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / e3t_n(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer 210 208 END DO 211 209 END DO … … 369 367 ! after verif with UNESCO, wrong sign in BG eq. 2 370 368 ! Calculate freezing temperature 371 zpress = grav*rau0* fsdept(ji,jj,ik)*1.e-04369 zpress = grav*rau0*gdept_n(ji,jj,ik)*1.e-04 372 370 CALL eos_fzp(tsb(ji,jj,ik,jp_sal), zt_frz, zpress) 373 zt_sum = zt_sum + (tsn(ji,jj,ik,jp_tem)-zt_frz) * fse3t(ji,jj,ik) * tmask(ji,jj,ik) ! sum temp371 zt_sum = zt_sum + (tsn(ji,jj,ik,jp_tem)-zt_frz) * e3t_n(ji,jj,ik) * tmask(ji,jj,ik) ! sum temp 374 372 ENDDO 375 373 zt_ave = zt_sum/rhisf_tbl(ji,jj) ! calcul mean value … … 445 443 ! Crude approximation for pressure (but commonly used) 446 444 ! 1e-04 to convert from Pa to dBar 447 zpress(ji,jj)=grav*rau0* fsdepw(ji,jj,mikt(ji,jj))*1.e-04445 zpress(ji,jj)=grav*rau0*gdepw_n(ji,jj,mikt(ji,jj))*1.e-04 448 446 ! 449 447 END DO … … 643 641 ELSE 644 642 !! compute Rc number (as done in zdfric.F90) 645 zcoef = 0.5 / fse3w(ji,jj,ikt)643 zcoef = 0.5 / e3w_n(ji,jj,ikt) 646 644 ! ! shear of horizontal velocity 647 645 zdku = zcoef * ( un(ji-1,jj ,ikt ) + un(ji,jj,ikt ) & … … 663 661 zts(jp_tem) = ttbl(ji,jj) 664 662 zts(jp_sal) = stbl(ji,jj) 665 zdep = fsdepw(ji,jj,ikt)663 zdep = gdepw_n(ji,jj,ikt) 666 664 ! 667 665 CALL eos_rab( zts, zdep, zab ) … … 672 670 !! compute Monin Obukov Length 673 671 ! Maximum boundary layer depth 674 zhmax = fsdept(ji,jj,mbkt(ji,jj)) - fsdepw(ji,jj,mikt(ji,jj)) -0.001672 zhmax = gdept_n(ji,jj,mbkt(ji,jj)) - gdepw_n(ji,jj,mikt(ji,jj)) -0.001 675 673 ! Compute Monin obukhov length scale at the surface and Ekman depth: 676 674 zmob = zustar ** 3 / (vkarmn * (zbuofdep + epsln)) … … 730 728 ! level fully include in the ice shelf boundary layer 731 729 DO jk = ikt, ikb - 1 732 ze3 = fse3t_n(ji,jj,jk)730 ze3 = e3t_n(ji,jj,jk) 733 731 IF (cptin == 'T' ) varout(ji,jj) = varout(ji,jj) + varin(ji,jj,jk) * r1_hisf_tbl(ji,jj) * ze3 734 732 IF (cptin == 'U' ) varout(ji,jj) = varout(ji,jj) + 0.5_wp * (varin(ji,jj,jk) + varin(ji-1,jj,jk)) & … … 739 737 740 738 ! level partially include in ice shelf boundary layer 741 zhk = SUM( fse3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj)739 zhk = SUM( e3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) 742 740 IF (cptin == 'T') & 743 741 & varout(ji,jj) = varout(ji,jj) + varin(ji,jj,ikb) * (1._wp - zhk) … … 782 780 zfact = 0.5_wp 783 781 ! 784 IF (lk_vvl) THEN ! need to re compute level distribution of isf fresh water782 IF(.NOT.ln_linssh ) THEN ! need to re compute level distribution of isf fresh water 785 783 DO jj = 1,jpj 786 784 DO ji = 1,jpi … … 788 786 ikb = misfkt(ji,jj) 789 787 ! thickness of boundary layer at least the top level thickness 790 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3t(ji,jj,ikt))788 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3t_n(ji,jj,ikt)) 791 789 792 790 ! determine the deepest level influenced by the boundary layer 793 791 ! test on tmask useless ????? 794 792 DO jk = ikt, mbkt(ji,jj) 795 IF ( (SUM( fse3t(ji,jj,ikt:jk-1)) .LT. rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk793 IF ( (SUM(e3t_n(ji,jj,ikt:jk-1)) .LT. rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk 796 794 END DO 797 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM( fse3t(ji,jj,ikt:ikb))) ! limit the tbl to water thickness.795 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM(e3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness. 798 796 misfkb(ji,jj) = ikb ! last wet level of the tbl 799 797 r1_hisf_tbl(ji,jj) = 1._wp / rhisf_tbl(ji,jj) 800 798 801 zhk = SUM( fse3t(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1802 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / fse3t(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer799 zhk = SUM( e3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1 800 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / e3t_n(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer 803 801 END DO 804 802 END DO
Note: See TracChangeset
for help on using the changeset viewer.