New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 10799 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DOM/domvvl.F90 – NEMO

Ignore:
Timestamp:
2019-03-25T09:38:58+01:00 (5 years ago)
Author:
davestorkey
Message:

Temporarily revert all changes to do with the time-level swapping so the
branch just does variable renaming of the 3D state variables and changes
the interfaces to the DYN and TRA routines from stp.

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  
    563563 
    564564 
    565    SUBROUTINE dom_vvl_sf_swp( kt, kNm1, kNnn, kNm1_2lev, kNnn_2lev ) 
     565   SUBROUTINE dom_vvl_sf_swp( kt ) 
    566566      !!---------------------------------------------------------------------- 
    567567      !!                ***  ROUTINE dom_vvl_sf_swp  *** 
     
    588588      !!---------------------------------------------------------------------- 
    589589      INTEGER, INTENT( in ) ::   kt   ! time step 
    590       INTEGER, INTENT( in ) ::   kNm1, kNnn, kNm1_2lev, kNnn_2lev ! time level indices 
    591590      ! 
    592591      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    606605      ! Time filter and swap of scale factors 
    607606      ! ===================================== 
    608       ! - ML - e3(t/u/v)_b are already computed in dynnxt. 
     607      ! - ML - e3(t/u/v)_b are allready computed in dynnxt. 
    609608      IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 
    610609         IF( neuler == 0 .AND. kt == nit000 ) THEN 
     
    616615         tilde_e3t_n(:,:,:) = tilde_e3t_a(:,:,:) 
    617616      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(:,:,:) 
    618623 
    619624      ! Compute all missing vertical scale factor and depths 
     
    624629      ! - JC - hu_b, hv_b, hur_b, hvr_b also 
    625630       
    626       CALL dom_vvl_interpol( e3u(:,:,:,kNnn), e3f(:,:,:), 'F'  ) 
     631      CALL dom_vvl_interpol( e3u_n(:,:,:), e3f_n(:,:,:), 'F'  ) 
    627632       
    628633      ! 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' ) 
    635640 
    636641      ! 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_wp 
    639       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(:,:) 
    640645      DO jk = 2, jpk 
    641646         DO jj = 1,jpj 
     
    644649                                                                 ! 1 for jk = mikt 
    645650               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) 
    650655            END DO 
    651656         END DO 
     
    654659      ! Local depth and Inverse of the local depth of the water 
    655660      ! ------------------------------------------------------- 
    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) 
    658665      DO jk = 2, jpkm1 
    659          ht(:,:) = ht(:,:) + e3t(:,:,jk,kNnn) * tmask(:,:,jk) 
     666         ht_n(:,:) = ht_n(:,:) + e3t_n(:,:,jk) * tmask(:,:,jk) 
    660667      END DO 
    661668 
Note: See TracChangeset for help on using the changeset viewer.