Changeset 10743 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DOM/domvvl.F90
- Timestamp:
- 2019-03-12T12:06:29+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DOM/domvvl.F90
r10425 r10743 563 563 564 564 565 SUBROUTINE dom_vvl_sf_swp( kt )565 SUBROUTINE dom_vvl_sf_swp( kt, kNm1, kNnn, kNm1_2lev, kNnn_2lev ) 566 566 !!---------------------------------------------------------------------- 567 567 !! *** ROUTINE dom_vvl_sf_swp *** … … 588 588 !!---------------------------------------------------------------------- 589 589 INTEGER, INTENT( in ) :: kt ! time step 590 INTEGER, INTENT( in ) :: kNm1, kNnn, kNm1_2lev, kNnn_2lev ! time level indices 590 591 ! 591 592 INTEGER :: ji, jj, jk ! dummy loop indices … … 605 606 ! Time filter and swap of scale factors 606 607 ! ===================================== 607 ! - ML - e3(t/u/v)_b are al lready computed in dynnxt.608 ! - ML - e3(t/u/v)_b are already computed in dynnxt. 608 609 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 609 610 IF( neuler == 0 .AND. kt == nit000 ) THEN … … 618 619 gdepw_b(:,:,:) = gdepw_n(:,:,:) 619 620 620 e3t_n(:,:,:) = e3t_a(:,:,:) 621 e3u_n(:,:,:) = e3u_a(:,:,:) 622 e3v_n(:,:,:) = e3v_a(:,:,:) 621 !! TO BE DELETED 622 !!$ e3t_n(:,:,:) = e3t_a(:,:,:) 623 !!$ e3u_n(:,:,:) = e3u_a(:,:,:) 624 !!$ e3v_n(:,:,:) = e3v_a(:,:,:) 625 !! TO BE DELETED 623 626 624 627 ! Compute all missing vertical scale factor and depths … … 629 632 ! - JC - hu_b, hv_b, hur_b, hvr_b also 630 633 631 CALL dom_vvl_interpol( e3u _n(:,:,:), e3f_n(:,:,:), 'F' )634 CALL dom_vvl_interpol( e3u(:,:,:,kNnn), e3f(:,:,:), 'F' ) 632 635 633 636 ! Vertical scale factor interpolations 634 CALL dom_vvl_interpol( e3t _n(:,:,:), e3w_n(:,:,:), 'W' )635 CALL dom_vvl_interpol( e3u _n(:,:,:), e3uw_n(:,:,:), 'UW' )636 CALL dom_vvl_interpol( e3v _n(:,:,:), e3vw_n(:,:,:), 'VW' )637 CALL dom_vvl_interpol( e3t _b(:,:,:), e3w_b(:,:,:), 'W' )638 CALL dom_vvl_interpol( e3u _b(:,:,:), e3uw_b(:,:,:), 'UW' )639 CALL dom_vvl_interpol( e3v _b(:,:,:), e3vw_b(:,:,:), 'VW' )637 CALL dom_vvl_interpol( e3t(:,:,:,kNnn), e3w(:,:,:,kNnn_2lev), 'W' ) 638 CALL dom_vvl_interpol( e3u(:,:,:,kNnn), e3uw(:,:,:,kNnn_2lev), 'UW' ) 639 CALL dom_vvl_interpol( e3v(:,:,:,kNnn), e3vw(:,:,:,kNnn_2lev), 'VW' ) 640 CALL dom_vvl_interpol( e3t(:,:,:,kNm1), e3w(:,:,:,kNm1_2lev), 'W' ) 641 CALL dom_vvl_interpol( e3u(:,:,:,kNm1), e3uw(:,:,:,kNm1_2lev), 'UW' ) 642 CALL dom_vvl_interpol( e3v(:,:,:,kNm1), e3vw(:,:,:,kNm1_2lev), 'VW' ) 640 643 641 644 ! t- and w- points depth (set the isf depth as it is in the initial step) 642 gdept_n(:,:,1) = 0.5_wp * e3w _n(:,:,1)645 gdept_n(:,:,1) = 0.5_wp * e3w(:,:,1,kNnn_2lev) 643 646 gdepw_n(:,:,1) = 0.0_wp 644 647 gde3w_n(:,:,1) = gdept_n(:,:,1) - sshn(:,:) … … 649 652 ! 1 for jk = mikt 650 653 zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk)) 651 gdepw_n(ji,jj,jk) = gdepw_n(ji,jj,jk-1) + e3t _n(ji,jj,jk-1)652 gdept_n(ji,jj,jk) = zcoef * ( gdepw_n(ji,jj,jk ) + 0.5 * e3w _n(ji,jj,jk) ) &653 & + (1-zcoef) * ( gdept_n(ji,jj,jk-1) + e3w _n(ji,jj,jk) )654 gdepw_n(ji,jj,jk) = gdepw_n(ji,jj,jk-1) + e3t(ji,jj,jk-1,kNnn) 655 gdept_n(ji,jj,jk) = zcoef * ( gdepw_n(ji,jj,jk ) + 0.5 * e3w(ji,jj,jk,kNnn_2lev) ) & 656 & + (1-zcoef) * ( gdept_n(ji,jj,jk-1) + e3w(ji,jj,jk,kNnn_2lev) ) 654 657 gde3w_n(ji,jj,jk) = gdept_n(ji,jj,jk) - sshn(ji,jj) 655 658 END DO
Note: See TracChangeset
for help on using the changeset viewer.