Changeset 10799 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DOM/domvvl.F90
- Timestamp:
- 2019-03-25T09:38:58+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
r10795 r10799 563 563 564 564 565 SUBROUTINE dom_vvl_sf_swp( kt , kNm1, kNnn, kNm1_2lev, kNnn_2lev)565 SUBROUTINE dom_vvl_sf_swp( kt ) 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 indices591 590 ! 592 591 INTEGER :: ji, jj, jk ! dummy loop indices … … 606 605 ! Time filter and swap of scale factors 607 606 ! ===================================== 608 ! - ML - e3(t/u/v)_b are al ready computed in dynnxt.607 ! - ML - e3(t/u/v)_b are allready computed in dynnxt. 609 608 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 610 609 IF( neuler == 0 .AND. kt == nit000 ) THEN … … 616 615 tilde_e3t_n(:,:,:) = tilde_e3t_a(:,:,:) 617 616 ENDIF 617 gdept_b(:,:,:) = gdept_n(:,:,:) 618 gdepw_b(:,:,:) = gdepw_n(:,:,:) 619 620 e3t_n(:,:,:) = e3t_a(:,:,:) 621 e3u_n(:,:,:) = e3u_a(:,:,:) 622 e3v_n(:,:,:) = e3v_a(:,:,:) 618 623 619 624 ! Compute all missing vertical scale factor and depths … … 624 629 ! - JC - hu_b, hv_b, hur_b, hvr_b also 625 630 626 CALL dom_vvl_interpol( e3u (:,:,:,kNnn), e3f(:,:,:), 'F' )631 CALL dom_vvl_interpol( e3u_n(:,:,:), e3f_n(:,:,:), 'F' ) 627 632 628 633 ! Vertical scale factor interpolations 629 CALL dom_vvl_interpol( e3t (:,:,:,kNnn), e3w(:,:,:,kNnn_2lev), 'W' )630 CALL dom_vvl_interpol( e3u (:,:,:,kNnn), e3uw(:,:,:,kNnn_2lev), 'UW' )631 CALL dom_vvl_interpol( e3v (:,:,:,kNnn), e3vw(:,:,:,kNnn_2lev), 'VW' )632 CALL dom_vvl_interpol( e3t (:,:,:,kNm1), e3w(:,:,:,kNm1_2lev), 'W' )633 CALL dom_vvl_interpol( e3u (:,:,:,kNm1), e3uw(:,:,:,kNm1_2lev), 'UW' )634 CALL dom_vvl_interpol( e3v (:,:,:,kNm1), e3vw(:,:,:,kNm1_2lev), 'VW' )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' ) 635 640 636 641 ! t- and w- points depth (set the isf depth as it is in the initial step) 637 gdept (:,:,1,kNnn_2lev) = 0.5_wp * e3w(:,:,1,kNnn_2lev)638 gdepw (:,:,1,kNnn_2lev) = 0.0_wp639 gde3w (:,:,1) = gdept(:,:,1,kNnn_2lev) - sshn(:,:)642 gdept_n(:,:,1) = 0.5_wp * e3w_n(:,:,1) 643 gdepw_n(:,:,1) = 0.0_wp 644 gde3w_n(:,:,1) = gdept_n(:,:,1) - sshn(:,:) 640 645 DO jk = 2, jpk 641 646 DO jj = 1,jpj … … 644 649 ! 1 for jk = mikt 645 650 zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk)) 646 gdepw (ji,jj,jk,kNnn_2lev) = gdepw(ji,jj,jk-1,kNnn_2lev) + e3t(ji,jj,jk-1,kNnn)647 gdept (ji,jj,jk,kNnn_2lev) = zcoef * ( gdepw(ji,jj,jk,kNnn_2lev ) + 0.5 * e3w(ji,jj,jk,kNnn_2lev) ) &648 & + (1-zcoef) * ( gdept (ji,jj,jk-1,kNnn_2lev) + e3w(ji,jj,jk,kNnn_2lev) )649 gde3w (ji,jj,jk) = gdept(ji,jj,jk,kNnn_2lev) - sshn(ji,jj)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 gde3w_n(ji,jj,jk) = gdept_n(ji,jj,jk) - sshn(ji,jj) 650 655 END DO 651 656 END DO … … 654 659 ! Local depth and Inverse of the local depth of the water 655 660 ! ------------------------------------------------------- 656 ! 657 ht(:,:) = e3t(:,:,1,kNnn) * tmask(:,:,1) 661 hu_n(:,:) = hu_a(:,:) ; r1_hu_n(:,:) = r1_hu_a(:,:) 662 hv_n(:,:) = hv_a(:,:) ; r1_hv_n(:,:) = r1_hv_a(:,:) 663 ! 664 ht_n(:,:) = e3t_n(:,:,1) * tmask(:,:,1) 658 665 DO jk = 2, jpkm1 659 ht (:,:) = ht(:,:) + e3t(:,:,jk,kNnn) * tmask(:,:,jk)666 ht_n(:,:) = ht_n(:,:) + e3t_n(:,:,jk) * tmask(:,:,jk) 660 667 END DO 661 668
Note: See TracChangeset
for help on using the changeset viewer.