Changeset 11261
- Timestamp:
- 2019-07-12T10:28:39+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/DYN/dynspg_ts.F90
r11245 r11261 542 542 END DO 543 543 ! 544 CALL lbc_lnk_multi( 'dynspg_ts', ssha_e, 'T', 1._wp, zhU, 'U', 1._wp, zhV, 'V',1._wp )544 CALL lbc_lnk_multi( 'dynspg_ts', ssha_e, 'T', 1._wp, zhU, 'U', -1._wp, zhV, 'V', -1._wp ) 545 545 ! 546 546 ! ! Sum over sub-time-steps to compute advective velocities … … 567 567 END DO 568 568 END DO 569 ! !* Update ocean depth (variable volume case only)570 hu_e (2:jpim1,2:jpjm1) = hu_0(2:jpim1,2:jpjm1) + zsshu_a(2:jpim1,2:jpjm1)571 hv_e (2:jpim1,2:jpjm1) = hv_0(2:jpim1,2:jpjm1) + zsshv_a(2:jpim1,2:jpjm1)572 hur_e(2:jpim1,2:jpjm1) = ssumask(2:jpim1,2:jpjm1) / ( hu_e(2:jpim1,2:jpjm1) + 1._wp - ssumask(2:jpim1,2:jpjm1) )573 hvr_e(2:jpim1,2:jpjm1) = ssvmask(2:jpim1,2:jpjm1) / ( hv_e(2:jpim1,2:jpjm1) + 1._wp - ssvmask(2:jpim1,2:jpjm1) )574 569 ENDIF 575 570 ! … … 626 621 ! Compute barotropic speeds at step jit+1 (h : total height of the water colomn) 627 622 !-- VECTOR FORM 628 !-- m+1 m / m+1/2 \--!629 !-- u = u + delta_t' * \ grad_x( ssh') - f * k vect u + frc /--!630 !-- --!631 !-- FLUX FORM --!632 !-- m+1 ___1___ / m m / m+1/2 m+1/2 n \\ --!633 !-- u = m+1 | h * u + delta_t' * \ grad_x( ssh') - h * f * k vect u + h * frc /| --!634 !-- h \/ --!635 !------------------------------------------------------------------------------------------------------------ !623 !-- m+1 m / m+1/2 \ --! 624 !-- u = u + delta_t' * \ (1-r)*g * grad_x( ssh') - f * k vect u + frc / --! 625 !-- --! 626 !-- FLUX FORM --! 627 !-- m+1 __1__ / m m / m+1/2 m+1/2 m+1/2 n \ \ --! 628 !-- u = m+1 | h * u + delta_t' * \ h * (1-r)*g * grad_x( ssh') - h * f * k vect u + h * frc / | --! 629 !-- h \ / --! 630 !------------------------------------------------------------------------------------------------------------------------! 636 631 IF( ln_dynadv_vec .OR. ln_linssh ) THEN !* Vector form 637 632 DO jj = 2, jpjm1 … … 654 649 DO jj = 2, jpjm1 655 650 DO ji = 2, jpim1 656 ! ! backward extrapolated depth used in spg terms at jn+1/2 651 ! ! hu_e, hv_e hold depth at jn, zhup2_e, zhvp2_e hold extrapolated depth at jn+1/2 652 ! ! backward interpolated depth used in spg terms at jn+1/2 657 653 zhu_bck = hu_0(ji,jj) + r1_2*r1_e1e2u(ji,jj) * ( e1e2t(ji ,jj) * zsshp2_e(ji ,jj) & 658 654 & + e1e2t(ji+1,jj) * zsshp2_e(ji+1,jj) ) * ssumask(ji,jj) … … 661 657 ! ! inverse depth at jn+1 662 658 z1_hu = ssumask(ji,jj) / ( hu_0(ji,jj) + zsshu_a(ji,jj) + 1._wp - ssumask(ji,jj) ) 663 z1_hv = ssvmask(ji,jj) / ( h u_0(ji,jj) + zsshv_a(ji,jj) + 1._wp - ssvmask(ji,jj) )659 z1_hv = ssvmask(ji,jj) / ( hv_0(ji,jj) + zsshv_a(ji,jj) + 1._wp - ssvmask(ji,jj) ) 664 660 ! 665 661 ua_e(ji,jj) = ( hu_e (ji,jj) * un_e (ji,jj) & … … 671 667 & + rdtbt * ( zhv_bck * zv_spg (ji,jj) & ! 672 668 & + zhvp2_e(ji,jj) * zv_trd (ji,jj) & ! 673 & + hv_n (ji,jj) * zv_frc (ji,jj) ) ) * z1_h u669 & + hv_n (ji,jj) * zv_frc (ji,jj) ) ) * z1_hv 674 670 END DO 675 671 END DO … … 685 681 ENDIF 686 682 687 IF( .NOT. ln_linssh ) THEN !* domain lateral boundary 683 IF( .NOT.ln_linssh ) THEN !* Update ocean depth (variable volume case only) 684 hu_e (2:jpim1,2:jpjm1) = hu_0(2:jpim1,2:jpjm1) + zsshu_a(2:jpim1,2:jpjm1) 685 hur_e(2:jpim1,2:jpjm1) = ssumask(2:jpim1,2:jpjm1) / ( hu_e(2:jpim1,2:jpjm1) + 1._wp - ssumask(2:jpim1,2:jpjm1) ) 686 hv_e (2:jpim1,2:jpjm1) = hv_0(2:jpim1,2:jpjm1) + zsshv_a(2:jpim1,2:jpjm1) 687 hvr_e(2:jpim1,2:jpjm1) = ssvmask(2:jpim1,2:jpjm1) / ( hv_e(2:jpim1,2:jpjm1) + 1._wp - ssvmask(2:jpim1,2:jpjm1) ) 688 688 CALL lbc_lnk_multi( 'dynspg_ts', ua_e , 'U', -1._wp, va_e , 'V', -1._wp & 689 & , hu_e , 'U', 1._wp, hv_e , 'V', 1._wp & 690 & , hur_e, 'U', 1._wp, hvr_e, 'V', 1._wp ) 691 ! 689 & , hu_e , 'U', -1._wp, hv_e , 'V', -1._wp & 690 & , hur_e, 'U', -1._wp, hvr_e, 'V', -1._wp ) 691 ELSE 692 CALL lbc_lnk_multi( 'dynspg_ts', ua_e , 'U', -1._wp, va_e , 'V', -1._wp ) 692 693 ELSE !* domain lateral boundary 693 694 CALL lbc_lnk_multi( 'dynspg_ts', ua_e , 'U', -1._wp, va_e , 'V', -1._wp ) 694 695 ! 695 696 ENDIF 697 ! 696 698 ! 697 699 ! ! open boundaries
Note: See TracChangeset
for help on using the changeset viewer.